Startseite

Whitepaper: Entwicklung von Services mit SOA Suite 11g vs. Java EE

Mit der Oracle SOA-Suite 11g steht ein mächtiges Werkzeug für die Entwicklung und den Betrieb von Services, auf Basis der Service Component Architecture (SCA) zur Verfügung. Services können sehr einfach, schnell und vor allem deklarativ mit der SOA-Suite entwickelt und betrieben werden. Oftmals wird sehr kontrovers die Frage diskutiert, ob Services auf Basis von SCA mit der SOA-Suite oder klassisch mit Java EE-Technologien entwickelt werden sollten. Diese Frage ist nicht einfach zu beantworten. Ausgehend vom Anwendungskontext haben beide Varianten ihre Stärken und Schwächen.
In einem Whitepaper werden verschiedene Aspekte, z. B. Architektur, Management und Betrieb, betrachtet und jeweils die Vor- und Nachteile beider Technologien gegenübergestellt. Ziel dieses Dokumentes ist nicht einer Variante den Vorzug zu geben. Vielmehr sollen hier Kriterien aufgezeigt werden, um eine Entscheidung im jeweiligen Anwendungskontext zu erleichtern.

Architekturaspekte

Serviceinfrastruktur

Vorstellung der jeweils minimalsten Infrastruktur um einen Service zu betreiben.

SOA Suite

Oracle SOA Suite ist ein SCA-Container der in Form einer JEE-Anwendung im Applikationsserver installiert und betrieben wird. Ferner benötigt die SOA Suite eine Datenbank zum Speichern aller Konfigurations- und Runtimedaten (MDS und SOAINFRA).

Ein SCA wird in Form einer *.jar zu einer installierbaren Einheit zusammengebaut. Die jar-Datei mit dem SCA wird durch Werkzeuge der SOA-Suite installiert.

Java EE

Prinzipiell benötigt man für die Bereitstellung eines Java EE-Webservice einen Applikationsserver. Je nach dem, welche Java EE-Technologien (mit/ohne EJB) für die Implementierung des Webservice eingesetzt werden, kann auch ein Servlet-Container für den Betrieb ausreichend sein. Ein Webservice wird typischerweise in Form einer ear-Datei zur Verfügung gestellt. Der Aufbau der ear-Datei ist in den JEE-Spezifikationen definiert.

Komponentenmodelle

Service Component Architecture (SCA)

SCA besteht aus einer Reihe von Spezifikationen die ein Model für die Implementierung von Anwendungen und Systemen in einer SOA beschreiben. Der SCA-Standard wird zur Zeit bei OASIS geführt und liegt in Version 1.0 aus dem Jahr 2007 vor.

Ein wesentlicher Baustein in einem SCA ist das sog. Component. In einem SCA tauschen Componentes Nachrichten miteinander aus. Dabei ist die konkrete Implementierung einer Component zunächst unerheblich. In der SOA-Suite werden folgende konkrete Implementierungen für Components angeboten. Diese Implementierungen werden auch als Service Engines bezeichnet.

  • BPEL
  • Decision Service (Rules Engine)
  • Mediator (Routing)
  • Human Workflow (Human Interaction)
  • Spring Context

Java EE

Im Java EE-Umfeld existieren eine Reihe von Programmierschnittstellen, die bei der Webservice-Entwicklung genutzt werden.

  • Java-API for RESTful Web Services (JAX-RS)
  • Java-API for XML Web Services (JAX-WS)
  • Java Architecture for XML-Binding (JAXB)

Es existieren eine Reihe von Frameworks, z. B. Apache CXF, die entsprechende Implementierungen für die genannten Schnittstellen anbieten. Der Aufwand für die Implementierung eines Services hängt somit immer vom genutzten Framework ab.

Message Exchange Patterns (MEP)

In Abhängigkeit des verwendeten MEP’s (synchron vs. asychron) und deren Ausprägungen kann die Entscheidung für einen SCA- oder einen Java EE-Service getroffen werden. Für synchrone Services eignen sich beide Technologien gleichermaßen gut.

Im Falle eines asychronen Service kann die Umsetzung mit der SOA-Suite wesentlich einfacher durchgeführt werden, z. B. Request/Callback-Pattern.

Servicekategorisierung

Durch eine Serviceklassifizierung können sehr schnell fachliche und technische Anforderungen an den Service abgeleitet werden. Somit hat die Klassifizierung auch starken Einfluß auf die technische Implementierung. In Unternehmen trifft man häufig die Unterscheidung nach Elementar-, Composed- und Prozessservice an. Elementarservices können sehr gut auf Basis von JEE implementiert werden. Composedservices können ja nach Komplexität mit Java EE oder SOA-Suite erstellt werden. Für Prozessservices empfiehlt sich auf jeden Fall die Umsetzung mit der SOA-Suite, in Form von BPEL oder BPMN.

