DE69812899T2 - Webagent zur anforderung von mehreren prozessen - Google Patents
Webagent zur anforderung von mehreren prozessen Download PDFInfo
- Publication number
- DE69812899T2 DE69812899T2 DE69812899T DE69812899T DE69812899T2 DE 69812899 T2 DE69812899 T2 DE 69812899T2 DE 69812899 T DE69812899 T DE 69812899T DE 69812899 T DE69812899 T DE 69812899T DE 69812899 T2 DE69812899 T2 DE 69812899T2
- Authority
- DE
- Germany
- Prior art keywords
- request
- program
- server
- network
- available
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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
Description
- Gebiet der Erfindung
- Diese Erfindung bezieht sich auf Serverarchitekturen in vernetzten bzw. Netzwerk-Computersystemen, genauer auf Webserver, welche Serverapplikationen durchführen, welche dynamische Operationen bzw. Vorgänge für Web-Verwender bzw. Webuser unterstützen.
- Hintergrund der Erfindung
- Das World Wide Web beinhaltet ein Netzwerk von Servern im Internet ("Webserver"), von welchen jeder eine oder mehrere HTML (Hypertext Markup Language) Seiten aufweist. Die HTML-Seiten auf einem Webserver stellen Information und Hypertext-Links zu anderen Dokumenten auf diesem und (üblicherweise) anderen Webservern zur Verfügung. Webserver kommunizieren bzw. stehen in Verbindung mit Klienten unter Verwendung des Hypertext-Transfer-Protokolls (HTTP).
- Verwender des World Wide Web verwenden ein Klientenprogramm, welches als ein Browser bezeichnet wird, um Information von einem ausgewählten Webserver anzufordern, zu dekodieren und anzuzeigen bzw. darzustellen. Wenn der Verwender eines Browsers einen Link bzw. eine Verbindung auswählt, wird eine Anforderung über das Internet zu dem Webserver gesandt, welcher Information speichert, welche in dem Link spezifiziert ist. In Antwort auf die Anforderung überträgt der Webserver die spezifizierte bzw. bestimmte Information an den Browser, welcher die Anforderung ausgegeben bzw. ausgesandt hat. Der Browser empfängt die Information, stellt die empfangene Information dem Verwender dar und wartet auf die nächste Verwenderanforderung bzw. -eingabe.
- Traditionellerweise befindet sich die Information, welche auf Webservern gespeichert ist, in der Form von statischen HTML-Seiten. Statische HTML-Seiten werden an dem Webserver vor einer Anforderung von einem Webbrowser erzeugt bzw. hergestellt und gespeichert. In Antwort auf eine Anfrage wird eine statische HTML-Seite lediglich aus einem Speicher gelesen und an den anfragenden bzw. anfordernden Browser übermittelt. Gegenwärtig besteht ein Trend, Webserverapplikationen bzw. -anwendungen zu entwickeln, welche auf Browseranwendungen durch ein Durchführen von dynamischen Vorgängen antworten. Beispielsweise kann ein Webserver auf eine Anforderung durch ein Ausgeben einer Anfrage an eine Datenbank, ein dynamisches Konstruieren einer Webseite, welche die Resultate der Anfrage enthält, und ein Übertragen der dynamisch konstruierten HTML-Seite an den anfragenden Browser antworten. Um dynamische Operationen bzw. Vorgänge durchzuführen, muß die Funktionalität des Webservers erhöht oder vergrößert werden. Verschiedene Zugänge wurden entwickelt, um Webserver zu erweitern, um dynamische Vorgänge zu unterstützen.
- Ein Zugang zum Bereitstellen von dynamischen Vorgängen in Antwort auf Anforderungen von Webbrowsern verwendet das Common Gateway Interface (CGI). CGI ist eine Spezifikation zum Übertragen von Information zwischen einem Webserver und einem CGI-Programm. Ein CGI-Programm ist irgendein Programm, welches konstruiert bzw. ausgebildet ist, um Daten zu akzeptieren und rückzusenden, welche der CGI-Spezifikation entsprechen. Das Programm könnte in jeder Programmier sprache, beinhaltend C, Perl oder Visual Basic, geschrieben sein.
- Der CGI-Zugang leidet an dem Nachteil, daß ein getrennter Vorgang bzw. Prozeß (eine getrennte Stufe des CGI-Programms) jedesmal initiiert wird, wenn die bestimmte Anfrage durch den Server empfangen wird. Ein Empfang von einigen tausend derartigen Anfragen von unterschiedlichen Verwendern wird derart bewirken, daß einige tausend Prozesse initiiert werden, was verfügbare Ressourcen bzw. Möglichkeiten an dem Server erschöpft bzw. übersteigt.
- Ein alternativer Zugang zum Bereitstellen von dynamischen Antworten auf Anfragen bzw. Anforderungen bedingt eine Verwendung von "Plug-in"-Extensions. Eine Plug-in-Extension bzw. Einschub-Erweiterung nimmt Botschaften, welche an den Server gesandt werden, an verschiedenen Stufen auf, um eine anwendungsspezifische Be- bzw. Verarbeitung für eine bestimmte bzw. spezifische Verwenderanfrage durchzuführen. Ein Webserver-Einschub arbeitet in demselben Adressenraum wie der Webserver und alle anderen Webserver-Einschübe. Daher muß ein Anwendungsentwickler, welcher einen Einschub entwickelt, mit den Betriebs- bzw. Operationsdetails des Webservers auf niedrigerem Niveau vertraut sein. Darüber hinaus setzt eine Ausführung der Einschübe in demselben Adreßraum wie der Webserver den Webserver-Sicherheits- und -Stabilitätsrisiken aus, wo ein fehlerhafter Einschub bewirken kann, daß andere Einschübe oder der Webserver selbst zusammenbrechen oder sich in einer nicht vorhersagbaren Weise verhalten oder arbeiten.
- Merle P. et al. "CorbaWeb: A generic object navigator", Computer Networks and ISDN Systems, Band 28, Nr. 11, Mai 1996, Seiten 1269–1281 offenbart ein Verfahren zum Antworten auf eine Anforderung, welche an einen Server von einem Klienten bzw. Kunden über ein Netzwerk ausgegeben wird. Bei einem Erhalten einer Anforderung von dem Netzwerk wird ein Programm identifiziert, welches der Anforderung entspricht und die Anfrage bzw. Anforderung wird an das Programm zur Ausführung bzw. Ausübung geleitet. Eine Antwort wird auf die Anforderung basierend auf der Ausübung. bzw. Durchführung des Programms gegeben.
- Ziel der Erfindung
- Es ist ein Ziel der vorliegenden Erfindung, ein Verfahren zum Antworten auf eine Anfrage zur Durchführung eines Vorgangs, ein computerlesbares Medium, welches darauf Sequenzen von Instruktionen zum Antworten auf eine Anforderung zur Durchführung eines Vorgangs gespeichert aufweist, und ein Serversystem zur Verfügung zu stellen, welches konfiguriert ist, um auf eine Anfrage zur Durchführung eines Vorgangs zu antworten, welche dynamische Servervorgänge bzw. -operationen unterstützen.
- Dieses Ziel wird durch ein Verfahren zum Antworten auf eine Anfrage bzw. Anforderung zur Aus- bzw. Durchführung eines Vorgangs, welches die in Anspruch 1 geoffenbarten Merkmale aufweist, ein vollständiges, lesbares Medium, welches darauf Sequenzen von Instruktionen zum Antworten auf eine Anfrage zur Durchführung eines Vorgangs gespeichert hat, welches die in Anspruch 13 geoffenbarten Merkmalen aufweist, und ein Serversystem gelöst, welches konfiguriert ist, um auf eine Anfrage zur Durchführung eines Vorgangs zu antworten, welches die in Anspruch 16 geoffenbarten Merkmale auf weist. Bevorzugte Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
- Es besteht eine Notwendigkeit bzw. ein Erfordernis für eine Anordnung, welche es Webservern ermöglicht, dynamische Servervorgänge zu unterstützen, wo vielfache, externe Prozesse in einer regel- bzw. steuerbaren, skalierbaren und effizienten Weise initiiert bzw. gestartet, gemanagt bzw. gehandhabt und beendet werden können.
- Es besteht auch ein Erfordernis für eine Anordnung bzw. Ausbildung zum Antworten auf eine Kunden- bzw. Klientenanfrage bzw. -anforderung, welche an einen Webserver ausgegeben wird, welcher mehrfache Instanzen eines Programms ausführt bzw. exekutiert, welches für ein Verarbeiten der Anfrage konfiguriert ist, wo die Anforderung von dem Klienten selektiv an eine verfügbare Instanz geliefert bzw. übermittelt wird.
- Es besteht auch ein Erfordernis für eine Anordnung, welche auf eine Klientenanforderung bzw. -anfrage antwortet, wo eine Instanz eines Programms, welches zum Bearbeiten der Anforderung konfiguriert ist, selektiv basierend auf der Verfügbarkeit von bestehenden Instanzen und einer vorbestimmten maximalen Anzahl von Instanzen bzw. Stellen bzw. Fällen initiiert bzw. gestartet wird.
- Diese und andere Erfordernisse werden durch die vorliegende Erfindung erfüllt bzw. behandelt, wo ein Webagent bzw. Webanforderungsprogramm ein Bearbeiten einer Anforderung bzw. Anfrage regelt bzw. steuert, indem ein Programm identifiziert wird, welches der Anforderung entspricht, selektiv eine Stelle bzw. Instanz des Programms gestartet wird und die Anforderung an die Stelle zur Bearbeitung der Anforderung ausgegeben bzw. übertragen wird.
- Gemäß einem Aspekt der vorliegenden Erfindung ist ein Verfahren zum Ausführen durch einen Server konfiguriert, um auf eine Anfrage bzw. Anforderung zur Aus- bzw. Durchführung eines Vorgangs zu antworten. Das Verfahren beinhaltet ein Erhalten der Anfrage bzw. Anforderung über ein Netzwerk und ein Weiterleiten der Anforderung an eine Dispatcher- bzw. Zuteiler-Einschub- bzw. Einsteckeinrichtung, welche durch den Server ausgeführt wird. Die Anforderung wird bearbeitet, indem bewirkt wird, daß die Zuteiler-Einsteckeinrichtung bestimmt, ob eine verfügbare Instanz bzw. Stelle eines Programms, welches konfiguriert ist, um die Anfrage zu behandeln, aus einer bestehenden Anzahl der Programmstellen bzw. -fälle verfügbar ist. Wenn eine Stelle bzw. Instanz verfügbar ist, dann wird die Anforderung für eine Aus- bzw. Durchführung durch die verfügbare Stelle weitergeleitet. Wenn keine Stelle bzw. kein Fall verfügbar ist, dann wird eine neue Stelle initiiert bzw. gestartet, wenn die bestehende Anzahl von Stellen bzw. Instanzen eine maximale, vorgeschriebene Anzahl nicht übersteigt. Wenn keine Stelle bzw. kein Fall verfügbar ist und die bestehende Anzahl von Fällen bzw. Stellen die maximale, vorgeschriebene Anzahl übersteigt, dann wird eine Antwort über das Netzwerk ausgesandt, welche anzeigt, daß die Anforderung nicht bearbeitet wurde. Hier handhabt die Zuteiler-Einsteck- bzw. Einschubeinrichtung Serverressourcen beim Bearbeiten der Anforderung durch ein selektives Weiterleiten der Anforderung zur Ausführung oder ein Rückweisen der Anforderung basierend auf der Verfügbarkeit einer Stelle relativ zu der maximalen, vorgeschriebenen Anzahl von Stellen.
- Die vorliegende Erfindung ermöglicht somit, daß eine Mehrzahl von Erweiterungsprogrammen einem Serverprozeß in einer regel- bzw. steuerbaren Weise hinzugefügt wird. Die Zuteiler-Einschubeinrichtung regelt bzw, steuert eine Ausführung von unterschiedlichen Erweiterungsprogrammen, welche in getrennten und unabhängigen Stellen bzw. Fällen laufen, und leitet Anforderungen an die verfügbaren Stellen selektiv weiter, wodurch sichergestellt wird, daß der Serverprozeß und die Server-Erweiterungsprogramme nicht überlastet sind bzw. werden.
- Zusätzliche Ziele, Vorteile und neuartige Merkmale der Erfindung werden teilweise in der nachfolgenden Beschreibung dargelegt werden und werden teilweise Fachleuten bei einer Überprüfung des Nachfolgenden erkennbar oder können durch eine Ausführung der Erfindung erfaßt bzw. erlernt werden. Die Ziele und Vorteile der Erfindung können mit Hilfe der Elemente und Kombinationen realisiert und erhalten werden, auf die insbesondere in den beigeschlossenen Ansprüchen hingewiesen wird.
- Kurze Beschreibung der Zeichnungen
- Die vorliegende Erfindung wird anhand eines Beispiels und nicht als Beschränkung in den Figuren der beiliegenden Zeichnungen illustriert, in welchen gleiche Bezugszeichen sich auf gleiche bzw. ähnliche Elemente beziehen, und in welchen:
-
1 ein Blockdiagramm eines Webservers, welcher auf eine Anfrage bzw. Anforderung antwortet, welche von einem Klienten über ein Netzwerksystem erhalten wird, gemäß einer Ausführungsform der vorliegenden Erfindung ist; -
2 ein Blockdiagramm des Webservers gemäß einer ersten Ausführungsform der vorliegenden Erfindung ist; -
3A und3B Flußdiagramme sind, welche das Verfahren zum Antworten auf die Klientenanfrage bzw. -anforderung gemäß einer Ausführungsform der vorliegenden Erfindung zusammenfassen; -
4 ein Flußdiagramm ist, welches ein Verfahren zum Initiieren des Serverprozesses gemäß einer Ausführungsform der vorliegenden Erfindung illustriert; und -
5 ein Blockdiagramm ist, welches den Webagenten bzw. Webanforderungsbroker gemäß einer zweiten Ausführungsform der vorliegenden Erfindung illustriert. - Detaillierte Beschreibung der bevorzugten Ausführungsform
- Ein Verfahren und eine Vorrichtung zum Antworten auf eine Anfrage bzw. Anforderung, welche an einen Server von einem Klienten über ein Netzwerksystem ausgegeben wird, wird beschrieben. In der folgenden Beschreibung werden für die Zwecke einer Erläuterung vielfache spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zur Verfügung zu stellen. Es wird jedoch für einen Fachmann ersichtlich bzw. augenscheinlich sein, daß die vorliegende Erfindung ohne die spezifischen Details durchgeführt werden kann. In anderen Fällen sind gut bekannte Strukturen und Vorrichtungen bzw. Einrichtungen in einer Blockdiagrammform gezeigt, ob ein unnötiges Verschleiern der vorliegenden Erfindung zu vermeiden.
- Überblick über die Webserver-Architektur
-
1 ist ein Diagramm eines Webservers, welcher auf eine Anfrage bzw. Anforderung, welche von einem Klienten bzw. Kunden über ein Netzwerksystem erhalten wird, gemäß einer Ausführungsform der vorliegenden Erfindung antwortet. Der Webserver10 empfängt die Anforderung bzw. Anfrage von einem Klienten12 über ein Netzwerksystem14 , beispielsweise das World Wide Web unter Verwendung des Transmission Control Protocol/Internet Protocol (TCP/IP). Der Webserver10 beinhaltet einen Netzwerk-Listener bzw. eine Netzwerk-Empfängerplatine16 , einen Webanforderungsbroker bzw. Webagent18 und eine Vielzahl von Server-Erstreckungs- bzw. - Erweiterungsprogrammen20 . Ein Verwender des Netzwerks14 verwendet das Klientenprogramm12 , um Information von dem Webserver10 anzufordern, zu dekodieren und anzuzeigen bzw. darzustellen. Das Klientenprogramm12 beinhaltet einen Webbrowser22 , welcher eine Anforderung an die Netzwerk-Empfängerplatine16 über das Netzwerk14 sendet. Das Klientenprogramm beinhaltet auch Browser, Erweiterungsprogramme24 (beispielsweise "Einschub"- bzw. "Einsteck"-Erweiterungen), welche zusätzliche Verarbeitungsmöglichkeiten bzw. -fähigkeiten für den Webbrowser22 zur Verfügung stellen. Eine Kommunikation bzw. Verbindung zwischen dem Webbrowser22 und der Web-Empfängerplatine16 wird unter Verwendung eines standardisierten Protokolls, beispielsweise der Hypertext Transfer Protokoll (HTTP) Version 1.0 durchgeführt. Das HTTP 1.0 Protokoll kann mit optionalen, sicheren Sockelschichten (SSL) basierend auf einer Datenverschlüsselung verwendet werden, um eine kurzzeitige Verbindung zwischen dem Webbrowser22 und der Web-Empfängerplatine16 aufzubauen. - Wie unten beschrieben, empfängt die Web-Empfängerplatine
16 die Klientenanforderung über das Netzwerk14 und leitet die Anforderung an den Webagenten18 weiter. Der Webagent18 leitet selektiv die Anforderung an eine ausführbare Stelle bzw. Instanz von einem der Server-Erweiterungsprogramme20 für eine Bearbeitung weiter. Die Web-Empfängerplatine16 gibt bei einem Empfang einer Antwort von dem Webagent18 die Antwort auf die Klientenanfrage über das Netzwerk14 aus. Bei einem Erhalt der Antwort bestimmt der Webbrowser22 die Art der erhaltenen Anforderung und bestimmt, wie die Antwort handzuhaben ist. Beispielsweise kann die Antwort entweder unmittelbar durch den Webbrowser22 bearbeitet werden oder der Webbrowser22 kann eines der Browser-Erweiterungsprogramme24 für eine weitere Bearbeitung verwenden. Die Browser-Erweiterungsprogramme24 werden typischerweise als klientenseitiger Einschub bzw. Einsteckeinrichtung implementiert, welche eine bestimmte Verarbeitung bzw. Bearbeitung der Antwort durchführen. Nach einem Vervollständigen bzw. Abschließen der Bearbeitung wird der Klient12 typischerweise das Resultat in dem Hauptanzeigebereich des Webbrowsers als eine Hypertext-Mark-up-Language(HTML)-Seite darstellen bzw. anzeigen. - Webagent
- Gemäß der vorliegenden Erfindung ist der Webagent
18 konfiguriert, um eine Bearbeitung bzw. Verarbeitung von Klientenanforderungen durch ein selektives Routen bzw. Weiterleiten der Klientenanforderung an Server-Erweiterungen zu managen bzw. handzuhaben, welche in getrennten Prozessen ablaufen. -
2 ist ein Blockdiagramm des Servers10 gemäß einer ersten Ausführungsform der vorliegenden Erfindung. Die Web-Empfängerplatine16 beinhaltet einen HTTP-Dämon16a , welcher einen Netzwerktransport gemäß dem HTTP-Protokoll unterstützt. Die Web-Empfängerplatine16 erhält die Klien tenanforderung von dem Netzwerk14 , welche typischerweise in der Form eines Uniform Resource Locator (URL) übermittelt wird. Die Klientenanforderung dient als eine Identifikationseinrichtung für ein Webobjekt, beispielsweise eine HTML-Seite oder einen durchzuführenden Vorgang. Die Web-Empfängerplatine16 gibt die Klientenanforderung an den Webagenten18 ohne einen Versuch einer Interpretation der Klientenanforderung weiter. - Der Webagent
18 beinhaltet eine Zuteiler-Einschub- bzw. -Einsteckeinrichtung30 und eine Vielzahl von Ausführungsmaschinen32 . Der Webagent18 regelt bzw. steuert ein Bearbeiten der Klientenanforderung durch ein Identifizieren eines Extensions- bzw. Erweiterungsprogramms20 , welches zum Bearbeiten der Klientenanforderung konfiguriert ist, und ein Zuteilen der Klientenanforderung zur Aus- bzw. Durchführung durch eine verfügbare Stelle bzw. Instanz des Erweiterungsprogramms. Die Zuteiler-Einsteckeinrichtung30 beinhaltet eine Konfigurationsbibliothek34 , welche die verfügbaren Programme zum Handhaben von unterschiedlichen Anforderungen identifiziert, welche im Detail unten beschrieben sind. Sobald die Zuteiler-Einsteckeinrichtung30 eine Programmerweiterung20 identifiziert, welche konfiguriert ist, um die Anforderung zu bearbeiten, bestimmt die Zuteiler-Einsteckeinrichtung30 , ob eine verfügbare Stelle oder ein verfügbarer Fall des Programms, welches konfiguriert ist, um die Anforderung handzuhaben, verfügbar ist, und teilt die Anforderung für eine Durchführung durch die verfügbare Stelle zu, wie dies unten beschrieben ist. - Der Webserver
10 beinhaltet auch eine Vielzahl von Server-Erweiterungsprogrammen20a ,20b und20c . Jedes Server-Erweiterungsprogramm, welches auch als eine Systempatrone be zeichnet wird, ist für einen unterschiedlichen Vorgang konfiguriert. Spezifisch ist ein Server-Erweiterungsprogramm als eine Patrone bzw. Kassette konfiguriert, welche eine gut definierte Funktion durchführt, oder als eine programmierbare Kassette, welche als ein Interpreter bzw. Übersetzer oder eine Routineumgebung für eine Anwendung wirkt. Ein Beispiel einer programmierbaren Kassette ist ein PL/ SQL-Agent20a , welcher konfiguriert ist, um Datenbankabfragen gemäß der auf Oracle basierenden Programmiersprache unter Verwendung der Structured Query Language (PL/SQL) zu bearbeiten. Der PL/SQL-Agent20a führt eine Klientenanforderung durch, welche eine Datenbankabfrage beinhaltet, indem ein individueller Prozeß36 (d. h. eine getrennte Instanz des PL/SQL-Agenten20a ) durchgeführt wird. Eine Aus- bzw. Durchführung der Instanz36a bewirkt, daß die Instanz die Anforderung bearbeitet, beispielsweise einen Zutritt zu einem Datenbankserver40 in Verbindung mit der Instanz36 über einen Datenlink bzw. eine Datenverbindung42 . - Ein anderes Beispiel eines programmierbaren kassettenartigen Server-Erweiterungsprogramms ist ein JAVA-Interpreter
20b , welcher Webanwendungsentwicklern ermöglicht, serverseitige JAVA-Anwendungen zu schreiben, um Klientenanforderungen zu bearbeiten. In ähnlicher Weise kann ein Kundenserver20c als ein Erweiterungsprogramm konfiguriert sein, um dynamische Vorgänge zur Verfügung zu stellen, beispielsweise einen Zutritt zu Prozessen, welche durch einen Server46 eines Dritten durchgeführt bzw. ausgeführt werden. - Die Erweiterungsprogramme
20a ,20b und20c , welche als ein ausführbarer Code gespeichert sind, werden ausgeführt, indem zuerst eine Instanz bzw. eine Stelle36 des entsprechenden Extensions- bzw. Erweiterungsprogramms20 in den Serverspeicher initiiert und dann diese Instanz durchgeführt wird. Eine Stelle bzw. eine Instanz ist äquivalent zu einem Prozeß bzw. Vorgang in einer UNIX-Umgebung. Der Webagent18 handhabt bzw. managt die Ausführung von jedem der Erweiterungsprogramme20 durch ein Initiieren einer vorbestimmten minimalen Anzahl von Stellen bzw. Instanzen bzw. Fällen36a ,36b ,36c für die jeweiligen Erweiterungsprogramme20a ,20b ,20c . Wenn der Webagent18 eine Klientenanforderung erhält und bestimmt, daß keine Instanz36 des entsprechenden Erweiterungsprogramms verfügbar ist, wird der Webagent18 eine neue Instanz des Programms initiieren, um die Anforderung auszuführen, wenn die bestehende Anzahl von Instanzen, nicht eine maximale, vorgeschriebene Anzahl übersteigt. - Beispielsweise wird, wenn eine Klientenanforderung eine Anforderung für einen Zutritt zu der Datenbasis bzw. Datenbank
40 spezifiziert, der Webagent18 den PL/SQL-Agenten20a als das Programm identifizieren, welches konfiguriert ist, um die Anforderung handzuhaben. Der Webagent18 wird bestimmen, ob eine bestehende Instanz36a des Programms20a verfügbar ist, um die Anforderung handzuhaben. Wenn keine Instanz bzw. Stelle verfügbar ist, beispielsweise alle der bestehenden Instanzen36a1 –36an andere Klientenanforderungen bearbeiten, wird der Webagent18 eine neue Instanz36an+1 initiieren, wenn die bestehende Anzahl von Instanzen36a nicht eine maximale vorgeschriebene Anzahl übersteigt. - Wie in
2 gezeigt, beinhaltet der Webagent18 Webagent-Ausführungsmaschinen (WRBX)32 für jedes der Erweiterungsprogramme20 . Die Ausübung- bzw. Ausführungsmaschine regelt bzw. steuert eine Ausführung der Instanzen bzw. Fälle des entsprechenden Programms durch ein Bereitstellen eines App lication Programming Interface (eine Anwendung programmierenden Interface) (WRB API), welches vorbestimmte Vorgänge spezifiziert, welche durch die Instanzen des entsprechenden Programms durchzuführen sind. Durch ein Aufbauen von zugrundeliegenden Callback- bzw. Rückruffunktionen zwischen der Ausführungsmaschine32 und einem Erweiterungsprogramm kann jegliches Erweiterungsprogramm in den Server10 durch ein Konfigurieren des Erweiterungsprogramms, um auf die Callback- bzw. Rückruffunktionen (beispielsweise eine Initialisierungsfunktion, eine Anforderungs-Handhabungseinrichtung und eine Abschaltfunktion) zu antworten, und dann ein Registrieren des Erweiterungsprogramms in der Konfigurationsbibliothek34 integriert werden, welche unten beschrieben ist. - Derart gibt, wenn die Zuteiler-Einsteckeinrichtung
30 bestimmt, daß der PL/SQL-Agent20a die geeignete Erweiterung bzw. Erstreckung zur Verarbeitung einer Anforderung ist, die Zuteiler-Einsteckeinrichtung30 die Anforderung an die Ausführungsmaschine32a weiter bzw. leitet sie dieser zu. Wenn eine neue Instanz des Programms20 initiiert bzw, initialisiert werden soll bzw, muß, erzeugt die Zuteiler-Einsteckeinrichtung30 eine neue Instanz des Programms in einem getrennten Adreßraum und teilt die Anforderung an die Ausführungsmaschine32a der neuen Instanz zu. Der Adreßraum, welcher zur Ausführung der Instanz des Programms verwendet wird, kann sich innerhalb des Speichers des Computersystems, bei welchem der Webagent arbeitet, oder an einem anderen Computersystem befinden. Die Ausführungsmaschine32a gibt dann eine Anforderungshandhabungs-Callbackfunktion an die bestimmte Instanz36ai aus, wodurch bewirkt wird, daß die Instanz36ai die Anforderung beispielsweise durch einen Zutritt zu der Datenbank40 bearbeitet. Die In stanz36ai , welche die Anforderung bearbeitet, gibt das Resultat an die Ausführungsmaschine32a zurück, welche das Resultat an die Zuteiler-Einsteckeinrichtung30 weiterleitet. In dem Fall, daß der Webagent18 einen Fehler in dem Vorgang detektiert bzw. feststellt, gibt die Ausführungsmaschine32a eine Beendigungsfunktion aus, um die Instanz aus dem Speicher zu eliminieren. - Somit stellt die Ausführungsmaschine
32a ein Anwendungsprogrammierinterface an den Webagenten18 (WRB API) zur Verfügung, welches vorbestimmte Vorgänge spezifiziert, welche auszuführen sind. Eine Verwendung von WRB API ermöglicht Programmierern der Erweiterungsprogramme20 , jedes Erstreckungs- bzw. Erweiterungsprogramms für eine Integration auf hohem Niveau in den Server20 unabhängig von den Protokollen zu konfigurieren, welche durch die spezielle Web-Empfängerplatine verwendet werden, mit welcher das Erweiterungsprogramm verwendet wird. -
3A und3B fassen ein Flußdiagramm zusammen, welches ein Verfahren zum Beantworten der Klientenanforderung gemäß einer Ausführungsform der vorliegenden Erfindung illustriert. Die Klientenanforderung wird in Schritt 50 durch die Web-Empfangsplatine16 empfangen bzw. erhalten. Bei einem Erhalten der Klientenanforderung leitet die Web-Empfängerplatine16 die Anforderung an den Webagent18 in Schritt 52 weiter. Die Zuteiler-Einsteckeinrichtung30 identifiziert das Programm, welches der Klientenanforderung entspricht, indem in Schritt 54 auf die Konfigurationsbibliothek34 zugegriffen wird. Die Konfigurationsbibliothek34 beinhaltet für jedes Programm einen Objekttyp entsprechend der Anforderung, welche durch das entsprechende Programm be- bzw. verarbeitet wird. Beispielsweise wird, wenn die Klientenan forderung eine URL-Anforderung ist, welche mit dem virtuellen Weg bzw. Pfad "/Java" beginnt, die Konfigurationsbibliothek34 ein entsprechendes Objekt speichern, welches spezifiziert, daß der JAVA-Interpreter36b konfiguriert ist, um Anfragen handzuhaben, welche den virtuellen Pfad "/Java" aufweisen. Die Konfigurationsbibliothek34 wird auch einen virtuellen Pfad beinhalten, welcher eine Adreßposition für das gespeicherte Programm spezifiziert, welches verwendet wird, um Instanzen des Programms20 zu initiieren. - Die Zuteiler-Einsteckeinrichtung
30 bestimmt in Schritt 56, ob der Anforderungs-Objekttyp (beispielsweise der virtuelle Pfad, welcher in der Klientenanforderung spezifiziert ist) einem identifizierbaren Programm entspricht, wo der Anforderungs-Objekttyp einem Objekttyp entspricht, welcher in der Konfigurationsbibliothek34 gespeichert ist. Wenn der Anforderungs-Objekttyp nicht einem identifizierbaren Programm entspricht, wird die Anforderung an die Web-Empfängerplatine16 in Schritt 58 rückgeleitet (siehe3B ). Wenn in Schritt 58 der HTTP-Dämon16a die Anforderung als eine Anforderung für eine statische HTML-Seite erkennt, greift der HTTP-Dämon auf die statische HTML-Seite aus dem Seitenspeicher16b zu und sendet die Antwort an den Klienten in Schritt 60. Wenn die Klientenanforderung nicht durch den HTTP-Dämon erkannt wird, wird die Antwort an den Klienten in Schritt 60 gesandt, welche anzeigt, daß die Anforderung nicht erkennbar bzw. identifizierbar war. - Wenn in Schritt 56 die Zuteiler-Einsteckeinrichtung
30 aus der Konfigurationsbibliothek34 ein Erweiterungsprogramm identifiziert, welches konfiguriert ist, um die Anforderung handzuhaben, bestimmt die Zuteiler-Einsteckeinrichtung30 in Schritt 62, welcher in3B gezeigt ist, ob eine verfügbare Instanz des identifizierten Programms unter der bestehenden Anzahl von Instanzen36 verfügbar ist. Wenn in Schritt 62 die Zuteiler-Einsteckeinrichtung30 eine verfügbare Instanz, beispielsweise Instanz36a2 des PL/SQL-Agenten 20a identifiziert, wird die entsprechende Ausführungsmaschine32 in Schritt 68 aufgerufen, um die verfügbare Instanz auszuführen, um die Anforderung zu bearbeiten, wie dies unten beschrieben ist. Wenn jedoch in Schritt 62 keine Instanz des identifizierten Programms20 verfügbar ist, bestimmt die Zuteiler-Einsteckeinrichtung30 in Schritt 64, ob die existierende Anzahl von Instanzen eine maximale, vorgeschriebene bzw. vorbestimmte Anzahl überschreitet, welche in der Konfigurationsbibliothek34 gespeichert ist. Wenn die bestehende Anzahl von Instanzen die maximale, vorgeschriebene Anzahl in Schritt 64 überschreitet, retourniert die Zuteiler-Einsteckeinrichtung30 die Anforderung an die Web-Empfängerplatine16 in Schritt 58, wonach die Web-Empfängerplatine eine Antwort an den Klienten über das Netzwerk in Schritt 60 sendet, welche anzeigt, daß die Anforderung bzw. Anfrage nicht bearbeitet wurde. - Wenn in Schritt 64 die existierende Anzahl von Instanzen nicht die maximale, vorgeschriebene Anzahl überschreitet, initiiert die Zuteiler-Einsteckeinrichtung
30 eine neue Instanz des identifizierten Programms und teilt die Anforderung an die Ausführungsmaschine32a der neuen Instanz zu. Beispielsweise initiiert die Zuteiler-Einsteckeinrichtung30 eine neue Instanz des PL/SQL-Agenten20a . Während dieses Schritts wird auf die gespeicherten Sequenzen von Instruktionen für den PL/SQL-Agenten 20a zugegriffen, um eine neue Instanz36ai des Programms20a in einem Adreßraum zu erzeu gen, welcher von dem Adreßraum getrennt ist, in welchem die Zuteiler-Einsteckeinrichtung30 arbeitet. - Sobald die neue Instanz
36ai läuft, teilt die Zuteiler-Einsteckeinrichtung30 die Anforderung an die Ausführungsmaschine32a in Schritt 68 zu, welche der neuen Instanz36ai zugeordnet ist. Die Ausführungsmaschine32a sendet eine Callback- bzw. Rückrufbotschaft an die neue Instanz36ai , welche eine Ausführung bzw. Durchführung der Anforderung anfordert. Die Ausführungsmaschine20 gibt in der Rückrufbotschaft jegliche Parameter weiter, welche für die Instanz36ai erforderlich sind, um die Anforderung zu bearbeiten, beispielsweise Paßwörter, Datenbank-Suchschlüssel oder jegliches andere Argument für einen dynamischen Vorgang, welcher durch die Instanz36ai durchgeführt wird. Die Instanz36ai führt dann die Anforderung aus. Während der Ausführung der Anforderung durch die Instanz in Schritt 68 überwacht die Zuteiler-Einsteckeinrichtung30 die Instanz in Schritt 70, um das Auftreten eines Fehlers zu bestimmen. Wenn in Schritt 70 die Zuteiler-Einsteckeinrichtung30 einen Fehler detektiert bzw. feststellt, ruft die Zuteiler-Einsteckeinrichtung30 die entsprechende Ausführungsmaschine32 in Schritt 72 auf, um die Instanz36 anzuhalten bzw, zu unterbrechen, welche den Fehler aufweist. Die entsprechende Ausführungsmaschine32 gibt wiederum einen Abschaltbefehl über das API an die fehlerhafte Instanz weiter. Diese Instanz, welche auf den Abschaltbefehl durch die Ausführungsmaschine32 antwortet, wird heruntergefahren bzw. abgeschaltet, ohne irgendeinen anderen Prozeß in einem anderen Adressenraum zu beeinflussen. - Wenn in Schritt 70 kein Fehler detektiert wird, erhält die Zuteiler-Einsteckeinrichtung
30 eine Antwort von der In stanz36 bei einer Vervollständigung bzw. einem Abschluß der Ausführung in Schritt 74. Die Zuteiler-Einsteckeinrichtung30 gibt in Schritt76 die Antwort an die Web-Empfängerplatine16 weiter, welche an den Klienten mit der Antwort von der ausgeführten Instanz36 antwortet. Nach einem Ausführen der Instanz hält die Zuteiler-Einsteckeinrichtung30 in Schritt 78 die Instanz in dem Speicher aufrecht, wie dies in Schritt 78 gezeigt ist, um eine Ausführung einer nachfolgenden Anforderung zu ermöglichen. - Somit handhabt die geoffenbarte Anordnung mehrfache bzw. mehrere Instanzen von unterschiedlichen Erweiterungs- bzw. Erstreckungsprogrammen, um eine Vielzahl von Benutzeranforderungen zu bearbeiten. Jede Instanz
36 für jegliches Programm20 wird in einem getrennten Speicherraum ausgeführt, wodurch ermöglicht wird, daß eine fehlerhafte Instanz36 eines Programms20 beendet bzw. abgebrochen wird, ohne irgendwelche andere Instanzen der Programme zu beeinflussen. Der Webagent18 regelt bzw. steuert auch die Anzahl von Instanzen für jedes vorgegebene Erweiterungsprogramm20 . Somit sind die Serverressourcen geregelt bzw. gesteuert bzw. kontrolliert, um sicherzustellen, daß eine große Anzahl von Anfragen den Server10 nicht durch eine ungeregelte bzw. ungesteuerte Erzeugung von Instanzen überwältigt bzw. überfordert wird. Ein Ausführungs- bzw. Durchführungsdurchsatz wird auch durch ein Aufrechterhalten einer minimalen Anzahl von Instanzen, welche für eine Durchführung bereit sind, verbessert. Darüber hinaus können zusätzliche Instanzen initiiert bzw. aufgebaut und in einem Speicher zum Ausführen von nachfolgenden Anforderungen beibehalten werden, im Gegensatz zu einem Beenden einer Instanz nach einer einzigen Ausführung und dann einem neuerlichen Laden des Erweiterungsprogramms in den Speicher, um eine Instanz für eine Ausführung einer nachfolgenden Anfrage neuerlich zu erzeugen. -
4 ist ein Diagramm, welches die Initialisierung des Servers10 gemäß einer Ausführungsform der vorliegenden Erfindung illustriert. Der Server10 wird durch ein Starten des Serverprozesses in Schritt 90 initialisiert, wo die Web-Empfängerplatine und Unterstützungsprozesse in den Speicherraum geladen werden. Der Server10 startet dann die Zuteiler-Einsteckeinrichtung30 in Schritt 92, wodurch bewirkt wird, daß Sequenzen von Instruktionen zum Ausführen des Webagenten18 in dem Speicher gespeichert werden. Die Erweiterungsprogramme20 werden dann mit der Zuteiler-Einsteckeinrichtung30 in Schritt 94 registriert, indem in der Konfigurationsbibliothek34 für jedes Erweiterungsprogramm20 gespeichert wird: (1 ) der Kassettenname; (2 ) die minimale Anzahl von erforderlichen Instanzen bzw. Stellen36 ; (3 ) die maximale Anzahl von Instanzen; (4 ) der virtuelle Pfad zum Zugriff auf das Erweiterungsprogramm, d. h. der Adreßraum, auf welchen zugegriffen werden muß, um eine neue Instanz des Programms zu initiieren; (5 ) die programmabhängigen Funktionsnamen, welche durch die Ausführungsmaschine verwendet werden, um die Callback-Funktion auszuführen (Initialisierung, Anforderungshandler, Abschalten); und (6) eine Objekt-Identifikationseinrichtung, beispielsweise einen Objekttyp, welcher durch eine Klientenanfrage zum Anfordern einer Durchführung eines Vorgangs durch das entsprechende Erweiterungsprogramm20 zu liefern ist. Der Objekttyp kann ein bestimmtes Wort sein oder kann einen virtuellen Pfad, beispielsweise "/java" beinhalten. Die Erweiterungsprogramme20 können in Schritt 94 durch einen Servermanager, d. h. einen Webmaster registriert werden, welcher Zugang zu der Konfigurationsbibliothek in einer auf Echtzeit basierenden Verwender-interaktiven Umgebung aufweist. Sobald der Servermanager die Konfigurationsbibliothek aufgebaut hat, können die Erweiterungsprogramme in Schritt 94 automatisch durch einen Zugriff auf einen nichtflüchtigen Speicher, beispielsweise eine Diskette registriert werden. - Nach einem Registrieren der Erweiterungsprogramme mit der Zuteiler-Einsteckeinrichtung
30 initiiert die Zuteiler-Einsteckeinrichtung30 die minimalen Instanzen für jedes Programm in einem getrennten Adressenraum in Schritt 96. Sobald die minimale Anzahl von Instanzen initiiert wurde, wird der Server10 vorbereitet, um Klientenanfragen zu bearbeiten. Jede Ausführungsmaschine32 verfolgt die Stelle im Speicher und den Status von jeder Instanz36 des entsprechenden Programms20 . -
5 ist ein Blockdiagramm des Servers10 gemäß einer zweiten Ausführungsform der vorliegenden Erfindung. Die erste Ausführungsform von2 nimmt an, daß die Zuteiler-Einsteckeinrichtung30 kompatibel mit Prozessen auf niedrigerem Niveau der Web-Empfängerplatine16 und des HTTP-Dämons16a ist. Die Ausführungsform der5 ist eine Modifikation der ersten Ausführungsform der2 dahingehend, daß der Server einen Transportadapter17 beinhaltet, welcher eine Klientenanforderung von dem HTTP-Dämon16' empfängt, welcher gemäß einem von dem Webagenten18 verschiedenen Protokoll arbeitet. - Der Transportadapter
17 ist konfiguriert, um die Protokolle von unterschiedlichen HTTP-Dämonen zu erkennen, und kann die Klientenanforderungen, welche von dem HTTP-Dämon16' erhalten wurden, in eine umgewandelte bzw. konvertierte Klientenanforderung umwandeln, welche ein zweites Protokoll unabhängig von dem Protokoll des HTTP-Dämon16' aufweist und mit dem Protokoll des Webagenten18 übereinstimmt. Somit ermöglicht der Transportadapter17 , daß der Webagent18 mit HTTP-Dämonen von unterschiedlichen Verkäufern verwendet wird. Darüber hinaus kann der Transportadapter17 konfiguriert sein, um unterschiedliche Server-Architekturen und Betriebssysteme aufzunehmen. Somit wandelt der Transportadapter17 eine Klientenanforderung von dem HTTP-Dämon16' von einem ersten Protokoll in ein zweites Protokoll um, welches mit dem Webagenten18 kompatibel ist. In ähnlicher Weise werden Antworten von dem Webagenten in das Transportprotokoll des HTTP-Dämons16' umgewandelt, um dem HTTP-Dämon16' zu ermöglichen, die Antwort an den Benutzer bzw. Verwender über das Netzwerk zu senden. - In der vorangehenden Beschreibung wurde die Erfindung unter Bezugnahme auf bestimmte Ausführungsformen davon beschrieben. Es wird jedoch augenscheinlich sein, daß verschiedene Modifikationen und Änderungen daran durchgeführt werden können, ohne von dem Rahmen der Erfindung abzuweichen. Die Beschreibung und Zeichnungen sollen dementsprechend eher in einem illustrativen Sinn anstelle einem beschränkenden Sinn betrachtet werden.
Claims (24)
- Verfahren zur Durchführung durch einen Server (
10 ) zum Antworten auf eine Anforderung bzw. Anfrage zur Aus- bzw. Durchführung eines Vorgangs, wobei das Verfahren umfasst: Erhalten (50 ) der Anforderung über ein Netzwerk (14 ); Weiterleiten (52 ) der Anforderung an einen Dispatcher bzw. Zuteilen (30 ), welcher durch den Server (10 ) ausgeführt wird; gekennzeichnet durch den Schritt eines Bearbeitens der Anforderung, indem bewirkt wird, daß der Zuteiler (30 ) die Schritte durchführt: A) Bestimmen (56 ), ob ein Fall bzw. eine Stelle (36 ) eines Programms (20 ), welche(r) konfiguriert ist, um die Anforderung zu bearbeiten, unter einer bestehenden Anzahl von Fällen bzw. Stellen (36 ) des Programms (20 ) verfügbar ist, B) wenn ein Fall (36 ) verfügbar ist, dann Zuteilen (68 ) der Anforderung zur Durchführung durch den zur Verfügung stehenden Fall (36 ), C) wenn kein Fall verfügbar ist, dann Beginnen (66 ) eines neuen Falls (36 ) des Programms (20 ) zur Durchführung der Anforderung, wenn die existierende Anzahl von Fällen (36 ) nicht eine maximale, vorgeschriebene Anzahl übersteigt, und D) wenn kein Fall verfügbar ist und die bestehende Anzahl von Fällen (36 ) die maximale, vorgeschriebene Anzahl übersteigt, dann Senden (60 ) der Antwort über das Netzwerk (14 ), welche anzeigt, daß die Anforderung nicht bearbeitet wurde. - Verfahren nach Anspruch 1, weiters umfassend den Schritt: Empfangen (
74 ) durch den Zuteiler (30 ) einer Antwort von der Stelle (36 ), welche die Anforderung ausführt; und Senden (76 ) einer Information, welche in der Antwort enthalten ist, über das Netzwerk (14 ) von dem Zuteiler (30 ) zu einem Klienten bzw. Kunden bzw. Benutzer (12 ), welcher die Anforderung ausgegeben hat. - Verfahren nach Anspruch 1, weiters umfassend den Schritt: Detektieren bzw. Feststellen (
70 ) durch den Zuteiler (30 ) eines Fehlers in der Stelle (36 ), welche die Anforderung durchführt bzw. abarbeitet; und Beenden (72 ) durch den Zuteiler (30 ) der Stelle (36 ), welche die Anforderung ausführt, in Antwort auf den detektierten Fehler. - Verfahren nach Anspruch 3, weiters umfassend den Schritt eines Sendens (
60 ) einer Antwort über das Netzwerk (14 ), welche anzeigt, daß die Anforderung nicht bearbeitet wurde. - Verfahren nach Anspruch 1, weiters umfassend den Schritt eines Registrierens (
94 ) bei dem Zuteiler (30 ) einer Vielzahl von Programmen (20 ), welche konfiguriert sind, um entsprechende Arten von Anforderungen handzuhaben bzw. zu bearbeiten, wobei der Schritt eines Registrierens (94 ) bei dem Zuteiler (30 ) einer Vielzahl der Programme (20 ) den Schritt eines Speicherns in dem Zuteiler (30 ) für jedes der Programme (20 ) einer maximalen Anzahl von Fällen bzw. Stellen und eines virtuellen Wegs beinhaltet, welcher eine Adressposition bestimmt bzw. spezifiziert, welche dem entsprechenden Programm (20 ) zugeordnet wird. - Verfahren nach Anspruch 1, worin jeder Fall (
36 ) innerhalb eines Adressraums ausgeführt bzw. durchgeführt wird, welcher von den Adressräumen getrennt ist, welche durch andere Fälle bzw. Stellen des Programms (20 ) verwendet werden. - Verfahren nach Anspruch 6, worin der Schritt eines Beginnens (
66 ) eines neuen Falls (36 ) des Programms den Schritt eines Beginnens (66 ) des neuen Falls (36 ) innerhalb eines Adressraums umfaßt, welcher von den Adressräumen getrennt ist, welche durch die anderen Fälle (36 ) des Programms verwendet werden. - Verfahren nach Anspruch 7, weiters umfassend den Schritt eines Verzögerns eines Aufhebens einer Zuordnung bzw. eines Freigebens des neuen Falls (
36 ), um wenigstens ein vorbestimmtes Zeitintervall nach einem Bearbeiten der Anforderung zum Bearbeiten einer nachfolgenden Anforderung. - Verfahren nach Anspruch 1, worin: der Schritt eines Erhaltens (
50 ) der Anforderung über das Netzwerk (14 ) ein Empfangen bzw. Erhalten der Anforderung von einem Transportprotokollprozeß umfaßt, welcher gemäß einem ersten Protokoll arbeitet; und das Verfahren weiters den Schritt eines Umwandelns bzw. Konvertierens der Anforderung in ein zweites Protokoll unabhängig von dem ersten Protokoll umfaßt. - Verfahren nach Anspruch 1, worin die bestehende Anzahl von Fällen bzw. Stellen (
36 ) wenigstens eine vorgeschriebene minimale Anzahl von Fällen bzw. Stellen ist. - Verfahren nach Anspruch 1, weiters umfassend die Schritte: Bewirken, daß der Zuteilen (
30 ) bestimmt bzw. feststellt (56; 62), ob ein Programm (20 ) konfiguriert ist, um die Anfrage handzuhaben, basierend auf dem Vorgang bzw. Berechnung bzw. Arbeit, welcher in der Anfrage spezifiziert ist; und wenn kein Programm konfiguriert ist, um die Anfrage handzuhaben, dann Senden (60 ) einer Antwort über das Netzwerk (14 ), welche anzeigt, daß die Anfrage nicht bearbeitet wurde. - Verfahren nach Anspruch 1, worin: der Schritt eines Erhaltens (
50 ) der Anfrage über das Netzwerk (14 ) den Schritt eines Ausführens eines Serverprozesses durch den Server (10 ) umfaßt; und der Schritt eines Bearbeitens der Anfrage, indem bewirkt wird, daß der Zuteiler (30 ) die Schritte ausführt, den Schritt eines Ausführens durch den Server (10 ) einer Einschub- bzw. Einsteck- bzw. Plug-inroutine umfaßt, welche dem Serverprozeß zugefügt wird, um zu bewirken, daß der Zuteiler (30 ) diese Schritte ausführt bzw. durchführt. - Computerlesbares Medium, welches darauf Sequenzen von Instruktionen gespeichert aufweist, um auf eine Anfrage bzw. Anforderung für eine Aus- bzw. Durchführung eines Vorgangs zu antworten, welche durch einen Server (
10 ) empfangen wird, wobei die Sequenz von Instruktionen Instruktionen für ein Durchführen der Schritte umfaßt: Erhalten (50 ) der Anforderung über ein Netzwerk (14 ); Weiterleiten (52 ) der Anforderung an einen Dispatcher bzw. Zuteiler (30 ), welcher durch den Server (10 ) ausgeführt wird; gekennzeichnet durch den Schritt eines Bearbeitens der Anforderung, indem bewirkt wird, daß der Zuteiler (30 ) die Schritte durchführt: A) Bestimmen (56 ), ob ein Fall bzw. eine Stelle (36 ) eines Programms (20 ), welcher) konfiguriert ist, um die Anforderung zu bearbeiten, unter einer bestehenden Anzahl von Fällen bzw. Stellen (36 ) des Programms (20 ) verfügbar ist, B) wenn ein Fall (36 ) verfügbar ist, dann Zuteilen (68 ) der Anforderung zur Durchführung durch den zur Verfügung stehenden Fall (36 ), C) wenn kein Fall verfügbar ist, dann Beginnen (66 ) eines neuen Falls (36 ) des Programms (20 ) zur Durchführung der Anforderung, wenn die existierende Anzahl von Fällen (36 ) nicht eine maximale, vorgeschriebene Anzahl übersteigt, und D) wenn kein Fall verfügbar ist und die bestehende Anzahl von Fällen (36 ) die maximale, vorgeschriebene Anzahl übersteigt, dann Senden (60 ) der Antwort über das Netzwerk (14 ), welche anzeigt, daß die Anforderung nicht bearbeitet wurde. - Computerlesbares Medium nach Anspruch 13, weiters umfassend Sequenzen von Instruktionen zum Durchführen der Schritte: Empfangen (
74 ) durch den Zuteiler (30 ) einer Antwort von der Stelle (36 ), welche die Anforderung ausführt; und Senden (76 ) einer Information, welche in der Antwort enthalten ist, über das Netzwerk (14 ) von dem Zuteiler (30 ) zu einem Klienten bzw. Kunden bzw. Benutzer (12 ), welcher die Anforderung ausgegeben hat. - Computerlesbares Medium nach Anspruch 13, weiters umfassend Sequenzen von Instruktionen zum Durchführen der Schritte: Detektieren bzw. Feststellen (
70 ) durch den Zuteilen (30 ) eines Fehlers in der Stelle (36 ), welche die Anforderung durchführt bzw. abarbeitet; und Beenden (72 ) durch den Zuteiler (30 ) der Stelle (36 ), welche die Anforderung ausführt, in Antwort auf den detektierten Fehler. - Serversystem (
10 ), welches konfiguriert ist, um auf eine Anfrage bzw. Anforderung zur Aus- bzw. Durchführung eines Vorgang zu antworten, umfassend: eine Netzwerk-Empfängerplatine (16 ) bzw. einen Netzwerk-Listener, welcher) konfiguriert ist, um die Anforderung über ein Netzwerk (14 ) zu empfangen bzw. zu erhalten und eine Antwort auf die Anfrage über das Netzwerk (14 ) zu senden, wobei die Anfrage bzw. Anforderung eine vorgeschriebene Objektart aufweist, welche einen Vorgang spezifiziert, welcher durchzuführen ist; gekennzeichnet durch Mittel, welche eine Vielzahl von Programmen (20 ) gespeichert aufweisen, wobei jedes Programm (20 ) konfiguriert ist, um einen Vorgang durchzuführen, welcher eine Ausgabe in Antwort auf ein Empfangen einer Anforderung generiert bzw. erzeugt, welche eine entsprechende Objektart aufweist, welche den Vorgang spezifiziert, welcher durch das Programm (20 ) durchgeführt wird, wobei jedes Programm (20 ) eine vorgeschriebene Anzahl von Fällen bzw. Stellen aufweist, welche an den entsprechenden Adressräumen arbeiten; und eine Zuteiler-Einsteck-Plug-ineinrichtung (30 ), welche konfiguriert ist, um eines der Programme (20 ) für ein Beantworten der Anfrage basierend auf der vorgeschriebenen Objektart zu identifizieren, wobei die Zuteiler-Einsteckeinrichtung (30 ) adaptiert ist, selektiv die Anforderung an eine verfügbare Stelle (36 ) des identifizierten einen Programms (20 ) basierend auf der entsprechenden vorgeschriebenen Anzahl von Fällen zuzuteilen, wobei die Zuteiler-Einsteckeinrichtung (30 ) die Antwort an die Netzwerk-Empfängerplatine (16 ) basierend auf einer Ausführung der Anforderung durch die verfügbare Stelle (36 ) sendet. - Serversystem nach Anspruch 16, worin die Netzwerk-Empfängerplatine (
16 ) adaptiert ist, um die Anforderung und die Antwort basierend auf dem Hypertext Tranfer Protocol HTTP zu empfangen und zu senden. - Serversystem nach Anspruch 17, worin die Netzwerk-Empfängerplatine (
16 ) einen HTTP-Dämon (16a ) beinhaltet, welcher konfiguriert ist, um eine statische Hypertext Markup Language HTML-Seite in Antwort auf die vorgeschriebene Objektart auszugeben, welche ein Senden der statischen HTML-Seite spezifiziert. - Server des Systems nach Anspruch 16, weiters umfassend einen Transportadapter (
17 ), welcher konfiguriert ist, um die Anfrage, welche durch die Netzwerk-Empfängerplatine (16 ) empfangen wird, von einem ersten Protokoll in ein zweites Protokoll unabhängig von dem ersten Protokoll zu übertragen bzw. zu konvertieren, wobei der Transportadapter (17 ) die Antwort, welche durch die Zuteiler-Einsteckeinrichtung (30 ) ausgegeben wird, von dem zweiten Protokoll zu dem ersten Protokoll vor einem Senden durch die Netzwerk-Empfängerplatine (16 ) konvertiert. - Serversystem nach Anspruch 16, weiters umfassend eine Vielzahl von Ausübungs- bzw. Ausführmaschinen (
32 ), wobei jede Ausführmaschine (32 ) konfiguriert ist, um eine Durchführung bzw. Ausübung der Fälle (36 ) der entsprechenden Programme (20 ) zu regeln bzw. zu steuern und ein Application Programming Interface API zur Verfügung zu stellen, welches vorbestimmte Vorgänge spezifiziert, um durch die Fälle bzw. Stellen (36 ) des entsprechenden Programms (20 ) durchgeführt zu werden, wobei die Ausführungsmaschine (32 ) entsprechend dem identifizierten einen Programm (20 ) die Anforderung von der Zuteiler-Einsteckeinrichtung (30 ) erhält bzw. empfängt und eine Ausübung des verfügbaren Falls (36 ) regelt bzw. steuert, welcher die Anforderung bzw. Anfrage bearbeitet bzw. behandelt. - Serversystem nach Anspruch 20, worin die vorbestimmten Vorgänge, welche durch das API spezifiziert sind, wenigstens einen einer Initialisierung, einer Ausführung der Anfrage und eines Schließens bzw. Runterfahrens durch wenigstens einen der Fälle (
36 ) des entsprechenden Programms (20 ) beinhaltet. - Serversystem nach Anspruch 16, worin jede Ausführungsmaschine (
32 ) eine vorgeschriebene, minimale Anzahl der Fälle (36 ) des entsprechenden Programms (20 ) beginnt bzw. einleitet. - Serversystem nach Anspruch 16, worin die Zuteiler-Einsteckeinrichtung (
30 ) eine Konfigurationsbibliothek (34 ) beinhaltet, welche für jedes der Programme (20 ) die entsprechende Objektart und die vorgeschriebene Anzahl von Fällen (36 ) identifiziert. - Serversystem nach Anspruch 16, worin die Objektart der Anfrage einen virtuellen Weg beinhaltet, welcher das identifizierte eine Programm (
20 ) spezifiziert.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US794269 | 1997-02-03 | ||
US08/794,269 US6845505B1 (en) | 1997-02-03 | 1997-02-03 | Web request broker controlling multiple processes |
PCT/US1998/001644 WO1998034386A1 (en) | 1997-02-03 | 1998-01-29 | Web request broker controlling multiple processes |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69812899D1 DE69812899D1 (de) | 2003-05-08 |
DE69812899T2 true DE69812899T2 (de) | 2004-03-04 |
Family
ID=25162172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69812899T Expired - Lifetime DE69812899T2 (de) | 1997-02-03 | 1998-01-29 | Webagent zur anforderung von mehreren prozessen |
Country Status (8)
Country | Link |
---|---|
US (1) | US6845505B1 (de) |
EP (1) | EP0956687B1 (de) |
JP (1) | JP4083233B2 (de) |
AT (1) | ATE236480T1 (de) |
AU (1) | AU740827B2 (de) |
CA (1) | CA2279382C (de) |
DE (1) | DE69812899T2 (de) |
WO (1) | WO1998034386A1 (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL123512A0 (en) * | 1998-03-02 | 1999-03-12 | Security 7 Software Ltd | Method and agent for the protection against hostile resource use access |
GB2335060B (en) * | 1998-12-09 | 2003-04-30 | Taxmate Ltd | An inter-computer communications apparatus |
JP4628551B2 (ja) * | 1999-05-06 | 2011-02-09 | オラクル・アメリカ・インコーポレイテッド | 動的インストールの方法及びコンピュータシステム |
US6876991B1 (en) | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
US20040205473A1 (en) * | 2000-01-27 | 2004-10-14 | Gwyn Fisher | Method and system for implementing an enterprise information portal |
GB2362548B (en) * | 2000-05-15 | 2004-03-24 | Vodafone Ltd | A method and apparatus for asynchronous information transactions |
TW480426B (en) * | 2000-08-07 | 2002-03-21 | D Link Corp | Method of performing management onto the network equipment by using web function |
US20020042839A1 (en) | 2000-10-10 | 2002-04-11 | Christopher Peiffer | HTTP multiplexor/demultiplexor |
US6609126B1 (en) | 2000-11-15 | 2003-08-19 | Appfluent Technology, Inc. | System and method for routing database requests to a database and a cache |
US7996507B2 (en) * | 2002-01-16 | 2011-08-09 | International Business Machines Corporation | Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client |
US7085831B2 (en) * | 2002-01-16 | 2006-08-01 | International Business Machines Corporation | Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client |
US20030208609A1 (en) * | 2002-05-01 | 2003-11-06 | Verizon Services, Corp. | Automatic configuration of advanced services over DSL |
US7366777B2 (en) * | 2003-05-15 | 2008-04-29 | Sap Aktiengesellschaft | Web application router |
US20060168268A1 (en) * | 2004-12-02 | 2006-07-27 | International Business Machines Corporation | Specific method of setting transport-specific properties from transport-agnostic clients |
US7711693B2 (en) * | 2004-12-03 | 2010-05-04 | Oracle International Corporation | Deployment of life-cycle model for LDAP applications |
US20070078927A1 (en) * | 2005-09-12 | 2007-04-05 | Microsoft Corporation | Server-side service framework |
US7839988B2 (en) | 2005-10-19 | 2010-11-23 | At&T Intellectual Property I, L.P. | Methods and apparatus for data structure driven authorization and/or routing of outdial communication services |
US20070116234A1 (en) * | 2005-10-19 | 2007-05-24 | Marco Schneider | Methods and apparatus for preserving access information during call transfers |
US8238327B2 (en) * | 2005-10-19 | 2012-08-07 | At&T Intellectual Property I, L.P. | Apparatus and methods for subscriber and enterprise assignments and resource sharing |
US20070086433A1 (en) * | 2005-10-19 | 2007-04-19 | Cunetto Philip C | Methods and apparatus for allocating shared communication resources to outdial communication services |
US7643472B2 (en) * | 2005-10-19 | 2010-01-05 | At&T Intellectual Property I, Lp | Methods and apparatus for authorizing and allocating outdial communication services |
US7924987B2 (en) * | 2005-10-19 | 2011-04-12 | At&T Intellectual Property I., L.P. | Methods, apparatus and data structures for managing distributed communication systems |
US20070086432A1 (en) * | 2005-10-19 | 2007-04-19 | Marco Schneider | Methods and apparatus for automated provisioning of voice over internet protocol gateways |
US8020149B2 (en) * | 2006-08-04 | 2011-09-13 | Apple Inc. | System and method for mitigating repeated crashes of an application resulting from supplemental code |
US20080091806A1 (en) * | 2006-10-11 | 2008-04-17 | Jinmei Shen | Dynamic On-Demand Clustering |
US8352634B2 (en) * | 2007-04-06 | 2013-01-08 | International Business Machines Corporation | On-demand propagation of routing information in distributed computing system |
US8589912B2 (en) * | 2007-06-29 | 2013-11-19 | International Business Machines Corporation | Loosely coupled product install and configuration |
KR20100071483A (ko) * | 2008-12-19 | 2010-06-29 | 한국전자통신연구원 | 묶음 소프트웨어의 배포 방법 및 시스템 |
CN101510167B (zh) * | 2009-03-31 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种插件运行的方法、装置及系统 |
CN102033803B (zh) * | 2009-09-29 | 2014-07-09 | 国际商业机器公司 | 跨浏览器测试web应用的方法和装置 |
US20110179173A1 (en) * | 2010-01-15 | 2011-07-21 | Carol Colrain | Conditional dependency in a computing cluster |
US8909696B1 (en) | 2011-11-02 | 2014-12-09 | Google Inc. | Redundant data requests with redundant response cancellation |
US20170272547A1 (en) * | 2016-03-18 | 2017-09-21 | Interactive Intelligence Group, Inc. | System and method for configuration and interchanging of business functionality implementations |
US10481963B1 (en) * | 2016-06-29 | 2019-11-19 | Amazon Technologies, Inc. | Load-balancing for achieving transaction fault tolerance |
CA3086546A1 (en) * | 2018-01-18 | 2019-07-25 | Bevara Technologies, Llc | Browser navigation for facilitating data access |
US10467069B2 (en) | 2018-04-04 | 2019-11-05 | Microsoft Technology Licensing, Llc | Selective application instance activation |
US10908933B1 (en) * | 2019-12-05 | 2021-02-02 | Microsoft Technology Licensing, Llc | Brokerage tool for accessing cloud-based services |
CN112612611A (zh) * | 2020-12-24 | 2021-04-06 | 青岛海尔科技有限公司 | 一种信息处理的方法、装置及系统 |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918595A (en) * | 1987-07-31 | 1990-04-17 | International Business Machines Corp. | Subsystem input service for dynamically scheduling work for a computer system |
US5210824A (en) * | 1989-03-03 | 1993-05-11 | Xerox Corporation | Encoding-format-desensitized methods and means for interchanging electronic document as appearances |
US5557798A (en) * | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
US5249290A (en) * | 1991-02-22 | 1993-09-28 | At&T Bell Laboratories | Method of and apparatus for operating a client/server computer network |
US5212793A (en) * | 1991-09-04 | 1993-05-18 | International Business Machines Corp. | Generic initiators |
US5361350A (en) | 1991-12-12 | 1994-11-01 | International Business Machines Corporation | Object oriented method management system and software for managing class method names in a computer system |
GB2263797B (en) * | 1992-01-31 | 1996-04-03 | Plessey Telecomm | Object orientated system |
WO1994001820A1 (en) | 1992-07-01 | 1994-01-20 | Telefonaktiebolaget Lm Ericsson | System for implementation-independent interface specification |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
JP3003440B2 (ja) * | 1993-01-19 | 2000-01-31 | 株式会社日立製作所 | 負荷分散制御方法および分散処理システム |
JP3365576B2 (ja) | 1993-06-14 | 2003-01-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | オブジェクトの実行方法および装置 |
WO1995004968A1 (en) | 1993-08-03 | 1995-02-16 | Forte Software, Inc. | Flexible multi-platform partitioning for computer applications |
DE69431306T2 (de) | 1993-12-16 | 2003-05-15 | Open Market Inc | Datennetzgestütztes zahlungssystem und verfahren zum gebrauch eines derartigen systems |
US5504897A (en) | 1994-02-22 | 1996-04-02 | Oracle Corporation | Method and apparatus for processing electronic mail in parallel |
US5592654A (en) * | 1994-06-03 | 1997-01-07 | Integrated Device Technology, Inc. | Apparatus and method for converting a job conforming to a first protocol into a job conforming to a second protocol |
US5715314A (en) | 1994-10-24 | 1998-02-03 | Open Market, Inc. | Network sales system |
WO1996017306A2 (en) * | 1994-11-21 | 1996-06-06 | Oracle Corporation | Media server |
US5623656A (en) | 1994-12-15 | 1997-04-22 | Lucent Technologies Inc. | Script-based data communication system and method utilizing state memory |
EP0718784B1 (de) | 1994-12-20 | 2003-08-27 | Sun Microsystems, Inc. | Verfahren und Gerät zum Auffinden und Beschaffen personalisierter Informationen |
US5822585A (en) | 1995-02-21 | 1998-10-13 | Compuware Corporation | System and method for cooperative processing using object-oriented framework |
US5857102A (en) * | 1995-03-14 | 1999-01-05 | Sun Microsystems, Inc. | System and method for determining and manipulating configuration information of servers in a distributed object environment |
US5907675A (en) | 1995-03-22 | 1999-05-25 | Sun Microsystems, Inc. | Methods and apparatus for managing deactivation and shutdown of a server |
US5802291A (en) * | 1995-03-30 | 1998-09-01 | Sun Microsystems, Inc. | System and method to control and administer distributed object servers using first class distributed objects |
US5761684A (en) | 1995-05-30 | 1998-06-02 | International Business Machines Corporation | Method and reusable object for scheduling script execution in a compound document |
US5752246A (en) * | 1995-06-07 | 1998-05-12 | International Business Machines Corporation | Service agent for fulfilling requests of a web browser |
US5708780A (en) | 1995-06-07 | 1998-01-13 | Open Market, Inc. | Internet server access control and monitoring systems |
US5737592A (en) | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
US5872969A (en) | 1995-06-23 | 1999-02-16 | International Business Machines Corporation | System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system |
US5737607A (en) | 1995-09-28 | 1998-04-07 | Sun Microsystems, Inc. | Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats |
US5774670A (en) | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5862318A (en) | 1995-10-26 | 1999-01-19 | Microsoft Corporation | System for generating a gapless series of identity values |
US5706442A (en) | 1995-12-20 | 1998-01-06 | Block Financial Corporation | System for on-line financial services using distributed objects |
US5745681A (en) | 1996-01-11 | 1998-04-28 | Sun Microsystems, Inc. | Stateless shopping cart for the web |
US5761673A (en) * | 1996-01-31 | 1998-06-02 | Oracle Corporation | Method and apparatus for generating dynamic web pages by invoking a predefined procedural package stored in a database |
US5859971A (en) | 1996-02-15 | 1999-01-12 | International Business Machines Corp. | Differencing client/server communication system for use with CGI forms |
US5862325A (en) | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5761507A (en) * | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
WO1997040457A2 (en) | 1996-04-19 | 1997-10-30 | Intergraph Corporation | System and method for data access |
US5894554A (en) * | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
US5835712A (en) | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US5859972A (en) | 1996-05-10 | 1999-01-12 | The Board Of Trustees Of The University Of Illinois | Multiple server repository and multiple server remote application virtual client computer |
US5864871A (en) | 1996-06-04 | 1999-01-26 | Multex Systems | Information delivery system and method including on-line entitlements |
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 |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5857191A (en) | 1996-07-08 | 1999-01-05 | Gradient Technologies, Inc. | Web application server with secure common gateway interface |
US5860072A (en) | 1996-07-11 | 1999-01-12 | Tandem Computers Incorporated | Method and apparatus for transporting interface definition language-defined data structures between heterogeneous systems |
US6073241A (en) | 1996-08-29 | 2000-06-06 | C/Net, Inc. | Apparatus and method for tracking world wide web browser requests across distinct domains using persistent client-side state |
US5897622A (en) | 1996-10-16 | 1999-04-27 | Microsoft Corporation | Electronic shopping and merchandising system |
US5796393A (en) | 1996-11-08 | 1998-08-18 | Compuserve Incorporated | System for intergrating an on-line service community with a foreign service |
US5991802A (en) | 1996-11-27 | 1999-11-23 | Microsoft Corporation | Method and system for invoking methods of objects over the internet |
US5826239A (en) | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US6185625B1 (en) | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
US5875296A (en) | 1997-01-28 | 1999-02-23 | International Business Machines Corporation | Distributed file system web server user authentication with cookies |
US5864866A (en) | 1997-03-26 | 1999-01-26 | International Business Machines Corporation | Apparatus and method for providing externalization in an object-oriented environment |
US6067545A (en) | 1997-08-01 | 2000-05-23 | Hewlett-Packard Company | Resource rebalancing in networked computer systems |
US6070191A (en) * | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
US5890161A (en) | 1997-10-28 | 1999-03-30 | Microsoft Corporation | Automatic transaction processing of component-based server applications |
US6098093A (en) * | 1998-03-19 | 2000-08-01 | International Business Machines Corp. | Maintaining sessions in a clustered server environment |
-
1997
- 1997-02-03 US US08/794,269 patent/US6845505B1/en not_active Expired - Lifetime
-
1998
- 1998-01-29 EP EP98903802A patent/EP0956687B1/de not_active Expired - Lifetime
- 1998-01-29 AU AU60478/98A patent/AU740827B2/en not_active Expired
- 1998-01-29 DE DE69812899T patent/DE69812899T2/de not_active Expired - Lifetime
- 1998-01-29 AT AT98903802T patent/ATE236480T1/de not_active IP Right Cessation
- 1998-01-29 CA CA2279382A patent/CA2279382C/en not_active Expired - Lifetime
- 1998-01-29 WO PCT/US1998/001644 patent/WO1998034386A1/en active IP Right Grant
- 1998-01-29 JP JP53303898A patent/JP4083233B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69812899D1 (de) | 2003-05-08 |
AU6047898A (en) | 1998-08-25 |
EP0956687A1 (de) | 1999-11-17 |
CA2279382C (en) | 2010-06-29 |
WO1998034386A1 (en) | 1998-08-06 |
ATE236480T1 (de) | 2003-04-15 |
US6845505B1 (en) | 2005-01-18 |
EP0956687B1 (de) | 2003-04-02 |
CA2279382A1 (en) | 1998-08-06 |
AU740827B2 (en) | 2001-11-15 |
JP4083233B2 (ja) | 2008-04-30 |
JP2001511269A (ja) | 2001-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69812899T2 (de) | Webagent zur anforderung von mehreren prozessen | |
DE69814900T2 (de) | Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software | |
DE69824879T2 (de) | Verteilter web- anwendungs- server | |
DE69533148T2 (de) | Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen | |
DE69632987T2 (de) | Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem | |
DE69724877T2 (de) | Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers | |
DE60125705T2 (de) | Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client | |
DE69734432T2 (de) | Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem | |
DE69832406T2 (de) | Kombiniertes internet-und datenzugangssystem | |
DE69730690T2 (de) | Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen | |
DE69735348T2 (de) | Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten | |
DE60211254T2 (de) | Fernereignis Behandlung in ein Paketnetzwerk | |
DE19882235B4 (de) | Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten | |
DE69630480T2 (de) | Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung | |
DE19605093B4 (de) | Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen | |
DE60133648T2 (de) | System und verfahren zum führen von laufzeitdaten in einem server-netzwerk | |
US6339771B1 (en) | Method and system for managing connections to a database management system | |
DE69732968T2 (de) | System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte | |
DE69832354T2 (de) | Netzwerkverwaltungsrahmenwerk | |
DE60006451T2 (de) | Verteilte Authentifizierungsmechanismen zur Behandlung von verschiedenen Authentifizierungssystemen in einem Betriebsrechnersystem | |
DE60035745T2 (de) | Verfahren zum bei Bedarf Laden und Ausführen einer Netzwerkanwendung | |
DE10024715B4 (de) | Verfahren und Vorrichtung zum Einrichten einer Zwei-Wege-Übertragung zwischen einem Host-System und einer Vorrichtung | |
DE69637142T2 (de) | Netzwerkverwaltung mit Erfassung von formatierten Abzugdaten aus einem Fernprozess | |
DE69837550T2 (de) | System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten | |
DE10205108A1 (de) | System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: ORACLE INTERNATIONAL CORP., REDWOOD SHORES, CALIF. |
|
8339 | Ceased/non-payment of the annual fee | ||
8370 | Indication related to discontinuation of the patent is to be deleted | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: DENDORFER & HERRMANN PATENTANWAELTE PARTNERSCHAFT, |