1 Middleware im Vergleich Prof. Dr. Alexander Schill Technische Universität Dresden Lehrstuhl Rechnernetze http://www.rn.inf.tu-dresden.de [email protected] - Einführung und Beispiel - Java-Technologien - Web Application Server - CORBA und Microsoft COM+ - Vergleich und Fazit Anwendungsbeispiel 2 Client (z.B. Kasse) Client (z.B. Geldautomat) Server (z.B. Kontenserver) Server (z.B. Journal/ Überwachung) Anforderungen: - Dezentrale Systemlösungen Client - Internet/Intranet-Integration (z.B. Home- Sehr große Zahl von Clients/Terminals zugang) - Sicherheitskonzepte - Transaktionsverarbeitung - Heterogenität der Systeme Mehrstufige Architekturen 3 Client (z.B. Kasse) Server (z.B. Kontenserver) Client (z.B. Geldautomat) Anwendungslogik Benutzerschnittstelle, ggf. Vorverarbeitung (thin client vs. fat client) Client (z.B. Homezugang) Server (z.B. Journal/ Überwachung) Datenverwaltung 3-tier: dreistufige Struktur; bei komplexen Anwendungen zu bevorzugen 2-tier: zweistufige Struktur (Benutzerschnittstelle Host); einfacher, aber weniger flexibel 4 Middleware und Client/Server: Einordnung Client (z.B. Kasse) Middleware (z.B. Java RMI, CORBA, COM+) Anwendungsinteraktion Objektinteraktion Server (z.B. Kontenserver) Middleware Transportorientierte Schichten (z.B. TCP/IP, SNA) Transportorientierte Schichten Phys. Netzwerk (z.B. Fast Ethernet, Token Ring, ATM) Phys. Netzwerk Def. von Middleware: “Software für verteilte Anwendungen zur Überbrückung der Heterogenität unterschiedlicher Systeme und Netze.” 5 Middleware: Basistechnologien Java (Sun u.a.): - Programmiersprache, Applets - Remote Method Invocation (RMI) - Enterprise JavaBeans (EJB): Komponenten CORBA (Common Object Request Broker Architecture): - Objektorientiert, sprachunabhängig - Standard der Object Management Group (OMG) COM+ (Component Object Model): - Objektorientiert, relativ proprietär - Entwicklung von Microsoft Weitere Ansätze: - Message Queuing - SOAP (Simple Object Access Protocol) - Transaktionsmonitore, Web Application Server 6 Middleware: Gesamteinordnung Web Application Server / Enterprise Application Integration Integrität Transaktionsmonitore Message Queuing (z.B. MQ Series) Client/Server, Remote Procedure Call (RPC) (z.B. DCE - Distributed Computing Environment) KomponentenFrameworks Object Transaction (CORBA, Enterprise JavaBeans, COM+) Monitor CORBA-/ RMI-/ COM+-BasisKommunikation Flexibilität Nutzbarkeit durch Anwendungsentwickler 7 Java Enterprise Edition • • • • • • EJB (Enterprise JavaBeans) CORBA (Runtime) JDBC (Java Database Connectivity) JSP (Java Server Pages), Servlet API JMS (Java Messaging Service) Transaktionen (JTA, JTS - Java Transaction Architecture / Service) • XML (Deployment Desriptoren) • JNDI (Java Naming and Directory Service) • J2EE Connector (Schnittstellen für Legacy-Integration) 8 Java RMI: Grundprinzip Client (z.B. Kasse oder Info - Terminal) 1. HTTP-Zugriff auf WWW-Server des g n u g a rtr 2. Übe Applet Java Server (auch WWW) (z.B. Kontenserver) <name> 4. Naming Lookup 3. Erzeugen eines Remote Object 5. Entfernter Objektaufruf Remote Object Registry (einfacher Directory Service) Remote Object (entfernt aufrufbar) • Interaktion mit WWW-Server, dynamische Anfragen etc. möglich (z.B.für Investment - Informationen) • Auch Rückaufrufe des Servers bei Client-Objekten (z.B. für Parametereingaben) 9 JDBC (Java Database Connectivity) • Programmierschnittstelle zum Zugriff auf relationale Datenbanken • In Anlehnung an ODBC (Open Database Connectivity) • Zahlreiche Treiber für verschiedene Datenbanken (z.B. Oracle, Sybase, DB2, SQL Server etc.) • Auch als JDBC/ODBC-Bridge realisiert • Realisiert jedoch nur direkte Datenbankzugriffe; weitergehende verteilte Transaktionslogik in heterogenen Systemen erfordert Transaction Services / Transaktionsmonitore, z.B. auf CORBA-Basis 10 Komponententechnologien unter Java • Traditionelle objektorientierte Sprachen (Smalltalk, C++, aber auch Java) ermöglichen Wiederverwendung nur in begrenztem Maße (abhängig von Sprachkonzepten, Spezifika der Oberklassen etc.) • Daher: Verbesserte Kapselungstechniken auf Basis von Komponenten: – Schnittstelle(n) – Eigenschaften – Ereignisse • Konkrete Ansätze unter Java: – JavaBeans (Client) – Enterprise JavaBeans (Server) • Verschmelzen mit Konzepten der CORBA Components • Alternative: COM+-Komponenten Entwicklungsunterstützung: Beispiel 11 12 Enterprise JavaBeans (Verteilte) Transaktionen Java RMI Client 1 EJB EJB Transaktionsmonitor/ DBMS EJB Container Client 2 EJB-Server Ziel: Auslagerung von Verarbeitungslogik auf den Server; implizite Transaktionen 13 Transaktionssteuerung und Sicherheitsaspekte Sehr einfache Mechanismen auf Attribut-Basis: TX_REQUIRED: Transaktion obligatorisch; ggf. implizites Starten einer neuen Transaktion (falls noch keine Transaktion aktiv) TX_REQUIRES_NEW: Transaktion obligatorisch, wird stets neu gestartet bei Methodenaufruf der Bean (ggf. temporäre Suspendierung einer vorhandenen Transaktion) TX_MANDATORY: Transaktion obligatorisch, muß bereits zuvor existieren (ansonsten Ausnahmemeldung) Ähnliche Konzepte für Sicherheitsfragen (Zugriffskontrolle): <security-role> <role-name>Administrator</role-name> </security-role> <method-permission> <role-name>Administrator</role-name> <method> <ejb-name>BankBean</ejb-name> <method-name>*</method-name> </method> </method-permission> 14 Web-Application-Server • Schnittstellen-Server zwischen Web/Java-Client und Diensten der Unternehmens-DV („middle-tier“) • Aufgaben: – Daten- und Aufrufanpassung – Legacy-Integration; Transaktionen – Zugriffsschutz – Lastverteilung Architekturprinzip 15 Java RMI, Internet Inter-ORB Protocol, DCOM-Protokoll proprietäre TransaktionsMonitore Protokolle HTMLClient HTTP HTMLHTMLHTMLHTMLDokumente HTMLDokumente Dokumente Dokumente Innere Firewall JavaClient Äußere Firewall Web-Server BetriebsApplication- proprietäre wirtschaftlicheProtokolle Server Software proprietäre MainframeProtokolle Anwendungen HTMLCGIHTMLCGIHTMLDokumente Skripte Dokumente Skripte Dokumente (optional) (optional) Stateful-Verbindung Stateless-Verbindung Datenbanken 16 Entwicklungsprozess Generierung Anforderungen UML (Unified Modeling Language) Anwender Entwurf / Modellierung Instanziierung CORBA / EJB / COM+ Komponentenentwicklung Laufzeit / Komponentennutzung CORBA, EJB Container, COM+ Installation / Deployment Web Application Server 17 Wesentliche Funktionalität: • Entwicklung und Verteilung von Java Anwendungen (“Three-Tier”) • Skalierbarkeit (>1000 Server, >10000 Clients): Multithreading, Connection-Reuse etc. • Komponentenmodell (Enterprise JavaBeans, COM+ etc.) • Transaktionsunterstützung • Sicherheit (Authentisierung, Zugriffskontrolle) Wünschenswerte Eigenschaften: • Integration von Entwicklungsumgebungen (z.B. IBM Visual Age, Inprise JBuilder, BEA / Symantec Visual Cafe, MS Visual J++) • Zugang zu verbreiteten Datenbanken (Oracle, MS SQL Server, Sybase, Informix, DB2) • Unterstützung von Web-Portal-Diensten • Unterstützung aktueller Java APIs (JDBC, JNDI, JMS etc.) • Replikation und Lastverteilung Enterprise Application Integration (EAI) Ziel: • Integration unterschiedlicher Anwendungen (Backend) • Beispiele: - Enterprise Resource Planning (ERP) - Customer Relationship Management (CRM) - Supply Chain Management (SCM) Technologische Basis: • Middleware und Web Application Server (z.B. von IBM, BEA, Forte etc.) • Zusätzliche produktspezifische Adapter Lösungsansätze: • Datenintegration • Schnittstellen-basierte Integration (API-Integration) • Workflow- / Prozess-orientierte Integration (bei komplexen Abläufen über mehr als ca. 5 Anwendungen) 18 19 Web-Application-Server: Produktbeispiele • • • • • • • • • BEA Weblogic IBM Websphere IONA Orbix 2000 / I-Portal-Suite Inprise Application Server Microsoft MTS SAG Bolero Oracle Application Server (iAS) Sybase Enterprise Application Server Sun: Forte Fusion Application Server 20 CORBA Common Object Request Broker Architecture (CORBA) - Standardisiert durch OMG (Object Management Group) als Teil der OMA (Object Management Architecture) - Objektorientierter Ansatz, Vererbung, Wiederverwendbarkeit - Language Mapping unter anderem für C, C++, Java, Smalltalk, ADA, Cobol - Durch Java Möglichkeit der Anbindung von Intranet / Internet - Komponentenmodell (CORBA Components); EJB ist Teilmenge hiervon; Möglichkeiten zur Abbildung 21 Object Management Architecture (OMA) Application Objects CORBA Facilities Object Request Broker (ORB) CORBA Services 22 Anwendungsbeispiel Anfrage Naming Service Anmeldung ORB-Aufruf Client (z.B. Kasse) Server (z.B. Kontenserver) Server (z.B. Journal/ Überwachung) Transaction Service Security Service 23 Component Object Model COM+ • Middleware - Lösungen von Microsoft, entstanden aus OLE/COM und DCOM (Distributed COM), herstellerabhängig • Integriert in Windows 2000 (Referenzimplementierung), Portierungen älterer DCOM-Lösungen auf UnixPlattformen, OS/390, AS/400 etc. • Schnittstellenbeschreibung: MIDL; Abbildung auf Java (derzeit gemäss Visual J++), Visual C++, Visual Basic etc. • Höhere Services mit COM+ integriert (Transactions, Security, Queued Components, Event Service, In-Memory Database, Load Balancing, Object Pooling/Caching ) • Schnittstellen zu CORBA vorhanden 24 COM+ - Architektur Client COM+ Runtime Sicherheitsmechanismen RPC COM+ Runtime Sicherheitsmechanismen TCP/IP Objekt RPC TCP/IP COM+-Netzprotokoll Sprachunterstützung u.a. für Visual J++, Visual C++, Visual Basic, auf nicht-Microsoft-Plattformen jedoch mit Einschränkungen 25 Sicherheitsmechanismen Client 1. Nutzername COM+ runtime ACL für Objekt Objekt 4. Aufruf ACL-Prüfung COM+ runtime 3. Sicherheitsmanager 2. Authentisierung Erweitertes Verzeichnis mit Nutzer-Credentials Basierend auf Kerberos Weiterentwicklung: Distributed Security (zusätzlich X.509 Public Keys) 26 Transaktionen • Basierend auf Microsoft Transaction Server (Transaktionsmonitor) • Datenbankanbindung innerhalb Microsoft-Umgebungen (z.B. SQL Server, MS Message Queuing) • Unterstützung außerdem für Oracle, IBM DB2 (OS/390, AS/400, AIX, Windows 2000, OS/2), Informix, Sybase • Automatische Aktivierung / Deaktivierung von ServerObjekten innerhalb von Transaktionen -> Ressourcenoptimierung 27 Legacy-Integration Windows 2000 Client MTS Proxy COMTI (COM Transaction Interface) Component Builder SNA Server COMTI Admin Tool OS/390 - CICS - IMS 28 COM+: Bewertung Vorteile: • Sehr komfortable Anwendungsentwicklung unter Microsoft-Plattformen; Dienste sehr gut integriert • Umfangreiche Unterstützung grafischer Benutzeroberflächen • Vergleichsweise preisgünstig Nachteile: • Begrenzte Verfügbarkeit für andere Plattformen; Clients nur für Windows • Teilweise Sprachabhängigkeit, Herstellerabhängigkeit • Begrenzte Skalierbarkeit Empfehlung: Nutzung für kleinere Microsoft-Umgebungen, für größere, stark heterogene Umgebungen erscheint dagegen CORBA und EJB besser geeignet Vergleich: CORBA / Java RMI / COM+ CORBA Sprachunterstützung Beliebig (v.a. C++, Java, COBOL) Betriebssystemunterstützung LegacyIntegration Alle wesentlichen Systeme Oberflächenentwicklung Angebotene Services Mit Java/WWW möglich Sehr zahlreich; praktisch verfügbar: Kerndienste Mittlerer Bereich Preis Geeignet für komplexe Anwendungen Transaction und COBOL-Binding Ja Java RMI/ EJB 29 COM+ Eingeschränkt (Java) Eingeschränkt (Visual J++, Visual C++, Visual Basic) Alle wesentlichen Primär Windows Systeme 2000 Weitere Produkte (z.B. Web Application Server) Mit Java/WWW möglich Nutzung von CORBA wesentlich Spezielle Produkte (z.B. Entire X) Frei verfügbar; CORBA i.d.R. zusätzlich nötig In Verbindung mit CORBA Relativ gering Visual Basic: sehr einfach Kerndienste Bedingt; primär in Microsoft-Umgebung