DE10352400A1 - Netzwerkdienst-Abfangvorrichtung - Google Patents

Netzwerkdienst-Abfangvorrichtung Download PDF

Info

Publication number
DE10352400A1
DE10352400A1 DE10352400A DE10352400A DE10352400A1 DE 10352400 A1 DE10352400 A1 DE 10352400A1 DE 10352400 A DE10352400 A DE 10352400A DE 10352400 A DE10352400 A DE 10352400A DE 10352400 A1 DE10352400 A1 DE 10352400A1
Authority
DE
Germany
Prior art keywords
service request
servlet
web service
web
filter chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10352400A
Other languages
English (en)
Inventor
Jason Kinner
Joseph J. Snyder
Richard Friedman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10352400A1 publication Critical patent/DE10352400A1/de
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Eine Servletfilterkette umfaßt eine Schnittstelle und eine Abfangvorrichtung, die mit der Servletfilterkettenschnittstelle gekoppelt ist. Die Schnittstelle ist konfiguriert, um eine Webdienstanforderung zu empfangen. Die Abfangvorrichtung identifiziert, wann eine empfangene Webdienstanforderung für ein bestimmtes Servlet bestimmt ist, und führt, ansprechend darauf, einen Anweisungssatz, der dem bestimmten Servlet entspricht aus.

Description

  • 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.

Claims (25)

  1. Computerlesbares Medium, das einen in demselben gespeicherten ersten ausführbaren Anweisungssatz (463) aufweist, der, wenn er durch einen Prozessor ausgeführt wird, den Prozessor anleitet, ein Verfahren durchzuführen, das folgende Schritte aufweist: Abfangen einer Dienstanforderung innerhalb einer Servletfilterkette (460), wobei die Dienstanforderung zum Verarbeiten durch ein mit der Servletfilterkette (460) gekoppeltes Servlet bestimmt ist; Identifizieren eines zweiten Anweisungssatzes, der auf die Dienstanforderung anspricht; und Ausführen des zweiten Anweisungssatzes.
  2. Computerlesbares Medium gemäß Anspruch 1, bei dem das Identifizieren eines zweiten Anweisungssatzes ferner ein Durchführen eines direkten Rufs an einen Quellcode gemäß dem zweiten Anweisungssatz umfaßt.
  3. Computerlesbares Medium gemäß Anspruch 1 oder 2, bei dem dem Abfangen einer Dienstanforderung folgender Schritt vorausgeht: Einrichten einer Kommunikationssitzung mit einem Client.
  4. Computerlesbares Medium gemäß Anspruch 3, bei dem das Einrichten einer Kommunikationssitzung ferner folgenden Schritt umfaßt: Erzeugen einer Antwort auf die Dienstanforderung.
  5. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 4, bei dem das Identifizieren eines zweiten Anwei sungssatzes ferner ein Extrahieren eines Quellenparameters aus der Dienstanforderung umfaßt.
  6. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 5, bei dem das Identifizieren eines zweiten Anweisungssatzes ferner folgende Schritte umfaßt: Verifizieren der Identität eines Clients; und Weiterleiten der Dienstanforderung an das Servlet.
  7. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 6, bei dem das Ausführen des zweiten Anweisungssatzes ein Transformieren der Dienstanforderung umfaßt.
  8. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 7, bei dem das Ausführen des zweiten Anweisungssatzes ein Umlenken der Dienstanforderung umfaßt.
  9. Verfahren zum Verbessern der Funktionalität eines Servlets, das folgende Schritte umfaßt: Empfangen (602) einer Webdienstanforderung, die Informationen enthält, die zum Verarbeiten durch das Servlet bestimmt sind; Verwenden eines Servletfilters, um die Webdienstanforderung abzufangen (606); und Ansprechen (610) auf die Webanforderung gemäß einem Anweisungssatz (463).
  10. Verfahren gemäß Anspruch 9, bei dem das Verwenden eines Servletfilters ferner ein Extrahieren (608) eines Quellenparameters aus der Webdienstanforderung umfaßt.
  11. Verfahren gemäß Anspruch 10, das ferner folgenden Schritt umfaßt: Identifizieren des Anweisungssatzes (463) ansprechend auf den Quellenparameter.
  12. Verfahren gemäß Anspruch 11, bei dem das Identifizieren des Anweisungssatzes ferner folgende Schritte umfaßt: Verifizieren (608) der Identität eines Webclients; und Weiterleiten (614) der Webdienstanforderung an das Servlet.
  13. Verfahren gemäß einem der Ansprüche 9 bis 12, bei dem das Empfangen einer Webdienstanforderung ferner ein Einrichten einer Kommunikationssitzung mit einem Webclient umfaßt.
  14. Verfahren gemäß einem der Ansprüche 9 bis 13, bei dem das Ansprechen auf die Webdienstanforderung ferner ein Transformieren der Webdienstanforderung umfaßt.
  15. Verfahren gemäß einem der Ansprüche 9 bis 14, bei dem das Ansprechen auf die Webdienstanforderung ferner ein Abweisen der Webdienstanforderung umfaßt.
  16. Verfahren gemäß einem der Ansprüche 9 bis 15, bei dem das Ansprechen auf die Webdienstanforderung ferner ein Umlenken der Webdienstanforderung umfaßt.
  17. Servletfilterkette (460), die folgende Merkmale aufweist: eine Schnittstelle (510), die konfiguriert ist, um eine Webdienstanforderung zu empfangen; eine mit der Schnittstelle (510) gekoppelte Abfangvorrichtung (462), die konfiguriert ist, um: zu identifizieren, wann die Webdienstanforderung für ein bestimmtes Servlet (415) bestimmt ist; und, ansprechend darauf, einen Anweisungssatz (463), der dem bestimmten Servlet (415) entspricht, auszuführen.
  18. Servletfilterkette (460) gemäß Anspruch 17, bei der die Schnittstelle (510) die Webdienstanforderung durch folgenden Schritt empfängt: Einrichten einer Kommunikationssitzung mit einem Webclient (419).
  19. Servletfilterkette (460) gemäß Anspruch 17 oder 18, bei der die Abfangvorrichtung (462) einen Anweisungssatz (463) gemäß Quelleninformationen, die aus der Webdienstanforderung extrahiert werden, ausführt.
  20. Servletfilterkette (460) gemäß einem der Ansprüche 17 bis 19, die ferner folgendes Merkmal aufweist: eine Ausgangsschnittstelle (540), die die Webdienstanforderung nach der Ausführung des Anweisungssatzes (463) an das bestimmte Servlet (415) weiterleitet.
  21. Servletfilterkette, die folgende Merkmale aufweist: eine Einrichtung zum Empfangen einer Webdienstanforderung; eine Einrichtung zum Abfangen einer Webdienstanforderung, die für ein bestimmtes Servlet bestimmt ist; und, ansprechend darauf, eine Einrichtung zum Ausführen eines Anweisungssatzes, der dem bestimmten Servlet entspricht.
  22. Servletfilterkette gemäß Anspruch 21, bei der die Einrichtung zum Empfangen einer Webdienstanforderung eine Schnittstelle umfaßt.
  23. Servletfilterkette gemäß Anspruch 21 oder 22, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Einrichten einer Kommunikationssitzung mit einem Webclient.
  24. Servletfilterkette gemäß einem der Ansprüche 21 bis 23, bei der die Einrichtung zum Ausführen einen Anweisungssatz gemäß Quelleninformationen, die aus der Webdienstanforderung extrahiert werden, ausführt.
  25. Servletfilterkette gemäß Anspruch 24, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Weiterleiten der Webdienstanforderung an das bestimmte Servlet, nachdem die Einrichtung zum Ausführen den Anweisungssatz ausführt.
