Teamgeist mit Java

Feature | 12. Juli 2004 von admin 0

Seitdem das Internet die IT-Welt eroberte, gewann auch die Programmiersprache Java rasch an Verbreitung. Mit Java lassen sich Programme entwickeln, die über einen Web-Browser ablaufen. In dem erweiterten Standard Java 2 Enterprise Edition (J2EE) sind verteilte Client-Server-Anwendungen möglich, die auch auf bestehende Systeme zugreifen. Je mehr Programmierer mit Java vertraut sind, desto mehr steigt zwar der Bedarf, Software-Entwicklung mit Java zu betreiben, aber umso deutlicher treten auch Nachteile hervor. Die Werkzeuge für Java-Entwicklungen sind nämlich auf den einzelnen Entwickler am lokalen Frontend und auf überschaubare Anwendungen ausgerichtet. Das steht im Widerspruch zu komplexeren Aufgaben, wie sie Software-Entwicklungen in der Unternehmenspraxis von heute zu lösen haben. An diesen Projekten arbeiten zahlreiche, zum Teil bis zu Hunderte von Entwicklern – und darauf ist die neue Entwicklungslösung von SAP eingestellt.

Von Engpässen befreit

Die SAP NetWeaver Entwicklungsinfrastruktur befreit die Java-Programmierung von ihren Engpässen, indem sie zwei Welten in sich vereint: Sie verbindet die lokalen Entwicklungsumgebungen auf den Arbeitsplatzrechnern der Entwickler mit einer zentralen Testumgebung. Somit ist die Infrastruktur in der Lage, die Anforderungen der Entwickler heute zu erfüllen. Lösungen sind gefragt, welche umfassendes Life-Cycle-Management gewährleisten. Das beginnt bei der Modellierung und Entwicklung und schließt zudem Tests und Prüfroutinen sowie die Implementierung, die Auslieferung, die Wartung sowie spätere Programmerweiterungen und -veränderungen mit ein. Im Wesentlichen besteht die SAP NetWeaver Entwicklungsinfrastruktur aus den Elementen Design Time Repository, Component Build Service, Change Management Service und SAP NetWeaver Developer Studio.

ABAP und Java

ABAP und Java

Unordnung ist der größte Feind einer Entwicklungsinfrastruktur. In Java-Programmen sind es die Entwicklungsobjekte, die mit großer Sorgfalt aufbewahrt und verwaltet werden müssen. Es sind die kleinsten codierten Bausteine, weshalb Java (wie auch ABAP) als objektorientierte Programmiersprache bezeichnet wird. Objekte sind nichts anderes als mit Daten und Funktionen versehene Miniaturprogramme. Sie erzeugen beispielsweise ein Firmenlogo oder eine Tabelle auf einer HTML-Seite, rufen den Warenkorb in einem Online-Shop auf oder lassen in einem HR-System das Formular eines Urlaubsantrages auf dem Bildschirm erscheinen. Die einzelnen Anwendungskomponenten wiederum, also etwa der vollständige Bestellvorgang eines Online-Shops oder die Urlaubsanwendung im HR-System, setzen sich aus einer Menge dieser aufeinander abgestimmten, programmierten Entwicklungsobjekte zusammen.

Versionen zentral gelagert

Im Lebenszyklus einer Software werden die Anwendungen und die darauf basierenden Entwicklungsobjekte immer wieder verändert oder erweitert. Darum verwaltet in der SAP NetWeaver Entwicklungsinfrastruktur das Design Time Repository (DTR) wie ein zentrales Aufbewahrungslager die Entwicklungsobjekte. DTR verhindert, dass in einer verteilten Entwicklungsumgebung gleiche Objekte in unterschiedlichen Versionen verwendet, möglicherweise noch kopiert werden und somit Fehler verursachen. Da das DTR dafür sorgt, dass alle Entwickler nur Objekte in einer aktuell gültigen Quellcode-Version erhalten, erfüllt es auch die Aufgabe einer Dokumentationsstelle. Es speichert quasi die Blaupausen der verschiedenen Versionen und protokolliert sie über den Lebenszyklus hinweg. Diese genaue Änderungs-Historie wissen Anwender zu schätzen, die rechtliche oder administrative Nachweispflichten ihrer Datenverarbeitung zu erfüllen haben (zum Beispiel als Pharmahersteller durch Zulassungsbehörden oder als Unternehmen durch die Sarbanes-Oxley-Gesetzgebung).

