Ixxat Blog

Fachartikel, Experten-Tipps
und mehr...

Blog

OpenSource-Software – Segen und Fluch

by Norbert Binder | Jun 27, 2016

Fachartikel
von Norbert Binder

OpenSource-Software ist ursprünglich im Umfeld von Hochschulen, Forschungseinrichtungen und im Heim-Entwickler-Bereich entstanden, um einen weiten Nutzerkreis an den verschiedenen Entwicklungen teilhaben zu lassen und gleichzeitig auch das Know-How anderer für eigene Projekte nutzen zu können.

Zwischenzeitlich findet OpenSource auch in industriellen Anwendungsbereichen immer größeren Anklang. So findet man z.B. im Bereich Protokollsoftware viele Projekte zu verschiedenen Netzwerksystemen wie Modbus, CANopen und Powerlink. Teilweise werden diese auch gezielt durch die entsprechenden Nutzerorganisationen beworben.

OpenSource-Software im industriellen Umfeld bietet viele Möglichkeiten und auch Vorteile. Es gibt allerdings auch einige Aspekte derer man sich bewusst sein sollte, wenn man mit dem Gedanken spielt, OpenSource-Software in eigenen kommerziellen Produkten einzusetzen.

 

openSource-title

Die Stärke der Community

OpenSource-Software lebt vom Geben und Nehmen. Softwareprojekte werden veröffentlicht und der oder die Entwickler können diese durch das Feedback der Nutzer verbessern. Oft ist das Interesse der Nutzer so groß, dass sie sich aktiv an dieser Entwicklung beteiligen. Interessante Projekte können so schnell wachsen und die Fähigkeiten vieler Beteiligter mit einfließen lassen. Diese immense Wissensbasis eröffnet ungeahnte Möglichkeiten, wie man an einschlägigen Office-Paketen, Web-Browsern und Messagern sehen kann. Auch für Themen wie verschlüsselte Kommunikation und anonymes Surfen im Netz wurden Lösungen entwickelt, lange bevor dies bei kommerziellen Firmen aktuell wurde.

Aber genau in diesem Aufbau steckt auch ein gewisses Risiko für kommerzielle Nutzer. Die OpenSource-Software ist nur so stark wie ihre Community. Aktuelle Themen oder Software des täglichen Lebens werden in der Regel eine ausreichend große Entwicklerbasis über längere Zeit halten können. Spezielle Themen, an denen Einzelne wenige aktiv sind, bleiben dagegen oft nur so lange interessant, wie die treibenden Entwickler diese Technologien benötigen. Zeit, Ressourcen und auch Interesse sind danach an andere Projekte gebunden, so dass Wartung, Pflege und Weiterentwicklung an älteren Softwarepaketen nicht selten zum Erliegen kommt. So können Projekte auch sehr schnell wieder verschwinden. Überbleibsel derartiger Projekte finden sich überall in den einschlägigen OpenSource-Portalen, wie z.B. Sourceforge. Ganz gravierend ist hierbei das Thema Softwarepflege – ein Konsument kann ggf. auf eine andere Anwendung umsteigen, welche dieselbe Funktionalität bietet. Im industriellen Umfeld ist eine langfristige Verfügbarkeit unumgänglich – die Software sollte entsprechend der langen Maschinennutzdauer (von bis zu 50 Jahren) auch entsprechend langfristig gepflegt und ggf. ausgebaut werden.

Das andere Extrem tritt dann ein, wenn ein Projekt sehr erfolgreich ist und von einem Unternehmen gekauft wird. Die Weiterentwicklung steht dann anderen nicht mehr zur Verfügung.

