Follow Us on Twitter

Sneak preview Oracle SOA Suite 11g

Maart 2008 - Bij Oracle staat voor het einde van 2008 de release van de 11g versie van de SOA suite in de planning. Deze release bevat een groot aantal nieuwe functionaliteiten. In deze Whitebook zullen de voornaamste vernieuwingen de revue passeren.

Ten tijde van schrijven is de "Oracle SOA 11G Technical Preview 3 update 1" beschikbaar. Deze preview bevat JDeveloper 11g met een "ingebakken" SOA Suite. Als onderliggende database kan Oracle XE of versie 10.1.2.x of hoger gebruikt worden. Deze technische preview zal in deze Whitebook gebruikt worden om de volgende functionaliteiten nader uit te leggen:

  • SCA
  • MDS
  • Events
  • ADF Taskflows

Om de vernieuwingen aan te tonen zal er regelmatig vergeleken worden met de huidige versie van de SOA Suite. Dit is versie 10.1.3.3.

In de technical preview zijn de SOA Suite en de ontwikkelomgeving geïntegreerd in JDeveloper. De SOA Suite zal, wanneer deze uitgebracht wordt, weer bestaan uit een aparte suite en een aparte ontwikkelomgeving. Zoals we gewend zijn dus.

SCA

Met de komst van de Service Component Architecture (SCA) zal het leven van menig SOA expert makkelijker worden. Op dit moment zijn we gewend dat ESB en BPEL processen in hun eigen project staan. Het koppelen met elkaar geschiedt door middel van partnerlinks. Het is dan ook niet zo makkelijk om in één keer een overzicht te krijgen van het hele systeem. Met een SCA word dit anders. Bij het aanmaken van een nieuw SOA project wordt er een SCA composite gemaakt. Dit kan men zien als de basis van je project en als de bovenste laag van je SOA project. Hierin komen de BPEL en ESB (Mediator) processen te staan. Daarnaast worden ook de relaties tussen de processen in SCA gelegd. Deze relaties kunnen gelegd worden door aanknopingspunten van het ene proces naar het andere te slepen. Deze koppeling word een "Wire" genoemd. Als men een onmogelijke koppeling probeert te maken zal de ontwikkelaar hierop worden geattendeerd. Ook is het duidelijk welke processen een verbinding met de buitenwereld hebben. Wanneer men nu een project maakt in 11g dan kan men dus in het SCA composite in één oogopslag een overzicht krijgen van de verschillende processen en koppelingen.

 


Fig 1. Het SCA Composite

Het SCA composite bestaat in JDeveloper uit 3 verschillende "zones". De linker zone is bestemd voor inkomende verbindingen en adapters en dient als aanspreekpunt voor de SOA applicatie. In de middelste en grootste zone definieert men de afhankelijkheden en flow van de applicatie. In de rechter zone komen de uitgaande verbindingen en adapters terecht. Zoals we gewend zijn kunnen we vanuit de "Component palette" verschillende componenten in het project slepen. Hierbij kunnen we kiezen uit de volgende componenten:

Mediator


Fig 2. Een Mediator met een gepubliceerd event

Dit component is de vervanger van wat in 10g en eerder een ESB proces heette. In feite is de functionaliteit van dit component vrijwel gelijk gebleven. Hier vindt filtering, routering en transformatie plaats. Dit component kan men bijvoorbeeld gebruiken wanneer een bericht binnenkomt dat afhankelijk van de inhoud conditioneel afgehandeld moet worden.

BPEL Proces


Fig 3. Een BPEL Proces

De vertrouwde component die we ook al kennen uit eerdere versies van de SOA suite. In dit component kan men (bedrijf)logica loslaten op gegevens. Dit proces kan onder andere door berichten lussen, condities hierop loslaten en om menselijke invoer vragen door middel van een "Human Task".

Human workflow

Dit component is in de komende versie van de SOA suite vrijwel hetzelfde gebleven. Het .task bestand is op een paar punten veranderd maar in essentie hetzelfde. Een human workflow is niet meer alleen binnen een BPEL proces beschikbaar, maar ook binnen de SCA. De voornaamste verandering is de opbouw van de workflow pagina. Dit gebeurt in 11g volledig in ADF. Daarnaast is het mogelijk om de ADF pagina te scheiden van het SOA project. Hierover kan men verder op in deze Whitebook meer lezen.

CEP


Fig 5. Een Complex Event Processing component met gesubscribed event

CEP staat voor Complex Event Processing. Dit component bestond nog niet in eerdere versies. Een CEP kan op events "subscriben" (Reageren) of kan events "Publishen" (Afvuren). De grote kracht van dit component ligt ergens anders. Het is namelijk mogelijk om bepaalde patronen te herkennen en hierop te reageren. Het beschrijven van deze patronen gebeurt met behulp van een nieuw ontwikkelde querytaal genaamd "CQL". Wanneer men in de richting van BPM gaat denken kan men zien dat CEP een erg interessante component is.