DE10352400A 2003-02-21 2003-11-10 Netzwerkdienst-Abfangvorrichtung Ceased DE10352400A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/371,561 US20040167960A1 (en) 2003-02-21 2003-02-21 Network service interceptor
US10/371561 2003-02-21

Publications (1)

Publication Number Publication Date
DE10352400A1 true DE10352400A1 (de) 2004-09-09

Family

ID=32850453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10352400A Ceased DE10352400A1 (de) 2003-02-21 2003-11-10 Netzwerkdienst-Abfangvorrichtung

Country Status (2)

Country Link
US (1) US20040167960A1 (de)
DE (1) DE10352400A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10319528A1 (de) * 2003-04-30 2004-11-25 Siemens Ag Verfahren und Anordnung zur transparenten dynamischen Bereitstellung eines Web-Services
US7925790B2 (en) 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US20050060370A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US7735000B2 (en) * 2003-09-25 2010-06-08 Sony Corporation Information and content exchange document type definitions to support content distribution
US8996454B2 (en) * 2004-01-07 2015-03-31 Nokia Corporation Remote management and access of databases, services and devices associated with a mobile terminal
US8010955B2 (en) * 2004-03-05 2011-08-30 International Business Machines Corporation Reducing the run-time cost of incorporating custom tags in a server page
US7770185B2 (en) * 2005-09-26 2010-08-03 Bea Systems, Inc. Interceptor method and system for web services for remote portlets
US8375122B2 (en) * 2005-12-15 2013-02-12 International Business Machines Corporation Web service information management in service-oriented architecture applications
EP2071474A1 (de) * 2007-12-10 2009-06-17 Alcatel Lucent Verfahren und Vorrichtungen zum nahtlosen Einfügen von Diensten in Inhaltsströme
US9021093B2 (en) 2010-08-17 2015-04-28 International Business Machines Corporation Managing and securing manageable resources in stateless web server architecture using servlet filters
CN104011701B (zh) 2011-12-14 2017-08-01 第三雷沃通讯有限责任公司 内容传送网络***和能够在内容传送网络中操作的方法
US10218803B2 (en) * 2016-10-11 2019-02-26 Sap Se Integration of cloud services for consumption in cloud applications
US12010130B2 (en) * 2018-09-20 2024-06-11 Siemens Mobility GmbH Data capture apparatus with embedded security applications and unidirectional communication
US11349956B1 (en) * 2021-07-12 2022-05-31 United States Postal Service Interceptor hub for service-consuming applications
CN114489838A (zh) * 2022-01-11 2022-05-13 江苏京玉信息技术有限公司 一种http服务器数据拦截的方法、装置和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6604143B1 (en) * 1998-06-19 2003-08-05 Sun Microsystems, Inc. Scalable proxy servers with plug-in filters
US6643708B1 (en) * 1998-10-29 2003-11-04 International Business Machines Corporation Systems, methods and computer program products for chaining Java servlets across networks
US6823522B1 (en) * 1999-07-15 2004-11-23 International Business Machines Corporation Methods, systems and computer program products for chaining integration objects to provide web access for legacy data sources
US6678518B2 (en) * 1999-12-09 2004-01-13 Nokia Corporation Dynamic content filter in a gateway
CN1128531C (zh) * 1999-12-30 2003-11-19 国际商业机器公司 可接插式服务发送平台
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7003584B1 (en) * 2000-07-06 2006-02-21 International Business Machines Corporation Apparatus and method for accessing request header information using a transcoding filter servlet
US20040015832A1 (en) * 2001-05-25 2004-01-22 Michael Stapp Method and apparatus for generating source code
US20020184194A1 (en) * 2001-05-30 2002-12-05 International Business Machines Corporation Multipurpose web-enabled browser
US20030145048A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System and method for HTTP request preprocessing for servlets and application servers
US6807636B2 (en) * 2002-02-13 2004-10-19 Hitachi Computer Products (America), Inc. Methods and apparatus for facilitating security in a network
US8135772B2 (en) * 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7490167B2 (en) * 2002-05-22 2009-02-10 Sony Corporation System and method for platform and language-independent development and delivery of page-based content
US8250201B2 (en) * 2002-09-09 2012-08-21 International Business Machines Corporation Servlet monitoring tool
US7130877B2 (en) * 2002-09-30 2006-10-31 Alcatel Canada Inc. Request processing switch
US20040064501A1 (en) * 2002-09-30 2004-04-01 Jan Salman Jaffer Methods and apparatus for centralized provisioning of multi-domain web content

