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
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 2SCA & SDO Konzepte und Design
The Team: Masons-of-SOA
www.soa-community.com
Bernd Trops (Sopera):
bernd.trops@sopera.com
Clemens Utschig-Utschig (Böhringer-Ingelheim):
clemens.utschig-utschig@boehringer-ingelheim.com
Berthold Maier (Oracle Consulting):
berthold.maier@oracle.com
Hajo Normann (HP Enterprise Services):
hajo.normann@hp.com
Torsten Winterberg (OPITZ CONSULTING):
torsten.winterberg@opitz-consulting.de
Jürgen Kress (Oracle Corp.)
juergen.kress@oracle.com
Page 3SCA & SDO Konzepte und Design
Agenda
Was ist SCA? Aufbau und Bestandteile
Was ist SDO?
SCA und Oracle SOA Suite
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 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 6SCA & SDO Konzepte und Design
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 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 9SCA & SDO Konzepte und Design
Service
von Implementierung bereitgestellter Service
Impl
SCA Component
Page 10SCA & SDO Konzepte und Design
Reference
von Implementierung verwendete/notwendige Services
Impl
SCA Component
Page 11SCA & SDO Konzepte und Design
Properties
• Konfiguration der implementierten Komponente
• Laufzeitparameter vor/nach Deployment-Zeitpunkt
Impl
SCA Component
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 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 14SCA & SDO Konzepte und Design
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 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 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 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 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 21SCA & SDO Konzepte und Design
Data Access Service
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 23SCA & SDO Konzepte und Design
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 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 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 27SCA & SDO Konzepte und Design
Demo: ADF BC Service Interface
Demo !
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 30SCA & SDO Konzepte und Design
Schritte & Spring Files
12
3
4
5
Page 31SCA & SDO Konzepte und Design
Exzellentes Material zum Nachschlagen
Oracle SOA Suite
Erschienen August 2010
Autor: Lucas Jellema
lucas.jellema@amis.nl
Presentation and demos are
on our blog http://technology.amis.nl/blog
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
berthold.maier@oracle.com
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
torsten.winterberg@opitz-consulting.com