Richtlinien zur Abgrenzung und Bewertung von

Werbung
Fraunhofer
Institut
Experimentelles
Software Engineering
Richtlinien zur Abgrenzung und Bewertung
von Standardumgebungen für Webanwendungen
Autoren:
Michalis Anastasopoulos
Tim Romberg
Christoph Andriessens
Bulcsú Bartek
Stephan Kurpjuweit
Stefan Kettemann
Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministerium für Wirtschaft und Technologie unter
den Förderkennzeichen 16IN0047 und
16IN0048 gefördert. Die Verantwortung für
den Inhalt dieser Veröffentlichung liegt bei
den Autoren.
Version 1.0
September 2001
Eine Publikation des Fraunhofer IESE
Das Fraunhofer IESE ist ein Institut der
Fraunhofer Gesellschaft.
Das Institut überträgt innovative Software-Entwicklungstechniken, -Methoden
und -Werkzeuge in die industrielle Praxis.
Es hilft Unternehmen, bedarfsgerechte
Software-Kompetenzen aufzubauen und
eine wettbewerbsfähige Marktposition zu
erlangen.
Das Fraunhofer IESE steht unter der
Leitung von
Prof. Dr. Dieter Rombach
Sauerwiesen 6
67661 Kaiserslautern
Inhalt
1
2
3
4
5
Copyright
Abgrenzung und Bewertung bestehender Umgebungen und Technologien ...........7
Industriestandards....................................................................................................9
2.1
J2EE.............................................................................................................9
Produkte.................................................................................................................18
3.1
Bewertung Microsoft .NET Framework mit Visual Studio .NET.............18
3.2
Bewertung JBOSS 2.4.0 mit TOMCAT 3.2.3...........................................25
3.3
Bewertung LAMP......................................................................................35
Abschliessende Beurteilung ..................................................................................40
Literatur / Links .....................................................................................................42
 Fraunhofer IESE / Forschungszentrum Informatik
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Abgrenzung und Bewertung
bestehender Umgebungen und
Technologien
1
Abgrenzung und Bewertung bestehender Umgebungen
und Technologien
In diesem Dokument untersuchen wir einige der verfügbaren Umgebungen, die für die Entwicklung webfähiger Anwendungen mit unterschiedlichen Anforderungen - von kleinen 2-Tier- bis hin zu komplexen
Enterprise-Architekturen - zum Einsatz kommen. Wir bewerten die Produkte anhand des in Arbeitspaket
3 entwickelten Kriterienkatalogs.
Ziel der Bewertungen ist es, die Anwendung des Kriterienkatalogs zu demonstrieren. In einem gegebenen Entscheidungsfall in der Praxis wird man bei einzelnen Kriterien noch weiter in die Tiefe gehen müssen.
Als roter Faden für die nachfolgenden Bewertungen mag die hierarchisch aufgebaute Kriterienliste dienen, die den Aufbau des Kriterienkatalogs widerspiegelt (Details siehe dort).
Technische Funktionalität - Entwicklersicht
- User Information Management
- Access Management
- Information Preparation
- Session Management
- Transaction Management
- Web Presentation
- Datenbanken / Legacy Systeme
- Sicherheit
- Unterstützung eines effizienten Entwicklungsprozesses
- Qualitäten für die Implementierung der Business-Logik
- Marketing
- Wiederverwendung und Wartung
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
7
Abgrenzung und Bewertung
bestehender Umgebungen und
Technologien
- Benutzbarkeit
- Performanz
- Sonstiges
- Übergreifende Qualitätsmerkmale
Investitionssicherheit - Betriebswirtschaftliche Sicht
- Integration von Geschäftsprozessen
- Plattform & Technologie
- Herstellerunterstützung
- Kosten
- Unterstützung von Industriestandards
- Zertifizierung
Installation und Betrieb
- Skalierbarkeit
- 24/7 Betrieb
- Einfache Installation
8
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Industriestandards
2
Industriestandards
Viele der erhältlichen Produkte unterstützen die in Industriestandards vorgegebenen Spezifikationen, wie
z.B. J2EE, CORBA, COM, .NET. Exemplarisch behandeln wir hier J2EE, einen von SUN entwickelten
Standard.
2.1
J2EE
J2EE wird mittlerweile von zahlreichen kommerziellen Herstellern in ihren Umgebungen unterstützt und
ist auch als Open-Source Produkt erhältlich. Kommerzielle Produkte (Anbieter) sind: Websphere (IBM),
Weblogic (BEA). Ebenso gibt es eine Reihe von Open-Source Produkten, die J2EE unterstützen wie z.B.
JBOSS.
Die Hauptvorteile von J2EE sind die Plattformunabhängigkeit, die gute Herstellerunterstützung und die
Standardisierung. Nachfolgend beschreiben wir, wie Funktionalitäten grundsätzlich von J2EE und demnach von den meisten J2EE-Standardumgebungen unterstützt werden. Näheres zu den vorgestellten
Technologien findet sich in [Sun-F].
2.1.1
Technische Funktionalität - Entwicklersicht
2.1.1.1 User Information Management
Hierfür bietet Java keine explizite Unterstützung. Die Funktionalität ist vom Entwickler selbst zu realisieren. Allerdings hat Sun sogenannte Blueprints bereitgestellt, das heißt eine Sammlung von Vorgehensweisen und eine Referenzimplementierung, die auf den aktuellen J2EE-Technologien basieren und unter
anderem Benutzerverwaltung sowie Personalisierung abhandeln. Der Pet Store ist wohl die bekannteste
Referenzimplementierung einer J2EE-Anwendung, deren Quellcode und lauffähige Klassen zur Verfügung stehen (siehe [Sun-B]).
Kommerzielle J2EE-Produkte wie der BEA Personalization Server [BEA-B] bieten explizite Unterstützung für User Information Management an.
2.1.1.2 Access Management
Für die Authentifizierung und Autorisierung von Nutzern gibt es zwei Möglichkeiten:
• Nutzung der Standard-Sicherheitsmechanismen im Package java.security
• Nutzung der Java Authentication und Authorization Service (JAAS)
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
9
Industriestandards
Während java.security die Basisfunktionalitäten zur Rechtedefinition und -vergabe realisiert, erweitert
JAAS diese Mechanismen und implementiert entsprechende Klassen für die Benutzerauthentifizierung.
Dabei werden anonyme, einfache und SASL-Authentifizierung [ISI97] unterstützt. Der SASL-Standard
(Simple Authentication and Security Layer) definiert, wie eine Sicherheitsebene zwischen einem Nutzer
und einem Sicherheitssystem aufgebaut werden kann, die dem nachfolgenden Nachrichtenaustausch
zugrunde liegt. Kerberos [ISI97] und X.509 [IETF00] sind bekannte SASL-Mechanismen, die von JAAS
unterstützt werden.
2.1.1.3 Information Preparation
Dynamischer Inhalt
Für die Erstellung dynamischer Webseiten bieten sich die Technologien der Java Servlets und der Java
Server Pages an [Sun-C]. Die Servlets sind serverseitige Applikationen, die mit dem Webserver interagieren können, um eingehende HTTP-Requests zu bearbeiten und resultierende HTTP-Seiten zu erzeugen. Sie sind in der Lage Benutzersitzungen zu verwalten, und sie vermitteln oft zwischen dem Webserver und anderen Applikationen oder Datenbanken. JSPs sind HTML-Seiten mit zusätzlichen
Anweisungen, die dynamischen Inhalt liefern. Das heißt, JSPs können Servlets, Applikationen oder
Datenbanken anstoßen, um zur Laufzeit Informationen zu bekommen und sie in den HTML-Text einzubetten. JSPs sind letztendlich Servlets, da sie zur Laufzeit zu Servlets kompiliert werden.
Verschiedene Datenformate
Sun bietet eine Sammlung von APIs zur Unterstützung des XML-Standards an (siehe [Sun-C]).
Dazu gehören: XML-Verarbeitung (DOM, SAX, XSLT), Abbildung von XML-Schemata auf Java-Klassen, XML-basierter Nachrichtenaustausch (SOAP) und Zugriff auf XML-Registrierungen wie UDDI
oder ebXML.
Für andere populäre Datenformate (wie PDF, PS, DOC) gibt es separate Frameworks. Folgende Tabelle
enthält einige davon.
Tabelle 1...................................... Java-Frameworks für populäre Datenformate
Anbieter
Webadresse
Funktionen
Etymon PJ
http://www.etymon.com/pj/
index.html
Erzeugung, Modifizierung und Parsing von PDF-Dokumenten.
Openoffice.org
http://www.openoffice.org
Plattformunbhängige APIs für die
Kontrolle über (Star)Office-Dokumente
Sun Microsystems
http://java.sun.com/j2se/1.4/docs/
api/javax/print/package-tree.html
Unter anderem wird hier definiert,
wie die Umwandlung von Dateiformaten erfolgen kann. Allerdings
wird nur die Umwandlung von GIF,
JPEG, PNG sowie von Objekten, die
die Interfacs java.awt.print.Pageable und java.awt.print.Printable
implementieren, in PS mitgeliefert.
10
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Industriestandards
Browser-Unabhängigkeit
Browser-Unabhängigkeit ist nur für client-seitigen Java-Code relevant d.h. für Java-Applets und Javascripts. Applets sind allgemein unabhängig von dem eingesetzten Webbrowser. Bei Skripten können
Inkompatibilitäten vorkommen, die von Javascript-Entwicklern zu beachten sind. Der Grund dafür ist,
dass es für bestimmte Features unterschiedliche Interpretationen je nach Browser gibt.
Internationalisierung
Java ermöglicht die Entwicklung globaler Applikationen, die sich an die Umgebung und Gewohnheiten
des Benutzers anpassen [Sun-E]. Grundlegend ist dabei das Locale-Objekt, das jeweils mit einer Sprache
und einem Land verbunden wird. Darüber hinaus gibt es eine Reihe anderer Objekte, die von dem jeweils
definierten Locale abhängen. Die Klassen DateFormat und NumberFormat beispielsweise formatieren
Daten und Geldbeträge je nach aktuellem Locale. Ressourcen wie Texte, Fehlermeldungen oder andere
Java-Objekte können unter einem RessourceBoundle-Objekt zusammengefasst werden, das ebenfalls
Locale-spezifisch ist. Unterstützung von Unicode-Schriftarten ist ebenfalls vorhanden.
2.1.1.4 Session Management
Session Management wird an zwei Stellen innerhalb der J2EE-Plattform behaldelt, nämlich in der Servlet- und in der EJB-Spezifikation. Beide Technologien unterstützen die bekannten Strategien (Cookies,
URL-Rewriting, Datenbank usw.) für das Session-Tracking und die -Datenspeicherung. Auf der anderen
Seite wird es von Sun nicht spezifiziert wie Sessiondaten vor Ausfällen zu schützen sind. Im Hinblick
darauf, bieten Anbieter proprietäre Lösungen an.
Servlets
Servlets sind in der Lage Benutzersitzungen zu verwalten. Zu diesem Zweck gibt es das Interface HTTPSession. Entwickler sind in der Lage Sessiondaten in der Form von Attributen einer Session zuzuordnen.
Jedes Attribut wird mit einem Wert belegt, das ein beliebiges Java-Objekt sein kann. Obwohl Servlets
auch kompliziertes Sessionmanagement durchführen können, sind sie für Sessiondaten auf der Ebene der
Präsentation besser geeignet. Servlets können sich z.B. das von einem Nutzer ausgewählte Layout merken, während sie geschäftliche Sessiondaten den entsprechenden Session Beans übergeben.
Es darf nicht außer Acht gelassen werden, dass Servlets nur HTTP-Sessions unterstützen können.
Stateful Session Beans
Stateful Session Beans verwalten ebenfalls Sessioninformationen als Objektattribute. Session Beans sind
unabhänging vom Client-Typ. Das heißt, sie können von selbständigen Anwendungen, Webbrowsern
oder mobilen Endgeräten aus angesprochen werden. Der spezielle Fokus der Stateful Session Beans liegt
an den Business Operationen, die damit verbunden sind. Dies ist ein Grund warum Session Beans für
komplizierte Anwendungsszenarien besser geeignet sind. Ein weiterer Grund ist, dass viele EJB-Container besser mit Ressourcen umgehen können als die entsprechenden Servlet- (oder Web-) Container.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
11
Industriestandards
2.1.1.5 Transaction Management
Zur Verwaltung von Transaktionen bieten sich zwei Spezifikationen: der Java Transaction Service (JTS)
und der Java Transaction API (JTA). JTA stellt eine Abbildung auf Java des X/Open XA-Standards für
verteilte Transaktionen zur Verfügung, während JTS die Interoperabilität zwischen verschiedenen Transaktionsmanagern auf der Basis vom CORBA-Transaction Service und dem IIOP behandelt.
Die Unterstützung geschachtelterTransaktionen ist von dem jeweiligen Transaction Manager abhängig
und wird demnach in der Spezfikation nicht behandelt. Sun stellt einen Transaction Manager zur Verfügung, der aber keine genesteten Transaktionen erlaubt. Verschiedene Sperrstrategien sind möglich, allerdings von den Entwicklern selbst zu implementieren.
2.1.1.6 Web Presentation
Zur Unterstützung komfortabler Benutzerschnittstellen stehen Java-Applets zur Verfügung. Innerhalb
eines Java-Applet können alle bekannten AWT- oder Swing-Komponeten auftauchen. Der Nachteil ist,
dass die erfordelichen Klassen heruntergeladen werden müssen, was zeitaufwendig sein kann.
JSPs unterstützen die Bestimmung spezieller Seiten, die in Ausnahmesituationen angezeigt werden. Dies
ist möglich durch die Anweisung <%@ page errorPage="file_name" %>.
2.1.1.7 Datenbanken / Legacy Integration
Datenbanken
Für die Anbindung an Datenbanken bieten sich außer den proprietären SDKs oder APIs folgende Technologien:
• JDBC
Java Database Connectivity ermöglicht die Zusammenarbeit zwischen Java-Applikationen und relationalen Datenquellen. Es handelt sich um ein Low-Level-API, das die üblichen Datenbankoperationen (Anfragen, Updates) ermöglicht. Für den Zugriff auf eine Datenbank ist allerdings der entsprechende JDBC-Treiber notwendig.
• Entity Beans
Entity Beans sind Java-Objekte, die Daten aus einer Datenbank repräsentieren. Entwickler müssen
sich weder um Transaktionen noch um andere Details der Anbindung kümmern. Das erledigt der
jeweilige EJB-Container. Optional können Entwickler selbst die Anbindung realisieren.
• JDO
Java Data Objects sowie die EJBs erlauben einen objektorientierten Zugriff auf Datenquellen. Das
JDO-Modell, das noch im Aufbau ist, behebt allerdings einige EJB-Schwächen: Unter anderem ist es
einfacher, nutzt keine Deployment-Descriptors und bildet DB-Relationen auf OO-Klassen und -Hierarchien bidirektional und sicher ab. Das Castor-Projekt [www.castor.org] stellt eine erste Implementierung der JDO-Spezifikation von Sun dar, allerdings ohne hunderprozentige Komformität.
12
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Industriestandards
Legacy Integration
Zur Integration bereits bestehender Systeme hat Sun die Connector-Spezifikation entwickelt, die noch im
Aufbau ist. Dabei werden Rollen definiert, die die beteiligten Parteien darstellen (z.B. EJB, EJB-Container, Backend-System) sowie Komponenten und Interfaces, die von den entsprechenden Rollen zu implementieren sind. Die Spezifikation ist flexibel genug, um der Integration aller Arten von Backendsyststemen (z.B. ERP, DBMS usw) gewacshen zu sein. Das Hauptziel ist die Interoperabilität zwischen
unterschiedlichen J2EE-Servern und Backendsystemen. Große Anbieter wie SAP oder PeopleSoft haben
bereits ihre Unterstützung für die Connector-Spezifikation angekündigt. Diese Anbieter haben bisher
proprietäre Java-APIs angeboten.
Einen anderen Weg zur Integration öffnet die CORBA-Anbindung für Java. Dabei gibt es zwei Möglichkeiten: RMI over IIOP und IDL2Java. In beiden Fällen ist die Interaktion zwischen Java- und CORBAAnwendungen über das IIOP machbar. Das Socket-API kann auch unter Umständen für Integrationszwecke eingesetzt werden.
2.1.1.8 Sicherheit
Im Abschnitt 2.1.1.1 wurden die Sicherheitsmechanismen von Java bereits diskutiert. Diese tragen
ebenso zur sicheren Datenübertragung mittels Public Key Infrastructure, Datenverschlüsselung usw. bei.
2.1.1.9 Unterstützung eines effizienten Entwicklungsprozesses
Folgende Tabelle faßt den Beitrag einer Java-Umgebung zu einem effizienten Entwicklungsprozess Wir
betrachten hier den Basisbeitrag von Sun .
Tabelle 2 ........................................................... Effiziente Entwicklung mit J2EE
Assistenten
Das hängt vom eingesetzten J2EE-Server ab.
Beispielapplikationen
Zahlreiche Applikationen stehen zur Verfügung. Für jede J2EE-Technologie gibt
es Beispielapplikationen.
Code-Editor
Viele Code-Editoren für Java sind frei zu bekommen.
Debugger
Die Standard Java Virtual Machine bietet den auf Kommandozeile basierten
Debugger jdb an. Kommerzielle IDE’s integrieren jdb bzw. haben eigene Debuggers. Distributed Debugging wird von proprietären Lösungen und der neuen Java
Platform Debugger Architecture unterstützt.
Integration der IDE
Eine Reihe bekannter Java-IDEs gibt es bereits, die jetzt auch explizite Unterstützung für J2EE haben.
Management von Benutzerprofilen
Hängt von dem J2EE-Server ab.
Modularität
J2EE-Applikation sind von Natur aus modular ausgerichtet
Programmiersprachentransparenz
Meistens nicht nötig, da es nur in Java programmiert wird. Unterstützung anderer
Sprachen ist möglich (z.B. mit CORBA, jpython, Microsoft Virtual Machine,
Sockets, JNI).
Services
Der Bean Container kann auf Wunsch die Transaktionsverwaltung, Persistenz,
Sicherheit, Zwischenspeicherung und andere Hintergrundsaufgaben übernehmen.
Es werden Deployment Descriptoren verwendet, um die gewünschten Services
zu deklarieren. Allerdings ist die Deklaration nur zur Deployment-Zeit möglich.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
13
Industriestandards
Tabelle 2............................................................ Effiziente Entwicklung mit J2EE
Trennung Business Logik /
Data, Data Access Logik
Mit JDBC muss der Entwickler selbst die Trennung vornehmen. Mit Entity Beans
bzw. JDOs wird die Trennung mehr klargemacht.
Trennung Business Logik /
Präsentation
Ist durch die Nutzung von JSPs möglich..
Versionierung
JSR 147, ansonten proprietäre Lösungen
Vollständige Dokumentation
Alle Java-Technologien sind von Sun gut dokumentiert
Änderbarkeit
Sun und jeder J2EE-Server bieten eine Reihe fertiger Java-Klassen. Die sind meistens sehr gut änderbar..
Übersichtliche Darstellung
der Applikationskomponenten
Hängt von der J2EE-Umgebung ab.
Marketing
Sun und die Java Community, zu der eine große Menge wichtiger Softwareunternehmen gehören, reagieren in der Regel schnell auf neue Trends, wodurch Java Specification Requests und Java-Spezifikationen
entstehen. Allerdings kann es dauern, bis die Spezifikationen akzeptiert werden und die entsprechenden
Implementierungen vorhanden sind.
Wiederverwendung / Wartung
Java-Programme sind objektorientiert und damit gut wiederverwendbar. Das von Sun gelieferte JavaDoc
Werkzeug trägt nebenbei zu einer fachgerechten Dokumentation bei. Darüber hinaus liegt es an den entsprechenden Produkten (Server und IDEs), die Wiederverwendung weiter zu fördern.
Was die Portabilität von EJBs angeht, kann es bei Migration von Beans zwischen EJB Container zu
Schwierigkeiten kommen. Der Grund ist, dass die Interfaces zwischen EJB-Container und EJBs nicht
festgelegt sind. Deswegen kann es bei Beans mit Container Managed Persistence zu Inkompatibilitäten
kommen, obwohl der Bean-Code an sich portabel ist.
2.1.1.10Benutzbarkeit
Performanz
Eine typische lauffähige Java-Klasse besteht aus sogenannten Bytecodes, die von der jeweiligen Java
Virtual Machine zur Laufzeit interpretiert werden. Dies deutet automatisch Performanzeinbußen an.
Obwohl es umstritten ist, ob Java-Software überhaupt langsamer als C, C++, Fortran oder andere Programmiersprachen ist, haben Messungen für rechenintensive Systeme [Sch01] gezeigt, dass es tatsächlich so ist.
14
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Industriestandards
Die JIT-Technologie schafft Performanzoptiomierungen, dennoch ist aber im Vergleich zu anderen Optimierungstechniken noch zu jung und wenig ausgereizt. Dies ist ein Grund, warum die durch JIT gewonnene Performanz nicht ausreichend sind.
Tools wie JProbe [www.klgroup.com], Optimizelt! [www.optimizeit.com] oder VTune [developer.intel.com/vtune/index.htm] schaffen Abhilfe durch werkzeuggestützte Performanzanalyse von JavaProgrammen.
Sogenannte Native Compilers stellen eine andere Möglichkeit dar. Dabei werden Java-Klassen komplett
in plattformabhängige Binärdateien kompiliert. Die bekannten Java-IDEs VisualAge for Java und Visual
Café bieten leistungsfähige Native Compilers an. Zudem gibt es auch frei verfügbare Lösungen wie der
GNU Compiler für Java GCJ [gcc.gnu.org/java].
2.1.1.11Sonstiges
Übergreifende Qualitätsmerkmale
Sun bietet einen weitgehenden technischen Support für Java an. Zahlreiche Foren und Portale stehen
unter java.sun.com aber auch unter vielen anderen Webadreßen zur Verfügung, in den Erfahrungen über
Probleme und Lösungen der J2EE-Technologien ausgetauscht werden. Außerdem sind Anleitungen über
das systematische Vorgehen mit J2EE reichlich vorhanden. Die bereits erwähnten Blueprints geben Empfehlungen für den Entwurf von J2EE-Applikationen, während eine Reihe von Tutorials die Aneignung
der wichtigsten J2EE-Technologien wesentlich erleichtern.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
15
Industriestandards
2.1.2
Investitionssicherheit - Betriebswirtschaftliche Sicht
2.1.2.1 Integration von Geschäftsprozessen
Tabelle 3...................................................................................................................
SCM-Intelligenz
CRM-Intelligenz
Mit Java prinzipiell möglich, da die erforderlichen Technologien vorhanden sind:
javax.xml, javax.mail, javax.security, javax.naming, java.net usw.
Kommerzielle Werkzeuge bieten explizite Unterstützung an.
Integration existierender
Applikationen
Ist über CORBA, Sockets, JNI u.a möglich
Geschäftsprozeßmodellierung
Wird nur von kommerziellen Produkten angeboten.
Datenintegration
Über JDBC möglich.
2.1.2.2 Plattform & Technologie
Tabelle 4...................................................................................................................
Hardware
Hängt vom jeweiligen J2EE-Server ab. Für einfache Anwendungsszenarien sind
die Hardware-Anforderungen entsprechend niedrig..
Betriebssystem
Die meisten J2EE-Umgebungen unterstützen eine Reihe von Plattformen.
Komponententechnologie
Die Mehrheit der J2EE-Server unterstützen nur das EJB-Komponentenmodell.
Programmiersprache
Java und die EJB-Spezifikation.
2.1.2.3 Herstellerunterstützung
Tabelle 5...................................................................................................................
Bestehende Beziehung zur
Herstellerfirma
Unternehmensspezifisch.
Regionale Unterstützung
Das hängt vom ausgewählten J2EE-Produkt ab.
Freigabemuster
Java Community Process [www.jcp.org]
Popularität
Sehr populär.
Firmenstabilität
Sun Microsystems
2.1.2.4 Kosten
Tabelle 6...................................................................................................................
Entwicklungskosten
projektspezifisch
Betriebskosten
/
Lizenzkosten / Lizenzmodelle
Alle Java-Spezifikationen und -Technologien sind kostenlos verfügbar. J2EEServerpreise variieren. Open Source ist ebenfalls dabei.
16
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Industriestandards
2.1.2.5 Standards
Die gesamte J2EE-Platform ist auf Standards basiert. Folgende Tabelle enthält einige der von J2EE
geförderten Standards
Table 7:
Businesskommunikation
Das JSR 67 (Java APIs for XML Messaging) nimmt Rücksicht auf den RosettanNetStandard.
Internationalisierung
Unicode, ISO Language Codes
Middleware
CORBA, IIOP
Sicherheit
SSL, SASL, Kerberos, PKI
E-Mailing
MIME (S/MIME, POP3 und andere Standards gibt es als Third Party Lösungen)
Management / Administration
SNMP, WBEM
Namensdienste
LDAP
Datenformate
XML, DOM
Webservices
UDDI,WSDL, SOAP, ebXML(durch das JSR 67)
2.1.3
Installation und Betrieb
Die Sun-Spezifikationen behandeln das Thema Skalierbarkeit/Verfügbarkeit nicht. Lastverteilungs- und
Ressource Pooling Mechanismen werden von vielen J2EE-Servern angeboten. Was die Hardware-Unterstützung angeht, ist sie mit J2EE möglich, weil J2EE plattformunbahänging ist und daher keine Einschränkungen auf zusätzliche Hardware auferlegt.
Bevor eine EJB benutzt werden kann, ist ihre Installation mit Hilfe seines Deployment Descriptor erforderlich. Diese Descriptors gelten oft als nachteilhaft, weil ihre Erstellung bzw. Verfassung aufwending
sein kann. EJBs mit ihren Descriptors werden typischerweise in JAR-Dateien zusammengepackt, die
ohne Probleme verteilt werden können.
Administration
Die Java Management Extensions [java.sun.com/products/JavaManagement] kurz JMX erlauben die
Entwicklung von Applikationen, die leichter zu administrieren sind. Tools nutzen JMX, um Management-Konsolen zu realisieren, mit deren Hilfe Komponenten zur Laufzeit gestartet, runtergefahren,
manipuliert und überwacht werden können. Standardprotokolle wie SNMP oder WBEM werden dabei
unterstützt.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
17
Produkte
3
Produkte
Aus der Vielzahl der existierenden Umgebungen werden hier repräsentativ Microsoft.Net, JBOSS sowie
LAMP untersucht.
3.1
Bewertung Microsoft .NET Framework mit Visual Studio .NET
Die Entwicklungs- und Laufzeitumgebungen von Microsoft erfreuen sich insgesamt großer Verbreitung
und guter Unterstützung seitens des Herstellers. Verbreitet sind Visual Studio 6.0 (hier vor allem die
ASP-Technologie) als Entwicklungsumgebung und Windows 2000 (Internet Information Services) als
Laufzeitumgebung. Für größere Installationen mit Serverclustering und Failover ist die Windows-Version Advanced Server notwendig. Um den Betrieb in solchen Szenarien leichter zu steuern, gibt es das
Management-Frontend Application Center.
Microsoft hat vor einem knappen Jahr den Schwenk auf eine völlig überarbeitete Technologie - .NET angekündigt. Sie stellt in einigen Punkten einen deutlichen Bruch mit der Vergangenheit dar und übernimmt insbesondere Aspekte von Java. Entwicklungsumgebung (Visual Studio .NET) und Laufzeitumgebung (.NET Framework als Betriebssystemerweiterung sowie Internet Information Services mit Server
Extensions) stehen lauffähig zur Verfügung, sind aber noch im Beta-Status. Trotz der im Moment noch
geringen Verbreitung beurteilen wir hier daher .NET.
18
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
3.1.1
Technische Funktionalität - Entwicklersicht
3.1.1.1 User Information Management
BenutzerkontenverwalNicht im .NET-Framework enthalten. Microsoft bietet jedoch einen WebService mit
tung / Benutzerdatenbank. Namen Passport (www.passport.com) an. Dort können zentral Benutzerdaten verwaltet werden.
Vorteil: Der Benutzer muss seine Daten nur an einer Stelle pflegen und kann mit
einem Kennwort auf viele verschiedene Angebote zugreifen. Für den Anwendungsentwicklung erübrigt sich in manchen Fällen die Programmierung einer entsprechenden Komponente.
Nachteil dieser Lösung ist, dass manche Benutzer größere Bedenken haben, ein Passport-Konto anzulegen, als ein gesondertes für jedes Webangebot.
Regeln
Nein
3.1.1.2 Access Management
Authentifizierung
Auch hierfür stehen die Passport Services zur Verfügung.
Rechtevergabe / Autorisierung
3.1.1.3 Information Preparation
Integrierter Webserver
.NET ist über die Frontpage Server Extensions eng mit den Internet Information Services (Bestandteil des Betriebssystems Windows 2000) integriert.
Optimierung für Lesezugriffe
.NET kann lokale Kopien (XmlDataSets) aus Datenbankinhalten erzeugen. Auf die
Kopien kann auch schreibend zugegriffen werden.
Automatisierte Inhaltsauf- Das Microsoft .NET Framework bietet vielfache Möglichkeiten, Datenbankinhalte
bereitung
automatisch zu visualisieren. Siehe dazu “Generierung von Webseiten aus Datenbanken.
Unterstützung verschiede- XML (XSL, XPath) wird sehr gut unterstützt.
ner Datenformate
Browser-Unabhängigkeit
.NET-Inhalte werden auf allen gängigen Browsern korrekt dargestellt.
Generierung von Webseiten aus Datenbanken
Das .NET Framwork bietet leistungsfähige Klassen für eine Datenbankabstraktion an.
Hier sind u. a. DataGrid und Repeater zu erwähnen. Diese stellen eine Verbindung zur
Datenbank her und lesen bzw. schreiben Inhalte aus/in die Datenbank.
Der Entwickler muss nur noch mit Hilfe von Templates angeben, wie die einzelnen
Zeilen der automatisch erzeugten Tabelle aussehen sollen. Die Tabelle wird dann
selbstständig aus der Datenbank gefüllt.
Erstellung einer Site Map
Nein
Erstellung eines Inhaltsverzeichnises
Nein
Erstellung alphabetisches
Register
Nein
Suchmaschine
Nein. Aber die (sowieso vorhandenen) Internet Information Services bieten eine Suchfunktion über die statischen Inhalte eines Webangebots.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
19
Produkte
Internationalisierung
Die Entwicklung mehrsprachiger Angebote wird von der Entwicklungsumgebung
selbst nicht in besonderer Form unterstützt.
Das .NET-Framework enthält jedoch im Namespace System.Globalization Klassen,
die für die effiziente Umsetzung solcher Angebote benötigt werden (unterschiedliche
Datums- und Zeitformate, Währungen, Landessprachen, Sortierreihenfolgen, benutzter Kalender usw.)
Generation von GIFDateien.
Nicht in der Entwicklungsumgebung enthalten. Es gibt jedoch Bibliotheken, die solch
eine Funktion beinhalten.
Vermeidung ungültiger
Links
Nein
3.1.1.4 Session Management
Freie Auswahl zwischen
Session-Datenspeicherung auf der Client- und
auf der Server-Seite
.NET verfolgt prinzipiell den Ansatz, dass nach Bearbeitung eines Requests und
Absenden der Response alle benötigten Ressourcen wieder freigegeben werden. Aus
diesem Grund werden Informationen, die während der gesamten Sitzung gebraucht
werden, im sog. ViewState zum Client (und von dort wieder zurück zum Server)
geschickt. Technisch gesehen ist der ViewState ein verstecktes Formularfeld.
Benötigt ein Dienst größere Datenmengen als Sitzungskontext, so können diese auch
auf Server-Seite gespeichert werden. Dazu existiert ein Session-Objekt.
Die Sitzungsidentifikation geschieht wahlweise über Cookies oder erweiterete URLs.
Verschiedene Strategien
für server-seitige Sessiondatenspeicherung
Nein.
Management des
Abbruchs einer Sitzung
Definition der Länge der
Time-Out-Periode
Die Time-Out-Periode, nach deren Verstreichen die Sitzung vom Server beendet wird,
kann eingestellt werden.
Trennung des Session
Daten von Session Management Prozess
3.1.1.5 Transaction Management
Näheres zu diesem Thema unter dem Stichwort „Data Access Architecture“ auf MSDN (http://msdn.microsoft.com/library/default.asp?url=/
library/en-us/dnbda/html/daag.asp). Das verteilte Transaktionsmanagement beruht (noch) auf dem COM+-Dienst DTC. Die Integration mit
Funktionen des SQL Server ist auch hier sehr eng, obwohl auch andere Datenbanken benutzt werden können.
Automatisierte Transaktionsverwaltung
Ja. Automatische Transaktionen werden aus Performancegründen nur bei verteilten
Transaktionen empfohlen.
Implementierung eigener
Transaktionsmechanismen möglich
Ja.
Verschiedene Isolationsstufen
Ja.
Optimistische/Pessimistische Updates
Hängt von Datenbankkonfiguration ab.
Ersatzmechanismen /
Unterstützung für langlaufende Transaktionen
Ja, durch XML-Datasets.
20
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
Status-Überwachung
Ja.
Unterstützung verteilter
Transaktionen
Ja.
3.1.1.6 Web Presentation
HTML-Editor
Die Entwicklungsumgebung bietet dem Entwickler große Hilfen beim Gestalten
sowohl statischer als auch dynamischer Seiten. Dabei kann der Entwicklung per Dragand-Drop Komponenten auf der Webseite platzieren und deren Eigenschaften über
entsprechende Kontextmenüs einstellen.
Erzeugung von JavaApplets und/oder ActiveX-Steuerelementen
Nein
Definition von Seitenmodellen für Fehlermeldungen
Im Zuge von Fehlerbehandlungen können entsprechende Ausgaben erzeugt werden.
.NET selbst zeigt bei Laufzeitfehlern eine entsprechende Fehlerseite mit weiteren
Informationen an. Die Fehlerseite unterscheidet dabei automatisch zwischen Zugriffen
von innen und von außen. Nach außen werden nur eingeschränkte Fehlermeldungen
angezeigt, damit Hacker keine Informationen über Angriffsflächen erhalten.
3.1.1.7 Datenbanken / Legacy-Systeme
Zusammenarbeit mit verschiedenen Datenbanken
Alle SQL-Datenbanken können über ODBC angesprochen werden. Der Zugriff auf
den Microsoft SQL Server ist optimiert.
Werkzeuge zur DBAnbindung
Zur Anbindung an Datenbanken steht ein Assistent zur Verfügung, der anschließend
automatisch den entsprechenden Quelltext erzeugt.
Integrierte Datenbank
Nein
Einheitliche Daten
Nein
Zugriff auf ODBMS
Keine besondere Unterstützung.
Zugriff auf existierende
Anwendungen
Über Webservices oder COM.
Zugriff auf Mainframes
Mainframe-Funktionen müssen durch Webservice oder COM-Schnittsellen gewrappt
werden
Datenauswertung
Nein
3.1.1.8 Sicherheit
Vertraulichkeit
Mit Hilfe von SSL.
Integrität
Nein
Non-repudiation
Nein
Administration der Sicher- Nein
heitspolitik
3.1.1.9 Unterstützung eines effizienten Entwicklungsprozesses
Insgesamt sind die Architektur-Vorgaben bei .NET weniger klar als bei J2EE: Es gibt keine Entsprechung für Enterprise Java Beans, also für Fachkomponenten in der mittleren Schicht. Von Microsoft
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
21
Produkte
selbst werden hier je nach Quelle sehr unterschiedliche Techniken empfohlen. Bei .NET konzentriert sich
Architektur mehr auf Schnittstellen denn auf Implementierung; in dieses Konzept paßt, dass komplexere
Fachlogik in Komponenten gekapselt werden, auf die man dann aus der Webanwendung per Webservices-Schnittstelle zugreifen kann. Dies entspricht auch dem Vorgehen bei der Integration von LegacyKomponenten.
Tabelle 8.........................Qualitäten für die Implementierung der Businesslogik
Assistenten
Assistenten sind an verschiedenen Stellen vorhanden. So wird z. B. beim Erzeugen einer neuen Klassendatei automatisch das Grobgerüst dieser Klasse erzeugt,
das man dann ausfüllen muss. Auch wird der Entwickler bei etwas komplizierteren Arbeitsabläufen wie dem Zugriff auf Datenbank-Inhalte durch einen Assistenten schrittweise angeleitet.
Beispielapplikationen
Das .NET-Framework und Visual Studio .NET enthalten einige Beispiele, die
jedoch nicht ohne Weiteres zum Laufen gebracht werden konnten. Sie decken
einen großen Bereich der möglichen Einsatzfelder ab.
Code-Editor
Visual Studio .NET bietet dem Entwickler zahlreiche Hilfestellungen. Es gibt
sowohl automatische Einrückung als auch Syntaxmarkierung. Zusätzlich werden
dem Benutzer z. B. Auswahllisten mit möglichen Methoden, die auf dem aktuellen Objekt aufgerufen werden können, angeboten.
Debugger
Ein Debugger mit der Möglichkeit einer schrittweisen Ausführung und der Beobachtung einzelner Variablen ist vorhanden. Als Besonderheit ist zu erwähnen,
dass die gesamte Entwicklung schon auf dem späteren Server durchgeführt werden kann. Auch der Debugger kann online auf den evtl. entfernten Server zugreifen.
Integration der IDE
Die IDE ist auf eine 2-Schichten-Architektur mit direktem Zugriff von der Präsentationsschicht auf Datenquellen optimiert. Die gute Integration von Webservice-Schnittstellen macht das wieder etwas wett.
Management von Benutzerprofilen
Traditionell gut.
Modularität
Durch das Webserivces-Konzept gegeben.
Programmiersprachentransparenz
Die Laufzeitumgebung des Microsoft .NET Frameworks unterstützt zur Zeit
C++, C# und Visual Basic. Es können sogar in verschiedenen Klassen eines Projekts unterschiedliche Sprachen verwendet werden - trotzdem funktioniert ihr
Zusammenspiel.
Trennung Business Logik /
Data, Data Access Logik
Wie oben angedeutet, nicht so klar wie bei Java.
Trennung Business Logik /
Präsentation
.NET unterstützt eine Trennung zwischen Geschäftslogik und Präsentation. Die
Präsentation (von dynamischen Inhalten) wird mittels ASP+-Seiten vorgenommen, die Durchführung von Geschäftslogik über extra Klassen. Somit ist es möglich, die selbe Geschäftslogik von verschiedenen Präsentationsseiten zu
verwenden und so z. B. verschiedene Sprachversionen o. Ä. zu verwirklichen.
Übersichtliche Darstellung
der Applikationskomponenten
Visual Studio .NET stellt die eizelnen Projektdateien nach Typ (HTML, ASP,
Klasse usw.) sortiert in einer baumförmigen Struktur dar.
Prozesse (z. B. ein Bestellvorgang) mit festgelegter Ausführungsreihenfolge verschiedener Dateien (HTML-/ASP-Seiten, Geschäftslogik) werden jedoch nicht
grafisch veranschaulicht.
Versionierung
Da Visual Studio .NET immer auf dem (späteren) Server arbeitet, werden dort
auch alle Änderungen sofort wirksam.
Möchte man Zwischenergebnisse und/oder lauffähige und fehlerfreie Zustände
für die Zukunft sichern, so muss man ein externen Versionierungssystem in
Anspruch nehmen.
22
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
Tabelle 8 ........................ Qualitäten für die Implementierung der Businesslogik
Vollständige Dokumentation
Es gibt zu allen Punkten eine - auch grafisch ansprechende - Dokumentation im
HTML-Stil. Dort sind z. B. alle Methoden der Klassen mit Erklärungen aufgeführt. Oft findet man auch Quellcode-Beispiele, die man - mit leichten Abänderungen - in eigenen Programmen verwenden kann.
Im jetzigen Beta-Stadium kann man allerdings noch manchmal kleine Lücken bei
allgemeinen Erläuterungen, wie gewisse Tätigkeiten Schritt für Schritt ausgeführt werden müssen, finden.
Marketing
Die Unterstützung durch einen großen Betriebssystem-Hersteller und eine große Anzahl von Allianzen
kann als optimal angesehen werden. Während in der Vergangenheit die Microsoft-Werkzeuge besser für
kleinere Entwicklungen und weniger für größere Unternehmensanwendungen geeignet waren, könnte
sich das in der Zukunft auch bei letzteren verbessern. Microsoft engagiert sich nämlich zunehmend in
Partnerschaften mit großen IT-Dienstleistern und bietet selbst zunehmend Dienste in diesem Bereich an.
Wiederverwendung und Wartung
In diesem Bereich liegen noch recht wenig Erfahrungen vor. Wiederverwendung wird erleichtert durch
eine plattformübergreifend unterstützte Komponententechnologie - den Webservices. Im Vergleich zu
Visual Studio 6.0 und ASP hat sich die Wartbarkeit der Präsentationsschicht deutlich verbessert.
Die Performanz der .NET Framework-Umgebung ist noch Gegenstand von Optimierungen. Daher exisitieren noch keine offiziellen Benchmarks. Da das komfortable Speichermanagement und andere Aspekte
der Ausführungsumgebung Java sehr ähnlich sind, kann man ähnliche Werte erwarten. Anzumerken ist,
dass ASP-Seiten bei Bedarf kompiliert werden (also nach dem Deployment), was ihre Ausführung bei
zukünftigen Aufrufen beschleunigt.
Anpassbarkeit
Fertige Projekte unter .NET sollten in allen anderen Umgebungen (mit .NET Framework) ebenfalls ohne größe Änderungen lauffähig sein.
Dokumentation
Das Framework ermöglicht das Kommentieren von Methoden und Klassen.
Dabei werden dem Benutzer jeweils Vorlagen an die Hand gegeben, die dieser
mit den entsprechenden Inhalten (Parameter, Exceptions, Ausgaben usw.) füllen
muss.
Aus diesen Kommentaren im Quelltext kann automatisch eine Dokumentation im
HTML-Stil erzeugt werden.
Fehlerentdeckung
Im Fehlerfall gibt der Server die Inhalt des Programmstacks mit allgemeinen
Fehlerhinweisen aus. Diese Angaben helfen jedoch nicht immer und sind nicht so
ausführlich wie man sich das als Entwickler wünschen könnte.
Kommentare
Soweit Visual Studio .NET automatische Codeabschnitte einfügt, erzeugt es auch
entsprechende Kommentare. Die gesamten vorhandenen Klassen des Frameworks sind dokumentiert. Diese Dokumentation kann in einem Art HTML-Stil
eingesehen werden.
Konfigurationsmanagement
Assemblies erlauben ein fehlerfreieres Upgrade von Komponenten. So können
mehrere Versionen einer Komponente auf einem System installiert sein und werden automatisch gemanagt.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
23
Produkte
Portabilität
Gut, solange die .NET Plattform nicht verlassen wird. Sie soll zukünftig unter
verschiedenen Systemgrößen, vom Smartphone bis zur Mehrprozessor-64-bitMaschine zur Verfügung stehen. Portabilität von .NET ist quasi unmöglich, da
die verwendeten APIs sehr umfangreich sind.
3.1.1.10Sonstiges.
Tabelle 9..........................................................Übergreifende Qualitätsmerkmale
Einführung der Umgebung
Schulungen werden angeboten.
Support
Von verschiedenen Anbietern.
Anleitung
Ausführliche Dokumentation aller Klassen und deren Methoden sowie BeispielQuelltexte sind vorhanden.
Erfahrungen
Foren sind in Fülle vorhanden. Neben den von Microsoft moderierten MSDNForen und der MSDN-Bibliothek gibt es auch viele freie Foren in verschiedenen
Sprachen.
Hilfesystem
Visual Studio .NET enthält (zusätzlich zur Dokumentation des Frameworks) eine
Hilfefunktion für die Benutzung der Programmierumgebung. Allerdings muss
man hier aus einer alphabetischen Indexliste das gewünschte Thema aussuchen.
3.1.2
Investitionssicherheit - Betriebswirtschaftliche Sicht
3.1.2.1 Integration von Geschäftsprozessen
Tabelle 10.................................................................................................................
SCM-Intelligenz
CRM-Intelligenz
Hierfür gibt es noch wenig Unterstützung. .NET wird auch noch nicht als Integrationsplattform wie Java eingesetzt.
Integration existierender
Applikationen
Z.B. über XML, Webservices
Geschäftsprozeßmodellierung
Im Rahmen des Biztalk Server (unter dem Stichwort Orchestration) - nicht Teil
des Standard .NET Frameworks
Datenintegration
Über verschiedene Datenbankschnittstellen, von ODBC bis ADO.NET
3.1.2.2 Plattform & Technologie
Das .NET Framework steht im Moment nur auf Windows zur Verfügung. Entwicklungen für Linux sind
im Gange, aber noch nicht einsetzbar. Einmalig ist die Möglichkeit, verschiedene Programmiersprachen
zu kombinieren. Mitgeliefert werden C++, C# und Visual Basic, es existieren Compiler für u.a. COBOL,
Eiffel und Perl. Allerdings sind bereits vorhande Programme aufgrund der unterschiedlichen APIs nicht
direkt einsetzbar. Für Java existieren Migrationswerkzeuge.
24
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
3.1.2.3 Herstellerunterstützung
Da Microsoft nicht nur Plattformen wie Windows und .NET, sondern auch viele Applikationen selbst
herstellt, ist die ständige Weiterentwicklung der Plattform gesichert. Mit MSDN steht die mit am besten
geführte Entwickler-Community zur Verfügung.
Tabelle 11 .................................................................................................................
Entwicklungskosten
Betriebskosten
Lizenzkosten / Lizenzmodelle
Alle Java-Spezifikationen und -Technologien sind kostenlos verfügbar. J2EEServerpreise variieren. Open Source ist ebenfalls dabei.
3.1.2.4 Standards
.NET integriert praktisch alle von Microsoft propagierten DeFacto-Standards. Zusätzlich ist zu erwähnen, dass alle Webservice-Standards auch von anderen Herstellern unterstützt werden: Dazu gehören die
UDDI-Mitglieder IBM und Ariba, aber auch Sun und Oracle. Die neue Programmiersprache C# ist bei
der ECMA, einem ursprünglich europäisch orientierten, jetzt weltweit agierenden freien Industriekonsortium, als Standard verabschiedet.
3.1.3
Installation und Betrieb
In diesem Bereich liegen noch recht wenig praktische Erfahrungen vor. Zu erwähnen ist der AssemblyMechanismus, der das Upgrade von Komponenten unterstützt. Dadurch können ältere Anwendungen
ältere Versionen der Komponente weiterhin benutzen, während neue Anwendungen die neue Version
benutzen.
Für das Monitoring des Webserver-Betriebs gibt es eine gesondert zu erwerbende Anwendunge, das
Application Center.
3.2
Bewertung JBOSS 2.4.0 mit TOMCAT 3.2.3
JBOSS ist eine Open-Source Implementierung von J2EE [www.jboss.org]. Von Vorteil ist genau dies die Unterstützung von J2EE - , denn damit sind viele unserer Anforderungskriterien bereits abgedeckt.
Allerdings sind folgende Nachteile zu beachten:
Das Produkt verfügt nur über eine eingeschränkte Werkzeugunterstützung (z.B. keine integrierte IDE,
keine Assistenten/Wizards). Das bedeutet, dass relativ viel “von Hand“ gemacht werden muss, was sich
negativ auf die Produktivität und damit auf die Entwicklungskosten auswirkt. Bzgl. Fehlertoleranz und
Performance bietet JBOSS keine bzw. nur eingeschränkte Mechanismen (z.B. kein Load-Balancing).
Deswegen sollte JBOSS nicht für unternehmenskritische Anwendungen eingesetzt werden.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
25
Produkte
3.2.1
Technische Funktionalität - Entwicklersicht
3.2.1.1 UserInformation Management
Tabelle 12.................................................................................................................
BenutzerkontenverwalKeine integrierte Benutzerverwaltung. Sie ist von den eingesetzten Mechanismen für
tung / Benutzerdatenbank. Sicherheit und Personalisierung abhängig.
Regeln
Die Definition von Sicherheitsregeln ist möglich.
3.2.1.2 Access Management
Tabelle 13.................................................................................................................
Authentifizierung
Ja. Verschiedene Mechanismen sind angeboten (Plain Text, Secure Remote Password
Protocol)
Rechtevergabe / Autorisierung
Ja, durch JAAS.
3.2.1.3 Information Preparation
Integrierter Webserver
JBoss hat einen eigenen Webserver. Seine Aufgabe ist, das dynamische Laden von
Klassen mit RMI zu vereinfachen und daher ist er nicht als Hauptserver zu benutzen.
JBoss bietet aucheinen HTML-Adaptor für Administrtation mittels JMX an.
Tomcat verfügt auch über einen integrierten Webserver. Der ist eher für Testzwecke
geeignet. Anbindung mit anderen Webservern wird empfohlen. Das Interface mit IIS,
Netscape und Apache wird beschrieben.
Integrierter Webcontainer
/ Anbindung externer
Webcontainer möglich
Tomcat und Jolt.
Optimierung für Lesezugriffe
Mit Nutzung externer Mittel möglich (z.B. Apache-Webserver für HTML-Caching)
Automatisierte Inhaltsauf- Servlets und JSPs. Eine HTML-basierte JMX-Konsole wird automatisch vom Server
bereitung
generiert.
Unterstützung verschiede- XML
ner Datenformate
Browser-Unabhängigkeit
Nein
Generierung von Webseiten aus Datenbanken
Nein
Erstellung einer Site Map
Nein
Erstellung eines Inhaltsverzeichnises
Nein
Erstellung alphabetisches
Register
Nein
Suchmaschine
Nein
Internationalisierung.
Ja. Servlets können die vom Browser akzeptierten Sprachen abfragen und entsprechende Ressourcen liefern.
26
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
Generierung von Grafiken.
Nein
Vermeidung ungültiger
Links
Nein
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
27
Produkte
3.2.1.4 SessionManagement
Tabelle 14.................................................................................................................
Freie Auswahl zwischen
Session-Datenspeicherung auf der Client- und
auf der Server-Seite
Sessions sind mit Servlets und Stateful Beans zu handhaben. Mit Servlets werden Sessions standardmäßig mit Cookies identifiziert und die Daten werden im WebserverProzeß gehalten. Dabei können Session-Daten auch im URL übergeben werden.
Verschiedene Strategien
für server-seitige Sessiondatenspeicherung
Standardmäßig werden die Sessiondaten im Serverprozess gespeichert und bei Passivierung (von Stateful Beans) auf der Festplatte. Übergabe der Sessiondaten im URL
wird ebenfalls unterstützt.
Management des
Abbruchs einer Sitzung
Möglich (z.B. durch die Methode ejbRemove)
Definition der Länge der
Time-Out-Periode
Ja
Trennung des Session
Daten von Session Management Prozess
Bei Passivierung ja. Ansosnten werden die Daten im Cache gehalten und gehen bei
Absturz verloren.
3.2.1.5 Transaction Management
Tabelle 15.................................................................................................................
Automatisierte Transaktionsverwaltung
Ja
Implementierung eigener
Transaktionsmechanismen möglich
Ja
Verschiedene Isolationsstufen
Ja
Unterstützung Optimistischer/Pessimistischer
Updates
Bei CMP werden Pessimistische Updates eingesetzt. Optimistische Updates sind mittels BMP zu erreichen.
Ersatzmechanismen /
Unterstützung für langlaufende Transaktionen
Nein.
Status-Überwachung
Nicht automatisch. Allerdings möglich durch JMX. TransactionManager ist ein
MBean.
Unterstützung verteilter
Transaktionen
Durch JTS/JTA
3.2.1.6 Web Presentation
Tabelle 16.................................................................................................................
HTML-Editor
Nein
Erzeugung von JavaApplets und/oder ActiveX-Steuerelementen
Nein
28
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
Tabelle 16 .................................................................................................................
Definition von Seitenmodellen für Fehlermeldungen
Teilweise möglich durch das Editieren von Property Files. Diese Files definieren das
Aussehen von Fehlermeldungen. Ansonsten bieten sich die Fehlerseiten, die mit Hilfe
des JSP Tags <%@ page errorPage="file_name" %> bestimmt werden.
3.2.1.7 Datenbanken / Legacy-Systeme
Tabelle 17 .................................................................................................................
Zusammenarbeit mit verschiedenen Datenbanken
Durch JDBC (Treiber mit und ohne XA-Interfaces unterstützt)
Werkzeuge zur DBAnbindung
Nein, es werden XML-Dateien genutzt, die von Hand editiert werden.
Strategien zur DB-Anbindung
Es sind verschiedene Optionen für transaktionale Operationen angeboten (Caching,
Ohne Caching, Lazy Read)
Integrierte Datenbank
Nein. Allerdings werden Hypersonic und InstantDB mitgeliefert.
Einheitliche Daten
Einheitlicher Zugriff auf Datenquellen mittels JDBC. Kein Datamerge.
Zugriff auf ODBMS
Im Aufbau (Castor Projekt)
Zugriff auf existierende
Anwendungen
Das JBossCX Project hat als Ziel, eine Implementierung des JBoss-Seite der JCASpezifikation
Zugriff auf Mainframes
Nein
Datenauswertung
Nein
3.2.1.8 Sicherheit
Tabelle 18 .................................................................................................................
Vertraulichkeit
Mittels JAAS
Integrität
Nachrichtenintegrität kann durch die Nutzung von Signaturen gewährleistet werden.
Datenintegrität ist mit Transaktionen zu erreichen.
Non-repudiation
Mit Logging. Erweiterung des Standard-Logging ist allerdings nötig.
Administration der Sicher- Durch das Editieren von Deployment Descriptors und Property Files.
heitspolitik
Deklaration von Sicherheitsattributen zu verschiedenen Zeitpunkten
Nur zur Deployment-Zeit werden die Sicherheitsattribute gesetzt.
3.2.1.9 Unterstützung eines effizienten Entwicklungsprozesses
Tabelle 19 ................... Qualitäten für die Implementierung der Business-Logik
Assistenten
Copyright
Nein
 Fraunhofer IESE / Forschungszentrum Informatik 2001
