Zusammenfassung
- Mary Shaw bezeichnete den Prozeduraufruf als Assemblersprache der Softwareverbindung: ein Mechanismus niedriger Ebene, mit dem wesentlich reichere Beziehungen von Hand codiert wurden.
- Ihr Vokabular trennt Komponente, Connector, Teilnehmerpunkt, Rolle, Protokoll, Konfiguration, Architekturstil, Modulschnittstelle und Systemeigenschaft.
- Ein Connector erster Klasse ist eine spezifizierte architektonische Beziehung; er ist nicht automatisch Microservice, Service Mesh, API-Gateway oder formaler Beweis.
Man zeichne zwei Kästen und eine Linie. Die Kästen heißen bald Parser, Speicher oder Controller. Die Linie bleibt stumm. Transportiert sie einen Strom oder ruft sie eine Operation auf? Darf sie Nachrichten neu ordnen, wiederholen, blockieren oder verteilen? Wer beginnt den Austausch, und welche Zusage gilt nach einem Fehler? Der Strich beantwortet nichts davon.
Von dieser Asymmetrie geht Mary Shaws Bericht des Software Engineering Institute vom Januar 1994 aus: Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status. Für Berechnung und Daten innerhalb einer Einheit hatte die Softwaretechnik gute Darstellungen entwickelt. Beziehungen zwischen Einheiten blieben dagegen im Code verteilt, in Konventionen verborgen oder auf anonyme Pfeile reduziert.
Die Assemblersprache-Metapher ist kein Angriff auf Prozeduraufrufe. Sie markiert die Abstraktionsebene. Pipeline, Ereignissystem, Client-Server-Gespräch und Zugriff auf eine gemeinsame Repräsentation tragen unterschiedliche Verpflichtungen. Wer alle auf „A ruft B auf“ reduziert, entfernt Informationen über Reihenfolge, Zustellung, Synchronisation, Bindung und Gesamtverhalten.
Was die Linie verschweigt
Eine Modulschnittstelle zählt exportierte Prozeduren, Typen oder Variablen auf. Sie beschreibt eine Codeeinheit, aber nicht zwingend das vollständige Protokoll einer mehrstufigen Interaktion, die Verantwortung aller Beteiligten oder die gewünschte Eigenschaft des zusammengesetzten Systems.
Ein Filter kann etwa nach festen Regeln einen Strom konsumieren und erzeugen. Ihn als Prozedur zu verpacken beseitigt nicht die Fragen nach Pufferung, Ablaufplanung und Stromende. Stehen diese Pflichten nur im Verbindungscode, hat der wichtigste Architekturvertrag keinen Namen.
Dasselbe gilt für Ereignisse, gemeinsame Speicher und Netzwerkprotokolle. Der Mechanismus realisiert die Verbindung, erschöpft aber nicht ihre Bedeutung. „Erste Klasse“ heißt bei Shaw, dass sich eine Beziehung als architektonische Einheit benennen, spezifizieren, instanziieren und prüfen lässt.
Begriffe für die richtige Ebene
Die Komponente ist der Ort von Berechnung und Zustand. Ihre sichtbaren Teilnahmepunkte heißen Player: etwa eine Prozedur, ein Port oder das Ende eines Datenstroms.
Der Connector ist der Ort der Beziehung zwischen Komponenten. Sein Protokoll bestimmt erlaubte Interaktion und Garantien; seine Rollen beschreiben die Verantwortung von Client und Server, Produzent und Konsument oder Herausgeber und Abonnent.
Die Konfiguration verbindet Player von Komponenten mit Rollen von Connectoren. An dieser Zuordnung lässt sich fragen, ob ein Player die Rolle erfüllt, Protokolle kompatibel sind und die Topologie das beabsichtigte Verhalten trägt.
Ein Architekturstil beschreibt eine wiederverwendbare Familie mit Einschränkungen für Komponenten- und Connectortypen sowie deren Anordnung. Pipe-and-Filter, Client-Server, Schichten und Blackboard sind Stile, keine einzelnen Konfigurationen.
Die Modulschnittstelle zeigt, was eine Einheit anbietet. Eine Systemeigenschaft wie Kapazität, Durchsatz, Konsistenz, Zuverlässigkeit oder Kompatibilität entsteht aus dem Zusammenbau. Zwei typkorrekte Endpunkte können sich festfahren; zwei gültige APIs können Wiederholungen unterschiedlich deuten. Der Fehler liegt dann im Connectorprotokoll oder in der Zuordnung eines Players zu einer Rolle.
Von der These zur Sprache
Shaws Bericht war Teil eines gemeinsamen Programms an der Carnegie Mellon University. David Garlan und Mary Shaw beschrieben Softwarearchitektur als Entwurfsebene für großräumige Organisation, Interaktion und wiederkehrende Stile. Ihre Arbeit über höherstufige Architektursprachen zeigte, warum Modulmechanismen und informelle Bilder Protokolle und Entwurfsalternativen nicht ausreichend erfassen.
Robert Allen und David Garlan gaben Connectoren eine formale Semantik. In ihrem ICSE-Beitrag von 1994 ist ein Connector eine Sammlung rollenbezogener Protokolle; Kompatibilität wird ähnlich einer Typprüfung untersucht. Das ist die Leistung von Allen und Garlan. Sie pauschal Shaw zuzuschreiben, würde den kooperativen Charakter des Programms verfälschen.
UniCon machte die Idee konkret. Als Autoren sind Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young und Gregory Zelesnik genannt. Komponenten und Connectoren stehen als parallele Konstrukte nebeneinander; Konfigurationen verbinden Player mit Rollen; Datenfluss und Ablaufplanung werden auf derselben Entwurfsebene wie Prozeduraufrufe beschrieben.
Die Grenzen waren offen dokumentiert. UniCon bot fest eingebaute primitive Connectortypen statt frei definierbarer Connectoren, unterstützte damals keine zusammengesetzten Connectoren, und allgemeine Auswege schwächten manche automatische Prüfung. Eine explizite Spezifikation ermöglicht Analyse, ist aber noch kein automatischer Beweis.
Kein Synonym für heutige Infrastruktur
Ein Microservice ist eine Grenze für Berechnung, Bereitstellung und Verantwortung und ähnelt damit eher einer Komponente. Ein Service Mesh kann Transport, Identität, Telemetrie und Wiederholungen umsetzen. Ein API-Gateway kann Eingang, Routing und Regeln vermitteln. Beide können Teile eines Connectors realisieren, definieren jedoch nicht automatisch fachliche Reihenfolge, Idempotenz, Zustandsübergänge oder dienstübergreifende Invarianten.
Erste-Klasse-Status garantiert ebenso wenig formale Verifikation. Eine genaue Spezifikation kann Kompatibilitätsprüfung, Vertragstests oder externe Analyse ermöglichen. Die Stärke des Ergebnisses hängt von Semantik, formulierter Eigenschaft und Werkzeug ab.
Shaws bleibender Entwurfsschritt ist eine Umverteilung der Aufmerksamkeit. Nicht alle Substantive gehören in die Kästen, während die Linie bloße Zeichensetzung bleibt. Die Beziehung braucht einen Namen, ein Protokoll und Rollen; die Zuordnung der Player und die abhängige Systemeigenschaft müssen sichtbar werden. Systeme scheitern oft nicht, weil eine Komponente nicht rechnen kann, sondern weil zwei lokal vernünftige Komponenten durch einen nie ausgesprochenen Ordnungs-, Zeit-, Zustands- oder Wiederherstellungsvertrag zusammentreffen.
Quellen
- Mary Shaw, „Procedure Calls Are the Assembly Language of Software Interconnection“
- SEI-Bericht von 1994 (PDF)
- David Garlan und Mary Shaw, „An Introduction to Software Architecture“
- Robert Allen und David Garlan, „Formalizing Architectural Connection“
- Shaw, DeLine, Klein, Ross, Young und Zelesnik, UniCon-Beitrag
- Geschichte der Softwarearchitektur an der Carnegie Mellon University
- Offizielles Profil von Mary Shaw
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
