Aber bitte mit Java (Teil 2)

Feature | 14. November 2005 von admin 0

Teil 1
Entwicklungsprojekte werden oft mit einer Vielzahl von Gruppen und an mehreren Standorten durchgeführt. Die Programmiersprache Java, bei der mit kopierten Entwicklungsobjekten und lokalen Umgebungen am PC der Entwickler gearbeitet wird, erfordert eine deutlich komplexere Entwicklungslandschaft als eine server-basierte Umgebung für ABAP-Entwicklung. Entwickler müssen bei ihrer Arbeit Werkzeuge auswählen, die das Bauen (Build) und Verteilen einer Java-Applikation von der ersten Gestaltung bis zur Implementierung im Produktivsystem und deren weiteren Wartung im IT-Lebenszyklus unterstützen. SAP NetWeaver Development Infrastructure (NWDI) vereinigt in sich mehrere solche Werkzeuge und hilft bei dieser Problematik. Sie bietet unter anderem eine Versionsverwaltung und zentrale Funktionalitäten zum fehlerfreien und automatisierten Build und Transport von Software. Die Entwicklungsinfrastruktur von SAP geht dabei über die Funktionalitäten der bisher für Java verfügbaren Werkzeuge wie Concurrent Versions System (CVS) zur Versionsverwaltung und ANT zur Scriptverarbeitung hinaus. Sie verfügt über eine zentrale Konfiguration, lässt sich gut skalieren, bietet eine Rechteverwaltung und hilft, Konflikte bei der Softwareverteilung zu vermeiden.

Werkzeuge in der Entwicklungsumgebung

SAP NetWeaver Developer Studio dient als integrierte Entwicklungsumgebung (IDE), NWDI ist darin eingebunden. Die SAP-Lösung ist so konzipiert, dass der Entwickler fast alle Aufgaben innerhalb der Entwicklungsumgebung wahrnehmen kann. Nur in Ausnahmefällen, wenn zum Beispiel ein Rollenkonzept mit einem Verantwortlichen für den Transport von Applikationen einzuhalten ist, erfolgt ein Zugriff auf separate Oberflächen und die betreffenden Dienste. SAP NetWeaver Developer Studio basiert auf der Plattform des Open-Source-Entwicklungsprojekts Eclipse. Auf deren Plug-In-Mechanismus basierend, ermöglicht es eine Vielzahl von Entwicklungsaufgaben und Sichtperspektiven auf die einzelnen Entwicklungsobjekte.
Heutige Entwicklungsumgebungen enthalten eine fast schon verwirrende Menge von verfügbaren Werkzeugen. SAP NetWeaver Developer Studio dagegen erleichtert die Arbeit des Entwicklers, da er vordefiniert nur auf die Werkzeuge Zugriff erhält, die er je nach Entwicklungssegment benötigt, zum Beispiel eine vordefinierte Sichtperspektive für die Technologien wie J2SE-Applikationen, J2EE-Beans, Web-Services und andere. Sichtperspektiven für allgemeine Aufgaben wie die Verwaltung der Konfigurationen oder des Quellcodes sind ebenfalls vorkonfiguriert. Jedoch lassen sich individuelle Anpassungen vornehmen oder spezielle Perspektiven entwerfen, um künftige Entwicklungsarbeiten zu erleichtern.
Durch die Integration in die Entwicklungsumgebung erleichtert NWDI die Bedienbarkeit, sie bietet aber auch auf der Produktivitätsseite Vorteile. SAP NetWeaver Development Infrastructure lässt sich gut skalieren, sowohl hinsichtlich der Anforderungen als auch der Entwicklerzahl. Das ist möglich, da NWDI im weitesten Sinne als eine eigenständige Applikation auf dem SAP NetWeaver Application Server liegt. Ein software- beziehungsweise hardware-technische Skalierung ist durch eine Cluster-Architektur, eine Zusammenschaltung von Servern, zu erreichen. Dadurch werden die Abfragen rascher verarbeitet, das System ist gegen einen möglichen Ausfall gesichert.

Zentrale Konfiguration

Eine wesentliche Entlastung bietet die in NWDI verfügbare zentrale Konfiguration. Diese stellt dem Entwickler automatisch den richtigen Quellcode und die richtigen Bibliotheken zur Verfügung. Die zentrale Konfiguration greift auch, wenn ein Entwickler an mehreren Projekten arbeitet, welche die gleichen Bibliotheken jedoch in unterschiedlichen Versionen verwenden. Wenn beispielsweise ein Entwickler gleichzeitig zwei Projekte, eines für WebAS 6.40 und das andere für WebAS 7.0, bearbeitet, so werden ihm die passende Bibliotheken SAP_JTECHS in den Versionen 6.40 und 7.0 automatisch in den entsprechenden Projekten verfügbar gemacht.
Die frühzeitige Integration des Codes aller Entwickler auf einer zentralen Plattform hilft, im gemeinsamen Projekt die Probleme bei gleichzeitigen Änderungen zu vermeiden. Während unterschiedlicher Stadien unterstützen die Komponenten der NWDI diese Aufgabe. Arbeiten mehrere Entwickler gleichzeitig an denselben Objekten, erkennt und informiert darüber das intelligente Design Time Repository (DTR). Konflikte bei der Verteilung der erstellten Software erkennt die NWDI-Komponente Change Management Service (CMS), die das Transportwesen der Software komplett abgedeckt. Das Transportwesen spiegelt sich im CMS in einer Track-Definition. Ein derartiger Track beschreibt ein Projekt in einem bestimmten Stadium, zum Beispiel bei der Entwicklung oder der Konsolidierung.
Eine weitere Aufgabe von CMS ist die Verwaltung der Entwicklungskonfigurationen. Eine Entwicklungskonfiguration beinhaltet neben der notwendigen Projekt-Bibliotheken auch die von den Entwicklungskomponenten vorgegebenen Build-Umgebungen. Diese Vorgehensweise erlaubt es, die Build-Umgebungen zentral zu verwalten. Dadurch entfällt das manuelle Erstellen von Build-Skripten und zwar sowohl für die Entwicklung innerhalb der Entwicklungsumgebung als auch beim Build auf Seiten des Servers.
Die NWDI bietet die Möglichkeit, lokalen am PC des Entwicklers erstellten Sourcecode nach dem Einchecken zu aktivieren und automatisch zu konsolidieren. Diese Methode ist dem bisher verbreiteten Konsolidierungsverfahren Nightly Build sowohl in Bezug auf Geschwindigkeit als auch hinsichtlich der Stabilität überlegen. Dabei verhindert diese mit Hilfe von Change Management Service gesteuerte Vorgehensweise – des getrennten Eincheckens, Aktivierens und Konsolidierens – Fehler, die beim Nightly Build leicht auftreten können. Das ist zum Beispiel der Fall, wenn zwei Entwickler während eines Arbeitstages nicht zusammen passenden Sourcecode einchecken, so dass auf Seiten des Servers eine nicht übersetzbare Version aktiv wird. Das erzeugt einen inkonsistenten Stand, der aber erst in der kommenden Nacht während des Nightly Build entdeckt wird, was dann aber erst am nächsten Morgen bei Arbeitsbeginn die Entwickler erfahren.
Für die Integration der Änderungen der Entwickler in die zentrale Version ist der Component Build Service (CBS) verantwortlich. Sobald ein Entwickler Programmcode in das Design Time Repository eincheckt, ist es ihm auch möglich, dass der geänderte Programmcode zusammen mit dem bereits vorhandenen aktiven Programmmodulen übersetzt wird. Ist die Übersetzung erfolgreich, werden die Änderungen auch zum aktiven Programmcode hinzugefügt. Diese Arbeitsweise stellt sicher, dass eine Veränderung eines Moduls zu den anderen Modulen passt. Außerdem arbeitet CBS parallele Änderungen in der Reihenfolge des Eincheckens ab. Alle Aufgaben im CBS werden in einer Datenbank beständig gehalten und sind somit zu jeder Zeit wiederaufnehmbar, auch nach einem möglichen Ausfall.

Sicherheit und Rechteverwaltung

Das Transportwesen in der SAP-Entwicklungsinfrastruktur bietet eine komfortable Benutzeroberfläche, über die sich neue Versionen automatisch auf Zielsystemen installieren lassen. Manuelles Kopieren von Daten entfällt. Außerdem ist es nicht notwendig, Entwicklern den vollen Zugriff auf die Zielsysteme einzurichten. Somit bleiben Produktionssysteme mit kritischen und sensitiven Unternehmens- und Personendaten vor Zugriffen während der Entwicklungsprozesse geschützt. Zu den weiteren Sicherheitsvorkehrungen des CMS zählen sehr genau spezifizierbare Rechte, um auf Anwendungen in den Entwicklungs-, Konsolidierungs-, Test- oder Produktionssystemen zuzugreifen. Jeder Transportvorgang in ein System ist nur dann möglich, wenn eine Berechtigung dafür erteilt worden ist.
Das Design Time Repository bietet wie Change Management Service eine Rechteverwaltung. Zugriffe lassen sich auf Projekt- und auf Objekt-Ebene definieren. Das DTR ermöglicht es auch, mit konkurrierenden Checkouts und Sperren leicht umzugehen. Arbeiten zwei Entwickler an einem Objekt, registriert das DTR die jeweiligen Zugriffe und erinnert daran, die Änderungen beider Entwickler in Kopie zusammenzuführen. Andererseits lässt sich ein Objekt einem Entwickler exklusiv zuweisen. Dann bleibt es für andere Entwickler bis zur erneuten Freigabe gesperrt.
Im DTR erfolgt die versionierte Ablage des Codes und anderer Ressourcen. Die typischen Funktionen einer Versionskontrolle, wie Ein- und Auschecken, Update der lokalen Versionen, Erkennung und Lösen von Versionskonflikten werden im DTR in Aktivitäten zusammengefasst. Das lässt den Entwickler leicht erkennen, welche Änderungen zusammengehören. Als Besonderheit bietet das DTR die Möglichkeit, Veränderungen über mehrere Repositories zu verwalten. Dem dient eine weltweit eindeutige Kennzeichnung. Das Verfahren ist auch die Grundlage, um an Kunden ausgelieferten Code zu modifizieren und Versionskonflikte bei Veränderungen, die auf Seiten des Kunden vorgenommen wurden, rasch zu erkennen. Das wird möglich durch die Verwendung der Software-Komponenten-Archive, die sich sowohl über die NWDI transportieren, als auch direkt mit dem Software Deployment Manager – eines Standard-Add-ons des SAP NetWeaver Application Servers – auf das Zielsystem einspielen lassen. Neben dem integriertem Transportwesen, unterstützt das DTR auch bei einer noch frühzeitigen Erkennung der Fehler beziehungsweise der Inkonsistenzen.

