Gil Müller - Services zu Softwarearchitektur

English Neues Kontakt Vision Services Projekte Hintergrund Historie


Vision

Die großen Auswirkungen von Informationssystemen auf unser berufliches und privates Leben sind wohl bekannt. Abgesehen von dem PC zeigt gerade das schnelle Wachstum des Internets die Wichtigkeit der Informationstechnologie. Das Internet ist nicht nur erfolgreich als Organisationswerkzeug für verteilte Information, sondern auch als Service Framework. Es begann mit einfachen Server Scripts (CGI) für Gästebücher und ist längs noch nicht am Ende der Entwicklung mit Webdiensten für B2B Services und mobilen ortsbasierten Diensten. Aus technologischer Sicht hat das Internet die Entwicklung von verteilten Systemen standardisiert und vereinfacht.

Trotz allem ist die Konstruktion eines verteilten Systems immer noch eine Herausforderung. Das Alltagsgeschäft erfordert Datenkohärenz innerhalb einer Unternehmenslandschaft, die durch verschiedene Plattformen, Betriebssysteme und Softwaresysteme geprägt ist. Das verteilte System muß auch adaptiv sein in Harmonie mit dem sich änderenden Geschäft. Nicht zuletzt sollte die Produktivität insgesamt gesteigert werden. Im Betrieb sind Sicherheit, Zuverlässigkeit und geringer Wartungsaufwand von großer Bedeutung.

Aus Sicht der Softwareproduktion - die natürlich nicht die Silberkugel für all diese Anforderungen ist - ist es von höchster Wichtigkeit, das Wissen über das verteilte System im Design zu konzentrieren. Das ist das Fundament für eine qualitativ gute und zügige Softwareproduktion.

Das Aufkommen von komponenten-orientierten Design spiegelt die Nöte wieder, die wir im Umgang mit großen und komplexen Softwaresystemen haben. In seiner Essenz fokussiert komponenten-orientiertes Design auf die Verbindungen zwischen den großen Bausteinen - besonders im Kontrast zu objekt-orientierten Design.

Für viele Aufgaben gibt es bereits ausgereifte Systeme. In einem Wartungsprojekt ist es daher oft nur notwendig, einige Änderungen an dem System vorzunehmen, die - in der Terminologie der aspekt-orientierten Programmierung - eine Anzahl von Komponenten durchschneiden. Solch eine Änderung sollte als unabhängige und separate Entität angesehen werden, um Fehlfunktionen des bestehenden System zu vermeiden. (Bei Softwarekonfigurationsystemen sind wir schon so weit, wenn wir von einem Patch sprechen und die der Änderungen als Ganzes in einer Datei zur Verfügung stellen.)

Neue Technologien wie Webdienste versprechen die Wiederverwendbarkeit von Software auf eine neue Stufe zu stellen. Theoretisch können wir ein System aufbauen, in dem jeder Baustein an einer anderen Stelle im Internet lokalisiert ist - außerhalb Ihres Netzwerks. Praktisch geht das nur gut, wenn wir umfassendes Verständnis für die Verbindungsstrukturen entwickelt haben - jenseits von zwei Parteien. Das betrifft insbesondere nichtfunktionelle Eigenschaften wie Sicherheit und Zuverlässigkeit.

Wenn es uns bestimmt ist, Software durch Komposition und Konfiguration von Fremdkomponenten zu produzieren, warum sollten wir nicht auch den Leim kaufen? Das ist die Angelegenheit von Frameworks, Middleware und Protokollen. Ihre Unterschiede und den Stand der Technik zu erörtern, ist weit außerhalb dieses Textes. Aber aufgrund ihres wachsenden Anteils in Softwaresystemen lässt sich abschließend feststellen, daß Kommunikation und Interaktion in der Informatik wichtiger sind als jemals zuvor. Ich freue mich auf diese neue Situation.

© 2002 Gil Müller