Читать книгу Praxishandbuch Open Source - Christian Galetzka - Страница 47

f) Sockets

Оглавление

134

Eine weitere Möglichkeit zur Kommunikation bzw. zum Datenaustausch zwischen Programmen stellen die sog. Sockets dar. Sockets sind Kommunikationsendpunkte, die zum Austausch von Daten dienen und vom jeweiligen Betriebssystem bereitgestellt werden. Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen. Dabei spielt es keine Rolle, ob sich die Programme innerhalb eines Rechnersystems befinden oder auf unterschiedlichen, über ein Netzwerk verbundenen Systemen. Im Vergleich zu Pipes sind Sockets bidirektional, über sie können Daten also sowohl empfangen als auch gesendet werden.37

135

Ursprünglich wurden Sockets ebenfalls zunächst für UNIX entwickelt, finden sich heute aber ebenfalls nicht ausschließlich im UNIX- bzw. Linux Bereich, sondern auch in anderen gängigen Betriebssystemen wie Windows oder OS/2.

136

Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der eigentlichen Anwendungssoftware. Ein Computerprogramm fordert einen Socket vom Betriebssystem an und das Betriebssystem hat die Aufgabe, alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen zu verwalten.38 Ähnlich wie bei den Pipes bleiben die Programme also grundsätzlich unabhängig voneinander und kommunizieren nur über standardisierte, vorgegebenen Schnittstellen miteinander. Die jeweilige Funktionsfähigkeit des einzelnen Programms wird durch den Socket nicht beeinträchtigt. Einige der FOSS Lizenzen mit Copyleft machen die Kommunikation mit anderer Software über Standardschnittstellen zur Voraussetzung für eine dynamische Verlinkung (siehe Rn. 107f.). Allerdings geht man bei der dynamischen Verlinkung in der Regel von Programmteilen aus, die unselbstständig sind. Bei der Kommunikation über Sockets kommunizieren jedoch selbstständige Programme miteinander, so dass hier in der Regel nicht von einem derivative work auszugehen ist. Zumindest für die GPL hat die FSF auch hier in ihren FAQs darauf hingewiesen, dass nach ihrer Ansicht Sockets kein derivative work erzeugen.39 Wie immer gilt es aber auch hier, sich die genauen Vorgaben der FOSS Lizenzen sowie die konkrete technische Umsetzung der Socket-Verbindung anzusehen und abzuwägen.

Praxishandbuch Open Source

Подняться наверх