Für kommerzielle Nutzer kann dies sehr schnell zu einem Problem werden. Während sich ein privater Anwender über langwierige oder ausbleibende Antworten auf seine Supportanfragen nur ärgert, können sich für einen kommerziellen Entwickler sehr schnell Fertigstellungstermine verschieben. Noch problematischer wird es, wenn ein Fehlerfall beim Kunden auftritt. Hier ist sehr schnelle Reaktion gefragt, weil eine stillstehende Produktionsanlage immense Verluste verursacht. Die Macher von OpenSource-Software übernehmen in solchen Fällen keine Verantwortung. Der Integrator muss das Problem selbst lösen und den entstandenen Schaden selbst übernehmen.

Hersteller von kommerzieller Software müssen mindestens die gesetzliche Gewährleistung bieten. Aus eigenem Interesse verbessern sie die Software um wettbewerbsfähig zu bleiben und bieten Kunden darüber hinaus oft die Möglichkeit zu erweitertem Support, und lassen sie durch Updates und vergünstigte Upgrades an den Vorteilen der Weiterentwicklung teilhaben. Nach Absprache können auch Langzeitverfügbarkeit vereinbart werden. Fehlersuche und -Behebung wird zudem als weiterer Service angeboten.

Weiterentwicklung und Konformität

 

Wird Software im industriellen Umfeld eingesetzt, müssen in der Regel verschiedene Standards erfüllt werden. Bei Protokollsoftware sind dies die Spezifikationen des Protokolls. Deren Einhaltung wird in sogenannten Conformance-Tests überprüft, die von manchen Nutzerorganisationen empfohlen, von anderen sogar verpflichtend vorgeschrieben werden. So darf ein Gerät nur dann das DeviceNet-Label tragen, wenn es die umfangreichen Hard- und Software-Tests der ODVA bestanden hat.

Es gibt hier OpenSource-Anbieter, die ihre Software immer auf dem aktuellsten Stand halten und somit gutes Vorbild für weitere Anwender und Anbieter sind. Allerdings wurde z.B. der CANopen Conformance Test nur deswegen eingeführt, weil es diverse Anbieter gab, deren Protokollsoftware nur ein Sub-Set der CANopen-Spezifikation implementiert hatten und in Netzwerken Fehler verursacht haben.

Die Software kommerzieller Anbieter ist in der Regel in einer Vielzahl von Anwendungen integriert und kann somit als robust und bewährt bezeichnet werden. Das Einhalten von Normen und Spezifikationen ist Standard und meist haben Kunden die Möglichkeit sich vor und während der Konformitäts-Tests ihrer Geräte begleiten zu lassen.

 

Lizenzrechtliche Aspekte

 

Meist freuen sich Entwickler von OpenSource-Projekten wenn ihre Software Anklang findet und von anderen genutzt wird. Sie profitieren vom Feedback und stellen ihre Software gerne im Sourcecode zur Verfügung. OpenSource-Software lebt davon, dass Wissen und Weiterentwicklungen der Nutzer wieder an die Gemeinschaft und das Projekt zurückfließen. Dies steht im Widerspruch zu kommerziellen Firmenprojekten, für die ihre Entwicklungen Kapital sind und somit zu schützen sind.

Um das Gleichgewicht von Geben und Nehmen zu halten, gibt es auch für OpenSource-Software Nutzungsbedingungen und Lizenzen. So gibt es zum Beispiel Copy-Left-Lizenzen wie GNU. Diese besagt, dass Software weitergegeben werden und auch kommerziell genutzt werden darf. Damit sind zwei wesentliche Bedingungen verknüpft. Die Autoren der Software müssen genannt werden und alle davon abgeleiteten Softwareprodukte müssen unter der gleichen Lizenz stehen. Damit wird eine Anwendung, die OpenSource-Bestandteile nutzt automatisch zu OpenSource-Software, deren Quellcode offengelegt werden muss.

Ein anderer Lizenztyp sind BSD-Lizenzen. Diese erlauben dem Nutzer Software zu nutzen, zu verändern und auch binär zu verbreiten, ohne den Sourcecode mitliefern zu müssen. Lediglich der original Copyright-Hinweis, die BSD-Lizenzbedingungen sowie der Haftungsausschluss müssen entweder im Quelltext (bei Sourcecode) oder in der Dokumentation (bei Binaries) enthalten sein.

