ebusiness-plattformen am Beispiel von J2EE

Ähnliche Dokumente
DB-Aspekte des E-Commerce Schwerpunkt: Techniken. Servlets und JavaServer Pages

Softwareentwicklung mit Enterprise JAVA Beans

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Enterprise JavaBeans (mit JBoss)

Vorlesung Software aus Komponenten

Java 2, Enterprise Edition Einführung und Überblick

Kap. 6 Applikationsserver

J2EE mit Eclipse 3 und JBoss

Enterprise Java Beans (EJB)

Application Server Application Server: Motivation Application Server: Begriff

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Zwischenbericht Diplomarbeit

Komponentenorientierte Software-Entwicklung. Seite 1 / 44

11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

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

Enterprise JavaBeans

Beispiel: JavaBeans. Enterprise JavaBeans: Server-Komponenten

JDO Java Data Objects

Enterprise JavaBeans Überblick

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

Masterkurs Verteilte betriebliche Informationssysteme

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Application Server und Continuous Integration

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

26. DECUS Symposium

5.2 Workshop EJB. Entwicklung von EJB-Anwendungen. Das JOnAS-System

Web 2.0 Software-Architekturen

J a v a S e r v l e t s

Enterprise Computing

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

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Objektorientierte Datenbanken

Java Beans ( )

Enterprise Java Beans

InQMy Application Server Flexible Softwareinfrastruktur für verteilte Anwendungen

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Client/Server-Programmierung

Session Beans & Servlet Integration. Ralf Gitzel

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

4.2 Workshop EJB. Entwicklung von EJB-Anwendungen

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 3. Enterprise Java Beans

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

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

Java EE Java EE Multitiered Applications

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

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components.

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

Webanwendungen mit IBM Rational und IBM WebSphere V6

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

Seminar Applicationserver Alireza Salemi Mailto:

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

Java Server Pages (JSP)

Warum EJB Technologie (1)?

EJB jar.xml und Name Service (JNDI)

typisiert, vom Compiler prüfbar, gute IDE-Unterstützung

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht

1. Erläutern Sie am Beispiel einer 3-schichtigen Client-Server-Architektur die Prinzipien einer guten Architektur. Dialogsteuerun

D.58 D.57 D.60 D Bean-Managed Persistence. 5.4 Bean-Managed Persistence (2) 5.4 Bean-Managed Persistence (3) 5.4 Bean-Managed Persistence (4)

Web 2.0 Software-Architekturen

D Enterprise Java Beans

Enterprise Application Integration Erfahrungen aus der Praxis

Praktikum aus Softwareentwicklung 2, Stunde 11

Mainframe und J2EE auf Augenhöhe? JCA 1.5 am Beispiel von Oracle 10g und BeanConnect 2.0

Der IBM Websphere Portalserver

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Evgenia Rosa ORACLE Deutschland GmbH BU Application Server

Enterprise JavaBeans Überblick

Middleware im Vergleich

16 Migration von EJB 2.x nach 3.0

Architekturen Internet-basierter Informationssysteme

J2EE-Praktikum. Enterprise JavaBeans Patterns. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

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

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

Zwischenbericht Großer Beleg

Enterprise Java Beans Einführung

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Transaction Processing Teil 1

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Enterprise JavaBeans 2.0

Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI

Internet-Datenbanken

WebSphere Application Server Installation

Enterprise JavaBeans Überblick

Programmierung von Client/Server- Anwendungen

2 Konzepte und Modelle verteilter Kommunikation

Was ist J2EE? J2EE standardisiert den Zugriff auf: Datenbanken Message Oriented Middleware (MOM) Legacy und Backend-Systeme

Geschäftskomponenten mit EJBs

Inhaltsverzeichnis. Zusammenfassung Verteilte Systeme (Luthiger)

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Java 2 Enterprise Edition

Transkript:

Kapitel 9 ebusiness-plattformen am Beispiel von J2EE Inhalt Einführung J2EE Überblick Architekturmodelle Enterprise Java Beans (EJBs) Web-Komponenten Zusammenfassung Middleware für Verteilte IS 9-1

