Im Bereich der Unternehmensarchitektur sind Architekturmuster ein wichtiges Werkzeug zur Entwicklung effektiver Lösungen für häufig auftretende Probleme. Muster ermöglichen es, Bausteine in ihren Kontext zu stellen und Architekten ein Vorbild für die Gestaltung von Lösungen zu liefern, die sich in der Vergangenheit als wirksam erwiesen haben. In diesem Artikel untersuchen wir das Konzept von Architekturmustern im Kontext des TOGAF ADM und geben ein Beispiel für ein Architekturmuster im Kontext der Entwicklung von Geschäftsanwendungen.
Was sind Architekturmuster
Ein „Muster“ wurde definiert als: „eine Idee, die in einem praktischen Kontext nützlich war und wahrscheinlich auch in anderen nützlich sein wird“ (Quelle: Analysis Patterns – Wiederverwendbare Objektmodelle, von M. Fowler).
Im TOGAF-Standard gelten Muster als eine Möglichkeit, Bausteine in ihren Kontext zu stellen; beispielsweise, um eine wiederverwendbare Lösung für ein Problem zu beschreiben. Bausteine sind das, was Sie verwenden: Muster können Ihnen sagen, wie, wann, warum und welche Kompromisse Sie dabei eingehen müssen.
Muster bieten die Aussicht, dem Architekten zu helfen, Kombinationen von Architektur- und/oder Lösungsbausteinen (ABBs/SBBs) zu identifizieren, die sich in der Vergangenheit als wirksam erwiesen haben, und möglicherweise die Grundlage für wirksame Lösungen in der Zukunft bilden.
Muster-Techniken gelten allgemein als eine etablierte und wertvolle Methode der architektonischen Gestaltung, die von Christopher Alexander, einem Bauarchitekten, beschrieben wurde. Er erläuterte diesen Ansatz in seinem 1979 veröffentlichten Buch „The Timeless Way of Building“. Dieses Buch bietet eine Einführung in die Ideen hinter dem Einsatz von Mustern, und Alexander folgte ihm mit zwei weiteren Büchern („A Pattern Language“ und „The Oregon Experiment“), in denen er seine Beschreibung der Merkmale und Vorteile eines musterbasierten Ansatzes zur Architektur erweiterte.
Architekturmuster im TOGAF ADM
Die Architektur-Entwicklungsmethode (ADM) ist ein zentraler Bestandteil des TOGAF-Standards der Open Group, der einen Rahmen für die Erstellung und Verwaltung von Unternehmensarchitekturen bereitstellt. Innerhalb der ADM sind Architekturmuster ein leistungsfähiges Werkzeug, das Architekten dabei unterstützen kann, bewährte Lösungen für häufig auftretende Probleme zu identifizieren und die Entwicklung effektiver Architekturen zu beschleunigen.
Im Kern ist ein Architekturmuster einfach eine Beschreibung einer wiederverwendbaren Lösung für ein Problem, die sich in der Praxis als wirksam erwiesen hat. Wie die obige Definition suggeriert, ist ein Muster eine Idee, die in einem Kontext nützlich war und wahrscheinlich auch in anderen nützlich sein wird. Muster können verwendet werden, um Lösungen auf verschiedenen Abstraktionsstufen zu beschreiben, von hochwertigen Architekturmustern, die die Gesamtstruktur eines Systems beschreiben, bis hin zu niedrigstufigen Designmustern, die beschreiben, wie einzelne Komponenten implementiert werden sollen.
Ein wesentlicher Vorteil der Verwendung von Architekturmustern ist, dass sie Architekten helfen können, Kombinationen von Architekturbausteinen (ABBs) oder Lösungsbausteinen (SBBs) zu identifizieren, die sich in der Vergangenheit als wirksam erwiesen haben. Dies kann Zeit und Aufwand sparen, indem ein Ausgangspunkt für die Architektur-Entwicklung bereitgestellt wird, anstatt bei jedem neuen Projekt von Grund auf zu beginnen.
Zusätzlich können Architekturmuster dazu beitragen, dass Architekturen konsistent und schlüssig sind. Durch die Verwendung von Mustern zur Beschreibung von Lösungen für häufig auftretende Probleme können Architekten eine gemeinsame Sprache und einen gemeinsamen Begriffskatalog schaffen, der über die gesamte Organisation hinweg verwendet werden kann. Dies kann Missverständnisse vermeiden und sicherstellen, dass alle an einem gemeinsamen Verständnis der Architektur arbeiten.
Muster-Techniken wurden als eine wertvolle Methode der architektonischen Gestaltung durch Christopher Alexander, einen Bauarchitekten, etabliert, der diesen Ansatz in seinem Buch „The Timeless Way of Building“ beschrieb. Alexanders Ideen wurden später in zwei weiteren Büchern, „A Pattern Language“ und „The Oregon Experiment“, erweitert.
Im Kontext der Unternehmensarchitektur gibt es mehrere verschiedene Arten von Architekturmustern, die eingesetzt werden können. Zu den häufigsten gehören:
- Referenzarchitekturen – Diese beschreiben die Gesamtstruktur eines Systems oder einer Anwendung und bieten einen Ausgangspunkt für die Architektur-Entwicklung.
- Lösungsmuster – Diese beschreiben, wie spezifische Probleme mithilfe einer Kombination aus ABBs und SBBs gelöst werden können.
- Prozessmuster – Diese beschreiben bewährte Praktiken und gängige Arbeitsabläufe für die Entwicklung und Implementierung von Architekturen.
- Designmuster – Diese beschreiben, wie einzelne Komponenten gestaltet und implementiert werden sollten, und können dazu beitragen, Konsistenz und Wartbarkeit über die gesamte Architektur hinweg zu gewährleisten.
Architekturmuster sind ein leistungsfähiges Werkzeug für Architekten, die effektive und effiziente Unternehmensarchitekturen entwickeln möchten. Indem sie bewährte Lösungen für häufig auftretende Probleme identifizieren, können Architekten Zeit und Aufwand sparen, während sie sicherstellen, dass Architekturen konsistent, schlüssig und mit den organisatorischen Zielen und Zielen ausgerichtet sind.
Ein Vorlage zur Dokumentation von Architekturmustern
1. Mustername
Ein beschreibender Name für das Muster, der klar den gelösten Problemstellung kommuniziert.
2. Problem
Eine Beschreibung des Problems oder der Herausforderung, das das Muster lösen soll. Dies sollte klar und spezifisch sein und Kontext für das Muster liefern.
3. Kontext
Eine Beschreibung des Kontexts, in dem das Muster eingesetzt werden soll. Dies sollte Informationen über die Organisation, das entwickelte System oder die Anwendung sowie relevante Beschränkungen oder Einschränkungen enthalten.
4. Lösung
Eine Beschreibung der Lösung, die das Muster bereitstellt. Dies sollte klar und spezifisch sein und erklären, wie das Muster verwendet werden kann, um das in Abschnitt 2 beschriebene Problem zu lösen.
5. Vorteile
Eine Beschreibung der Vorteile der Verwendung des Musters. Dies sollte erklären, wie das Muster dazu beitragen kann, das Problem zu lösen, und Belege für seine Wirksamkeit liefern.
6. Abwägungen
Eine Beschreibung der Abwägungen oder Kompromisse, die bei der Verwendung des Musters getroffen werden müssen. Dies sollte jegliche Einschränkungen oder Nachteile des Musters sowie die zu managenden Risiken enthalten.
7. Umsetzung
Eine Beschreibung, wie das Muster umgesetzt werden kann. Dies sollte Anleitungen zur Anwendung des Musters sowie relevante Beispiele oder Anwendungsfälle enthalten.
8. Verwandte Muster
Eine Liste verwandter Muster, die in Kombination mit dem aktuellen Muster nützlich sein können. Dies sollte alle eng verwandten Muster oder solche enthalten, die zusammen mit dem aktuellen Muster verwendet werden können.
9. Quellen
Eine Liste der Quellen und Referenzen, die bei der Entwicklung des Musters verwendet wurden. Dies sollte alle relevanten Publikationen, Artikel oder anderen Ressourcen enthalten.
Durch die Verwendung dieses Templates können Architekten klare und effektive Architekturmuster erstellen, die leicht über verschiedene Projekte und Kontexte hinweg geteilt und wiederverwendet werden können.
Ein Beispiel für ein Architektur-Muster im geschäftlichen Kontext
Betrachten wir ein Beispiel für ein Architektur-Muster im Kontext der Entwicklung von Geschäftsanwendungen.
Angenommen, ein Unternehmen muss eine neue webbasierte Anwendung zur Verwaltung von Kundenbeziehungen entwickeln. Eine der zentralen Herausforderungen, mit der sie konfrontiert ist, ist die Gewährleistung, dass die Anwendung skalierbar ist und eine große Anzahl gleichzeitiger Benutzer verarbeiten kann.
Mit dem oben beschriebenen Architektur-Muster-Template können wir ein Muster erstellen, um dieses Problem zu lösen:
1. Mustername:Skalierbare Webanwendung
2. Problem:Die Entwicklung einer webbasierten Anwendung zur Verwaltung von Kundenbeziehungen, die eine große Anzahl gleichzeitiger Benutzer verarbeiten kann.
3. Kontext:Ein Unternehmen muss eine neue webbasierte Anwendung zur Verwaltung von Kundenbeziehungen entwickeln. Die Anwendung wird von einer großen Anzahl von Benutzern genutzt und muss skalierbar sein, um Spitzenzeiten zu bewältigen.
4. Lösung:Das Muster „Skalierbare Webanwendung“ bietet eine Lösung für die Entwicklung einer webbasierten Anwendung, die eine große Anzahl gleichzeitiger Benutzer verarbeiten kann. Die zentralen Elemente des Musters umfassen:
- Lastverteilung: Verteilen eingehender Anfragen auf mehrere Server, um sicherzustellen, dass kein einzelner Server überlastet wird.
- Caching: Verwendung von Speicher im Arbeitsspeicher, um häufig abgerufene Daten zu speichern und die Last auf der Datenbank zu reduzieren.
- Horizontales Skalieren: Hinzufügen zusätzlicher Server zur Infrastruktur, um erhöhte Last zu bewältigen.
- Datenbank-Sharding: Aufteilung der Datenbank in kleinere Partitionen, um die Last auf mehrere Server zu verteilen.
5. Vorteile:Durch die Verwendung des Musters „Skalierbare Webanwendung“ kann das Unternehmen sicherstellen, dass ihre Anwendung eine große Anzahl gleichzeitiger Benutzer verarbeiten kann, ohne Leistungsprobleme oder Ausfallzeiten zu erleiden. Dies kann die Kundenzufriedenheit verbessern und den Umsatz steigern, indem sichergestellt wird, dass die Anwendung stets verfügbar ist.
6. Abwägungen:Das Muster „Skalierbare Webanwendung“ erfordert zusätzliche Infrastruktur und Ressourcen für die Umsetzung, was die Kosten erhöhen kann. Zudem kann die Implementierung von Lastverteilung und Caching die Komplexität der Anwendungsarchitektur erhöhen.
7. Umsetzung: Um das skalierbare Webanwendungsmuster umzusetzen, sollte das Unternehmen überlegen, einen Lastverteiler wie NGINX zu verwenden, Caching mit einer Technologie wie Redis oder Memcached zu implementieren und die Anwendung horizontal mit einer Cloud-Plattform wie AWS oder Azure zu skalieren. Die Datenbank-Sharding-Technik kann mit einer Datenbanktechnologie wie MongoDB umgesetzt werden.
8. Verwandte Muster: Verwandte Muster, die in Verbindung mit dem skalierbaren Webanwendungsmuster nützlich sein können, umfassen:
- Mikrodienstarchitektur: Aufteilung der Anwendung in kleinere, besser verwaltbare Dienste, die unabhängig skaliert werden können.
- API-Gateway: Bereitstellung eines einzigen Eingangspunkts zum Zugriff auf die Dienste der Anwendung und zur Verwaltung des Datenverkehrs.
9. Referenzen: Einige Referenzen, die bei der Entwicklung des skalierbaren Webanwendungsmusters nützlich sein können, umfassen:
- High Scalability (Blog):
- Building Scalable Web Sites (Buch) von Cal Henderson
Durch die Verwendung dieses Architekturmusters kann das Unternehmen Zeit und Aufwand bei der Entwicklung einer skalierbaren Webanwendung zur Verwaltung von Kundenbeziehungen sparen. Das Muster bietet eine bewährte Lösung für ein häufiges Problem und kann leicht an die spezifischen Bedürfnisse und Anforderungen des Unternehmens angepasst werden.
Beispiel eines Architekturmusters im Kontext von Single Sign-On
Hier ist ein Beispiel eines Architekturmusters im Kontext von Single Sign-On (SSO):

