Artikel Java Spektrum 8/99 - Ein Nachdruck aus JavaSPEKTRUM 5/99 Alles im Griff

Die Seite wird erstellt Leo Stein
 
WEITER LESEN
Artikel Java Spektrum 8/99 - Ein Nachdruck aus JavaSPEKTRUM 5/99 Alles im Griff
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 - Ein Nachdruck aus JavaSPEKTRUM 5/99 Alles im Griff
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