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 |
accomplished |
1 |
|
5 |
ECF Analyse |
accomplished |
2 |
|
7 |
Bug#2958669 |
accomplished |
3 |
|
21 |
R1, Defektsuche und Korrektur |
accomplished |
4 |
|
23 |
R2, Testfähigkeit der Netzwerkschicht analysieren |
accomplished |
6 |
|
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
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
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
- 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
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