1. Mustername: Single Sign-On (SSO)
2. Problem: Mehrere Anwendungen innerhalb einer Organisation erfordern von Benutzern eine getrennte Authentifizierung, was zu einer schlechten Benutzererfahrung und erhöhtem Verwaltungsaufwand für die Benutzerkonten führt.
3. Kontext: Eine Organisation verfügt über mehrere Anwendungen, die von Benutzern getrennt authentifiziert werden müssen, was bei den Benutzern Frustration und Verwirrung verursacht. Die Organisation möchte eine nahtlose Benutzererfahrung bieten, indem Benutzer sich einmal authentifizieren und dann auf alle Anwendungen zugreifen können, ohne ihre Anmeldeinformationen erneut eingeben zu müssen.
4. Lösung: Das Single Sign-On-Muster bietet eine Lösung, um Benutzern die Möglichkeit zu geben, sich einmal zu authentifizieren und auf mehrere Anwendungen zuzugreifen, ohne ihre Anmeldeinformationen erneut eingeben zu müssen. Die wesentlichen Elemente des Musters umfassen:
- Identitätsanbieter (IdP): ein zentraler Dienst, der Benutzer authentifiziert und Tokens oder Aussagen bereitstellt, die zum Zugriff auf andere Anwendungen verwendet werden können.
- Dienstanbieter (SP): eine Anwendung oder ein Dienst, der sich auf den IdP zur Authentifizierung von Benutzern stützt und den Zugriff basierend auf den von dem IdP bereitgestellten Tokens oder Aussagen gewährt.
- Standardprotokolle: Verwendung branchenüblicher Protokolle wie SAML, OAuth oder OpenID Connect, um die Kommunikation zwischen IdP und SPs zu ermöglichen.
5. Vorteile: Durch die Verwendung des Single Sign-On-Musters kann die Organisation eine nahtlose Benutzererfahrung bieten und den Verwaltungsaufwand für die Benutzerkonten reduzieren. Benutzer müssen sich nur einmal authentifizieren und können dann auf alle Anwendungen zugreifen, ohne sich mehrere Sätze von Anmeldeinformationen merken zu müssen. Dies kann die Benutzerzufriedenheit steigern und die Kosten für Helpdesk-Support senken.
6. Abwägungen: Die Umsetzung des Single Sign-On-Musters erfordert zusätzliche Infrastruktur und Ressourcen, was die Kosten erhöhen kann. Zudem kann die Integration mit bestehenden Anwendungen maßgeschneiderte Entwicklung oder Konfiguration erfordern, was die Komplexität erhöht.
7. Umsetzung: Um das Single Sign-On-Muster umzusetzen, sollte die Organisation einen Identitätsanbieter auswählen, der branchenübliche Protokolle wie SAML, OAuth oder OpenID Connect unterstützt. Dienstanbieter sollten so konfiguriert werden, dass sie sich auf den IdP für Authentifizierung und Autorisierung verlassen. Bestehende Anwendungen müssen möglicherweise mit dem IdP integriert werden, was maßgeschneiderte Entwicklung oder Konfiguration erfordern kann.
8. Verwandte Muster: Verwandte Muster, die in Verbindung mit dem Single Sign-On-Muster nützlich sein können, umfassen:
- Federierte Identität: Erweiterung des Single Sign-On-Musters zur Unterstützung der Authentifizierung über Organisationen oder Domänen hinweg.
- Zugriffssteuerung basierend auf Attributen: Verwendung von Benutzerattributen, die vom IdP bereitgestellt werden, zur Steuerung des Zugriffs auf Ressourcen innerhalb von Anwendungen.
9. Referenzen: Einige Referenzen, die bei der Entwicklung des Single Sign-On-Musters nützlich sein können, umfassen:
Durch die Verwendung dieses Architekturmusters kann die Organisation die Benutzererfahrung verbessern und die administrative Belastung reduzieren, indem sie eine Einzelanmeldung implementiert, die es Benutzern ermöglicht, auf mehrere Anwendungen zuzugreifen, ohne ihre Anmeldeinformationen erneut eingeben zu müssen. Das Muster bietet eine bewährte Lösung für ein häufig auftretendes Problem und kann leicht an die spezifischen Bedürfnisse und Anforderungen der Organisation angepasst werden.
Architekturmuster für Unternehmensarchitektur im Vergleich zu Architekturmustern für Softwarearchitektur
Architekturmuster für Unternehmensarchitektur und Architekturmuster für Softwarearchitektur sind verwandte, aber unterschiedliche Konzepte.
Architekturmuster für Softwarearchitektur konzentrieren sich auf die Gestaltung und Implementierung einzelner Software-Systeme oder Anwendungen. Sie bieten eine Reihe von Leitlinien und Best Practices für die Gestaltung und Implementierung der Softwarekomponenten eines Systems, wie etwa Module, Schnittstellen und Interaktionen.
Architekturmuster für Unternehmensarchitektur hingegen konzentrieren sich auf die Gestaltung und Ausrichtung mehrerer Software-Systeme und Anwendungen innerhalb einer Organisation. Sie bieten eine Reihe von Leitlinien und Best Practices für die Gestaltung und Implementierung der Gesamtarchitektur eines Unternehmens, einschließlich seiner Geschäftsprozesse, Datenstrukturen und Technologieinfrastruktur.
Architekturmuster für Unternehmensarchitektur behandeln typischerweise Themen wie Systemintegration, Interoperabilität und Skalierbarkeit, die von Architekturmustern für Softwarearchitektur nicht typischerweise abgedeckt werden. Sie berücksichtigen auch den weiteren Geschäftskontext, in dem Software-Systeme eingesetzt werden, und zielen darauf ab, IT-Systeme mit den Zielen und Zielen der Organisation auszurichten.
Beispiele für Architekturmuster für Unternehmensarchitektur umfassen Service-Oriented Architecture (SOA), Business Process Management (BPM) und Enterprise Integration Patterns (EIP), während Beispiele für Architekturmuster für Softwarearchitektur Model-View-Controller (MVC), Microservices und Layered Architecture umfassen.

