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

Post on 16-Sep-2020

3 views 0 download

transcript

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