Software Wiederverwendung

(c) richterfotos - fotolia.com

Die Softwareentwicklung versucht sich nach und nach der industriellen Fertigung anzupassen. Wenn man bedenkt wie lange schon Häuser gebaut werden oder Autos vom Fließband laufen, ist die Softwareentwicklung dagegen noch recht jung. Dabei steht die Software in der Komplexität einem Auto oder einem Wolkenkratzen in nichts nach. In den letzten Jahren hat sich die Softwareentwicklung durch standardisierte Prozesse und Patterns immer mehr der industriellen Fertigung angepasst. Die Service Orientierte Architektur (SOA) ist eine Methode um die Softwareentwicklung in Richtung Fertigung und Standardprozesse zu treiben. Richtig angewandt kann die SOA in der Entwicklung viele Kosten sparen und die Entwicklung von neuer Software oder Systemen beschleunigen. Oft wird die SOA jedoch falsch angewandt indem teuere Lösungen von großen Anbietern gekauft werden. SOA ist ein Architekturmuster. Tools wie ESB oder Standards wie Web Services können dabei unterstützen. Die SOA sollte aber nicht nach einem Produkt ausgerichtet werden.

Software Architektur

Bei SOA wird immer wieder gerne von „Wiederverwendung“ gesprochen. Die große Frage dabei ist auf welcher Stufe soll den die Wiederverwendung stattfinden ? Oft müssen dafür implementierte Softwareservices für die Wiederverwendung herhalten. Wer kennt nicht die Sprüche „Können wir die Software nicht im Projekt X wiederverwenden ?“ Das ist aber nur eine Art der Wiederverwendung. Wenn wir wieder die Parallele zu der industriellen Fertigung ziehen, ist ein komplexer Softwareservice z.B. in der Industrie ein Hammer. Jetzt weiß aber jeder der schon einmal im Baumarkt war, dass es den Hammer in unterschiedliche Ausführungen und Größen gibt. So ist dies auch bei den Softwareservicen. Ein Softwareservice wurde für einen bestimmten Einsatz implementiert und je nach Projekt oder Produkt kommt dieser Service in einer leicht modifizierten Variante zum Einsatz. Um diese Variante herzustellen wird ein Schablone oder Gussform verwendet die mit einem entsprechenden Material (Technologie) begossen wird. Um es wieder auf die Software abzubilden wäre die Gussform ein Servicebeschreibung die Plattform und Technologie neutral ist (PIM). Je nach Projekt oder Produkt kann der Service in seiner bereits implementierten Technologie eingebunden oder in einer neuen Technologie implementiert werden (PSM).

 

Platform Independent Model

Bei der Platform Independent Model (PIM) wird ein System und dessen Services (Business Services) auf unterschiedlichster Ebene mit ihren  fachlichen Eigenschaften und zusammenhängen beschrieben. Die Services werden aber innerhalb dieser Architektur nur rein fachlich beschrieben und Technologie neutral. Das Modell beinhaltet so genannte Views. In einer View, innerhalb dieser Modells, werden die Business Services sehr grob mit ihren fachlichen Schnittstellen beschrieben, in einer anderen View werden die Business Services weiter heruntergebrochen und verfeinert. Zudem werden in einer nächsten View die Abhängigkeiten und Beziehungen zwischen den Business Service beschrieben. Dies geschieht aber immer Technologie neutral. Die Servicebeschreibung kann natürlich mögliche Standards für die Umsetzung der Services oder Interface beinhalten.

Man kann sich das in etwa so vorstellen wie beim Bauplan eines Hammers. Der Bauplan eines Hammers hat auch unterschiedliche Sichten auf den Hammer und dessen einzelne Bauteile. Auf der obersten View wird der Hammer als reiner Hammer mit seiner Funktionsweise beschrieben. Auf der nächsten View wird der Hammer weiter heruntergebrochen und in Stiel als als auch Hammerkopf unterteilt. Die Materialen der Bauteile werden hier nicht festgelegt.

 

Platform Specific Model

Das Platform Specific Model (PSM) nimmt die Services ab einer gewissen Granularität auf und beschreibt sie in ihrer technischen Ausführung. In dieser Architekturebene kann der  jeweilige Service in Technologien wie J2EE, .Net oder OSGi beschrieben werden. Dabei wird nun das fachliche Interface durch die verwendeten Technologie angepasst und mit seinen Datentypen im Detail modelliert. Je nach Tool kann aus der Servicebeschreibung eine WSDL oder Programmcode generiert werden. Kommen wir auf das Beispiel Hammer zurück, so wird nun das Material beschrieben aus welchem Stiel und Hammerkopf bestehen.

 

Wiederverwendung auf mehreren Ebenen

Die Wiederverwendung kann nun auf den zwei genannten Ebenen stattfinden. Wird ein neues Projekt oder Produkt geplant, wird zuerst auf der PIM Ebene nach den passenden Bauteilen bzw. Servicen geschaut. Sind die Services mit ihren fachlichen Eigenschaften vorhanden, kann auf der PSM Ebene nach der technischen Umsetzung des Services und auf Wiederverwendung geprüft werden. Wenn der bereits implementierte Service sogar in einer passenden Technologie (z.B. Java, Web Service etc.) vorliegt, kann der implementierte Softwareservice vielleicht bis zu 100% wiederverwendet werden. Sollte der Service im PIM vorhanden aber die Implementierung aus technischer Sicht nicht kompatibel sein, so kann das Modell des Services wiederverwendet werden und der Softwareservice muss „nur“ noch in der jeweiligen Technik modelliert und implementiert werden. Der Service liegt nun in mehreren technischen Implementierungen vor.

Ziehen wir wieder die Parallele zum Beispiel am Anfang des Artikels, wäre der Hammerkopf nun in einer Ausfertigung aus Metall und in einer Anderen aus hartem Gummi. Das Modell mit seiner fachlichen Beschreibung und  der Aufgabe eines Hammerkopfes wäre aber geblieben.

 

, , , , , , , ,

Schreibe einen Kommentar

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*