Sunday, December 09, 2007

TR: A Pattern Language for Overlay Networks

Durch Zufall bin ich auf ein interessantes Paper zum Softwareentwurf von Peer-to-Peer-Systemen gestoßen: "A Pattern language for Overlay Networks - Design Patterns in Peer-to-Peer Systems " von Dominik Grolimund, ETH Zurück und heute Entwickler des P2P-Storagesystems Wua.la.

Durch eine Untersuchung des Quellcodes von zahlreichen Open-Source-P2P-Systemen aus dem praktischen und dem akademischem Umfeld (von LimeWire über Bamboo to FreePastry) hat der Autor des technisches Berichtes erfolgreich verwendete Lösungen für häufige Entwurfsprobleme (Pattern) extrahiert. Die Pattern gliedern sich in die Abschnitte "Application Interaction", "Messages", "Message Handling", "Routing", "Local Node", "Protocol", "Remote Node" und "Network Interaction".

Ich finde den Artikel schon deshalb interessant, weil er sich mit dem Softwaredesign von P2P beschäftigt. Normalerweise liegt der Fokus in dem Bereich quasi ausschließlich auf dem Systementwurf. Aber reale Systeme mit der hohen Komplexität brauchen auch ein angemessenes Softwaredesign.

Da Algorithmen für Sensornetzwerke aus der Softwaredesignperspektive eine hohe Ähnlichkeit mit Peer-to-Peer-Systemen (aus Systemdesignsicht ist dies so nicht der Fall, aber auch dort existieren Gemeinsamkeiten) ausweisen, wäre der technische Bericht auch in der Projektgruppe hilfreich gewesen. Wir müssen zwar nichts "real" implementieren (Pattern wie "Abstract Node Handle" sind dann nicht notwendig), aber viele der Pattern wären auch in den simulierten Algorithmen und den verwendeten Simulator sinnvoll einsetzbar gewesen. Zu spät.

P.S. In der Sidebar dieses Blogs werden nun auch neben meinen öffentlichen del.icio.us Bookmarks (RSS) auch die öffentlichen CiteULike-Bookmarks (RSS) aufgelistet. Die automatisch generierten del.icio.us-Artikel wird es nicht mehr geben.

No comments:

Post a Comment