BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde...

37
Einleitung Saros STF - Sandors Test Framework Ende Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung Sandor Szücs Institut Mathematik und Informatik - Freie Universität Berlin 15. April 2010 Sandor Szücs Freie Universität Berlin

Transcript of BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde...

Page 1: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Behandlung von Netzwerk- undSicherheitsaspekten in einem Werkzeug zur

verteilten Paarprogrammierung

Sandor Szücs

Institut Mathematik und Informatik - Freie Universität Berlin

15. April 2010

Sandor Szücs Freie Universität Berlin

Page 2: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Agenda

1 Einleitung

2 SarosArchitekturDaten sendenLösungen

3 STF - Sandors Test FrameworkMotivationAnsatzAnwendung

4 Ende

Sandor Szücs Freie Universität Berlin

Page 3: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Next

1 Einleitung

2 SarosArchitekturDaten sendenLösungen

3 STF - Sandors Test FrameworkMotivationAnsatzAnwendung

4 Ende

Sandor Szücs Freie Universität Berlin

Page 4: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Fehler im Titel!

Behandlung von Netzwerk- und Sicherheitsaspekten in einemWerkzeug zur verteilten PaarprogrammierungBehandlung von Netzwerk- und Testaspekten in einemWerkzeug zur verteilten Paarprogrammierung

Sandor Szücs Freie Universität Berlin

Page 5: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Fehler im Titel!

Behandlung von Netzwerk- und Sicherheitsaspekten in einemWerkzeug zur verteilten PaarprogrammierungBehandlung von Netzwerk- und Testaspekten in einemWerkzeug zur verteilten Paarprogrammierung

Sandor Szücs Freie Universität Berlin

Page 6: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Was ist Saros?

6

2

1

3

4

5

Sandor Szücs Freie Universität Berlin

Page 7: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Saros wird populärer

Sandor Szücs Freie Universität Berlin

Page 8: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Tätigkeiten im Projekt

APs lösen (== mehr Funktionalität)Bugfixing (== weniger Defekte)Outreach (== Werbung)STF (== Testmöglichkeit schaffen)Kaffee kochen

Sandor Szücs Freie Universität Berlin

Page 9: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Tätigkeiten im Projekt

APs lösen (== mehr Funktionalität)Bugfixing (== weniger Defekte)Outreach (== Werbung)STF (== Testmöglichkeit schaffen)Kaffee kochen

Sandor Szücs Freie Universität Berlin

Page 10: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Next

1 Einleitung

2 SarosArchitekturDaten sendenLösungen

3 STF - Sandors Test FrameworkMotivationAnsatzAnwendung

4 Ende

Sandor Szücs Freie Universität Berlin

Page 11: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Netzwerk Protokoll - XMPP

Message - unidirektionalIQ - bidirektional / Frage-AntwortXEP - Erweiterungen

Sandor Szücs Freie Universität Berlin

Page 12: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Netzwerk Protokolle - XEP

In-Band-Bytestream

Saros(Alice)

XMPP Server

SOCK5 Server

Saros(Bob)

In-B

and-

Byte

stre

am

SOCK

S5SOCKS5

Jingle

1

2

3

Sandor Szücs Freie Universität Berlin

Page 13: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Saros Netzwerkschicht

DataTransferManager

JingleFileTransferManager

JingleFileTransferSession

BinaryChannel

java.net.Socket

IncomingFileTransfer (Smack)

Socks5TransferNegotiator(Smack)

IBBTransferNegotiator(Smack)

XMPPTransmitter

IncomingTransferObject

XMPPReceiver

XmppConnection (Smack)

Sandor Szücs Freie Universität Berlin

Page 14: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Was wird transferiert?

ProjektsynchronisierungBenutzeraktivitäten (Textselektion, Texteinfügen, Sichtfeld,...)neu Datenströme (Audio,Video,..) - Danke an Stephan Lau

Sandor Szücs Freie Universität Berlin

Page 15: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Wie wird transferiert?

Projektsynchronisierung, Datenströme und Aktivitäten größerals 16 kB:

Jingle/TCPJingle/UDPSocks5-BytestreamsIBB

XMPP Message: alle Daten einer Sitzung

Sandor Szücs Freie Universität Berlin

Page 16: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Dateisynchronisation optimieren

Netzwerk Verbindung Typ DurchsatzInternet Jingle/TCP Dateien 4992 kB/sInternet Jingle/TCP Archiv 3994 kB/sInternet Jingle/UDP Dateien 974 kB/sInternet Jingle/UDP Archiv 1377 kB/sInternet Socks5 Archiv 79 kB/s

Teles VPN Jingle/TCP Dateien 1288 kB/sTeles VPN Jingle/TCP Archiv 1664 kB /sTeles VPN IBB Teles Archiv 4 kB/s

Sandor Szücs Freie Universität Berlin

Page 17: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Cancelation und Progress-Support von Dateiübertragungen

Übertragungen sind abbrechbar und ablehnbarrealistischer Fortschrittsbalken

Sandor Szücs Freie Universität Berlin

Page 18: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Benutzeraktivität via Peer-to-Peer

falls Daten > 16 kB, Verwendung: Cut and pasteOverhead: Verbindungsaufbauzu lösende Probleme:

Smacks FileTransfer schließt die Verbindung nach einerDateiübertragungrichtungsorientierter Verbindungsaufbau

Aktuell: Verbindungsaufbau versagt bei NAT

Sandor Szücs Freie Universität Berlin

Page 19: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Benutzeraktivität via Peer-to-Peer

falls Daten > 16 kB, Verwendung: Cut and pasteOverhead: Verbindungsaufbauzu lösende Probleme:

Smacks FileTransfer schließt die Verbindung nach einerDateiübertragungrichtungsorientierter Verbindungsaufbau

Aktuell: Verbindungsaufbau versagt bei NAT

Sandor Szücs Freie Universität Berlin

Page 20: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Benutzeraktivität via Peer-to-Peer

falls Daten > 16 kB, Verwendung: Cut and pasteOverhead: Verbindungsaufbauzu lösende Probleme:

Smacks FileTransfer schließt die Verbindung nach einerDateiübertragungrichtungsorientierter Verbindungsaufbau

Aktuell: Verbindungsaufbau versagt bei NAT

Sandor Szücs Freie Universität Berlin

Page 21: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Next

1 Einleitung

2 SarosArchitekturDaten sendenLösungen

3 STF - Sandors Test FrameworkMotivationAnsatzAnwendung

4 Ende

Sandor Szücs Freie Universität Berlin

Page 22: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Motivation

1 Problem: Testbarkeit der NetzschichtPeer-to-Peer Software braucht mindestens 2 Teilnehmerunterschiedliche Instanzen eines Singleton-Objekts notwendigNeal Ford in “10 Ways to Improve Your Code”:

singleton is bad because: ..., untestable, ...

2 Problem: Verbindungsaufbau testenNetzwerkeigenschaften: NAT, Firewall, Unzuverlässigkeitals Einzelperson testen?Wiederholbarkeit?Socks5 und localhost

3 Problem: realistische TestsFunktions- und Integrationstests != Unittest

Sandor Szücs Freie Universität Berlin

Page 23: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Motivation

1 Problem: Testbarkeit der NetzschichtPeer-to-Peer Software braucht mindestens 2 Teilnehmerunterschiedliche Instanzen eines Singleton-Objekts notwendigNeal Ford in “10 Ways to Improve Your Code”:

singleton is bad because: ..., untestable, ...

2 Problem: Verbindungsaufbau testenNetzwerkeigenschaften: NAT, Firewall, Unzuverlässigkeitals Einzelperson testen?Wiederholbarkeit?Socks5 und localhost

3 Problem: realistische TestsFunktions- und Integrationstests != Unittest

Sandor Szücs Freie Universität Berlin

Page 24: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Motivation

1 Problem: Testbarkeit der NetzschichtPeer-to-Peer Software braucht mindestens 2 Teilnehmerunterschiedliche Instanzen eines Singleton-Objekts notwendigNeal Ford in “10 Ways to Improve Your Code”:

singleton is bad because: ..., untestable, ...

2 Problem: Verbindungsaufbau testenNetzwerkeigenschaften: NAT, Firewall, Unzuverlässigkeitals Einzelperson testen?Wiederholbarkeit?Socks5 und localhost

3 Problem: realistische TestsFunktions- und Integrationstests != Unittest

Sandor Szücs Freie Universität Berlin

Page 25: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

gewählter Ansatz - Steuerung

SWTBot erweitern → Fernsteuerung von Eclipse über RMI

Sandor Szücs Freie Universität Berlin

Page 26: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

gewählter Ansatz - Netzwerk

Infrastruktur in einem VM Netz (XMPP, STUN, DNS,Saros,..)Emulator - erzeugt Netzwerkeigenschaften (Delay, NAT, ..)

Sandor Szücs Freie Universität Berlin

Page 27: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Netzwerkaufbau Emulator

XMPP,STUN,DNS Server

Internet

Musikant

kein P2Pzu Musikanten

Musikant

NAT

Musikant

virtual NAT

delay

Musikant

Dirigent

Emulator Bypass

Sandor Szücs Freie Universität Berlin

Page 28: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Anwendung

Entwickler schreiben Tests und testen diese lokalVerifikation und Wiederholbarkeit im Emulator

Sandor Szücs Freie Universität Berlin

Page 29: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Beispiel: Testgleichheit lokal/remote

@Beforepub l i c void c o n f i g u r e I n v i t e e ( ) {

i n v i t e e = new Mus ic i an (new JID (BotConf ig . JID_ALICE ) ,BotConf ig .PASSWORD_ALICE,BotConf ig .HOST_ALICE ,BotConf ig . PORT_ALICE) ;

i n v i t e e . i n i tRm i ( ) ;i n v i t e e . openSarosViews ( ) ;i n v i t e e . xmppConnect ( ) ;

}

Sandor Szücs Freie Universität Berlin

Page 30: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Relevanz

internDefekte in einer kontrollierten Umgebung findenweitere Möglichkeit: manuelle Tests - selten bis unnötig(Testtag)

extern - Interesse an der Funktionalität vom SwtbotEntwickler

Sandor Szücs Freie Universität Berlin

Page 31: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Next

1 Einleitung

2 SarosArchitekturDaten sendenLösungen

3 STF - Sandors Test FrameworkMotivationAnsatzAnwendung

4 Ende

Sandor Szücs Freie Universität Berlin

Page 32: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Offene Fragen

Verbindungsaufbaurichtungsorientiertnicht persistentJingle/ICE scheint defekt (?)Timeouts in Smack FileTransfer sind/waren defekt (DankeHenning)

Wie helfen STF-Tests der Stabilität von Saros?

Sandor Szücs Freie Universität Berlin

Page 33: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Offene Fragen

Verbindungsaufbaurichtungsorientiertnicht persistentJingle/ICE scheint defekt (?)Timeouts in Smack FileTransfer sind/waren defekt (DankeHenning)

Wie helfen STF-Tests der Stabilität von Saros?

Sandor Szücs Freie Universität Berlin

Page 34: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Zusammenfassung

HauptthemenOptimierungAbbrechbarkeit und FortschrittTestbarkeit

NebenbaustellenDefektbeseitigung (verschiedene XMPP Clients parallel)Benutzersupport (E-Mail, IRC)

Sandor Szücs Freie Universität Berlin

Page 35: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Zusammenfassung

HauptthemenOptimierungAbbrechbarkeit und FortschrittTestbarkeit

NebenbaustellenDefektbeseitigung (verschiedene XMPP Clients parallel)Benutzersupport (E-Mail, IRC)

Sandor Szücs Freie Universität Berlin

Page 36: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

QA

Sandor Szücs Freie Universität Berlin

Page 37: BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde BehandlungvonNetzwerk-und SicherheitsaspektenineinemWerkzeugzur verteiltenPaarprogrammierung SandorSzücs

Einleitung Saros STF - Sandors Test Framework Ende

Danke!

Sandor Szücs Freie Universität Berlin