Middleware: Anwendungsorientierte Middleware

Größe: px
Ab Seite anzeigen:

Download "Middleware: Anwendungsorientierte Middleware"

Transkript

1 Middleware: Nachrichtenorientierte Middleware & Anwendungsorientierte Middleware VIS-1 Middlew-1

2 Gliederung Kommunikationsorientierte Middleware Alternativen ti zu RMI/RPC Nachrichtenorientierte Middleware (MOM) Anwendungsorientierte Middleware Motivation und Abgrenzung Historische Vertreter Aktuelle Vertreter Beispiel VIS-1 Middlew-2

3 Eigenschaften von RMI/RPC The caller must wait until the response comes back the caller makes a request, the receiver gets the request, processes the request, sends a response, the caller receives the response Synchronous interaction requires both parties to be on-line The receiver does not need to exist at the time of the call (e.g. CORBA / Java RMI can create an instance of the service/server/object when called if it does not exist already) but the interaction requires both client and server to be alive at the same time Synchronizing client and server has several disadvantages: connection overhead (sessions) higher probability of failures difficult to identify and react to failures One-to-one system not practical for nested calls not practical for complex interactions VIS-1 Middlew-3

4 RMI/RPC Nachteile (1): Overhead Synchronous invocations require to maintain a session between the caller and dthe receiver. Maintaining sessions is expensive and consumes CPU resources. There is also a limit on how many sessions can be active at the same time (thus limiting the number of concurrent clients connected to a server) For this reason, client/server systems often resort to connection pooling to optimize resource utilization and have a pool of open connections associate a thread with each connection allocate connections as needed. When the interaction is not one-to-one, the context (the information defining a session) needs to be passed around. The context is usually volatile. VIS-1 Middlew-4

5 RMI/RPC Nachteile (1): Fehlerbehandlung Failures in synchronous calls If the client or the server fail, the context is lost and resynchronization might be difficult. If the failure occurred before 1, nothing has happened If the failure occurs after 1 but before 2 (receiver crashes), then the request is lost If the failure happens after 2 but before 3, side effects may cause inconsistencies i i If the failure occurs after 3 but before 4, the response is lost but the action has been performed (do it again?) Finding out when the failure took place may not be easy. Worse still, if there is a chain of invocations, the failure can occur anywhere. VIS-1 Middlew-5

6 Alternative zu RMI/RPC Asynchronous Interaction Using asynchronous interaction, ti the caller sends a message that t gets stored somewhere until the receiver reads it and sends a response. The response is sent in a similar manner Asynchronous interaction can take place in two forms: Non-blocking invocation: RPC but the call returns immediately without waiting for a response, similar to batch jobs Persistent t queues: The call and the response are actually persistently stored until they are accessed by the client and the server VIS-1 Middlew-6

7 Messaging, Message Passing, Message Queuing Message Passing ist ein Kommunikationsmodell zum asynchronen Transport von Daten zwischen Prozessen. Die Daten werden innerhalb von Nachrichten (Messages) übertragen. Message Passing arbeitet auf der Basis von Warteschlangen: Nachrichten werden vom Sender in eine Warteschlange gelegt und werden von dort aus an den Empfänger weitergeleitet. Die Warteschlange arbeitet nach dem FIFO Prinzip. Nachricht Nachricht Sender Empfänger Warteschlange Einfaches Interaktionsmodell: point-to-point-messages VIS-1 Middlew-7

8 Komplexere Interaktionen Complement to synchronous interactions Suitable to modular design: the code for making a request can be in a different module (even a different machine!) than the code for dealing with the response It is easier to design sophistica- ted distribution modes (multicast, transfers, replication, coalescing messages) and it also helps to handle communication sessions in a more abstract way request() do with answer queue queue receive process return More natural way to implement complex interactions ti VIS-1 Middlew-8

9 Alternat. Interaktionsmodell: Publish-Subscribe Prozesse erhalten Rollen als Publisher bzw. Subscriber. Subscriber abonnieren Nachrichten zu einem Thema. Publisher veröffentlichen Nachrichten zu einem Thema. Broker übernehmen die Vermittlung. Eine mögliche Realisierung erfolgt durch themenspezifische Warteschlangen. W arteschlange zu Thema a Thema a Subscriber Publisher Nachricht b W arteschlange zu Thema b Verm ittler (Broker) Thema b Nachricht b Subscriber VIS-1 Middlew-9

10 Persistente Warteschlangen Eine der wesentlichen Quality of Service -Eigenschaften ist die garantierte Auslieferung einer Nachricht. Was ist dabei das Hauptproblem: Der Empfängerprozess kann ausfallen. Das Netzwerk kann unterbrochen sein. Garantierte Auslieferung wird sichergestellt durch das persistente Zwischenspeichern von Nachrichten. z.b. Datenbank, Dateisystem,... (Nur) wenn der Empfänger bereit ist zu empfangen, wird die Nachricht zugestellt. Garantierte Auslieferung stellt sicher, dass eine Nachricht an den Empfänger ausgeliefert wird. Garantierte Auslieferung sagt jedoch nichts über den Zeitpunkt der Auslieferung aus. Dies muss ggfs.über andere QoS-Eigenschaften sicher gestellt werden. VIS-1 Middlew-10

11 Message Oriented Middleware (MOM) MOM ist die Middleware-Technologie zum Message-Passing-Kommunikationsmodell. MOM bietet neben der rein asynchronen Kommunikation weitere Mechanismen und Dienste: Unterstützung der verschiedenen Messaging Modelle Warteschlangenverwaltung Verbindungsmanagement Quality-of-Service Zusicherungen (QoS) Sender Warteschlangen Empfänger Zugriffsschnittstelle Zugriffsschnittstelle Warteschlangenverwalter Middleware Protokoll (proprietär) Protokollstack VIS-1 Middlew-11

