Angenommen, Ihre Website hat gerade eine riesige internationale Aktion gestartet. Seiten müssen erstellt, neue Inhalte gespeichert werden, und Kunden strömen auf Ihre Website. Und dann… gibt Ihre Website auf. Das ist das Letzte, was Sie brauchen.
Damit Ihr Site-Managementsystem die Dinge reibungslos bewältigt, egal wie hoch die Last ist, benötigt es eine Architektur, die wie ein gut geöltes Uhrwerk läuft. Wenn Sie jedoch nicht sicher sind, wie die Architektur Ihrer Website aussieht, ist es schwierig zu beurteilen, wie widerstandsfähig sie ist.
AEM bietet eine Architektur, die mit Ihnen wachsen kann, und ist ein ausgezeichnetes Beispiel für dieses gut geölte Uhrwerk. Werfen wir also einen genauen Blick darauf und sehen, was es auszeichnet!
AEM-Architektur: Eine grundlegende Übersicht
Betrachtet man die Adobe Experience Manager-Architektur aus einer breiteren Perspektive, so setzt sich die Plattform aus vier grundlegenden Architekturkomponenten zusammen:
- Autor
- Publisher
- Dispatcher
- Load Balancer
Diese Komponenten arbeiten zusammen, um reibungslose Starts neuer Website-Inhalte und ein nahtloses, schnelles Laden für Ihre Website-Benutzer zu gewährleisten.
Wir werden nicht auf technische Details eingehen, aber wir wollen uns kurz ansehen, wofür jede dieser Komponenten zuständig ist.
Autor
Die Autoreninstanz von AEM ist der Ort, an dem Ihr Content-Produktionsteam arbeitet. Im Wesentlichen ist dies der Arbeitsbereich, in dem all Ihre Webseiten erstellt, organisiert und aktualisiert werden. Hier werden auch alle Medien hochgeladen, die Sie für Ihre Website verwenden möchten, wie Bilder, Videos usw.
Die Autoren-Ebene ist für Ihre Endbenutzer nie sichtbar, was bedeutet, dass alles, woran Sie hier arbeiten, unsichtbar ist, bis Sie sich entscheiden, es zu genehmigen und zu veröffentlichen. Dies gibt Ihren Inhaltserstellern freie Hand, Inhalte zu gestalten und umzugestalten, zu schreiben und umzuschreiben, zu entwerfen und neu zu entwerfen, bis sie eine Seite erstellt haben, die sie Ihren Kunden präsentieren möchten.
Veröffentlichen
Wenn Sie nach dem Teil von AEM suchen, den Ihre Website-Besucher sehen, dann ist es dieser. Die Veröffentlichungs-Ebene ist der Ort, an dem alle Ihre genehmigten und fertiggestellten Website-Inhalte existieren und der Öffentlichkeit live zugänglich sind.
Sobald Sie etwas zur Veröffentlichung in der Autoren-Ebene genehmigt haben, wird es in die Veröffentlichungs-Ebene verschoben und ist für jedermann zugänglich.
Dispatcher
Möglicherweise eine der wichtigsten Funktionen der AEM-Architektur: Dispatcher sind dafür verantwortlich, Ihren Website-Verkehr über Routen zu leiten, die die schnellste Website-Erfahrung ermöglichen.
Dispatcher erfüllen zwei Hauptaufgaben, die Ihrer Website helfen, so schnell wie möglich zu laufen: Caching und Lastausgleich.
Der Dispatcher speichert eine Seite im Cache, nachdem der erste Benutzer sie besucht hat. Nachfolgende Besucher erhalten die zwischengespeicherte Version. Dies geschieht, um Ihre Website zu beschleunigen und die direkte Last auf den Servern zu reduzieren.
Zusätzlich verteilen die Dispatcher den Netzwerkverkehr, der an die Server gerichtet ist, gleichmäßig, damit kein einzelner Server mit Anfragen überlastet wird.
Lastverteiler
Zusätzlich zu den Lastausgleichsaufgaben des Dispatchers existiert ein weiterer Lastverteiler, um den Verkehr von Inhaltserstellern und Endbenutzern gleichmäßig auf Autoren-, Veröffentlichungs- und Dispatcher-Instanzen zu verteilen (wenn mehrere vorhanden sind).
AEM as a Cloud Service Architekturunterschiede
Die AEM Cloud Service Architektur weist Ähnlichkeiten mit AEM 6.5 (On-Premise) auf, hat aber auch deutliche Unterschiede.
Diese Unterschiede zeigen sich sowohl in der Runtime-Architektur von AEM (dem internen Verhalten der Software mit ihren Komponenten) als auch in ihrer Deployment-Architektur (wie der Code der Software geändert wird).
Werfen wir einen kurzen Blick darauf, wie die Runtime- und Deployment-Architekturen speziell in AEM as a Cloud Service eingerichtet sind.
Runtime-Architektur
Innerhalb von AEMaaCS gibt es Autoren-, Publisher- und Dispatcher-„Tiers“, genau wie im klassischen AEM. In jedem Tier können mehrere Autoren-, Publish- und Dispatcher-Instanzen existieren. Typischerweise hat jeder Tier mindestens zwei Instanzen.
Einer der wesentlichen Unterschiede und Vorteile der AEM Cloud-Architektur ist, dass diese Autoren-, Publish- und Dispatcher-Instanzen alle unendlich mit der Nachfrage des Website-Traffics skalieren können.
Ein weiterer signifikanter Unterschied in der Architektur von AEMaaCS ist die Einführung eines dedizierten „Preview-Tiers“. Hier kann der gesamte Inhalt, den Ihre Autoren im Autoren-Tier erstellen, vor der endgültigen Veröffentlichung in der Vorschau angesehen werden. Ein separater Tier für diesen Prozess macht die Überprüfung von Website-Änderungen und neuen Seiten einfacher und schneller.

Deployment-Architektur
Die Deployment-Architektur von AEMaaCS funktioniert sehr anders als die des klassischen AEM. Diese völlig neue Funktionalität führt zu einem weiteren der größten Vorteile von AEMaaCS: Keine Ausfallzeiten.
Egal, ob Sie Aktualisierungen am Code Ihrer AEMaaCS-Anwendung vornehmen oder ob Adobe die automatisierten Updates ausrollt, der Prozess ist derselbe:
- Cloud Manager erstellt eine neue (nicht veröffentlichte) Version Ihrer Anwendung.
- Code-Änderungen werden an dieser neuen Version vorgenommen.
- Strenge Tests laufen automatisch im Hintergrund ab, um sicherzustellen, dass in der aktualisierten Version alles ordnungsgemäß funktioniert.
- Cloud Manager wechselt dann zur neuen Version.
Beim Wechsel zur neuen Version Ihrer AEM-Anwendung verwendet Cloud Manager ein Rolling-Update-Muster. Das bedeutet, dass es jeweils nur einige Teile Ihrer Anwendung aktualisiert, sodass der Großteil der verbleibenden Teile aktiv und funktionsfähig bleibt.

Dies unterscheidet sich deutlich von AEM 6.5, bei dem Code-Updates manuell vorgenommen werden müssen und oft aufwendige Aufgaben für Ihr Tech-Team sind. Darüber hinaus erfordern Updates auf AEM 6.5 in der Regel eine gewisse Ausfallzeit, um in Gang zu kommen. Wie Sie sich vorstellen können, erschwert dies die Sicherstellung, dass Sie immer die neueste Version verwenden.
Die Bereitstellungsarchitektur von AEMaaCS stellt speziell sicher, dass Sie immer die neueste Version der Software haben, da Cloud Manager Updates der Software automatisch im Hintergrund und ohne Unterbrechungen installieren kann.
AEM Technologie-Stack
Jede großartige Plattform wird von einem robusten Stack aus Frameworks und Tools angetrieben, die einen reibungslosen Betrieb gewährleisten, und AEM ist da keine Ausnahme.
AEM benötigte eine spezielle Reihe von führenden Technologien, die hart daran arbeiten, eine konsistente Website-Geschwindigkeit, Zuverlässigkeit und eine reibungslose Erstellung und Veröffentlichung zu gewährleisten.
Also, ohne weitere Umschweife beleuchten wir einige der Hauptakteure hinter den Kulissen.
Apache Sling Framework
Die Hauptaufgabe von Apache Sling innerhalb von AEM ist es, die Bereitstellung Ihrer Website-Inhalte an die Öffentlichkeit zu verwalten. Dies umfasst eine Reihe wichtiger Funktionalitäten:
- Bereitstellung der Webseite, auf die Benutzer zugreifen möchten.
- Abgleich der korrekten URL mit der korrekten Webseite.
- Laden des korrekten Inhalts (Bilder, Texte usw.) auf die Seite, für die er bestimmt ist.
- Änderungen an bestehenden Inhalten vornehmen (wie von Ihrem Team erstellt).
- Unbefugte Benutzer von speziell zugangsbeschränkten Seiten fernhalten.
- Hinzufügen benutzerdefinierter Funktionen zur AEM-Plattform.
Ohne Apache Sling gäbe es für AEM keine Möglichkeit, Besuchern Ihrer Website die richtigen Seiten, Inhalte oder passenden URLs anzuzeigen, was Apache Sling zu einer integralen Komponente der gesamten Funktionalität von AEM macht.
OSGi-Framework
Während Apache Sling für die Bereitstellung Ihrer Inhalte zuständig ist, OSGi befasst sich mit dem Code und den Ressourcen, die den Betrieb der AEM-Anwendungen insgesamt ermöglichen.
Es gruppiert die Kernkomponenten von AEM in kleinere, einfacher zu verwaltende Bundles, die in diesem Kontext JavaScript-Archivdateien sind. Es verwaltet auch die Organisation und Reihenfolge zwischen diesen Bundles.
OSGi hält die Ordnung des AEM-Codes aufrecht, indem es:
- Bundles voneinander isoliert, sodass Änderungen an einem Bundle keine anderen stören.
- Das Hinzufügen und Entfernen von Bundles während des Betriebs von AEM ohne Neustart ermöglicht.
- Überwacht, welche Dienste bestimmte Bundles bereitstellen, sodass AEM diese Dienste bei Bedarf leichter für Funktionalitäten finden und nutzen kann.
- Alternative Versionen desselben Bundles speichert, damit AEM die Abwärtskompatibilität aufrechterhält.
- Die gegenseitigen Abhängigkeiten von Bundles überwacht und sicherstellt, dass koabhängige Bundles zusammen verwendet werden.
- Verwaltet, wann Bundles während ihres gesamten Lebenszyklus aktiviert und deaktiviert werden müssen.
Granite UI
In AEM ist Granite UI die Technologie, mit der Ihr Team Ihre verschiedenen Benutzeroberflächen innerhalb Ihrer Website erstellen wird. Sie legt die Grundlagen in Ihrer Author-Tier und ist verantwortlich für Dinge wie:
- Bereitstellung der notwendigen Tools für Inhaltsautoren, um benutzerdefinierte Komponenten in AEM zu erstellen.
- Strukturierung, Definition und Interpretation von Dateneingaben aus Formularen, die in Ihre Website integriert sind.
- Einrichten und Verwalten von Dialogen, die Komponenten sind, die mit Ihren Website-Benutzern interagieren oder Eingaben von ihnen anfordern.
- Ermöglicht umfangreiche Anpassungen der Benutzeroberfläche, für eine einfache Anpassung an einzigartige Projekte.
- Optimierung des Redaktionsprozesses durch Bereitstellung einer benutzerfreundlicheren Oberfläche.
Java Content Repository
Innerhalb ihrer Websites können die meisten großen Unternehmen eine nahezu endlose Bibliothek von Assets und Ressourcen erwarten. Und wenn Sie diese Assets in AEM hochladen, müssen sie alle irgendwohin.
Glücklicherweise ist genau dafür das Java Content Repository (JCR) da. Das Adobe Experience Manager Java Content Repository fungiert als Ihr zentrales Speicher- und Organisationssystem für jede Art von Asset, die Sie auf Ihrer Website verwenden möchten. Dazu gehören Bilder, Videos, Texte, Audio und mehr.
JCR ist die treibende Kraft hinter:
- Speicherung und Katalogisierung aller Inhalte.
- Organisation Ihrer Inhalte in einer Hierarchie.
- Nachverfolgung der verschiedenen Versionen Ihrer Inhalte.
- Zuweisung von Metadaten zu Ihren Inhalten.
- Robuste Suchabfragefunktionen, die es Ihnen ermöglichen, Inhalte schnell zu finden.
- Sicherstellen, dass nur Benutzer mit Zugriff auf Inhalte diese sehen können.
Apache Jackrabbit Oak
In Zusammenarbeit mit JCR ist Apache Jackrabbit Oak für die korrekte Implementierung von JCR innerhalb von AEM verantwortlich. Während JCR selbst wie eine übergeordnete Liste von Richtlinien für die Funktionalitäten des Content-Repositorys ist, ist Apache Jackrabbit Oak dafür verantwortlich, diese Funktionalitäten zu realisieren.
Apache Jackrabbit Oak fügt dem Content-Repository von AEM auch einige zusätzliche Funktionen hinzu.
Am wichtigsten ist, dass es der entscheidende Faktor für eine erhöhte Skalierbarkeit in JCR ist und es ermöglicht, größere Mengen an Inhalten gleichzeitig zu speichern, zu organisieren und zu interpretieren.
Apache Jackrabbit Oak ermöglicht zudem eine bessere Anpassbarkeit von JCR, um einzigartige Anforderungen an das Content-Management zu erfüllen.
Apache Felix OSGi Container
Der Apache Felix OSGi Container dient als zugrunde liegendes Framework, das die modulare Architektur von Adobe Experience Manager (AEM) unterstützt.
Er ermöglicht AEM eine hohe Anpassungsfähigkeit, indem Entwickler Funktionen, sogenannte „Bundles“, hinzufügen oder entfernen können, ohne das gesamte System neu starten zu müssen.
Diese Flexibilität stellt sicher, dass AEM mit den Anforderungen Ihrer Organisation wachsen kann und ermöglicht nahtlose Updates und Skalierbarkeit, ohne den laufenden Betrieb zu unterbrechen.
Sling Request Processing
Sling Request Processing ist die Komponente, die für die Verwaltung eingehender Anfragen von Webbrowsern und deren Weiterleitung an die entsprechenden Inhalte innerhalb von AEM zuständig ist.
Es verwendet einen Mapping-Mechanismus, um angeforderte Inhalte basierend auf URLs zu lokalisieren und übersetzt diese Anfragen mithilfe des Content-Repositorys von AEM in dynamische Webseiten.
Durch die dynamische Zusammenstellung von Inhalten stellt Sling sicher, dass Benutzer personalisierte und reaktionsschnelle Weberlebnisse erhalten, die auf ihre spezifischen Anfragen und Präferenzen zugeschnitten sind.
Sightly (HTL)
Sightly, auch bekannt als HTML Template Language (HTL), ist die in AEM verwendete Templating-Sprache zur Erstellung von Webseiten und Komponenten.
Es bietet einen strukturierten und sicheren Ansatz für die Webentwicklung, der die Trennung von Belangen zwischen Inhalts- und Präsentationsebenen erzwingt.
Entwickler können mit Sightly sauberen und wartbaren Code schreiben, wodurch das Risiko von Sicherheitslücken wie Cross-Site Scripting (XSS) reduziert und die allgemeine Stabilität und Leistung von AEM-gestützten Websites verbessert wird.
GraphQL
GraphQL ist eine Abfragesprache und Laufzeitumgebung für APIs, die es Clients ermöglicht, spezifische Daten von AEM-Backend-Systemen anzufordern.
Im Gegensatz zu traditionellen RESTful APIs ermöglicht GraphQL Clients, die Struktur der benötigten Daten zu definieren, wodurch Über- und Unterabruf von Informationen reduziert werden.
Indem GraphQL Clients befähigt, nur die notwendigen Daten anzufordern, optimiert es die Netzwerkeffizienz und verbessert die Reaktionsfähigkeit von AEM-gestützten Anwendungen, was das gesamte Nutzererlebnis steigert.
AEM-Module (Core Components)
Die Authoring-Oberfläche von AEM wurde im Hinblick auf einfache Benutzerfreundlichkeit, robuste Funktionalität und Anpassbarkeit entwickelt. Wenn Autoren intensiv Webseiten in AEM erstellen oder bearbeiten, arbeiten sie nicht mit einer nackten, leeren Plattform.
Es gibt dreißig Core Components in der Authoring-Oberfläche von AEM, die alle für einen zuverlässigen Einsatz und Anpassbarkeit konzipiert sind. Hier ist ein kurzer Überblick über einige der größten Vorteile aller Komponenten:
- Cloud-Fähigkeit, die es Komponenten ermöglicht, zuverlässig zu funktionieren.
- Vielseitigkeit, die es Content-Autoren ermöglicht, unbegrenzte Layouts zu erstellen.
- SEO-Freundlichkeit, die Websites mit semantischer HTML-Ausgabe stärkt.
- Versionsfähigkeit, die Ihre Website vor Fehlern schützt, wenn Komponenten aktualisiert werden.
- Open-Sourcing, das Entwicklern die Möglichkeit gibt, Bestehendes zu verbessern.
Wenn Sie AEMs Authoring-Oberfläche nun unbedingt ausprobieren möchten, verstehen wir das. Es ist ein leistungsstarkes Toolset, das die Seitenbearbeitung auf die nächste Ebene hebt und AEM so einfach oder komplex macht, wie Sie es benötigen.
Fazit
Inzwischen sollten Sie eine Vogelperspektive auf jeden der vier wichtigen architektonischen Bestandteile von AEM sowie auf den Tech-Stack haben, der die zentralen Funktionen von AEM umfasst.
Besonders wenn Unternehmen wachsen, sich auf mehrere Standorte ausdehnen und ihren Horizont erweitern, ist AEM so konzipiert, dass es direkt mitwächst. Egal, ob Sie viele gleichzeitige Authoring-Anforderungen, viele Seitenanfragen oder eine Fülle von Assets zum Speichern haben, die CMS-Lösung, die von Adobe Experience Cloud betrieben wird, passt sich ohne Zögern an.
Und in der heutigen komplexen und sich schnell ändernden Online-Landschaft ist das genau das, was Marketer und UI-Designer gleichermaßen am dringendsten benötigen.
Häufig gestellte Fragen
In welcher Sprache wurde AEM entwickelt?
AEM basiert auf Java.
Welche Java-Entwurfsmuster werden in AEM verwendet?
Aufgrund der modularen Fähigkeiten von OSGi werden viele Java-Entwurfsmuster unterstützt, darunter (aber nicht beschränkt auf): Singleton, Whiteboard, Adapter, Resource Adapter, Decorator und Observer.
Verfügt AEM über eine API?
Ja, AEM verwendet eine Vielzahl von APIs, darunter (aber nicht beschränkt auf): JCR API, Apache Sling API, RESTful APIs und Javascript APIs.
Verwendet AEM Spring?
AEM basiert nicht von Haus aus auf dem Java Spring Framework; es kann jedoch mit Spring-basiertem benutzerdefinierten Code oder benutzerdefinierten Erweiterungen integriert werden.
Wo speichert AEM Inhalte?
Inhalte werden im Java Content Repository von AEM gespeichert, das Apache Jackrabbit Oak nutzt.