Service Orientierte Architekturen mit BEA WebLogic

Werbung
Service Orientierte Architekturen
mit BEA WebLogic
Thomas Walter & Peter Soth
BEA Systems (Central / Eastern Europe)
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
Das Mantra
Entwicklung bedeutet Integration
und
Integration bedeutet Entwicklung
ƒ SOA zieht die Lehre daraus und macht Integration zum
Standardansatz in der Entwicklung
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Einführung
ƒ SOA ist ein Software Design Ansatz
ƒ SOA ist eine semantische höhere Form der
Anwendungsentwicklung
ƒ Zusammenbau grobkörniger Services
ƒ Die Services erlauben Zugriff auf z.B.
ƒ Daten
ƒ Infrastruktur (z.B. CMS)
ƒ Geschäftsprozesse (z.B. ERPs, CRMs)
ƒ Services einer SOA kommunizieren miteinander
ƒ Service-Schnittstellen sind standardbasiert
©2004 BEA Systems, Inc.
BEA Confidential
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
Die Evolution zu SOA:
Point to Point Integration
Pfeile sind proprietäre APIs / Protokolle und nicht Web Services
©2004 BEA Systems, Inc.
BEA Confidential
Die Evolution zu SOA:
Message Bus und EAI
ƒ Reduktion der Schnittstellen
ƒ Anstelle jedes System mit jedem anderen zu verbinden (N*M)
geht jedes nur einmal zur Middleware
ƒ Verbessert wird Middleware noch, wenn sie über eine Business
©2004 BEA Systems, Inc.
Process Engine verfügt
BEA Confidential
Die Evolution zu SOA: Services
ƒ Umwandlung der Schnittstellen zu Standard-Services
ƒ Mechanismen zum Beschreiben, Entdecken und Kommunizieren
ƒ Middleware orchestriert Services und ist wiederum als Set an Services
©2004 BEA Systems, Inc.
erreichbar
BEA Confidential
Web Services != SOA
Transactions
Transactions
Messaging
Messaging
Security
Security
Web Services
Web Services
Web Services
Custom
App
Mainframe
Logic
EIS
Messaging
Security
©2004 BEA Systems, Inc.
BEA Confidential
Business Services Data Services
Discovery
SOA Service Broker / Middleware
Transactions Messaging
Security
Web Services
Web Services
Web Services
EIS
Custom
App
Mainframe
Logic
Monitoring
SOA using Web Services
Management
Web Services
SOA: Historische Definition
ƒ Gartner, der Schöpfer des Begriffs:
ƒ “Services Oriented Architecture is a client/server software design
approach in which an application consists of software services and
software service consumers (also known as clients or service
requesters).
ƒ SOA differs from the more general client/server model in its
definitive emphasis on loose coupling between software
components, and its use of separately standing interfaces.
ƒ CBDI-Forum legt Fokus auf Bereitstellung und Gebrauch von
Services:
ƒ “SO is the provision, consumption and life cycle management of
business and technical services which are self describing and
loosely coupled, implemented in a technology neutral manner.”
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Definition
ƒ Drei fundamentale Rollen:
ƒ Service Provider: Implementiert Service
ƒ Service Consumer: Benutzt Service
ƒ Service Broker: Veröffentlicht und erlaubt Suche
©2004 BEA Systems, Inc.
BEA Confidential
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
SOA und Web Services
ƒ Prinzipiell benötigt eine SOA nicht Web Services und
Web Services resultieren nicht automatisch in einer
SOA.
ƒ Web Services sind jedoch sicher eine standardbasierte
Technologie um eine SOA kosteneffizient und unter
Benutzung heute allgegenwärtiger Kommunikationsmechanismen zu implementieren
©2004 BEA Systems, Inc.
BEA Confidential
SOA Schichten: Diffusion in J2EE
ƒ Services kapseln Logik, aber Standards ändern sich bei
größerer Eindringtiefe
ƒ Grobkörnige Services sind Web Services
ƒ Feingranulare Services nutzen Standards der
Implementations-Architektur
ƒ SOA ist nicht das Ende von RMI, EJBs
ƒ Web Services sind teuer!
ƒ SOA Standard in Java sind
Java Controls
ƒ Initiiert durch BEA, verfügbar
in WebLogic Workshop
ƒ Open Source durch Project
Beehive (Apache)
ƒ Derzeit Ausarbeitung als
Standard mit Sun & IBM und
nachfolgende Einreichung
©2004 BEA Systems, Inc.
als JCP
BEA Confidential
Controls: SOA innerhalb Java
ƒ Jede Resource ist als Java-Service erreichbar
ƒ Vorfabrizierte Controls für DBMS, JMS, externe Systeme, etc..
ƒ Auch eigene Logik ist als Control abfassbar
ƒ Custom-Control kann auch andere Controls aufrufen
ƒ Unter der Oberfläche werden bestehende J2EE Mechanismen
verwendet
ƒ EJBs und MDBs
ƒ JNDI/RMI als Service-Broker Grundlage
©2004 BEA Systems, Inc.
BEA Confidential
Controls: Von SOA zu RAD
ƒ Controls sind ebenfalls Schlüssel zu RAD
ƒ Grafisch in IDE repräsentierbar
ƒ Properties statt APIs
ƒ Controls sind kein Wizard Ansatz
ƒ Nur ein bis zwei Zeilen Code + Meta-Data
ƒ Meta-Data for Java (JSR 175)
ƒ Wird wahrsch. Teil von J2SE 1.5
ƒ Benutzung ohne Kenntnis der Innereien
ƒ Höhere Abstraktionsebene (Grundlage von RAD)
ƒ Produktivität durch Rollenteilung
©2004 BEA Systems, Inc.
BEA Confidential
Abstraktion durch Controls: Ein Beispiel
Versenden einer JMS Message
©2004 BEA Systems, Inc.
BEA Confidential
Abstraktion durch Controls: Ein Beispiel
Senden JMS Message
Grafische
Repräsentation
Business Process
Management
1 Zeile prozeduraler Logik
dank Java Meta-Data
Framework enthält
vorfabrizierte gebrauchsfertige
Best Coding Practice
Framework
JMS
35-60 Zeilen
J2EE Code
©2004 BEA Systems, Inc.
BEA Confidential
Das SOA-Tool: WebLogic Workshop
ƒ Generische BEA WebLogic
Entwicklungsumgebung
ƒ Eigene Entwicklungen, Portale
und Integration
ƒ Arbeit mit graphischen
Metaphern (Design View) und Code
(Source View)
ƒ Basiert komplett auf Java und XML
ƒ Anderer Ansatz als andere IDEs
ƒ Controls als universelle Metapher
ƒ Auch Web-Anwendungen schnell und grafisch erzeugbar
ƒ Page Flow Erstellung auf Basis STRUTS
ƒ JSP Design mit komfortablem Data-Binding (Net-UI)
ƒ Kostenfrei als WebLogic Workshop Free Edition
©2004 BEA Systems, Inc.
BEA Confidential
Das SOA-Framework: Apache Beehive
ƒ Apache Beehive Framework
ƒ Open Source: Identisch mit WebLogic
Framework
ƒ Ziel ist radikale Vereinfachung der
Java-Anwendungs-Erstellung
(Schwerpunkt J2EE-SOA basierte Apps)
Java Control
Java
Code
Kommentar
Java
Control
/** Java
Code
Kommentar
Java
Control
ƒ Java wird um deklarative Elemente
erweitert (JSR175)
/* jpf:operation
/** JSR175 Kommentar
*/ /* jpf:operation
/**
*/ /* jpf:operation
*/
ƒ Kommentare in Code
ƒ Compilierung unter Benutzung des Frameworks
ƒ Beinhaltet Subprojekte
ƒ XMLBeans, Controls,
Page Flows, WebServices
J2EE-Application Server
Beehive Runtime Framework
EJBs
©2004 BEA Systems, Inc.
BEA Confidential
JMS
JDBC
Controls: Demo
ƒ DEMO: Erzeugung eines Rezept-Controls
©2004 BEA Systems, Inc.
BEA Confidential
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Dirigieren statt Codieren
ƒ Services müssen miteinander verbunden werden.
ƒ Sowohl Java Services (Controls) als auch Web Services
ƒ Einheitliche Service-Schnittstellen erlaubt Business-ProcessManagement (BPM)
ƒ In einer SOA-Welt werden BPM-Engines austauschbar
ƒ Java-basierte BPM kann in .NET implementierte Services
orchestrieren
ƒ Gemeinschaftliche Notenschrift derzeit in Ausarbeitung:
BPEL(J)
ƒ BPEL: Prozesse für Web-Services-SOA
ƒ BPELJ: Erweiterung auf Java-SOA
©2004 BEA Systems, Inc.
BEA Confidential
Die Sprache von SOA: BPEL und BPELJ
ƒ BPEL
ƒ Programmiersprache, die auf XML basiert
ƒ Benutzt XML-Variablen
ƒ Plattformunabhängig (Java, .Net, etc.)
ƒ Wird derzeit von OASIS standardisiert
ƒ BEA, IBM, Microsoft, Oracle, SAP, Web Methods u.a
ƒ Wird von allen grossen Integrationsanbietern akzeptiert
ƒ Zur Laufzeit
ƒ Orchestriert BPEL Web Services
ƒ Erzeugt BPEL Web Services (Komposit-Services)
©2004 BEA Systems, Inc.
BEA Confidential
Die Sprache von SOA: BPEL und BPELJ
ƒ BPELJ hat einen Vorgänger
ƒ JSR207: Process Definition for Java (PD4J)
ƒ Verfügbar in BEA WebLogic Integration 8.1
ƒ Künftig: BPELJ
ƒ Gemeinschaftlicher BPELJ-Entwurf von BEA und IBM
ƒ Alle gültigen BPEL Konstrukte gelten auch in BPELJ
ƒ Innerhalb Java kein WS-Stack notwendig
ƒ Bsp.: Session Beans können direkt ohne Wrapper an
einem BPEL Prozess teilnehmen
ƒ Serialisierte Java-Datentypen können übergeben werden anstatt alles in
XML Datentypen umzuwandeln
ƒ Services sind idealerweise Java-Controls
©2004 BEA Systems, Inc.
BEA Confidential
Die SOA-BPM-Engine:
WebLogic Integration
ƒ BEAs Prozess-Engine
ƒ Modellierung mit WebLogic Workshop
ƒ Controls oder WebServices als Knoten
möglich
ƒ Derzeit auf PD4J mit BPEL-Export
ƒ U.v.m
ƒ Worklists (für Menschen)
ƒ Datentransformation
ƒ Message-Brokering
ƒ Adapter für gut 100 Systeme
ƒ Läuft auf WebLogic Server
ƒ Ausfallsicher, lastverteilbar
ƒ Transaktionell
ƒ Ausgefeiltes Monitoring
©2004 BEA Systems, Inc.
BEA Confidential
Demo: SOA-Prozess bauen
ƒ DEMO: Rezept Control in neuen SOA-Prozess integrieren
©2004 BEA Systems, Inc.
BEA Confidential
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Loose Coupling
ƒ Erinnerung:
ƒ Gartner: “SOA differs from the more general client/server model
in its definitive emphasis on loose coupling between software
components ....
ƒ CBDI-Forum: “SO is the provision, consumption and life cycle
management of business and technical services which are self
describing and loosely coupled...
ƒ Loose Kopplung bedeutet
ƒ Entkopplung von Implementierungs-Signatur und öffentlichem
Service-Interface
ƒ Nur teilweise Bindung an XML-Dokumente
ƒ kurz: Transformation
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Loose Coupling
ƒ XQuery: Der W3C Standard für XML Transformation
ƒ Besser geignet als template-basierter Ansatz von XSLT
ƒ Deklarative Beschreibung von Ein-/Ausgabe
ƒ Schneller als XSLT
ƒ Extrem leistungsfähig
ƒ Wird bei WebLogic auch auf Nicht-XML Datentypen angewendet
(Java-Services)
ƒ XML, Non-XML, Java
ƒ Grafische Unterstützung bei
Erstellung
©2004 BEA Systems, Inc.
BEA Confidential
Demo: Loose Coupling
ƒ Demo zu Ende bringen und laufen lassen
ƒ Prozess erhält XQuery-Trafo an Ein- und Ausgabe
ƒ Kompletter Lauf der Anwendung mit Testclient
©2004 BEA Systems, Inc.
BEA Confidential
Agenda
Einführung
Die Evolution zu SOA
Controls: Services in einer-J2EE Welt
Orchestrierung von Services
Loose Coupling
Zusammenfassung
©2004 BEA Systems, Inc.
BEA Confidential
SOA: Agilität für Unternehmen
Business
User/ Analyst
Business Analyst
50
40
30
20
10
0
1st Qtr
2nd Qtr
3rd Qtr
4th Qtr
• Wertet Service-Aufrufe
aus (Anzahl, Dauer, ...)
• Definiert Services
• Orchestriert Services,
prozessbasiert, grafisch.
Application Developer/
System Programmer
Kürzere
RoundtripZeiten von
Anforderung
bis Produktion
©2004 BEA Systems, Inc.
BEA Confidential
• Implementiert Services,
toolgestützt
• Deployt Services
("Verpackt" Infrastruktur)
Der schmackhafteste Weg zu SOBA
ƒ SOBA-Nudeln (dunkle Buchweizennudeln) kochen und
abgiessen
ƒ Fischextrakt nach Packungsangabe in kochendes Wasser
geben (ca. 1 l)
ƒ 2-3 EL Soja-Sauce dazugeben
ƒ 2 EL Sake zugiessen
ƒ Ei mitkochen und vorgekochten Spinat zufügen
ƒ Nudeln dazugeben, würzen mit rotem Pfeffer (Shichimi)und
geschnittenem Schnittlauch
Guten Appetit!
©2004 BEA Systems, Inc.
BEA Confidential
Herunterladen