Cyber-Physical Systems, emergente Software, Smart Ecosystems – was ändert sich wirklich?

Softwareentwicklung 2020

Jens Knodel, Christian Webel

Vernetzung – der domänenübergreifende Megatrend für Software und Systeme – ist die Herausforderung für Entwicklungsorganisationen in der Zukunft. Zukünftig werden Softwaresysteme offen gestaltet werden, sodass die Zusammenarbeit mit anderen, zur Entwicklungszeit unbekannten Systemen ermöglicht wird. Dabei muss eine hohe, systemübergreifende Qualität von Anfang bis Ende der Systemkette erreicht werden. Damit dies möglich wird, müssen sich auch die Entwicklungsorganisationen hinter den Systemen wandeln. Partizipative Softwareentwicklung also die offene Zusammenarbeit über, Organisationsgrenzen hinweg ist der Schlüssel zum Erfolg bei der Softwareentwicklung, 2020.

In modernen Unternehmen ist Software schon heute der entscheidende Treiber für Produkt- und Prozessinnovationen geworden. Alleinstellungsmerkmale gegenüber der Konkurrenz werden dabei zunehmend durch die Vernetzung der eigenen Software mit anderen Systemen erzeugt. Die Basis für die Entwicklung dieser Software der Zukunft ist ein Paradigmenwechsel in der Softwareindustrie: weg von monolithischen Einzelsystemen hin zu offenen, vernetzten, skalierbaren und dienstorientierten Software Ecosystems. Abbildung 1 verdeutlicht diesen Trend. Dabei lassen sich traditionell zunächst zwei unterschiedliche Systemklassen charakterisieren:

  •  Informationssysteme: Ein Informationssystem beschreibt im Allgemeinen „die Summe aller geregelten betriebsinternen und -externen Informationsverbindungen sowie deren technische und organisatorische Einrichtung zur Informationsgewinnung“ [1] und -verarbeitung. Informationssysteme sind häufig prozessorientierte Systeme zur Unterstützung und/oder Automatisierung von Geschäftsprozessen.
  • Eingebettete Systeme: Ein eingebettetes System ist ein stark anwendungsorientiertes System zur produktintegrierten Kontrolle, Überwachung und/oder Regelung eines technischen Prozesses mittels Sensoren und Aktuatoren. Die Recheneinheit ist hier im Gegensatz zu den Informationssystemen direkt in den technischen Kontext integriert.