Also Published As

Publication number Publication date
US20040167960A1 (en) 2004-08-26

Similar Documents

Publication Publication Date Title
DE69934871T2 (de) Verfahren und System zur optimalen Auswahl eines Webfirewalls in einem TCP/IP Netzwerk
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
EP1887484B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
DE10352400A1 (de) Netzwerkdienst-Abfangvorrichtung
DE69827638T2 (de) Verteiltes system und verfahren zum objektvorabholen
US9141597B2 (en) Method and system of fulfilling requests for information from a network client
DE69730382T2 (de) System und Verfahren zur automatischen Netzrekonfiguration
DE60319962T2 (de) Multimodus-synchronisation
DE60116343T2 (de) Webserver
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE102012213795A1 (de) Durch einen Computer implementiertes Verfahren, das es einer Web-Anwendung ermöglicht, mindestens eine native Funktion einer mobilen Einheit aufzurufen
DE202008013034U1 (de) System zum Beschleunigen von Browsing-Sitzungen
EP1369790A2 (de) Verfahren zur dynamischen Generierung strukturierter Dokumente
DE60035348T2 (de) Verlängerbarer Bereitstellungsmechanismus für einen Diensten-gateway
DE19963981A1 (de) Verfahren und Vorrichtung zum Auffinden von Dokumenten unter Verwendung von Hyperlinks
DE10314792A1 (de) Verfolgen von Benutzern an einem Webservernetz
EP1189149A1 (de) Verfahren und Anordnung zur Modifikation einer Webpage
EP3528473A1 (de) Verfahren, client-computer und computerprogramm zur ausführung von quellcode an einem client-computer
EP1344370B1 (de) Kommunikationsanordnung und verfahren für kommunikationssysteme mit interaktiver sprachfunktion
DE202018100131U1 (de) Reduzierern von Umleitungen
EP1177667B1 (de) Netzwerk, interpreter für ein derartiges netzwerk und verfahren zum betreiben eines netzwerkes
DE102006015057B4 (de) Benutzerschnittstelle zur Herstellung einer Kommunikations-Verbindung
DE102007013339A1 (de) Portabler Datenträger als Web-Server
DE10315953A1 (de) Verfahren und System zur Erzeugung von an Client-Eigenschaften angepassten Web-Seiten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20140319