Tücken der Technik

Java-Anwender berichten aus laufenden Projekten

27.02.1998

Das derzeit gewaltigste deutsche DV-Projekt "Fiskus", das dereinst zumindest technisch unsere Steuerberechnungen revolutionieren soll, setzt auf dem in Java implementierten IBM-Framework "San Francisco" auf. Das Vertrauen in Java, das die Macher damit demonstrieren, muß sich nicht mehr ausschließlich auf Marketing-Versprechungen gründen.

"In Java codieren kann jeder", stellt Ercan Özkan, Entwickler bei der Allianz AG, Stuttgart, fest. "Die Schwierigkeit besteht darin, objektorientiert zu entwickeln, sonst lassen sich die Vorteile der Sprache nicht ausspielen." Özkan arbeitet an einer interaktiven Internet-basierten Lösung für das Fondsbanking der Allianz Kapitalanlegegesellschaft (KAG). Obwohl gerade im GUI-Design häufig Portabilitätsschwierigkeiten auftreten, hat der Allianz-Entwickler keine Probleme damit: Er findet es "toll", daß sich "ruckzuck" und einfach grafische Elemente erstellen lassen, die auf jedem Rechner lauffähig sind. Für die Navigation durch die Web-Seiten der Allianz-Investment-Tochter steht den Besuchern nun etwa ein Navigations-Applet zu Verfügung, das einem Kompaß ähnelt und je nach Position des Mauszeigers einen anderen Link optisch hervorhebt. Die KAG-Applets lösen Transaktionen aus, die auf Unternehmens-Servern und -Hosts ausgeführt werden.

Sicherheitsaspekte der Sprache spielten bei der Entscheidung für Java ebenfalls eine Rolle. "Momentan gibt es keine Programmierumgebung, die mehr Sicherheit bietet", so der leitende KAG-Techniker Thomas Rappold. Allein das Sandbox-Modell, das bereits Java-Applets Zugriffe auf Systemressourcen des lokalen Rechners verwehrt, biete Schutz vor unerwünschten Datenspähern.

Auch die Hypo-Bank schuf sich mit Hilfe von Java-Applets ein interaktives Browser-Front-end. Das auf allen Clients einheitliche Interface stellt den Intranet-Benutzern die zur Information, Datenpflege und Risikoberechnungen notwendigen Funktionen zur Verfügung. Zum einen können die Bankangestellten auf Reports zugreifen, die mit Hilfe der Risiko-Management-Lösung "Riskwatch" von Algorithmics, Toronto, erzeugt und via CGI übertragen werden.

Darüber hinaus stellt die Oberfläche eine HTML-basierte Benutzerdokumentation sowie Konfigurations- und Bewertungsparameter bereit. Den Datentransfer zwischen dem Java-Part der Anwendung und den Back-end-Tabellen übernehmen ein JDBC-Server sowie die Terminalemulation "Web Connect Pro", die von Open Connect Systems aus dem niederländischen Utrecht stammt. Anwender mit höheren Zugriffsrechten können über das Interface Parameter ändern.

Jürgen Dedorath, Projekt-Manager bei der Hypo-Bank, hebt zwei Vorteile der Java-Programmierung hervor. Die Entwickler müßten sich nicht mehr um die Implementierung auf den Clients sowie um deren Konfiguration kümmern. Zugleich biete die grafische und einheitliche Aufbereitung im Browser ein End-User-Medium, daß sehr schnell akzeptiert wird. "Server-Applikationen" würde Dedorath jedoch eher in C++ implementieren, weil es zu dieser Sprache bereits viele Bibliotheken und erfahrene Programmierer auf dem Markt gibt. "Java verkörpert eine gute Idee, steht jedoch am Anfang", lautet sein Fazit.

Das sieht Oliver Münster vom Competence Center Internet/Intranet der Systor AG, Basel, anders: "Java hat sich als extrem stabile Sprache erwiesen." Das Systor-Team hat für den Zürich Versicherungskonzern im Projekt "Rückversicherungsverträge" 500 eigene Java-Klassen (1350 KB) entwickelt sowie 225 gekaufte GUI- und 90 JDBC-Klassen (883 plus 245 KB) eingesetzt. Die komplette Anwendung macht rund 2,9 MB, 1,3 MB in komprimierter Form als "Java Archive", aus und erforderte etwa drei Mannjahre für die Entwicklung. Davon allerdings mußten zirka drei Mannmonate für das Tuning aufgewendet werden. "Performance war für uns das Hauptproblem", so Münster.