Architekturmuster für Softwarearchitektur
Architekturmuster für Softwarearchitektur sind wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwaregestaltung. Sie bieten einen strukturierten Ansatz für die Gestaltung und Implementierung von Software-Systemen, indem sie eine Reihe von Regeln und Richtlinien definieren, die sicherstellen, dass das System robust, skalierbar und wartbar ist.
Architekturmuster für Softwarearchitektur bieten eine abstrakte Sicht auf das System, indem sie seine wichtigsten Komponenten und deren Interaktionen identifizieren. Sie definieren die Beziehungen zwischen diesen Komponenten und stellen eine Reihe von Regeln bereit, wie sie kommunizieren und zusammenarbeiten sollten.
Durch die Verwendung von Architekturmustern für Softwarearchitektur können Entwickler Zeit und Aufwand sparen, indem sie bewährte Lösungen für häufig auftretende Probleme wiederverwenden, anstatt bei jedem neuen Projekt von Grund auf zu beginnen. Dies kann dazu beitragen, die Qualität der resultierenden Software zu verbessern sowie Entwicklungszeit und Kosten zu reduzieren.
Einige Beispiele für Architekturmuster für Softwarearchitektur umfassen Model-View-Controller (MVC), Microservices, Layered Architecture, Service-Oriented Architecture (SOA) und Event-Driven Architecture (EDA).
Hier sind einige beliebte Architekturmuster für Softwarearchitektur:
- Model-View-Controller (MVC)-Muster: Dieses Muster teilt eine Anwendung in drei miteinander verbundene Komponenten – das Modell, die Ansicht und den Controller –, um die Komplexität zu managen und eine Trennung der Verantwortlichkeiten zu erreichen.
- Microservices-Architektur: Dieses Muster zerlegt eine Anwendung in kleinere, unabhängig bereitstellbare Dienste, die separat entwickelt, bereitgestellt und skaliert werden können.
- Layered-Architektur: Dieses Muster teilt eine Anwendung in logische Schichten, wobei jede Schicht für einen bestimmten Aspekt der Funktionalität der Anwendung verantwortlich ist, um Modularität und Trennung der Verantwortlichkeiten zu gewährleisten.
- Service-Oriented Architecture (SOA): Dieses Muster ist ein architektonischer Ansatz zum Aufbau verteilter Systeme, bei denen Dienste die grundlegenden Bausteine darstellen.
- Eventgesteuerte Architektur (EDA): Dieses Muster betont die Erzeugung, Erkennung, Verbrauch und Reaktion auf Ereignisse, die innerhalb eines Systems auftreten, und ermöglicht eine flexiblere und skalierbare Architektur.
- Domain-Driven Design (DDD): Dieses Muster fördert die Verwendung einer gemeinsamen Sprache und eines Modells zur Beschreibung des Problems, was zu einer wartbarer und verständlicheren Codebasis führt.
- Hexagonale Architektur: Dieses Muster strukturiert eine Anwendung um einen zentralen Kern herum, wobei Ports und Adapter die Kommunikation zwischen dem Kern und externen Systemen ermöglichen.
- CQRS (Command Query Responsibility Segregation): Dieses Muster trennt die Lese- und Schreibmodelle einer Anwendung, was eine effizientere Abfrage und verbesserte Skalierbarkeit ermöglicht.
- Reaktive Architektur: Dieses Muster ist eine Reihe von Gestaltungsprinzipien, die darauf abzielen, resiliente, skalierbare und reaktive Systeme zu entwickeln, die auf Veränderungen in der Umgebung reagieren können.
- Reine Architektur: Dieses Muster betont die Trennung der Anliegen zwischen den verschiedenen Schichten einer Anwendung, mit dem Ziel, Code zu erzeugen, der leicht zu lesen, zu testen und zu pflegen ist.
Zusammenfassung
Architekturmuster sind eine wertvolle Gestaltungstechnik in der Unternehmensarchitektur, die Architekten eine Möglichkeit bietet, effektive Lösungen für häufig auftretende Probleme zu entwickeln. Indem sie eine Bauplan für die Gestaltung von Lösungen bereitstellen, die sich in der Vergangenheit bewährt haben, können Architekturmuster Architekten helfen, Zeit und Ressourcen zu sparen, gleichzeitig aber auch die Gesamtqualität der Lösung verbessern. In diesem Artikel haben wir ein Beispiel für ein Architektur-Muster im Kontext der Entwicklung von Geschäftsanwendungen vorgestellt, speziell im Kontext von Single Sign-On (SSO). Durch die Verwendung des Single-Sign-On-Musters können Organisationen eine nahtlose Benutzererfahrung bieten und die administrativen Aufwendungen für die Verwaltung von Benutzerkonten reduzieren, gleichzeitig aber auch die Benutzerzufriedenheit steigern und die Kosten für Helpdesk-Support senken.











