Service component architecture_soa_hauswald_2011
-
Upload
zuehlke -
Category
Technology
-
view
411 -
download
1
description
Transcript of Service component architecture_soa_hauswald_2011
Service Component Architecture -
Solide Basis für SOA-Prinzipien?
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 1
Service Component Architecture
Solide Basis für SOA-Prinzipien?
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 2
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 3
Service Design Prinzipien
1. Loose Coupling
2. Encapsulation
3. Autonomy
4. Orthogonality
5. Idempotency
6. Cohesion
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 4
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 5
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
© Zühlke 2011
OpenSOA Partner
23. November 2010
Alexander Hauswald
Folie 6
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 7
Komponentenmodelle gibt es schon
• COM / DCOM
• Java EE
• .Net Remoting / WCF
• CORBA
Service Component Architecture
© Zühlke 2011
Warum noch eines?
23. November 2010
Alexander Hauswald
Folie 8
• Bruch zwischen Modellierung, Architektur und Implementierung
• Service Orientierung � Objekt Orientierung
• Komplexität
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 9
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 10
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 11
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 12
SOA Standards für Oracle
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 13
Schlüsselwörter in SCA
• Service
• Reference
•Wire
• Interface
• Binding
• Implementation
• Component
• Composite
• ComponentType
Service Component Architecture
© Zühlke 2011
Essenz
• Service
• Component
• Composite
• The Domain
23. November 2010
Alexander Hauswald
Folie 14
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 15
SCA Assembly Domain
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 16
• Service – extern nutzbare Funktionalität einer Implementierung
Service Konzept
Service
• Reference – Abhängigkeit zu einem externen Service
Reference
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 17
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 18
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 19
Component Konzept
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 20
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
Composite
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 21
Beispiel Composite
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 22
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>
<property name="...">...</property>
<reference name="" promote=“B"/>
</composite>
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 23
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 24
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 25
Composite Overview
Service Component Architecture
© Zühlke 2011
The Domain
23. November 2010
Alexander Hauswald
Folie 26
Service Component Architecture
© Zühlke 2011
The Big Picture
23. November 2010
Alexander Hauswald
Folie 27
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 28
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
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 29
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
© Zühlke 2011
• Interface Definition
• Reference Definition
• Property
Java Component Implementation
23. November 2010
Alexander Hauswald
Folie 30
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 31
SCA in Java - Annotations
Common across all Java-related specifications
Implementation annotations
•@Service, @Reference, @Property
•@Scope, @Init, @Destroy, @EagerInit
•@ConversationID, @ConversationAttributes
•@ComponentName
•@Constructor
Interface annotations
•@AllowsPassByReference, @Callback
•@Remotable, @Conversational, @Oneway
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 32
JDeveloper – Composite Editor
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 33
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
© 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 ?
23. November 2010
Alexander Hauswald
Folie 34
Service Component Architecture
© Zühlke 2011
Profil Alexander Hauswald
Spezialgebiete
� Service Orientierung (Oracle)
� Cloud Computing (Azure, AWS)
Kontaktinformationen
� Twitter://soa_axel
Alexander Hauswald
25. Januar 2011Folie 35
Service Component Architecture
© Zühlke 2011
23. November 2010
Alexander Hauswald
Folie 36
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-Architecture-Independent-Technology/dp/0321515080/ref=sr_1_1?ie=UTF8&s=books-intl-de&qid=1290946965&sr=8-1-spell