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