12 Beispiel: Java Message Service (JMS) Einheitlichen Zugriffsschnittstelle (API) für Java-Anwendungen auf einen MOM-Server Teil der Java-Plattform (Java EE oder stand-alone) Der Standard d unterscheidet t zwei Rollen JMS Provider: der jeweilige MOM-Server JMS Client: die Java-Anwendung (Empfänger und Sender von Nachrichten). JMS unterstützt verschiedene Interaktionsmodelle: Einfaches Point-to-Point-Modell Publish-Subscribe-Modell Request-Reply-Modell Nachteil: Keine Interoperabilität zwischen Produkten (aber Porta- bilität) VIS-1 Middlew-12

13 Zusammenfassung: Kommunikationsorientierte Middleware (KM) Ziele: Abstraktion von der Netzwerkprogrammierung Aufgaben Kommunikation Datentransformation Verbergen der Heterogenität Programmiermodelle: Entfernte Prozeduraufrufe (RPC) Entfernte Methodenaufrufe (RMI) Nachrichtenorientiertes Modell Betriebssystem Anwendungskomponente Kommunikationsorientierte Middleware Verteiltes System Beispiele: DCE-RPC, CORBA RMI, Java RMI, JMS VIS-1 Middlew-13

14 Anwendungsorientierte Middleware (AM) AM setzt auf kommunikationsorientierter Middleware (KM) auf. AM erweitert KM um Funktionalität zur Unterstützung verteilter Anwendungen. AM eignet sich auf Grund ihrer Eigenschaften insbesondere für Informationssysteme Informationssysteme steme zeichnen sich durch folgende Eigenschaften aus: Software-intensiv datenzentriert interaktiv nebenläufig Erweiterungen der AM gegenüber KM sind: Laufzeitumgebung Dienste Komponentenmodell VIS-1 Middlew-14

15 AM-Systemarchitektur klassisch [Bernstein 93] FRAMEWORK User Interface Application API veneer Tools Application Framework Local Services Application Programming Interface Middleware : (Distributed) System Services Platform Interface Platform_i OS Hardware Platform_j OS Hardware VIS-1 Middlew-15

16 KM + Laufzeitumgebung Laufzeitumgebung setzt auf dem Betriebssystem des jeweiligen Knoten im verteilten System auf. Laufzeitumgebung erweitert die Funktionalität des Betriebssystems um Verbesserte Ressourcenverwaltung Unterstützung der Nebenläufigkeit Verbindungsverwaltung Verbesserung der Verfügbarkeit Verbesserte Sicherheitsmechanismen Laufzeitumgebung Betriebs- system Kommunikationsinfrastruktur Verteiltes System VIS-1 Middlew-16

17 KM + Laufzeitumgebung + Dienste Dienste stellen häufig benötigte Funktionalität wiederverwendbar bereit Welche und wie viele Dienste eine Middleware anbietet, kann stark variieren. Zu den grundlegenden g Diensten einer Middleware zählen: Namensdienst Sitzungsverwaltung Transaktionsverwaltung Persistenz Dienste Laufzeitumgebung Dienste Betriebssystem Kommunikationsinfrastruktur Verteiltes System VIS-1 Middlew-17

18 KM + Laufzeitumgebung + Dienste + Komponentenmodell Ein Komponentenmodelle bieten eine konzeptionelle und technische Basis zur komponentenbasierten Entwicklung von Anwendungen. Ein Komponentenmodell definiert: einen Komponentenbegriff eine Komponentenlaufzeitumgebung Verträge zwischen Komponenten und Komponentenlaufzeitumgebung Dienste Komponentenmodell Laufzeitumgebung Dienste Anwendungskomponente Anwendungskomponente Anwendungskomponente Betriebssystem Kommunikationsinfrastruktur Verteiltes System VIS-1 Middlew-18

19 Komponentenbasiertes Paradigma (Wdh.) Komponentenbegriff: Wiederverwendbarkeit von Anwendungsfunktionalität Komponenten sind grob-granularere granularere Einheiten auf fachlicher Ebene mit klaren Schnittstellen und diese... sind in sich abgeschlossen (self-contained) bzw. definieren genau ihre Abhängigkeiten und sie umfassen im Wesentlichen nur die Anwendungslogik (vgl. Einsatzkontext, t t s.u.) Laufzeitumgebung: Dienste und Schnittstellen Komponenten werden in speziellen Containern ausgeführt (IOC-Prinzip) Pi i Einheitliches Deployment-Modell Konfiguration der Komponenten beim Deployment je nach Einsatzkontext (Sicherheit, Transaktionen, Persistenz, ) K1 Container 1 Rechner 1 K2 K3 Container 1 Rechner 2 VIS-1 Middlew-19

20 Middleware-Dienste für Komponenten Namensdienst (damit Komponenten sich gegenseitig finden können) Remote-Prozeduraufruf (RMI/RPC) (für entfernten Zugriff auf Komponenten) Nachrichtenkommunikation (für asynchrone Kommunikation mit bzw. zwi- schen Komponenten) Transaktionssicherheit (für Nebenläufigkeit und Fehlerbehandlung innerhalb und zwischen Komponenten) Resource Pooling (Datenbankverbindungen, Komponenten) Security (Zugriffsrechte) Persistenz und Caching (persistente Speicherung von Objekten/Daten) VIS-1 Middlew-20

