Web-Applikationen/Application Mining: Ein Tool für Web-Anwendungsentwickler

Interaktive Landkarten von Web-Applikationen

11.05.2001
Drei Faktoren bestimmen die Arbeit eines Web-Entwicklers: das Tempo, in dem Internet-Applikationen entwickelt und ausgebaut werden, die Verlässlichkeit, die E-Business-Applikationen bieten, und die Komplexität, die bei Web-Anwendungen sehr hoch ist. Interaktive "Landkarten" von Web-Applikationen sollen für mehr Überblick bei der Weiterentwicklung von Web-Anwendungen sorgen. Von Andreas Schürzinger*

Web-Applikationen, mit denen geschäftliche Transaktionen abgewickelt werden, sind Plattformen, die nach den Anforderungen des Marktes funktionieren müssen. Nur wenn sie dem Takt des Marketings folgen und für neue Geschäftsprozesse, wechselnde Angebote oder Sonderaktionen ständig weiterentwickelt werden, sind sie auf Dauer erfolgreich. Deshalb ist es erforderlich, solche Anwendungen meist unter hohem Time-to-Market-Druck den neuen Anforderungen anzupassen. Doch Schnelligkeit darf gerade bei unternehmenskritischen E-Business-Applikationen nicht auf Kosten der Qualität erkauft werden. Sie müssen robust und skalierbar sein. Programmierfehler, welche die Verfügbarkeit solcher Systeme gefährden, münden leicht in schmerzhaften Umsatzeinbußen und dem Vertrauensverlust der Kunden.

Web-Applikationen in Multikulti-DesignIhrer Natur nach sind Internet-Anwendungen komplexe Gebilde. Sie bestehen aus einer Vielzahl unterschiedlicher und verteilter Komponenten wie HTML-Pages, Server-seitige Skripts, Middleware-Komponenten wie COM-Objekte oder Enterprise Java Beans und Datenbankobjekte in SQL. Sie alle sind in der Regel nur durch ihren Source-Code selbst dokumentiert.

Internet-Anwendungen der ersten Generation wurden nicht selten "mit heißer Nadel gestrickt" von Entwicklern, die heute niemand im Unternehmen mehr kennt. Auch wenn Web-Anwendungen systematisch entworfen und entwickelt wurden, fehlen aufgrund knapper Ressourcen meist aktuelle Dokumentationen. Diesen "verwaisten" Code manuell zu analysieren und zu dokumentieren scheint nicht nur lästig, sondern im Hinblick auf die verfügbaren Kapazitäten auch viel zu zeitaufwändig und zu teuer. Dennoch: Sollen diese Applikationen geändert oder erweitert werden, führte bisher kein Weg daran vorbei. Kein Wunder also, dass Entwickler bisweilen fast die Hälfte ihrer Zeit damit verbringen, bestehende Applikationen zu verstehen und benötigte Informationen zu finden. Application Mining kann hier tatkräftige Unterstützung leisten, weil es die Komplexität von Web-Applikationen handhabbar macht und dadurch ihren schnellen und verlässlichen Ausbau ermöglicht.

Application Mining ist eine Methode für die automatische Analyse und Dokumentation bestehender Applikationen. Während das Konzept lange Zeit vor allem im Zusammenhang mit Legacy-Applikationen und der Analyse von Cobol-Code genutzt wurde, entsteht jetzt aufgrund der oben geschilderten Anforderungen ein neues Marktsegment mit Anbietern von Application-Mining-Tools für Internet- und Client-Server-Applikationen (siehe Textkasten: "Application Mining für Alt und Jung").

Das Application Mining umfasst in der Regel drei Schritte: die Analyse aller Komponenten, die Speicherung der Meta-Informationen sowie die Nutzung dieser Informationen zum Beispiel für die Visualisierung einer Applikation oder für individuelle Abfragen.

