Service Component Architecture (SCA)



Ähnliche Dokumente
Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

SAP NetWeaver Gateway. 2013

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Workflow, Business Process Management, 4.Teil

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung

Enterprise Service Bus

Organisation und Systeme SOA: Erstellung von Templates für WebService Consumer und Provider in Java

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Vortrag von: Ilias Agorakis & Robert Roginer

Secure Network Communications (BC-SEC-SNC)

Vorstellung Studienprojekt. Policy4TOSCA. Umsetzung eines Policy-Frameworks für sicheres und energieeffizientes Cloud Computing

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Inhaltsverzeichnis. Daniel Liebhart, Guido Schmutz, Marcel Lattmann, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull, Peter Welkenbach

Spring Dynamic Modules for OSGi Service Platforms

Design Patterns 2. Model-View-Controller in der Praxis

SOA Serviceorientierte Architektur Definition, Marktpotenzial und Perspektiven

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Wiederholung: Beginn

Automatisierungsarchitekturen für das Smart Grid Am Beispiel der OPC UA und der IEC Dr.-Ing. Mathias Uslar, Sebastian Rohjans

Sind Prozessmanagement-Systeme auch für eingebettete Systeme einsetzbar?

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

OpenSource bei PostFinance Einsatz in der Software Entwicklung. informativ

SAP SharePoint Integration. e1 Business Solutions GmbH

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

WebService in Java SE und EE

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Auszug aus JAX-WS Folien

POIS-Praktikum Prozessimplementierung, RosettaNet PIPs 3A

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

Das Interceptor Muster

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

SDD System Design Document

Comparing Software Factories and Software Product Lines

Softwareentwicklung mit Enterprise JAVA Beans

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Workflow Systeme mit der Windows Workflow Foundation

WS-Security. Thies Rubarth. Sicherheitskonzepte in global verteilten Anwendungen. 21. Sep 2007 ACM/GI Localgroup #216

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Luca Piras SharePoint Specialist it-function software GmbH

Java Web Services Metadata JSR-181

E-Business Architekturen

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

Etablierung serviceorientierter Architekturen mit Web Services

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

PRODATIS CONSULTING AG. Folie 1

Björn Heinemann Leiter Entwicklung Energiewirtschaft

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Einheitliche Verwaltung von Soft- und Hardware mobiler Geräte

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Evaluation von Open Source-Produkten zur Ausführung Web Service-basierter Geschäftsprozesse

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

SCA & SDO Konzepte und Design

Service-Orientierte InterSystems GmbH 2009

ObjectBridge Java Edition

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Team Collaboration im Web 2.0

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

SE2-10-Entwurfsmuster-2 15

16.4 Wiederverwendung von COTS-Produkten

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

LIVE/11 - WEBSPECIAL. Andreas Förthner - Clemens Kalb

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Vorwort Azure Cloud Computing mit Microsoft Danksagungen Kontakt zum Autor... 13

Federated Identity Management

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Sof o t f waretechn h o n l o og o i g en n f ü f r ü v e v rteilte S yst s eme Übung

Neue Funktionen in Innovator 11 R5

Übungen zur Softwaretechnik

Themen. Web Service - Clients. Kommunikation zw. Web Services

Zustandsgebundene Webservices

Business Collaboration

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day

Programmieren in Java

SOA und kollaborative Geschäftsprozessmodellierung im Internet der Dienste. Dr. Walter Waterfeld, Software AG

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Windows Small Business Server (SBS) 2008

Christoph Mathas. SOA intern. » Praxiswissen zu Service-orientierten IT-Systemen HANSER

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Sicherheit in Workflow-Management-Systemen

Macher Solutions Produktinformation SAP Crystal Reports 2011

Architecture Blueprints

Prinzipien Objektorientierter Programmierung

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Services Computing und SOA

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Werkzeugbasierte Entwicklung von Benutzeroberflächen mit CDA-Templates und ART DECOR

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

white sheep GmbH Unternehmensberatung Schnittstellen Framework

Transkript:

SOA Seminar WS2006 (bei Prof. Dr. Sebastian Iwanowski) Service Component Architecture (SCA) Maximilian Herold (ms8329) 17.01.2007