Metadata Services

Een grote vernieuwing die 11g met zich mee brengt is de MDS (Metadata Services). In deze "repository" worden alle eigenschappen van een SOA project opgeslagen. Dit geeft erg veel interessante mogelijkheden. Switchen naar een andere database, voorkeuren wijzigen etc. kan in een handomdraai. Opnieuw je project deployen zal dan ook minder vaak hoeven te gebeuren.

Events

In 11g kan men reageren op bepaalde gebeurtenissen in processen. Deze gebeurtenissen heten "events". Dit bestond nog niet in 10g. Men zou kunnen zeggen dat de "OnMessage" en "OnEvent" uit een scope vergelijkbaar zijn aan events. Voordat een event gebruikt kan worden moet er eerst een definitie aangemaakt worden.

In deze definitie kan men variabelen uit een project selecteren. Dit zijn dus de variabelen waarop men het event wil laten reageren.

In de composite.xml kan men nu een proces selecteren en hierop abonneren (subscriben). Hier kunnen ook de voorwaarden ingesteld worden.

Een opmerking hierbij is dat alle events binnen de scope van de composite moeten blijven. Eventueel kan men hier omheen werken door middel van bijvoorbeeld een JMS queue.

ADF Taskflows


Fig 6. Een ADF Taskform

Een andere welkome vernieuwing is dat de human task pagina nu volledig opgebouwd wordt met behulp van ADF. Dit betekent dat nu aan de hand van de meegegeven task parameters data controls worden aangemaakt. Door deze data controls te slepen naar de pagina kan men snel een volledig aangepaste workflow pagina aanmaken. Deze componenten zijn ook vrijwel allemaal geschikt voor ADF. Daarnaast is het ook mogelijk om de ADF taskflow pagina te scheiden van het project waarin deze gebruikt zal worden. Dit bereikt men als volgt:

 

	New -> Web Tier -> JSF -> ADF Task Flow Based on Human Task 

Wanneer men de Human Task in het BPEL proces zet, zal gerefereerd moeten worden naar het .task bestand in het zojuist aangemaakte project.

Deployment


Fig 7. De Soa Console

In 11g zijn de verschillende onderdelen van de SOA suite samengekomen. Waar er in 10g nog verschillende Management consoles waren, zijn deze nu gecombineerd tot 1 console, namelijk de "SOA Console". Het is ook alleen maar mogelijk om de composite in zijn geheel te deployen. Het deployen van individuele processen is er dus niet meer bij. Dit is nogal logisch als men ziet dat met SCA de verschillende processen aan elkaar gekoppeld worden en hiermee een sterke afhankelijkheid hebben. Dit betekent voor de ontwikkelaar dat hij in de toekomst zich minder hoeft bezig te houden met de onderlinge afhankelijkheden van processen.

Algemene Opmerkingen

Er zijn nog een aantal dingen die opvallen wanneer men met de Preview bezig gaat.

In eerdere releases van de SOA Suite werd voor elke proces automatisch een webservice gegenereerd, tenzij dit werd aangegeven door een vinkje uit te zetten. Wanneer men nu een nieuwe Mediator of BPEL proces in het composite.xml bestand sleept, moet expliciet "Expose as Composite Service" aangevinkt worden. Daardoor word de composite van buitenaf aanspreekbaar.

 


Fig 8. Dialoog voor het creëren van een BPEL Proces met een gemarkeerd vinkje.

In de transform activiteit van een BPEL proces is het nu mogelijk om meerdere source-variabelen in één keer aan te geven. Hiermee wordt het aantal "assign" activiteiten drastisch teruggebracht. Dit zal voor velen het leven makkelijker maken.


Fig 9. Een Transform met meerdere sources

Conclusie

Iedereen die gewend is om te werken met de 10g versie van de SOA Suite zal even moeten wennen wanneer 11g opgestart word. Er is namelijk nogal wat veranderd. Alle componenten voor integratie en procesbeschrijving komen samen in één project. Het belangrijkste onderdeel van het project bestaat uit de SCA. Hierin worden alle processen en hun relaties weergegeven. De ontwikkelaar krijgt hierdoor een goed overzicht van het systeem. Dit in combinatie met “Metadata Services” en “Events” maakt al snel dat velen positief zullen zijn over de komende release.

Koppelingen tussen de SOA suite en monitoring tools zijn makkelijker te leggen. 11g brengt SOA dan ook dichter bij de business analist.

De voornaamste vraag blijft of bedrijven die al met 10g werken bereid zullen zijn om over te stappen op 11g wanneer deze uitkomt later dit jaar. Er is conceptueel en functioneel het nodige veranderd. Dit betekent dat migreren van 10 naar 11g niet zonder meer mogelijk is.

Over de auteur
Marcel Maas is consultant en houdt zich voornamelijk bezig met integratievraagstukken met de Oracle SOA Suite en Java.

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.