BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde...
Transcript of BehandlungvonNetzwerk-und ......Einleitung Saros STF - Sandors Test FrameworkEnde...
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
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
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
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
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
Einleitung Saros STF - Sandors Test Framework Ende
Was ist Saros?
6
2
1
3
4
5
Sandor Szücs Freie Universität Berlin
Einleitung Saros STF - Sandors Test Framework Ende
Saros wird populärer
Sandor Szücs Freie Universität Berlin
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
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
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
Einleitung Saros STF - Sandors Test Framework Ende
Netzwerk Protokoll - XMPP
Message - unidirektionalIQ - bidirektional / Frage-AntwortXEP - Erweiterungen
Sandor Szücs Freie Universität Berlin
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Einleitung Saros STF - Sandors Test Framework Ende
QA
Sandor Szücs Freie Universität Berlin
Einleitung Saros STF - Sandors Test Framework Ende
Danke!
Sandor Szücs Freie Universität Berlin