Übersicht Einleitung: Von SOA zu SCA SCA Spezifikationen (Teil 1) Überblick Assembly Model Client and Implementation Model for Java Tools und Live Demo SCA Spezifikationen (Teil 2) Binding & Policy Framework Fazit 2 17.01.2007

Motivation für SOA Probleme heute Komplexität Starre Architekturen Integration und (Weiter-) Entwicklung schwierig Aber: Schnellebige Business- Anforderungen sowie technologische Entwicklungen 3 17.01.2007

Motivation für SOA SOA soll ermöglichen: Schnelle Aktion und Reaktion auf neue Anforderungen Flexible Anpassung und Optimierung der Geschäftsprozesse Geschäftsprozessgetriebene Integration vorhandener Applikationen B2B Integration 4 17.01.2007

SOA Charakteristika Kombination von (verteilten) Business Funktionen und Prozessen als wiederverwendbare Services veröffentlicht lose gekoppelt Unabhängigkeit von Plattform und Implementierung wohldefinierte Schnittstellen und Vereinbarungen Frage: Wie realisiert man eine SOA? 5 17.01.2007

Beispiel: Ein neuer Service (ohne SCA) Vorgehen: Beispiel mit Java und Apache Axis Erstellung von WSDL Erstellung von Java-Klassen mit Business Logik sowie Funktionalität für die Verarbeitung der SOAP-Nachrichten Deployment auf Tomcat mit Axis Runtime Denkbare Problemstellungen Anbindung zusätzlich zu Web Service auch via JMS Entwicklung von neuen zusammengesetzten Services sowie Netzwerken von Services Einbindung von in BPEL, C++,... implementierten Funktionalitäten 6 17.01.2007

Fragen zur Realisierung einer SOA Wie kann man... Business Komponenten entwickeln, die jeweils eine bestimmte Funktionalität (Services) zur Verfügung stellen? zusammengesetzte Services umsetzen? bei der Implementierung Abhängigkeiten zur Middleware vermeiden ( komplex!) und damit auch die Business- Logik vor Technologie-Änderungen schützen? ein hohes Maß an Portabilität und Wiederverwendbarkeit erreichen? 7 17.01.2007

Entstehung von SCA Open SOA Collaboration (www.osoa.org) Informelle Gruppe von Unternehmen BEA, IBM, Oracle, RedHat, SAP, Siemens, Software AG, Sun, Sybase,... Ziel: Definition eines sprachunabhängigen Programmiermodells für SOA Projekte: SCA und SDO (Service Data Objects) Stand SCA Spezifikationen Nov 2005: V0.9; aktuell V0.95 / V0.96 Geplant: spätere Übermittlung an eine geeignete Standardisierungs- Organisation 8 17.01.2007

Was ist SCA? Programmiermodell für service-basierte Lösungen Ziel: Erstellung und Integration von SOA-Applikationen vereinfachen Offene Spezifikation für Beschreibung, Assembly und Deployment von Services Eigenschaften Unabhängig von Implementierungs-Sprache und Deployment- Plattform Business-Logik getrennt von Middleware-Abhängigkeiten / APIs Laufzeitumgebung für SCA 9 17.01.2007

Übersicht Einleitung: Von SOA zu SCA SCA Spezifikationen (Teil 1) Überblick Assembly Model Client and Implementation Model for Java Tools und Live Demo SCA Spezifikationen (Teil 2) Binding & Policy Framework Fazit 10 17.01.2007

SCA Spezifikationen Assembly Model Vereinheitlichtes Modell für den Zusammenbau von Services (loose / stark gekoppelt) Auflösen und Konfiguration von Abhängigkeiten Deklarativer Ansatz ( nicht im Implementierungs-Code) Client and Implementation Models Spezifizieren Umsetzung von SCA Komponenten für eine konkrete Implementierungs-Sprache (Java, C++, BPEL,...) Binding and Policy Framework Anwenden von Infrastruktur-Funktionalitäten auf Services und Service-Interaktionen (Security, Transaktionen,...) 11 17.01.2007

Assembly Model: Bausteine 12 17.01.2007

Assembly Model: Bausteine Implementation Programmcode, der Business Logik konkret umsetzt Service Angebot einer implementierten Business Funktion nach außen hin Reference Abhängigkeit der Implementierung von einem externen Service Property Konfigurierbarer Wert, der die Ausführung der Business Logik beeinflusst 13 17.01.2007

