2008/09/25

Oracle Fusion: OWSM

Ik moest toch naar de Oracle Fusion stack kijken, dus ik dacht laat ik maar direct een samenvatting maken van de verschillende producten.
Het eerste is de Oracle Web Service Manager.

Wat biedt het?
• Centraal configuratie van policies m.b.t. web services (LDAP directory of Oracle’s Access Manager(OAM))
• Enforce deze policies runtime
• Monitoren van runtime security evenst en SLAs in grafieken

Bij web services security spelen de volgende zaken een rol:
• Authenticatie – Is degene wel wie die zegt dat hij is, gebaseerd op credentials (user name, paswoord)
• Authorisatie – Een gebruiker toegang geven tot bepaalde resources gebaseerd op de gebruiker entitlements (property/karakterestiek van een gebruiker).
• Confidentiality – Zorgen dat de data niet gelezen kan worden, dmv encryptie. Ook hoort hierbij de identiteit van de sturende en ontvangende partij(privacy).
• Integrity – Zorgen dat een bericht niet kan worden aangepast

OWSM maakt gebruik van Public Key Infrastructure (PKI) omgevingen (ga ik hier verder niet op in).
De security requirements worden op transport nivo ondersteund (SSL) en op applicatie nivo (maken gebruik van XML frameworks, bijv WS-Security).
SSL zorgt voor authenticatie, confidentiality, integrity, secure key exchange tussen client en server. SSL zorgt voor point-to-point security maar geen end-to-end.

Wat gebeurt er op applicatie nivo?
Confidentiality wordt bereikt door gebruik van XML Encryption (= XML standaard).
Data integriteit en authenticatie maken gebruik van XML Signature (=XML standaard).
WS-Security definieerd hoe XML Signature en XML Encryption aan SOAP headers worden toegevoegd en heeft profiles voor 5 security tokens: Username (met password digest), X.509 certificaat, Kerberos ticket, Security Assertion Markup Language (SAML)asserties en REL document.

OWSM gebruikt 3 main operaties voor configuratie:
1) Define policies, bijv Log Incoming Message, Extract Credentials, Encrypt, Sign).
2) Enforce Policy Enforcement Points (PEPs) voor management policies.
3) Monitor voor tracking (in charts) runtime security en mgt events opgevangen door OWSM

OWSM gebruikt hiervoor de pipeline metafoor. Je definieerd dus wat er met request gebeurt en voor de response. De OWSM Gateway (of Agent) onderschept een web service request, voert de stappen uit van de request pipeline en forward (als alles goed is gegaan) de request naar de service request provider. Bij de response gebeurt iets soortgelijks. Het is ook mogelijk om custom steps, die niet out-of-the-box worden geleverd, te maken.


De gateway en/of Agents (ook bekend als PEPs) gebruiken de Policy Manager voor nieuwe policies (pull). Je hebt client en server Agents, die gebruikt worden bij respectievelijk een service client en service provider. Een gateway wordt meestal gedeployed aan de kant van de service provider in de zogenaamde DMZ (demilitarized zone).


Verschillende setups:
• Protecting web services dmv gateway


• Een webservice client en web service provider gebruiken verschillende credentials (client gebruikt username/password, provider SAML assertion).


• End-to-end security met Oracle Access Manager (OAM)


1 – Browser accesses application
2 – OAM agent (WebGate) vraagd om credentials, WebGate authenticeerd bij OAM en OAM genereerd sessie token
3 – De applicatie haalt cookie uit de sessie en zet dit in SOAP header en maakt de SOAP call
4 – Credentials in de SOAP header worden vervangen door SAML asserties en maakt forwards de SOAP call
5 – SAML assertie wordt gevalideerd en de web service call wordt gemaakt

2008/09/22

SOA Component

Bij het opzetten van een architectuur wordt altijd gepraat over componenten, modules, business services. Maar wat betekenen die termen nu eigenlijk in een SOA omgeving. Wat is een component dan precies? Moet een component een business service leveren? Of alleen een service die vervolgens in een business service gebruikt kan worden om de service te implementeren.
Het is natuurlijk goed om te weten hoe dit binnen jouw project gedefinieerd is. Dat maakt het praten en ontwikkelen van een SOA een stuk gemakkelijker.

Ik kwam op de IBM Developers site dit artikel tegen.

Agile en SOA een goede match ?

Ik ben voor het eerst een paar jaar geleden in contact gekomen met Agile development. Ik wil hier niet verder ingaan op wat Agile inhoudt, maar ik heb me wel beziggehouden of Agile ook werkt in een SOA oplossing.
Vandaag stuitte ik op blog van Martin Fowler dat wel de moeite waard is om te bekijken. Op InfoQ een reactie hierop.
Een interessante passage was wel: "As a result, one of the fundamental aspects of a SOA implementation should be the ability to evolve services contracts as the overall requirements to implementation change".

2008/09/19

Oracle DBAdapter

Deze blog laat zien hoe je eenvoudig een Oracle DB Adapter ge-exposed als een web service kunt maken met BEA Workspace Studio. Dit maakt gebruik van Apache Beehive.

* Maak een new Project aan en kies in de project wizard voor een Web Service Project. Klik Next.

* Geef als project naam, bijv DbAdapter, en klik Next


* In dit scherm kun je zogenaamde Facets aangeven. In dit geval de Annotation Processors die gebruikt gaan worden. We gebruiken de JAX-WS annotaties en de extended Beehive annotaties. Accepteer hier de Defaults.
en klik Next.

* Accepteer in dit scherm de defaults en klik Next.

* Het volgende scherm gaat over de Beehive Controls. Je kunt hier aangeven of je wilt verwijzen naar een Beehive library (eerste optie) of de JARs wilt copieren naar je WEB-INF/lib directory. Je kiest voor het eeste geval als de library vaker gebruikt wordt (of gaat worden), je kiest voor de tweede optie als je per applicatie wilt kunnen aangeven welke jars je precies wilt gebruiken.
Let op!
Als je voor de eerste (default) optie kiest, moet je er bij het deployen (en runnen) rekening mee houden dat de library wel gedeployed is in je weblogic server. Anders kan de webservice niet gedeployed worden. Dit is de fout die in een eerdere blog beschreven is.

Accepteer de default en klik Next.

* Bij Weblogic Controls, accepteer default en klik Next.
* Bij WebLogic Integrated Commons Logging accepteer default en klik Finish.

* Maak een nieuw services Package aan voor de classes


* Klik met rechtermuisknop op services en kies New > JDBC Control
* Geef als naam op DbAdapter en klik Next
* In het volgende scherm kies je de database source. Hier vul je de JNDI van de data source in.

En klik Finish.

* Nu wordt er direct al wat code voor je gemaakt:


* Nu kun je dmv annotaties van Beehive Sql queries uitvoeren op de data source waarnaar je zojuist gerefereerd hebt met z'n JNDI naam.
Bijvoorbeeld:


* Nu gaan we deze adapter exposen als een web service. Ga op services package staan, rechtermuisknop en kies New > WebLogic Web Service. Geef de service als naam DbAdapterService en klik Finish.

* Weer is er alvast wat code ingevuld. We gaan nu de JAXWS annotaties gebruiken om de DbAdapter te exposen als een WebService.


Voordat we gaan deployen vanuit WorkSpace Studio, gaan we eerst een koppeling maken met de server.
* Ga op DbAdapter project staan, rechtermuisknop en kies New > Server
* Vul hostname in (in ons geval localhost)
* Kies juiste BEA WebLogic Server versie (in ons geval 10.0), klik Next.
* Browse naar het juiste Domain en klik Next.
* Klik op je DbAdapter en klik Add, en daarna klik Finish
Bij de servers is nu je server toegevoegd met je project:


Nu kunnen we deployen.
* Klik rechtermuisknop op server en kies Publish.

