You are here: SE » ThesesHome » ThesisDPPXXVIII

Stabilitäts- und Testbarkeitsverbesserungen der Netzwerkschicht in Saros

Worked on by: Björn Gustavs

Status: completed. Download thesis

Outline

Saros nutzt das XMPP-Protokoll über die Open-Source-Bibliothek Smack als Grundlage für alle Netzwerkkommunikation. Im Rahmen unserer Nutzung der Smack gibt es noch einige Probleme und Verbesserungsmöglichkeiten sowohl technischer Natur als auch bezüglich des Feedbacks an den Benutzer. Beispielsweise funktioniert das Einladen eines Benutzers zu einer Saros-Sitzung noch nicht problemlos auf allen Betriebssystemen.

Ziel dieser Arbeit ist es, Probleme und Verbesserungsmöglichkeiten in der Saros-Netzwerkkommunikation zu analysieren und diese ggf. in Zusammenarbeit mit dem Open-Source-Projekt hinter Smack zu beseitigen.

Weiterhin soll die Testfähigkeit der Netzwerkschicht analysiert, auf Schwachstellen untersucht und ggf. verbessert werden.

Thesis Requirements

R1. Probleme in der Netzwerkschicht analysieren und korrigieren
    • Suche nach Versagen in Saros bzgl. Netzwerkkommunikation
    • Saros über verschiedene Betriebssysteme
    • fehlendes/ungenügendes Feedback von Saros (insbesondere bzgl. Netzwerkkommunikation) an den Benutzer verbessern, z.B. ungenügende Fortschrittsanzeige oder Abbruchszenarien
    • Defektbehebung

R2. Netzwerkschicht auf Testfähigkeit untersuchen

R3. Testfähigkeit verbessern, theoretisch, praktisch

Milestones and Planning

A milestone is a scheduled event signifying the completion of a major deliverable or a set of related deliverables. A milestone has zero duration and no effort -- there is no work associated with a milestone. It is a flag in the workplan to signify some other work has completed. Usually a milestone is used as a project checkpoint to validate how the project is progressing and revalidate work. (Source: http://www.mariosalexandrou.com/definition/milestone.asp)

Milestone no. Past CW Goals target accomplished wrench
1 DONE 5 ECF Analyse accomplished
2 DONE 7 Bug#2958669 accomplished
3 DONE 21 R1, Defektsuche und Korrektur accomplished
4 DONE 23 R2, Testfähigkeit der Netzwerkschicht analysieren accomplished
6 DONE 27 R3, Testfähigkeit verbessern accomplished

Weekly Status

CW 11

Activities

  • finished debugging IBB crash
  • created a patch including Activity delay during IBB transfer and Timeout raise
  • Björn K. reported a defect in Smack, concerning setName RosterEntry and incoming RosterEntry information, reconstruct, create draft patch

Results

  • patch in reviewboard, Michael advised Activity delay to be moved to ActivitySequencer
  • rework the patch regarding Michaels suggestion
  • draft patch for Smack tests successfully

Next Steps

  • search for more defects
  • report Smack bug and provide Patch

CW 12

Activities

  • posted Smack defect in Jive Forum, wait for response
  • search for more problems in the network layer
  • collect surveys, analyse and check for network problem descriptions

Results

  • Surveys collected
  • redo IBB crash patch in ActivitySequencer

Next Steps

  • test sessions with Proxies, firewalls
  • test with different operating systems

Problems

  • delays because of illness

CW 13

Activities

  • posted IBB crash fix patch
  • search for more problems in the network layer
  • test different OS

Results

  • no big OS problems found

Next Steps

  • search for failures with different OS, firewalls, network situations

CW 14-15

Activities

  • debugging of exception during Socks5 connecting, resulting in fallback to IBB
  • problem located in Socks5Proxy setup, initialized with insufficient IP address
  • explore and develop local/internal IP retrival and Socks5Proxy initialization

Results

  • fixed Socks5 connecting problems resulting in improved Socks5 usage over IBB fallback

Next Steps

  • Socks5Proxy initialization with external IP

CW 16-17

Activities

  • study STUN
  • use STUN for external IP- and network situation retrival
  • used jSTUN (contained in Smack) to implement this in Saros

Results

  • WAN-IP retrival and improve Socks5Proxy setup for better peer connect-ability with Socks5

Next Steps

  • UPnP support for better connect-ability

Problems

  • lower time availability due to medical reason

CW 18

Activities

  • study UPnP
  • search for UPnP lib --> found weupnp to be suitable
  • debugging, fixing and improving weupnp
  • implement UPnP discovery and portmapping into Saros

Results

Next Steps

  • post patches

Problems

  • still low time availability due to medical reason

CW 19

Activities

  • testing and improving UPnP support in Saros
  • GUI integration of UPnP settings

Results

  • UPnP support works nicely in Saros

Next Steps

  • post patches

  • debugging, fixing and improving weupnp
  • implement UPnP discovery and portmapping into Saros

CW 20

Activities

  • debugging crashing bytestreams when sending activity by bytestream
  • locating defect/missing feature
  • implement activity resend attempts instead of dropping it silently

Results

  • activity transmitter retry sending failed activities by bytestream

Next Steps

  • post patches

CW 21

Activities

  • posted patches UPnP, WAN IP detection, bytestream send retry
  • researching Unit tests of recent patches
  • implement unit tests for UPnP management, using UPnP accessing stubs

Results

Next Steps

  • write tests, network layer analysis concerning testability, thesis structure