Automatische Sourcecode-AnalyseIm Rahmen der Analyse müssen zunächst alle strukturrelevanten Informationen aus dem Sourcecode der Applikationen gesammelt werden. Damit nicht nur ein partielles Bild einer Anwendung erzeugt wird, sollten die Beziehungen und Abhängigkeiten ihrer Komponenten umfassend ermittelt werden. Alle Ebenen einer verteilten Applikation sind zu erfassen - auch dann, wenn sie auf verschiedenen Rechnern angesiedelt sind: von der Präsentation beim Web- oder Windows-Client über die - vielleicht Application-Server-basierende - Anwendungslogik bis hin zu den Datenbankobjekten auf der Server-Seite.

Technologisch kann diese Aufgabe meist nur durch Parser gelöst werden. Parser "verstehen" den Sourcecode einer Applikation und unterziehen ihn einer umfassenden syntaktischen und semantischen Analyse. Da ein Parser aber immer nur den Code einer einzigen Sprache versteht, müssen für die umfassende Analyse von Web-Applikationen geeignete Parser für die unterschiedlichen Sprachen zur Verfügung stehen, in denen die diversen Funktionen geschrieben sind. Um die Ergebnisse der Einzelanalysen zusammenzuführen und dadurch eine umfassende Sicht auf die Web-Anwendungen zu gewinnen, werden diese Meta-Informationen in einem zentralen Repository gespeichert. Auf ihrer Basis können dann interaktive "Landkarten" der Anwendungen generiert werden.

Die dritte Komponente einer Application-Mining-Lösung ist die Benutzeroberfläche für die Entwickler; diese sollte daher mit umfassender Funktionalität ausgestattet sein. Hier werden die gespeicherten Meta-Informationen nutzbar gemacht - zum Beispiel in Form von interaktiven grafischen Schaubildern. Beziehungen zwischen den Komponenten werden dabei in Form von Graphen dargestellt, die zeigen, welche Objekte ein bestimmtes Objekt aufruft und von welchen anderen Objekten es aufgerufen wird. Die Anwender können mit der Maus durch solche "Applikations-Landkarten" navigieren und ihren inneren Aufbau intuitiv nachvollziehen. Geplante Änderungen lassen sich durch Impact-Analysen systematisch unterstützen. Ein Beispiel: Für eine E-Shop-Applikation zum Verkauf von Büchern und CDs soll ein Datenbankfeld vergrößert werden, weil die Vornamen der Autoren und Interpreten bisher nur abgekürzt eingetragen werden konnten. Um den Aufwand und die Kosten für diese Änderung einzuschätzen und eine sichere Implementierung zu gewährleisten, sollen zunächst die Auswirkungen dieser Modifikation auf andere Programmteile festgestellt werden. Üblicherweise wird eine solche Suche Schritt für Schritt manuell durchgeführt, was nicht nur lange dauert, sondern auch keine 100-prozentige Sicherheit bietet. Es lässt sich dabei nie völlig sicherstellen, dass wirklich alle betroffenen Stellen gefunden und keine übersehen wurde.

Wer mit Application-Mining-Lösungen arbeitet, hat es etwas leichter. Damit kann eine Impact-Analyse innerhalb kurzer Zeit vollständig und verlässlich automatisiert durchgeführt werden. Die Grafik gibt das Ergebnis einer solchen Impact-Analyse wieder; sie zeigt - über die hierarchischen Ebenen der Web-Anwendung hinweg - alle Komponenten, die von dieser Änderung betroffen sind: angefangen von der Tabelle in der SQL-Datenbank über die Visual-Basic-basierenden Active-X-Middleware-Komponenten und das Client-GUI bis hin zu den Active Server Pages und das Web-GUI in HTML. Nun kann man die Änderung an entsprechender Stelle im Source-Code durchführen.

