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