Als je nu vervolgens inlogt op de admin server console van de server waarop je de service hebt gepublished zul je het volgende zien bij Deployments:


Nu kunnen we de service testen.
* Klik _workshop_auto_generated_ear_ open (+ tekentje)
* Klik bij Web Services op services.DbAdapterService
* Kies Testing tab
* Klik op (+) bij services.DbAdapterService
* Klik op Test Client
Nu krijg je een mooi gegenereerd test scherm voor je kiezen, vul wat waarden in en klik op Insert.


Kijk vervolgens in de database of de data is toegevoegd.

Deploy WAR op WebLogic

BEA WorkSpace Studio: 1.1
WebLogic Server: 10.0

Tijdens het deployen van een WAR file die andere JARs gebruikt stuitte ik op foutmeldingen. Classes konden niet geinstantieerd worden.
Nu had ik dit op de volgende manier gedaan:
1) Binnen WorkSpace studio een WebApp gemaakt
2) Ga op het project staan, rechtermuisknoop > Export > Web > WAR File
3) Kies een Destination waar de WAR file naartoe wordt geschreven, druk Finish

4) Open AdminServer console van de web logic server waarop je de app wilt deployen
5) Deploy de applicatie onder Deployments en ik krijg de volgende foutmelding



Echter op een andere PC deed ik de deploy anders en vanuit Workspace Studio:
1) Maak een server aan die verwijst naar de Server waarop je wilt deployen
2) Voeg jouw project toe aan de server
3) Klik op de server waarop je wilt deployen en rechtermuisknop Publish
4) Nu zul je zien bij de Deployments in de WebServer dat ook de afhankelijke libraries zijn gedeployed.
5) Start vervolgens de Web app in de WebLogic Server

2008/09/16

Oracle Fusion na aquisitie BEA

Nadat Oracle BEA heeft overgenomen, wat gebeurt er met o.a. JDeveloper, Workshop Studio, BEA WLS, BEA ALSB. Hoe worden de BEA producten geintegreerd in Oracle's Fusion Middleware? Een korte samenvatting.

* JDeveloper blijft de main development IDE. BEA Workshop wordt als een eclipse add-on toegevoegd aan JDeveloper (tegen geen extra kosten).

* BEA Tuxedo wordt de strategische offering voor het managen van transaction processing systemen die draaien op C/C++, en COBOL.

* BEA WebLogic Server wordt de Java application server (BEA JRockit wordt Java Virtual Machine).

* Merge van Oracle ESB product met BEA ALSB: Oracle Service Bus. Oracle’s BPEL Process Manager blijft het platform voor process orkestratie.

* Business Process Automation (BPA) Designer tool zal herenigd worden met BEA AquaLogic BPM Designer. De verenigde offering zal de bestaande BPM Suite vervangen.


Sources:
Wordpress
Oracle Fusion Middleware

2008/09/15

BEA Workspace Studio

Nadat ik de cursus ALSB 2.5 had gevolgd, met overigens een ALSB 3.0 installatie, kwam ik erachter dat er ook nog zoiets was als BEA Workspace Studio.
Ik had namelijk alles netjes via de HTTP SB console geconfigureerd.
Je kunt de configuratie echter heel gemakkelijk exporteren en weer importeren in de Eclipse omgeving.

1) Login op de ALSB Console (bv: http://localhost:7001/sbconsole)
2) Ga naar "System Administration"
3) Daarna "Export Resources", selecteer het project dat je wilt exporteren en klik "Export"

Nu is het configuratie project ge-exporteerd.

Ga vervolgens naar BEA Workspace Studio.
1) Ga naar de Project Explorer
2) Rechtermuis knop, New > ALSB Configuration Project (en vul gegevens in)
3) Ga op het Configuration Project staan, rechtermuisknop Import > Configuration Jar
4) Browse naar de ge-exporteerd jar file
En klaar !

Je hebt nu een designer voor bijvoorbeeld de message flow, bijvoorbeeld: