Projektowanie nowoczesnych sieci dynamicznych
W latach dziewięćdziesiątych sieci peer-to-peer (P2P) zdobyły niechlubną sławę jako mechanizm umożliwiający użytkownikom dzielenie się materiałami chronionymi prawami autorskimi, w szczególności w postaci plików MP3. Tymczasem akademicy zaczęli koncentrować się na zaletach i możliwych zastosowaniach tej zdecentralizowanej i w dużej mierze odpornej na błędy struktury sieciowej. Obecnie technologie P2P wykorzystywane do przesyłania plików wypierają starsze mechanizmy, w tym także popularny protokół FTP. Takie systemy jak np. BitTorrent potrafią skutecznie wykorzystywać szerokopasmowe połączenia i znane są przypadki skalowania przesyłu pojedynczego pliku/zbioru danych do ponad 100.000 użytkowników. PeerSim jest środowiskiem symulacyjnym na licencji open source, które pozwoli programistom zyskać większą pewność podczas projektowania systemów P2P i testowania aplikacji sieciowych. Symulacje nie są narażone na problemy, jakie powstają podczas eksperymentowania z samym systemem P2P, albo przyjmując podejście analityczne, które wymaga matematycznego modelowania sieci P2P. Ponieważ systemy P2P składają się z bardzo dużej liczby węzłów, przeprowadzanie eksperymentów na rzeczywistym systemie wymaga znacznych zasobów, a poza tym istnieje zagrożenie awarii węzła. Koszty symulacji komunikacji sieciowej są niższe niż koszty zakrojonych na dużą skalę eksperymentów, ponieważ potrzebne są mniejsze zasoby. Poza tym model może być mniej złożony niż model matematyczny. Środowisko PeerSim zostało zaprojektowane specjalnie dla protokołów epidemicznych, jak np. OverStat lub SG-1, jest wysoce skalowalne i posiada dobrą obsługę dynamiki. Symulator ma konstrukcję komponentową, dzięki czemu można łatwo stworzyć prototyp protokołu łącząc różne bloki konstrukcyjne na zasadzie wtyczek. Każdy blok można łatwo zastąpić innym komponentem wprowadzającym ten sam interfejs (tj. tę samą funkcjonalność). Symulator PeerSim obsługuje dwa różne modele symulacji: uproszczony model cykliczny i bardziej popularny model zdarzeniowy. Model cykliczny pozwala symulatorowi rozszerzyć sieć do dużej liczby węzłów, przy czym w porównaniu z silnikiem PeerSim symulującym model zdarzeniowy, przy cyklicznym traci się nieco na dokładności. Zainteresowani użytkownicy mogą znaleźć instrukcje i przykłady, oraz szczegółową dokumentację interfejsu API na witrynie projektu pod adresem http://www.cs.unibo.it/bison/