Netzwerkbibliotheken in C++
Zur Implementierung verschiedener Netzwerkprotokolle auf Layer 3 wurden mehrere C++ Bibliotheken zur Netzwerkentwicklung realisiert. Zentrale Entwicklungsziele dieser Bibliotheken waren
- objektorientiertes Interface,
- Flexibilität und Erweiterbarkeit,
- hoher Abstraktionsgrad unter Berücksichtigung der Performance.
Nach einer ausführlichen Recherche wurde entschieden, diese Bibliotheken neu zu entwickeln, da vorhandene Lösungen entweder als zu invasiv oder zu komplex eingeschätzt wurden. Entwickelt wurden mehrere Bibliotheken:
- Packet Library
- Hierbei handelt es sich um eine Bibliothek zur Interpretation und Erzeugung von Netzwerkpaketen verschiedenster Protokolle. Bereitgestellt wird ein Framework, welches eine einfache Spezifikation der Paketstruktur erlaubt und so die beliebige Erweiterbarkeit der Bibliothek gewährleistet.
- Socket Library
- Es wurde eine objektorientierte und policy-basierte Abstraktion der BSD Socket-Schnittstelle implementiert. Die Bibliothek erreicht eine weitgehende Kapselung der Komplexität des Socket APIs bei gleichzeitiger Erhaltung maximaler Performance. Durch das policy-basierte Design ist die Bibliothek jederzeit durch neue Socket-APIs oder Socket-Typen erweiterbar.
- Scheduler
- Es wurde ein einfacher Task Scheduler zur implementierung hochperformanter nicht konkurrenter Server realisiert. Das Scheduler Interface ist sehr einfach gehalten. Nicht desto trotz ist über die Verarbeitung beliebiger Dateihandle auch die Integration von UNIX Signalen und IPC Kommunikation möglich
Die entwickelten Bibliotheken stehen unter der GPL-Lizenz und sind unter http://senf.berlios.de frei verfügbar.