21 Standardisierte Anwendungsmiddleware: OSF DCE und OMG CORBA Standardisierungsziel: Herstellerübergreifendes Architekturmodell und Systemplattform zur Unterstützung offener verteilter Anwendungen, dazu: Erweiterte (Betriebs-) Systemplattform - DCE: Middleware- Standards für verteilte Systeme: Open Software Foundation (OSF) / Open Group (OG): ---> Distributed Computing Environment (DCE) Architektur- und Objektmodell CORBA: Object Management Group (OMG): ---> Common Object Request Broker (CORBA) VIS-1 Middlew-21

22 DCE: Einführung Distributed Computing Environment (ca. 1990) entwickelt von der Open Software Foundation (OSF) Ziel: Vereinfachung der Entwicklung verteilter Systeme Realisiert als Middleware Transparenzschicht über dem Betriebssystem Dienste, Bibliotheken und Werkzeuge Client/Server Modell Aktive Clients Passive Server VIS-1 Middlew-22

23 Herstellerübereinkunft: OSF/OG Distributed Computing Environment (DCE): Architektur ENCINA Toolkit TRAN TRPC Tran-C Server Core Verteilte Anwendung Time Directory Security Distrib. Service Service Service File Sys. Sonst. Remote Procedure Call (RPC) Thread Service Local Operating and Communication Services VIS-1 Middlew-23

24 DCE: Architektur (2) Zellen (engl. Cells ) ähnlich h Domänen Strukturierungseinheit für Administration und Betrieb Aufbau Autonomie der Zellen Verzeichnis-, i Sicherheits- h i und dzeitdienst idi je Zelle Verbindung von Zellen manuelle Konfiguration (Trust-Relationship) globaler Verzeichnisdienst (Zellennamen) VIS-1 Middlew-24

25 DCE: RPC Remote Procedure Call IDF Zugriffstransparenz für Prozeduraufrufe f Schnittstellendefinition (IDF) Interface Definition File Signaturen der Prozeduren UUID für jedes Interface Ablauf Generierung von Stub (Client) / Skeleton (Server) Kommunikation über TCP / UDP Maskieren von Implementationsdetails (z.b. Datenformate) VIS-1 Middlew-25

26 Praktische Relevanz von DCE unterschiedliche Hersteller unterschiedliche Betriebssysteme unterschiedliche Netzwerktechnologien Komponenten von unterschiedlichen Herstellern Standardkomponenten keine einheitliche Steuerungs- / Überwachungsumgebung keine globalen Entwicklungswerkzeuge einheitliche Implementierungen auf vielen HW-Plattformen gute Integration von Security-Funktionen VIS-1 Middlew-26

27 Standardarchitektur für die Objektkoordination in offenen verteilten Systemen: OMG CORBA OMG: Object Management Group : non-profit Software-Konsortium (gegr. 1989) über 800 Mitglieder (Firmen: HW, SW, User, IT etc.) Ziel: Unterstützung für Anwendungs-Interoperabilität Umgebung: heterogen, multi-vendor, verteilt,... bisher: Object Management Architecture (Referenzmodell) + Common Object Request Broker (CORBA) + Object Services (z.b. Transaktionen, Trading,...) Beziehungen zu: ISO/IEC JTC1 WG7 (ODP) CCITT/ITU und ISO X.500 (Directory) etc. Unix bzw. X/Open VIS-1 Middlew-27

28 CORBA: Einführung Common Object Request Broker Architecture (CORBA) entwickelt von der Object Management Group (OMG), ca. 1992/96 Ziel: Kommunikationsinfrastruktur für verteilte Objekte Teil der Object Management Architecture (OMA) CORBA Services: technische Dienste CORBA Facilities: fachbezogene Dienste (domain vs. horizontal) Objektorientiertes Client/Server-Modell Server-Objekte Aufrufe auf Server-Objekten durch Clients VIS-1 Middlew-28

29 De-facto Standard: OMG Common Object Request Broker Architecture t (CORBA) Client Interface Definition Language (IDL) Server Object Dynamic interface Static stubs ORB interface IDL Skeleton Object adapter Object Request Broker Kernel Interface repository - Find object instance - Supervise transfer of control - Data transfer from caller to object instance - Error management Implementation repository VIS-1 Middlew-29

30 CORBA: Architektur Object Request Broker (ORB) transparente Vermittlungsschicht Objektreferenzen zur Adressierung Veröffentlichung von Referenzen über Namensdienst RMI Remote Method Invocation Interface Repository Verwaltung von Objektschnittstellen Bindung zur Laufzeit möglich Client Serverobjekt Serverobjekt Dynamischer Stub Statischer Stub ORB- Dienste Statisches Skeleton Dynamisches Skeleton POA CORBA Interface Repository Implementation Repository VIS-1 Middlew-30

31 CORBA: RMI Ziele IDL Objektorientierung ti als Abstraktion für verteilte Kommunikation Orts- und Zugriffstransparenz Sprachunabhängigkeit Interoperabilität Interface Definition Language gemeinsamer Nenner für Programmiersprachen (C++, Java, Smalltalk etc.) Language Bindings legen Abbildung fest Ablauf Generierung von Stub (Client) / Skeleton (Server) Marshalling / Unmarshalling VIS-1 Middlew-31

32 DCE vs. CORBA Dienstlokalisation Verzeichnisdienst Dienstgranularität DCE: Prozedur CORBA: Objekte Sicherheit Security Service Heterogenität verbergen IDF IDL Dienstaufruf DCE: RPC CORBA: RMI Stukturierung / Konfiguration Komponentenmodell DCE: n/a CORBA: CBOF (Common Business Object Facility, nicht fertig DCE: Zellen gestellt) CORBA: Domänen CCM (CORBA Component Model, verabschiedet 1999, kaum Verwendung in der Praxis) VIS-1 Middlew-32

33 Die Rolle der CORBA IDL Client Side Object Implementation ti Side C COBOL C++ I D L I D L C COBOL I D L I D L ORB ORB I D L I D L Ada Ada I D L I D L I D L I D L Small talk I D L I D L Small talk C++ JAVA JAVA VIS-1 Middlew-33

34 CORBA Interface Definition Language (IDL) Bestandteile - Definition der Typen der Argumente - Spezifikation der Prozedurköpfe - Zuweisung von Identifikationsnummern zu den Prozeduren - Definition des Programms und der Version Schnittstellensprache - wird benötigt, z.b: wenn Client und Server in unterschiedlichen Sprachen geschrieben sind (heterogene Umgebungen!) - bietet skalare und strukturierte Datentypen - kann von verschiedenen Sprachen aus benutzt werden Datenabstraktion - entspricht von der Idee her z.b. Definitionsdatei in Modula-2 -Server exportiert die Schnittstelle, Client importiert die Schnittstelle - Server und Client müssen dieselbe Schnittstelle benutzen Marshalling/Unmarshalling-Routinen (Stubs) - Generierung für jeden im Schnittstellenmodul definierten Datentyp (Stubs) automatisch möglich VIS-1 Middlew-34

35 CORBA IDL-Beispiel: RouteFinder.idl module RouteFinder { typedef string Location; typedef sequence<location> LocationSeq; typedef long Speed; typedef float Length; enum Complexity {LOW, MEDIUM, HIGH}; typedef boolean Beauty; enum Policy { FAST, SHORT, SIMPLE, NICE }; union SingleRating switch (Policy) { Speed s; Length l; Complexity c; Beauty b; }; struct Ratings { Speed s; Length l; Complexity c; Beauty b; }; // Exceptions exception UnknownRoute {}; exception UnknownLocation { Location where }; exception Reject { string reason; }; // Interfaces interface Route; interface RouteFactory; interface Update; interface Lookup; interface ExtendedLookup; }; VIS-1 Middlew-35

36 IDL-Beispiel: 'RoomBooking' in CORBA IDL aus: A. Vogel, K. Duddy: "Java Programming with CORBA", John Wiley & Sons, 1997 module RoomBooking { interface Meeting { // A meeting has two read-only attributes which describe the // purpose and the participants of that meeting. readonly attribute string purpose; readonly attribute string participants; }; interface MeetingFactory { // A meeting factory creates meeting objects. Meeting CreateMeeting ( in string purpose, in string participants); }; VIS-1 Middlew-36

37 IDL-Beispiel: 'RoomBooking' in CORBA IDL (cont.) }; interface Room { // A Room can be booked for several (here: 8) time slots. enum Slot {am9, am10, am11, pm12, pm1, pm2, pm3, pm4}; // Since cardinality of slots cannot be determined in IDL MaxSlots defines it: const short MaxSlots = 8; }; // "Meetings" associates meetings with time slots typedef Meeting Meetings [MaxSlots]; exception NoMeetingsInThisSlot {}; exception SlotAlreadyTaken {}; // The attribute "name" names a room: readonly attribute string name; // "View" returs the bookings for a room, "Book" and "Cancel" book resp. cancel // reservation for a room (here: only for a day): Meetings View (); void Book ( in Slot a_slot, in Meeting a_meeting ) raises (SlotAlreadyTaken); void Cancel ( in Slot a_slot ) raises (NoMeetingsInThisSlot) VIS-1 Middlew-37

38 Vor- & Nachteile von CORBA CORBA löst Probleme der Heterogenität... Integration legacy... Verteilung... Ersetzbarkeit Information hiding... Wiederverwendbarkeit Vererbung... Erweiterbarkeit Polymorphie Unter den Randbedingungen schneller Standardisierungsprozesse etwa 18 Monate bis zum Markt... große Akzeptanz über 800 Mitglieder viele Produkte viele Sprachabbildungen (Mappings)... große Verbreitung Client bereits in jedem Browser ab Netscape 4 Navigator vorhanden Probleme: IDL kleinster gemeinsamer Nenner IDL definiert nur Interface, keine Implementierung keine Semantikspezifikation in IDL-Beschreibung z.t. mangelhafte Abbildbarkeit auf Sprachen schlechte Reversibilität VIS-1 Middlew-38

39 Erweiterungen des CORBA - Standards Schwachstelle der erste CORBA-Version (1.0) : Interoperabilität CORBA 2.0 (ca. 1995): Interoperabilitätsprotokoll integriert (TCP/IP oder DCE) UNO-Vorschlag: Universal Network Objects Unterscheidung: Stand-Alone ORBs vs. Networked ORBs mit Inter-ORB-Bridge und Interoperability-Protokoll Zusätzliche Architekturkomponente: Dynamic Skeleton Interface (DSI) lädt adäquate Objektimplementierung aus dem Implementation Repository setzt generische DII-basierte Requests in objektspezifische Methodenaufrufe um Interoperable Objektreferenzen realisiert via: - General Inter-ORB-Protokoll (GIOP) - wie IIOP (Internet Inter-ORB Prot.) - Environment Specific Inter-ORB-Protokoll (ESIOP) - wie z.b. DCE-CIOP (DCE-Common Inter-ORB-Protokoll) CORBA 3.0: u.a. Unterstützung für (SW-) Komponententechnologie, UML (Modellierung) etc. letzte Version: CORBA 3.1 (2008) VIS-1 Middlew-39

40 Aktueller Vertreter: Java EE Voller Name: Java Platform Enterprise Edition 5 Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web-Anwendungen. Java EE ist damit eine herstellerunabhängige Spezifikation eines Komponentenmodells inkl. dazugehöriger Middleware Services, inkl. Schnittstellen zu anderen Komponenten Komponenten: Enterprise Java Beans (EJB) Java-basiertes Modell (keine Programmiersprachenunabhängigkeit) Konfiguration über XML-Deskriptoren bzw. Java-Annotations Laufzeitumgebung: EJB Container (Application Server) Container implementiert die Java EE Spezifikation Komponenten (-entwickler) benutzen Java EE APIs Einmal implementierte Komponenten können auf Produkten verschiedener Hersteller deployed d werden (theoretisch ) ti h VIS-1 Middlew-40

41 Historische Entwicklung Ease of Development Enterprise Java Platform Enterprise Java APIs J2EE 1.2 JPE Project Servlet, JSP, EJB, JMS, JTA, JNDI, RMI/IIOP Robustness J2EE 1.3 EJB 2.0, Connector Architecture Web Services J2EE 1.4 Web Services, Management, Deployment, Async. Connector Java EE5 Annotations, EJB 3.0, Persistence API, JSF, Renewed Web Services May 1998 Dec 1999 Sept Nov May 2006 VIS-1 Middlew-41

42 Nachfolger: Java EE 6 Neuerungen Profiles: Teilmengen der Platform/APIs für spezifische Anwendungen (z.b. Java EE Web Profile) SOA: Support für SCA (Service Component Architecture) Existierende Spezifikationen aufnehmen: JSR-196: Java Authentication SPI for Containers JSR-236: Timer for Application i Servers? JSR-237: Work Manager for Application Servers? JSR-299: Web Beans JSR-311: JAX-RS: Java API for RESTful Web Services Spezifikation: Fertigstellung (SDK): Dezember 2009 In Konkurrenz zu: Microsoft s s.net -Plattform VIS-1 Middlew-42

43 Java EE: Plattform-Architektur VIS-1 Middlew-43

44 Java Beans (Def.: Sun / Wikipedia) JavaBeans sind Software-Komponenten für die Programmiersprache Java. JavaBeans entwickelten sich aus der Notwendigkeit heraus, GUI-Klassen (AWT, Swing) einfach instanziieren (Reflexion) und übertragen (RMI) zu können. JavaBeans werden auch als Container zur Datenübertragung verwendet. Daher zeichnen sich alle JavaBeans durch folgende Eigenschaften aus: Öffentlicher Standardkonstruktor (Default constructor) Serialisierbarkeit (Serializable) Öffentliche Zugriffsmethoden (Public Getters/Setters) Auf Grund dieser Eigenschaften eignen sich JavaBeans auch als Datenobjekte für Persistenzframeworks (siehe Enterprise JavaBeans). Eine Komponente ist nur dann eine JavaBean, wenn sie der JavaBeans API Specification entspricht, welche die JavaBeans Component Architecture spezifiziert. Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java-EE- Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschich- hi h tiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans können wichtige Konzepte für Unternehmensanwendungen, z. B. Transaktions-, Namens- oder Sicherheitsdienste, umgesetzt werden, die für die Geschäftslogik einer Anwendung nötig sind. VIS-1 Middlew-44

45 Java EE: Interoperabilität VIS-1 Middlew-45

46 Java EE Komponentenmodell(e) Motivation: Anwendungsfunktionalität (business logic) in geeignete Komponenten kapseln Stateless Session Beans Jeder Methodenaufruf ist (normalerweise) eine eigene Transaktion Stateless Beans können zwischen zwei Methodenaufrufen keinen Zustand speichern Stateful Session Beans Transaktion besteht (normalerweise) aus mehreren Methodenaufrufen (Geschäftsprozess) Stateful Beans haben einen internen Zustand, der pro Client gespeichert wird Message-Driven Beans für asynchrone Interaktionen (kein Ergebnis erwartet) werden durch Nachrichten aus (z.b. JMS) Warteschlangen getrieben Entity-Beans gibt es nicht mehr (bzw. nur noch aus Kompatibilitätsgründen) Persistenz über einfache Java-Objekte (POJOs) konfigurierbare Abbildung auf (z.b.) Datenbanktabellen VIS-1 Middlew-46

47 Allgemein Session Beans stellen bestimmte Dienste (Methoden) zur Verfügung, die von Clients genutzt werden können ( Business Interfaces) sind nicht-persistent, d.h. Zustand wird nicht dauerhaft gespeichert Zugriff über Local oder Remote Interfaces Stateless Session Bean Es können nie zwei Clients nebenläufig auf einer Bean-Instanz arbeiten Nach jedem Methodenaufruf wird die Bean wieder frei kann bei Bedarf vom Container zerstört werden oder wieder an einen anderen Client (bzw. den gleichen) vermittelt werden Pooling / Replikation einfach möglich Beispiel: Abrechnung erstellen Stateful Session Beans eine Instanz pro Client (speichert spezifischen Zustand einer Sitzung) wird erst nach Beenden einer Sitzung frei Passivierung/Aktivierung möglich, um Speicher zu sparen Beispiel: Hinzufügen mehrerer Artikel zu einem Warenkorb VIS-1 Middlew-47

48 Message-Driven Bean interagiert nur über Nachrichten und Warteschlangen mit der Außen- welt Für Clients ist es nicht möglich, eine solche Bean zu identifizieren oder eine Verbindung zu ihr aufzunehmen Beispiel: Asynchroner Austausch von Daten zwischen Unternehmen VIS-1 Middlew-48

49 Schnittstellen zur Außenwelt Java / Swing Rich Client Applikation Web Browser / Mobile Geräte Java WebStart Java Servlets JSP / JSF EJB Tier Stateless Session Beans C++ CORBA Anwendungen Andere Java Enterprise-Server Andere Enterprise- Applikationen CORBA-IIOP SOAP Webservices Messaging Protocol Stateful Session Beans Message-Driven EJBs VIS-1 Middlew-49

50 Persistenz mit EJB3 Programmiermodell Daten werden als einfache Java-Objekte gekapselt Automatisches OR-Mapping auf SQL-Tabellen Beschreibung der Datentypen über Annotationen Objektorientierte Anfragesprache: select o from Order o where o.customer.name= Hans Laufzeitmodell Persistence Manager zuständig für Verwaltung persistenter t Objekte Meist gebunden an Session ( Transaktionalität) Verwaltung kann über Entity- Lebens-zyklus beeinflusst werden: VIS-1 Middlew-50

51 Deployment-Prozess VIS-1 Middlew-51

52 Packaging and Deployment Enterprise Application Archive (EAR) application.xml EJB Archive (EJB-JAR) JAR) ejb-jar.xml j Session Beans Message-Driven Beans Web Application Archive (WAR) Servlets JSPs web.xml VIS-1 Middlew-52

53 Java EE 5-kompatible Server Open Source Sun GlassFish JBoss Application Server (JBossAS) Apache Geronimo Zertifizierte Server (http://java.sun.com/javaee/overview/compatibility.jsp) j p yj p) weitere (Sun Java System Application Server) BEA WebLogic (jetzt Oracle) IBM Websphere Application Server (WAS) SAP NetWeaver Application Server Pramati Server (Pramati Technologies) ObjectWeb JOnAS (Java Open Application Server) by OW2 consortium VIS-1 Middlew-53

54 Java EE Beispiel: Duke s Bank Applicaton VIS-1 Middlew-54

55 Java EE Beispiel: Duke s Bank Applicaton withdraw( ) deposit( ) transferfunds( ) getaccountsofcustomer( ) getdetails( ) createaccount( ) removeaccount( ) addcustomertoaccount( ) removecustomerfromaccount( ) createcustomer( ) removecustomer( ) VIS-1 Middlew-55

56 Java EE Beispiel: Duke s Bank Applicaton Authentifizierung ( ) & Autorisierung (bankcustomer) withdraw( ) deposit( ) transferfunds( ) getaccountsofcustomer( ) getdetails( ) createaccount( ) removeaccount( ) addcustomertoaccount( ) removecustomerfromaccount( ) g Authentifizierung & Autorisierung (bankadmin) createcustomer( ) removecustomer( ) VIS-1 Middlew-56

57 Java EE Beispiel: Duke s Bank Applicaton withdraw( ) deposit( ) transferfunds( ) getaccountsofcustomer( ) getdetails( ) Transaktion createaccount( ) removeaccount( ) addcustomertoaccount( ) removecustomerfromaccount( ) createcustomer( ) removecustomer( ) VIS-1 Middlew-57

58 Zusammenfassung Kommunikationsorientierte Middleware Alternativen zu RMI/RPC nachrichtenorientierte Middleware (MOM) Anwendungsorientierte Middleware Motivation und Abgrenzung historische Vertreter: DCE & CORBA aktuelle(r) Vertreter: Java EE Beispiel: Duke s Bank Application VIS-1 Middlew-58

Middleware: Nachrichtenorientierte Middleware & Anwendungsorientierte Middleware. VIS1-Midd-1. db/wl/ap/lb vsis inf min uni hh 13_14

Middleware: Nachrichtenorientierte Middleware & Anwendungsorientierte Middleware. VIS1-Midd-1. db/wl/ap/lb vsis inf min uni hh 13_14 Middleware: Nachrichtenorientierte Middleware & Anwendungsorientierte Middleware VIS1-Midd-1 Gliederung Kommunikationsorientierte Middleware Alternativen zu RMI/RPC Nachrichtenorientierte Middleware (MOM)

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

3.2 Der CORBA-Standard Common Object Request Broker Architecture

3.2 Der CORBA-Standard Common Object Request Broker Architecture 3.2 Der CORBA-Standard Common Object Request Broker Architecture (Bildquelle: OMG) Kapitel 3.2: Vorlesung CORBA 1 CORBA Middleware im Ueberblick G CORBA = Common Object Request Broker Architecture. Standard

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS Piotr Kasprzak Agenda Laufzeitumgebung Java EE (J2EE) Motivation APIs / Technologien JBoss Entwicklungsumgebung Eclipse Ausblick Java EE -

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA Hauptseminar Management von Softwaresystemen Techniken der System-Integration EAI, Middleware, SOA, CORBA Betreuerin: Referent: Ulrike Hammerschall Alexey Krivoborodov Agenda Motivation Arten der Verteilung

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme Titel CORBA Eine Middleware-Plattform für objektorientierte Technologien von Martin Villis 6. Mai 2004 Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel VS12 Slide 1 Verteilte Systeme Vorlesung 12 Sebastian Iwanowski FH Wedel Mögliche Plattformen für Web Services VS12 Slide 2 VS12 Slide 3 Java-Software für verteilte Systeme J2EE: Java 2 Enterprise Edition

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Evaluation of Java Messaging Middleware as a Platform for Software Agent Communication

Evaluation of Java Messaging Middleware as a Platform for Software Agent Communication Evaluation of Java Messaging Middleware as a Platform for Software Agent Communication Frank Kargl Torsten Illmann Michael Weber Verteilte Systeme Universität Ulm {frank.kargl torsten.illmann weber} @informatik.uni-ulm.de

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

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

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10. J2EE eine Plattform für betriebliche Anwendungen Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Plattform Betriebliche Anwendung J2EE Kontrahenten J2EE im Überblick Was ist

Mehr

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

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

SE2-10-Entwurfsmuster-2 15

SE2-10-Entwurfsmuster-2 15 Architektur und Skalierbarkeit SE2-10-Entwurfsmuster-2 15 Skalierbarkeit Skalierbarkeit bedeutet die Anpassung einer Software an wachsende Last: Interaktionsfrequenz Nutzerzahl Anpassung durch Hinzufügen

Mehr

CORBA & CCM. )bersicht CORBA CCM. Abschluss. CORBA :: Motivation. von Malte B. Blanken. CORBA :: Was ist das? Open Source Produkte

CORBA & CCM. )bersicht <? > CORBA CCM. Abschluss. CORBA :: Motivation. von Malte B. Blanken. CORBA :: Was ist das? Open Source Produkte CA :: Motivation CA & CCM von Malte B. Blanken Mr. X hat einen Windows!Server. Auf diesem bietet er einen Dienst an, welcher auf Anfrage die Zeichenkette "Das Leben ist sch#n!!$ ausgibt. Dieser Dienst

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Beispiel Minibank nur: Kunde, Konto, Überweisung personen.person Attributes Name:String Vorname:String überweisungen.überweisung Attributes Verwendungszweck:String Datum:Date betrag:integer

Mehr

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany Enterprise JavaBeans Einführung Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Inhalt Allgemeines Motivation Rollen Aufbau einer EJB Arten von Beans Enterprise JavaBeans

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Kommunikation. Björn und Georg

Kommunikation. Björn und Georg Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges

Mehr

Grundlagen und Implementation. Jan Kraft

Grundlagen und Implementation. Jan Kraft Grundlagen und Implementation Jan Kraft Gliederung 1 die OMG 2 Was ist CORBA? 3 Funktionsweise 3.1 die Interface Definition Language 3.2 Objekt Adapter 3.3 weitere Komponenten des ORB 3.4 InterORB Protokolle

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition Inhaltsverzeichnis Vorwort 13 I Enterprise Java im Überblick 1 Bedeutung von Enterprise Java und IBM WebSphere 21 1.1 Enterprise Java 23 1.1.1 Anforderungen 23 1.1.2 E-Business 30 1.1.3 Java 36 1.2 IBM

Mehr

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion Verteilte Anwendungen und Klassifikation von Interaktionsformen explizit implizit orthogonal nicht-orthogonal uniform nicht-uniform transparent nicht-transparent explizite, orthogonale Interaktion weit

Mehr

Komponentenmodelle II

Komponentenmodelle II Komponentenmodelle II DCOM / CORBA Detlef Streitferdt Technische Universität Ilmenau DCOM Architektur Client Proxy Stub Component CoCreateInstance Security Provider DCE RPC Protocol Stack Security Provider

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

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

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1 Web Services XML, WSDL, SOAP und UDDI Einblicke und Ausblicke 31.03.2003 J.M.Joller 1 Inhalt Architekturen Main Stream.NET J2EE und Applikations-Server Sicht der Anbieter Java J2EE J2EE versus.net Web

Mehr

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1 Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus

Mehr

Kap. 3 Verteilte Objektverwaltung

Kap. 3 Verteilte Objektverwaltung Kap. 3 Verteilte Objektverwaltung 3.1 Einführung in die verteilte Objektverwaltung (Distributed Object Management, DOM) Anforderungen Kurzübersicht Java RMI Microsoft COM+ CORBA 3.2 Der CORBA-Standard

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Oracle Fusion Middleware Ordnung im Ganzen Matthias Weiss Direktor Mittelstand Technologie ORACLE Deutschland B.V. & Co. KG 2 Agenda Begriffe & Ordnung Fusion Middleware Wann, was, warum Beispiel für

Mehr

Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware. Dieter Schmalstieg. Dieter Schmalstieg SVU Enterprise Middleware

Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware. Dieter Schmalstieg. Dieter Schmalstieg SVU Enterprise Middleware Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware Dieter Schmalstieg Middleware für Enterprise Information Systems Enterprise Information Systems Grosse Unternehmen Viele existierende

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 16 RMI, DCOM, Webservices cs 1100 ww6 sch 05-97 Remote Method Invocation (RMI) JVM JVM Client Server Stub Java Remote Skeleton Method

Mehr

Security Technologien in Java EE 6

Security Technologien in Java EE 6 Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme II Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013 Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013 Die Herausforderung: Hostanbindung Viele Unternehmen besitzen Mainframe- und Legacy-Anwendungen, so genannte Enterprise Information Systems (EIS),

Mehr

Aspektorientierte Middleware Florian Wagner

Aspektorientierte Middleware Florian Wagner Anwendungen der Aspektorientierung (5) Übersicht Middleware? Middleware-Concerns Java 2 Enterprise Edition AO Implementierung AOP & JBoss 2 mid dle ware (mĭd'l-wâr') n. Software that serves as an intermediary

Mehr

Komponentenbasierte Softwareentwicklung

Komponentenbasierte Softwareentwicklung Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies

Mehr

Verteilte objektorientierte Programmierung am Beispiel CORBA

Verteilte objektorientierte Programmierung am Beispiel CORBA Verteilte objektorientierte Programmierung am Beispiel CORBA Karsten Morisse km@kmorisse.de Vortrag FH Bielefeld 18. Juni 2002 Überblick 1. Verteilte Systeme 2. CORBA - Common Object Request Broker Architecture

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

JDO Java Data Objects

JDO Java Data Objects JDO Java Data Objects Ralf Degner, Chief Consultant Ralf.Degner@poet.de Agenda POET Motivation Geschichte Einführung Architekturen FastObjects POET Gegründet 1993 Zwei Produktlinien esupplier Solutions:

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi Service Component Architecture Ein Vergleich zwischen SCA,JBI und WCF Marcello Volpi Agenda Einführung Service Component Architecture (SCA) Java Business Integration (JBI) Windows Communication Foundation

Mehr

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans Sebastian Pipping 18. Dezember 2006 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. Teil I J2EE J2EE Was ist J2EE? Was ist J2EE?

Mehr

Beispiel: JavaBeans. Enterprise JavaBeans: Server-Komponenten

Beispiel: JavaBeans. Enterprise JavaBeans: Server-Komponenten Kap. 5 Enterprise JavaBeans () G 5.1Enterprise JavaBeans Komponentenbasierte Systementwicklung mit deklarativer Anpassung Die Enterprise JavaBeans-Philosophie Anwendungsentwicklung mit Enterprise JavaBeans

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

Oracle Weblogic Administration Grundlagen

Oracle Weblogic Administration Grundlagen Oracle Weblogic Administration Grundlagen Seminarunterlage Version: 1.07 Version 1.07 vom 14. September 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis

Mehr

WebSphere Application Server Installation

WebSphere Application Server Installation WebSphere Application Server Installation und Administration Seminarunterlage Version: 3.04 Copyright Version 3.04 vom 16. Mai 2013 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

InQMy Application Server Flexible Softwareinfrastruktur für verteilte Anwendungen

InQMy Application Server Flexible Softwareinfrastruktur für verteilte Anwendungen InQMy Application Server Flexible Softwareinfrastruktur für verteilte Anwendungen IN-Q-My Title Company (Name) / 1 Agenda Firmenübersicht ebusiness Evolution InQMy Application Server Architektur Zusammenfassung

Mehr

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken Oracle Application Server Oracle Application Server - 1 Gliederung Einführung Oracle Application Server (OAS) Praxis- und Diplomarbeitenverwaltung LiveHTML Kritik Becker,

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Die hohe Kunst der aromatischen Bohnenmischung oder Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß Motivation Bean = Komponente Datenbank Zielgruppe Kommerzielle Anwendungen

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit Hochschule für Technik und Architektur Chur Dr. Bruno Studer Studienleiter NDS Telecom, FH-Dozent bruno.studer@fh-htachur.ch 1 GSM: 079/610 51 75 Agenda Vorteile von Java und Konvergenz Service Creation

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen Java Beans Enterprise Java Beans Eine kurze Einführung in die Welt der Bohnen Java Beans Einführung Stefan Sauer Was ist ein Java Bean? Beans sind Komponenten. Einmal schreiben Überall wiederverwerten

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Verteilte Systeme - 1. Übung

Verteilte Systeme - 1. Übung Verteilte Systeme - 1. Übung Dr. Jens Brandt Sommersemester 2011 1. Rechnerverbünde Kommunikationsverbund: Beispiele: E-Mail (SMTP, POP/IMAP), Instant Messaging (XMPP, IRC, ICQ,...), Newsgroups (NNTP)

Mehr

Geschäftskomponenten mit EJBs

Geschäftskomponenten mit EJBs Geschäftskomponenten mit EJBs FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2

Mehr

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht Enterprise JavaBeans Überblick 1. Überblick Komponententechnologien 2. Einführung 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

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

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

Mehr

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub 39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object

Mehr

Enterprise Java Beans (EJB)

Enterprise Java Beans (EJB) silbergrau Consulting & Software GmbH Enterprise Java Beans (EJB) Fachhochschule Hagenberg WS 2002 / 2003 Silbergrau Consulting & Software GmbH Dr. Andreas Erlach Inhaltsübersicht Application Server J2EE

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans JPA - JAVA Persistence API Problem In JAVA-programmen arbeitet man mit Hauptspeicherobjekten. Nach Beendigung des Programmes sind diese nicht mehr vorhanden.

Mehr

Geschäftskomponenten mit EJB 3.1

Geschäftskomponenten mit EJB 3.1 Geschäftskomponenten mit EJB 3.1 Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Kurt Fastner Sommersemester 2012 Inhalt Was ist EJB Die verschiedenen EJB-Typen/Komponenten Applikationsserver,

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Der Einsatz von CORBA in verteilten EDA-Tools

Der Einsatz von CORBA in verteilten EDA-Tools Der Einsatz von CORBA in verteilten EDA-Tools Frank Grützmacher Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik Fachgebiet Mikroelektronische Schaltungen und Systeme

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Integrating Architecture

Integrating Architecture Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Vorstellung und Einführung Ein beliebiger Zeitpunkt in einem beliebigen Unternehmen

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 2 Peter Sollberger Die verschiedenen Middleware - Ansätze Inhalt Montag, 3. November Remote Procedure Call (RPC) Fehlersemantiken Remote Message

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Java Beans (22.02.2001)

Java Beans (22.02.2001) Component Based Software Development Java Beans (22.02.2001) Stefan Jäger Robert Kalcklösch Veranstalter: M. Bittner W. Koch Inhalt Einführung in Java Die Java Beans Einsatz und Entwicklung von Beans Enterprise

Mehr

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen <henning@apache.org> Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen Henning P. Schmiedehausen Turbine - ein berblick Open Source unter Apache License 100% pure Java, Java 2 (JDK 1.2+) Servlet-basiertes

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

Message Oriented Middleware am Beispiel von XMLBlaster Message Oriented Middleware am Beispiel von XMLBlaster Vortrag im Seminar XML und intelligente Systeme an der Universität Bielefeld WS 2005/2006 Vortragender: Frederic Siepmann fsiepman@techfak.uni bielefeld.de

Mehr

Middleware im Vergleich

Middleware im Vergleich 1 Middleware im Vergleich Prof. Dr. Alexander Schill Technische Universität Dresden Lehrstuhl Rechnernetze http://www.rn.inf.tu-dresden.de schill@rn.inf.tu-dresden.de - Einführung und Beispiel - Java-Technologien

Mehr