Artikel Java Spektrum 8/99 - Ein Nachdruck aus JavaSPEKTRUM 5/99 Alles im Griff
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Artikel Java Spektrum 8/99 Ein Nachdruck aus JavaSPEKTRUM 5/99 Alles im Griff TopInfo – Geschäftssteuerung mit Java und CORBA T.Schönauer, R.Weinzierl und H.Wittmann "Information als Wettbewerbsfaktor zu nutzen ..." ist eine vielzitierte Aussage, die hohe Nutzenpotentiale verspricht, die aber nicht gerade einfach zu erschließen sind. Der vorliegende Artikel informiert über die Erfahrungen bei der Implementierung des web-basieden, geschäftsprozeßorientierten Informationssystems TopInfo, das bei Siemens für die projekteübergreifende Geschäftssteuerung eingesetzt wird. Aufgrund modernster Java/CORBA-Technologie ist TopInfo ein flexibles Instrument bei der weltweiten Nutzung durch die beteiligten Projektteams. Unternehmen der Telekommunikationsindustrie werden durch den globalen Wettbewerb gezwungen, die strategischen Geschäftsvorgaben immer schneller und präziser in operative Maßnahmen umzusetzen, um die kurzfristige Ergebniserwartung und den langfristigen Erfolg des Unternehmens sicherzustellen. Ein wesentlicher Bestandteil ist die Umsetzung der Produktstrategie in neue Produkte und Dienstleistungen. In der kundenorientierten Unternehmensführung kommt darüber hinaus dem umfassenden Führen durch Projekte zusätzlich zu der operativen Umsetzung in Form von Projekten eine zentrale Bedeutung zu. Informationssysteme, wie z. B. das hier vorgestellte TopInfo, stellen, unter Nutzung modernster Java/CORBA-Technologie, flexible Instrumente für die Geschäftssteuerung dar. Der vorliegende Artikel informiert über die Erfahrungen in der Produktrealisierung im Siemens-Geschäftsbereich "Information and Communication Networks" (Abk. ICN). Dieser Geschäftsbereich mit ca. 63.000 Mitarbeitern und einem Umsatz von 25 Mrd. DM ist der Weltmarktführer für Kommunikations- und Vermittlungssysteme. Die Absatzmärkte sind weltweit auf etwa 160 Länder mit ca. 600.000 Kunden verteilt. Die besonderen Herausforderungen der Produktentwicklung für ICN liegen im sich dramatisch ändernden Geschäftsumfeld auf den internationalen Informations- und Telekommunikationsmärkten. Wesentliches Merkmal ist das Auftreten von konvergenten Strömungen und Trends auf den Märkten, bei Technologien, Anwendungen und Kunden. 90% der verkauften Produkte und Dienstleistungen sind nicht älter als zwei Jahre. Die nachfolgend beschriebene Methode der Informationsunterstützung zur Geschäftssteuerung - TopInfo - wurde im Geschäftszweig "Enterprise Switching Networks" (einem Teilbereich von ICN) konzipiert und in Zusammenarbeit mit dem Systemhaus F&F Computeranwendungen und Unternehmensberatung GmbH, München, zur produktiven Nutzung geführt. Aufgrund der flexiblen Java/CORBA-Architektur wird das System mit geringem Customizing mittlerweile in anderen Siemens-Bereichen eingesetzt. Ausgangssituation Vor Einführung von TopInfo blieb die systematische Unterstützung der Projektsteuerung auf vergleichsweise wenige ausgewählte Projekte beschränkt. Durchgeführte Prozeßanalysen ergaben jedoch, daß • alle Projekte erfaßt (von der Projektplanung bis zur Projektberichterstattung) und unterstützt werden sollen • die Projekte einer gleichartigen Systematik (jedoch abhängig von der Projektgröße, -komplexität und Ergebniswirkung) mit einem Plan-/Prognosekonzept zur vorausschauenden Steuerung unterzogen werden sollen, • alle Projektinformationen eindeutig und weltweit über das Siemens Intranet zugreifbar für die Projektbeteiligten und Entscheider bereitgestellt und verwaltet werden sollen, • das Projektergebnis - also das Produkt - mit der zugehörigen Produktinformation, zum Beispiel die Produktverfügbarkeit in einer Region, ebenfalls eindeutig verwaltet werden muß. Darüberhinaus wurde schnell ersichtlich, daß relativ heterogene Anwenderguppen mit unterschiedlichen Bedürfnissen und Sichtweisen unterstützt werden mußten, • vom Entscheider, der als sporadischer Nutzer nur an stark aggregierter Information, zum Beispiel dem Projektstatus interessiert ist, • über den Projektbeteiligten, der Detailinformationen beispielsweise von korrespondierenden Projekten benötigt und auch für die Pflege der Terminformationen und der Projektberichte verantwortlich ist, FA-Java-Spektrum-BB.doc 1 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 • und dem Vertriebsbeauftragen in den Vertriebskanälen und Regionen, der an Produktankündigungen, -freigaben und Ansprechpartnern für ein Produkt interessiert ist, • bis hin zum Benutzeradministrator, der die gesamte TopInfo-Funktionalität für Administrationsaufgaben nutzt. Anforderungen Zusammengefaßt wurde also ein zukunftssicheres und flexibles Steuerungsinstrument benötigt, das die Beantwortung folgender Fragen unterstützt: • Produktkatalog: Welche Produkte werden bis wann benötigt, um die strategischen Vorgaben (Geschäfts- und Produktstrategie) erfüllen zu können (meet customer and market opportunities ...)? • Produktverfügbarkeit: Wann, in welchem Produkt und in welcher Region ist der Kundenwunsch bzw. die erwartete Geschäftsmöglichkeit realisiert? • Ansprechpartner: Welche Personen/Teams sind verantwortlich? • Eskalation durch Ampelstatus: In welche Projekte muß steuernd eingegriffen werden? Das Informations- und Kommunikations-Konzept hatte damit zwei grundlegende Komponenten zu berücksichtigen. Einmal die geschäftsprozeßbezogene Komponente mit Produktivfunktionen für die Bereitstellung und Pflege der Informationen, wie Meilensteintermine, Berichte usw. und zusätzlich eine Informationskomponente für die einheitliche Darstellung und Aggregation der geforderten Steuerungsinformationen. Das Konzept wurde als TopInfo (Top: time optimized processes und Info: für Informationssystem) bezeichnet. Im Hinblick auf die Anforderungen an die TopInfo-Systemarchitektur standen im Vordergrund • Web-basiertes System, das heißt Nutzung vorhandener Internetstandards, zum Beispiel vorhandene Browser für die weltweite Nutzung des Systems mit einfacher SW-Versorgung • Objektorientierung und modulares Konzept, um die notwendige Flexibilität, zum Beispiel für Benutzeroberflächen, Skalierbarkeit und die Realisierung neuer Anforderungen zu erhalten Nachfolgend wird der aktuell verfügbare Implementierungsstand beschrieben. Unterstützung der Geschäftsprozesse TopInfo unterstützt den Produktprozeß, von der Produktplanung bis zum Produktauslauf. Die Modellierung der notwendigen Geschäftsobjekte (Projekt, Produkt, Team, ..) konnte dabei im wesentlichen aus der vorhandenen Prozeßdokumentation abgeleitet werden. Abb.1 zeigt den prinzipiellen Zusammenhang. Produktprozess Vermarktungsprozess Kunde Definition Teams Realisations Teams Definitionsprozess Realisierungsprozess *) Request / Idee Paket Projekt Produkt Projekt Projekt Übersicht Status bericht bericht Beschreibung TopInfo Requests Meilensteine Verfügbarkeit/Land TopInfo Teams Teams Teams Projekte Produkte Requests Kombination Korrespondenzen Anschaltbarkeit Meilenstein Meilenstein bericht bericht NetInfo NetInfo Request Dok. Paket Dok. Projekt Dok. *) Betreuungs- und Auslaufprozess Produkt Dok. Abbildung 1 Prozessübersicht FA-Java-Spektrum-BB.doc 2 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Assoziiert in einem Web Content und Document Management System (NetInfo) werden die zu den Projekten/ Produkten zugehörigen Dokumente in entsprechenden Projekt- und Produktablagen verwaltet. Aus Platzgründen wird jedoch an dieser Stelle hierauf nicht näher eingegangen. Navigation und Information Einfache Navigation Die TopInfo Benutzeroberfläche ist viergeteilt und zwar in die Kopf- und Fuß-/Statuszeile, den Navigator und den Detailbereich (s.Abb.2). Abbildung 2 TopInfo Benutzeroberfläche Neben der generischen Navigation in der Kopfzeile, wie login, back und forward-Funktionen, kann der Anwender über den Navigator die gewünschten Geschäftsobjekte über verschiedene Baumstrukturen aufzusuchen. So sind der Projekt- und der Produktkatalog aus der Organisations-, aus der Regionen- und Ländersicht navigierbar und der Produktkatalog zusätzlich noch aus der Produkthierarchie. Informationen zu den Objekten Zu jedem im Navigator selektierten Objekt werden im Detailbereich zugehörig die aggregierten oder weiterführenden Informationen dargestellt. • Empfängerorientierte Aggregation der wichtigsten Projektinformationen: Für Entscheider wird eine Aggregation der Projektstatus-Übersicht benötigt, die auf einen Blick den Status aller Projekte zur Verfügung stellt (s. Abb.2). Der Projektstatus gibt Aufschluß darüber, inwieweit die vorgegebenen Projektziele gefährdet sind. Dies wird über eine "Ampelanzeige" signalisiert, über die gegebenenfalls die Eskalation eingeleitet wird. • Detailinformationen zum Projekt: Wird ein bestimmtes Projekt im Navigator ausgewählt, so ist der Detailbereich wie in Abb.3 dargestellt aufgebaut. Die Informationen werden über Registerblätter nochmals untergliedert, um die Orientierung zu erleichtern. Die Datenpflege für Projektstatus, Projektberichte, Terminverwaltung (Plan / Prognose / Ist) usw. erfolgt dezentral durch die verantwortlichen Teams. FA-Java-Spektrum-BB.doc 3 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Abbildung 3 Projekt Detailinformationen • "Hypertext-Links" im Detailbereich: Zusätzlich besteht die Möglichkeit, über Hypertext-Links zu weiterführenden Informationen zu navigieren, sei es beispielsweise zu einem weiteren Geschäftsobjekt oder zur Anzeige weiterer Attribute. Berichte drucken Anwender sind in der Lage, über vordefinierte Berichte auch die gewünschten Informationen lokal zu drucken. Unter anderem wird automatisch eine Meilenstein Trend Analyse (MTA) basierend auf den vorhandenen Termindaten eines Projekts erzeugt. Geschäftsprozesse Projekte werden als Instanzen zentral definierter Prozeß-Schablonen erzeugt, um die Projektplanung zu unterstützen und die Prozeßkonformität für alle Projekte sicherzustellen. Dies garantiert die notwendige Flexibiltät bei Prozeßänderungen und ist auch für die projekteübergreifende Metrikerstellung zur Sicherstellung der benötigten Datenqualität eine notwendige Voraussetzung. Informationen zu allen Teams / Personen Projekte und Produkte werden von Teams fachlich geführt und verantwortet. Teams gruppieren beliebige Personen, die zusätzlich über Teamtypen, zum Beispiel "Realisierungsteam", "Coachingteam", ... kategorisiert werden können. Darüberhinaus bekleiden Personen im Team funktionale Rollen, zum Beispiel "Projektleiter Sales Marketing". Damit werden die Ansprechpartner für ein Projekt/Produkt bestimmt oder festgelegt, welche Person eine bestimmte Funktion in einem Projekt bekleidet bzw. an wen ein Projekt berichtet. Zusätzlich wird die Navigation über die Team-Hierarchie ermöglicht. Feingranulares Rechtekonzept Rechte werden individuell auf der Ebene von Geschäftsobjekten (Projekt, Produkt, ...) bzw. auf der Ebene spezifisch zu bestimmender Informationsbereiche (Berichte, Termine, ...) im Geschäftsobjekt definiert. Die Implementierung dieses flexiblen Rechtekonzepts ist notwendig, um die heterogene Anwenderlandschaft abbilden zu können. Die Rechtevergabe/ -pflege erfolgt durch vordefinierte Rechteprofile, um die dezentrale Pflege durch die verantwortlichen Teams zu erleichtern. Das heißt, ein Projektteam kann beispielsweise das Projekt in eigener Verantwortung unsichtbar machen oder es im Intranet für die Vertriebskanäle veröffentlichen (staging). Implementierung Bei den Design-Entscheidungen für TopInfo standen folgende Überlegungen im Mittelpunkt, die dann zur jetzigen 3-Schichten-Architektur mit CORBA-Kommunikation geführt haben: § Wegen der Stabilität, der größeren Skalierbarkeit und der zukünftig geplanten Integration mit Data Warehouse-Systemen wurde die relationale Datenbank Oracle 8 einer rein objektorientierten Datenhaltung vorgezogen. FA-Java-Spektrum-BB.doc 4 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 § Eine große Flexibilität in Hinblick auf zukünftige Schnittstellen machte einen Applikationsserver-basierten Ansatz notwendig. In Zukunft werden weitere Datenquellen (SAP-Datenbanken) und Dokumenten- Management-Systeme angebunden. Eine klare Trennung der Funktionen Datenhaltung, Anwendungs- Funktionalität und Benutzerinterface, die sich in der entsprechenden Schichtenarchitektur widerspiegelt, erleichtert die Integration dieser Datenquellen auf der Server-Ebene. § Der Client-Zugriff auf das zentrale System sollte über ein weltumspannendes Firmen-Netz (Intranet) ablaufen. Damit war der Einsatz von Internet-Technologie (Applet-Technologie und CORBA) die richtige Wahl. Wegen der heterogenen Systemlandschaft und der verschiedenen Browser (Netscape und Microsoft in unterschiedlichsten Versionen) mußte mit Hilfe des JavaPlugins von Sun eine einheitliche Basis für die Ausführung der Java-Programme geschaffen werden. § Die Entscheidung zum Einsatz von Java am Server fiel vor allem aufgrund der höheren Entwicklungs- Produktivität im Vergleich zu C++. Die TopInfo-Systemarchitektur ist in drei Schichtenangelegt, und zwar einer Oracle-Datenbank, einer Java- Mittelschicht und einem Client, der als Applet im Web-Browser läuft: § Das GUI auf dem Client ist mit Swing implementiert. Es kommuniziert mit den "Geschäftsobjekten" am Server über CORBA. § Die eigentliche fachliche Programmlogik, die Geschäftsobjekte, sind in der Mittelschicht in Java programmiert und über CORBA vom Client aus erreichbar. § Die zentrale Datenhaltung liegt in einer Oracle-Datenbank, wobei durch Views, Trigger und PL-SQL- Prozeduren in eingeschränkter Weise auch Programmlogik nahe am Datenbestand realisiert wurde. § Report-Genaratoren für Java waren zum Zeitpunkt der Architektur-Entscheidung noch nicht in ausreichender Qualität am Markt verfügbar. Daher wurde die Berichts-Generierung zusammen mit der GUI-Funktionalität im Client implementiert. GUI Reports Cache Präsentations- Client-Proxy Schicht CORBA-Schnittstelle CORBA/ IIOP CORBA-Schnittstelle Business- Rechte- Objekte Objekt Mittel- Schicht Zugriffsschicht JDBC SQL-Net PL-SQL-Code Datenbank- Oracle- Schicht Datenbestand Abbildung 4 TopInfo Systemarchitektur Wie in Abb.4 zu sehen ist, ist auch jede der drei Schichten intern weiter unterteilt. Die Schichtenarchitektur garantiert die größtmögliche Flexibilität für die Anbindung bestehender Systeme im Backend oder für die Implementierung alternativer Oberflächen, wie zum Beispiel von HTML-Servlets. In der TopInfo-Präsentationsschicht sind sowohl die graphische Benutzeroberfläche als auch die Generierung und das Drucken von Berichten implementiert. Die Datenversorgung läuft jeweils über den Client-Proxy zur CORBA-Schnittstelle. FA-Java-Spektrum-BB.doc 5 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Folgende Aufgaben werden von den jeweiligen Sub-Schichten implementiert: • Die CORBA-Schnittstelle (generierter Code) sorgt für die Umsetzung der CORBA-Aufrufe in das Netzwerkprotokoll IIOP (Internet Inter-ORB Protocol) und umgekehrt. • Der Client-Proxy leitet alle Aufrufe direkt weiter, erlaubt aber auch, direkt an der Kommunikationsschnittstelle einzugreifen (an dieser Schnittstelle wurde die Ausgabe von Trace- Ausgaben implementiert). • Der Cache in der Kommunikationsschicht wird nur für die Speicherung von Auswahllisten verwendet, da es Performance-kritisch ist, jeweils beim Öffnen einer Combo-Box die zugehörigen Werte von der Mittelschicht abzuholen. • Das GUI bezieht seine Daten aus dem Client-Cache und vom Client-Proxy. Es ist in Swing 1.03 implementiert und seine innere Struktur spiegelt die sichtbaren Komponenten. • Die Berichte werden über das GUI ausgewählt und direkt vom Client aus erzeugt, angezeigt und ausgedruckt. Technisch ist die TopInfo Präsentationsschicht als Applet implementiert, das im JavaPlugin von Sun entweder im Netscape Navigator oder im Microsoft Explorer ablaufen kann. Die Software-Verteilung des ca. 1 MB- großen Applets wurde durch ein Loader-Applet realisiert, damit immer die Verfügbarkeit der aktuellen Software-Version gewährleistet ist. Nun kommen wir zur Kommunikation der GUI-Komponenten. Die programmtechnische Aufteilung in Komponenten spiegelt die Aufteilung der Oberfläche in Navigator, Detailbereich, Toolbar und Status-Zeile wieder. Die verschiedenen GUI-Komponenten sind entkoppelt, der Navigator und die einzelnen Detailansichten kennen das darüberliegende Applet nicht. In Abb.5 wird gezeigt, wie die verschiedenen GUI-Elemente miteinander kommunizieren, wenn der Anwender ein Element im Navigationsbaum anklickt und dadurch die Detailansicht eines bestimmten Objekts angezeigt bekommt: 3: createDetail Applet View(objectType) DetailView (GuiEvent Factory Listener) 2: notify (treeSelectionEvent) 4: showId(projectId) Benutzer DetailView 1: Click Tree 5: showId(projectId) GeneralTab 6: getGeneralData(projectID) Project Factory TopInfo Client Abbildung 5 Kommunikation der GUI Komponenten Der Navigator und die Detail-Bereiche kommunizieren unter Einschaltung des Applets über sogenannte GUIEvents miteinander. Zu diesem Zweck ist das Applet beim Navigator und den Detailbereichen als GUIEventListener registriert. Nach dem Anklicken eines Knotens im Navigator (TreeSelectionEvent) wird der für diesen Objekttyp zuständige Detailbereich durch die DetailViewFactory erzeugt und aktiviert. Die DetailView reicht diese Aufforderung an den aktuellen Tab (hier GeneralTab) weiter, der daraufhin über den Client-Proxy die Daten anfordert und diese darstellt. Erfahrungen und Hinweise für den Umgang mit Java am Client Im Großen und Ganzen hat sich Swing als äußerst flexible und mächtige Bibliothek zur Entwicklung von graphischen Oberflächen herausgestellt. In Swing entwickelte GUIs brauchen den Vergleich mit Windows- Oberflächen in keiner Weise zu scheuen. FA-Java-Spektrum-BB.doc 6 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Folgende Kinderkrankheiten haben sich bei der Programmierung des Applets mit Swing 1.03 gezeigt: § Da der Mauszeiger sich nicht durch Komponenten vererbt, war die Implementierung eines allgemeinen Sanduhr-Cursors nicht möglich. Der Klick-Event von Java berücksichtigt minimale Mausbewegungen nicht und mußte deshalb von uns simuliert werden. Ebenso war die Eingabe von Sonderzeichen in Text- Felder mit der Taste "Alt Gr" nicht möglich. Daher mußten speziell im GUI-Bereich einige Workarounds implementiert werden. § Da das Drucken erst ab Swing 1.1 gut funktioniert, mußten wir beim Drucken auf das Abstract Window Toolkit (AWT) zurückgreifen. § Speziell unter Windows 95 gab es Abstürze des gesamten Systems, wenn beim Drucken von Berichten zu viele Panels verwendet wurden, da dadurch unnötig Windows-Ressourcen verbraucht werden, die unter Windows-95 begrenzt sind. Der TopInfo Applikationsserver Der Applikationsserver läuft als Java Applikation auf dem selben Rechner wie der TopInfo-Web-Server. Er greift über JDBC auf die Datenbank zu und stellt dem Client die fachlichen Anwendungsobjekte zur Verfügung. TopInfo () Login on Application Log Service get Server 1: rd ) swo pas er , (us gin 2: lo Logon t () ojec etPr 3: g 4: findProject(name) Client 8: getMilestoneReport(projectId) ProjectFactory 7: checkRights (projectCollection) Rights 5: requestData(filter) Service ProjectCollection Manager 6: select ... from project ... Datenbank Abbildung 6 Interaktionsdiagramm zum Client-Server Dialog Der Client nimmt die Kommunikation über eine Datei auf, in der die Objektreferenz (IOR) auf den Applikationsserver in textueller Repräsentation steht. Diese Datei wird über HTTP vom TopInfo Web-Server geladen und in eine CORBA-Objektreferenz vom Typ LoginService (s. Abb.6 ) konvertiert. Der Login-Service erzeugt ein Objekt vom Typ Logon, das die aktuelle Client-Session am Server repräsentiert, und übergibt dem Client die entsprechende Objektreferenz . Über den Logon können Factories wie PersonFactory, TeamFactory, ProjectFactory, und weitere erreicht werden. Sie sind session-gebunden und stellen Methoden zum Auffinden und Erzeugen von Objekten zur Verfügung (Factory-Muster). Einzelne Instanzen von fachlichen Objekten, wie Personen, Teams oder Projekte, werden als reine Datenstrukturen by-Value und nicht by-reference zum Client übertragen. Als reine Datenstrukturen bieten diese Objekte keine fachlichen Methodenaufrufe an. Diese Aufrufe sind statt dessen beiden zugehörigen Factories implementiert. Auf das Enterprise Java Beans-Framework übertragen, wären die TopInfo Factories zustandslose Session Beans. Alle Schichten der Applikation verwenden eine einheitliche, selbstbeschreibende Datenstruktur, um fachliche Objekte, bzw. Collections von fachlichen Objekten zu repräsentieren. Einzelne Objekte, zum Beispiel Teams, werden als sogennannte DataIds repräsentiert, bestehend aus einer eindeutigen ObjektId und einer Collection von Attributwerten, den DataItems. DataIds eines Typs werden zu einer DataCollection zusammengefaßt, zum Beispiel zu einer TeamCollection. Die TeamCollection enthält eine Strukturbeschreibung der enthaltenen Team-DataIds. FA-Java-Spektrum-BB.doc 7 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Die Verwendung einer einheitlichen und selbstbeschreibenden Datenstruktur macht es möglich, auf allen Ebenen der Programmierung Standardfunktionalitäten zu entwickeln: • DataCollections dienen als Modell-Klassen für Standard-GUI-Komponenten wie Tabellen, Auswahl- Listen, etc. • Basisklassen für den JDBC-Zugriff auf die Datenbank arbeiten mit DataCollections. • Ein eigener Algorithmus sorgt für die performante Serialisierung von DataCollections bei der Übertragung über das Netzwerk. • In der Basis-Klasse DataCollection können Utility-Methoden wie Suchen, Sortieren und Vereinigung von Collections implementiert werden. Aufgrund ihrer flexiblen Struktur und aufgrund der Vererbungsbeziehungen können DataCollections nicht auf CORBA-Datenstrukturen (“structs”) abgebildet werden (siehe Abschnitt "CORBA-Strukturen und Java- Objekte"). Für den Zugriff der TopInfo-Mittelschicht auf die Datenbank sorgt ein einfaches JDBC-Framework, das im Rahmen des Projekts entwickelt wurde. Das Framework ermöglicht es, das Mapping zwischen einer Collection und den zugeordneten Datenbanktabellen in einer Klasse (zum Beispiel TeamCollectionManager) zu beschreiben, und erzeugt mit Hilfe dieser Information dynamisch die SQL-Statements für lesende und schreibende Zugriffe. Die Berechtigungsprüfung findet getrennt vom Datenbankzugriff durch ein zentrales Rechte-Objekt statt. Auf Anforderung durch die Geschäftsobjekte prüft es für jedes gelesene oder zu schreibende Objekt die Berechtigungen des angemeldeten Benutzers. Aus Performance-Gründen muß das Rechte-Objekt alle Berechtigungsdaten in einem Cache halten, der periodisch aus der Datenbank aktualisiert wird. Das heißt, daß Rechte-Änderungen, die direkt auf der Datenbank bzw. durch eine zweite Mittelschicht durchgeführt werden, erst mit einer gewissen Verzögerung wirksam werden. Probleme und Erfahrungen mit Java am Server Java hat sich als außerordentlich stabile und flexible Plattform für die Server-Entwicklung bewährt, während die sicherlich vorhandenen Performanz-Nachteile gegenüber C++ auch wegen der Datenbank-Zugriffe keine Rolle spielten. Die TopInfo-Mittelschicht ist deshalb in reinem Java geschrieben. Insbesondere wurde auf den Einsatz von JDBC-Treibern verzichtet, die über das Java Native Interface (JNI) auf C-Bibliotheken zurückgreifen, wie den Oracle OCI-Treiber und den Weblogic JDBC-Treiber. Diese Treiber bieten zwar z.T. erheblich bessere Performance, haben aber Stabilitätsprobleme beim Multithreading und erhöhen den Aufwand für Installation und Test. Interessant war die Beobachtung, daß mit dem Borland JIT-Compiler unter Windows NT der in Java implementierte Thin-Treiber dem Oracle OCI-Treiber fast ebenbürtig war, während er unter JDK 1.6. in der TopInfo-Testumgebung bis zu 5 mal langsamer lief. Durch den Einsatz von reinem Java war es möglich, das System unter Windows-NT zu entwickeln und weitgehend zu testen, bevor es auf die Zielplattform (Solaris 2.6) ausgeliefert wurde. Es trat während der ganzen Entwicklungszeit nur ein einziger Betriebssystem-spezifischer Fehler auf, bedingt durch die niedrige Anzahl von File-Handles, die einem Prozeß defaultmäßig unter Solaris zur Verfügung stehen. Einfache Server-Installation durch Java Die TopInfo-Mittelschicht ist vollständig in Java geschrieben und benötigt keinen direkten Zugriff auf Betriebssystem-Ressourcen des Server-Rechners. Auch die CORBA-Bibliotheken und der Oracle-JDBC-Treiber liegen als Java-Archive vor und besitzen keine Abhängigkeiten vom darunterliegenden Betriebssystem. Es müssen einzig eine Java-Laufzeit-Umgebung und ein Web-Server vorhanden sein. Die Installation der Mittelschicht und der Installationsroutinen für das Applet besteht darin, einen Verzeichnisbaum, der die Serverklassen, das Server-Startsript, sowie die HTML-Files und Applet-Klassen für den Client enthält, auf den Zielrechner zu kopieren. Es muß nur im Server-Startskript der Oracle-Connect- String zur verwendeten Datenbank eingetragen werden. Der Server wird über ein Startskript hochgefahren, der Client über ein Mapping des Webservers zugänglich gemacht. Damit ist die Anwendung für jeden Benutzer, der Zugriff auf den Web-Server hat, benutzbar. Dies ist ein gegenüber anderen Entwicklungsplattformen kaum vorstellbarer Komfort. FA-Java-Spektrum-BB.doc 8 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 CORBA-Strukturen und Java-Objekte CORBA unterscheidet zwischen Interfaces, die Aufrufschnittstellen entfernter Objekte beschreiben, und Struct”, die ähnlich C-Structs die Struktur der übertragenen Daten beschreiben. Leider sind die Ausdrucksmöglichkeiten mit CORBA-Structs sehr beschränkt, es ist beispielsweise keine Vererbung möglich. Daher ist es nicht möglich, komplexere Strukturen, wie eine komplex zusammengesetzte Filter-Bedingung, oder die TopInfo-DataCollection als Parameter oder Rückgabewerte von CORBA-Aufrufen zu verwenden. Daher wird bei den CORBA-Aufrufen mit “extensible structs” gearbeitet, einer VisiBroker-spezifischen Erweiterung von CORBA, die es erlaubt, beliebige Java-Klassen über IIOP zu übertragen. Dies hat den Nachteil, daß nur Java-Clients über den VisiBroker mit der TopInfo Mittelschicht kommunizieren können. Dieses Problem wird sich aber mit dem neuen Standard CORBA 2.3 lösen, der auch die Übertragung allgemeinerer Datenstrukturen erlaubt. Ausblick: Servlets mit XML und XSL Durch Verwendung der 3-Schicht-Architektur können leicht weitere Anwendungen für spezifische Anwendungsfälle implementiert werden. Beispielsweise kann die TopInfo-Mittelschicht ihre Funktionalität zusätzlich zur bestehenden CORBA-Schnittstelle über HTTP/XML zur Verfügung stellen. Browser 1: Request 9: HTML-Page (XML) HTTP XML XSL 6: Datacollection 7: HTTP get Parser Styler (XML) HTTP Java Method Call Corba / XML Web-Server TI-Servlet Adapter 8: XSL-Stylesheet 2: Request ORB (XML) IIOP 3: Corba 5: Data Collection Request ORB Mittel- schicht JDBC Driver SQL* 4: SQL Net Statement Oracle Datenbank Abbildung 7 Servlet-Zugriff auf TopInfo Die XML-Daten, die auf diesem Weg geliefert werden, kann ein fortgeschrittener Anwender mithilfe von XSL- Stylesheets aufbereiten und grafisch darstellen. Die Darstellung erfolgt durch Server-seitige Konvertierung nach HTML direkt im Browser, bzw. alternativ zu HTML können auch andere Formate wie TeX oder RTF erzeugt werden. Dazu wurde ein Java-Servlet entwickelt, das eine HTTP/XML-Schnittstelle für den Zugriff auf die TopInfo- Mittelschicht zur Verfügung stellt. Damit wurden die in TopInfo verwendeten Datenstrukturen und die Aufrufschnittstelle der CORBA-Mittelschicht auf XML-Strukturen abgebildet, und ein Konverter geschrieben, der zwischen XML und CORBA übersetzt. Das Servlet kann als zusätzliche Funktionalität ein XSL-Stylesheet laden, und daraus eine HTML-Darstellung der XML-Daten erzeugen. FA-Java-Spektrum-BB.doc 9 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Abbildung 8: TopInfo Produktkatalog Anwendungen, wie ein Produkt-Katalog (s. Abb.8 ) können damit sehr einfach implementiert werden. Zusammenfassung und Ausblick TopInfo ist für die Projekt- und Produktsteuerung in der Version 2 verfügbar und nunmehr seit knapp einem Jahr im produktiven Einsatz. Der Informationsbestand umfaßt derzeit etwa 1500 Projekte. Folgende Nutzeffekte werden mit TopInfo erzielt: • Transparenz über das Produkt- und Projektportfolio • Überprüfung und Sicherstellung der Unternehmensziele • Minimierung der Projektrisiken durch eine umfassende Informationsbasis für die Projekt- und Prozeßsteuerung, dazu gehören Unterstützung der Projekt- und Produktberichterstattung sowie die Bereitstellung eines Eskalationspfades zur projekteübergreifenden Steuerung sowie "Single Point of Information" für Vertrieb, Mitarbeiter etc, • "Knowledge base" – Welche Projekte und Produkte gibt oder gab es, mit welchen Zielen und Inhalten, wer ist/war daran beteiligt und mit welcher Kompetenz • Empfänger-orientierte Informationspräsentation • Reduzierung der cost-of-ownership durch moderne 3-Schichten Architektur, die zum einen globale / verteilte Projektunterstützung ermöglicht, das heißt Teams arbeiten verteilt über mehrere Standorte hinweg an einem Projekt, mit genau den bisher beschriebenen Vorteilen, und zum anderen einfache Erweiterungen durch modulare Architektur und die Definition von Geschäftsobjekten ermöglicht, • ermöglicht die Erfassung und Verwaltung von Prozeß- / Projektkennzahlen in selbstdefinierten Metriken, zum Beispiel als Grundlage für eine kontinuierliche Prozeßverbesserung. Als nächste Schritte sind geplant: • weitere Personalisierung der Informationen über Informationskanäle, • Anbindung an vorhandene Produktivsysteme, u.a. SAP für Ressourcen- und Kosteninformationen, • Zentrale Pflege der Personendaten in einem LDAP-Verzeichnis, • Einbindung eines kommerziell verfügbaren Bericht-Generators. Abschließend kann gesagt werden, daß sich Java/Corba als ideale Plattform für verteilte, geschäftskritische Anwendungen bewährt hat. Die Flexibilität und die erzielbare Stabilität sind wichtige Faktoren für die Zukunftssicherheit derartiger Lösungen. FA-Java-Spektrum-BB.doc 10 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Artikel Java Spektrum 8/99 Literatur und Links [1] A.Krüger/R.Vaupel/G.Schmolke; Projektmanagement als kundenorientierte Führungskonzeption, 1999 Schäffer-Poeschel Verlag Stuttgart, ISBN 3-7910-1442-0. [2] Siemens AG Information and Communication Networks www.siemens.de/ic/networks/index/index_d.htm [3] F&F Homepage: www.ff-muenchen.de [4] Homepage des WWW-Konsortiums: http://www.w3c.org Thomas Schönauer ist Projektleiter bei F&F und arbeitet bereits seit 1995 im Umfeld verteilter objektorientierter Systeme. Mail: T.Schoenauer@ff-muenchen.de. Rolf Weinzierl ist System-Architekt und technischer Projektleiter von TopInfo bei F&F. Er arbeitet als Berater im Umfeld verteilter objektorientierter Systeme. Mail: R.Weinzierl@ff-muenchen.de. Helmut Wittmann ist seit 1987 bei der Siemens AG beschäftigt und ist derzeit im Geschäftszweig Enterprise Systems für das Informationsmanagement zuständig. Mail: helmut.wittmann@icn.siemens.de. FA-Java-Spektrum-BB.doc 11 - 11 Schönauer, Weinzierl;Wittmann F&F, Siemens AG
Sie können auch lesen