Einführung Anforderungen an ebusiness-systeme: ecollaboration Interoperabilität Verfügbarkeit Durchsatz geringe Kosten Systementwicklung Vertreter Verwaltung/Administration/Wartung Unit-of-Work Skalierung Microsoft s.net Sun s Java 2 Enterprise Edition (J2EE) dient im folgenden als Beispiel offene Spezifikation bedeutendste Produkte (zusammen etwa 60% Marktanteil): - IBM s WebSphere und BEA s WebLogic.NET/MTS vs. J2EE/EJB Vergleichsinfo: - Roger Sessions: Java 2 Enterprise Edition (J2EE) vs..net Platform - Two Visions for ebusiness (WP!) - Gopalan Suresh Raj: A Detailed Comparison of Enterprise JavaBeans (EJB) & The Microsoft Transaction Server (MTS) Models Middleware für Verteilte IS 9-2

Überblick - J2EE (1) Client Applikationslogik Daten (X)HTML/XML Servlets JDBC (O)RDBS JSPs Connector EIS RMI/IIOP JNDI JTA JAF JMS JDBC JavaMail JNDI Applet Entity Beans Session Beans Message- Driven Beans JMS Directory Services Message Queue Client- Application RMI/IIOP JNDI JTA JAF JMS JDBC JavaMail RMI RMI/IIOP Java Application CORBA Middleware für Verteilte IS 9-3

Überblick - J2EE (2) Technologien Komponenten-Technologien Web-Komponenten - Java Server Pages (JSPs) - Servlets Enterprise Java Beans (EJBs) Service-Technologien Java Transaction API (JTA) Java DataBase Connectivity (JDBC) Java Naming and Directory Service (JNDI) Java Message Service (JMS) JavaMail Java Connector Architecture Java Authentication and Authorization Service (JAAS) Kommunikationstechnologien Internet Protokolle - HTTP, TCP/IP, SSL Remote Object Protocols - Java RMI, RMI/IIOP, Java IDL Middleware für Verteilte IS 9-4

Container-Begriff Überblick - J2EE (3) allgemeine Dienste einer Laufzeitumgebung Weiterleitung von Client-Anfragen an Komponenten einheitlicher Zugang der Komponenten zu Technologien und APIs Declarative Services generische Implementierung von Komponenten Konfiguration bei Einbindung (Deployment) - Beispiel: transaktionales Verhalten Deployment-Begriff für EJBs Implementierung einer EJB betrifft lediglich Aspekte der Geschäftslokgik deklarative Spezifikation der technischen Aspekte Konfiguration der technischen Aspekte hinsichtlich einer konkreten Anwendung durch Deployment Descriptor transaktionales Verhalten Sicherheit/Zugriffssschutz Bezeichner/Typeigenschaften Beziehungen... Middleware für Verteilte IS 9-5

Architekturmodelle (1) Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-6

Mehrebenen-Anwendung Architekturmodelle (2) Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-7

Web-basierte Anwendung Architekturmodelle (3) Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-8

Architekturmodelle (4) Standalone-Client I Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-9

Architekturmodelle (5) Standalone-Client II Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-10

Architekturmodelle (6) Standalone-Client III Client Tier Middle Tier (J2EE-Server) EIS Tier Browser Standalone Client Middleware für Verteilte IS 9-11

Enterprise JavaBeans (1) Mehrebenen Client/Server-Modell Stufe 1 Stufe 2 Stufe 3 Client EJB-Server Enterprise Bean Enterprise Bean Enterprise Bean DB Datei- System (Alt-) Anwendung Middleware für Verteilte IS 9-12

Enterprise JavaBeans (2) Session, Entity und Message-driven Beans Applikationsserver Client Session Geschäftslogik Entity Datensätze Message-driven Middleware für Verteilte IS 9-13