29
Produkte
Tabelle 19....................Qualitäten für die Implementierung der Business-Logik
Beispielapplikationen
JBoss stellt folgende Beispielapplikationen zur Verfügung
• Stateless Session Bean zur Zinsenberechnung
•
2 CMP Entity Beans
•
Jaas Beispiel mit gesichertem Servlet und zwei einfachen Session Beans (stateless und stateful)
Zudem bietet Tomcat eine Reihe von Beispiel-JSPs und -Servlets an.
Bei JBoss wird nur ein Teil in der Dokumentation behandelt. Ganz ohne Aufwand sind die Beispiele nicht laufen zu lassen..
Bei Tomcat sind alle Beispiele sofort lauffähig und meistens selbsterklärend..
Code-Editor
Nein.
Debugger
Nur als Teil des Logging-Services für SQL-Debugging. Ansonsten ist Debugging
durch Integration externer IDE möglich.
Erweiterbarkeit
Die Integration selbstgebauter Plugins (z.B Interceptor-Dienste) ist möglich.
Integration der IDE
Keine integrierte IDE. Anbindung mit JBuilder, Forte und Visual Age wird in der
Dokumentation behandelt.
Management von Benutzerprofilen
Nein
Modularität
Ja
Programmiersprachentransparenz
Java ist die Hauptprogrammiersprache. Features von Java wie RMI-IIOP können
die transparente Anbindung mit anderen Sprachen ermöglichen.
Services
Trennung Business Logik /
Data, Data Access Logik
Ja, durch Entity Beans und JDO (im Aufbau). JDBC kann ebenfalls eingesetzt
werden, wenn Bulky Reads gewünscht sind.
Trennung Business Logik /
Präsentation
Das MVC-Pattern wird mit Hilfe von JSPs unterstützt. Nutzung von XML/XSLT
ist ebenfalls möglich.
Versionierung
Mit externen Tools wie CVS
Vollständige Dokumentation
Die Online-Dokumentation von JBoss ist gut. Allersdings an manchen Stellen
unvollständig. Zum Beispiel sind nicht alle Property-Files erklärt. Die mitgelieferte Dokumentation hat Mängel. Es wird zum Beispiel von einem XML-Editor
gesprochen, der nicht vorhanden ist. Es gibt auch eine “printable” Version der
Dokumentation, als großes HTML Dokument (ca. 330 Seiten), das heruntergeladen werden kann.
Die Tomcat-Dokumentation scheint ausreichend zu sein.
Änderbarkeit
Vorgefertigte Lösungen wie Interceptor-Services sind änderbar durch Auseinandersetzung mit dem Quellcode oder in manchen Fällen mit den Konfigurationsdateien.
Übersichtliche Darstellung
der Applikationskomponenten
Teilweise gibt es entrsprechende Diagramme.
Tabelle 20............................................................................................... Marketing
Analyse
30
Für die Analyse von Zugriffsdaten stehen Log Files zur Verfügung. Eine Erweiterung
ist allerdings für Detailanalysen nötig.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
Tabelle 20 ............................................................................................... Marketing
Momentan laufen mehrere Projekte, die die Erweiterung von JBoss als Ziel haben.
Reaktion des Hersteller
auf Trends / Unterstützung Messaging, Connectors, und SOAP sind einige der angestrebten Verbesserungen.
durch Add Ons
Wiederverwendung und Wartung
Tabelle 21 .................................................. Dimensionen der Wiederverwendung
Wiederverwendbare Artefakte
Zur Wiederverwendung stehen der JBoss-Quellcode und die mitgelieferten Beispielapplikationen zur Verfügung.
Abstraktion
Entwickler müssen sich mit den Javadocs oder den Code-Kommentaren auseinandersetzen, um wiederverwendbare Funktionalität zu erkennen. Für die Beispielapplikationen gibt es Online-Beschreibungen und Code-Kommentare.
Auswahl
Detailierte Kommentare in den Javadocs sind oft nicht vorhanden, was die Auswahl schwierig macht.
Spezialisierung
Unter anderem mit Vererbung und overloaded Constructors.
Integration
Einfach
Tabelle 22 .................................................... Qualitätsmerkmale für die Wartung
Anpassbarkeit
Entwickelte Beans sind in andere EJB-Applikationsserver anpassbar. Keine
WORA-Gewährleistung, da JBoss nicht zertifiziert ist.
Dokumentation
Javadoc kann eingesetzt werden.
Einfluß von Änderungen
Nein, da keine IDE integriert ist. Änderungen sind erst bei Deployment zu erkennen.
Fehlerentdeckung
Fehlermeldungen, die der JBoss-Server erzeugt, sind Java Exceptions. Die JBossspezifische Exceptions sind minimal dokumentiert.
Kommentare
Es wird kein Code generiert. Der Quellcode ist mit javadoc dokumentiert..
Konfigurationsmanagement
Nein.
Portabilität
wurde nicht untersucht
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
31
Produkte
3.2.1.10Benutzbarkeit
Tabelle 23............................................................................................. Performanz
Asynchrone Aufrufe
Ja.
Caching
Ja
Data Merge
Nein
Garbage Collection
Ja
Kompilierung
JIT für Servlets und EJBs. Laden prekompilierter JSPs.
Load Balancing
Nein
Logging-Service konfigurierbar
Teilweise
Message Queuing
Ja
Monitoring
Im Aufbau
Programmieren für Parallelität
Ja (Java)
Service-Deaktivierung
Ja
Stored Procedures
Ja (durch JDBC)
Tuned Updates
Ja (es werden nur die DB-Felder aktualisiert, die eigentlich geändert wurden)
Tuning
Möglich, Neustart ist oft erforderlich.
Vererbung
Dynamisch
Verschiedene Isolationsstufen für Transaktionen
Ja
Zusammenhang Performanz - eingesetzes
Betriebssystem
Wesentliche Performanzunterschiede zwischen Windows- und Linux-Installationen
bei steigenden Clienzugriffen (auf Linux Threading Mechanismus zurückzuführen)
3.2.1.11Sonstiges
Tabelle 24........................................................Übergreifende Qualitätsmerkmale
Einführung der Umgebung
Schulungen werden angeboten.
Support
Technischer Support wird gegen Gebühr angeboten.
Anleitung
Teilweise.
Erfahrungen
Foren und Mailing-Listen stehen kostenlos zur Verfügung
Hilfesystem
Nein
32
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
3.2.2
Investitionssicherheit - Betriebswirtschaftliche Sicht
3.2.2.1 Integration von Geschäftsprozessen
Tabelle 25 .................................................................................................................
SCM-Intelligenz
Messaging als zugrundeliegende Technologie wird im Projekt JBossMQ behandelt
CRM-Intelligenz
Nein
Web Services
Die JBoss ZOAP Project soll die Implementierung von Web Services mit JBoss
ermöglichen.
Integration existierender
Applikationen
JBossCX Project
Geschäftsprozeßmodellierung
Nein
Datenintegration
Mittles JDBC oder Java Data Objects im Castor Project
3.2.2.2 Plattform & Technologie
Tabelle 26 .................................................................................................................
Hardware
Keine Einschränkungen für die eingesetzte Hardware
Betriebssystem
unabhängig
Komponententechnologie
EJB
Programmiersprachen
Java
3.2.2.3 Herstellerunterstützung
Table 27:
Bestehende Beziehung zur
Herstellerfirma
Unternehmensspezifisch
Regionale Unterstützung
Trainings vor Ort möglich. Beiträger weltweit zu kontaktieren.
Freigabemuster
Open Source
Popularität
Gut wegen Open Source and EJB
Firmenstabilität
keine Aussage möglich
3.2.2.4 Kosten
Table 28:
Entwicklungskosten
Negativ wirkt sich die eingeschränkte Werkzeugunterstützung aus (IDE, Assistenten) aus. Ansonsten projektabhängig.
Betriebskosten
Wartung wird erschwert durch unvollständige Dokumentation, kostenlose
Lizenz, Installation, Hardwarekosten/-anforderungen vergleichbar mit anderen
Produkten.
Lizenzkosten / Lizenzmodell Produkt ist kostenlos zu bekommen. Support und Training nicht.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
33
Produkte
3.2.2.5 Unterstützung von Industriestandards.
Tabelle 29.............................................................................. App2Web-Standards
Businesskommunikation
Nein
Middleware
EJB
Sicherheit
JAAS, Secure Remote Password(SRP) Protocol
Management / Administration
JMX
Namensdienste
JNDI
Dynamische Inhaltsgenerierung
Servlets (bei Nutzung von Tomcat oder anderer Web Container)
Dynamische Webseiten
JSP
Datenformate
HTML,XML
Webservices
SOAP (im Aufbau: JBOSS/ZOAP Project)
3.2.2.6 Zertifizierung
Keine Zertifizierung
3.2.3
Unterstützung bei Installation und Betrieb
3.2.3.1 Skalierbarkeit
Tabelle 30.................................................................................................................
Clustering
Nein
Ressource Pooling
Ja
Lastverlagerung auf Client-Seite
Ja (dynamische Proxies auf Client-Seite)
3.2.3.2 24/7-Betrieb
Tabelle 31.................................................................................................................
Fehlertoleranz
Nein
Automatisches Deployment
Ja
3.2.3.3 Einfache Installation
Die Installation von JBoss ist einfach und erfolgt auch auf Rechnern mit knappen Ressourcen (z.B. Pentium II mit 64MB RAM und 10GB Plattenspeicher). Die Nutzung der ant Utility (möglicherweise in
Kombination mit dem EJX Editor) erleichtert wesentlich das Deployment von Beans.
Nach Installation werden zahlreiche Property Files zur Konfiguration des Servers erzeugt. Die Einträge
in diesen Files sind nicht 100% dokumentiert.
34
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
3.3
Bewertung LAMP
Unter LAMP versteht man die Kombination aus dem Betriebssystem Linux, dem Apache Web-Server,
der Datenbank MySQL und der Skriptsprache PHP (oder auch Perl). Diese Technologien sind gut aufeinander abgestimmt und werden in Zigtausenden, vor allem kleineren Webpräsenzen verwendet. Sie zeichnen sich durch offenen Quellcode und geringe Kosten aus. Die Nutzung von MySQL für kommerzielle
Zwecke ist lizenzpflichtig, während Linux, Apache und PHP lizenzfrei sind.
Bei vielen Providern kann man inzwischen Webpräsenzen aufbauend auf diesen Technologien auf bestehenden Servern laufen lassen, d.h. ohne einen ganzen Server zu mieten.
Für exotische Anforderungen oder Forschungsprototypen sind die Technologien aufgrund des offenen
Quellcodes interessant, der im Notfall Anpassungen erlaubt.
Während Stabilität und Performance bei einfacheren, kleinen Webpräsenzen äußerst gut sind, ist der
Ansatz weniger für komplexe Geschäftsanwendungen geeignet und unterstützt Lastverteilung und Failover nur mäßig.
3.3.1
Technische Funktionalität- Entwicklersicht
Allgemein läßt sich sagen, dass für alle verwendeten Standards und alle wesentliche Betriebssystem- und
Webserver-Funktionen komfortable Bibliotheken zur Verfügung stehen. Für typische Aufgaben bei der
Entwicklung von Webseiten wie komplexe HTML-Controls gibt es dagegen meistens keine Bibliotheken
und schon gar keine Unterstützung durch die Entwicklungsumgebung. Dieser Mangel wird dadurch
etwas gemildert, dass aufgrund der großen Verbreitung eine Vielzahl von Code-Schnipseln auf dem Web
zur Verfügung stehen.
3.3.1.1 Zum User Information Management und Access Management
Für das Verwalten von Benutzerkonten gibt es keine besonderen Bibliotheken. Für das Access Management bietet der Apache Server einige Mechanismen, wie SSL und die Verwaltung von Sessions.
Optimierung für Lesezugriffe
Der Apache-Webserver kann für statische Webseiten als Caching-Proxy arbeiten. Zum
cachen von dynamischen PHP Seiten hat die Firma Zend Technologies den Zend Accelerator sowie den Zend Optimizer entwickelt.
Automatisierte Inhaltsauf- Dynamische Daten wie Datenbankfelder werden einfach in HTML-Seiten einfügt
bereitung
(spezielle Tags kennzeichnen den dynamischen Teil.)
Unterstützung verschiede- Bibliothek zur Erzeugung von PDF Dateien wird mitgeliefert
ner Datenformate
Die Erzeugung von XML-Daten ist prinzipiell möglich und wird durch funktionen
zum Parsen von XML-Daten und unterstützung für XSLT
Zur Erzeugung von Postscript-Dateien existiert die freie Bibliothek pslib. (http://
pslib.sourceforge.net/)
Erstellung ortsabhängiger
Anwendungen
Keine besondere Unterstützung.
Erstellung von endgeräte- Die von PHP erzeugeten Seiten sind nicht auf HTML beschränkt. Es ist z.B. durchaus
abhängigen Anwendungen möglich, WML-Seiten zu liefern.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
35
Produkte
Erstellung von browserun- PHP ist nicht darauf angewiesen, dass ein gewisser Mindestumfang an HTML unterabhängigen Anwendungen stützt werden muss. Um mehrere Möglichkeiten anbieten zu können, besteht die Möglichkeit z.B. den verwendeten Browser abzufragen.
Erstellung von bandbreitenunabhängigen Anwendungen
Auch dieser Punkt hängt letztendlich nur davon ab, was für Webseiten der Entwickler
generieren lässt.
Generierung von Webseiten aus Datenbanken
Ist problemlos möglich, da auf die MySQL-Datenbank mit SQL-Standard Befehlen
zugegriffen werden kann.
Erstellung einer Site Map
Nicht enthalten; für statisches HTML existieren diverse freie Tools.
Erstellung eines Inhaltsverzeichnises
Nicht enthalten; für statisches HTML existieren diverse freie Tools.
Erstellung alphabetisches
Register
Nicht enthalten; für statisches HTML existieren diverse freie Tools.
Suchmaschine
Für statisches HTML existieren diverse fertige Tools wie z.B. ht://Dig. Für den
Zugriff auf die Funktionalität der freiden Suchmaschine mnoGoSearch (http://
www.mnogosearch.ru/) (früher UdmSearch) ist eine Sammlung von Funktionen im
Lieferumfang von PHP bereits enthalten.
Unterstützung mehrerer
Sprachen
Ja. Der Webserver Apache unterstützt eine sprachabhängige Rücklieferung von Webseiten. PHP unterstützt die NLS (Native Language Support)-API
Generation von Grafiken,
die statistische Graphen
enthalten
Mit Hilfe der gdlib können Bitmaps in diversen Formaten (JPG, BMP, PNG
uvm.)dynamisch generiert werden.
Vermeidung ungültiger
Links
Nicht enthalten
3.3.1.2 Session Management
Freie Auswahl zwischen
Session-Datenspeicherung auf der Client- und
auf der Server-Seite
Die Daten können in der URL kodiert, als Cookie oder in der Datenbank mit Hilf einer
Session-ID gespeichert werden.
Definition der Länge der
Time-Out-Periode
Ja
Management des
Abbruchs einer Sitzung
Ja.
3.3.1.3 Zum Transaction Management
MySQL unterstützt bis auf die neueste Version (4.0) keine Transaktionen. Bei MySQL 4.0 kann man
zwischen einer Variante mit Transaktionen und einer wesentlich schnelleren Variante ohne Transaktionen
wählen. Insgesamt sind die APIs und die Sprachen PHP und Perl nicht auf Transaktionsverarbeitung ausgerichtet. Insbesondere werden keine verteilten Transaktionen unterstützt.
36
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
3.3.1.4 Web Presentation
HTML-Editor
Im Paket ist kein Editor enthalten, allerdings können die meisten verfügbaren 3rdParty Produkte, die ASP untertützen auch mit PHP verwendet werden.
Erzeugung von JavaApplets und/oder ActiveX-Steuerelementen
Nicht möglich.
Definition von Seitenmodellen für Fehlermeldungen
Ja.
3.3.1.5 Datenbanken / Legacy-Systeme
Zusammenarbeit mit verschiedenen Datenbanken
Funktionen für den Zugriff auf MySQL, MSQL, Oracle 8, PostgresSQL, MS-SQL,
Sybase, Informix, Interbase, Ingres II, Sesam, Frontbase, Filepro (read-only), DBFDateien
Integrierte Datenbank
MySQL
Zugriff auf existierende
Anwendungen
Systemaufrufe und Java-Methodenaufrufe möglich
Zugriff auf Mainframes
Keine besondere Unterstützung.
Datenauswertung
Keine besondere Unterstützung.
3.3.1.6 Sicherheit
Vertraulichkeit
SSL-Unterstützung im Webserver Apache und Funktionen für PHP-Skripte
Integrität
Nicht im Standardumfang enthalten.
Authentisierung
Nicht im Standardumfang enthalten.
Administration der Sicher- Nicht im Standardumfang enthalten.
heitspolitik
3.3.1.7 Unterstützung eines effizienten Entwicklungsprozesses
Integration der IDE
Es wird keine IDE mitgeliefert. Allerdings existieren diverse Lösungen von
Drittanbietern wie Zend IDE oder PHPCoder.
Management von Benutzerprofilen
Nicht im Standardumfang enthalten.
Versionierung
Nicht im Standardumfang enthalten.
Änderbarkeit
Nicht im Standardumfang enthalten.
Modularität
Wenig Unterstützung.
Vollständige Dokumentation
Vorhanden, auch online mit Kommentaren von anderen Entwicklern.
Beispielapplikationen
Über große Community im Internet verfügbar.
Übersichtliche Darstellung
der Applikationskomponenten
Nein.
Code-Editor
Kein Code-Editor mitgeliefert. Aber diverse Editoren von Drittanbietern auf dem
Markt.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
37
Produkte
Assistenten
Keine Assistenten.
Debugger
Debugging-Unterstützung integriert. Externe Debugger in den 3rd-Party IDE's
integriert.
Programmiersprachentransparenz
PHP ist eigene Programmiersprache mit Elementen aus Perl, Java und C.
Insgesamt ist LAMP nicht für die Entwicklung von komplexerer Fachlogik geeignet.
Wiederverwendung und Wartung
Insgesamt unterstüzt der LAMP-Ansatz an sich keine saubere Trennung zwischen Präsenationsdesign
und fachlicher Logik. Diese Trennung kann nur durch Codierungsdisziplin erzeugt werden. PHP und Perl
haben als Sprachen ein sehr heterogenes Design mit einer Mischung von funktionalen, prozeduralen und
objektorienten Elementen. Das macht die Entwicklung von Styleguides schwierig und erschwert zum
Beispiel den Einsatz teilautomatisierter Refactoring-Werkzeuge.
Kommentare
Keine automatische Generierung von Kommentaren
Dokumentation
nicht standardmässig enthalten
Fehlerentdeckung
Nein.
Anpassbarkeit
Die erstellte Software lässt sich relativ problemlos z.B. auf ein Windows-System
anpassen.
Einfluß von Änderungen
Ja.
Konfigurationsmanagement
Nein.
3.3.1.8 Benutzbarkeit
Die Entwicklung erfolgt vor allem mit einem üblichen Texteditor. Insbesondere fehlen Werkzeuge zur
komfortablen Erstellung von Webseiten mit Skriptanteilen sowie visuelle Debugging-Werkzeuge.
3.3.1.9 Sonstiges
Einführung der Umgebung
Schulungen von Drittanbietern.
Support
Große Entwicklergemeinschaft im Internet. Hilfe über Newsgroups und Webseiten. Support gegen Entgelt von Dienstleistern
Anleitung
Nein.
Erfahrungen
Im WWW.
Hilfesystem
Auführliche Dokumentation; Bei Bedarf auch mit Anmerkungen anderer Entwickler.
3.3.2
Investitionssicherheit - Betriebswirtschaftliche Sicht
Bei der sehr weiten Verbreitung der Werkzeuge, sowohl was laufende Applikationen angeht, als auch
was verfügbare Entwickler angeht, ist davon auszugehen, dass die Plattform laufend weiterentwickelt
38
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Produkte
wird. Gerade für den Apache Webserver exisitieren außer den erwähnten Werkzeugen noch eine Vielzahl
von frei verfügbaren Erweiterungsmöglichkeiten.
Bei den Lizenzkosten ist der LAMP-Ansatz konkurrenzlos günstig. Gerade bei kleineren Lösungen, die
bei einer Vielzahl von Kunden zum Einsatz kommen sollen, kann das entscheidend sein.
3.3.2.1 Gesamtqualitäten
Tabelle 32 ......................................Gesamtqualitäten von Standardumgebungen
Hardware
Geringe Anforderungen an die Hardware (Standard-Intel System), aber auch
Unterstützung z.B. für MP-Systeme.
Betriebssystem
Normalerweise auf Basis von Linux. Aber auch für Windows und diverse UnixDerivate erhältlich.
Komponentenmodelle
CORBA-Unterstützung durch Erweiterungen (z.B. Satellite). Nach unseren
Informationen noch nicht sehr stabil. Für Webservices gibt es lauffähige Unterstützung.
GeschäftsprozeßIntegration
Keine Unterstützung.
SCM-Intelligenz
Keine Unterstützung.
CRM-Intelligenz
Keine Unterstützung.
Web Services
Werden grundsätzlich unterstützt.
Integration existierender
Applikationen
Keine besondere Unterstützung.
Datenintegration
Keine Unterstützung.
Regionale Unterstützung
Nein.
Freigabemuster
Nein.
Popularität
Sehr populär, da freies Produkt.
Firmenstabilität
nicht abhängig von einer Firma
Kosten
frei (Open-Source). MySQL bei kommerziellen Anwendungen lizenzpflichtig,
im Moment 230 Euro pro Server.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
39
Abschliessende Beurteilung
3.3.3
Unterstützung bei Installation und Betrieb
3.3.3.1 Skalierbarkeit
Tabelle 33......................................................................................... Skalierbarkeit
Clustering
Nein.
Ressource Pooling
Nein.
Lastverlagerung auf Client-Seite
Nein.
3.3.3.2 24/7-Betrieb
Für die Ausfallsicherheit im 24/7-Betrieb gibt es keine besondere Unterstützung.
3.3.3.3 Einfache Installation
Fortgeschrittene Kenntnisse über Betriebssystem und Webserver sind für die Installation erforderlich.
Dies wird dadurch etwas gemildert, dass die Komponenten von Providern oft schon vorinstalliert sind.
4
Abschliessende Beurteilung
Fazit unserer Beurteilung ist, dass mit LAMP, .NET und J2EE drei Umgebungen zur Verfügung stehen,
die in unterschiedlichen Bereichen Stärken und Schwächen haben. Alle Technologien unterliegen starker
Evolution und daher können Empfehlungen nur mittelfristig abgegeben werden. Unter der Berücksichtigung der in einem separaten Dokument aufgestellten Referenzarchitekturen läßt sich sagen:
Der LAMP-Ansatz ist für die Realisierung von Prototypen und Kleinprojekten geeignet. Sowohl komplexere, transaktionsorientierte Anwendungen als auch hohe Zugriffszahlen, die ein Serverclustering
erforderlich machen, sollte man diesem Ansatz nicht zumuten. Bei längeren Projektlaufzeiten und hohen
Qualitätsanforderungen machen sich die mangelnden Debugging-Möglichkeiten bemerkbar. Die Mehrzahl der aktuell verfügbaren Webangebote ließe sich aber über diesen Ansatz realisieren. LAMP unterstützt im Wesentlichen nur eine 2-Schichten-Architektur. Nicht zu vernachlässigen ist aber die Möglichkeit, komplexere Anwendungsteile in Modulen anderer Technologie zu realisieren und z.B. über XML in
eine LAMP-gestützte Webpräsentation einzubinden.
40
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Abschliessende Beurteilung
Der .NET-Ansatz ist der jüngste und daher auch fortschrittlichste Ansatz, sowohl was Datenzugriff als
auch Entwicklung und Pflege von dynamischen Webseiten angeht. Pluspunkte sammelt .NET vor allem
bei der Entwicklungsumgebung, bei den verfügbaren Bibliotheken und unterstützten Industriestandards,
sowie beim Support durch MSDN und verschiedene Foren. Die Entwicklung von komplexer, transaktionaler Fachlogik wird dagegen nur sehr schwach unterstützt, die vorgegebene Architektur ist wie bei
LAMP eine 2-Schichten-Architektur. Hier wird es interessant sein, zu sehen, ob Microsoft eine den EJBs
entsprechende Technologie demnächst vorstellen wird. Ansonsten bietet sich aber hier wie auch bei
LAMP der Integrationsansatz an. Komponenten in allen wesentlichen Technologien wie COM, CORBA
und Webservices lassen sich leicht integrieren.
Die Kehrseite des gewonnenen Komforts ist notwendigerweise eine Bindung an Microsoft als Hersteller.
Zwar halten sich die Kosten für die Laufzeit-Lizenzen im Moment noch im Rahmen, aber bei der Entwicklung mit .NET ist man dieser Lizenzpolitik auch in Zukunft ausgeliefert.
Bei J2EE hat man auf Basis der Sun-Standards die freie Auswahl unter mehreren Entwicklungs- und
Laufzeitumgebungen. Dies ist zunächst ein Vorteil, aber es hat auch zur Folge, dass es für jede Umgebung entsprechend weniger Benutzer, und damit weniger Entwicklungskapazität gibt. Der hohe Entwicklungsaufwand für diese Umgebungen führt im Moment zu einer Konsolidierung im Eclipse-Projekt im
Bereich der Entwicklungsumgebungen, und in einer Konzentration auf JBoss, IBM Websphere und BEA
Weblogic Server im Bereich der Laufzeitumgebungen. Die Trennung von Entwicklung und Laufzeitumgebung macht die Konfiguration zu einer Aufgabe von Experten und erschwert insbesondere das Debugging. Bei den Bibliotheken steht J2EE .NET in nichts nach, wenn auch oft einige Zeit vergeht, bis zu verabschiedeten Spezifikationen stabile Implementierungen erhältlich sind.
Einmalig in J2EE ist die Unterstützung der Entwicklung von Fachlogik mit den Enterprise Java Beans.
Näheres dazu haben wir bereits im Dokument Stand der Technik berichtet. Hier existiert eine Fülle von
Erfahrung, auf die man bei der Entwicklung zugreifen kann. J2EE ist damit der einzige Ansatz, der die
Entwicklung von 3- oder 4-Schichten-Architektur explizit unterstützt. Die Kehrseite des Ansatzes ist
eine hohe Komplexität, die ihn für Kleinprojekte oder Prototypen unwirtschaftlich macht. Das Ziel, den
Entwickler von Überlegungen zur Transaktionssteuerung und Verwendung von knappen Serverressourcen zu entlasten, hat der Ansatz bisher sicher noch nicht erreicht. Im Gegenteil: Über nichts wird unter
EJB-Entwicklern so angeregt diskutiert wie über Performance-Optimierungen.
Im Prinzip lassen sich die verschiedenen Ansätze in ihren Stärken kombinieren: So wäre es z.B. denkbar,
auf EJB basierende komplexe Geschäftsanwendungen per Webservice in ASP.NET-Seiten einzubinden.
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
41
Literatur / Links
5
42
Literatur / Links
[BEA-B]
Online Dokumentation zu BEA Tuxedo Release 7.1, BEA Systems
2001, http://e-docs.bea.com/tuxedo/tux71/index.htm
[IETF00]
Internet Engineering Task Force, X.509 Authentication SASL Mechanism, http://www.ietf.org/internet-drafts/draft-ietf-ldapext-x509-sasl03.txt, Februar 2000
[ISI97]
The Internet Society, Simple Authentication and Security Layer, ftp://
ftp.isi.edu/in-notes/rfc2222.txt, October 1997
[Sch01]
James Schatzman, Roy Donehower, Java Performanzprobleme, Java
Spektrum 5/2001
[Sun-B]
Sun Microsystems, J2EE Blueprints, http://java.sun.com/j2ee/blueprints
[Sun-C]
J2EE Blueprints, J2EE Design Patterns, Model-View-Controller
Architecture, http://java.sun.com/j2ee/blueprints/design_patterns/
model_view_controller/index.html
[Sun-D]
Sun Microsystems: J2EE Patterns Catalog. http://developer.java.sun.com/developer/restricted/patterns/
J2EEPatternsAtAGlance.html
[Sun-E]
Sun Microsystems, Java Developer Connection, Internationalization
and Localization, http://developer.java.sun.com/developer/technicalArticles/Intl/
[Sun-F]
Sun Microsystems, The Source for Java Technology, Java 2 Platform
Enterprise Edition, http://java.sun.com/j2ee/ und Java 2 Platform Standard Edition, http://java.sun.com/j2se
Copyright
 Fraunhofer IESE / Forschungszentrum Informatik 2001
Herunterladen