DE60211254T2 - Fernereignis Behandlung in ein Paketnetzwerk - Google Patents
Fernereignis Behandlung in ein Paketnetzwerk Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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 Webbrowser201 , der sich in einem Client Computer202 befindet, sendet eine HTTP-Anfrage für eine ausgewählte URL205 über ein Computernetzwerk203 , wie z.B. das Internet, in einer allgemein bekannten Weise zu einem Host Server Computer204 . Der Host Server Computer204 , auf dem eine Anwendung206 läuft, die speziell für den Host Computer204 ist, empfängt die HTTP-Anfrage, und greift auf den Inhalt der angefragten Webseite205 basierend auf den Inhalten der Anfrage und der Bearbeitung durch die Anwendung206 zu. Bevor die Antwort auf die HTTP-Anfrage zu dem Webbrowser201 durch einen Webserver207 gesendet wird, erzeugt die Anwendung206 die angefragte Webseite205 unter Verwendung einer Software, die auf dem Host Server Computer204 läuft, und abhängig von dem Inhalt der Webseite205 eines Web Services208 , 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 Computer204 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 Funktionsmodule209 , wie z.B. JAVA Servlets, bearbeiten eine HTTP-Anfrage in einer sequentiellen Weise. D.h., dass das Funktionsmodul209a ausgewählt wurde, um die Anfrage zu beantworten, bevor Funktionsmodul209b die Anfrage bearbeitet, und das Funktionsmodul209c wiederum ausgewählt ist, um die Anfrage nach dem Funktionsmodul209b zu bearbeiten. Z.B. könnte Funktionsmodul209a eine Benutzerauthentifizierung für die Anwendung206 zur Verfügung stellen. Sobald sich der Benutzer authentifiziert hat, könnte das Funktionsmodul209b Benutzerberechtigung zur Verfügung stellen. Anschließend könnte Funktionsmodul209c 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 Module209 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 und3 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. In1 schließt ein Computer100 eine Prozessoreinheit110 , einen Systemspeicher120 , und einen Systembus130 ein, der verschiedene Systemkomponenten koppelt, einschließlich dem Systemspeicher mit der Verarbeitungseinheit110 . Systembus130 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. Systemspeicher120 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 Computers100 zu transferieren, so wie z.B. während des Hochfahrens, ist im ROM140 gespeichert. Der Computer100 enthält auch ein Festplattenlaufwerk170 zum Lesen von und Schreiben zu einer Festplatte (nicht gezeigt), ein magnetisches Disklaufwerk180 zum Lesen von oder Schreiben zu einer entfernbaren magnetischen Disk190 , und ein optisches Disklaufwerk191 zum Lesen von oder Schreiben zu einer entfernbaren optischen Disk192 , wie z.B. einer CD-ROM oder einem anderen optischen Medium. Das Festplattenlaufwerk170 , magnetische Disklaufwerk180 , und optische Disklaufwerk191 sind mit dem Systembus130 jeweils über eine Festplattenlaufwerksschnittstelle192 , eine magnetische Disklaufwerksschnittstelle193 , bzw. eine optische Disklaufwerksschnittstelle194 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 Personalcomputer100 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 Disk190 , der optischen Disk192 , dem ROM140 oder RAM150 gespeichert werden, einschließlich einem Betriebssystem195 , einem oder mehreren Anwendungsprogrammen196 , anderen Programmmodulen197 , und Programmdaten198 . Ein Benutzer kann Kommandos und Informationen in den Computer100 durch Eingabegeräte, wie z.B. ein Keyboard101 und Zeigergerät102 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 Verarbeitungseinheit110 durch eine serielle Portschnittstelle106 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 Systembus130 über eine geeignete Schnittstelle (nicht gezeigt) gekoppelt sein. Ein Monitor107 oder anderer Typ von Anzeigegerät ist auch mit dem Systembus130 über eine Schnittstelle verbunden, so wie z.B. einem Videoadapter108 . 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 Computer109 . Remote Computer109 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 Computer100 beschriebenen Elemente ein, obwohl nur ein Speichergerät111 in1 dargestellt ist. Die logischen Verbindungen, die in1 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 Network112 durch eine Netzwerkschnittstelle oder -adapter114 verbunden. Wenn er in einer WAN Netzwerkumgebung verwendet wird, enthält der Personalcomputer100 üblicherweise ein Modem115 oder anderes Gerät zum Herstellen einer Kommunikation über das Wide Area Network113 , wie z.B. dem Internet. Modem115 welches intern oder extern sein kann, ist mit dem Systembus130 über die serielle Portschnittstelle106 verbunden. In einer Netzwerkumgebung können Programmmodule, die in Bezug auf Personalcomputer100 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 in3 ). 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 Anfrageereignisse301 und302 ). 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 und303 und drei HTTP-Module304 ,304 und306 in3 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-Module304 bis306 mit den Anfrageereignissen301 bis303 . Eine Linie, die sich zwischen einem HTTP-Modul und einem Anfrageereignis erstreckt, stellt eine Registrierung dar. In3 sind drei beispielhafte HTTP-Module304 ,305 und306 jeweils mit dem Anfrageereignis302 registriert, so dass alle drei Module304 bis306 eine HTTP-Anfrage basierend auf demselben Rückruf, der durch Anfrageereignis302 verursacht wird, bearbeiten. HTTP-Modul305 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., zeigt3 , dass HTTP-Modul304 mit Anfrageereignissen301 und302 registriert ist. Ebenso ist HTTP-Modul306 mit Anfrageereignissen302 und303 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:
- 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:
- 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:
- 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:
- 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:
- Eine beispielhafte Implementierung einer Klasse, die die IASyncResult Schnittstelle implementiert, ist in dem folgenden Pseudocode gezeigt:
- Das End-Ereignis kann verwendet werden, um irgendwelche offenen Ressourcen, falls notwendig, aufzuräumen, wie durch den folgenden exemplarischen Pseudocode dargestellt:
- 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)
- 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 (
301 –303 ) aufweist, wobei jedes Anfrageereignis (301 –303 ) 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 (304 –306 ) im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert ist, wobei jeder Rückruf jede Anwendung und jedes Modul (304 –306 ), die im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert sind, veranlasst, das Kontextobjekt auszuführen, wobei die Vielzahl der Anfrageereignisse (301 –303 ) eine deterministische Reihenfolge haben. - Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei mindestens eines der Vielzahl von Anfrageereignissen (
301 –303 ) ein synchrones Anfrageereignis ist. - Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei mindestens eines der Vielzahl von Anfrageereignissen (
301 –303 ) ein asynchrones Anfrageereignis ist. - Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1, wobei die Vielzahl von Anfrageereignissen (
301 –303 ) des Weiteren mindestens ein Anfrageereignis einschliessen, das eine nicht-deterministische Reihenfolge hat. - 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 (
301 –303 ) aufweist, wobei jedes Anfrageereignis (301 –303 ) ein zugehöriges Ereignis hat und einen Rückruf erzeugt, wenn das dem Anfrageereignis (301 –303 ) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304 –306 ) im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert ist, wobei jeder Rückruf jede Anwendung und jedes Modul (304 –306 ), die im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert sind, veranlasst, das Kontextobjekt auszuführen; wobei die Vielzahl der Anfrageereignisse (301 –303 ) eine nicht-deterministische Reihenfolge haben. - Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 5, wobei die Vielzahl der Anfrageereignisse (
301 –303 ) mit nicht-deterministischer Reihenfolge ein Fehlerereignis einschliessen. - Laufzeitsystem zur Behandlung einer HTTP-Anfrage gemäß Anspruch 1 oder 5, wobei ein Modul (
304 –306 ) im Zusammenhang mit einer Vielzahl von Anfrageereignissen (301 –303 ) registriert ist. - 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.
- 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.
- 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 (
301 –303 ) aufweist, und jedes Anfrageereignis ein zugehöriges Ereignis hat; Erzeugen eines Rückrufs, wenn das einem Anfrageereignis (301 –303 ) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304 –306 ) im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert ist; und Veranlassen, dass jede Anwendung und jedes Modul (304 –306 ), die im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert sind, das Kontextobjekt als Antwort auf den Rückruf ausführen, wobei die Vielzahl der Anfrageereignisse eine deterministische Reihenfolge hat. - Verfahren gemäß Anspruch 10, des Weiteren einen Schritt zum Registrieren eines Moduls (
304 –306 ) im Zusammenhang mit mindestens einem ausgewählten Anfrageereignis (301 –303 ) umfassend. - Verfahren gemäß Anspruch 10, des Weiteren einen Schritt zum Registrieren einer Vielzahl von Modulen (
304 –306 ) im Zusammenhang mit einem ausgewählten Anfrageereignis (301 –303 ) umfassend. - Verfahren gemäß Anspruch 10, wobei mindestens eines der Vielzahl von Anfrageereignissen (
301 –303 ) ein synchrones Anfrageereignis (301 –303 ) ist. - Verfahren gemäß Anspruch 10, wobei mindestens eines der Vielzahl von Anfrageereignissen (
301 –303 ) ein asynchrones Anfrageereignis (301 –303 ) ist. - Verfahren gemäß Anspruch 10, wobei die Vielzahl von Anfrageereignissen (
301 –303 ) des Weiteren mindestens ein Anfrageereignis (301 –303 ) einschliesst, das eine nicht-deterministische Reihenfolge hat. - 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 (
301 –303 ) aufweist, und jedes Anfrageereignis (301 –303 ) ein zugehöriges Ereignis hat; Erzeugen eines Rückrufs, wenn das einem Anfrageereignis (301 –303 ) zugehörige Ereignis eintritt und wenn mindestens eine Anwendung und/oder ein Modul (304 –306 ) im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert ist; und Veranlassen, dass jede Anwendung und jedes Modul (304 –306 ), die im Zusammenhang mit dem Anfrageereignis (301 –303 ) registriert sind, das Kontextobjekt als Antwort auf den Rückruf ausführen, wobei die Vielzahl der Anfrageereignisse (301 –303 ) eine nicht-deterministische Reihenfolge hat. - Verfahren gemäß Anspruch 16, wobei die Vielzahl der Anfrageereignisse (
301 –303 ) mit nicht-deterministischer Reihenfolge ein Fehlerereignis einschliessen. - 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.
- 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.
- Computer-lesbares Medium, das computer-ausführbare Instruktionen zum Ausführen des Verfahrens von einem der Ansprüche 10 bis 19 hat.
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)
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)
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软件公司 | 用于利用图像基准点处理数字图像的方法和设备 |
-
2001
- 2001-06-29 US US09/894,828 patent/US7162723B2/en not_active Expired - Fee Related
-
2002
- 2002-06-14 EP EP02013186A patent/EP1271883B1/de not_active Expired - Lifetime
- 2002-06-14 PT PT02013186T patent/PT1271883E/pt unknown
- 2002-06-14 DK DK02013186T patent/DK1271883T3/da active
- 2002-06-14 AT AT02013186T patent/ATE326106T1/de active
- 2002-06-14 DE DE60211254T patent/DE60211254T2/de not_active Expired - Lifetime
- 2002-06-14 ES ES02013186T patent/ES2263707T3/es not_active Expired - Lifetime
- 2002-07-01 JP JP2002192640A patent/JP4302942B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-09 US US11/621,435 patent/US7603676B2/en not_active Expired - Fee Related
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 |