Component Based Software Architecture

Was sind komponentenbasierte Technologien


THE FACTS

Komponenten basierte Technologien erhöhen Software Qualität
kosten- und ressourcensparende Entwicklung
Basierend auf plattformunabhänige Java Technologie
ConfigWorks Applikationframework mit „out-of-the-box“ Features

 

Viele Unternehmen erkennen den Bedarf von verteilten und transaktionsorientierten Unternehmensanwendungen um die Verfügbarkeit, Sicherheit und Performance ihrer serverseitigen Systeme zu gewährleisten. Zusätzlich bewegen sich diese Unternehmen in einem sich rasch ändernden Umfeld mit neuen Herausforderungen an E-Commerce und den daran involvierten Informationstechologien. So müssen heutige Enterprise - Anwendungen mit geringeren Kosten, in kürzerer Zeit und mit weniger Ressourcen konzipiert und realisiert werden. Um diesen Anforderungen gewachsen zu sein, verwendet ConfigWorks im Design, in der Entwicklung und im Einsatz das Komponenten basierende Entwicklungsparadigma. Mit der komponentenbasierten Technologie ist es uns möglich die notwendige Flexibilität, Erweiterbarkeit und dadurch die einfachere Wartung und Adaptierbarkeit zu erlangen, welche erfolgreiche und langfristige Systeme ausmachen.

Wenn wir von komponentenbasierter Technologie sprechen, verstehen wir darunter:

  • Sie implementieren eine klar definierte Programmierungsschnittstelle
  • Sie besitzen explizite aber keine impliziten Abhängigkeiten
  • Ihre Entwicklung und der Einsatz ist weitgehend unabhängig von der Zielplattform

Jede dieser Eigenschaften ist notwendig um kosteneffektive und wartungsneutrale Enterprise-Systeme zu entwickeln. Darüber hinaus ist zu erkennen, dass die Reduktion der Abhängigkeiten zwischen Komponenten und deren Ablaufumgebung ein wesentlicher Faktor für den erfolgreichen Einsatz von zukunftssicheren Anwendungen ist. Technische wie auch anwendungsspezifische Änderungen (Business changes) sollten nur die Komponenten betreffen und daher müssen folgende Bedingungen erfüllt sein:

  • Granularity: Ein bedeutender Punkt im Komponentendesign ist die Wahl der Größe einer Komponente. Sie sollte nicht zu groß sein um keine sinnvollen Business Funktionen herauszuarbeiten, ebenso sollte sie nicht zu klein sein um keine Aussage über die Verwendung zu geben.
  • Coupling: Coupling beschreibt den Komplexitätsgrad der Kommunikation zwischen Komponenten. Dies führt zu Seiteneffekten und kann nur durch klare und auf die Anwendung reduzierte Schnittstellen verhindert werden.
  • Separation of Concerns: Eine immense Stärke von Komponenten basierten Ansätzen ist die klare Trennung von applikationsspezifischen und systemspezifischen Codestücken und Implementierungen. Damit ist es möglich die beiden Bereiche unabhängig von einander zu ändern und auf verschiedenen Zielplattformen einzurichten.

ConfigWorks verwendet als Basis die komponentenbasierte Technologie Java 2 Enterprise Edition (J2EE). J2EE bietet ein mehrschichtiges, verteiltes Applikationsmodel an, welches die Möglichkeiten der Wiederverwendbarkeit, die Integration von XML zum Datenaustausch, ein einheitliches Sicherheitsmodell und Transaktionskontrolle in einer Lösung vereint. Dies ermöglicht uns Lösungen für den Kunden schneller und Plattform unabhängig zu gestalten. Durch die breite Unterstützung von J2EE durch eine Vielzahl von Anbietern (IBM, Oracle, Sun, Bea etc.) steht es dem Kunden frei, die für ihn geeignete Laufzeitumgebung auszuwählen.

Mit dem Einsatz von J2EE erreichen wir folgende Vorteile:

  • Die Entwicklungsteams können sich auf die spezifischen Business Probleme konzentrieren, die technischen Aspekte wie Transakations-, Persistenz- und Sicherheitsmanagement werden von der Laufzeitumgebung übernommen.
  • Die Geschäftslogik (Business logic) wird in den Komponenten gekapselt und muß daher die Schnittstellen des Komponentenmodells einhalten. Durch die Standardisierung der Komponenten werden Ineffizienzen und Fehler reduziert und die Erlernbarkeit der Systeme erhöht.
  • Das Komponentenmodell ist in einem Applikationsserver implementiert. Dieser übernimmt die Aufgaben der effizienten und skalierbaren Ausführung der Komponenten und deren Clients. Somit ist es möglich die Bereiche Performancetuning und Ressourcenmanagement dem betroffenen Ablaufkontainer zu verantworten.

WAS KÖNNEN SIE VON UNS ERWARTEN

Wie in nachfolgender Grafik dargestellt, bieten die Lösungen von ConfigWorks ein industriebewährtes und robustes Entwicklungsframework auf der Basis von Java. Auf Java aufsetzend verwenden wir J2EE als Fundament für alle weiteren Entwicklungen.


Abbildung: Das ConfigWorks Applikationsmodell

Wie bereits erwähnt können mit dem Einsatz von J2EE Basisservices verwendet werden, welche beliebige Java Applikationsserver plattformunabhänig anbieten. Dies ermöglicht uns auf die wesentlichen Bereiche der Applikationsentwickung zu fokusieren und den Kunden die bestmögliche Problemlösung anzubieten.
Aber jede Technologie ist nur so gut wie die Struktur und die Konzepte, welche eingesetzt werden. Daher nutzen wir Design Patterns um auf allgemeine Probleme mit Best-Practice Lösungen klar definierte und wiederverwendbare Komponenten zu erzeugen. Die Idee von objektorientierten Design Patterns ist es, für bekannte Problemfälle Konzepte anzubieten die sich über einen langen Zeitraum bewährt und bestätigt haben. Dies reduziert die Fehlerhaftigkeit der Anwendungen, erhöht die Softwarequalität und reduziert die Entwicklungszeiten. Schließlich und endlich bieten wir ein ConfigWorks spezifisches Applikationsframework, welches ermöglicht, in kürzester Zeit kundenspezifische Lösungen in standardisierter und hoch qualitativer Form bereit zu stellen. Dieses Framework bietet "out-of-the-box" Features für elektronische Vertriebsunterstützung, Wissensmanagement und User Interface Entwicklung.