31
Page 1 SCA & SDO Konzepte und Design Berthold Maier Oracle Consulting Deutschland Torsten Winterberg OPITZ CONSULTING GmbH DOAG, November 2010, Nürnberg SCA & SDO Konzepte und Design

SCA & SDO Konzepte und Design - doag.org · [email protected] ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Embed Size (px)

Citation preview

Page 1: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 1SCA & SDO Konzepte und Design

Berthold Maier

Oracle Consulting Deutschland

Torsten Winterberg

OPITZ CONSULTING GmbH

DOAG, November 2010, Nürnberg

SCA & SDO Konzepte und Design

Page 2: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 2SCA & SDO Konzepte und Design

The Team: Masons-of-SOA

www.soa-community.com

Bernd Trops (Sopera):

[email protected]

Clemens Utschig-Utschig (Böhringer-Ingelheim):

[email protected]

Berthold Maier (Oracle Consulting):

[email protected]

Hajo Normann (HP Enterprise Services):

[email protected]

Torsten Winterberg (OPITZ CONSULTING):

[email protected]

Jürgen Kress (Oracle Corp.)

[email protected]

Page 3: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 3SCA & SDO Konzepte und Design

Agenda

Was ist SCA? Aufbau und Bestandteile

Was ist SDO?

SCA und Oracle SOA Suite

Page 4: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 4SCA & SDO Konzepte und Design

Was ist SCA ?

C1

C2

wire

component

composite

service

reference

S

R

S S

R

R

properties

Java interface

WSDL portType

Binding:

SOAP

JMS

JCS

Service Component Architecture:– Sprachneutral (sprachabstrahierend)

– Component Model

– Assembly Model

• http://www.OSOA.org

• Standardisiert bei OASIS:

• SCA/SDO goes to OASIS, could be to SOA what Java EE was to n-tier computing

• Vereinfacht die Entwicklung in Service Orientierten Architekturen• Entwicklung konzentriert sich auf Implementierung der

Geschäftslogik

• SCA Umgebung regelt bzw. vereinfacht die technische Integration

Page 5: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 5SCA & SDO Konzepte und Design

SCA-Spezifikationen3 Basis-Spezifikationen Veröffentlicht am

SCA Assembly Model V1.00 21. März 2007

SCA Policy Framework V1.00 21. März 2007

SCA Transaction Policy Draft V1.00 03. Dezember 2007

7 Implementierungs-Spezifikationen Veröffentlicht am

SCA Java Common Annotations and APIs V1.00 21. März 2007

SCA Java Component Implementation V1.00 21. März 2007

SCA Spring Component Implementation V1.00 21. März 2007

SCA BPEL Client and Implementation V1.00 21. März 2007

SCA C++ Client and Implementation V1.00 21. März 2007

SCA COBOL Client and Implementation V1.00 24. September 2007

SCA C Client and Implementation V1.00 24. September 2007

4 Binding-Spezifikationen Veröffentlicht am

SCA Web Services Binding V1.00 21. März 2007

SCA JMS Binding V1.00 21. März 2007

SCA EJB Session Bean Binding V1.00 21. März 2007

SCA JCA Binding V1.00 05. November 2007

Page 6: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 6SCA & SDO Konzepte und Design

Page 7: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 7SCA & SDO Konzepte und Design

SCA Component

Verwendet konkrete Implementierung von Geschäftslogik

Kapselt verwendete Programmiersprache

Stellt Funktionalität als Services zur Verfügung (Service Provider)

Verwendet andere Services (Service Consumer)

Konfiguriert Implementierung über Properties

PROPERTIES

SERVICES

IMPLEMENTATION

REFERENCES

Impl

Page 8: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 8SCA & SDO Konzepte und Design

Implementation

konkrete Implementierung von Geschäftslogik

in einer beliebigen, von der SCA Runtime unterstützten,

Programmiersprache

Konfiguration der Impl. erfolgt in:

Impl

SCA Component

Page 9: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 9SCA & SDO Konzepte und Design

Service

von Implementierung bereitgestellter Service

Impl

SCA Component

Page 10: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 10SCA & SDO Konzepte und Design

Reference

von Implementierung verwendete/notwendige Services

Impl

SCA Component

Page 11: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 11SCA & SDO Konzepte und Design

Properties

• Konfiguration der implementierten Komponente

• Laufzeitparameter vor/nach Deployment-Zeitpunkt

Impl

SCA Component

Page 12: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 12SCA & SDO Konzepte und Design

Component Deklaration durch componentType

<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0">

<service name="MyValueService">

<interface.java interface="services.myvalue.MyValueService"/>

</service>

<reference name="customerService">

<interface.java interface="services.customer.CustomerService"/>

</reference>

<reference name="stockQuoteService">

<interface.wsdl interface="http://www.stockquote.org

/StockQuoteService#wsdl.interface (StockQuote)"/>

</reference>

<property name="currency" type="xsd:string">USD</property>

</componentType>

Page 13: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 13SCA & SDO Konzepte und Design

SCA - Abstract und Concrete WSDL

