Page 1

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

Service Component Architecture - Solide Basis für SOA-Prinzipien?  

Die SCA-Spezifikationen (Service Component Architecture) bieten eine Implementierungsmöglichkeit für Service-orientierte Architekturen. Vora...