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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGArtikel 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 AGSie können auch lesen