Serviceentwicklung

Die Entwicklung von Java EE-basierten Services kann mit jedem beliebigen Java-Entwicklungswerkzeug, wie z. B. Oracle JDeveloper, Eclipse, NetBeans o.ä., erfolgen. Dabei unterscheiden sich die einzelnen Werkzeuge in Komfort und Geschwindigkeit. Üblicherweise bieten die Entwicklungswerkzeuge einen integrierten Java EE-Applikationsserver an, der es ermöglicht, die entwickelten Services auf dem lokalen Entwickler-PC zu installieren und auszuführen.

SCA ist im Vergleich zu Java EE noch eine rechte junge Technologie. Insbesondere ist das an der IDE-Unterstützung im Vergleich zu Java EE-Entwicklung erkennbar. Viele Funktionen, z. B. im Bereich des Refactorings, stehen im Bereich SCA noch nicht zur Verfügung. Die Implementierung eines SCA-basierten Services kann zum aktuellen Zeitpunkt ausschließlich mit dem Oracle JDeveloper durchgeführt werden. Ein anderes Entwicklungswerkzeug kann nicht genutzt werden. Darüberhinaus muß eine eine Oracle SOA-Suite Installation zur Verfügung stehen, um die entwickelten Services zu installieren und auszuführen.

Ein wesentlicher Vorteil der SCA-Entwicklung im JDeveloper ist der Composite Editor, der die genutzten Komponenten und Abhängigkeiten grafisch darstellt. Im Bereich der Java EE-Entwicklung besteht nur die Möglichkeit den Sourcecode zu analysieren.

Lifecyclemanagement

In der SOA-Suite ist bereits ein Versionsmanagement vorgesehen, daß durch den Entwickler direkt genutzt werden kann. Im Bereich der Java EE-Entwicklung muß das Versionsmanagement manuell definiert und umgesetzt werden. Insbesondere der Betrieb verschiedener Serviceversionen stellt dabei eine große Herausforderung dar.

Die Unterstützung bei der Verteilung der Services auf verschiedene Umgebungen, z. B. Test oder Produktion, ist bei beiden Technologien sehr einfach möglich. Dabei können Buildwerkzeuge wie ANT oder Maven genutzt werden.

Sicherheit

Für einen Java EE-basierten Webservice können die Sicherheitsfunktionen des eingesetzten Applikationsservers oder Webservice-Frameworks genutzt werden. SCA-basierte Services können durch Policies im Oracle Web Service Manager (OWSM) abgesichert werden. Der OWSM ist in die SOA-Suite integriert. Es Bedarf lediglich der Konfiguration der Sicherheitseinstellungen.

Management und Betrieb

Die Architektur eines Java EE-basierten Webservice ist wesentlich einfacher zu überwachen und besteht oftmals aus folgenden Komponenten:

  • Eventl. einer Datenbank für die Anwendungsdaten
  • Java EE-Server
  • Enterprise Applikation für das Deployment (ear-Datei)

Die Java EE-Technologie ist weit verbreitet und etabliert. Darüberhinaus gibt es eine Vielzahl von Bestpractices in diesem Umfeld. Ein Java EE-basierter Webservice ist auf allen Standard-Java EE-Containern grundsätzlich betreibbar.

Die SCA-Infrastruktur mit der SOA-Suite erlaubt ein End-to-End Monitoring von SCA-Services. Im einzelnen besteht die Möglichkeit, den Zustand der einzelnen Serviceinstanzen zu überwachen. Ferner kann der Ablauf und Daten von einzelnen Serviceinstanzen jederzeit eingesehen und überprüft werden. Insbesondere kann der Prozessablauf grafisch visualisiert werden. Darüberhinaus können im Error-Hospital fehlerhafte Serviceinstanzen wieder angestartet werden.

Fazit

Mit dem Java EE-Standard steht eine bewährte Technologie für die Servicentwicklung zur Verfügung. Daneben existiert mit SCA ein noch junger Standard, der noch nicht von allen Herstellern 100%ig unterstützt wird. Beide Technologien haben in Bezug auf die Entwicklung von Services ihre Stärken und Schwächen. Somit kann weder der einen noch anderen Technologie der Vorzug gewährt werden. Vielmehr ist der Einsatzzweck der entscheidende Faktor. Ferner ist festzustellen, das es durchaus sinnvoll ist, beide Technologien im Rahmen der Serviceentwicklung zu nutzen.

Das vollständige Whitepaper inkl. einer tabellarischen Zusammenfassung von Entscheidungskriterien kann unter der folgenden Email-Adresse markus.lohn@esentri.com angefordert werden.

Markus Lohn

Real World ADF Design & Architecture Principles

Eindrücke des Oracle “Real World ADF Design & Architecture Principles” Trainings

Ich hatte vom 03. bis 07. Juni die Möglichkeit am neuen Oracle Training "Real World ADF Design & Architecture Principles" in München teilzunehmen. Das Training wurde größtenteils von Chris Muir und Frank Nimphius entwickelt und durchgeführt. Langfristig ist geplant, die Inhalte dieser und folgender Sessions aufzuzeichnen und dem breiten Publikum als Onlinekurs zur Verfügung zu stellen.

Auf der Agenda: ADF Design und Architektur

Der Inhalt des Trainings konzentriert sich darauf, Spezialisten bekannte und erprobte ADF Design und Architektur Ansätze zu vermitteln, welche die Durchführbarkeit und Qualität von ADF Projekten sicherstellen können. Durch den Kursaufbau hat man am ersten Tag einen ruhigen Einstieg in die Thematik. Die Intensität zieht dann jedoch bis zum dritten Tag stark an und fällt bis zum Ende der Woche kontinuierlich. Dabei sind die knapp 40 Themen in vier Kategorien unterteilt:

  • - Allgemeine Rahmenbedingungen für ADF Projekte (Projektrollen, begrenzende Faktoren)
  • - Systemdesign (Hauptteil; ADF BC Design, Service Integration, PL/SQL Integration, usw.)
  • - Entwicklung (Best Practices für Error Handling, Logging, Naming Conventions, usw.)
  • - Deployment (Build Tools, Continuous Integration, usw.)

Meiner Meinung nach sind aus allen Themen, drei besonders hervozuheben. Zunächst gibt es ein Kapitel, in dem auf die Integration von bestehenden PL/SQL Routinen in ADF Business Components eingegangen wird, welches für Migrationsprojekte von Oracle Forms oder APEX Anwendungen interessant ist. Dabei wird sowohl auf Best Practices eingegangen, als auch auf die häufigsten Fehlerquellen (z.B. verwenden von Session Variablen) hingewiesen. Das zweite Kapitel beschäftigt sich mit bekannten ADF Architektur Mustern wie der Colossal, Cylinder oder Pillar Architektur. Die einzelnen Architekturen wurden den Kursteilnehmern jeweils mit anschaulichen Diagrammen näher gebracht und deren Vor- sowie Nachteile erläutert.

Highlight: ADF Task Flows

Der interessanteste Themenblock waren jedoch die ADF Task Flows. Generell sollten Task Flows jedem ADF Spezialisten bekannt sein, jedoch konnten Chris und Frank sehr eindrucksvoll die Komplexität des Themas zeigen. Dies erreichten sie dadurch, indem sie eine Reihe von Präsentationen allein auf die zwei zur Verfügung stehenden Optionen zu Transaktionssteuerung (Data Control Scope und Transaction Options) der Task Flows aufbauten. Es war sehr interessant zu sehen, was diese beiden Schalter alles bewirken können und was dabei alles beachtet werden muss.

Fazit

Zusammenfassend kann ich sagen, dass mir das Training sehr gut gefallen hat. Chris und Frank haben es sehr gut geschafft alle Themen abzudecken und sowohl bekannte Themen aus einem neuen Blickwinkel zu betrachten, als auch neue und kommende Themen vorzustellen. Sobald das Training online zur Verfügung steht, ist es definitiv ein Must Have für jeden ADF Spezialisten.

oracle-adf-logo

Weiterführende Links:

Infos von Oracle über das Training und die einzelnen Sessions gibt es hier

Blog von Chris Muir One Size Doesn't Fit All

Blog von Frank Nimphius ADF Code Corner Oracle JDeveloper OTN Harvest

Carsten Wiesbaum

DOAG 2013 IM Community Summit

Motto: “Infrastruktur meets Middleware”, ein kurzer Bericht zur Konferenz