Enterprise JavaBeans (3) Enterprise Java Bean (EJB) nach EJB-Spezifikation entworfene Komponente besteht aus (ejb-jar file): einer Klasse, die die Geschäftslogik implementiert einem Remote-Interface, das die Methoden beschreibt einem Life-Cycle-Interface einem Deployment-Deskriptor einer Primary-Key-Klasse, die persistente Bean-Objekte eindeutig referenziert Grundtypen Session Beans realisiert geschäftl. Aktivität/Prozess zustandslos (stateless), bzw. flüchtiger Zustand (stateful) für die Dauer einer Session (conversational state) Entity Beans repräsentiert (dauerhaftes) Geschäftsobjekt/-konzept persistenter Zustand Primary-Key ermöglicht eindeutigen Zugriff Message-driven Beans asynchron, botschaftenorientiert (JMS) erleichtert Intergration mit existierenden Anwendungen Middleware für Verteilte IS 9-14

Entity Beans Enterprise JavaBeans (4) Persistenz Bean-Managed Persistence (BMP) - Callback-Methode, mit der Container Bean anzeigt, Zustand zu speichern - Datenbankzugriffe sind Teil des Beans - Nutzung vor allem bei Legacy-Systemen bzw. komplizierter DB-Anbindung Container-Managed Persistence (CMP) - Container sichert Zustand zu bestimmten Zeitpunkten - Zuordnung von Bean-Attributen zu DB-Strukturen in Deployment-Phase - Bean-Programmierer muß sich kaum mit dem Persistenzmechanismus auseinandersetzen Session Beans nicht persistent, können jedoch persistente Daten manipulieren beispielsweise Nutzung zur Reduzierung des Nachrichtenaufkommens sinnvoll zustandslose Session-Bean: Zustand nur für einen Methodenaufruf zustandsbehaftete Session-Bean: Zustand über Methodenaufrufe hinweg Zuordnung von Bean-Instanz zu Client notwendig Middleware für Verteilte IS 9-15

Enterprise JavaBeans (5) Deployment EJB ist Server-unabhängig Erinnerung: Anpassung an die Spezifika des Servers Bekanntmachung der Klassen und Interfaces Verbinden von Bean-Attributen mit DB-Strukturen Konfiguration bzgl. Transaktionsverwaltung Konfiguration bzgl. Sicherheit Setzen von Umgebungsvariablen Erzeugung von Glue-Code Deployment Descriptor XML-Datei, entsprechende DTD wird vorgegeben Beschreibung von: - Typ, Name - Persistenzart - Klasse, Interfaces, Primary-Key - persistente Felder bei Container-Verantwortlichkeit - Umgebungsvariablen, benötigte Ressourcen (DBS, etc.) - Referenzen zu den Home-Interfaces von benutzten EJBs - Transaktionsparameter der einzelnen Methoden - Referenzen auf Sicherheitsrollen Middleware für Verteilte IS 9-16

Enterprise JavaBeans (6) Transaktionale Eigenschaften programmatic vs. declarative transaction demarcation Transaktionsattribute für Methoden im Deployment Descriptor: Transaktionsattribute Client-Transaktion Transaktion in Methode NotSupported keine keine T1 keine Supports keine keine Required keine T2 RequiresNew keine T2 Mandatory keine Fehler Never keine keine T1 T1 T1 T1 T1 T1 T1 T2 T1 Fehler explizite (programmatische) Demarkation von Transaktionen durch Client, Beans: Nutzung des Java Transaction APIs (JTA) UserTransaction Objekt bereitgestellt durch JNDI (oder EJB Kontext) nicht erlaubt für EntityBeans Middleware für Verteilte IS 9-17

Enterprise JavaBeans (7) Zugriff auf XA-kompatible Ressourcen Java-Anwendung oder Applikationsserver DB i JDBC JMS javax.transaction.transactionmanager Ressourcenmanager Ressourcenmanager (RM) Ressourcenmanager (RM) (RM) Transaktionsmanager (TM) javax.transaction.xa. XAResource DB k Server für Nachrichtenwarteschlange Middleware für Verteilte IS 9-18

Grobarchitektur von JTS Enterprise JavaBeans (8) (EJB-) Applikationsserver Ressourcen- Adapter Ressourcenmanager (RM) JTS Transaktionsmanager (TM) JTS oder OTS Transaktionsmanager (TM) Middleware für Verteilte IS 9-19

