Traditione le Entwicklung: Anpassung und Auslieferung von Software Produkten. Prof.Dr.Frank M.Thiesing Frank.Thiesing@FH-Dortmund.de 30.



Ähnliche Dokumente
Java 2, Enterprise Edition Einführung und Überblick

Der lokale und verteilte Fall

Mobile und Verteilte Datenbanken

Softwareentwicklung mit Enterprise JAVA Beans

Janeva:.NET meets J2EE

CORBA. Systemprogrammierung WS

Warum EJB Technologie (1)?

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

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

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

ORACLE Business Components for Java (BC4J) Marco Grawunder

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

4.2 Workshop EJB. Entwicklung von EJB-Anwendungen

SE2-10-Entwurfsmuster-2 15

-Testen verteilter Anwendungen

Janeva:.NET meets J2EE

Themen. Web Service - Clients. Kommunikation zw. Web Services

Anwendung eines Enterprise Java Beans

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

Entwicklung von Web-Anwendungen auf JAVA EE Basis

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

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

Internetanbindung von Datenbanken

Enterprise Java Beans

Java Enterprise Architekturen Willkommen in der Realität

Client/Server-Programmierung

Client/Server-Programmierung

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

Java-Programmierung. Remote Method Invocation - RMI

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

Application Server Application Server: Motivation Application Server: Begriff

Enterprise Java Beans (EJB)

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

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

Programmieren in Java

Übungen zu Softwaretechnik

EJB jar.xml und Name Service (JNDI)

Schritt 4: Hallo Enterprise Bean

Prinzipien Objektorientierter Programmierung

Mobile und Verteilte Datenbanken

Jürgen Schwab, debis Systemhaus

Java Beans ( )

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

Große Übung Praktische Informatik 1

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

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

Enterprise Java Beans Einführung

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Client/Server-Systeme

Factory Method (Virtual Constructor)

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Remote Method Invocation

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Softwareentwicklung mit Enterprise JAVA Beans

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Workflow, Business Process Management, 4.Teil

Clustering von Application Servern am Beispiel von JBoss 3.2

Java: Vererbung. Teil 3: super()

Programmiermethodik. Übung 13

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

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

Kurzfassung der Studienarbeit

EJB3.0 Unit-Testing Reloaded

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Softwareentwicklung mit Enterprise JAVA Beans

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Modul 2: Grundlegende Managementkonzepte

Der IBM Websphere Portalserver

Einführung in Eclipse und Java

Zwischenbericht Großer Beleg

Microsoft SharePoint 2013 Designer

16.4 Wiederverwendung von COTS-Produkten

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server 5.0

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

SEP 114. Design by Contract

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

ObjectBridge Java Edition

AVID-Übung 3. EJB mit JBoss und Eclipse. 17. Juni Andreas I. Schmied Abteilung Verteilte Systeme Projektgruppe AspectIX

Konfiguration und Deployment einer hochverfügbaren ADF Anwendung

Pragmatik von Programmiersprachen

Web- Applikationen. in Java-Web

Programmierung mit Komponenten

Integrating Architecture Apps for the Enterprise

Softwareentwicklung mit JAVA EE

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Objektorientierte Programmierung

Transkript:

Traditione le Entwicklung: Anpassung und Auslieferung von Software Produkten Prof.Dr.Frank M.Thiesing Frank.Thiesing@FH-Dortmund.de 30.März 2004 Seminar Komponentenorientierte Softwareentwicklung und Hypermedia Modulare Applikation Modifikationen haben unvorhersehbare Effekte Erneutes Testen der gesam ten Applikation notwendig nach jeder kleinen Änderung Eine kleine Änderung erfordertdie Auslieferung der gesam ten Anw endung Änderung eines Moduls Änderung betrifft mehrere Module Ganze Applikaton neu ausliefern 30.03.2004 Prof.Dr.Frank M.Thiesing 3 Rechenzentrum Bank Strukturierte Programmierung W iederverw endung: Proceduren Proprietäres Protoko l 88 Softwareprodukte mit 18713 Programmen in verschiedenen Sprachen und 5201 Datenbanken in 652 Modulen bei 400 Entwicklern. Ca.600 Banken m it ca.60.000 Arbeitsplätzen 30.03.2004 Prof.Dr.Frank M.Thiesing 2 Modulare Programmierung Objektorientierte Programmierung Trennung von Schnittste le und Im plem entation Kapselung von Daten und Funktionalität Inform ation Hiding durch Abstrakte Datentypen Klassen 30.03.2004 Prof.Dr.Frank M.Thiesing 4

Entwicklungskosten Heutige Softw areentw icklung ist schw ieriger und teurer denn je Verteilte Systeme, heterogene Plattformen, Internet, E-commerce, Workflow, Verteilte Transaktionen, Multi-Plattform, Multi-Channel, Internationalisierung, Complexity Gap 1970 1980 1990 2000 Traditionelle Systeme Traditione lgehen über 80% der Gesam tkosten eines Softw areprojekts in W artung und Erw eiterung.(herzum ) 30.03.2004 Prof.Dr.Frank M.Thiesing 5 Ein in sich abgeschlossenes Stück Software m itwohldefinierten Schnittste len. Eigenständig lauffähig und auslieferbar. Einfach mitanderen Kom ponenten zu kom binieren und kom ponieren,um eine brauchbare Funktionalitätbereitzuste len. W iederverw endbar! Separation ofconcerns= Trennung von Zuständigkeiten Software by Lego: 30.03.2004 Prof.Dr.Frank M.Thiesing 7 Komponentisierte Applikation Die Lösung: kom ponentenbasierte Softw areentw icklung Kleine Änderung betriffteine Kom ponente M odifikationen haben vorhersehbare Ausw irkungen UnterstütztAbw ärtskom patibilitätund M igration Testen beschränktsich aufbetroffene Kom ponente Nur betroffene Kom ponenten werden ausgeliefert Änderung einer Komponente Änderung betrifft eine Komponente Nur modifizierte Komponente neu ausliefern 30.03.2004 Prof.Dr.Frank M.Thiesing 6 Microsoft: COM,ActiveX,DCOM,COM +,.NET ObjectM anagem entgroup (O M G ) CORBA Sun Java Beans Enterprise Java Beans 30.03.2004 Prof.Dr.Frank M.Thiesing 8

Wie interagieren Kom ponenten aufverschiedenen Rechnern Plattform en Betriebssystem en Programmiersprachen? CO RBA beschreibtschnittste len in einer standardisierten, plattform übergreifenden Sprache: IDL Definition Language CO RBA ist M iddlew are. 30.03.2004 Prof.Dr.Frank M.Thiesing 9 Moderne Businessanw endungen so len kom plexe Anforderungen handhabbar machen in Sinne von: Fähigkeitzu Änderungen,Custom izing,w eiterentw icklung,w iederverw endung, Skalierbarkeit,Time to Market,Einbindung von Frem dsoftware Abbildung der Businessobjekte aufkom ponenten: s Z.B.: Kunde,Konto,Produkt Sitzungskontext(Session) Unterstützung unterschiedlicher Vertriebsw ege: Web-,Java-,B2B Kom ponentenentwickler so len sich auffachlichkeitkonzentrieren können,nicht auftechnik! 30.03.2004 Prof.Dr.Frank M.Thiesing 11 *Enterprise Application Integration z.b.in Java Anwendung 1) Aufruf IDL Stub Server Objekt 5) Auspacken und Aufruf IDL Skeleton 4b) Aktivieren z.b.in COBOL- IM S-Um gebung Web Com ponents (Servletsund JSP) J2EE Application Server W eb-container Servlet JSP Web Brow ser 2) Parameter einpacken und Aufruf weiterleiten 4) Weiterleiten an Schnittstelle Session Bean 3) Transport über den ORB (IIOP) Object Adapter Object Request Broker Datenbank Business com ponents () Custom er EntityBean Product EntityBean -Container Account EntityBean Java 30.03.2004 Prof.Dr.Frank M.Thiesing 10 30.03.2004 Prof.Dr.Frank M.Thiesing 12

sind Java-Klassen,die -Konventionen genügen,z.b. bestimmte s implem entieren können nur innerhalb des -Application-Serverbenutzt m üssen beim -Server registriertwerden (D eploym ent) Trennung von fachlicher Funktionalitätund technischen Basisdiensten: Entw ickler verantw ortlich für Geschäftslogik Application-Serververantw ortlich für Lifecycle-M gt.,transactions,security,autorisierung, Load Balancing,einfache Persistenz (inkl.o -R-M apping), 30.03.2004 Prof.Dr.Frank M.Thiesing 13 Remote : Home : Object public interface Converter extends Object { public BigDecimal dollartoyen(bigdecimal dollars) throws RemoteException; public BigDecimal yentoeuro(bigdecimal yen) throws RemoteException;} Home public interface ConverterHome extends Home { Converter create() throws RemoteException, CreateException;} Instance 30.03.2004 Prof.Dr.Frank M.Thiesing 15 Entity Beans: Sind datentragende Geschäftsobjekte mitpersistenten Attributen,die Container-oder Bean-M anaged persistentgem acht werden; z.b.kunde,konto. Kapseln den Datenzugriff W erden von m ehreren s para lelgenutzt (Transaktionen) Session Beans: Für Geschäftsprozesse,d.h.Methoden,die kom plexere Aufgaben ausführen,z.b.eine Transaktionsklammer bilden Besitzen keine persistenten Attribute StatefulSession Beans für Session Tracking,z.B.Einkaufskorb 30.03.2004 Prof.Dr.Frank M.Thiesing 14 Instance public class ConverterBean implements SessionBean { BigDecimal yenrate = new BigDecimal("121.6000"); BigDecimal eurorate = new BigDecimal("0.0077"); public BigDecimal dollartoyen(bigdecimal dollars) { BigDecimal result = dollars.multiply(yenrate); return result.setscale(2,bigdecimal.round_up); } public BigDecimal yentoeuro(bigdecimal yen) { BigDecimal result = yen.multiply(eurorate); return result.setscale(2,bigdecimal.round_up); } } 30.03.2004 Prof.Dr.Frank M.Thiesing 16

JNDI 2 lookup 3 5 create bean-methods: dollartoyen() yentoeuro() Naming Service Home Remote 1 Home newinstance 4 Object ejbcreate Deployment Descriptor 6 bean-methods Jar Instance Applikationserver/-Container -Provider -Home -Remote Bean Class Deployment Descriptor Compile.xml.class files.ear file -Deployer 30.03.2004 Prof.Dr.Frank M.Thiesing 17 30.03.2004 Prof.Dr.Frank M.Thiesing 19 public class Converter { public static void main(string[] args) { try { Context initial = new InitialContext(); 2 Context myenv = (Context)initial.lookup("java:comp/env"); Object objref = myenv.lookup("ejb/simpleconverter"); ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(objref, ConverterHome.class); 3 Converter currencyconverter = home.create(); BigDecimal param = new BigDecimal ("100.00"); 5 BigDecimal amount = currencyconverter.dollartoyen(param); System.out.println(amount); 5 amount = currencyconverter.yentoeuro(param); System.out.println(amount); System.exit(0); } catch (Exception ex) {ex.printstacktrace();}}} 30.03.2004 Prof.Dr.Frank M.Thiesing 18.ear.xm l Jar Deployment Descriptor 30.03.2004 Prof.Dr.Frank M.Thiesing 20

Web- Rechenzentrum J2EE Application Server Web Container HTTP Bank Container ObjectRequestBroker J2EE- Server 30.03.2004 Prof.Dr.Frank M.Thiesing 21 Legacy-Anw endung IIO P Ca.600 Banken, B2B-Partner und W WW 30.03.2004 Prof.Dr.Frank M.Thiesing 23 UI- Fachkonzept- Datenhaltungsschicht 30.03.2004 Prof.Dr.Frank M.Thiesing 22 Ein Softw are-paradigm a,dass über OO hinausgeht. Kom ponenten = Objekte + Verteilungsinfrastruktur. Program m ing in the Large für echte Businessanw endungen. W iederverw endung von vorhandenen Softw areteilen. EAI: M igration von Altanw endungen. M achtkom plexe Softw areanw endungen beherrschbar, w artbar,w eiterentw ickelbar,fehlerarm und kosteneffizientbei gleichzeitiger Skalierbarkeitund Plattform unabhängigkeit. O rganisatorisch: EntkoppeltEntwicklerteam s. Istdie Zukunftder Softw areentwicklung für Businessanw endungen im heterogenen Um feld unter Einbindung von Frem dsoftware. 30.03.2004 Prof.Dr.Frank M.Thiesing 24

Frank Griffel: Com ponentware,dpunkt.verlag 1998 Peter Herzum,Oliver Sims: Business Com ponent Factory,W iley 2000 Heide Balzert: Lehrbuch der Objektmodelierung, Spektrum 1999 CORBA,z.B.ORBacusvon IO N A: http://www.orbacus.com/ oder http://www.iona.com/products/orbacus_home.htm -Beispielim J2EE-Tutorial: http://java.sun.com/j2ee/download.html 30.03.2004 Prof.Dr.Frank M.Thiesing 25