Architektur

Oracle SOA Suite 12c: Zeit sparen mit den neuen SOA Templates

SOA Template
Carsten Wiesbaum
Carsten Wiesbaum

Es kommt häufig vor, dass sich innerhalb eines Projektes bestimmte Designmuster in mehreren SCAs bewusst wiederholen. Ein prominentes Beispiel für ein solches Muster ist zum Beispiel ein Ansatz zum Monitoring von Prozessläufen. So könnte eine Anforderung lauten: vor Beginn des eigentlichen Prozesses und nach erfolgreicher Bearbeitung der Prozessschritte eine Lognachricht zu schreiben.

Ein mögliches Design, um eine solche Anforderung umzusetzen, kann wie folgt aussehen:

Process Monitoring Design

Process Monitoring Design

Der BPEL Prozess ControllerBPEL übernimmt in diesem Fall die Prozesssteuerung und ruft zu Beginn den BPEL Prozess PreProcessBPEL auf. Dieser Prozess feuert ein processEvent, welches von einer Monitoring-Komponente aufgefangen und verarbeitet wird. Danach startet der Controller den eigentlichen Verarbeitungsprozess DoWorkBPEL. Wenn dieser abgeschlossen ist, wird ein weiteres processEvent durch den PostProcessBPEL Prozess gefeuert.

Die Implementation der beiden Pre/PostProcessBPEL ist im gezeigten Beispiel relativ simpel, es werden lediglich ein paar Zuweisungen und Invokes benötigt:

Event Verarbeitung

Event Verarbeitung

Dennoch kann man davon ausgehen, dass für die Implementation eines solch simplen Monitoring Ansatzes 5 bis 15 Minuten benötigt werden. Wenn dieser Ansatz nun in 20 SCAs zu implementieren ist, ergibt sich bereits ein Zeitaufwand von 100 bis 300 Minuten! Zeit, die im Projektalltag sicherlich besser genutzt werden kann…

Dieses Problem hat auch Oracle erkannt und bietet im SOA Suite Release 12c das neue Feature „SOA Templates“ an.

Arbeiten mit SOA Templates

Zur Erstellung eines Templates muss zunächst geklärt werden, was die wiederverwendbaren Bestandteile des Designmusters sind. In unserem Beispiel sind das die folgenden BPEL Prozesse und dazugehörige Schnittstellen:

• ControllerBPEL
• PreProcessBPEL
• PostProcessBPEL

Um ein SOA Template mit diesen Bestandteilen zu erstellen, benötigt man zunächst ein einfaches SOA Projekt, in dem alle Komponenten soweit wie möglich implementiert wurden.

SOA Template

SOA Template

Nachdem die Implementation abgeschlossen ist, kann das SOA Template erstellt werden. Dazu wählt man im Projektkontextmenu den Punkt Create SOA Template aus.

SOA Template erstellen

SOA Template erstellen

Hinter diesem Menüpunkt verbirgt sich ein Wizard, der durch die Erstellung des Templates führt. Im ersten Bildschirm müssen lediglich Informationen wie Name, Speicherort und eine Beschreibung angegeben werden.

Basisinformationen des SOA Templates

Basisinformationen des SOA Templates

Im zweiten Schritt kann bestimmt werden, welche Komponenten und Artefakte im Template enthalten sein sollen. In diesem Beispiel sind das die BPEL Prozesse ControllerBPEL, PostProcessBPEL und PreProcessBPEL mit dazugehörigen Schnittstellendefinitionen.

Auswahl der benötigten Dateien

Auswahl der benötigten Dateien

Die Erstellung des Templates wird mit einem Klick auf Finish abgeschlossen. Ab sofort kann das Template beim Anlegen eines neuen SOA Projektes ausgewählt und verwendet werden. Dazu muss im SOA Projekt Wizard lediglich Start from: SOA Template ausgewählt werden:

Neues SOA Projekt mit Template erstellen

Neues SOA Projekt mit Template erstellen

Das resultierende SCA enthält nun alle Komponenten und Artefakte aus dem SOA Template. Nun müssen lediglich einige Details angepasst werden. Danach kann die Implementation der eigentlichen SCA Inhalte starten.

Erstelltes SOA Projekt

Erstelltes SOA Projekt

Fazit

Das neue SOA Template Feature erleichtert die Einführung von allgemeinen Designmustern und reduziert den Aufwand, der in früheren Versionen in ihre Implementation gesteckt werden musste. Für mich ist dies definitiv eines der neuen Features, welches die Arbeit in zukünftigen Oracle SOA Projekten stark vereinfachen wird.

Links

> Oracle SOA Suite Templates and Reusable Subprocesses
> Oracle SOA Suite 12c: Mehr Schwung mit neuem Feature-Set