DE60211254T2 - Fernereignis Behandlung in ein Paketnetzwerk - Google Patents

Fernereignis Behandlung in ein Paketnetzwerk Download PDF

Info

Publication number
DE60211254T2
DE60211254T2 DE60211254T DE60211254T DE60211254T2 DE 60211254 T2 DE60211254 T2 DE 60211254T2 DE 60211254 T DE60211254 T DE 60211254T DE 60211254 T DE60211254 T DE 60211254T DE 60211254 T2 DE60211254 T2 DE 60211254T2
Authority
DE
Germany
Prior art keywords
request
event
http
events
application
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.)
Expired - Lifetime
Application number
DE60211254T
Other languages
English (en)
Other versions
DE60211254D1 (de
Inventor
Scott D. Bellevue Guthrie
Dmitry Bellevue Robsman
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE60211254D1 publication Critical patent/DE60211254D1/de
Application granted granted Critical
Publication of DE60211254T2 publication Critical patent/DE60211254T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Description

  • HINTERGRUND DER ERFINDUNG
  • Ein Teil der Offenbarung dieser Patentschrift enthält Material, das einem Copyright-Schutz unterliegt. Der Copyright-Besitzer hat nichts einzuwenden gegenüber einer originalgetreuen Reproduktion der Patentschrift oder der Patentoffenbarung durch irgendjemanden, solange es in den Patentakten oder Aufzeichnungen des Patent- und Schutzrechtsamtes passiert, aber behält sich andernfalls alle möglichen Copyright-Rechte vor.
  • Gebiet der Erfindung
  • Die Erfindung bezieht sich auf die Bearbeitung von Hypertext-Transfer-Protocol-Anfragen (HTTP-Anfragen). Spezieller gesagt, bezieht sich die vorliegende Erfindung auf ein System und Verfahren zum Bearbeiten einer HTTP-Anfrage.
  • Hintergrund des Standes der Technik
  • 2 zeigt ein funktionelles Blockdiagramm einer Webseitenanwendung, die eine HTTP-Anfrage in konventioneller Weise bearbeitet. Ein Webbrowser 201, der sich in einem Client Computer 202 befindet, sendet eine HTTP-Anfrage für eine ausgewählte URL 205 über ein Computernetzwerk 203, wie z.B. das Internet, in einer allgemein bekannten Weise zu einem Host Server Computer 204. Der Host Server Computer 204, auf dem eine Anwendung 206 läuft, die speziell für den Host Computer 204 ist, empfängt die HTTP-Anfrage, und greift auf den Inhalt der angefragten Webseite 205 basierend auf den Inhalten der Anfrage und der Bearbeitung durch die Anwendung 206 zu. Bevor die Antwort auf die HTTP-Anfrage zu dem Webbrowser 201 durch einen Webserver 207 gesendet wird, erzeugt die Anwendung 206 die angefragte Webseite 205 unter Verwendung einer Software, die auf dem Host Server Computer 204 läuft, und abhängig von dem Inhalt der Webseite 205 eines Web Services 208, wie z.B. einem Web Service Proxy.
  • Die Anwendung 206 kann die Anfrage auch in einer ausgewählten Art und Weise bearbeiten, bevor und/oder nachdem die Software, die auf dem Host Server Computer 204 läuft, die angefragte Seite durch Verwendung von Funktionsmodulen erzeugt hat, wobei die Funktionsmodule z.B. zum Authentifizieren des anfragenden Benutzers, zum Ermitteln, ob der anfragende Benutzer autorisiert ist, auf die angefragte Webseite zuzugreifen, zum Verschlüsseln der Antwort, etc sind. Die Funktionsmodule 209, wie z.B. JAVA Servlets, bearbeiten eine HTTP-Anfrage in einer sequentiellen Weise. D.h., dass das Funktionsmodul 209a ausgewählt wurde, um die Anfrage zu beantworten, bevor Funktionsmodul 209b die Anfrage bearbeitet, und das Funktionsmodul 209c wiederum ausgewählt ist, um die Anfrage nach dem Funktionsmodul 209b zu bearbeiten. Z.B. könnte Funktionsmodul 209a eine Benutzerauthentifizierung für die Anwendung 206 zur Verfügung stellen. Sobald sich der Benutzer authentifiziert hat, könnte das Funktionsmodul 209b Benutzerberechtigung zur Verfügung stellen. Anschließend könnte Funktionsmodul 209c eine Werbungsfunktionalität zur Verfügung stellen, die auf der authentifizierten Identifikation des anfragenden Benutzers basiert.
  • Wenn ein Entwickler für HTTP-Anwendungen die Funktionalität der Anwendung 206 durch Ändern der Funktionalität der Module 209 verändern muss, um kundenspezifische Merkmale einzubauen, so wie z.B. kundenspezifische Protokollierung, internetskalierte Sicherheit, oder Datenzwischenspeicherung, müsste der Entwickler das Funktionsmodul kundenspezifisch erzeugen und/oder ein passendes Funktionsmodul verwenden, das durch einen Dritten entwickelt worden ist.
  • Ein Problem dieser herkömmlichen Vorgehensweise ist, dass ein Anwendungsentwickler die Verarbeitung aller anderen Funktionsmodule vollständig verstanden haben muss, so dass ein neues Funktionsmodul nicht im Widerspruch zu den anderen bereits vorhandenen Funktionsmodulen steht. Weiter ist es für den Anwendungsentwickler schwierig, genau zu wissen, wo in der Bearbeitungsabfolge ein neues oder verbessertes Funktionsmodul einzufügen ist. Des Weiteren präsentiert ein Funktionsmodul in bestimmten Situationen einem anfragenden Benutzer Inhalt und/oder Headers, bevor die Software, die auf dem Host Server Computer 204 läuft, die angefragte Webseite erzeugt, so dass die Webseite bei dem Benutzer den Anschein macht, eine relativ schnelle Webseite zu sein. Irgendeine Anfragebearbeitung, die von einem Funktionsmodul ausgeführt wird, das später in der herkömmlichen Bearbeitungsabfolge steht, kann nicht mehr länger ausgeführt werden, weil der Inhalt und/oder die Headers nicht mehr länger zur Bearbeitung zur Verfügung stehen.
  • Was gebraucht wird, ist ein Weg für einen HTTP-Anwendungsentwickler, um einfach eine Funktionalität zu einer HTTP-Anwendung hinzuzufügen. Was zusätzlich gebraucht wird, ist ein Weg, um wiederverwendbare Funktionalität zwischen Anwendungen zu erzeugen, so dass HTTP-Module, die von verschiedenen Modulentwicklern entwickelt wurden, zusammen in vielen HTTP-Anwendungen coexistieren können. Was außerdem gebraucht wird, ist ein Verfahren zum Anbieten einer HTTP-Anfragebearbeitung, die eine sequenzielle Anordnung von Funktionsmodulen vermeidet, die möglicherweise im Widerspruch zu anderen Funktionsmodulen stehen.
  • EP 1 156 429 A2 ist ein nachveröffentlichtes Dokument, das die serverseitig zusammengehörige Erzeugung (cogeneration) aus einer Inhaltsdatei für dynamischen Webseiten beschreibt.
  • M. M. Moore et al., „Migrating legacy user interfaces to the internet: shifting dialogue initiative", IEEE, 23. November 2000, Seiten 52 bis 58 beschreibt einen modellorientierten Überarbeitungsprozess für Mensch-Computer Schnittstellentechnik und Hilfsmittelsatz, die entwickelt worden sind, um alte, Schriftzeichen-orientierte Anwendungen zu grafischen User Interfaces zu überarbeiten. Die Technik führt User Interface Überarbeitung in einer Serie von drei Schritten durch: Erfassen, Umformen und Erzeugen. Der Umformungsschritt dient zum Bilden von Kartierungen zwischen den User Interface Abstraktionen, die in altem Code ermittelt wurden, und deren vorgeschlagenem Ersatz aus einem speziellen GUI Werkzeugsatz. Der Erzeugungsschritt dient zum Austauschen des schriftzeichenorientierten Codes aus dem ursprünglichen System durch Implementierungen seiner Entsprechungen aus dem GUI Werkzeugsatz, die in dem Umformungsschritt vorgeschlagen wurden. Es wird beschrieben, dass ein ereignisorientiertes Programm aus einer Reihe von Ereignis-Handlern besteht, die durch Ereignisse aufgerufen werden, die in dem User Interface passieren.
  • KURZFASSUNG DER ERFINDUNG
  • Es ist die Aufgabe der Erfindung ein Laufzeitsystem zur Behandlung von HTTP-Anfragen und ein Verfahren zum Bearbeiten einer HTTP-Anfrage anzubieten, die es einem Entwickler für HTTP-Anwendungen ermöglichen, auf einfache Weise Funktionalität zu einer HTTP-Anwendung hinzuzufügen.
  • Diese Aufgabe wird durch die Erfindung, wie in den unabhängigen Ansprüchen beansprucht, gelöst.
  • Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen beschrieben.
  • Die vorliegende Erfindung stellt ein Verfahren für einen Entwickler von HTTP-Anwendungen zur Verfügung, um auf einfache Weise Funktionalität zu einer HTTP-Anwendung hinzuzufügen. Zusätzlich bietet die vorliegende Erfindung ein Verfahren zum Erzeugen von Funktionalität, die zwischen Anwendungen wiederverwendbar ist, so dass diese HTTP-Module, die von verschiedenen Modulentwicklern entwickelt wurden, zusammen in vielen HTTP-Anwendungen coexistieren können. Die vorliegende Erfindung bietet auch ein Verfahren, um die Bearbeitung einer HTTP-Anfrage zur Verfügung zu stellen, die eine sequenzielle Anordnung von Funktionsmodulen, die möglicherweise mit anderen Funktionsmodulen im Widerspruch stehen, zu vermeiden.
  • Um diese Vorteile umzusetzen, bietet die vorliegende Erfindung eine Laufzeitanwendung zur Beantwortung einer HTTP-Anfrage durch Darlegung einer objektorientierten, ereignisorientierten Infrastruktur, so dass HTTP-Anwendungen und HTTP-Module während verschiedener Stufen des Anfrage/Antwort Zyklusses beteiligt sein können. D.h. Verfahren sind für einen Rückruf registriert, wenn entweder ein synchrones oder ein asynchrones Anfrageereignis während der Lebensdauer einer HTTP-Anfrage eintritt.
  • Gemäß der Erfindung schließt eine Laufzeit zur Bearbeitung einer HTTP-Anfrage ein Kontextobjekt und eine Ereignispipeline ein. Das Kontextobjekt wird erzeugt durch analysieren einer HTTP-Anfrage, die bei einer Host Anwendung von einer Client Anwendung empfangen wurde, und die die HTTP-Anfrage logisch repräsentiert. Das Kontextobjekt verkapselt vorzugsweise die Eigenschaften zugehörig zu der empfangenen HTTP-Anfrage. Das Kontextobjekt wird durch die Ereignispipeline bearbeitet, welche eine Vielzahl von Anfrageereignissen einschließt. Die Pipeline bearbeitet eine HTTP-Anfrage nach der anderen, und wenn die Pipeline mit der Bearbeitung einer HTTP-Anfrage fertig ist, bearbeitet sie eine andere HTTP-Anfrage. Jedes Anfrageereignis hat ein entsprechendes Ereignis und erzeugt einen Rückruf, wenn das Ereignis entsprechend dem Anfrageereignis eintritt, und wenn mindestens eine Anwendung oder ein Modul zugehörig zu dem Anfrageereignis registriert ist. Jeder Rückruf instanziiert jedes Modul, das zugehörig zu dem Anfrageereignis zur Bearbeitung des Kontextobjekts registriert ist. Vor zugsweise schließt die Vielzahl von Anfrageereignissen Ereignisse ein, die entweder synchron und/oder asynchron in einer deterministischen Reihenfolge sind. Des Weiteren kann die Vielzahl von Anfrageereignissen mindestens ein Anfrageereignis einschließen, das eine nicht-deterministische Reihenfolge hat, so wie z.B. ein Fehlerereignis. Gemäß der Erfindung kann ein Modul mit einer Vielzahl von Anfrageereignissen registriert sein.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die vorliegende Erfindung wird als Beispiel und nicht Einschränkung in den beiliegenden Figuren erläutert, in welchen gleiche Bezugszeichen gleichartige Elemente angeben und in welchen:
  • 1 ein schematisches Diagramm einer herkömmlichen, Allzweck-Umgebung zur digitalen Verarbeitung zeigt, die verwendet werden kann, um verschiedene Aspekte der vorliegenden Erfindung zu implementieren;
  • 2 ein funktionelles Blockdiagramm einer Webseitenapplikation zeigt, die eine HTTP-Anfrage in herkömmlicher Weise bearbeitet; und
  • 3 ein funktionelles Blockdiagramm einer Webseitenanwendung zeigt, die eine HTTP-Anfrage unter Verwendung einer ASP.NET HTTP-Laufzeit gemäß der vorliegenden Erfindung bearbeitet.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung kann in Bezug auf die 1 und 3 leichter beschrieben werden. 1 stellt ein schematisches Diagramm einer herkömmlichen Allzweck-Umgebung zur digitalen Verarbeitung dar, die verwendet werden kann, um verschiedene Aspekte der vorliegenden Erfindung zu implementieren. In 1 schließt ein Computer 100 eine Prozessoreinheit 110, einen Systemspeicher 120, und einen Systembus 130 ein, der verschiedene Systemkomponenten koppelt, einschließlich dem Systemspeicher mit der Verarbeitungseinheit 110. Systembus 130 kann irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem Speicherbus oder Speichercontroller, einem Peripheriebus und einem Lokalbus unter Verwendung irgendeiner aus einer Vielfalt von Busarchitekturen. Systemspeicher 120 schließt read only memory (ROM) 140 und random access memory (RAM) 150 ein.
  • Ein Basic Input/Output System 160 (BIOS), das die elementaren Routinen enthält, die helfen, Information zwischen Elementen innerhalb des Computers 100 zu transferieren, so wie z.B. während des Hochfahrens, ist im ROM 140 gespeichert. Der Computer 100 enthält auch ein Festplattenlaufwerk 170 zum Lesen von und Schreiben zu einer Festplatte (nicht gezeigt), ein magnetisches Disklaufwerk 180 zum Lesen von oder Schreiben zu einer entfernbaren magnetischen Disk 190, und ein optisches Disklaufwerk 191 zum Lesen von oder Schreiben zu einer entfernbaren optischen Disk 192, wie z.B. einer CD-ROM oder einem anderen optischen Medium. Das Festplattenlaufwerk 170, magnetische Disklaufwerk 180, und optische Disklaufwerk 191 sind mit dem Systembus 130 jeweils über eine Festplattenlaufwerksschnittstelle 192, eine magnetische Disklaufwerksschnittstelle 193, bzw. eine optische Disklaufwerksschnittstelle 194 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Medien stellen nicht-flüchtigen Speicher für computerlesbare Instruktionen, Datenstrukturen, Programmmodule und andere Daten für Personalcomputer 100 zur Verfügung. Es wird durch Fachleute anerkannt, dass andere Typen von computerlesbaren Medien, die Daten speichern können, die durch einen Computer abrufbar sind, wie z.B. magnetischen Kassetten, Flash Memory Karten, digitalen Videodisks, Bernoulli Cartridges, Random Access Memorys (RAMs), Read Only Memorys (ROMs), und ähnlichem, ebenso in der beispielhaften Arbeitsumgebung verwendet werden können.
  • Etliche Programmmodule können auf dem Festplattenlaufwerk 170, der magnetischen Disk 190, der optischen Disk 192, dem ROM 140 oder RAM 150 gespeichert werden, einschließlich einem Betriebssystem 195, einem oder mehreren Anwendungsprogrammen 196, anderen Programmmodulen 197, und Programmdaten 198. Ein Benutzer kann Kommandos und Informationen in den Computer 100 durch Eingabegeräte, wie z.B. ein Keyboard 101 und Zeigergerät 102 eingeben. Andere Eingabegeräte (nicht gezeigt) schließen ein Mikrofon, Joystick, Gamepad, Satellitenschüssel, Scanner oder ähnliches ein. Diese und andere Eingabegeräte sind oft mit der Verarbeitungseinheit 110 durch eine serielle Portschnittstelle 106 verbunden, die mit dem Systembus gekoppelt ist, aber können auch durch andere Schnittstellen verbunden sein, wie z.B. einem Parallelport, Gameport oder Universal Serial Bus (USB). Des Weiteren können diese Geräte dennoch direkt mit dem Systembus 130 über eine geeignete Schnittstelle (nicht gezeigt) gekoppelt sein. Ein Monitor 107 oder anderer Typ von Anzeigegerät ist auch mit dem Systembus 130 über eine Schnittstelle verbunden, so wie z.B. einem Videoadapter 108. Zusätzlich zu dem Monitor, schließen Personalcomputer üblicherweise andere Peripherie-Ausgabe-Geräte (nicht gezeigt) ein, so wie z.B. Lautsprecher und Drucker.
  • Computer 100 kann in einer Netzwerkumgebung unter Verwendung von logischen Verbindungen zu einem oder mehreren Remote Computern arbeiten, so wie z.B. einem Remote Computer 109. Remote Computer 109 kann ein Server, ein Router, ein Netzwerk PC, ein Peer-Gerät oder anderer bekannter Netzwerkknoten sein, und schließt üblicherweise viele oder alle der oben in Bezug auf Computer 100 beschriebenen Elemente ein, obwohl nur ein Speichergerät 111 in 1 dargestellt ist. Die logischen Verbindungen, die in 1 gezeigt werden, schließen ein, Local Area Network (LAN) 112 und ein Wide Area Network (WAN) 113 ein. Solche Netzwerkumgebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn er in einer LAN Netzwerkumgebung verwendet wird, ist der Computer 100 mit dem Local Area Network 112 durch eine Netzwerkschnittstelle oder -adapter 114 verbunden. Wenn er in einer WAN Netzwerkumgebung verwendet wird, enthält der Personalcomputer 100 üblicherweise ein Modem 115 oder anderes Gerät zum Herstellen einer Kommunikation über das Wide Area Network 113, wie z.B. dem Internet. Modem 115 welches intern oder extern sein kann, ist mit dem Systembus 130 über die serielle Portschnittstelle 106 verbunden. In einer Netzwerkumgebung können Programmmodule, die in Bezug auf Personalcomputer 100 gezeigt werden, oder Teile davon, in einem Remote Speichergerät gespeichert sein.
  • Es wird begrüßt, dass die gezeigten Netzwerkumgebungen exemplarisch sind und andere Techniken zum Herstellen einer Kommunikationsverbindung zwischen den Computern verwendet werden kann. Das Vorhandensein irgendeines von verschiedenen wohlbekannten Protokollen, so wie z.B. TCP/IP, Ethernet, FTP, HTTP- und ähnlichem, wird vorausgesetzt, und das System kann in einer Client-Server Konfiguration verwendet werden, um es einem Benutzer zu erlauben, Webseiten von einem webbasierten Server abzurufen. Es kann irgendeiner von verschiedenen herkömmlichen Webbrowsern verwendet werden, um Daten auf Webseiten anzuzeigen und zu manipulieren.
  • Ein primärer Aspekt der Erfindung bietet eine ereignisbasierte Anwendungslaufzeit zum Beantworten einer HTTP-Anfrage. Spezieller gesagt, bietet die ASP.NET HTTP-Laufzeit der vorliegenden Erfindung eine objektorientierte-ereignisorientierte Infrastruktur für Anwendungsentwickler, zum Erzeugen von erweiterten Anwendungen, die während verschiedener Stufen des Anfrage/Antwortzyklusses beteiligt sind. Z.B. ermöglicht die ASP.NET HTTP-Laufzeit der vorliegenden Erfindung es einem Anwendungsentwickler, eine HTTP-Anwendung zu entwickeln und/oder einem Modulentwickler ein wieder verwendbares HTTP-Modul zum Abfangen, Beteiligen und/oder Modifizieren jeder einzelnen HTTP-Anfrage, unter Verwendung von Anwendungen, die in irgendeiner der .NET Sprachen geschrieben sind, zu entwickeln. Um dies zu erreichen befähigt die vorliegende Erfindung einen HTTP-Anwendungsentwickler und/oder einen HTTP-Modulentwickler Methoden zu registrieren, die zu bestimmten Stufen während der Lebensdauer einer HTTP-Anfrage in einer Anwendung aufgerufen werden. Die Infrastruktur, in welcher Methoden registriert werden, ist der logische .NET Austausch für einen herkömmlichen Webserver Application Program Interface (API) Filter. Außerdem erlaubt die vorliegende Erfindung, dass die Funktionalität von ASP.NET verändert werden kann. Z.B., wenn ASP.NET nicht ausreichend Funktionalität in einem bestimmten Gebiet zur Verfügung stellt, kann ein Entwickler die zugrunde liegende Anwendungsinfrastruktur in einer Ebene ändern, die ehemals reserviert war für eine ausgewählte Gruppe von Entwicklern, die mehr Wissen über die zugrunde liegende Infrastruktur haben.
  • 3 zeigt ein funktionelles Blockdiagramm einer Webseiten Anwendung, die eine HTTP-Anfrage unter Verwendung von ASP.NET HTTP-Laufzeit gemäß der vorliegenden Erfindung bearbeitet. Die Architektur der ASP.NET HTTP-Anfragebearbeitungslaufzeit bietet eine Anwendung, die ein HTTP-Kontextobjekt aus einer HTTP-Anfrage und eine Ereignispipeline erzeugt, die Rückrufe während der Lebensdauer des HTTP-Kontextobjekts (d.h. der Lebensdauer der HTTP-Anfrage) generiert. Das HTTP-Kontextobjekt stellt eine empfangene HTTP-Anfrage logisch dar, in dem alle der Eigenschaften, die mit der empfangenen HTTP-Anfrage assoziiert sind und die für die Bearbeitung der Anfrage notwendig sind, verkapselt werden. Die Rückrufe werden von HTTP-Anwendungen und HTTP-Modulen verwendet, die sich für Ereignisse registrieren, wenn die Module initiiert werden. Ein GLOBAL.ASAX wird nicht für die Registrierung von Ereignissen benötigt, weil das GLOBAL.ASAX Anwendungscode enthält, der "on the fly" kompiliert wird, der Ereignishandler für irgendein Pipelineereignis einschließt. Die Ereignishandler werden automatisch über Namenskonventionen eingehakt. Z.B., wenn An wendungscode (der in GLOBAL.ASAX oder vorkompiliert sein kann) eine Methode namens Application_BeginRequest enthält, wird der Anwendungscode automatisch an das BeginRequest Ereignis angeschlossen. Deshalb können Ereignisse entweder in Modulen oder Anwendungscode gehandhabt werden. Vorzugsweise werden Module verwendet, weil Module wieder verwendbar zwischen mehreren Anwendungen sind. Die vorliegende Erfindung generiert eine Instanziierung der Ereignispipeline zum Bearbeiten einer Vielzahl von HTTP-Anfragen, die empfangen werden.
  • Die Ereignispipeline stellt eine ereignisbasierte Architektur zur Verfügung, die eine Vielzahl von Anfrageereignissen zum Erzeugen eines Rückrufs einschließt, wenn das Anfrageereignis eintritt. Jedes HTTP-Modul, das mit einem oder mehreren Anfrageereignissen registriert ist, wird instanziiert, wenn die Pipeline instanziiert wurde. Deshalb kann ein Anwendungsentwickler eine Anwendung entwickeln, die eine Anfrage bei einem ausgewählten Ereignis während der Lebensdauer der Anfrage abfängt, mit beteiligt ist oder modifiziert. Ebenso kann ein HTTP-Modulentwickler ein HTTP-Modul entwickeln, das eine Anfrage bei einem ausgewählten Ereignis während der Lebensdauer der Anfrage abfängt, mit beteiligt ist oder modifiziert. Außerdem kann eine Anwendung die weitere Bearbeitung der Anfrage durch Aufrufen einer Response.End() Methode abbrechen, abhängig von dem Anfrageereignis, das eingetreten ist. Das zuletzt ausgeführte Ereignis ist immer ein EndRequest Ereignis, so dass ein Modul eine Aufräumfunktion ausführen kann.
  • Wieder Bezug nehmend auf 3, empfängt ein Host, auf welchem z.B. IIS (Internet Information Server) 5 oder IIS6 läuft, eine HTTP-Anfrage (nicht gezeigt in 3). die empfangene Anfrage wird an die ASP.NET Laufzeit der vorliegenden Erfindung weitergegeben, wo die Anfrage in einer gut bekannten Weise analysiert wird, um ein HTTP-Kontextobjekt zu erzeugen, das alle Eigenschaften verkapselt, die mit der empfangenen HTTP-Anfrage verbunden sind, die zum Bearbeiten der Anfrage gebraucht werden. Eine Anwendung wird instanziiert, und die Bearbeitung der Anfrage geht weiter „zu" dem HTTP-Handler durch die Ereignispipeline (dargestellt durch Anfrageereignisse 301 und 302). Während die Lebensdauer der Anfrage durch die Ereignispipeline fortschreitet, tritt jedes der deterministischen Anfrageereignisse ein. HTTP-Module, die mit einem bestimmten Anfrageereignis registriert sind, oder die Ereignissinks in der GLOBAL.ASAX enthalten, werden aufgerufen, wenn das bestimmte Anfrageereignis eintritt. Nachdem der HTTP-Handler die angefragte Webseite generiert hat, geht die Bearbeitung durch die Ereignispipeline weiter. Wenn alle Anfrageereignisse eingetreten sind, und alle HTTP-Module die Anfrage bearbeitet haben, antwortet der Host auf die Anfrage durch das Senden der angefragten (und bearbeiteten) Webseite.
  • Es sollte verstanden sein, dass während nur drei Anfrageereignisse 301, 302 und 303 und drei HTTP-Module 304, 304 und 306 in 3 gezeigt sind, weniger oder mehr Anfrageereignisse und weniger oder mehr HTTP-Module verwendet werden können. Es sollte verstanden sein, dass mehr als ein HTTP-Modul mit einem bestimmten Anfrageereignis registriert sein kann. 3 zeigt eine beispielhafte Registrierung der HTTP-Module 304 bis 306 mit den Anfrageereignissen 301 bis 303. Eine Linie, die sich zwischen einem HTTP-Modul und einem Anfrageereignis erstreckt, stellt eine Registrierung dar. In 3 sind drei beispielhafte HTTP-Module 304, 305 und 306 jeweils mit dem Anfrageereignis 302 registriert, so dass alle drei Module 304 bis 306 eine HTTP-Anfrage basierend auf demselben Rückruf, der durch Anfrageereignis 302 verursacht wird, bearbeiten. HTTP-Modul 305 ist so gezeigt, dass es mit nur einem Anfrageereignis registriert ist. Ein HTTP-Modul kann auch mit mehr als einem Anfrageereignis registriert sein, so dass das HTTP-Modul so viele Rückrufe erhält, wie es Module gibt, mit denen es registriert ist. Z.B., zeigt 3, dass HTTP-Modul 304 mit Anfrageereignissen 301 und 302 registriert ist. Ebenso ist HTTP-Modul 306 mit Anfrageereignissen 302 und 303 registriert.
  • Gemäß der Erfindung schließt die Ereignispipeline vorzugsweise 10 deterministische Anfrageereignisse und drei nicht deterministische Anfrageereignisse ein. Außerdem können die deterministischen Anfrageereignisse synchrone oder asynchrone Anfrageereignisse sein. Die (synchronen) deterministischen Ereignisse schließen in bevorzugter Reihenfolge ein:
    BeginRequest
    AuthenticateRequest
    AuthorizeRequest
    ResolveRequestCache
    AcquireRequestState
    PreRequestHandlerExecute
    PostRequestHandlerExecute
    ReleaseRequestState
    UpdateRequestCache
    EndRequest
  • Natürlich kann die Reihenfolge der deterministischen Anfrageereignisse abhängig von den Erfordernissen der Anwendung umgeordnet werden. Die nicht deterministischen Anfrageereignisse schließen ein:
    Error
    PreSendRequestContent
    PreSendRequestContent
  • Es sollte auch verstanden sein, dass weniger, mehr und/oder andere deterministische und nicht-deterministische Anfrageereignisse in der Ereignispipeline zum Erzeugen von Rückrufen eingeschlossen sein können.
  • Das BeginRequest Ereignis tritt ein, wenn die Bearbeitung einer HTTP-Anfrage beginnt. Das AuthenticateRequest Ereignis tritt an einem Punkt während der Lebensdauer der HTTP-Anfrage ein, an dem die Anwendung es erfordert, einen Benutzer zu authentifizieren. Das AuthorizeRequest Ereignis tritt ein, wenn die Anwendung ermitteln muss, ob ein Benutzer autorisiert ist, eine Antwort auf eine bestimmte Anfrage zu erhalten. Das ResolveRequestCache Ereignis tritt ein, wenn die Anwendung es erfordert, zu ermitteln, ob die gesamte Antwort auf die Anfrage zwischengespeichert worden ist, und dabei möglicherweise die Zeit reduziert wird, die benötigt wird, um die angefragte Seite zu erzeugen und eine Antwort an den anfragenden Benutzer zurückzuschicken. An diesem Punkt wird der HTTP-Handler erzeugt. Das AcquireRequestState Ereignis tritt ein, um einen zusätzlichen Status zu erfassen, der mit der Client-Verbindung assoziiert ist, listet ASP.NET Sitzungsstatus. Personalisierungsmodule können z.B. das AcquireRequestState Ereignis benutzen. Das AcquireRequestState Ereignis tritt ein, nachdem der HTTP-Handler erzeugt wurde, so dass ein Modul den HTTP-Handler prüfen kann und entscheiden, welche Statusart benötigt wird. Das PreRequestHandlerExecute Ereignis tritt ein, bevor der Anfragehandler die angefragte Webseite erzeugt. In ähnlicher Weise tritt das PostRequestHandlerExecute Ereignis ein, wenn der Anfragehandler das Erzeugen der angefragten Webseite abgeschlossen hat. Das ReleaseRequestState Ereignis tritt ein, um einem Modul die Möglichkeit zu geben, irgendwelche Statusänderungen zu speichern, die in AcquireRequestState ermittelt wurden. Z.B. kann ein Sitzungsstatusmodul das ReleaseRequestState Ereignis verwenden, um Sitzungsdaten zu speichern. Das UpdateRequestCache Ereignis tritt während der Verarbeitung einer Anfrage ein, wenn der Zwischenspeicher auf den neuesten Stand gebracht werden sollte, um die Antwort zu speichern, so dass die Antwort später (für nachfolgende HTTP-Anfragen für dieselbe Seite) im Zwischenspeicher (ResolveRequestCache) gefunden werden kann, wenn die Antwort zwischenspeicherbar ist. Letztlich tritt das EndRequest Ereignis ein, wenn die Bearbeitung der Anfrage vollständig ist.
  • Das nicht deterministische Error Ereignis tritt ein, wenn eine fehlerhafte Gegebenheit eintritt, beispielsweise wenn eine Ausnahmegegebenheit erzeugt wird, die z.B. nicht von dem Anwendungscode aufgefangen wird. Das PreSendRequestContent Ereignis tritt ein, wenn begonnen wird, Inhalt zu dem anfragenden Benutzer zu senden bevor der HTTP-Handler die Anfrage bearbeitet. Ebenso tritt das PreSendRequestHeaders Ereignis ein, wenn begonnen wird Header (Köpfe) zu dem anfragenden Client zu senden, bevor der HTTP-Handler die Anfrage bearbeitet. Das Ziel der PreSendRequestContent und Pre-SendRequestHeader Anfrageereignisse ist es, dass andere Methoden den Inhalt und/oder Header bearbeiten können, bevor der Inhalt und/oder Header zu der anfragenden Client-Anwendung gesendet werden. Wie vorher schon erwähnt, wird in Situationen, in denen ein funktionales Modul Inhalt und/oder Headers präsentiert, bevor der HTTP-Handler die angefragte Webseite erzeugt, jede Bearbeitung nicht ausgeführt, die durch ein funktionelles Modul ausgeführt wird, das in einer herkömmlichen Bearbeitungssequenz später liegt, weil der Inhalt und/oder die Headers nicht mehr länger zur Bearbeitung verfügbar ist.
  • Überwachungsereignisse können effektiv zum Einhüllen einer Anwendung mit intelligentem Fehlerbehandlungscode verwendet werden. In Situationen, in denen etwas unerwartetes in einer Anwendung passiert und das Error Ereignis eintritt, bietet die vorliegende Erfindung einem Entwickler die Flexibilität, zu entscheiden, wie die unerwartete Bedingung gehandhabt wird. Z.B. könnte, zusätzlich zum Protokollieren des Fehlers und Benachrichtigen eines Systemadministrators, der aktuelle Status von allen gerade eingeloggten Benutzern in eine XML Datei protokolliert werden. Wenn die Fehlergegebenheit berichtigt ist, und die Anwendung beginnt, normal abzulaufen, kann die Anwendung so designt sein, jeden Endbenutzer unter Verwendung der XML Datei zu kontaktieren, der wegen der Fehlerbedingung herausfiel.
  • Überwachungsereignisse können entweder durch Verwenden der GLOBAL.ASAX Anwendungsdatei oder vorkompilierten Komponenten entwickelt werden, die die IHttpModule-Schnittstelle implementieren. Der folgende Pseudocode stellt basierend auf der Microsoft VISUAL BASIC Markenprogrammiersprache ein beispielhaftes GLOBAL.ASAX dar:
  • Figure 00130001
  • HTTP-Module werden als Klassen erzeugt, die die System.Web.IHttpModule-Schnittstelle implementieren, und die Init() Methode zum Synchronisieren zu irgendeinem HTTP-Anwendungsereignis verwenden. Der folgende Pseudocode ist ein Beispiel für ein HTTP-Modul:
  • Figure 00130002
  • Ein HTTP-Modul wird kompiliert und eine .Net Library DLL (Bibliothek) wird innerhalb des „bin" Verzeichnisses unter dem vroot der Anwendung genutzt. Das HTTP-Modul ist in config.web unter Verwendung des folgenden exemplarischen Pseudocodes registriert:
  • Figure 00130003
  • Innerhalb des Prozesses zum Ablaufenlassen von ASP.NET-Prozessen werden Threads zum Ausführen von Code verwendet. Ein Thread ist eine Ressource, und es gibt eine endliche Anzahl von Threads, die ASP.NET verwenden kann.
  • Gemäß der Erfindung erzeugt und managed ASP.NET einen Thread-Pool, der die Anzahl von Threads während der Lebensdauer einer Anwendung unter der Kontrolle eines Anwendungsentwicklers erweitert und verkleinert.
  • In manchen Fällen kann Anwendungscode, so wie z.B. Netzwerk I/O einen Thread in einem Prozess blockieren, weil der Thread warten muss (d.h. der Thread ist blockiert), bis diese relativ langsamere Netzwerk I/O Funktion fertig ist. Wenn ein Thread blockiert ist, kann der Thread nicht zum Unterstützen einer Anfrage verwendet werden und resultiert dabei in einem Schlangestehen von Anfragen und im Herabsetzen der Leistung einer Anwendung, weil alle Threads blockiert sind, während sie warten, anstatt dass sie beschäftigt sind ihre Arbeit zu machen. Um solch eine Situation zu vermeiden, bietet die vorliegende Erfindung Unterstützung für asynchrone Ereignisse, und Unterstützung für synchrone Ereignisse. Folglich unterstützt die vorliegende Erfindung eine Anwendung, die eine Funktion über ein Netzwerk ausführt, in welchem die Netzwerkklasse zum ermöglichen von asynchronen IOs IO-Completion-Ports unterstützt, wie z.B. ein Webservice Proxy.
  • Die vorliegende Erfindung unterstützt auch zehn asynchrone Anfrageereignisse, die jeweils jedem der synchronen deterministischen Anfrageereignisse entsprechen. Die asynchronen Anfrageereignisse treten in folgender Reihenfolge ein:
    AddOnBeginRequestAsync
    AddOnAuthenticateRequestAsync
    AddOnAuthorizeRequestAsync
    AddOnResolveRequestCacheAsync
    AddOnAcquireRequestStateAsync
    AddOnPreRequestHandlerExecuteAsync
    AcidOnPostRequestHandlerExecuteAsync
    AddOnReleaseRequestStateAsync
    AddOnUpdateRequestCacheAsync
    AddOnEndRequestAsync
  • Um asynchrone Ereignisse innerhalb von GLOBAL.ASAX zu verwenden, muss der Ereignisprototyp manuell in der Ereignispipeline durch Aufheben der Init() Methode, die als virtuell in einer HTTP-Anwendung markiert ist, erzeugt werden, oder mit fest zugeordnetem Code darin verdrahtet sein. Z.B., um das AddOnBeginRequestAsync-Ereignis fest zu verdrahten, welches die asynchrone Version des OnBeginRequest-Ereignisses ist, würde die AddOnBeginRequestAsync-Methode der Anwendungsinstanz aufgerufen werden, um zwei Ereignishandler einzuleiten. Der folgende exemplarische Pseudocode stellt dies dar:
  • Figure 00140001
  • Figure 00150001
  • In dem oberen exemplarischen Pseudocode werden ein neuer BeginEventHandler und ein neuer EndEventHandler durch das Einleiten von zwei Mitgliedsmethoden (Begin und End) erzeugt, die aufgerufen werden, wenn das Ereignis abläuft. Ein Anwendungsentwickler müsste auch beide Ereignishandler implementieren. Z.B., verwendet der Begin()-Handler eine Instanz einer kundenspezifischen Klasse, die, wie in dem folgenden exemplarischen Pseudocode gezeigt, als SimpleAsyncResult definiert ist, das auf einem anderen Thread ausgeführt würde:
  • Figure 00150002
  • Eine beispielhafte Implementierung einer Klasse, die die IASyncResult Schnittstelle implementiert, ist in dem folgenden Pseudocode gezeigt:
  • Figure 00150003
  • Das End-Ereignis kann verwendet werden, um irgendwelche offenen Ressourcen, falls notwendig, aufzuräumen, wie durch den folgenden exemplarischen Pseudocode dargestellt:
  • Figure 00160001
  • Weil ASP.NET beides unterstützt, synchrone und asynchrone Anwendungsereignisse, hat ein Anwendungsentwickler mehr Optionen zum Erstellen einer Anwendung. Wenn ein Ereignis als asynchron programmiert wird, gibt es den ASP.NET Worker Thread frei, um andere Anfragen zu unterstützen, bis der Code, der von dem asynchronen Thread ausgeführt wird, fertig ist, und dabei in einer besseren Skalierbarkeit resultiert, weil ASP.NET Threads, die zur Unterstützung von Anfragen verwendet werden, nicht blockiert sind.
  • Während die Erfindung bezüglich bestimmter Beispiele beschrieben worden ist, einschließlich derzeit bevorzugter Modi zum Ausführen der Erfindung, werden Fachleute es begrüßen, dass es zahlreiche Varianten und Umsetzungen der oben beschriebenen Systeme und Techniken gibt, die in den Umfang der Erfindung, wie in den anhängigen Ansprüchen dargelegt, fallen.

Claims (20)

  1. Laufzeitsystem zur Behandlung einer Hypertext-Transfer-Protokoll-Anfrage (HTTP-Anfrage), umfassend: ein Kontextobjekt, das eine HTTP-Anfrage logisch repräsentiert, die bei einer Host-Anwendung von einer Client-Anwendung empfangen wurde, wobei das Kontextobjekt mindestens eine Eigenschaft, die im Zusammenhang mit der HTTP-Anfrage steht, verkapselt; und eine dem Kontextobjekt zugehörige Ereignispipeline, wobei die Ereignispipeline eine Vielzahl von Anfrageereignissen (301303) aufweist, wobei jedes Anfrageereignis (301303) ein zugehöriges Ereignis hat und einen Rückruf erzeugt, wenn das dem Anfrageereignis zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304306) im Zusammenhang mit dem Anfrageereignis (301303) registriert ist, wobei jeder Rückruf jede Anwendung und jedes Modul (304306), die im Zusammenhang mit dem Anfrageereignis (301303) registriert sind, veranlasst, das Kontextobjekt auszuführen, wobei die Vielzahl der Anfrageereignisse (301303) eine deterministische Reihenfolge haben.
  2. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei mindestens eines der Vielzahl von Anfrageereignissen (301303) ein synchrones Anfrageereignis ist.
  3. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei mindestens eines der Vielzahl von Anfrageereignissen (301303) ein asynchrones Anfrageereignis ist.
  4. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei die Vielzahl von Anfrageereignissen (301303) des Weiteren mindestens ein Anfrageereignis einschliessen, das eine nicht-deterministische Reihenfolge hat.
  5. Laufzeitsystem zur Behandlung einer Hypertext-Transfer-Protokoll-Anfrage (HTTP-Anfrage), umfassend: ein Kontext objekt, das eine HTTP-Anfrage logisch repräsentiert, die bei einer Host-Anwendung von einer Client-Anwendung empfangen wurde, wobei das Kontextobjekt mindestens eine Eigenschaft, die im Zusammenhang mit der HTTP-Anfrage steht, verkapselt; und eine dem Kontextobjekt zugehörige Ereignispipeline, wobei die Ereignispipeline eine Vielzahl von Anfrageereignissen (301303) aufweist, wobei jedes Anfrageereignis (301303) ein zugehöriges Ereignis hat und einen Rückruf erzeugt, wenn das dem Anfrageereignis (301303) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304306) im Zusammenhang mit dem Anfrageereignis (301303) registriert ist, wobei jeder Rückruf jede Anwendung und jedes Modul (304306), die im Zusammenhang mit dem Anfrageereignis (301303) registriert sind, veranlasst, das Kontextobjekt auszuführen; wobei die Vielzahl der Anfrageereignisse (301303) eine nicht-deterministische Reihenfolge haben.
  6. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 5, wobei die Vielzahl der Anfrageereignisse (301303) mit nicht-deterministischer Reihenfolge ein Fehlerereignis einschliessen.
  7. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1 oder 5, wobei ein Modul (304306) im Zusammenhang mit einer Vielzahl von Anfrageereignissen (301303) registriert ist.
  8. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1 oder 5, wobei die Ereignispipeline für jede HTTP-Anfrage, die bei der Host-Anwendung von einer Client-Anwendung empfangen wurde, eine getrennte Instanz der Ereignispipeline ist.
  9. Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1 oder 5, wobei eine HTTP-Anfrage-Laufzeit die empfangene HTTP-Anfrage analysiert, um das Kontextobjekt, das die HTTP-Anfrage logisch repräsentiert, zu bilden.
  10. Verfahren zum Verarbeiten einer Hypertext-Transfer-Protokoll-Anfrage (HTTP-Anfrage), welches die Schritte umfasst: Bilden eines Kontextobjekts, das eine HTTP-Anfrage logisch repräsentiert, die bei einer Host-Anwendung von einer Client-Anwendung empfangen wurde, wobei das Kontextobjekt mindestens eine Eigenschaft, die im Zusammenhang zu der HTTP-Anfrage steht, verkapselt; Bilden einer dem Kontextobjekt zugehörigen Ereignispipeline, wobei die Ereignispipeline eine Vielzahl von Anfrageereignissen (301303) aufweist, und jedes Anfrageereignis ein zugehöriges Ereignis hat; Erzeugen eines Rückrufs, wenn das einem Anfrageereignis (301303) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304306) im Zusammenhang mit dem Anfrageereignis (301303) registriert ist; und Veranlassen, dass jede Anwendung und jedes Modul (304306), die im Zusammenhang mit dem Anfrageereignis (301303) registriert sind, das Kontextobjekt als Antwort auf den Rückruf ausführen, wobei die Vielzahl der Anfrageereignisse eine deterministische Reihenfolge hat.
  11. Verfahren gemäß Anspruch 10, des Weiteren einen Schritt zum Registrieren eines Moduls (304306) im Zusammenhang mit mindestens einem ausgewählten Anfrageereignis (301303) umfassend.
  12. Verfahren gemäß Anspruch 10, des Weiteren einen Schritt zum Registrieren einer Vielzahl von Modulen (304306) im Zusammenhang mit einem ausgewählten Anfrageereignis (301303) umfassend.
  13. Verfahren gemäß Anspruch 10, wobei mindestens eines der Vielzahl von Anfrageereignissen (301303) ein synchrones Anfrageereignis (301303) ist.
  14. Verfahren gemäß Anspruch 10, wobei mindestens eines der Vielzahl von Anfrageereignissen (301303) ein asynchrones Anfrageereignis (301303) ist.
  15. Verfahren gemäß Anspruch 10, wobei die Vielzahl von Anfrageereignissen (301303) des Weiteren mindestens ein Anfrageereignis (301303) einschliesst, das eine nicht-deterministische Reihenfolge hat.
  16. Verfahren zum Verarbeiten einer Hypertext-Transfer-Protokoll-Anfrage (HTTP-Anfrage), welches die Schritte umfasst: Bilden eines Kontextobjekts, das eine HTTP-Anfrage logisch repräsentiert, die bei einer Host-Anwendung von einer Client-Anwendung empfangen wurde, wobei das Kontextobjekt mindestens eine Eigenschaft, die im Zusammenhang zu der HTTP-Anfrage steht, verkapselt; Bilden einer dem Kontextobjekt zugehörigen Ereignispipeline, wobei die Ereignispipeline eine Vielzahl von Anfrageereignissen (301303) aufweist, und jedes Anfrageereignis (301303) ein zugehöriges Ereignis hat; Erzeugen eines Rückrufs, wenn das einem Anfrageereignis (301303) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304306) im Zusammenhang mit dem Anfrageereignis (301303) registriert ist; und Veranlassen, dass jede Anwendung und jedes Modul (304306), die im Zusammenhang mit dem Anfrageereignis (301303) registriert sind, das Kontextobjekt als Antwort auf den Rückruf ausführen, wobei die Vielzahl der Anfrageereignisse (301303) eine nicht-deterministische Reihenfolge hat.
  17. Verfahren gemäß Anspruch 16, wobei die Vielzahl der Anfrageereignisse (301303) mit nicht-deterministischer Reihenfolge ein Fehlerereignis einschliessen.
  18. Verfahren gemäß Anspruch 10 oder 16, wobei der Schritt des Bildens der Ereignispipeline zugehörig zu dem Kontextobjekt die Ereignispipeline als eine getrennte Instanz für jede HTTP-Anfrage, die bei der Host-Anwendung von einer Client-Anwendung empfangen wurde, bildet.
  19. Verfahren gemäß Anspruch 10 oder 16, wobei der Schritt des Bildens eines Kontextobjekts einen Schritt zum Analysieren der empfangene HTTP-Anfrage einschliesst, um das Kontextobjekt zu bilden.
  20. Computer-lesbares Medium, das computer-ausführbare Instruktionen zum Ausführen des Verfahrens von einem der Ansprüche 10 bis 19 hat.
