BC4J (business components for Java)

Oracle Business Components for Java (BC4J) ist ein Framework basierend auf Java und XML. Das Besondere daran ist, dass BC4J ein sogenanntes technisches Framework ist. Mit Hilfe von BC4J ist die Entwicklung von mehrschichtigen, Datenbank-getriebenen Java-Applikationen auf Basis von Komponenten - und nicht nur J2EE-Komponenten - möglich. Das Framework gewährleistet flexible Möglichkeiten für die Verteilung von Komponenten sowie eine einfache Anbindung von schmalen Java Clients auf der Basis von Swing, Servlets oder Java Server Pages. Die saubere Schichtentrennung von BC4J entspricht der der J2EE-Architektur. Die Verteilung auf unterschiedliche Plattformen ist ohne weitere Modifizierung des Codes möglich. Mit Oracle JDeveloper 9i steht eine gute Tool-Unterstützung zur Verfügung, auch wenn das Framework selbst einen relativ hohen Aufwand zur Einarbeitung erfordert.


Technische Frameworks realisieren die Entwicklung von Anwendungen und integrieren dabei:

  • Software-Bausteine mit Basis-Funktionalitäten wie Connection Pooling, Caching, Locking oder Master-Detail-Synchronisation - in BC4J wird diese Basis durch die Java Klassenbibliotheken abgebildet.
  • Grundlegende Tools für die Entwicklung von Software. Im Sinne von BC4J sind dies spezielle JDeveloper Wizards und ab JDeveloper 3.2. wurden diese Möglichkeiten in das Designer Repository integriert.
Den technischen Frameworks stehen die fachlichen Frameworks gegenüber, die vordefinierte Business-Komponenten für spezifische Einsatzbereiche integrieren. Demnach ist BC4J kein fachliches Framework, mit dem auch fachliche Komponenten entwickelt werden können, die dann die Geschäftslogiken beinhalten.

Die Architektur von BC4J-Anwendungen basiert auf verschiedenen Typen von Objekten - den Entity-Objekten und den View-Objekten sowie den Applikations-Modulen.

Entity-Objekte definieren eine objektrelationale Abbildung der Tabellen der Datenbank - sie entsprechen somit 1:1 den Tabellen der Datenbank. Die Spalten der Tabellen werden dabei zu Attributen der Entity-Objekte. Über die Entity-Objekte werden u.a. auch die Persistierung und das Caching realisiert. Zudem kann in den Entity-Objekten an zentraler Stelle die eigentliche Geschäftslogik implementiert werden. Dazu besteht ein Entity-Objekt aus einer XML-Datei für die Meta-Daten und einer Java-Datei für die Implementierung von Geschäftslogik. Die Beziehungen zwischen Entity-Objekten werden durch Assoziationen abgebildet und basieren auf Foreign-Key-Constraints der zugehörigen Tabellen. So organisieren Entity-Objekte ebenfalls die Interaktionen der Datenbank, so dass das Caching und Locking auf der Ebene der Entity-Objekte erfolgt.

View-Objekte steuern den Zugriff auf die Daten der Applikation in Form von gekapselten SQL-Anweisungen. Die Basis für die View-Objekte sind die Entity-Objekte. Bei der Ausführung der Abfrage eines View-Objekts werden über den Cache die zugehörigen Entities erzeugt. Dies gilt allerding nicht für sogenannte Read-Only-View-Objects. Für diesen Fall gibt es spezielle Objekte, diese nennen sich Fast Lane Reader. Die View-Objekte bieten alle notwendigen Funktionen zum Navigieren in Ergebnismengen, so dass die Clients nur über View-Objekte auf die Entity-Objekte zugreifen. Ebenfalls werden Änderungen über die Attribute von View-Objekten realisiert, was dann an die zugrundeliegenden Entity-Objekte mit ihrer jeweiligen Geschäftslogik delegiert wird. Ebenso werden Master-Detail-Beziehungen über View-Links koordiniert.

Applications-Module fassen View-Objekte und View-Links für die Unterstützung eines Anwendungsfalls zusammen und können darüber hinaus weitere Dienste in Form von Custom Methods anbieten. Damit werden die Schnittstellen von BC4J-Applikationen zum Client realisiert. Die Applications-Module bilden Komponenten, die auf unterschiedliche Plattformen verteilt werden können. Ebenso definieren Applications-Module den entsprechenden Transaktionskontext. Man spricht auch von zusammengesetzten Applikationen, sofern sich Applikationen wiederum auf anderen Applikationen abstützen.

Das BC4J-Framework unterstützt eine flexible Verteilung auf unterschiedliche Plattformen, ohne dass eine Änderung der Anwendungskomponenten notwendig ist, in Form von:

  • Enterprise JavaBeans - dabei werden Applikations-Module zu Session-Bean.
  • Java CORBA Komponenten - dabei werden Applikations-Module zu CORBA Server Objects.
  • Lokalem Deployment - dabei werden Applikations-Module zum JAR-Archiv.
Der Oracle JDeveloper 3.2 unterstützt das Deployment in Richtung zu einem Oracle9i oder BEA Weblogic Application Server. Aufbauend auf BC4J Application-Moduls und View-Objekten können leicht Java-Clients wie Thin Java UI Clients (Swing-Clients), Java Servlets und Java Server Pages entwickelt werden.

http://www.otn.oracle.com/products/jdev/

http://technet.oracle.com/support/bboard/discussions.html

Informationen zum Artikel
Deutsch: Oracle Business Components for Java
Englisch: business components for Java - BC4J
Veröffentlicht: 18.04.2010
Wörter: 658
Tags: #Java
Links: Abfrage, Anwendungsserver, Architektur, Attribut, Aufwand