Service Component Architecture Solide Basis f端r SOA-Prinzipien?
Service Component Architecture Solide Basis f端r SOAPrinzipien? Folie 1 23. November 2010 Alexander Hauswald 息 Z端hlke 2011
Service Component Architecture
Folie 2 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Service Design Prinzipien
1.
Loose Coupling
2.
Encapsulation
3.
Autonomy
4.
Orthogonality
5.
Idempotency
6.
Cohesion
Service Component Architecture
Folie 3 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Service Component Architecture ?
•
Spezifikationen, die ein Modell für das Erstellen von SOA Anwendungen beschreiben
•
Deklarative Metadaten für die Konfiguration
•
Abstraktionen helfen verschiedene Aspekte bei der Komposition von Systemen zu berücksichtigen
•
Unterstützung von Assembly, Deployment und Runtime
Service Component Architecture
Folie 4 23. November 2010 Alexander Hauswald © Zühlke 2011
OpenSOA
•
OSOA Collaboration gegründet 2005
•
Konsortium von Herstellern und Firmen
•
Ziel ist die Erstellung von Spezifikationen, um die Erstellung von SOA Applikationen zu beschreiben
•
Draft 0.9 im Herbst 2005
•
Version 1.0 im Winter 2007
•
Übernahme durch OASIS – http://www.oasis-open.org/committees/tc_cat.php?cat=soa
•
Version 1.1 final release Winter 2010/11 anvisiert – Eventing
Service Component Architecture
Folie 5 23. November 2010 Alexander Hauswald © Zühlke 2011
OpenSOA Partner
Service Component Architecture
Folie 6 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Komponentenmodelle gibt es schon
•
COM / DCOM
•
Java EE
•
.Net Remoting / WCF
•
CORBA
Service Component Architecture
Folie 7 23. November 2010 Alexander Hauswald © Zühlke 2011
Warum noch eines?
•
Bruch zwischen Modellierung, Architektur und Implementierung
•
Service Orientierung Objekt Orientierung
•
Komplexität
Service Component Architecture
Folie 8 23. November 2010 Alexander Hauswald © Zühlke 2011
SCA Design Prinzipien
•
Unabhängig von der Programmiersprache wie auch von der zugrunde liegenden Implementierung
•
Unabhängig von der Container-Technologie
•
Lose Kopplung zwischen den Komponenten
•
Policies beschreiben Security, Transaction und Reliability
•
Rekursive Komposition
Service Component Architecture
Folie 9 23. November 2010 Alexander Hauswald © Zühlke 2011
Spezifikationsinhalte
•
Struktur – Assembly Model Spezifikation
•
Implementierung einer Programmiersprache – Component Implementation Spezifikation – E.g. Java, C++
•
Remoting – Binding Spezifikation – E.g. Web services, JMS, RMI-IIOP, EJB
•
Infrastruktur – Policy Framework Spezifikation – E.g. Security, transactions, reliability Service Component Architecture
Folie 10 23. November 2010 Alexander Hauswald © Zühlke 2011
Verwendung in Produkten
• Kommerzielle
– – – –
Anbieter
Oracle SOA Suite 11g IBM Websphere Application Server Tibco ActiveMatrix Hydra Suite
• OpenSource
Anbieter
– Apache Tuscany – Fabric3
Service Component Architecture
Folie 11 23. November 2010 Alexander Hauswald © Zühlke 2011
SOA Standards für Oracle
Service Component Architecture
Folie 12 23. November 2010 Alexander Hauswald © Zühlke 2011
Schlüsselwörter in SCA
•
Service
•
Reference
•
Wire
•
Interface
•
Binding
•
Implementation
•
Component
•
Composite
•
Service Component Architecture
ComponentType Folie 13 23. November 2010 Alexander Hauswald © Zühlke 2011
Essenz
•
Service
•
Component
•
Composite
•
The Domain
Service Component Architecture
Folie 14 23. November 2010 Alexander Hauswald © Zühlke 2011
SCA Assembly Domain
Service Component Architecture
Folie 15 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Service Konzept
•
Service – extern nutzbare Funktionalität einer Implementierung
Service •
Reference – Abhängigkeit zu einem externen Service
Reference
Service Component Architecture
Folie 16 23. November 2010 Alexander Hauswald © Zühlke 2011
Component Konzept
Component – konfigurierte Instanz einer Implementierung in einem composite •
Stellt service bereit
•
Konsumiert services
•
Konfiguriert references durch wiring von services
Component
Service Component Architecture
Folie 17 23. November 2010 Alexander Hauswald © Zühlke 2011
Component Konzept
Component Implementation – Konfigurierbares Stück Software, das eine spezifische Business Funktionalität bereitstellt •
Implementierung – Java, Spring, C++, BPEL, …
•
Stellt Business Funktionen als service bereit
•
Kann andere services mittels references benutzen
•
services und references sind mit Interfaces getyped
•
Scope – Runtime verwaltet State und Nachrichten Routing
Service Component Architecture
Folie 18 23. November 2010 Alexander Hauswald © Zühlke 2011
Component Konzept
Service Component Architecture
Folie 19 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Composite Konzept
Composite •
Eine Zusammenstellung von Components, die gemeinsam entwickelt und deployed werden – – – – –
Publicly consumable services Service Implementierungen sind Components Benötigte Services sind References Hat Properties Kann als Implementierung anderer Components verwendet werden
Service Component Architecture
Composite
Folie 20 23. November 2010 Alexander Hauswald © Zühlke 2011
Beispiel Composite
Service Component Architecture
Folie 21 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Beispiel composite.xml
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://example.org"name="…"> <service name="..." promote="A"/> <component name="A"> <implementation ... /> <property name="...">...</property> <service name="...">...</service> <reference name="" target="B"/> </component> ... <property name="...">...</property>
Service Component Architecture
<property name="...">...</property> <reference name="" promote=“B"/> </composite>
Folie 22 23. November 2010 Alexander Hauswald © Zühlke 2011
Rekursive Composition
Composites und Components ähneln sich •Konfigurierte
Referencen, Services, Properties
Ein composite kann von anderen composites als component-Implementierung verwendet werden Eine component kann durch eine „simple“ Implementierung oder ein composite umgesetzt werden
Service Component Architecture
Folie 23 23. November 2010 Alexander Hauswald © Zühlke 2011
Bindings
•
Gelten für services und references
•
Spezifisch für – Access Method / Protocol / Transport – Serialization – Framework
•
Werden beim Deployment hinzugefügt, aber müssen kompatibel mit der darunter liegenden Implementierung sein
•
Eine Anzahl an bindings sind vordefiniert, aber nur einige wenige sind required von den Herstellern
•
Das binding.sca Element erlaubt extensibility und runtime defaults
Service Component Architecture
Folie 24 23. November 2010 Alexander Hauswald © Zühlke 2011
Composite Overview
Service Component Architecture
Folie 25 23. November 2010 Alexander Hauswald Š Zßhlke 2011
The Domain
Service Component Architecture
Folie 26 23. November 2010 Alexander Hauswald Š Zßhlke 2011
The Big Picture
Service Component Architecture
Folie 27 23. November 2010 Alexander Hauswald Š Zßhlke 2011
Client and Implementation Specifications
•
Spezifiziert wie service components und service clients gebaut werden
•
Spezifisch für eine Sprache, Framework oder API erweiterbar
•
Es existieren diverse C&I Spezifikationen (es müssen aber nicht alle durch die Hersteller umgesetzt werden): – Java, BPEL, Spring Framework, C++
Service Component Architecture
Folie 28 23. November 2010 Alexander Hauswald © Zühlke 2011
Java Client und Implementierung
Implementation type for POJO •
Uses <implementation.java class=“java-class-name”>
<component name="AccountServiceComponent"> <implementation.java class = "services.account.AccountServiceImpl"/> ... </component>
Uses the common annotations and APIs Service Component Architecture
Folie 29 23. November 2010 Alexander Hauswald © Zühlke 2011
Java Component Implementation
•
Interface Definition
•
Reference Definition
•
Property
Service Component Architecture
Folie 30 23. November 2010 Alexander Hauswald © Zühlke 2011
SCA in Java - Annotations
Common across all Java-related specifications Implementation annotations •@Service, •@Scope,
@Reference, @Property
@Init, @Destroy, @EagerInit
•@ConversationID,
@ConversationAttributes
•@ComponentName •@Constructor
Interface annotations •@AllowsPassByReference, •@Remotable,
Service Component Architecture
@Callback
@Conversational, @Oneway
Folie 31 23. November 2010 Alexander Hauswald © Zühlke 2011
JDeveloper – Composite Editor
Service Component Architecture
Folie 32 23. November 2010 Alexander Hauswald © Zühlke 2011
Zusammenfassung
•
SCA wird von einem Konsortium von Firmen und Herstellern (weiter-)entwickelt
•
SCA Spezifikationen definieren eine einheitliche Plattform für die Erstellung von SOA Applikationen
•
SCA bietet deklarative Konfigurationen und dynamische Aufrufmöglichkeiten
•
SCA unterstützt die Service Design Prinzipien
•
SCA steht nicht in Konflikt mit existierenden Technologien oder versucht diese zu ersetzen
•
SCA ist die technologisch ideale Basis für eine Service-Orientierte Architektur
Service Component Architecture
Folie 33 23. November 2010 Alexander Hauswald © Zühlke 2011
SCA löst nicht die Probleme der Welt, aber… •
Bringt Architektur und Implementierung näher zusammen
•
Einheitliche Sprache in der Service-Orientierten Welt
•
Einfachheit des Komponentenmodells
•
Bestandteil der SOA Technologiestacks von Oracle, Tibco, IBM, …
•
Business-Orientierung ? Service Component Architecture
Folie 34 23. November 2010 Alexander Hauswald © Zühlke 2011
Profil Alexander Hauswald
Spezialgebiete
Service Orientierung (Oracle)
Cloud Computing (Azure, AWS)
Kontaktinformationen
aha@zuehlke.com
Twitter://soa_axel Service Component Architecture
Folie 35 25. Januar 2011 Alexander Hauswald Š Zßhlke 2011
Links
OASIS SCA http://www.oasis-open.org/committees/tc_cat.php?cat=soa Fabric3 http://www.fabric3.org/ Apache Tuscany http://tuscany.apache.org/ Oracle SOA http://www.oracle.com/technology/tech/soa/index.html Jim Marino, Michael Rowley - Understanding SCA http://www.amazon.de/Understanding-Component-ArchitectureIndependentTechnology/dp/0321515080/ref=sr_1_1?ie=UTF8&s=books-intlde&qid=1290946965&sr=8-1-spell
Service Component Architecture
Folie 36 23. November 2010 Alexander Hauswald © Zühlke 2011