DE60211254T 2001-06-29 2002-06-14 Fernereignis Behandlung in ein Paketnetzwerk Expired - Lifetime DE60211254T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US894828 2001-06-29
US09/894,828 US7162723B2 (en) 2001-06-29 2001-06-29 ASP.NET HTTP runtime

Publications (2)

Publication Number Publication Date
DE60211254D1 DE60211254D1 (de) 2006-06-14
DE60211254T2 true DE60211254T2 (de) 2006-09-14

Family

ID=25403577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60211254T Expired - Lifetime DE60211254T2 (de) 2001-06-29 2002-06-14 Fernereignis Behandlung in ein Paketnetzwerk

Country Status (8)

Country Link
US (2) US7162723B2 (de)
EP (1) EP1271883B1 (de)
JP (1) JP4302942B2 (de)
AT (1) ATE326106T1 (de)
DE (1) DE60211254T2 (de)
DK (1) DK1271883T3 (de)
ES (1) ES2263707T3 (de)
PT (1) PT1271883E (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985946B1 (en) 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6792607B1 (en) 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US6990653B1 (en) 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6898604B1 (en) 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US7103810B2 (en) * 2002-04-18 2006-09-05 International Business Machines Corporation System for the tracking of errors in a communication network enabling users to selectively bypass system error logs and make real-time responses to detected errors
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US7461120B1 (en) 2002-07-09 2008-12-02 Vignette Corporation Method and system for identifying a visitor at a website server by requesting additional characteristic of a visitor computer from a visitor server
US7603430B1 (en) 2002-07-09 2009-10-13 Vignette Corporation System and method of associating events with requests
US8117264B1 (en) 2002-10-07 2012-02-14 Yahoo! Inc. Email system
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7890604B2 (en) * 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US20050251380A1 (en) * 2004-05-10 2005-11-10 Simon Calvert Designer regions and Interactive control designers
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US9026578B2 (en) * 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US8429655B2 (en) * 2005-04-29 2013-04-23 Microsoft Corporation System and method for asynchronous processing in page lifecycle
US7721278B2 (en) * 2005-05-27 2010-05-18 Microsoft Corporation Modular server architecture for multi-environment HTTP request processing
US7971198B2 (en) * 2005-06-08 2011-06-28 Unoweb Inc. Method for global resource sharing having logically linked means and integrated functionality for building solutions
JP4852906B2 (ja) * 2005-06-24 2012-01-11 富士ゼロックス株式会社 連携処理システム及び装置
US8418233B1 (en) 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US7962922B2 (en) * 2006-08-28 2011-06-14 Microsoft Corporation Delivering callbacks into secure application areas
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US8230052B2 (en) * 2007-02-14 2012-07-24 Microsoft Corporation Module diagnostic toolkit for client-server based protocols
US20090276791A1 (en) * 2008-05-01 2009-11-05 Microsoft Corporation Techniques for facilitating server callbacks
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US9356991B2 (en) * 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US8645490B2 (en) 2010-06-08 2014-02-04 Microsoft Corporation Web site implementation by mapping expression evaluation
US8938721B2 (en) 2010-07-21 2015-01-20 Microsoft Corporation Measuring actual end user performance and availability of web applications
US9946581B2 (en) 2010-12-17 2018-04-17 Microsoft Technology Licensing, Llc Exposing server functions to browser code
US9420022B2 (en) 2010-12-17 2016-08-16 Microsoft Technology Licensing, Llc Media requests to counter latency and minimize network bursts
CN103179173B (zh) * 2011-12-26 2018-03-02 腾讯科技(深圳)有限公司 超文本传输系统、客户端和超文本传输方法
US10025689B2 (en) * 2016-01-22 2018-07-17 International Business Machines Corporation Enhanced policy editor with completion support and on demand validation
US10191911B2 (en) * 2017-05-27 2019-01-29 Plesk International Gmbh Permanent website hosting on mobile devices
CN111600920B (zh) * 2019-02-21 2024-03-05 北京京东尚科信息技术有限公司 基于js的数据请求代理方法、装置、设备及可读存储介质

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US286133A (en) * 1883-10-02 Systems
US279151A (en) * 1883-06-12 Thill loop or tug
US3956615A (en) 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US3937925A (en) 1974-06-25 1976-02-10 Ibm Corporation Modular transaction terminal with microprocessor control
US4186871A (en) 1978-03-01 1980-02-05 International Business Machines Corporation Transaction execution system with secure encryption key storage and communications
US4847785A (en) 1985-01-22 1989-07-11 International Business Machines Corp. Interactive display for trend or bar graph
US4807154A (en) 1987-01-29 1989-02-21 International Business Machines Corporation Method for developing automatic replies in an interactive electronic calendaring system
US4949300A (en) 1988-01-07 1990-08-14 International Business Machines Corporation Sharing word-processing functions among multiple processors
US4979148A (en) 1988-12-09 1990-12-18 International Business Machines Corporation Increasing options in mapping ROM in computer memory space
JPH0778728B2 (ja) 1990-12-21 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ヘルプ・パネルのアップロード処理自動化方法
US5517655A (en) 1991-04-26 1996-05-14 Hewlett-Packard Company Method for monitoring transactions in an object-oriented environment
CA2061298C (en) 1992-02-17 1996-12-03 Douglas J. Mortson Method for detecting critical failures during the building of complex computer programs from source code parts
US5388156A (en) 1992-02-26 1995-02-07 International Business Machines Corp. Personal computer system with security features and method
US5918007A (en) 1992-05-27 1999-06-29 International Business Machines Corporation Trusted personal computer system with limited accessibility
GB2269722A (en) 1992-08-14 1994-02-16 Ibm Communications device
US5299315A (en) 1992-09-17 1994-03-29 International Business Machines Corp. Personal computer with programmable threshold FIFO registers for data transfer
US5465332A (en) 1992-09-21 1995-11-07 International Business Machines Corporation Selectable 8/16 bit DMA channels for "ISA" bus
JP2511233B2 (ja) 1993-02-12 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 画像表示装置
US5812996A (en) 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5706505A (en) 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US5675520A (en) 1995-03-30 1997-10-07 Microsoft Corporation Method for extending a common user interface
US5911068A (en) 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
US5548340A (en) 1995-05-31 1996-08-20 International Business Machines Corporation Intelligent television receivers combinations including video displays, and methods for diversion of television viewers by visual image modification
US5956489A (en) 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US5940847A (en) 1995-06-07 1999-08-17 Microsoft Corporation System and method for automatically correcting multi-word data entry errors
US5745103A (en) 1995-08-02 1998-04-28 Microsoft Corporation Real-time palette negotiations in multimedia presentations
US5732267A (en) 1995-08-02 1998-03-24 Microsoft Corporation Caching/prewarming data loaded from CD-ROM
US5664228A (en) 1995-08-09 1997-09-02 Microsoft Corporation Portable information device and system and method for downloading executable instructions from a computer to the portable information device
US5878141A (en) 1995-08-25 1999-03-02 Microsoft Corporation Computerized purchasing system and method for mediating purchase transactions over an interactive network
US5732256A (en) 1995-08-30 1998-03-24 Microsoft Corporation CD-ROM optimization and stream splitting
EP0762273B1 (de) 1995-09-06 2002-05-15 Seiko Epson Corporation Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten
US5774670A (en) 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5793982A (en) 1995-12-07 1998-08-11 International Business Machine Corporation Validating an installation plan containing multiple transports and redirectors by adding data structure of the modules to the plan if the indicated transport and redirector modules are unavailable
US5855020A (en) 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
DE19607971C2 (de) * 1996-03-01 1998-01-02 Gore W L & Ass Gmbh Leitungskoppler
US6038551A (en) 1996-03-11 2000-03-14 Microsoft Corporation System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5961601A (en) 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5638176A (en) 1996-06-25 1997-06-10 International Business Machines Corporation Inexpensive interferometric eye tracking system
US5835724A (en) 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6115744A (en) 1996-07-30 2000-09-05 Bea Systems, Inc. Client object API and gateway to enable OLTP via the internet
US5897622A (en) 1996-10-16 1999-04-27 Microsoft Corporation Electronic shopping and merchandising system
US5953524A (en) 1996-11-22 1999-09-14 Sybase, Inc. Development system with methods for runtime binding of user-defined classes
US5991802A (en) 1996-11-27 1999-11-23 Microsoft Corporation Method and system for invoking methods of objects over the internet
US6401099B1 (en) 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US5748890A (en) 1996-12-23 1998-05-05 U S West, Inc. Method and system for authenticating and auditing access by a user to non-natively secured applications
US6032207A (en) 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
US6006230A (en) 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
CA2198189C (en) 1997-02-21 2001-05-29 Ibm Canada Limited-Ibm Canada Limitee Internet browser based data entry architecture
US6334157B1 (en) 1997-03-11 2001-12-25 Microsoft Corporation Programmatically providing direct access to user interface elements of an application program
US6212192B1 (en) 1997-03-14 2001-04-03 Itxc, Inc. Method and apparatus for synchronizing information browsing among multiple systems
US6253228B1 (en) 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
JP3155489B2 (ja) 1997-04-16 2001-04-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション サスペンション・アセンブリ及びディスク・ドライブ装置
US6014637A (en) 1997-04-30 2000-01-11 International Business Machines Corporation Object oriented framework mechanism for fulfillment requirements management
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
CA2210755C (en) 1997-07-17 2003-12-23 Ibm Canada Limited - Ibm Canada Limitee Creating proxies for distribution of beans and event objects
GB2327786B (en) 1997-07-31 2002-04-03 Ibm Method and apparatus for strategic compilation of source programs into two or more target languages
US6138150A (en) 1997-09-03 2000-10-24 International Business Machines Corporation Method for remotely controlling computer resources via the internet with a web browser
US5940075A (en) 1997-09-30 1999-08-17 Unisys Corp. Method for extending the hypertext markup language (HTML) to support enterprise application data binding
US6253234B1 (en) 1997-10-17 2001-06-26 International Business Machines Corporation Shared web page caching at browsers for an intranet
US6014666A (en) 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6460071B1 (en) 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6279151B1 (en) 1998-01-20 2001-08-21 International Business Machines Corporation Method and apparatus for remote source code inclusion
US6076108A (en) 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
JPH11301049A (ja) 1998-03-27 1999-11-02 Internatl Business Mach Corp <Ibm> プリンタ、プリンタ・システム、印字属性を変更して印字をおこなう方法、プリンタを制御するプログラムを格納した記録媒体
US6167524A (en) 1998-04-06 2000-12-26 International Business Machines Corporation Apparatus and method for efficient battery utilization in portable personal computers
US6101607A (en) 1998-04-24 2000-08-08 International Business Machines Corporation Limit access to program function
US6185608B1 (en) 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
US6121968A (en) 1998-06-17 2000-09-19 Microsoft Corporation Adaptive menus
US6373841B1 (en) 1998-06-22 2002-04-16 Agilent Technologies, Inc. Integrated LAN controller and web server chip
US6463442B1 (en) 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6343148B2 (en) 1998-07-22 2002-01-29 International Business Machines Corporation Process for utilizing external handwriting recognition for personal data assistants
US6205480B1 (en) 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6246422B1 (en) 1998-09-01 2001-06-12 Sun Microsystems, Inc. Efficient method for storing texture maps in multi-bank memory
US6389414B1 (en) 1998-09-21 2002-05-14 Microsoft Corporation Internal database validation
US6397253B1 (en) 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6218958B1 (en) 1998-10-08 2001-04-17 International Business Machines Corporation Integrated touch-skin notification system for wearable computing devices
US6460141B1 (en) 1998-10-28 2002-10-01 Rsa Security Inc. Security and access management system for web-enabled and non-web-enabled applications and content on a computer network
US6487590B1 (en) * 1998-10-30 2002-11-26 Lucent Technologies Inc. Method for controlling a network element from a remote workstation
US6363352B1 (en) 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6564251B2 (en) 1998-12-03 2003-05-13 Microsoft Corporation Scalable computing system for presenting customized aggregation of information
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6351767B1 (en) 1999-01-25 2002-02-26 International Business Machines Corporation Method and system for automatically caching dynamic content based on a cacheability determination
US6353447B1 (en) 1999-01-26 2002-03-05 Microsoft Corporation Study planner system and method
US6412008B1 (en) 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
US6326957B1 (en) 1999-01-29 2001-12-04 International Business Machines Corporation System and method for displaying page information in a personal digital notepad
US6591272B1 (en) 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6354477B1 (en) 1999-06-08 2002-03-12 International Business Machines Corporation Mobile computing bag
US6557038B1 (en) 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
US6505238B1 (en) 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6430575B1 (en) 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
US6546516B1 (en) 1999-11-22 2003-04-08 International Business Machines Corporation Method and apparatus for measuring timing characteristics of message-oriented transports
US6633416B1 (en) 2000-01-10 2003-10-14 International Business Machines Corporation Computer scanner for three-dimensional objects
US6560618B1 (en) 2000-03-22 2003-05-06 International Business Machines Corporation On-demand generation, packaging, and delivery of archive files
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US6622168B1 (en) 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US7228346B1 (en) * 2000-04-21 2007-06-05 Sun Microsystems, Inc. IDL event and request formatting for corba gateway
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6996809B2 (en) * 2000-07-10 2006-02-07 Microsoft Corporation Method and apparatus for providing instrumentation data to an instrumentation data source from within a managed code environment
US6732364B1 (en) * 2000-07-14 2004-05-04 International Business Machines Corporation Mechanism for developing and dynamically deploying awarelets
US6772408B1 (en) * 2000-11-22 2004-08-03 Hyperion Solutions Corporation Event model using fixed-format text strings to express event actions
US6606418B2 (en) 2001-01-16 2003-08-12 International Business Machines Corporation Enhanced compression of documents
US20020120677A1 (en) * 2001-02-23 2002-08-29 Goward Philip J. Method and apparatus for using a servlet to interoperate with server pages
US6725219B2 (en) 2001-03-13 2004-04-20 Seiko Epson Corporation Internet presentation system
CN100389428C (zh) 2001-10-24 2008-05-21 Nik软件公司 用于利用图像基准点处理数字图像的方法和设备

Also Published As

Publication number Publication date
PT1271883E (pt) 2006-09-29
DE60211254D1 (de) 2006-06-14
EP1271883A3 (de) 2004-03-24
JP2003076560A (ja) 2003-03-14
US7162723B2 (en) 2007-01-09
US20030018827A1 (en) 2003-01-23
JP4302942B2 (ja) 2009-07-29
DK1271883T3 (da) 2006-09-18
EP1271883A2 (de) 2003-01-02
EP1271883B1 (de) 2006-05-10
ES2263707T3 (es) 2006-12-16
ATE326106T1 (de) 2006-06-15
US7603676B2 (en) 2009-10-13
US20070174845A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
DE60211254T2 (de) Fernereignis Behandlung in ein Paketnetzwerk
DE69819211T2 (de) Verteilte interfacearchitektur einer programmierbaren industriellen steuerung
DE69936627T2 (de) In einer warteschlange angeordnete aufrufe von prozeduren für verteilte auf komponenten basierte anwendungen
DE60029321T2 (de) Verfahren und vorrichtung zur fernbedienung eines hausnetzwerks von einem externen kommunikationsnetz
DE60025043T2 (de) Vorrichtung und verfahren mit verwendung von anwendungabhängigkeitsinformation für eine sicherungskopieherstellung in einem computersystem
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE60130633T2 (de) Gesicherte Internet-Zwischenablage
DE60132901T2 (de) Internetzugriff zu geerbten anwendungen
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69824879T2 (de) Verteilter web- anwendungs- server
DE60108884T2 (de) Methode und gerät zur bearbeitung von kommunikationsanfragen durch einen server ohne kontextumschaltung
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE102008019040B4 (de) Verfahren und Steuergerät zur Steuerung eines Automatisierungssystems
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE602004011455T2 (de) Verfahren und System zur automatischen Erzeugung von Dienstschnittstellen für eine dienstorientierte Architektur
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
DE69735866T2 (de) Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
WO2010043062A1 (de) Erfassung des visuellen inhalts von browserfenstern
DE10260654A1 (de) Verfahren und Vorrichtung zum Identifizieren eines digitalen Bildes und zum Zugreifen auf das digitale Bild über ein Netz
DE602005002919T2 (de) Adaptive Softwarekomponententechniken
DE19963981A1 (de) Verfahren und Vorrichtung zum Auffinden von Dokumenten unter Verwendung von Hyperlinks
DE602004009746T2 (de) Teilen von Diensten in einem Netz
EP3076633A1 (de) Verfahren zur konfiguration eines webservice-gateways sowie webservice-gateway
DE10208146A1 (de) Verfahren zum rechnergestützten Erzeugen einer graphischen Benutzeroberfläche und Geräteüberwachungs-/Steuerungseinheit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition