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
Das Mantra Entwicklung bedeutet Integration und Integration bedeutet Entwicklung SOA zieht die Lehre daraus und macht Integration zum Standardansatz in der Entwicklung
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
Agenda Einführung Die Evolution zu SOA Controls: Services in einer-j2ee Welt Orchestrierung von Services Loose Coupling Zusammenfassung
Die Evolution zu SOA: Point to Point Integration Pfeile sind proprietäre APIs / Protokolle und nicht Web Services
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 Process Engine verfügt 2004 BEA Systems, Inc.
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 erreichbar 2004 BEA Systems, Inc.
Web Services!= SOA Web Services SOA using Web Services Transactions Messaging Security Transactions Messaging Security Messaging Security Management Business Services Data Services Discovery SOA Service Broker / Middleware SOA Service Broker / Middleware Transactions Messaging Security Monitoring Web Services Web Services Web Services EIS Custom App Mainframe Logic Web Services Web Services Web Services EIS Custom App Mainframe Logic
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.
SOA: Definition Drei fundamentale Rollen: Service Provider: Implementiert Service Service Consumer: Benutzt Service Service Broker: Veröffentlicht und erlaubt Suche
Agenda Einführung Die Evolution zu SOA Controls: Services in einer-j2ee Welt Orchestrierung von Services Loose Coupling Zusammenfassung
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
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 als JCP 2004 BEA Systems, Inc.
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
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
Abstraktion durch Controls: Ein Beispiel Versenden einer JMS Message
Abstraktion durch Controls: Ein Beispiel Senden JMS Message Business Process Management Grafische Repräsentation 1 Zeile prozeduraler Logik dank Java Meta-Data Framework JMS Framework enthält vorfabrizierte gebrauchsfertige Best Coding Practice 2004 BEA Systems, Inc. 35-60 Zeilen J2EE Code
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
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 wird um deklarative Elemente erweitert (JSR175) Kommentare in Code Compilierung unter Benutzung des Frameworks Beinhaltet Subprojekte XMLBeans, Controls, Page Flows, WebServices J2EE-Application Server Beehive Runtime Framework Java Control Java Java Code Control Kommentar /** Java Java Code Control Kommentar /* jpf:operation /** JSR175 Kommentar */ /* jpf:operation /** */ /* jpf:operation */ EJBs 2004 BEA Systems, Inc. JMS JDBC
Controls: Demo DEMO: Erzeugung eines Rezept-Controls
Agenda Einführung Die Evolution zu SOA Controls: Services in einer-j2ee Welt Orchestrierung von Services Loose Coupling Zusammenfassung
SOA: Dirigieren statt Codieren Services müssen miteinander verbunden werden. Sowohl Java Services (Controls) als auch Web Services Einheitliche Service-Schnittstellen erlaubt Business-Process- Management (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
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)
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
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
Demo: SOA-Prozess bauen DEMO: Rezept Control in neuen SOA-Prozess integrieren
Agenda Einführung Die Evolution zu SOA Controls: Services in einer-j2ee Welt Orchestrierung von Services Loose Coupling Zusammenfassung
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
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
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
Agenda Einführung Die Evolution zu SOA Controls: Services in einer-j2ee Welt Orchestrierung von Services Loose Coupling Zusammenfassung
SOA: Agilität für Unternehmen Business User/ Analyst Definiert Services Orchestriert Services, prozessbasiert, grafisch. Business Analyst 50 40 30 20 10 0 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr Wertet Service-Aufrufe aus (Anzahl, Dauer,...) Kürzere Roundtrip- Zeiten von Anforderung bis Produktion Application Developer System Programmer 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!