Assembly Model: Bausteine Component Type Konfigurierbare Aspekte einer Implementierung Component Konfigurierte Instanz einer Implementierung Unterschiedlich konfigurierte Components mit jeweils derselben Implementierung möglich Implementation Instance Laufzeit-Instanz einer konfigurierten Implementierung 14 17.01.2007

Mehrere Components pro Implementation 15 17.01.2007

Assembly Model: Bausteine Composite Grundbaustein für die Komposition von Components Wire Verbindung (konfiguriert Services und References) 16 17.01.2007

Services und References Interface Beschreibung der Schnittstellen zu Business Funktionen Binding Zugriffsart 17 17.01.2007

Umsetzung des Assembly Models MyService Another Service Deklarative Beschreibung über XML-Deskriptoren Beispiel: Component Type <?xml version="1.0" encoding="ascii"?> <componenttype xmlns="http://www.osoa.org/xmlns/sca/1.0"> <service name= MyService"> <interface.java interface="services.me.myservice"/> </service> <reference name= AnotherService"> <interface.java interface="services.dependencies.anotherservice"/> </reference> <property name="currency" type="xsd:string">eur</property> </componenttype> Dateinamen und -Struktur festgelegt von den SCA Spezifikationen 18 17.01.2007

Umsetzung des Assembly Models, Beispiel Situation: Shop Bestellvorgang abschließen: Produkte besorgen Zwei verschiedene Arten von Produkten Eine davon immer intern auf Lager Die andere müssen wir extern bestellen OrderFulfillmentServiceComposite StockComposite 19 17.01.2007

Umsetzung des Assembly Models, Beispiel: Composites als Components OrderFulfillmentComposite OrderFulfillmentService Component Order Service StockComponent Implementiert durch OrderFulfillmentServiceComposite StockComposite 20 17.01.2007

Umsetzung des Assembly Models, Beispiel: Composites als Components OrderFulfillmentComposite Order Fulfillment Service OrderFulfillmentService Component Order Service supplier Order Service StockComponent Implementiert durch OrderFulfillmentServiceComposite StockComposite 21 17.01.2007

Umsetzung des Assembly Models, Beispiel: Composites als Components <?xml version="1.0" encoding="utf-8"?> <composite xmlns:xsd="http://www.w3.org/2001/xmlschema-instance" xmlns="http://www.osoa.org/xmlns/sca/1.0 name= OrderFulfillmentComposite">... <service name= OrderFulfillmentService"> <interface.java interface="services.order.orderfulfillmentservice"/> <binding.ws port= OrderFulfillmentService# wsdl.endpoint(orderfulfillmentservice/orderfulfillmentservicesoap)"/> </service> <reference>orderfulfillmentservicecomponent</reference> <reference name= supplierorderservice"> </reference> <interface.java interface="services.supplier.order.orderservice"/> <binding.ws port="http://www.mysupplier.com/orderservice# wsdl.endpoint(orderservice/orderservicesoap)"/> 22 17.01.2007

Umsetzung des Assembly Models, Beispiel: Composites als Components... <component name= OrderFulfillmentServiceComponent"> <implementation.composite name= OrderFulfillmentServiceComposite"/> <reference name= StockService">StockComponent</reference> <reference name= OrderService">supplierOrderService</reference> </component> <component name= StockComponent"> <implementation.composite name= StockComposite"/> </component> </composite> 23 17.01.2007

Umsetzung des Assembly Models, Composites Inclusion Ermöglicht modulare Entwicklung von Composites Aufteilung eines Composites auf mehrere Dateien Einzelne Teile können in sich unvollständig sein Textuelle Einbindung der Teile über <include/> Element: <?xml version="1.0" encoding="ascii"?> <composite xmlns= http://www.osoa.org/xmlns/sca/1.0 name= OrderFulfillmentComposite" > <include name= OrderFulfillment_Services"/> <include name= OrderFulfillment_Components"/> <include name= OrderFulfillment_References"/> <include name= OrderFulfillment_Wires"/> </composite> Resultierendes Composite muss vollständig und fehlerfrei sein (keine doppelten Definitionen) 24 17.01.2007

Deployment in einer SCA-Laufzeitumgebung SCA System selbst verhält sich ähnlich wie ein Composite Top-Level Elemente für das Deployment sind Composites Integration ins System über Includes SCA System besteht also aus einer Menge von eingebundenen Composites Konfigurations-Möglichkeiten beim Deployment Composites (Top-Level) dürfen teilweise unvollständig sein; ergänzende Konfiguration dann beim Deployment Binding Adressen, Wires 25 17.01.2007

Assembly Model: Bausteine SCA System System Service Composite A Reference Reference Service A Composite C Component A Component B Service Composite B Reference Service B Component C Component D include 26 17.01.2007

Interfaces: Remotable vs. Local Remotable Gedacht für: lose gekoppelte Interaktionen Semantik des Datenaustauschs: immer by-value können von Clients aufgerufen werden, die auf einem anderen OS laufen Method Overloading: verboten Local Gedacht für: starke gekoppelte Interaktionen Semantik des Datenaustauschs: by-reference können NICHT von Clients aufgerufen werden, die auf einem anderen OS laufen Method Overloading: erlaubt Ziel der Unterscheidung: Performanz-Steigerung 27 17.01.2007

Interfaces: Bidirectional und Conversational Relevant für asynchrone Aufrufe Bidirectional Interfaces Peer-to-Peer bidirektionale Verbindungen Umsetzung: zusätzliche Definition eines Callback-Interfaces Conversational Interfaces Sequenz von zusammengehörigen Operationen eines Services Ein Zustand muss über mehrere Operationen gehalten werden Typischerweise via Konversations-ID Hier: Konversations-Management auf Applikations-Ebene Unterstützung durch konkretes Binding (/Policy) nötig Z.B. Web Service Binding mit WS-RM oder WS-Addressing,... 28 17.01.2007

Assembly Model: Erweiterbarkeit Interface Type Einschränkung: muss sich in WSDL umwandeln lassen Implementation Type z.b. Ruby, JavaScript, XSLT,... Binding Type 29 17.01.2007

Client and Implementation Model for Java Spezifiziert Abbildung auf Java von SCA Konzepten, u.a. Component, Service, Reference, Property,... Umsetzung von bidirectional und conversational Interfaces JAVA API für SCA (für direkten Zugriff auf SCA Objekte) Verdeutlicht das von SCA genutzte Konzept: Konfiguration durch Dependency Injection 30 17.01.2007

Client and Implementation Model for Java package services.hello; import org.osoa.sca.annotations.*; @Remotable public interface HelloService { String hello(string message); } Hello Service ----------------------------------------------------------------------------------- package services.hello; import org.osoa.sca.annotations.*; @Service(HelloService.class) public class HelloServiceImpl implements HelloService { public String hello(string message) {... } } 31 17.01.2007

Client and Implementation Model for Java package services.client; import services.hello.helloservice; import org.osoa.sca.annotations.*; Client Service Hello Service @Service(ClientService.class) public class ClientServiceImpl implements ClientService { private HelloService helloservice; } @Reference(name="helloService", required=true) public void sethelloservice(helloservice service){ helloservice = service; } public String clientmethod() { String result = helloservice.hello("hello World!"); } 32 17.01.2007

Übersicht Einleitung: Von SOA zu SCA SCA Spezifikationen (Teil 1) Überblick Assembly Model Client and Implementation Model for Java Tools und Live Demo SCA Spezifikationen (Teil 2) Binding & Policy Framework Fazit 33 17.01.2007

SCA Implementierungen & Tools Kommerziell IBM (WebSphere App.Server), Oracle (EDA Suite),... Open Source Apache Tuscany Implementierung (Laufzeitumgebung) für Java und C++ SOA PHP Project (PHP PECL SCA/SDO) Implementierung (Laufzeitumgebung) für PHP Eclipse SOA Tools Platform Project (STP) Ziel: Entwicklung von diversen Tools im SOA Umfeld Core Subprojekt mit Assembly Model 34 17.01.2007

Apache Tuscany Apache Projekt Incubator Status (Release M2) 3 Teile Service Component Architecture (SCA) Einheitlicher Zugriff auf Services Service Data Objects (SDO) Einheitliches Verarbeitungmodell für ausgetauschte Daten Data Access Services (DAS) Einheitlicher Zugriff auf Daten 35 17.01.2007