Abstract WSDL: Types, messages (structure of

the

method input/output parameter

types, exception (or fault) types,

the port type (=interface)

Concrete WSDL bindings to protocols, data

structures and service elements

with address location.

SCA & WSDL Composite/Components sind

immer als “Abstract WSDLs”

definiert. Das Binding erfolgt im

SCA-Composite Container

Page 14: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 14SCA & SDO Konzepte und Design

Page 15: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 15SCA & SDO Konzepte und Design

SCA CompositeService Component Definition

Language (SCDL)

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"

<service name="bpelprocess1_client_ep" ui:wsdlLocation="BPELProcess1.wsdl">

<interface.wsdl interface=http://xmlns.oracle.com//...tApp/BPELProcess1#wsdl.interface(BPELProcess1)

callbackInterface="http://xmlns.oracle.com/...BPELProcess1#wsdl.interface(BPELProcess1Callback)"/>

<binding.ws port="http://xmlns.orac/.../BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)"/>

<callback>

<binding.ws port="http://.../BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1Callback_pt)"/>

</callback>

</service>

<component name="OrderSpring">

<implementation.spring src="order-service-beans.xml"/>

</component>

<component name="BPELProcess1">

<implementation.bpel src="BPELProcess1.bpel"/>

</component>

<wire>

<source.uri>bpelprocess1_client_ep</source.uri>

<target.uri>BPELProcess1/bpelprocess1_client</target.uri>

</wire>

</composite>

Page 16: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 16SCA & SDO Konzepte und Design

Wiring

Verknüpfung von References und Services

Definiert durch Interfaces, Bindings und

definierten Policies

Autowiring kompatibler References / Services

durch SCA Runtime möglich

Page 17: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 17SCA & SDO Konzepte und Design

Bindings

Definieren Protokoll für Kommunikation mit

Service / Reference

Pro Services / Reference können mehrere Bindings definiert

werden.

Innerhalb einer Domain, kann die Wahl des Bindings der

Runtime überlassen werden.

Trennung von Geschäftslogik (implementation),

Infrastrukturcode (binding) und Infrastrukturkonfiguration

(composite)

Binding-Abstraktion ermöglicht Nutzung von Alternativen zu

Webservices SCA spezifiziert Web Service-, JMS-, EJB Session Bean- und JCA-Binding

Page 18: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 19SCA & SDO Konzepte und Design

Service Data Objects

Spezifikation zur Vereinheitlichung der Handhabung von

Daten

- unabhängig von Programmiersprache

- unabhängig von Datenquelle (DB, XML,..)

Entwicklung stark mit SCA gekoppelt

generell aber unabhängige und eigenständige Spezifikation

Page 19: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 20SCA & SDO Konzepte und Design

SDO Data Objects

DataObject : Enthält Daten als Properties und Verweise auf

weitere DataObjects (Containment oder Reference)

Department

EmployeeId Name

SDO DataGraphSDO DataObject

Page 20: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 21SCA & SDO Konzepte und Design

Data Access Service

Page 21: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 22SCA & SDO Konzepte und Design

Oracle SOA Suite 11g

Ganzheitliche Suite mit div. Komponenten: BPEL, ESB/Mediator, Rules, HumanTasks, EDN, CEP, BAM, WSM,

Adaptoren

Implementierung des SCA assembly models SCA composite als standard-basierte deployment unit

Diverse Komponenten in Composites verwendbar: ESB (Mediator), BPEL, Human Task, Rule, Spring

Page 22: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 23SCA & SDO Konzepte und Design

Page 23: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 24SCA & SDO Konzepte und Design

Service-Programmierung mit JAVA

JMS

EJB

Java

Application

JAX-WS

Java Class

ADF-BCADF BC

SDO

JMSJava

Application

Java

Application

Java

Application

EJB

ADF

Page 24: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 25SCA & SDO Konzepte und Design

ADF Faces Web Application

SOA Suite

E

D

N

DB

Application Module

(exposed as WS)

Entity Object

View Object

Daten

WebService

(SDO)

ADF

Business

Components

WebService

(Activity)

ADF BC genutzt als WebService und SDO

Page 25: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 26SCA & SDO Konzepte und Design

ADF BC, SDO and BPEL

ADF BC Application Module können als WS-Service

angebunden werden

ADF BC View Objects können als SDO Service direkt in

SCA/BPEL eingebunden werden SOA Suite ADF BC Binding-Adapter stellt Verbindung zum ADF BC SDO-

Service her

BPEL Variablen können direkt auf SDO-Entities (ADF VOs)

basieren Veränderungen via Assign in BPEL resultieren unmittelbar in SDO Updates

Verwendet SDO/XML over RMI per Default

Transaktionssicherheit kann einfach gewährleistet werden

Page 26: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 27SCA & SDO Konzepte und Design

Demo: ADF BC Service Interface

Demo !

Page 27: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 28SCA & SDO Konzepte und Design

Java-Bean als SCA-Component: Spring Bean Components

Natives SCA-JavaBinding wird von Oracle nicht unterstützt: Alternative: Verwendung von Spring

Spring’s Dependency Injection ist mit SCA’s Reference

Konzept vergleichbar

POJOs (Spring Beans) können in Composite Services

orchestriert werden Können auch als externe Service exponiert werden

Page 28: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 30SCA & SDO Konzepte und Design

Schritte & Spring Files

12

3

4

5

Page 29: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 31SCA & SDO Konzepte und Design

Exzellentes Material zum Nachschlagen

Oracle SOA Suite

Erschienen August 2010

Autor: Lucas Jellema

[email protected]

Presentation and demos are

on our blog http://technology.amis.nl/blog

Page 30: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 32SCA & SDO Konzepte und Design

Contact:

Berthold MaierChief Architekt

Oracle Consulting SOA

Oracle Deutschland GmbH

Riesstraße. 2 80992 München, Germany

Phone: +49 177 9 41 788

[email protected]

Page 31: SCA & SDO Konzepte und Design - doag.org · bernd.trops@sopera.com ... SCA & SDO Konzepte und Design Page 28 Java-Bean als SCA-Component: Spring Bean Components Natives SCA-JavaBinding

Page 33SCA & SDO Konzepte und Design

Contact:

Torsten WinterbergDirector Strategy & Innovation

Head of Competence Center SOA

Oracle ACE Director

OPITZ CONSULTING GmbH

Kirchstr. 6, 51647 Gummersbach, Germany

Phone: +49 173 54 79 302

[email protected]