Daneben ist in den letzten Jahren im Geschäftsumfeld, auch aufgrund ihrer Popularität im privaten Bereich, eine dritte Systemklasse entstanden – die mobilen Systeme. Diese sind nicht eindeutig den Informationssystemen oder den eingebetteten Systemen zuzuordnen, da sie Eigenschaften beider Systemklassen aufweisen.

  • Ein mobiles System besteht aus mindestens einer Anwendung, die auf einem oder mehreren mobilen Endgeräten zum Einsatz kommt. Von mobilen Geschäftssystemen (oder -anwendungen) spricht man, wenn die mobile Anwendung mindestens einen Geschäftsprozess unterstützt bzw. erweitert.

 Der Trend der Vernetzung wird in den beiden zuerst genannten Systemklassen stets weiter vorangetrieben, und vermehrt werden auch mobile Systeme in die Abläufe integriert. Emergente Unternehmenssoftwaresysteme [2] stellen dabei die nächste Evolutionsstufe für Informationssysteme dar und ermöglichen das Internet der Dienste. Vernetzte eingebettete Systeme hingegen werden zu Cyber-Physical Systems (CPS) [3] und führen schließlich zum Internet der Dinge.

  • Emergente Unternehmenssoftwaresysteme: Dies sind komponentenbasierte Informationssysteme, die durch Integration, Kombination und Veränderung von Softwarekomponenten unterschiedlicher Hersteller entstehen. Die Integration und Kombination muss in dieser Form nicht zwangsläufig vorgeplant sein, sondern kann dem Emergenzprinzip [4] folgen. Dabei müssen jedoch unter allen Umständen die Funktionalität und die qualitativen Eigenschaften des Gesamtsystems erhalten bleiben oder wertschöpfend verbessert werden. Durch dieses intelligente Verknüpfen von vorhandenen Angeboten und das Hinzufügen von ergänzenden Komponenten und Dienstleistungen können in kurzer Zeit völlig neue Produkte oder Prozesse entstehen. Anwender emergenter Unternehmenssoftware erhalten individuelle Lösungen „aus einem Guss“ – durch einfache Zusammenstellung von Standardlösungen mehrerer Anbieter. Der Vorteil ist ein wartungsarmes Produkt (aus Sicht des Anwenders), das mit geringen Investitionen angeboten werden kann. Geschäftsmodelle können so flexibilisiert und marktorientierter betrieben und in Software abgebildet werden.
  • Cyber-Physical Systems (CPS): Sie beschreiben die enge Integration von eingebetteten Systemen über dedizierte Kommunikationsinfrastrukturen mit dem Internet [5]. Mithilfe von Sensoren und Aktuatoren erfolgt eine Repräsentation der physikalischen Welt durch digitale Objekte, was zum einen neue Anwendungen mit hohem wirtschaftlichem Potenzial ermöglicht, zum anderen aber auch eine sehr hohe Komplexität mit sich bringt. In Anbetracht der Tatsache, dass es sich bei den meisten dieser Systeme um sicherheitskritische Systeme handelt, ist die Fähigkeit eines Unternehmens, die Qualität eines Systems sicherzustellen und zu garantieren, ein Schlüsselfaktor dafür, dass mit dem eigenen System als Teil eines CPS auch wirklicher Geschäftserfolg erzielt werden kann.

Die Treiber der beiden neuen Systemklassen sind unterschiedlich. Bei emergenten Unternehmenssoftwaresystemen wird eher der Geschäftsprozess optimiert: Triebfeder sind die Informationssysteme – die Top-down durch Verfügbarkeit von Daten aus eingebetteten Systemen in Echtzeit kontrollieren und reagieren können. Im Gegensatz dazu stehen die technischen Regelungs- oder Überwachungsprozesse bei den Cyber-Physical Systems im Vordergrund: Hier sind die eingebetteten Systeme die Triebfeder. Sie optimieren Bottom-up durch Kommunikation mit anderen eingebetteten Systemen die technischen Prozesse. Schon heute wird beispielsweise in der chemischen Industrie durch vertikale Integration eine Verzahnung von Informationssystemen und eingebetteten Systemen angestrebt, angefangen bei der Unternehmensebene (ERP) über die Betriebs- und Prozessleitebene (MES) bis hin zur Steuerungsebene (SPS) als Schnittstelle zum technischen Produktionsprozess mit Sensoren und Aktuatoren. Und über standardisierte Schnittstellen können Prozesse auf jeder Systemebene unternehmensübergreifend gekoppelt werden.

[ header = Seite 2: Smart Ecosystems ]

Smart Ecosystems

Es lässt sich schon heute absehen, dass diese beiden Systemklassen zukünftig immer weiter zusammenwachsen werden. So genannte Smart Ecosystems sind die nächste Evolutionsstufe. Sie schlagen eine Brücke zwischen der Domäne der Informationssysteme und der der eingebetteten Systeme. Sie vernetzen emergente Systeme und CPS zu einem einzigen Ökosystem, in dem Internet der Dienste, Dinge, und Daten miteinander verschmelzen. Geschäftsprozesse und technische Prozesse sind gleichwertig und beeinflussen sich gegenseitig. Optimierungen werden aus globalen Gesichtspunkten durchgeführt:

  • Smart Ecosystems: In einem Software Ecosystem stellen verschiedene Organisationen Daten, Funktionalitäten oder Services bereit, die zu innovativen Lösungen verknüpft werden können. Software Ecosystems werden als „smart“ bezeichnet, wenn sie nicht triviale Informationssysteme zur Erreichung von Unternehmenszielen und nicht triviale eingebettete Systeme zur Erfüllung von technischen Zielen integrieren. Sie wirken dabei als eine Einheit, um gemeinsame übergeordnete Ziele zu erreichen (die kein Einzelsystem alleine erreichen könnte). In Smart Ecosystems werden dynamisch kontextabhängige Informationen genutzt, wobei die einzelnen Systeme sich gegenseitig beeinflussen.

Abb. 1: Informationssysteme und eingebettete Systeme entwickeln sich zu Smart Ecosystems

Einer der Hauptunterschiede zu heutiger Softwareentwicklung in Smart Ecosystems ist die Offenheit. Neben der Öffnung der Systeme zur Laufzeit (die wir auch schon bei emergenten Systemen oder Cyber-Physical Systems beobachten können) werden auch die Organisationen zur Entwicklungszeit über Unternehmensgrenzen hinweg geöffnet. Das einzelne Unternehmen wird in naher Zukunft seine Produkte und Geschäftsmodelle nicht mehr alleine entwickeln, sondern sich im Verbund mit gleichwertigen Partnern zusammenschließen.

Offene Systeme zur Laufzeit

Smart Ecosystems ermöglichen das Verweben von Anwendungen und Prozessen über Unternehmensgrenzen hinweg sowie die dynamische Komposition von Diensten unterschiedlicher Anbieter zu neuen Diensten und deren agile Integration in die adaptiven Geschäftsprozesse von Anwendern. Dabei werden Komponenten und Prozesse in das Ökosystem verlagert. Die zentrale Voraussetzung dafür ist die Gewährleistung eines durchgängigen Niveaus an Sicherheit, Datenschutz und vor allen Dingen Dienstqualität. Dies muss so geschehen, dass mögliche Haftungsansprüche auf ein akzeptables Niveau begrenzt, aber auch durchgesetzt werden können. Die Herausforderungen für die partizipative Softwareentwicklung ergeben sich direkt aus den Anforderungen. So müssen die für das Smart Ecosystem erstellten Komponenten in der Lage sein, sich an unvorhergesehene Einsatzmöglichkeiten anzupassen, sowohl während der Entwicklungszeit als auch zur Laufzeit. Dabei dürfen jedoch keine kritischen Kerneigenschaften des Systems verletzt werden, was als weitere Herausforderung zur Entwicklungszeit die Qualitätssicherung bringt. Des Weiteren muss jede Komponente des Smart Ecosystems in der Lage sein, Daten über die Nutzung der Komponente in Echtzeit zu sammeln und zur Verfügung zu stellen. Diese Daten werden zum einen für die ständige Überwachung von Service-Level Agreements (SLA) zur Laufzeit benötigt, aber auch als Feedback für die Entwickler zur Wartung der Komponenten. Darüber hinaus müssen Vertrauensmodelle etabliert werden, und es müssen Mechanismen zur Daten(fluss)kontrolle im Smart Ecosystem vorhanden sein.

Die Integration von Komponenten oder Diensten kann typischerweise automatisiert über die Plattform eines Providers innerhalb des Ökosystems erfolgen, die entsprechende Mechanismen zur Erreichung der notwendigen Offenheit bereitstellt. Für viele Unternehmen stellen Software Ecosystems eine elegante Möglichkeit dar, auch kleinere Kundengruppen oder Marktnischen zu adressieren, die für sich genommen nicht profitabel genug sind. Diese Unternehmen nutzen eine Ecosystem-Plattform, um ihre Standardsoftware externen Entwicklern oder Dienstleistern zugänglich zu machen, die dann die originären Anwendungen anpassen, erweitern und im jeweiligen Nischenmarkt ausrollen.

[ header = Seite 3: Partizipative Zusammenarbeit zur Entwicklungszeit ]

Partizipative Zusammenarbeit zur Entwicklungszeit

Das Zusammenspiel zwischen Entwicklungsorganisationen wird sich von der Beauftragung im klassischen Auftraggeber-Auftragnehmer-Verhältnis hin zu einer gemeinsamen, partizipativen Entwicklung von mehr oder weniger gleichberechtigten Partnern wandeln. Der Endkunde entscheidet letztendlich, welche Dienstleistungen von welchen Anbietern er in sein Smart Ecosystem integrieren möchte. Die Prinzipien des Software Engineering werden eine besondere Art von Software Ecosystem etablieren, in dem über Organisationsgrenzen hinweg entwickelt wird. Hierzu müssen heutige Entwicklungsmethoden (z. B. agile Vorgehensweisen oder das V-Modell) den zukünftigen Herausforderungen entsprechend angepasst werden.

Hochgradig komplexe Anwendungslandschaften wie Smart Ecosystems erfordern die Bündelung der Kompetenzen der einzelnen Partnerorganisationen, um als Ganzes erfolgreich zu sein. Wegen der zu hohen Investitionskosten und des zu großen Risikos ist es ohnehin unwahrscheinlich, dass eine einzelne Organisation es anstrebt, ein komplettes Ökosystem zu gestalten. Vielmehr wird der Nutzen im Zusammenspiel der einzelnen Partner gesehen, um schnell und dynamisch auf neue Anforderungen zu reagieren. 

Wie in Abbildung 2 gezeigt, gehen wir auch davon aus, dass das Entwickeln, Betreiben und Warten eines Smart Ecosystems signifikanten Einfluss auf die einzelnen Rollen innerhalb der Wertschöpfungskette haben wird. Heute bestellt ein Kunde klassischerweise bei einem Lösungsanbieter oder einem Systemintegrator ein fertiges Produkt. Was von diesem Produkt vom Lösungsanbieter selbst entwickelt oder durch einen Lieferanten erstellt wurde, ist oft nicht transparent, für den Kunden meist jedoch irrelevant. Diese Rollenverteilung wird sich in Zukunft ändern.

Abb. 2: Verändertes Rollenmodell

Kunden in einem Smart Ecosystem sind zwar weiterhin Endanwender oder Unternehmen, die für eine bestimmte Dienstleistung zahlen, sie müssen sich allerdings viel stärker mit ihren eigenen Anforderungen, insbesondere hinsichtlich der nicht funktionalen Eigenschaften, auseinandersetzen. Sie müssen in die Lage versetzt werden, aus dem Angebot der Dienstleistungen die für sie optimalen Dienste auszuwählen und zu nutzen. Hier sind beispielsweise mithilfe einer domänenspezifischen Sprache Anforderungen zu beschreiben, damit eine (teil-)automatisierte, aber optimale Auswahl,  Konfiguration und Komposition von vorhandenen Komponenten oder Diensten unterschiedlicher Anbieter oder Lieferanten zur Realisierung eines Geschäftsmodells möglich ist.

Lösungsanbieter werden zu Dienstleistern und offerieren Mehrwertdienste durch Integration und Adaption von Komponenten und Diensten unterschiedlicher Lieferanten. Ein Lösungsanbieter benutzt dabei im Gegensatz zum Kunden die Komponenten und Dienste Dritter nur, um seinen eigenen Dienst zu konstruieren. Er ist darüber hinaus gegenüber dem Endkunden für die bereitgestellte Dienstgüte, beschrieben in einem Service-Level Agreement (SLA), verantwortlich. Da er üblicherweise mehr als einen Kunden hat, ist die große Herausforderung für ihn, die im Ökosystem bereitgestellte Leistung entsprechend der SLAs auf seine Kunden aufzuteilen. Auch muss er sein Risiko zwischen den SLAs zu seinen Kunden und seinen SLAs zu den Lieferanten abwägen. Die Rolle des Lösungsanbieters in einem Smart Ecosystem ist wichtig, um die Notwendigkeit von spezifischen Methoden für die wertschöpfende Integration von Softwarekomponenten unterschiedlicher Hersteller bei gleichzeitiger Abwägung der genannten Risiken auszudrücken.

