22.03.2006, 23:59 Uhr

Software- entwicklung als Wettbewerbsvorteil

Viele Grossunternehmen verfügen über eine IT-Architektur mit Hunderten von Anwendungen, die auf äusserst komplizierte Weise miteinander verbunden sind. Gefragt ist jetzt ein deutlich effizienterer Softwareansatz.
Andreas Herger ist Manager Rational Software bei IBM Schweiz.
In den vergangenen zwei Jahrzehnten haben sich die Geschäftsprozesse geradezu dramatisch verändert. Monolithische und nur bedingt flexible Prozesse, die streng von einzelnen Geschäftsbereichen gesteuert wurden, wandelten sich immer mehr zu verteilten, konstanten Veränderungen unterworfenen Prozessen, welche offen für Kunden, Lieferanten, Drittanbieter und andere Unternehmensbereiche sind.Dieser Umbau hat sich in einzelnen Etappen vollzogen, da Versuche einer plötzlichen Veränderung eines ganzen Unternehmens nahezu in allen Fällen fehlgeschlagen sind. Durch den Ansatz der schrittweisen Veränderung kann das Unternehmen wesentlich kosteneffizienter auf geschäftliche Anforderungen reagieren. Die IT muss sich verändern, um mit den sich wandelnden Geschäftsprozessen mithalten zu können. Die IT-Architektur hat sich mittlerweile zum Flaschenhals für die Unternehmen entwickelt: Monolithische Systeme sind nicht wieder verwendbar, eine Adhoc-Integration ist schwierig umzusetzen. Hinzu kommt, dass durch das Fehlen von Standards die Interoperabilität praktisch verhindert wird. Durch die mangelnde Flexibilität werden selbst kleinste Veränderungen zu einem kostspieligen Faktor, so dass diese so lange vermieden werden, bis es letztendlich zu spät ist. Die meisten Grossunternehmen verfügen über eine IT-Architektur mit Hunderten von Anwendungen, die auf äusserst komplizierte Weise miteinander verbunden sind. Gefragt ist deshalb jetzt ein deutlich effizienterer Softwareansatz.

Lose Komponenten

Ein moderner Geschäftsprozess besteht aus lose miteinander verbundenen, modularen Komponenten mit definierten Schnittstellen, die problemlos miteinander verknüpft und nach Bedarf auch ausgetauscht werden können. Dieser Ansatz wird als Component Business Modeling (CBM) bezeichnet. Hier werden Geschäftsprozesse als einzelne Komponenten modelliert, welche Services für andere Komponenten bereitstellen beziehungsweise von diesen beziehen. Die Services können von den eigenen Mitarbeitern ausgeführt, an Lieferanten ausgelagert oder automatisiert werden. Der Geschäftsprozess passt zu einer Softwarearchitektur, die aus ebenfalls lose miteinander verbundenen, modularen Software-Services mit definierten Schnittstellen besteht, welche - genau wie beim Geschäftsprozess - problemlos miteinander verknüpft und nach Bedarf ausgetauscht werden können. Diesen Ansatz nennen wir Service Oriented Architecture (SOA). Geschäftskomponenten setzen sich aus einer Reihe von Aktivitäten und Ressourcen zusammen, die eng miteinander gekoppelt sind. Eine solche virtuelle Geschäftseinheit ist in der Lage, nahezu selbstständig zu agieren. Da aber Aktivitäten von anderen Aktivitäten abhängen, entstehen auch Abhängigkeiten zwischen den jeweiligen Geschäftskomponenten. Ziel einer Neuausrichtung der Struktur von Geschäftsprozessen ist die Gruppierung von Aktivitäten und Ressourcen, so dass Abhängigkeiten innerhalb der Komponenten maximiert und Abhängigkeiten zwischen den Komponenten minimiert und explizit über Services definiert werden. Ein Service ist eine explizite Schnittstelle ohne «Hintertürchen», für welche Parameter, Interaktionsprotokolle und Leistungsanforderungen definiert sind. Komponenten, welche dieselben Services ausführen, sind untereinander austauschbar. Jede Geschäftskomponente wird über die von ihr bereitgestellten und benötigten Services definiert. Ein kompletter Geschäftsprozess entsteht durch die Verknüpfung der Anforderungen von Komponenten mit den bereitgestellten Services anderer Komponenten. Sind alle Anforderungen erfüllt, ist der Prozess vollständig definiert. Der Prozess kann durch den Austausch von Komponenten - basierend auf deren Services - verändert werden.

Universelle Konnektivität