Kollisionen vermeiden, Fehler beheben

Mit dem System Landscape Directory (SLD) steht über NWDI ein Verzeichnisdienst zur Verfügung, dessen wesentliche Aufgaben die Reservierung von Namensräumen und die Bereitstellung eines Verzeichnisses für Hard- und Software sind. Durch die Namensraumreservierung, die bei den Java-Paketen bereits Standard sind, lassen sich Kollisionen bei den Datenbank-Tabellen und Entwicklungsobjekten vermeiden. Das hilft vor allem bei Produktentwicklungen im Umfeld von SAP NetWeaver, die durch SAP-Partner betrieben werden.
Für den Entwickler sind alle benötigten Services, wie Design Time Repository, Component Build Service, Change Management Service sowie das Anlegen der Entwicklungskomponenten aus dem SAP NetWeaver Developer Studio erreichbar und vollständig integriert. So sinkt der Einarbeitungs- und Verwaltungsaufwand. Der Entwickler kann sich voll auf das Design und die Implementierung konzentrieren. Für weitergehende Aufgaben wie das Anlegen von Produkten, Softwarekomponenten und den Transport werden von der NWDI komfortable Web-Oberflächen bereitgestellt, die eine konsistente und selbsterklärende Bedienung ermöglichen.
NWDI legt alle Daten in einer Datenbank ab. Das erleichtert die administrativen Tätigkeiten, die in einem Unternehmen täglich anfallen, etwa das Backup der Rechner. Eine solche Lösung bietet den Vorteil der besseren Sicherheit und Konsistenz, da Backup-Lösungen für die Produktionsdatenbanken in der Regel vorhanden sind. Eine Datenbank ist zudem einfacher und schneller zu sichern als ein kompletter Rechner. Dadurch lässt sich die NWDI auf vielen unterschiedlichen Plattformen wie Windows oder Unix einsetzen und wird somit den Anforderungen an die IT-Landschaft nahezu jedes Unternehmens gerecht.
Des Weiteren unterstützt die NWDI den Entwicklungsprozess in seiner ganzen Breite, indem nicht nur die erstmalige Entwicklung und der Transport weitgehend automatisiert, sondern auch solche Fälle wie Erweiterungen und Fehlerbehebungen auf die gleich konsistente Art und Weise unterstützt werden. Dafür bietet die NWDI eine so genannte Patch-Versionierung an. Damit ist es immer möglich zu erfahren, in welchem Releasestand beziehungsweise Patch-Level sich die entsprechende Softwarekomponente befindet. Das erleichtert die Fehlersuche und den Aufbau des Referenzsystems.
Die Installation und Konfiguration der NWDI erfordert zwar Fachkenntnisse, erweist sich aber zweckmäßiger, als eine komplette Entwicklungsinfrastruktur manuell aufzubauen. Vor allem bei einer Vielzahl von parallel laufenden Projekten und Entwicklergruppen, die an verschiedenen Standorten arbeiten, machen sich die Vorteile der NWDI bemerkbar. Eigene Build-Scripte geraten meist immer aufwändiger je weiter ein Projekt fortschreitet und sie sind damit immer schwerer zu pflegen. NWDI dagegen wartet auf mit strukturierter und weitgehend automatisierter Vorgehensweise und ist für jedes Projekt, ob klein oder groß, verwendbar. Je nach Firmenphilosophie oder Projektkomplexität lassen sich die vorhandenen NWDI-Einsatzszenarien auswählen. Diese Szenarien ermöglichen sowohl einen leichten Einstieg – nur über SAP NetWeaver Developer Studio und DTR – als auch die komplette Anwendung aller Komponenten der NWDI.

Jewgeni Kravets

Jewgeni Kravets

Marco Lommatzsch

Marco Lommatzsch

Leave a Reply