FlowWorkJ 1 Glossar Glossar Begriff Bedeutung Deployment Das Deployment kann als ein Einspielen einer oder mehreren Komponenten auf eine Zielumgebung angesehen werden. Dokumenttyp-Definition (DTD) In einer Dokumenttyp-Definition werden die Regeln festgelegt, die für Dokumente eines bestimmten Typs gelten sollen. Für den Verfasser von XML-Dokumenten macht sich die Verwendung von DTDs in erster Linie als Einschränkung bemerkbar. Es können nur bestimmte Elemente verwendet werden, und es müssen die Vorgaben für die Verschachtelung der Elemente und für die Attribut-Werte eingehalten werden. Eine Dokumenttyp-Definition kann in einer separaten Datei untergebracht werden; man spricht dann von einer externen DTD (oder auch von einer externen DTD-Untermenge). Die Definitionen können aber auch am Anfang von einem Dokument erscheinen. In diesem Fall spricht man von einer internen DTD (bzw. einer internen DTD-Untermenge). Entity Beans Der wesentliche Unterschied zwischen Session und Entity Beans definiert sich über die Persistenz. Session Beans sind nicht persistent, das heisst sie haben kein echtes Gegenstück auf der Datenbank (bei Entity Beans könnte das Gegenstück zum Beispiel ein Datensatz in einer Tabelle sein). Ein «Entity Bean» repräsentiert folglich eine Objektsicht auf Geschäftsdaten, die in der (relationalen) Datenbank gespeichert sind. Das Bean bringt einen sogenannten «object wrapper» mit, der ein einfaches Zugreifen auf die Daten und deren kontrollierte Manipulation ermöglicht. Entity Beans sind in diesem Kontext transaktionsgeschützt, das heisst die Beans repräsentieren immer den letzten konsistenten Zustand der Daten. Ein Entity Bean kann seine Persistenz selbst kontrollieren (bean managed persistence) oder die Aufgabe an den Container delegieren (container managed persistence). Ein Entity Bean wird über einen Primärschlüssel identifiziert. Wenn der Container abstürzt, in dem das Bean läuft, überleben das Entity Bean, sein Primärschlüssel sowie jede Referenz darauf. Framework Als Framework bezeichnet man eine Menge von verknüpften Klassen, welche zusammen ein wiederverwendbares und erweiterbares Gerüst für die Entwicklung von Software eines bestimmten Typs bilden. J2EE Die Java 2 Enterprise Edition ist ein Sammlung verschiedenster Spezifikationen auf deren Grundlage Softwareprodukte, insbesondere Internetanwendungen, entwickelt werden können. Die J2EE-Spezifikation kennt die folgenden vier Typen von Komponenten, die von J2EE-kompatiblen Application Servern unterstützt werden müssen : Application Clients Das sind typischerweise Programme mit grafischem User Interface, die auf dem Desktop Computer beim Anwender laufen. Applets: Dieses sind GUI-Komponenten, die von einem Web Server in den Web Browser beim Anwender geladen und dort ausgeführt werden. Servlets, JavaServer Pages (JSP), Filter und Web Eventlistener ©Glossar.doc 06.01.2003 Diese werden als Web-Komponenten bezeichnet und Serverseitig ausgeführt. 1/3 FlowWorkJ Glossar Begriff Bedeutung Enterprise Java Beans Sie repräsentieren typischerweise die Geschäftslogik einer Anwendung und werden ebenfalls serverseitig ausgeführt. Java Server Pages Die JavaServer Pages-Technologie ermöglicht das Erstellen von dynamischen Inhalten für Web Clients. Eine JSP-Seite ist ein textbasiertes Dokument, das die Behandlung eines Requests und die damit verbundene Antwort (Response) beschreibt. Der Vorteil bei der Verwendung von JSP-Seiten gegenüber Servlets liegt darin, dass eine Trennung von Darstellungs- und inhaltserzeugender Logik möglich wird. Der Seitenaufbau kann mit Hilfe von HTML- oder XML-Elementen realisiert werden. Der dynamische Inhalt wird mit Hilfe von JSP-Elementen, wie Zugriffe auf instanziierte JavaBeans (hier als serverseitige Komponenten zu verstehen) oder zum Beispiel sogenannte «Scriptlets» (Fragmente aus Java-Code), erzeugt. JMS Das Java Messaging Service API unterstützt asynchrone Kommunikation in verschiedenen Messaging-Systemen, wie zum Beispiel verlässliches Queuing oder Publish and Subscribe Services. Open Source Software, die sowohl als Quelltext als auch in ausführbarer Form inspiziert, verändert und auch verändert unter gleicher Lizenz weitergegeben werden darf. Der Quellcode ist meist öffentlicht zugängig und kann von anderen Programmierern verwendet werden. Session Beans Ein Session Bean wird erzeugt, um dem aufrufenden Client eine bestimmte Funktionalität zur Verfügung zu stellen. Ein solches Bean existiert typischerweise nur für die Dauer einer einzelnen Client Server Session. Session Beans werden benutzt, um spezielle «Business Cases» zu implementieren, das heisst in ihnen liegt die eigentliche Geschäftslogik. Demzufolge kann ein Session Bean unter Umständen der verlängerte Arm des Clients sein, der auf dem Server als logische Erweiterung des Clients fungiert. Session Beans repräsentieren nicht notwendigerweise Daten aus der Datenbank. Allerdings können sie Routinen beinhalten, die einen Zugriff und die Manipulation der Daten erlauben oder auch einen «Workflow» darstellen, das heisst einen Vorgang, der aus mehreren Einzelschritten besteht. Das Bean kann dabei transaktionsorientiert sein, allerdings ist der Vorgang nicht wieder herstellbar, falls der Container während einer laufenden Transaktion abstürzt. Weiterhin wird zwischen «stateful» und «stateless» Session Beans differenziert. Ganz simpel ausgedrückt handelt es sich bei einem «stateless» Session Bean um eine Komponente, auf die ohne Kenntnisse des vorherigen oder zukünftigen Zustands zugegriffen wird, das heisst die Zugriffe erfolgen isoliert voneinander. Ein «stateful» Session Bean hingegen kann als Erweiterung der Client-Applikation aufgefasst werden, da es Aufgaben für einen Client durchführt und sich auch den Zustand des korrespondierenden Clients merkt. Dieser Typ von Enterprise Beans bildet Logik ab, die bei einer klassischen Client-Server-Architektur im Client liegen würde (und nun auf der Middle-Tier liegt!). Man nennt diesen Zustand auch «conversational state», da er eine kontinuierliche Konversation zwischen dem stateful Session Bean und dem Client repräsentiert. ©Glossar.doc 06.01.2003 2/3 FlowWorkJ Glossar Begriff Bedeutung SOAP (Simple Object Access Protocol) ist für Web Services die zentrale Middleware-Technologie. Sie basiert auf offenen Standards wie XML und definiert einen Nachrichtenaustausch zwischen 2 Partnern im Internet: Ein Dienstanbieter (Server), auch Web Service Provider genannt, stellt eine beliebige Online-Dienstleistung via SOAP zur Verfügung. Er akzeptiert Nachrichten über das Standard-Internet-Protokoll HTTP, die in XML formatiert sind. Ein Dienstnehmer (Client), kann den Service des Anbieters durch eine entsprechend formulierte SOAP Nachricht nutzen kann. Web Services sind lose verbundene, offene Schnittstellen, die auf Basis plattformunabhängiger Technologien angebunden werden können. Sie ermöglichen eine zeitnahe und dynamische Abwicklung von komplexen Geschäftsprozessen über System- und Unternehmensgrenzen hinweg. IBM definiert Web Services wie folgt: «Web Services sind gekennzeichnet durch einen dreistufigen Web Service Stack, der die offenen Standards SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language) und UDDI (Universal Discovery, Description and Integration) beinhaltet.» Der Charme von Web Services liegt eben in dieser konsequenten und ausschliesslichen Verwendung von standardisierten und Web-tauglichen Technologien, die nicht nur Kommunikation sondern auch verteilte Transaktionen über Unternehmensgrenzen und Firewalls hinweg ermöglichen. XML-Schema ist ein neuer Ansatz zur Definition von Dokument-Typen und damit zur Spezifikation von XML-Sprachen. Mit der Erhebung der eXtensible Markup Language (XML) zum Industriestandard 1998 hatte sich zunächst die von der Standardized Generalized Markup Language (SGML) übernommene Document Type Definition (DTD) als Format zur Beschreibung konkreter XML-Sprachen etabliert. Mit der starken Verbreitung von XML in der Praxis machten sich zunehmend die Schwachpunkte der DTDs bemerkbar, insbesondere die dokumentenzentrierte Sichtweise der DTDs unter Vernachlässigung von Datentypen erwiesen sich in Zeiten der Annäherung der Programmiersprachen an die Datenmodellierung als Problem. Auch lassen die DTDs weder die Beschreibung bestimmter semantischer Bedingungen noch die Festlegung von Wertebereichen zu. Als Nachfolger der DTDs markiert XML-Schema den entscheidenden Wendepunkt von der bisherigen dokumentenorientierten Sichtweise hin zu einer datenorientierten Sichtweise. Durch das Hinzufügen von Datentypen erhöht XML-Schema seine Ausdruckskraft und die Nutzbarkeit von XML für E-Commerce und Datenbanken. XML-Schema erfüllt die Anforderung, Daten in einem einheitlichen, dabei aber flexiblen und leicht modifizierbaren Format, welches sich zudem leicht auswerten (parsen) lässt, zu transportieren. XML-Schema stellt die DTD-Regeln zur Verfügung, nach denen ein XML-Dokument auf seine Gültigkeit hin überprüft wird (Validierung). Da jedes XML-Schema auch ein XML-Dokument ist, lässt es sich selbst auch durch ein Schema oder eine DTD beschreiben. ©Glossar.doc 06.01.2003 3/3