-
Das Internet ist eine weltweite Sammlung von
Rechenvorrichtungen, Netzwerken und Gateways bzw. Netzübergängen, die
die Protokollfolge Übertragungssteuerungsprotokoll/Internetprotokoll (TCP/IP – Transmission
Control Protocol/Internet Protocol) verwenden, um miteinander zu
kommunizieren. Das Internet basiert im Grunde auf einem Rückgrat aus
Hochgeschwindigkeits-Datenkommunikationsleitungen zwischen Hauptknoten
oder Hostcomputern, das aus Tausenden von Computersystemen im Bereich
Gewerbe, Regierung, Bildungswesen und anderen besteht, die Datenpakete über die verschiedenen
Netzwerke von Knoten zu Knoten weiterleiten.
-
Das World Wide Web (WWW, weltweites Netz)
bzw. das Web bezieht sich auf die Gesamtmenge von miteinander verknüpften Hypertext-Dokumenten,
die auf der ganzen Welt auf HTTP-Servern (HTTP
= hypertext transfer protocol, Hypertextübertragungsprotokoll) residieren.
Dokumente im Web, die als Seiten oder Webseiten bezeichnet werden, sind
in Hypertext-Markup-Sprache
(HTML – hypertext
mark-up language) geschrieben, werden durch Einheitsressourcenlokatoren
(URLs – uniform-resource
locators) identifiziert, die die bestimmte Maschine und den bestimmten
Pfadnamen, anhand derer bzw. dessen auf eine Datei zugegriffen werden kann,
identifizieren, und werden unter Verwendung von HTTP von Knoten
zu Knoten an den Endbenutzer übertragen.
HTML-basierte Seiten enthalten Standardtext sowie Formatierungscodes,
die angeben, wie die Seite angezeigt werden sollte. Ein Web-Standort bzw. Website
ist eine verwandte Gruppe dieser Dokumente, zugeordneten Dateien,
Skripten, Teilprozeduren, Datenbanken, Anwendungssoftware usw.,
die durch einen HTTP-Server,
der mit einem der verschiedenen Netzwerke gekoppelt ist, bereitgestellt
werden. Websites sind über
einen Einheitsressourcenlokator (URL) zugänglich.
-
HTML ist eine im Internet verwendete
Skriptsprache. Eine unter Verwendung von HTML erstellte Webseite
umfaßt
Text mit zugehörigen „Markups" (Auszeichnungen),
die Textformate, beispielsweise den Stil der Überschrift sowie eine Bildposition
und Links zwischen anderen Webseiteninformationen definieren. Ein
Link bzw. eine Verknüpfung
ist ein Verweis von einem Punkt auf einer Seite auf einen anderen
Punkt in demselben Dokument oder auf einen Punkt in einem anderen
Dokument. Ein Link kann auf einen Punkt in einem Dokument verweisen,
das sich außerhalb
des Quellendokuments befindet. Das heißt, daß ein Link auf ein Dokument
oder einen Standort in einem Dokument verweisen kann, das sich auf
einem anderen Webserver befindet.
-
Ein Webdienst ist eine beliebige
Anwendung, die unter Verwendung von standardisierten Protokollen
mit einer anderen Anwendung über
das Web hinweg SOAP-Meldungen (SOAP = Simple Object Access Protocol)
austauschen kann. Ein Webdienst ist eine Umhüllung bzw. ein Wrapper zum
Zugreifen auf Servlets unter Verwendung von HTTP oder irgendeines
anderen Standardprotokolls, das sowohl plattform- als auch sprachunabhängig ist.
Dementsprechend weisen Webdienste clientseitige Komponenten und
serverseitige Komponenten auf.
-
Auf der Clientseite des Webdienst
verwenden Rechenvorrichtungen ein Clientanwendungsprogramm, das
allgemein als „Webbrowser" bezeichnet wird,
und ein Kommunikationslink mit dem Internet, um auf eine Website
zuzugreifen, die auf einem Web-integrierten Server aktiv ist. Webbrowser
sind Softwareanwendungen, die einen Inhalt, der innerhalb einer
mit dem Internet gekoppelten spezifischen Vorrichtung gespeichert
ist, lokalisieren, anfordern, empfangen und anzeigen. Webbrowser
zeigen Graphiken, einschließlich
Text, an. Wenn Webbrowser Daten über
ein Hochgeschwindigkeitsdatenlink empfangen, können Webbrowser ferner Medien
mit großen
Datenumfang, beispielsweise Filme und Ton, empfangen und verarbeiten.
Bei manchen Ausführungsbeispielen
liefern Webdienste ein Applet (d.h. eine Clientanwendungsschnittstelle),
das den Webdienst auf irgendeine Art durch die clientseitige Rechenvorrichtung
freilegt.
-
Auf der Serverseite des Webdienstes
empfangen, verbreiten und verarbeiten Server, die mit dem Internet
gekoppelt sind, Clientanforderungen unter Verwendung von Servlets,
die entsprechend mit Schnittstellen versehen sind. Die Servlets
empfangen die Anforderung, die Quell- und Dateninformationen umfassen
kann, sammeln jegliche zusätzlichen
Daten, die benötigt
werden, um die beabsichtigte Funktion zu erfüllen, und verarbeiten die Anforderung.
Anforderungsergebnisse werden anschließend formatiert und an den
anfordernden Client zurückgesandt.
-
Webdienste ermöglichen die schnelle Integration
von Diensten, die auf unterschiedlichen Technologien aufbauen. Webdienste
sind modulare, wiederverwendbare Softwarekomponenten, die erzeugt werden,
indem eine Anwendung durch eine Webdienstschnittstelle freigelegt
wird.
-
Die Allgegenwärtigkeit des Internet führte zu der
starken Zunahme von verschiedenen Webdiensten, die im Internet bereitgestellt
werden. Servlet-Technologie liefert Webdienstentwicklern einen einfachen,
einheitlichen Mechanismus zum Erweitern der Funktionalität von vorhandenen
Geschäftssystemen,
die für
Endbenutzer über
einen Webserver zugänglich
sind. Servlets liefern ein komponentenbasiertes, plattformunabhängiges Verfahren
zum Aufbauen von Webanwendungen ohne die Leistungsbeschränkungen,
die der Common Gateway Interface (CGI – einer Webskripteinrichtung)
innewohnen.
-
Servlets sind eine beliebte Komponente,
die beim Aufbauen von Webanwendungen verwendet wird. Servletbehälter sind
für Apache
Web Server, Microsoft IIS und andere erhältlich. Servletbehälter sind
allgemein eine Komponente von Web- und Anwendungsservern, beispielsweise
Weblogic® Application
Server von BEA System, WebSphere von IBM, ONE Web Server und ONE
Application Server von Sun Microsystems und anderen. Weblogic® ist
das eingetragene Warenzeichen von Weblogic, Inc., San Francisco,
Kalifornien, USA.
-
WebSphere® ist
das eingetragene Warenzeichen von International Business Machines,
Inc., Armonk, New York, USA. Servletbehälter integrieren ein oder mehrere
Servlets, die innerhalb eines Anwendungsservers betriebsbereit sind,
und koppeln das Servlet bzw. die Servlets auf kommunikative Weise
mit Clientanwendungen.
-
Eine erfolgreiche Integration einer
zuvor entwickelten Anwendung in einen Webdienst sollte die Anwendung
gegenüber
Kunden, Partnern und in manchen Fällen Angestellten durch standardmäßige Internet-Technologien,
beispielsweise erweiterbare Markup-Sprache (XML – extensible markup language)
und Hypertext-Markup-Sprache (HTML) freilegen. Überdies sollte das System dieses
Ziel erreichen, während
es die bisherige Investition in bereits entwickelte Anwendungen,
von denen manche vor dem Internet eingeführt wurden, schützt.
-
Plattform- und sprachunabhängige Integrationslösungen,
beispielsweise CORBA (Common Object Request Broker Architecture),
werden bereits verwendet, um viele traditionelle und Ursprungsserverlösungen in
moderne verteilte Rechenumgebungen von heute zu integrieren. Eine
Integration dieser vielschichtigen verteilten Rechenumgebungen in standardmäßige Internet-Technologien,
beispielsweise XML und HTML, wirft jedoch unvergleichliche Probleme
auf. Erstens unterscheiden sich die benötigten Fähigkeiten sowie die Ziele und
die relative zeitliche Abstimmung der Einsatzzyklen auf jeder Stufe
beträchtlich.
An einem Ende des Spektrums sind Endbenutzeranwendungen, z.B. XML
und HTML, allgemein für
Menschen lesbar, und Entwicklungszyklen sind relativ kurz. Dagegen
sind, an dem anderen Ende des Spektrums, Serverintegrationslösungen wie
beispielsweise CORBA ein binäres
Pro tokoll, das für
Menschen nicht lesbar ist und folglich schwieriger zu entwickeln
ist.
-
Diese Nachteile können aufgrund der Investitionen,
die bereits in vorhandene Unternehmensanwendungen (einschließlich Servlets)
unternommen wurden, und aufgrund der Kosten des Schulens von Unternehmensprogrammentwicklern,
um ein webfreundlicheres Paradigma zu erzeugen, beträchtlich sein.
-
Es ist die Aufgabe der vorliegenden
Erfindung, ein computerlesbares Medium, ein Verfahren sowie Servletfilterketten
zu schaffen, die verbesserte Charakteristika aufweisen.
-
Diese Aufgabe wird durch ein computerlesbares
Medium gemäß Anspruch
1, ein Verfahren gemäß Anspruch
9 sowie Servletfilterketten gemäß den Ansprüchen 17
oder 21 gelöst.
-
Eine Servletfilterkette umfaßt eine
Schnittstelle und eine Abfangvorrichtung. Die Abfangvorrichtung
ist mit der Servletfilterkettenschnittstelle gekoppelt. Die Schnittstelle
empfängt
Webdienstanforderungen. Die Abfangvorrichtung identifiziert, wann eine
empfangene Webdienstanforderung für einen bestimmten Servlet
bestimmt ist, und führt
ansprechend darauf einen Anweisungssatz, der dem bestimmten Servlet
entspricht, aus.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
schematisches Diagramm, das ein Ausführungsbeispiel einer Umgebung
veranschaulicht, in der sich das Servletfilter befindet;
-
2 ein
Funktionsblockdiagramm eines Ausführungsbeispiels des Servercomputers
der 1;
-
3 ein
schematisches Diagramm eines Ausführungsbeispiels eines Netzwerkprotokollstapels,
der eine Webdienste-Anforderung ermöglicht;
-
4 ein
schematisches Diagramm eines Ausführungsbeispiels eines Webdienstes;
-
5 ein
schematisches Diagramm eines Ausführungsbeispiels der Abfangvorrichtung
der 4; und
-
6 ein
Flußdiagramm,
das ein Ausführungsbeispiel
eines Verfahrens zum Verbessern einer Funktionalität bezüglich eines
Servlets veranschaulicht.
-
Bei repräsentativen Ausführungsbeispielen ist
das Servletfilter innerhalb einer Servletfilterkette implementiert,
die auf der Serverseite zwischen einem Internet-Kommunikationslink und einem oder mehreren
Servlets, die in den Serverrechenvorrichtungen in dem Webdienst
betreibbar sind, eingefügt ist.
Die Servletfilterkette umfaßt
eine Abfangvorrichtung, die konfiguriert ist, um Webdienstanforderungen
zu erkennen und zu verarbeiten. Webdienstanforderungen können gemäß einem
Quellenparameter, der von dem Anfangsblock von Paketen extrahiert
ist, die an einem Eingang zu der Servletfilterkette empfangen werden,
abgefangen werden. Webdienstanforderungen können ferner gemäß einem identifizierten
Zielservlet abgefangen werden. Nachdem sie abgefangen wurden, werden
Webdienstanforderungen gemäß dem extrahierten
Quellenparameter, dem Zielservlet oder beiden an einen oder mehrere
entsprechend konfigurierte Anweisungssätze gelenkt. Die Anweisungssätze umfassen
eine Logik, die konfiguriert ist, um eine Funktionalität zu ermöglichen,
die in dem Zielservlet nicht vorgesehen ist. Dementsprechend befähigt das
System Webdienstprogrammierer, derzeitige Servletfunktionen zu modifizieren,
ohne den zugrundeliegenden Quellcode, der dem Zielservlet zugeordnet
ist, zu modifizieren. Das System kann von Webdienstprogrammierern
verwendet werden, um der Funktionalität, die durch eine vorhandene
Folge von Servlets geliefert wird, zusätzliche Sicherheit, Lastenverwaltung, Merkmale
oder andere Verbesserungen zu verleihen. Diese zusätzlichen
Merkmale werden freigegeben, indem Webdienstanforderungen transformiert,
umgelenkt oder abgelehnt werden, bevor sie das Zielservlet erreichen.
Bei manchen Ausführungsbeispielen
leitet die Abfangvorrichtung eine Anforderung an das Zielservlet
oder eine andere mit dem Web gekoppelte Vorrichtung weiter, wenn
sie die Ausführung des
Anweisungssatzes abgeschlossen hat.
-
1 ist
ein schematisches Diagramm, das ein Ausführungsbeispiel einer Umgebung
veranschaulicht, in der sich das Servletfilter befinden kann. Die
Umgebung weist Rechen- und Kommunikationsvorrichtungen auf, die
in einem Netzwerk 25 integriert sind. Das Servletfilter
ist vorwiegend in Software in serverseitigen Komponenten 450 implementiert,
die in einem Webserver 200 betreibbar sind. Die serverseitigen
Komponenten 450 umfassen unter anderen Komponenten ein
Kommunikationslink, eine oder mehrere Servletfilterketten, ein oder
mehrere Servlets sowie Datenabstraktionsschichten, Metadatenspeicher,
Inhaltsspeicher und einen oder mehrere Anweisungssätze.
-
Der Webserver 200, der ein
Personal-Computer (PC), eine Arbeitsstation oder ein Mehrzweckcomputer
usw. sein kann, ist über
eine Verbindung 20 mit dem Netzwerk 25 gekoppelt.
Die Umgebung umfaßt
ferner eine Arbeitsstation 100 und einen Laptop-Computer 102.
Bei dem in 1 veranschaulichten
Ausführungsbeispiel
ist die Arbeitsstation 100 über eine Verbindung 18 mit
dem Netzwerk 25 gekoppelt, und der Laptop-Computer 102 ist über ein drahtloses
Kommunikationslink 12, eine drahtlose Netzwerkschnittstelle 15 und
eine Verbindung 14 mit dem Netzwerk 25 gekoppelt.
-
Bei bevorzugten Ausführungsbeispielen
ist das Netzwerk 25 das öffentlich zugängliche
Weitverkehrsnetz (WAN – wide
area network), das üblicherweise
als das Internet bekannt ist. Bei alternativen Ausführungsbeispielen
kann das Netzwerk 25 ein urheberrechtlich geschütztes Netzwerk
oder sogar ein lokales Netzwerk (LAN – local area network), beispielsweise
ein Büronetzwerk,
sein. Ferner kann das Netzwerk 25 ein drahtloses Netzwerk
sein, oder das Netzwerk 25 kann, wie bei der veranschaulichten Umgebung
der 1, sowohl drahtlose
als auch verdrahtete Komponenten enthalten.
-
Das drahtlose Kommunikationslink 12 kann ein
Infrarot-(IR-) oder ein Hochfrequenz-(HF-)Link sein, das in der
Lage ist, Informationen von dem Laptop-Computer 102 an
die Netzwerkschnittstelle 15 zu übertragen. Eine Vielzahl von
drahtlosen Kommunikationsschnittstellen und Datentransferprotokollen unterstützen die
Kommunikation von Informationen zwischen einer tragbaren Vorrichtung
wie z.B. dem Laptop-Computer 102 und
einer entsprechend konfigurierten Empfangsvorrichtung. Beispielsweise
unterstützen
IrDA (infrared data association protocol, Infrarot-Datenzuordnungsprotokoll),
drahtlose Wiedergabetreue bzw. Wi-Fi (wireless fidelity)(IEEE 802.11b
drahtloser Netzwerkbetrieb), Bluetooth® usw.
jeweils drahtlose Datenübertragungen
und können
verwendet werden, um das Kommunikationslink 12 zu implementieren.
Bluetooth® ist
das eingetragene Warenzeichen von Bluetooth SIG, Inc.
-
Die Arbeitsstation 100 kann
ein Personal-Computer oder eine Mehrzweck-Rechenvorrichtung sein,
der bzw. die beispielsweise in einem Unternehmensbüro angeordnet
ist, und die Verbindung 18 kann eine beliebige Verbindung
zum Koppeln der Arbeitsstation 100 mit dem Netzwerk 25 sein.
Bei einer typischen Implementierung ist das Netzwerk 25 das öffentlich
zugängliche
WAN, das üblicherweise
als das Internet bekannt ist, und die Verbindung 18 ist entweder
eine Einwählverbindung,
eine Breitbandverbindung, beispielsweise eine digitale Teilnehmerleitung
(DSL – digital
subscriber line) oder eine andere Hochgeschwindigkeitsverbindung
wie beispielsweise eine T1-Verbindung.
-
Der Webserver 200 ist allgemein
eine zweckgebundene Rechenvorrichtung, die über eine Hochgeschwindigkeitsverbindung 20 mit
dem Netzwerk 25 gekoppelt ist und die einen WWW-Standort unterhält, betreibt
oder auf andere Weise mit demselben gekoppelt ist, um Funktionen,
die einem Webdienst zugeordnet sind, zu liefern. Bei dem veranschaulichten Ausführungsbeispiel
unterhält
und betreibt der Webserver 200 serverseitige Komponenten 450.
Wie oben beschrieben wurde, können
die serverseitigen Komponenten 450 eine verwandte Gruppe
von Dokumenten, zugeordneten Dateien, Skripten, Teilprozeduren,
Datenbanken, Metadaten, Anwendungsservlets, Bildern usw. umfassen.
Serverseitige Komponenten 450, die über den Server 200 betreibbar oder
auf andere Weise zugänglich
sind, sind über
clientseitige Komponenten 410, 412 zugänglich,
die über
die Arbeitsstation 100 bzw. den Laptop-Computer 102 betreibbar
oder auf andere Weise zugänglich sind.
Serverseitige Komponenten 450 kommunizieren unter Verwendung
von HTTP, FTP, neben anderen Kommunikationsprotokollen, mit clientseitigen Komponenten 410, 412.
-
Clientseitige Komponenten 410, 412 umfassen
ein Kommunikationslink, verschiedene Inhaltsverwaltungssystemmodule
(z.B. eine Bibliothek, einen Browser, einen Zugriffsnetzwerktransport
usw.) und Anwendungen JavaTM2-Plattform,
Enterprise Edition (J2EE). Obwohl in der Darstellung lediglich zwei
clientseitige Computer (d.h. Arbeitsstation 100 und Laptop-Computer 102) über das
Netzwerk 25 und die verschiedenen drahtlosen und verdrahteten Verbindungen
mit dem Webserver 200 gekoppelt sind, können viele zusätzliche
Computer und Servercomputer mit dem Netzwerk 25 gekoppelt
sein.
-
2 ist
ein Funktionsblockdiagramm eines Ausführungsbeispiels der allgemeinen
Architektur des bei 1 vorgestellten
Webservers 200. Der Webserver 200 umfaßt einen
Prozessor 204, einen Speicher 210 und einen Netzwerk schnittstellenvorrichtung 236,
die über
eine lokale Schnittstelle 230 kommunikativ miteinander
gekoppelt sind.
-
Die lokale Schnittstelle 230 kann
beispielsweise ein oder mehrere Busse oder andere verdrahtete oder
drahtlose Verbindungen sein, wie sie in der Technik bekannt sind
oder später
entwickelt werden mögen,
ist jedoch nicht auf diese beschränkt. Die lokale Schnittstelle 230 kann
zusätzliche
Elemente aufweisen, die der Einfachheit halber weggelassen sind, beispielsweise
Steuerungen, Puffer (Cache-Speicher), Treiber, Repeater und Empfangsgeräte, um Kommunikationen
zu ermöglichen.
Ferner kann die lokale Schnittstelle 230 Adreß-, Steuer-
und/oder Datenverbindungen umfassen, um zwischen den zuvor erwähnten Komponenten
des Webservers 200 entsprechende Kommunikationen zu ermöglichen.
-
Bei dem Ausführungsbeispiel der 2 ist der Prozessor 204 eine
Hardwarevorrichtung zum Ausführen
einer Software, die in dem Speicher 210 gespeichert werden
kann. Der Prozessor 204 kann ein beliebiger kundenspezifischer
oder im Handel erhältlicher
Prozessor, eine Zentralverarbeitungseinheit (CPU) oder ein Hilfsprozessor
unter mehreren Prozessoren, die dem Webserver 200 zugeordnet sind,
und ein halbleiterbasierter Mikroprozessor (in Form eines Mikrochips)
sein.
-
Der Speicher 210 kann ein
beliebiges oder eine Kombination von flüchtigen Speicherelementen (z.B.
Direktzugriffsspeicher (RAM, z.B. dynamischer RAM oder DRAM, statischer
RAM oder SRAM usw.)) und von nicht-flüchtigen Speicherelementen (z.B. Nur-Lese-Speicher
(ROM), Festplattenlaufwerke, Bandlaufwerke, Compact-Disk-Laufwerke (CD-ROMs)
usw.) umfassen. Ferner kann der Speicher 210 elektronische,
magnetische, optische und/oder andere Arten von Speichermedien,
die derzeit bekannt sind oder später
entwickelt werden, beinhalten. Man beachte, daß der Speicher 210 eine verteilte
Architektur aufweisen kann, bei der verschiedene Komponenten voneinander
entfernt angeordnet sind, jedoch für den Prozessor 204 zugänglich sind.
-
Die Software in dem Speicher 210 kann
ein oder mehrere separate Programme, Elemente oder Module umfassen,
von denen jedes eine in eine Reihenfolge gebrachte Auflistung von
ausführbaren
Anweisungen zum Implementieren logischer Funktionen aufweist. Bei
dem Beispiel der 2 umfaßt die Software
in dem Speicher 210 eine Servletfilterkette 460,
die ferner eine Abfangvorrichtung 462 umfaßt. Ferner
umfaßt
der Speicher 210 ein Betriebssystem 212, einen
Netzwerkstapel 300, einen Anweisungssatz 463 und
ein Servlet 415. Der Netzwerkstapel 300, die Servletfilterkette 460,
die Abfangvorrichtung 462, der Anweisungssatz 463 und
das Servlet 415 fungieren infolge des und gemäß dem Betriebssystem 212.
Zeitplanung, Eingabe-/Ausgabesteuerung, Datei- und Datenverwaltung,
Speicherverwaltung, Kommunikationssteuerung und verwandte Dienste werden
ebenfalls durch das Betriebssystem 212 geliefert. Zusätzlich zu
den in 2 veranschaulichten Modulen
kann der Speicher 210 eine oder mehrere im Handel erhältliche
Anwendungen sowie urheberrechtlich geschützte Anwendungen (nicht gezeigt) umfassen.
-
Wie oben beschrieben wurde, werden
die Servletfilterkette 460 und die Abfangvorrichtung 462 an
eine oder mehrere Webdienstanforderungen angelegt, um zusätzliche
Funktionen, die in dem Servlet 415 nicht verfügbar sind,
zu liefern, ohne das Servlet 415 zu modifizieren. Webdienstanforderungen
können
gemäß einem
Quellenparameter, der von dem Anfangsblock von Paketen extrahiert
ist, die an einem Eingang zu der Servletfilterkette 460 empfangen werden,
abgefangen werden. Webdienstanforderungen können ferner gemäß einem
Zielservlet, z.B. dem Servlet 415, abgefangen werden. Nachdem
sie abgefangen wurden, werden Webdienstanforderungen gemäß dem extrahierten
Quellenparameter, dem Zielservlet oder beiden an ein oder mehrere
entsprechend konfigurierte Funktionsmodule gelenkt. Bei dem in 2 veranschaulichten Ausführungsbeispiel sind
die Funktionsmodule in dem An weisungssatz 463 vorgesehen.
Dementsprechend befähigt
die Servletfilterkette 460 Webdienstprogrammierer, eine in
dem Servlet 415 vorhandene Funktionalität hinzuzufügen und/oder zu modifizieren,
ohne den zugrundeliegenden Quellcode, der dem Servlet 415 zugeordnet
ist, zu modifizieren.
-
Die Servletfilterkette 460 kann
von Webdienstprogrammierern verwendet werden, um der Funktionalität, die durch
eine vorhandene Folge von Servlets geliefert wird, zusätzliche
Sicherheit, Lastenverwaltung, Merkmale oder andere Verbesserungen
zu verleihen. Diese zusätzlichen
Merkmale werden freigegeben, indem Webdienstanforderungen transformiert,
umgelenkt oder abgelehnt werden, bevor sie an das Servlet 415 weitergeleitet
werden. Bei manchen Ausführungsbeispielen
leitet der Anweisungssatz 463 eine Webdienstanforderung
gemäß den darin
enthaltenen ausführbaren
Anweisungen an das Servlet 415 oder eine andere mit dem
Web gekoppelte Vorrichtung weiter.
-
Wie ferner in 2 veranschaulicht ist, ist der Webserver 200 mit
einer Netzwerkschnittstellenvorrichtung 236 konfiguriert.
Die Netzwerkschnittstellenvorrichtung 236 kann ein IR-Tor
und/oder ein RF-Tor zusammen mit verschiedenen anderen verdrahteten
Toren, wie beispielsweise einem Ethernet-Tor (der Einfachheit der Veranschaulichung
halber nicht gezeigt) umfassen. Unabhängig von dem Netzwerkschnittstellenmedium
kommuniziert die Netzwerkschnittstellenvorrichtung 236 über die
lokale Schnittstelle 230 und externe netzwerkgekoppelte Vorrichtungen
unter Verwendung eines entsprechenden Datentransferprotokolls mit
dem Prozessor 204.
-
Wenn der Webserver 200 im
Betrieb ist, ist der Prozessor 204 konfiguriert, um eine
in dem Speicher 210 gespeicherte Software auszuführen, um Daten
zu und von dem Speicher 210 zu kommunizieren, und um allgemein
Operationen und Funktionen gemäß der Software
zu steuern. Das Betriebssystem 212, die Servletfilterkette 460 und
die Abfangvorrichtung 462 werden ganz oder teilweise, in
der Regel jedoch letzteres, durch den Prozessor 204 gelesen, vielleicht
in dem Prozessor 204 zwischengespeichert und anschließend ausgeführt.
-
Man sollte verstehen, daß die Servletfilterkette 460 und
die Abfangvorrichtung 462 in einem beliebigen computerlesbaren
Medium zur Verwendung durch ein bzw. eine oder in Verbindung mit
einem bzw. einer Anweisungsausführungssystem,
-vorrichtung oder -gerät,
beispielsweise einem computerbasierten System, einem einen Prozessor
enthaltenden System oder einem anderen System verkörpert sein kann;
das die Anweisungen von dem bzw. der Anweisungsausführungssystem,
-vorrichtung oder -gerät abrufen
und die Anweisungen ausführen
kann. Im Kontext dieser Offenbarung kann ein „computerlesbares Medium" eine beliebige Einrichtung
sein, die ein Programm zur Verwendung durch das bzw, die oder in
Verbindung mit dem bzw. der Anweisungsausführungssystem, – vorrichtung
oder -gerät
speichern, kommunizieren, weiterverbreiten oder transportieren kann.
Das computerlesbare Medium kann beispielsweise ein e) elektronische(s),
magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem,
-vorrichtung oder -gerät
oder ein Ausbreitungsmedium sein, die bzw. das derzeit bekannt ist
oder später
entwickelt wird, ist jedoch nicht auf dieselben beschränkt. Man
beachte, daß das
computerlesbare Medium sogar Papier oder ein anderes geeignetes
Medium sein könnte,
auf das das Programm gedruckt ist, da das Programm elektronisch
aufgenommen, beispielsweise über
ein optisches Scannen des Papiers oder des anderen Mediums, daraufhin
zusammengestellt, interpretiert oder auf andere geeignete Weise
verarbeitet werden kann, falls nötig,
und dann in einem Computerspeicher gespeichert werden kann.
-
Fachleute werden erkennen, daß verschiedene
Abschnitte der Servletfilterkette 460 und der Abfangvorrichtung 462 in
Hardware, Software, Firmware oder Kombinationen derselben implementiert sein
können.
Bei separaten Ausführungsbeispielen werden
die Servletfilterkette 460 und die Abfangvorrichtung 462 unter
Verwendung einer Kombination aus Hardware und Software oder Firmware
implementiert, die in einem Speicher gespeichert und durch ein geeignetes
Anweisungsausführungssystem
ausgeführt
wird. Falls sie lediglich in Hardware implementiert sind, wie bei
einem alternativen Ausführungsbeispiel,
können
die Servletfilterkette 460 und die Abfangvorrichtung 462 separat
mit einer oder einer Kombination von Technologien implementiert sein,
die in der Technik hinreichend bekannt ist bzw. sind (z.B. diskrete
Logikschaltungen, anwendungsspezifische integrierte Schaltungen
(ASICs), programmierbare Gatterarrays (PGAs), feldprogrammierbare
Gatterarrays (FPGAs) usw.) und/oder mit später zu entwickelnden Technologien.
Bei bevorzugten Ausführungsbeispielen
sind die Funktionen der Servletfilterkette 460 und der
Abfangvorrichtung 462 in einer Kombination von Software
implementiert, die unter der Steuerung des Webservers 200 ausgeführt und
gespeichert wird. Man sollte jedoch beachten, daß weder die Servletfilterkette 460 noch die
Abfangvorrichtung 462 von der Beschaffenheit der zugrundeliegenden
Rechenvorrichtung und/oder von dem Betriebssystem 212 abhängig sind,
um ihre jeweiligen zugewiesenen Funktionen zu erfüllen.
-
Nachdem sich Fachleute mit den Lehren
der Servletfilterkette 460 und der Abfangvorrichtung vertraut
gemacht haben, werden sie ohne weiteres verstehen, daß diese
Module in einer Anzahl von Programmiersprachen, die derzeit bekannt
sind oder später
entwickelt werden, geschrieben werden können.
-
Der Netzwerkstapel 300 ist
in 3 veranschaulicht,
um ein Verständnis
der Abfangvorrichtung 462 zu erleichtern. Man sollte jedoch
verstehen, daß die
Abfangvorrichtung 462 nicht auf die in 3 veranschaulichte Implementierung beschränkt ist.
-
Der Netzwerkstapel 300 umfaßt eine
Transporttreiberschnittstelle 310, eine Transportschicht 320,
einen Protokolltreiber 330 und einen Medienzugriffssteuertreiber 340,
der mit physischen Medien 350 eine Schnittstelle bildet,
um den Transfer von Webdienstanforderungen und -antworten zu erleichtern.
Die Transporttreiberschnittstelle 310 integriert den Transporttreiber 320 in
Treiber von Dateisystemen einer höheren Ebene. Demgemäß ermöglicht die
Transporttreiberschnittstelle 310, daß Betriebssystemtreiber, beispielsweise
Netzwerkumlenker, eine Sitzung zu aktivieren oder sich mit dem entsprechenden
Protokolltreiber 330 zu verbinden. Auf diese Weise kann
ein Umlenker auf das entsprechende Protokoll zugreifen, beispielsweise
Benutzerdatagrammprotokoll (UDP – user datagram protocol), TCP,
Net-BIOS-Erweiterte-Benutzerschnittstelle (NetBEUI – netbios
extended user interface), unter anderen Netzwerk- oder Transportschichtprotokollen,
wodurch der Umlenker protokollunabhängig gemacht wird.
-
Der Protokolltreiber 330 erzeugt
Datenpakete, die von dem Computersystem (z.B. der Arbeitsstation 100 und/oder
dem Laptop-Computer 102), das den Netzwerkstapel 300 beherbergt, über die physischen
Medien 350 an einen anderen Computer, beispielsweise den
Webserver 200 im Netzwerk 25, gesendet werden.
Typische Protokolle, die durch den Netzwerkstapel 300 unterstützt werden,
umfassen, unter anderen Transport- und Netzwerkprotokollen, NetBEUI,
TCP/IP, NWLink, Data Link Control (DLC) und Appletalk®. Appletalk® ist
das eingetragene Warenzeichen von Apple Computer, Inc., Cupertino,
Kalifornien, USA. Der Medienzugriffssteuertreiber 340, beispielsweise
ein Ethernet-Treiber, ein Token-Ring-Treiber
oder ein anderer Vernetzungstreiber, liefert eine entsprechende
Formatierung und Schnittstellenbildung mit den physischen Medien 350 wie
beispielsweise eine Verdrahtung der Kategorie 5, ein Koaxialkabel
oder ein anderes Medium.
-
4 ist
ein schematisches Diagramm, das die verschiedenen Module bei einem
Ausführungsbeispiel
eines Webdienstes 400 veranschaulicht. Bei dem in 4 veranschaulichten Ausführungsbeispiel umfaßt der Webdienst 400 clientseitige Komponenten 410 und
serverseitige Komponenten 450 und andere Server 480,
die über
eine Netzwerkinfrastruktur 402 gekoppelt sind. Wie oben
beschrieben wurde, sind die clientseitigen Komponenten 410 an
der Arbeitsstation 100, dem Laptop-Computer 102 und
vielleicht an anderen Computern betreibbar. Die clientseitigen Komponenten 410 umfassen
eine HTTP-Clientschnittstelle 419 zum Einrichten einer
Netzwerckommunikationssitzung über
die Netzwerkinfrastruktur 402 sowie einen Host von Inhaltsverwaltungssystem-Schnittstellenmodulen
(CMS-Schnittstellenmodulen, CMS = content management system, Inhaltsverwaltungssystem).
Wie in 4 veranschaulicht
ist, umfassen die CMS-Schnittstellenmodule
einen CMS-Verbinder 414, eine CMS-Graphische-Benutzerschnittstelle (GUI) 416 und
ein mit der HTTP-Clientschnittstelle 419 gekoppeltes CMS-Zugriffsnetzwerktransport-Aufgabenmodul (CMS-ANT-Aufgabenmodul) 418.
-
Der CMS-Verbinder 414 dienst
als Schnittstelle zwischen J2EE-Anwendungen 411, CMS-Bibliotheksanwendungen 412 und
einem CMS-Browser 413. Die J2EE-Anwendungen 411 und
die CMS-Bibliotheksanwendungen 412 arbeiten mit dem CMS-Browser 413 zusammen,
um die Funktionalität, die
in einem CMS-Servlet 467,
einer Suchmaschine 465 und einem Anweisungssatz 463 verfügbar ist,
einer Bedienperson der Arbeitsstation 100 oder des Laptop-Computers 102 gegenüber freizulegen.
-
Wie oben beschrieben wurde, sind
die serverseitigen Komponenten 450 an dem Webserver 200 und
vielleicht an anderen Servern 480 betreibbar. Die serverseitigen
Komponenten 450 umfassen einen HTTP-Server 451,
eine Servletfilterkette 460 sowie den Anweisungssatz 463,
die Suchmaschine 465 und das CMS-Servlet 467.
Der HTTP-Server 451 richtet eine Netzwerckommunikationssitzung über die
Netzwerkinfrastruktur 402 ein. Die Servletfilterkette 460 empfängt und
verarbeitet Webdienstanforderungen von dem HTTP-Server 451.
Diesbezüglich kann
ein Verarbeiten ein Parsen bzw. syntaktisches Analysieren von HTTP-Paketen
umfassen, um Anfangsblockinformationen zu extrahieren, um die Identität des Webdienstclients
zu bestimmen, und das Verarbeiten kann ein Identifizieren eines
oder mehrerer Dienstmodule umfassen, die erforderlich sind, um entsprechend
auf die Webdienstanforderung zu antworten. Das Verarbeiten kann
ferner eine Ausführungsverwaltung
für verschiedene
Aufgaben und Funktionen umfassen, die dem Anweisungssatz 463, der
Suchmaschine 465 und dem CMS-Servlet 467 zugeordnet
sind. Wenn die Abfangvorrichtung 462 beispielsweise eine
Webdienstanforderung identifiziert, die eine durch den Anweisungssatz 463 gelieferte
Funktionalität
benötigt,
kann die Abfangvorrichtung 462 Daten, Befehle, Zeiger usw.
an den Anweisungssatz 463 weiterleiten und eine Ausführung eines
oder mehrerer funktioneller Module bis zum Abschluß überwachen.
Nach dem Abschluß kann
die Abfangvorrichtung 462 gemäß der Webdienstanforderung
die Anforderung an andere Filter in der Servletfilterkette 460 weiterleiten
oder kann die Webdienstanforderung zu diesem Zeitpunkt an andere Server 480 umlenken,
je nachdem, was nötig
ist, um die in der Anforderung identifizierten Aufgaben zu erfüllen.
-
Bei einem Betriebsmodus unter mehreren
ist die Abfangvorrichtung 462 konfiguriert, um Webdienstanforderungen,
die dazu bestimmt sind, mit dem CMS-Servlet 467 eine Schnittstelle
zu bilden, zu identifizieren. Nachdem sie identifiziert ist bzw.
sind, leitet die Abfangvorrichtung 462 die Webdienstanforderung(en)
an ein oder mehrere entsprechend konfigurierte Funktionsmodule in
dem Anweisungssatz 463. Auf diese Weise ermöglicht die
Servletfilterkette 460 eine Funktionalität, die in
dem CMS-Servlet 467 nicht vorgesehen ist, ohne das Servlet
zu modifizieren. Bei einem anderen Betriebsmodus ist die Abfangvorrichtung 462 konfiguriert,
um die Quelle der Webdienstanforderung zu identifizieren und die
Webdienstanforderung gemäß einem
oder mehreren Quellenparametern, die aus der Anforderung extrahiert
werden, umzulenken oder auf andere Weise zu transformieren. Bei
diesem zweiten Betriebsmodus liefert die Abfangvorrich tung 462 die
Fähigkeit,
vor einem Ausführen
von Funktionen, die in dem CMS-Servlet 467 vorgesehen sind,
Sicherheitsmaßnahmen
und eine andere Funktionalität
hinzuzufügen.
Bei einem anderen Betriebsmodus ist die Abfangvorrichtung 462 konfiguriert,
um die Ausführung eines
oder mehrerer Funktionsmodule gemäß sowohl dem Webclient als
auch dem Zielservlet (z.B. CMS-Servlet 467) abzufangen,
zu lenken und zu verwalten.
-
Die Servletfilterkette 460 umfaßt eine
Abfangvorrichtung 462, ein Textfilter 464 und
ein CMS-Filter 466. Man sollte jedoch beachten, daß die Servletfilterkette 460 nicht
auf dieses Ausführungsbeispiel
beschränkt
ist. Beispielsweise weisen die serverseitigen Komponenten 450 oft
eine Mehrzahl von verschiedenen CMS-Servlets auf, wobei jedes eine
Funktion in bezug auf eine Unterstützung von Aspekten des Webdienstes 400 liefert.
Obwohl die Servletfilterkette als eine hierarchische Serie einer Abfangvorrichtung 462 und
verschiedener Filter veranschaulicht ist, kann sie nach Wunsch andere
Architekturen oder Sequenzen umfassen.
-
Wie ferner bei dem Ausführungsbeispiel
der 4 veranschaulicht
ist, ist das CMS-Servlet 467 mit einer Datenabstraktionsschnittstelle 470 integriert,
die eine Metadaten-Datenbank 472 und
einen Inhalt 474 einem CMS-Servlet gegenüber freilegt. Metadaten
sind Daten, die andere Daten, beispielsweise den Inhalt 474,
beschreiben. Metadatenverarbeitung ist ein wichtiger Aspekt von
Anwendungen, die versuchen, für
einen Menschen lesbare Objekte auf eine solche Weise gegenüber Rechenvorrichtungen
freizulegen, daß die
Rechenvorrichtungen auf sinnvolle Weise auf den Inhalt 474 einwirken
können.
-
5 ist
ein schematisches Diagramm der Abfangvorrichtung 462 und
des Anweisungssatzes 463 der 4.
Wie in 5 gezeigt ist,
empfängt
die Abfangvorrichtung 462 Webdienstanforderungen, interagiert
mit dem Anweisungssatz 463 und leitet Webdienstkommunikationen
weiter. Im einzelnen emp fängt
die Abfangvorrichtung 462 Webdienstanforderungen an einer
Eingangsschnittstelle 510, die die Anforderungen an einen
Anforderungsanalysator 520 weiterleitet. Der Anforderungsanalysator 520 parst
die Webdienstanforderung unter Verwendung eines Webclientidentifizierers 522 und
eines Servletidentifizierers 524. Der Webclientidentifizierer 522 verwendet
die geparsten Informationen von der Webdienstanforderung, um den
Client zu identifizieren, der für
das Erstellen der Webdienstanforderung verantwortlich ist. Der Servletidentifizierer 524 verwendet
die geparsten Informationen von der Webdienstanforderung, um ein
Ziel-Servlet zu identifizieren, das der Client verwenden möchte.
-
Eine Umlenkmaschine 526 umfaßt eine
Logik, die konfiguriert ist, um eine entsprechende Funktion innerhalb
des Anweisungssatzes 463 gemäß einem Quellenidentifizierer,
wie er durch den Webclientidentifizierer 522 bereitgestellt
wird, zu bestimmen. Eine entsprechende Funktion kann ferner gemäß einem
Zielservlet, das durch den Servletidentifizierer 524 identifiziert
wird, bestimmt werden. Bei noch weiteren Ausführungsbeispielen identifiziert
die Umlenkmaschine 526 eine entsprechende Funktion, die
aus einem Satz von verfügbaren
Funktionen ausgewählt
ist, die in dem Anweisungssatz 463 vorgesehen sind, gemäß sowohl
dem identifizierten Webclient als auch dem Zielservlet. Die Umlenkmaschine 526 leitet
einen Speicherzeiger oder einen anderen Index über eine Anweisungssatzschnittstelle 530 an den
Anweisungssatz 463 weiter, wobei eine oder mehrere Funktionen,
beispielsweise Funktion A 550, Funktion B 560,...
und Funktion N 590, die ausgeführt werden sollen, identifiziert
werden. Bei manchen Ausführungsbeispielen
ist die Umlenkmaschine 526 konfiguriert, um die Ausführung einer
Sequenz mehrerer Funktionen, die aus dem Satz von verfügbaren Funktionen
in dem Anweisungssatz 463 ausgewählt sind, in eine Reihenfolge
zu bringen. Bei dem veranschaulichten Ausführungsbeispiel empfängt die
Abfangvorrichtung 462, nachdem die ausführbaren Anweisungen, die der
einen oder den mehreren ausgewählten
Funktionen zugeordnet sind, verarbeitet wurden, Infor mationen über die
Anweisungssatzschnittstelle 530 und leitet eine Webdienstkommunikation über eine
Ausgangsschnittstelle 540, die an einem Ausgang der Anweisungssatzschnittstelle 530 gekoppelt
ist, weiter. Webdienstkommunikationen umfassen Daten (Ergebnisse),
Befehle, transformierte Anforderungen sowie andere Webdienstantworten.
-
Bei alternativen Ausführungsbeispielen
können
die Eingangsschnittstelle 510 und die Ausgangsschnittstelle 540 in
einer einzigen Schnittstelle kombiniert sein, die in der Lage ist,
Webdienstanforderungen zu empfangen und Webdienstkommunikationen zu
liefern. Zusätzlich
kann der Anweisungssatz 463 mit einem separaten Mechanismus
zum Liefern von Ergebnissen in Form von Daten, Befehlen, transformierten
Anforderungen usw. an andere Standorte konfiguriert sein.
-
Jegliche Prozeßbeschreibungen oder -blöcke in dem
Flußdiagramm
der 6 sollten so verstanden
werden, daß sie
Module, Segmente oder Codeabschnitte, die eine oder mehrere ausführbare Anweisungen
zum Implementieren spezifischer logischer Funktionen oder Schritte
in dem Prozeß umfassen,
darstellen, und alternative Implementierungen sind in dem Schutzbereich
des bevorzugten Ausführungsbeispiels
der vorliegenden Erfindung enthalten, bei dem Funktionen in einer
anderen Reihenfolge als der gezeigten oder erörterten ausgeführt werden können, einschließlich im
wesentlichen gleichzeitig oder in einer umgekehrten Reihenfolge,
je nach der betreffenden Funktionalität, wie Fachleute auf dem Gebiet
der Bereitstellung von Webdiensten verstehen werden.
-
Nun wird auf 6 Bezug genommen, die ein Ausführungsbeispiel
eines Verfahrens 600 zum Verbessern der Funktionalität eines
Servlets 415 zeigt. Das Verfahren 600 beginnt
mit einem Eingangsblock 602, bei dem serverseitige Komponenten 450 eine
Webdienstanforderung empfangen. Wie bei Block 604 angegeben
ist, wird die empfangene Webdienstanforderung an eine Servletfilterkette 460 angelegt.
Als nächstes
wird die empfangene Webdienstanforderung abgefangen, wie bei Block
606 veranschaulicht
ist. Wie oben beschrieben wurde, kann eine Abfangvorrichtung 462 in
der Servletfilterkette 460 konfiguriert sein, um Quellen-
und/oder Zielinformationen von dem Anfangsblock eines Pakets, das
die empfangene Webdienstanforderung bildet, zu extrahieren. Quelleninformationen
umfassen Indizia, die den Client, der die Webdienstanforderung erteilte,
identifizieren. Zielinformationen umfassen eine Angabe des benannten
Servlets, den die Webdienstanforderung zu verwenden sucht.
-
Als nächstes extrahiert die Abfangvorrichtung 462 einen
Quellenidentifizierer und/oder Indizia eines Zielservlets, auf den
der Client zuzugreifen versucht, wie bei Block 608 angegeben
ist. Nachdem die Abfangvorrichtung 462 das Quellen- oder
Zielservlet, oder in manchen Fällen
auch beide, identifiziert hat, lenkt die Abfangvorrichtung 462 die
Webdienstanforderung an eine entsprechende Funktion innerhalb des
Anweisungssatzes 463, wie bei Block 610 gezeigt
ist. Danach führt
die Abfangvorrichtung 462 bei Block 612 die entsprechende
Funktion aus. Schließlich,
wie bei einem Ausgangsblock 614 angegeben ist, leitet die
Abfangvorrichtung 462 Ergebnisse weiter und kann in manchen
Fällen
die Webdienstanforderung an das Zielservlet oder an einen anderen
bezeichneten Ort lenken. Bei manchen Ausführungsbeispielen umfaßt die entsprechende
Funktion Anweisungen, die die ursprüngliche Webdienstanforderung
transformieren, bevor die Anforderung entweder an das Zielservlet
oder an einen anderen Ort weitergeleitet wird.