Den weltweit verteilten Geschäftsstellen der Versicherung war es bis dato nicht möglich gewesen, in die Konditionen der von anderen Niederlassungen abgeschlossen Rückversicherungsverträge Einblick zu nehmen. Künftig werden die Verträge und Buchungsinformationen via Intranet zur Verfügung gestellt. Die Applikation dient einerseits der Erfassung und Verwaltung der Informationen und stellt andererseits dem Anwender verschiedene Auswertungsmöglichkeiten sowie nach geografischen Gesichtspunkten eingeteilte Berechtigungsstufen und externe Entitäten zur Verfügung.

Die Anwendung basiert auf einer Drei-Schichten-Architektur (siehe Abbildung). Der Client-Part der Anwendung wird mit Hilfe des Hypertext Transfer Protocol (HTTP) geladen. Danach findet die Kommunikation über Remote Method Invocation (RMI) statt. Das Systor-Team entschied sich an dieser Stelle gegen die Common Object Request Broker Architecture (Corba) für die Java-Java-Kommunikation, weil diese nicht so komplex sei. Allerdings beschweren sich Programmierer in Newsgroups bereits darüber, daß RMI nur eingeschränkt leistungsfähig sei.

Ähnliches gilt bei gesteigertem In- und Output für das Datenbankprotokoll Java Database Connectivity (JDBC). Laut Münster reicht die Performance für die Rückversicherungsanwendung jedoch vorläufig aus. Für die Programmierung des Clients benutzte die Systor-Mannschaft das JDK 1.14 und 1.15 sowie den GUI-Builder "Bongo 1.1" von Marimba. Um den Anwendern das Drucken zu ermöglichen, mußten entsprechende Applets zertifiziert werden. Mit diesen sogenannten signed Objects ist ein Zugriff auf die lokalen Geräte möglich.

Daß JIT-Compiler (JIT = Just in time) nicht die Performance bringen, die Hersteller glaubhaft machen wollen, hält Münster für ein vorübergehendes Problem. Er ärgert sich aber darüber, daß diese Beschleuniger nicht für alle Plattformen zur Verfügung stehen und die Browser von Microsoft und Netscape unterschiedliche Anforderungen stellen.

Für die Server-Applikation haben sich die Systor-Spezialisten eine sogenanntes Persistant Framework gebaut. Es ermöglicht die Generierung von persistenten Java-Klassen aus einem Datenmodell. "Das war zwar aufwendig, hat sich aber gelohnt", wertet Münster die Anstrengung. Der Einsatz von Java verlange insgesamt mehr Zeit für das Design und Konzept der Anwendung. Ungewohnt für das in der Objektorientierung sehr erfahrene Systor-Team war zum Beispiel der verstärkte Einsatz von Multithreading. Hiermit ließen sich auch Performance-Schwächen ausgleichen.

Auch Klaus Kiene von der Ars Nova GmbH und technischer Leiter im Daimler-Benz-Projekt "Logistikbus", kann bereits Tips für dem Umgang mit Java geben. In einem Logistiknetz sollen sämtliche Bewegungsdaten gesammelt werden, wie sie in Auswertungen etwa für die Distribution und Lagerbestandsverwaltung benötigt werden. Via Internet soll die Lieferung von Autoteilen an die Händler, Niederlassungen und Redistributoren gesteuert werden. Die Macher hoffen, bei steigender Teilevielvalt und -anzahl die Lagerkosten und die Anzahl zu später Lieferungen senken zu können. Phase 0 des Projekts ist nun abgeschlossen und die Lauffähigkeit der Software nachgewiesen.

Ars Nova entwickelte Analysebausteine für die Clients. Um die Applets nicht zu sehr anwachsen zu lassen, mußten die Entwickler das Design vereinfachen. Um zu kompaktem Code zu gelangen, empfiehlt der Techniker, sich in einem Java-Projekt frühzeitig zu überlegen, welche Dienste und Kommunikationsarten zur Verfügung stehen müssen. Die notwendigen Methoden und Variablen sollten in Interfaces deklariert werden. Das sind abstrakte Klassen, die nicht instanziert werden können. Die Methoden werden in den Klassen realisiert, die die Interfaces implementieren. Auf diese Weise erhielten die Java-Programme "große Flexibilität sowie ein sauberes Design". Zudem reduziere sich der Byte-Code, der an die Clients übertragen werden muß.

Obwohl die verfügbaren Java-Bibliotheken noch "spärlich" ausgestattet sind, läßt sich, so Kienes Fazit, die Sun-Programmiersprache für fast alle Arten von Applikationen nutzen. Die Ausnahme: Number-Crunching, wie es bei großen Simulationen benötigt wird.