Lieferanten stellen Funktionalitäten oder Dienstleistungen als wiederverwendbare Komponenten  zur Verfügung. Diese Komponenten  müssen einerseits hochgradig flexibel und anpassbar sein, andererseits aber auch eine gewisse Qualität und Stabilität aufweisen. Der Lieferant ist gegenüber dem Lösungsanbieter, aber auch gegenüber dem Endkunden für die Qualität seines Dienstes oder seiner Komponente verantwortlich, was für ihn ein gewisses Risiko birgt. Ein Lieferant benutzt in der Regel keine Komponenten oder Dienste Dritter.

Die Rolle des Lieferanten ist wichtig, um die Notwendigkeit von neuartigen partizipativen  Software-Engineering-Methoden auszudrücken, beispielsweise zur Definition von Anforderungen an Komponenten oder Dienste ohne Kenntnis des finalen Einsatzes oder zur Beschreibung von Komponententestverfahren ohne Kenntnis der Zielkonfiguration.

[ header = Seite 4: Zusammenfassung ]

Zusammenfassung

Genau wie die Systemklassen an sich wird sich auch das Software Engineering im Jahr 2020 wandeln. Neben neuen Methoden, Prozessen, Techniken und Technologien wird die größte Neuheit aus unserer Sicht die Offenheit in zweifacher Form sein. Zum einen werden Systeme offen entwickelt, sodass zur Laufzeit dynamisch beliebige, aber vertrauenswürdige Erweiterungen  innerhalb des Ökosystems ausgeführt werden können. Zum anderen werden sich auch die Entwicklungsorganisationen öffnen müssen. Das klassische Auftraggeber-Auftragnehmer-Modell hat ausgedient. Es wird partizipativ – also gemeinsam zwischen gleichberechtigten Partnern – entwickelt werden. Hierzu müssen Organisationen zur Entwicklungszeit interne Informationen an Dritte weitergeben, sodass  die eigenen Systeme erweitert oder adaptiert werden können. Aus unserer Sicht wird das schließlich zu globalen Teams führen, die über Unternehmensgrenzen hinweg gemeinsam Nutzen und Mehrwert für alle beteiligten Partner erzeugen. Der Nutzen für Organisationen ergibt sich dabei aus dem möglichen Verkauf der gemeinsamen Mehrwertleistungen; zwischen den Organisationen selbst wird partizipativ, also offen, kollaborativ und gleichberechtigt, zusammengearbeitet. Das partizipative Software Engineering als Paradigma der Zusammenarbeit bietet Lösungen für die Herausforderungen bei der Entwicklung, beim Betrieb und bei der Evolution eines Smart Ecosystems, das sich aus Beiträgen verschiedener Partner über Organisationsgrenzen hinweg zusammensetzt.

Geschrieben von
Jens Knodel
Jens Knodel
  Dr.-Ing. Jens Knodel leitet die Research Area „Smart Ecosystems“ am Fraunhofer-Institut für Experimentelles Software Engineering (IESE) in Kaiserslautern, Deutschland. Er ist verantwortlich für Projektmanagement, Methodenentwicklung und Technologietransfer in Forschungs- sowie Industrieprojekten.
Christian Webel
Christian Webel
  Dr.-Ing. Christian Webel ist seit 2008 Mitarbeiter am Fraunhofer IESE in Kaiserslautern und verantwortlich für mehrere nationale und internationale Forschungskooperationen, darunter auch das Leitprojekt EMERGENT des Software-Clusters. Daneben verantwortet er den Bereich Dienstgüte (Quality of Service).
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.