In der Praxis sieht es dann z.B. so aus, dass zwar in den meisten Linux Distributionen ein TCP/IP-Stack enthalten ist, für kommerzielle Anwendungen aber explizit TCP/IP-Protokollsoftware angefragt wird die „OpenSource-Frei“ ist.

Haftung bei OpenSource-Software

 

Die Lizenzbedingungen von OpenSource-Software beinhalten in der Regel einen Haftungsausschluss, der jegliche Garantie oder Haftung im Schadensfall ausschließt. Dabei gilt es zu bedenken, dass die Originaltexte dieser Lizenzverträge meist US-Amerikanischem Recht entsprechen. Für den Hersteller eines Produktes ist jedoch zu beachten, dass das für ihn geltende Recht unter Umständen einen derartigen generellen Haftungsausschluss nicht gestattet. Darüber hinaus ist er als Hersteller für die Produkthaftung und damit für die einwandfreie Funktionsweise aller verwendeten Komponenten verantwortlich, unabhängig davon, wie die Haftungsbedingungen dafür aussehen.

 

OpenSource heißt nicht umsonst

Interessenten können die Software inklusive der Sourcen kostenfrei aus dem Internet laden anstatt einem kommerziellen Anbieter dafür Geld zu zahlen. Dies ist für den privaten Gebrauch, für Tests oder Lehre und Forschung ein nicht zu verleugnender Vorteil, der auch dazu führt, dass die eine oder andere Technologie einen größeren Interessentenkreis findet. In diesem Anwendungsbereich ist es auch akzeptiert, dass man mehrere Stunden oder Tage investiert bis ein lauffähiges System eingerichtet ist.

Im kommerziellen Bereich kostet jede Entwicklerstunde bares Geld. OpenSource-Software ist in der Regel an eine kleine Zahl von Zielplattformen angepasst. Die Wahrscheinlichkeit ist höher, dass Software auf einem Linux PC mit fast unerschöpflichem Speicher- und CPU-Ressourcen entwickelt wurde als auf einem speziellen embedded Mikrokontroller. Die Anpassung an die eigene CPU+OS Plattform, inklusive Speicher- und Performanceoptimierung sowie die Einrichtung der Entwicklungsumgebung kann mehrere Tage bis Wochen in Anspruch nehmen und erfordert hohes Detailwissen zu der verwendeten Soft- und Hardware. Damit überschreiten die Entwicklungsaufwände recht schnell den Kaufpreis einer kommerziellen Lösung, selbst wenn der Anbieter noch einige Stunden Entwicklung in Rechnung stellt. Der kommerzielle Anbieter hat außerdem den Vorteil, dass er derartige Anpassungen regelmäßig durchführt, die Technologien kennt und letztendlich Gewährleistung dafür übernimmt, dass die Software funktioniert. Damit ist neben den Kosten auch das Risiko für den integrierenden Entwickler deutlich geringer und er kann sich auf sein Kerngebiet, d.h. seine Anwendung konzentrieren.

 

Fazit

 

OpenSource-Software ist nicht mehr wegzudenken und hat viele Vorteile für die Nutzer. Durch den kostenlosen Zugang zu Technologien ist die Einstiegshürde für die Anwendung in Forschung und Lehre aber auch für Privatanwender gering und führt somit zu einer größeren Verbreitung in zum Teil neuen Anwendungsbereichen.

Beim Einsatz von OpenSource in kommerziellen Produkten sollte die gewählte Software jedoch genau geprüft werden, um den Anpassungsaufwand und somit zusätzliche Entwicklungskosten und Risiken bezüglich Leistungsfähigkeit, Konformität und Langzeitverfügbarkeit minimieren zu können.