Apache Tuscany: Live Demo CalculatorComposite Caclulator Service AddServiceComponent CalculatorServiceComponent SubstractServiceComponent MultiplyServiceComponent DivideServiceComponent 36 17.01.2007

Übersicht Einleitung: Von SOA zu SCA SCA Spezifikationen (Teil 1) Überblick Assembly Model Client and Implementation Model for Java Tools und Live Demo SCA Spezifikationen (Teil 2) Binding & Policy Framework Fazit 37 17.01.2007

Binding & Policy Framework Spezifizieren von nichtfunktionalen Aspekten Anforderungen Fähigkeiten Quality-of-Service OSOA: Schwerpunkt zunächst auf Security Reliability Transactions Warum ist das im SCA Modell berücksichtigt? Flexibilität: Konfigurationen für verschiedene Umgebungen 38 17.01.2007

Integration von Policies in SCA Prinzip: anhängen von Policies an SCA Elemente 39 17.01.2007

Integration von Policies in SCA Interaction Policies Anwendung auf Services / References Bezug: Kommunikation zwischen Service Anbieter und Client Beispiel: Vertraulichkeit Implementation Policies Anwendung auf Components Bezug: Fähigkeiten, die der Container bereitstellen soll, in dem ein Component läuft Beispiel: Component muss in einer Transaktion laufen 40 17.01.2007

Binding & Policy Framework: Bausteine Intents Abstrakte, high-level Anforderungen Unabhängig von Implementierungs-Technologie / Binding Beispiel: confidentiality oder confidentiality/high Policy Sets Mapping von konkreten Policies auf Intents Angabe beim Deployment oder direkte Definition in einem Binding- bzw. Component-Element Konkrete Policies via WS-Policy, WS-PolicyAttachment theoretisch auch andere Möglichkeiten vorgesehen... 41 17.01.2007

Beispiele <sca:service name="myspecialservice"> </sca:service> <sca:interface.wsdl porttype="..." /> <sca:profile intents="sec.authentication rel.reliabilty"/> ----------------------------------------------------------------------- <sca:reference name="flightservice"> <sca:interface /> <sca:binding.ws policyset = BasicSecurity /> </sca:reference> 42 17.01.2007

Übersicht Einleitung: Von SOA zu SCA SCA Spezifikationen (Teil 1) Überblick Assembly Model Client and Implementation Model for Java Tools und Live Demo SCA Spezifikationen (Teil 2) Binding & Policy Framework Fazit 43 17.01.2007

Zusammenfassung SCA Modell soll Flexibilität, Wiederverwendbarkeit und Integrationsfähigkeit erhöhen Modulare Komposition von Komponenten, verschiedene Implementierungs-Technologien Wiederverwendung durch unterschiedliche Konfigurationen einer Implementierung Trennung von Business Logik, Middleware und nichtfunktionalen Aspekten (Separation of Concerns); konkrete Technologie-Entscheidungen durch Binding SCA Open Source Software? 44 17.01.2007

Technologien im Umfeld von SCA SCA verbundene Technolgien Service Data Objects (SDO), Data Access Objects (DAS) Wo war Microsoft bei Open SOA und SCA? Windows Communication Foundation (WCF / Indigo ) seit 2003 Gemeinsamkeiten mit SCA in vielen Punkten, aber: rein.net basiert keine Assembly von Komponenten, kein Wiring kein Focus auf speziellen Technologien für Datenaustausch zwischen Komponenten (bei SCA: SDO) 45 17.01.2007

Stimmen SCA has the potential to provide significant value in the Java world and beyond. If the vendors behind this new technology can complete the tasks they ve set for themselves, we can look forward to a day when the two major foundations for creating serviceoriented applications are SCA and WCF. Foundations for Service-Oriented Applications: Comparing WCF and SCA David Chappell, December 2005 Service Component Architecture has the potential to significantly aid mainstream organizations in the development, deployment and management of services using a service-oriented architecture. SCA Is a Winner in the Quest to Establish a Common Notation for SOA Jess Thompson, Gartner, March 2006 46 17.01.2007

Vielen Dank für die Aufmerksamkeit... Fragen? 47 17.01.2007