Interoperabilität von JTS und OTS Enterprise JavaBeans (9) Ressourcen adapter (EJB-) Applikationsserver Ressourcenmanager (RM) javax.transaction.transactionmanager javax.transaction.xa.xaresource JTS Transaktionsmanager (TM) JTA Java- Mapping von CORBA org.omg.costransactions JTS oder OTS Transaktions manager (TM) Middleware für Verteilte IS 9-20

Enterprise JavaBeans (10) Neuerungen in EJB 2.0 EJB-Query-Language SQL-92-ähnliche Anfragesprache Message-driven Beans auch asynchroner Empfang von Nachrichten (im Rahmen von Point-to-Point- oder Publish/Subscribe- Messaging, die durch JMS unterstützt werden)... CORBA nach Einführung und raschem Markterfolg von EJBs in Zugzwang geraten enthält nun CORBA Component Model (CCM) als Middle-Tier-Infrastruktur übernimmt Konzepte, die sich bei EJB bewährt haben Unterscheidung zwischen Implementierung und Deployment Container (Transaktionen, Persistenz, Zugriffsschutz, Ereignisse) Interoperabilität mit EJBs Vorteil: CORBA-Komponenten können in mehreren Programmiersprachen realisiert werden Middleware für Verteilte IS 9-21

Web-Komponenten (1) Dynamische Erzeugung von Web-Seiten Servlets Beispiel: import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession ses = req.getsession(); RequestDispatcher disp = req.getrequestdispatcher(); if (ses.getattribute("name")==null) { disp.forward(resp.encodeurl("/login"); } else { //... resp.getwriter().println( "Hallo "+ses.getattribute("name")); disp.include("/template/banner.html"); } } } Eigenschaften besseres Leistungsverhalten im Vergleich zu CGI - leichtgewichtige Prozesse - einmaliges Laden und Starten unkomfortable Behandlung der Ausgabe Vermischung von Präsentation und Logik Middleware für Verteilte IS 9-22

Web-Komponenten (2) Java Server Pages (JSPs) HTML-Seiten mit eingebettetem Java-Kode zur dynamischen Generierung von Inhalten Trennung von Präsentation und Logik einfach nutzbar basiert auf Servlet-Technologie Elemente statischer Text: JSP-Skriptelemente <H1>Welcome</H1> - Ausdrücke: <%= clock.getdayofmonth() %> - Skripte: <% } else { %> - Deklarationen: <%! void dosomething() { donothing(); } %> Direktiven: <%@ include file="copyright.html" %> Aktionen: <jsp:usebean id="clock" class="calendar.jspcalendar" /> implizite Objekte: <% x = session.getattribute("xvalue") %> Middleware für Verteilte IS 9-23

Java Server Pages (JSPs, Forts.) Web-Komponenten (3) Beispiel <HTML> <%@ page language="java" imports="com.wombat.jsp.*" %> <jsp:usebean id="clock" class="calendar.jspcalendar" /> <H1>Welcome</H1> <P>Today is </P> <UL> <LI>Day: <%= clock.getdayofmonth() %> <LI>Year: <%= clock.getyear() %> </UL> <% Calendar c = Calendar.getInstance(); if (c.get(calendar.am_pm) == Calendar.AM) { %> Good Morning <% } else { %> Good Afternoon <% } %> <%@ include file="copyright.html" %> </HTML> Middleware für Verteilte IS 9-24

Zusammenfassung 3-Tier-Architekturen setzen sich für ebusiness- Systeme durch ebusiness-plattformen J2EE Familie von Spezifikationen, kontrolliert durch SUN sprachabhängig, auf Java zugeschitten wesentliche Technologien in der Middle-Tier-Infrastruktur: EJBs, Servlets/JSPs plattformunabhängig.net Familie von Produkten sprachunabhängig(er als J2EE) plattformabhängig (Windows) bislang zu wenige Erfahrungen zur Beurteilung hinsichtlich initial angeführter Anforderungen? Entwicklungskosten Verwaltungs/Administrations-/Wartungskosten Skalierbarkeit Interoperabilität Middleware für Verteilte IS 9-25