Am 06. Juni 2013 traf sich die DOAG Community zum ersten IM Community Summit in Mainz. Nach dem Motto "Infrastruktur meets Middleware" wurden in drei verschiedenen Vortragsreihen viele spannende Vorträge angeboten. Dabei wurden Themen aus den Bereichen Hardware, Betriebssysteme, Virtualisierungs-Technologien, EXA-Systeme und natürlich der Fusion Middleware (WebLogic, SOA Suite, OSB, BAM etc.) präsentiert. Neben den hervorragenden Vorträgen bot die Konferenz auch ausreichend Raum für das Networking und den Erfahrungsaustausch beim Einsatz von Oracle-Technologien. Es hat mich sehr gefreut, viele bekannte und neue Gesichter zu sehen und Erfahrungen aus dem Projektalltag zu teilen. Ferner auch ein großes Lob an die Organisatoren, Veranstaltungsort und Logistik waren tadellos. Aus meiner Sicht könnte jedoch die Anzahl der Teilnehmer höher sein!

Die Vortragsreihen umfassten die Bereiche Infrastruktur, Middleware sowie on top of Middleware. Ich habe mir vorwiegend die Vorträge im Bereich "on top of Middleware" angesehen. Zunächst präsentierte Mannas Deb von Oracle Strategien und Vorgehensweisen für Integrationsszenarien in der Cloud. Überdies zeigte er, welche Produkte von Oracle herangezogen werden können. Im Anschluß folgte ein Erfahrungsbericht zum Einsatz der BPMN Suite 11g in Projekten. Insbesondere das Thema Adaptive Case Management, dass im aktuellen Patchset 11.1.1.7.0 zur Verfügung gestellt wurde, sorgte für reges Interesse bei allen Teilnehmern. Dann folgte eine Vortrag zum Thema Best Practices beim Einsatz der Oracle SOA Suite. Am Nachmittag wurden die Themen BAM und Einsatzszenarien für den Oracle Service Bus beleuchtet. Einen sehr interessanten Abschluss bildete der Vortrag von Andreas Chatziantoniou. Er vergab die Oscars im FMW Bereich. In seiner Präsentation gab er einen Überblick über diverse Middleware Komponenten, z. B. Cloud Control, die in keinem Projekt fehlen sollten.

Mein persönliches Fazit: Eine gelungene Konferenz, die auf jeden Fall wiederholt werden sollte.

Weitere Informationen zur Konferenz sind unter folgendem Link verfügbar.

Mit der DOAG Development am 19.06.2013 in Bonn steht der nächste DOAG-Event unmittelbar bevor. Verpassen Sie nicht die Vorträge von esentri auf dieser Konferenz! Weitere Informationen unter Link.

Markus Lohn

How-to access BAM web applications from OS X

Sad but true the BAM web applications can only be used when using Microsoft Internet Explorer. BAM uses some Microsoft specific functions and features to display data in dashboards and graphics. There exists some plugins to overcome this limitations that can be used in Google Chrome and Mozilla Firefox. However these plugins only available on windows platforms. So the questions arises how-to access the BAM web applications from OS X?

Introduction

I am currently working on a BAM architecture for a customer and run into problems when trying to access the BAM web applications from OS X. BAM web applications consist of the the following modules:

  • Active Viewer
    Access previously configured dashboards and reports.
  • Active
    The dashboard and report designer.
  • Architect
    Tool to define the data objects needed for the dashboards and reports.
  • Administrator
    Tool to administer for example the access privileges to access BAM

Sad but true the BAM web applications can only be used when using Microsoft Internet Explorer. BAM uses some Microsoft specific functions and features to display data in dashboards and graphics. There exists some plugins to overcome this limitations that can be used in Google Chrome and Mozilla Firefox. However these plugins only available on windows platforms. So the questions arises how-to access the BAM web applications from OS X?

Solution

The solution is based on Oracle VirtualBox and Images for Internet Explorer provided by Microsoft for testing purposes. VirtualBox can be downloaded from OTN with the following link. The Images for Internet Explorer can be obtain with the following link.

There exists a very good description and tooling to setup a VirtualBox Image with the corresponding Internet Explorer version on OS X. The description is available on the following link. I recommend to follow the given instructions.

Winxp vbox1

After the successful setup of the VirtualBox Image with Internet Explorer there is another configuration step necessary. In my case I use a separate VirtualBox Image containing the BAM server. So I need 2 different VirtualBox Images talk to each other. I solved this by configuring a new network adapter in each VirtualBox Image.

Winxp vbox2

I used "Internal network" as network adapter type and specified a name for the new network. Afterwards it is necessary to manually assign IP address for each VirtualBox Image for the every new internal network adapter.

Winxp vbox3

That's all! After all this configuration steps BAM should be accessible.

Markus Lohn
Copyright © 2009 esentri corporate Blog