Geschäftsprozesse können mit Hilfe einer Service Oriented Architecture (SOA) implementiert werden. Dabei wird eine Anwendung als Service mit einer Standardschnittstelle dargestellt, über welche strukturierte Geschäftsinformationen in Form von Nachrichten zwischen Services ausgetauscht werden. Eine SOA stellt die universelle Konnektivität sicher - unabhängig von Computerplattform, Programmiersprache oder Standort. Erreicht wird dies durch einen Enterprise Service Bus (ESB), der über die Middleware bereitgestellt wird. Ein ESB ist ein Konnektor zwischen beliebigen Elementpaaren. Die SOA nutzt das so genannte Event-Passing, um eine zu enge Koppelung zwischen den einzelnen Services zu vermeiden. Sie unterstützt zwingend offene Standards, da Software von verschiedenen Unternehmen und Softwareanbietern zum Einsatz kommt. Eine SOA beinhaltet mehrere Schichten (Layers) zwischen den Anwendungen auf der unteren Ebene und der lose gekoppelten «Choreografie», welche auf der obersten Ebene Services miteinander verbindet.

Komplexe Architektur

Bei der Model Driven Architecture (MDA) kommen High-Level-Modelle mit Problemdomänenkonzepten zum Einsatz, bei denen mit Hilfe von Automationstools plattformspezifischer Code in definierte Architekturen eingebunden wird. Die erfolgreiche Umsetzung der MDA setzt die Spezifikation von Domänenmodellen, Architekturframeworks und Automationstools voraus. Problemdomänenmodelle können mit Hilfe von UML-Profilen oder domänenspezifischen Sprachen, so genannten DSLs, definiert werden. Beide Vorgehensweisen haben ihre Vorteile. Hinter einer Architektur verbergen sich Faktoren wie Dekomposition in Subsysteme, Topologie, Interaktionsregeln, Datenformate, Ressourcenmanagement, Möglichkeiten für zukünftige Erweiterungen und Testsupport. Architektur ist ein komplexes Thema und erfordert viel Erfahrung. Durch Architekturframeworks steht jedoch jedermann ein gutes Architekturkonzept zur Verfügung. Ein Framework ist ein Architekturmuster, das ein Gerüst einer Ausführungsumgebung, vordefinierte Subsysteme sowie eine Topologie, Interaktionsregeln und Datenformate umfasst. Hinzu kommen Anschlusspunkte für Plug-ins, Bibliotheken mit sinnvollen, plug-in-fähigen Komponenten sowie einige Beispielanwendungen. Solche Frameworks beinhalten beispielsweise IDEs und Echtzeitframeworks. Branchenspezifische Frameworks befinden sich zurzeit in einigen Branchen in der Entwicklungsphase. Da Frameworks die Nutzung domänenspezifischer Modelle erlauben, fallen umfangreiche Spezifikationen weg, da die vordefinierten, in die Frameworks eingebauten Werte verwendet werden.

Offenheit vorausgesetzt

Offene Standards sind die Voraussetzung für hohe Interoperabilität. Und die Unternehmen haben diese Anforderung bereits erkannt. Durch offene Standards können alle Technologien miteinander verknüpft und integriert werden. Die IT erhält dadurch einen deutlich modulareren Charakter. Linux- und Java-Technologien haben die offenen Standards in die Unternehmen gebracht. Heute können Unternehmen über XML- und Web-Services Informationen und Anwendungen über die Unternehmensgrenzen hinaus gemeinsam nutzen und die Implementierung offener Standards in die Tat umsetzen. Last but not least empfiehlt sich die Einführung eines iterativen Ansatzes bei der Softwareentwicklung. Dies ermöglicht Iterationen als temporäre Kurskorrekturen, um Fehler im Projektverlauf zu vermeiden. Eine Iteration beginnt und endet mit einer gemeinsamen Codebasis, verfolgt bestimmte Ziele und Termine und erzeugt letztendlich eine ausführbare Version. Am Ende jeder Iteration werden die gesetzten Ziele erneut bewertet, um die grösste verbleibende Risikoquelle im Projekt zu eliminieren. Durch die frühzeitige Erkennung von Risiken kann das Projektende zielstrebig angegangen werden, ohne dass grössere Fehler befürchtet werden müssen. Die Softwareentwicklung hat sich inzwischen zu einem ganz zentralen Geschäftsprozess entwickelt, welcher eine treibende Kraft für Innovation und Produktivität ist und eine nicht zu unterschätzende Bedeutung für den zukünftigen Erfolg des Unternehmens hat.
Andreas Herger


Das könnte Sie auch interessieren