Neben den geschilderten Vorteilen kann Application Mining ein Entwicklerteam nicht nur unabhängig vom Fachwissen einzelner Kollegen machen, sondern auch für Sicherheit in der zeitlichen und finanziellen Projektplanung sorgen. Da im zentralen Repository stets die aktuellen Strukturinformationen der analysierten Anwendungen bereitstehen, wird die Methode in der Regel auch die Teamarbeit verbessern. Das Wissen über die Funktionsweise einer Applikation bleibt dem Projektteam nämlich auch dann erhalten, wenn Entwickler das Unternehmen verlassen. Und Neueinsteiger können leichter integriert werden, da sie sich schneller einen Überblick über die innere Struktur der bestehenden Applikationen verschaffen. Und auch die Projektverantwortlichen haben es mithilfe der Impact-Analysen leicher, die Auswirkungen geplanter Änderungen im Detail nachvollziehen.

*Andreas Schürzinger ist Consultant bei der Cast GmbH in Frankfurt am Main.

Eine Auswahl: Application Mining Tools für Alt und JungAnbieter / Produkt / Sprachunterstützung

Cast / Cast Application Mining Suite / Java, Javascript, VB Script, Perl, HTML, Visual Basic, Powerbuilder, SQL etc.

Merant/Netron / Revolve / Cobol, PL/1, System 390 Assembler, MVS JCL, Cics, Ims DC

Relativity / Rescue Ware / Cobol

Seec / Reengineering Workbench for application enhancement / Cobol, Natural

Software Emancipation Technology / Discover / C/C++. Java, SQL (Oracle, Sybase, Informix)

Der Markt: Application MiningDie Giga Information Group macht in ihrer Planning Assumption über "Application Analysis and Mining Tools" im Juni 2000 sechs Anbieter in diesem Markt aus. Vier davon zielen - mit unterschiedlichen Schwerpunkten und Funktionalitäten - vor allem auf die Analyse von Legacy-Applikationen, die beispielsweise in den verschiedensten Varianten von Cobol geschrieben sind. Dazu gehören die kanadische Netron Inc. mit Hot Rod, die US-amerikanischen Companies Relativity Technologies Inc. mit Rescue Ware und Seec mit der Seec-Produkt-Suite sowie das weltweit agierende Unternehmen Merant mit Revolve. Doch Legacy-Applikationen gibt es nicht nur auf dem Mainframe. Viele Client-Server- und Web-Applikationen der ersten Generation sind- von wechselnden Programmierern meist eilig und unstrukturiert entwickelt sowie undokumentiert hinterlassen - auch heute schon "verwaist". Wer sie jetzt weiterentwickeln, ausbauen oder für durchgängiges E-Business enger in die IT-Landschaft des Unternehmens integrieren will, findet heute einen wachsenden Markt für Mining-Tools.

Zu den Anbietern gehört laut Giga Group das US-amerikanische Unternehmen Software Emancipation Technology, das mittlerweile in Upspring Software umbenannt wurde und seit März 2001 zur kanadischen Mortice Kern Systems Inc. gehört. Deren Application-Mining-Tool Discover unterstützt vor allem die Analyse von Anwendungen, die in C/C++ oder Java geschrieben sind. Darüber hinaus bietet das französische Unternehmen Cast eine Application-Mining-Suite.

Die MethodeApplication Mining ist eine Methode zur automatischen Analyse bestehender Applikationen. Mithilfe der Parsing-Technologie wird zunächst der Source-Code einer Anwendung analysiert. Die Informationen über ihre innere Struktur werden zentral gespeichert und zusammengeführt. Auf dieser Basis erfolgt schließlich die grafische Visualisierung der Applikationen, sodass sich Entwicklerteams schnell und sicher einen Überblick für deren Weiterentwicklung verschaffen können.

Abb: Dreistufiges Application Mining

Der Source-Code wird über die verschiedenen Ebenen einer Applikation analysiert. In einem Application Warehouse werden die Informationen zusammengeführt und zur Nutzung bereitgestellt. Quelle: CAST GmbH