- Reinraum-Implementierung
-
Eine Reinraum-Implementierung bzw. Cleanroom-Implementierung ist eine Software, die eine schon existierende kopiert, aber unter besonderen Bedingungen entwickelt wurde. Dabei wird das Original vom Entwickler nicht verwendet. Als Hilfsmittel stehen allein Dokumentationen und Spezifikation von Dritten zur Verfügung.
Der Begriff Reinraumimplementierung leitet sich von Reinraum ab und ist somit eine Umschreibung der Bedingungen, unter denen die Software erstellt wurde.
Beschreibung
Eine Reinraumimplementierung leistet somit Vergleichbares wie die Vorlage, ist aber vollkommen unabhängig von dieser. Dies ist wichtig, weil in den meisten Ländern das Urheberrecht für Software nur die konkrete Implementierung unter Schutz stellt, nicht aber die Funktionsweise einer Software. Erstellt man somit eine Software nach dem Reinraum-Prinzip, so ist die neue Software frei von Urheberrechten des Rechteinhabers der Vorlage.
Ein wichtiger Grund für die Erzeugung einer Reinraumimplementierung ist daneben historisch gewachsene Software. Dadurch, dass bei solcher Software zum Beginn der Entwicklung nicht unbedingt klar war, wie das Endergebnis aussehen würde, also nicht linear darauf hin entwickelt wurde, enthält sie häufig entwicklungsbedingte Schwächen, die sich im Nachhinein kaum beheben lassen. Solche Schwächen können das Laufzeitverhalten in den Punkten Sicherheit und Geschwindigkeit betreffen. Bei einer Reinraumimplementierung wird im Unterschied dazu versucht, direkt und stringent auf das bereits vollständig formulierte Endziel hin zu entwickeln.
Prominente Beispiele für Reinraum-Entwicklungen finden sich besonders im Open-Source-Umfeld, da in diesem Umfeld selten geeignete Lizenzvereinbarungen getroffen werden können. Beispiele sind das Betriebssystem Linux, das freie Betriebssystem ReactOS oder die Windows-kompatible Laufzeitumgebung Wine.
Eine Reinraumimplementierung schützt nur vor Forderungen aus dem Urheberrecht. Andere gewerbliche Schutzrechte, wie das Patent- und Markenrecht können durch eine Reinraumimplementierung nicht umgangen werden. Aus diesem Grund legen sich gerade große Softwarekonzerne zunehmend ein großes Repertoire an Patenten zu.
Von großer Bedeutung im Zusammenhang mit Reinraumimplementierungen sind Spezifikationen von Schnittstellen, Dateiformaten und Protokollen, sowie das so genannte Reverse Engineering. Auch die Programmierung von Software aus einer durch Reverse Engineering gewonnen Dokumentation bezeichnet man als Reinraumimplementierung. Die Dokumentation und die Programmierung muss aber von verschiedenen Personen durchgeführt werden. Die Dokumentation kann gegebenenfalls durch einen Rechtsanwalt auf Urheberrechtsverletzung überprüft werden.
Wikimedia Foundation.