Kompilieren und testen

Zu den Eigenarten von Java gehört, dass die Programmbefehle in einem Java-Bytecode erscheinen, der erst in der Laufzeit-Umgebung auf dem Arbeitsplatzrechner des Anwenders ausgeführt wird. Um Entwicklern die Möglichkeit zu geben, Software zu gestalten und vor der Überführung in ein Produktivsystem ausgiebig zu prüfen, enthält die SAP NetWeaver Entwicklungsinfrastruktur einen Component Build Service (CBS). Dieser kompiliert, setzt also vernetzt mit dem Design Time Repository die einzelnen Entwicklungsobjekte zu Softwarekomponenten zusammen und überträgt sie von der Java-typischen Metasprache in die Bits und Bytes einer Maschinensprache. Das Kompilieren stellt somit sicher: Die Teile einer Software laufen wie Zahnräder eines Getriebes einwandfrei. Die Softwarekomponente als ganze Einheit ist sowohl syntaktisch richtig, also ohne Programmierfehler, als auch semantisch korrekt entwickelt worden. Semantisch korrekt bedeutet, die Komponente erfüllt ihre funktionale Aufgabe innerhalb des IT-gestützten Geschäftsprozesses.
Bei der Entwicklung und Pflege umfangreicher Geschäftsanwendungen hat sich Gruppenarbeit bewährt. Es setzte sich ein Tagesrhythmus durch, wobei ein Arbeitstag damit beendet wird, den modellierten Softwareabschnitt wieder ablauffähig in die Testumgebung zu stellen und den anderen Entwicklern verfügbar zu machen. Entwickler erleichtern sich ihre Arbeit, indem sie die zentral abgelegten Objekte zur weiteren Entwicklung “aus-checken”, also in Kopie auf ihre Arbeitsplatzrechner herunter laden und dann offline weiter bearbeiten. Sie schließen ihre Entwicklungsarbeit ab, indem sie die Änderungen kompilieren und wieder “ein-checken”. Um alle Entwickler innerhalb einer Gruppe und darüber hinaus die Entwicklergruppen untereinander zu koordinieren hat eine Infrastruktur aufwändige logistische Aufgaben zu erfüllen. Die SAP NetWeaver Entwicklungsinfrastruktur unterstützt die verteilte Arbeitsorganisation. Dazu lassen sich im DTR nach Bedarf virtuelle Arbeitsbereiche, Workspaces genannt, einrichten. Der Component Build Service erlaubt eine Aufteilung in verschiedene Entwicklungsprojekte (Buildspaces).

Mehrprojektlandschaft

In der Praxis haben Entwickler heute mehrere Projekte parallel zu bearbeiten. Deshalb kommen sie ohne Strukturhilfen, die ihnen die Aufteilung der Entwicklungsprojekte in getrennte, logische Einheiten erlauben, nicht mehr aus. Dem dient der Change Management Service (CMS). Er unterstützt als Teil der SAP NetWeaver Entwicklungsinfrastruktur über die in der ABAP-Welt bewährte Mehrsystemlandschaft hinaus eine Mehrprojektlandschaft. CMS verwaltet eine theoretisch unbegrenzte Zahl von DTR- und CBS-Servern (Hardware, physisch vorhandene Hosts) sowie Entwicklungsprojekte (Software, logische Entwicklungseinheiten). Künftig wird das Transportmanagement (TMS) für die ABAP-Plattform in die neue Entwicklungsinfrastruktur integriert, so dass sowohl im ABAP- als auch im Non-ABAP-Kontext entwickelte Softwareprojekte von einem Change-Management-System abzuwickeln sind.
Die Arbeitsweise einer Mehrprojektlandschaft lässt sich an am Beispiel eines Systemhauses verdeutlichen, das eine Anwendung zum E-Commerce entwickeln will, die bei verschiedenen Geschäftskunden eingesetzt und für weitere Änderungen anpassbar bleiben soll. Der Kern dieser Anwendung besteht aus zwei Softwarekomponenten, dem Katalogserver für die Produktsuche und einem Transaktionsserver, der die Bestellungen abwickelt. Darüber hinaus sollen die Softwarekomponenten je nach Kunde etwa in ihren Oberflächen nach den Gestaltungsrichtlinien der Unternehmen (Logo, Farbe oder Symbole) aufbereitet werden. Hier empfiehlt sich ein getrenntes Vorgehen, um die Komponenten – einerseits die universell verwendbaren und andererseits die kundenspezifisch gestaltbaren – einzeln weiter zu entwickeln. Deshalb sind mit Hilfe des CMS, wie nebenstehende Grafik zeigt, verschiedene Entwicklungseinheiten (Tracks) einzurichten.

Entwicklungseinheiten

Entwicklungseinheiten

Jedes Kundenprojekt des Systemhauses bildet als Nachfolge der beiden Softwarekomponenten Katalogserver und Transaktionsserver eine eigene Entwicklungseinheit. CMS teilt jedem dieser Tracks logische Einheiten im DTR (Workspace) und CBS (Buildspace) zu. Jedes Projekt legt einen eigenen Quellcode im DTR und einen Binärcode im CBS ab. Zudem kompiliert jedes Projekt im eigenen Buildspace und führt anschließend innerhalb des Tracks einen zentralen Test durch. Innerhalb eines Tracks lassen sich Laufzeitsysteme für verschiede Entwicklungsstadien (Entwicklung, Konsolidierung, Qualitätssicherung und Produktion) für zentrale Tests anschließen.
Am Anfang der Entwicklung für den Katalog- beziehungsweise den Transaktionsserver sind die benötigten Komponenten mittels CMS in die Tracks einzuspielen. Am Ende der beiden Projekte entstehen stabile Versionen der Softwarekomponenten, mit denen die Tracks der Kundenprojekte unter Steuerung von CMS beliefert werden. Jedes Projekt baut damit auf stabilen Versionen der Vorgänger auf.

Benutzeroberfläche mit Werkzeugsammlung

Belieferungsbeziehung

Belieferungsbeziehung

An jedem Entwicklungsarbeitsplatz ist das SAP NetWeaver Developer Studio installiert – eine über eine übersichtliche grafische Benutzeroberfläche bedienbare Werkzeugsammlung. Das Studio öffnet den Zugang zu allen Entwicklungsaktivitäten und fungiert als zentrale Instanz in der Software-Logistik von Entwicklungsprozessen. Es ermöglicht, den aktuellen Status der jeweiligen Projekte anzuzeigen und bildet eine integrierte Entwicklungsumgebung (IDE, Integrated Development Environment) auf der Basis des Open-Source-Projekts Eclipse. SAP liefert Eclipse-Plug-Ins, unter anderem solche, die das Arbeiten mit der SAP NetWeaver Entwicklungsinfrastruktur unterstützen. Das sind beispielsweise Werkzeuge zu Unternehmensanwendungen, Datenbankverzeichnissen oder Web-Services.
Die SAP NetWeaver Entwicklungsinfrastruktur ist als Bestandteil von SAP NetWeaver ab sofort verfügbar. Innerhalb der SAP sind es mittlerweile schon über 800 Programmierer, die damit Software entwickeln und pflegen. Die SAP NetWeaver Entwicklungsinfrastruktur selbst wurde vollständig mit dem J2EE-Standard entwickelt. Alle Elemente der Infrastruktur sind J2EE-Applikationskomponenten, die auf der Basis des SAP Web Application Servers 6.40 laufen. Die Infrastruktur ist je nach geforderter Rechenleistung (Performance) vollständig skalierbar, somit leicht durch zusätzliche Hardware zu erweitern.

Yu-Nong Zhang

Yu-Nong Zhang

Leave a Reply