Aufbau einer Composite Application mit Prism

Divide and Conquer


Divide and Conquer – dieses wichtige Konzept wird jedem Informatikstudenten bereits in einer seiner ersten Vorlesungen begegnen. An Universitäten wird es meist bezogen auf einen einzelnen Algorithmus gelehrt – allen voran Quicksort. Bei der Entwicklung von Composite Applications wird dieses Prinzip auf die Architektur ganzer Anwendungen übertragen. Mit der steigenden Bedeutung und der immer weiteren Verbreitung lohnt sich ein Blick darauf, welche Möglichkeiten JavaScript zur modularisierten Softwareentwicklung bietet.

Mit dem Begriff „Composite Application“ werden Clientanwendungen mit einer stark modularisierten Architektur bezeichnet. Im Extremfall ist die eigentliche Anwendung nur noch eine leere Hülle, die ein Plug-in-System bereitstellt. Die Logik ist dann komplett in den Plug-ins, den so genannten Modulen, realisiert. Bei der Erstellung einer Architektur für eine Composite Application teilt man fachliche und technische Anforderungen auf diese auf. Die Module sollten dabei so zugeschnitten sein, dass möglichst geringe Abhängigkeiten zwischen den einzelnen Komponenten entstehen. Die Gesamtfunktionalität einer Anwendung wird also auf diverse, miteinander nur lose gekoppelte Teilsysteme aufgeteilt. Das hat in der Entwicklung und Wartung der Software entscheidende Vorteile:

  • Die einzelnen Module sind für sich genommen kleiner und leichter zu verstehen als eine monolithische Anwendung.

  • Die Entwicklung kann hervorragend parallelisiert werden – ein Team je Modul.

  • Durch den konsequenten Einsatz von Dependency Injection und loser Kopplung sind die Module leichter testbar.

  • Bei richtigem Modulschnitt können Anwendungsteile leicht wiederverwendet werden.

Die Microsoft Patterns & Practices Group [1] beschreibt das Konzept Composite Application als architektonischen Ansatz zur Entwicklung komplexer Clientanwendungen, die über einen langen Zeitraum entwickelt, gewartet und erweitert werden. Das Aufsetzen einer Anwendung als Composite Application erfordert technisches Know-how und erzeugt einen initialen Aufwand. Dieser lohnt sich bei der Erstellung kleinerer Anwendungen jedoch häufig nicht. Bei komplexen Anforderungen, die sich sinnvoll in einzelne Module aufteilen lassen, eignet sich die Composite-Application-Architektur hingegen hervorragend.

Die klare Aufteilung der Anwendungslogik in mehrere Einzelteile hält sowohl die Architekten als auch die Entwickler automatisch dazu an, Abhängigkeiten zwischen verschiedenen Codeabschnitten von Beginn an zu vermeiden....

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang