DE69812899T2 - Webagent zur anforderung von mehreren prozessen - Google Patents

Webagent zur anforderung von mehreren prozessen Download PDF

Info

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
Application number
DE69812899T
Other languages
English (en)
Other versions
DE69812899D1 (de
Inventor
Seshu Adunuthula
Mala Anand
Tsung-Jen Chou
Shehzaad Nakhoda
Raymond Ng
Robert Pang
Ankur Sharma
Matthew Bookman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle Corp filed Critical Oracle Corp
Publication of DE69812899D1 publication Critical patent/DE69812899D1/de
Application granted granted Critical
Publication of DE69812899T2 publication Critical patent/DE69812899T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5055Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

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 und 3B 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 Webserver 10 empfängt die Anforderung bzw. Anfrage von einem Klienten 12 über ein Netzwerksystem 14, beispielsweise das World Wide Web unter Verwendung des Transmission Control Protocol/Internet Protocol (TCP/IP). Der Webserver 10 beinhaltet einen Netzwerk-Listener bzw. eine Netzwerk-Empfängerplatine 16, einen Webanforderungsbroker bzw. Webagent 18 und eine Vielzahl von Server-Erstreckungs- bzw. - Erweiterungsprogrammen 20. Ein Verwender des Netzwerks 14 verwendet das Klientenprogramm 12, um Information von dem Webserver 10 anzufordern, zu dekodieren und anzuzeigen bzw. darzustellen. Das Klientenprogramm 12 beinhaltet einen Webbrowser 22, welcher eine Anforderung an die Netzwerk-Empfängerplatine 16 über das Netzwerk 14 sendet. Das Klientenprogramm beinhaltet auch Browser, Erweiterungsprogramme 24 (beispielsweise "Einschub"- bzw. "Einsteck"-Erweiterungen), welche zusätzliche Verarbeitungsmöglichkeiten bzw. -fähigkeiten für den Webbrowser 22 zur Verfügung stellen. Eine Kommunikation bzw. Verbindung zwischen dem Webbrowser 22 und der Web-Empfängerplatine 16 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 Webbrowser 22 und der Web-Empfängerplatine 16 aufzubauen.
  • Wie unten beschrieben, empfängt die Web-Empfängerplatine 16 die Klientenanforderung über das Netzwerk 14 und leitet die Anforderung an den Webagenten 18 weiter. Der Webagent 18 leitet selektiv die Anforderung an eine ausführbare Stelle bzw. Instanz von einem der Server-Erweiterungsprogramme 20 für eine Bearbeitung weiter. Die Web-Empfängerplatine 16 gibt bei einem Empfang einer Antwort von dem Webagent 18 die Antwort auf die Klientenanfrage über das Netzwerk 14 aus. Bei einem Erhalt der Antwort bestimmt der Webbrowser 22 die Art der erhaltenen Anforderung und bestimmt, wie die Antwort handzuhaben ist. Beispielsweise kann die Antwort entweder unmittelbar durch den Webbrowser 22 bearbeitet werden oder der Webbrowser 22 kann eines der Browser-Erweiterungsprogramme 24 für eine weitere Bearbeitung verwenden. Die Browser-Erweiterungsprogramme 24 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 Klient 12 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 Servers 10 gemäß einer ersten Ausführungsform der vorliegenden Erfindung. Die Web-Empfängerplatine 16 beinhaltet einen HTTP-Dämon 16a, welcher einen Netzwerktransport gemäß dem HTTP-Protokoll unterstützt. Die Web-Empfängerplatine 16 erhält die Klien tenanforderung von dem Netzwerk 14, 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ängerplatine 16 gibt die Klientenanforderung an den Webagenten 18 ohne einen Versuch einer Interpretation der Klientenanforderung weiter.
  • Der Webagent 18 beinhaltet eine Zuteiler-Einschub- bzw. -Einsteckeinrichtung 30 und eine Vielzahl von Ausführungsmaschinen 32. Der Webagent 18 regelt bzw. steuert ein Bearbeiten der Klientenanforderung durch ein Identifizieren eines Extensions- bzw. Erweiterungsprogramms 20, 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-Einsteckeinrichtung 30 beinhaltet eine Konfigurationsbibliothek 34, welche die verfügbaren Programme zum Handhaben von unterschiedlichen Anforderungen identifiziert, welche im Detail unten beschrieben sind. Sobald die Zuteiler-Einsteckeinrichtung 30 eine Programmerweiterung 20 identifiziert, welche konfiguriert ist, um die Anforderung zu bearbeiten, bestimmt die Zuteiler-Einsteckeinrichtung 30, 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-Erweiterungsprogrammen 20a, 20b und 20c. 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-Agent 20a, welcher konfiguriert ist, um Datenbankabfragen gemäß der auf Oracle basierenden Programmiersprache unter Verwendung der Structured Query Language (PL/SQL) zu bearbeiten. Der PL/SQL-Agent 20a führt eine Klientenanforderung durch, welche eine Datenbankabfrage beinhaltet, indem ein individueller Prozeß 36 (d. h. eine getrennte Instanz des PL/SQL-Agenten 20a) durchgeführt wird. Eine Aus- bzw. Durchführung der Instanz 36a bewirkt, daß die Instanz die Anforderung bearbeitet, beispielsweise einen Zutritt zu einem Datenbankserver 40 in Verbindung mit der Instanz 36 über einen Datenlink bzw. eine Datenverbindung 42.
  • 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 Kundenserver 20c als ein Erweiterungsprogramm konfiguriert sein, um dynamische Vorgänge zur Verfügung zu stellen, beispielsweise einen Zutritt zu Prozessen, welche durch einen Server 46 eines Dritten durchgeführt bzw. ausgeführt werden.
  • Die Erweiterungsprogramme 20a, 20b und 20c, welche als ein ausführbarer Code gespeichert sind, werden ausgeführt, indem zuerst eine Instanz bzw. eine Stelle 36 des entsprechenden Extensions- bzw. Erweiterungsprogramms 20 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 Webagent 18 handhabt bzw. managt die Ausführung von jedem der Erweiterungsprogramme 20 durch ein Initiieren einer vorbestimmten minimalen Anzahl von Stellen bzw. Instanzen bzw. Fällen 36a, 36b, 36c für die jeweiligen Erweiterungsprogramme 20a, 20b, 20c. Wenn der Webagent 18 eine Klientenanforderung erhält und bestimmt, daß keine Instanz 36 des entsprechenden Erweiterungsprogramms verfügbar ist, wird der Webagent 18 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 Webagent 18 den PL/SQL-Agenten 20a als das Programm identifizieren, welches konfiguriert ist, um die Anforderung handzuhaben. Der Webagent 18 wird bestimmen, ob eine bestehende Instanz 36a des Programms 20a verfügbar ist, um die Anforderung handzuhaben. Wenn keine Instanz bzw. Stelle verfügbar ist, beispielsweise alle der bestehenden Instanzen 36a1 36an andere Klientenanforderungen bearbeiten, wird der Webagent 18 eine neue Instanz 36an+1 initiieren, wenn die bestehende Anzahl von Instanzen 36a nicht eine maximale vorgeschriebene Anzahl übersteigt.
  • Wie in 2 gezeigt, beinhaltet der Webagent 18 Webagent-Ausführungsmaschinen (WRBX) 32 für jedes der Erweiterungsprogramme 20. 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ührungsmaschine 32 und einem Erweiterungsprogramm kann jegliches Erweiterungsprogramm in den Server 10 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 Konfigurationsbibliothek 34 integriert werden, welche unten beschrieben ist.
  • Derart gibt, wenn die Zuteiler-Einsteckeinrichtung 30 bestimmt, daß der PL/SQL-Agent 20a die geeignete Erweiterung bzw. Erstreckung zur Verarbeitung einer Anforderung ist, die Zuteiler-Einsteckeinrichtung 30 die Anforderung an die Ausführungsmaschine 32a weiter bzw. leitet sie dieser zu. Wenn eine neue Instanz des Programms 20 initiiert bzw, initialisiert werden soll bzw, muß, erzeugt die Zuteiler-Einsteckeinrichtung 30 eine neue Instanz des Programms in einem getrennten Adreßraum und teilt die Anforderung an die Ausführungsmaschine 32a 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ührungsmaschine 32a gibt dann eine Anforderungshandhabungs-Callbackfunktion an die bestimmte Instanz 36ai aus, wodurch bewirkt wird, daß die Instanz 36ai die Anforderung beispielsweise durch einen Zutritt zu der Datenbank 40 bearbeitet. Die In stanz 36ai , welche die Anforderung bearbeitet, gibt das Resultat an die Ausführungsmaschine 32a zurück, welche das Resultat an die Zuteiler-Einsteckeinrichtung 30 weiterleitet. In dem Fall, daß der Webagent 18 einen Fehler in dem Vorgang detektiert bzw. feststellt, gibt die Ausführungsmaschine 32a eine Beendigungsfunktion aus, um die Instanz aus dem Speicher zu eliminieren.
  • Somit stellt die Ausführungsmaschine 32a ein Anwendungsprogrammierinterface an den Webagenten 18 (WRB API) zur Verfügung, welches vorbestimmte Vorgänge spezifiziert, welche auszuführen sind. Eine Verwendung von WRB API ermöglicht Programmierern der Erweiterungsprogramme 20, jedes Erstreckungs- bzw. Erweiterungsprogramms für eine Integration auf hohem Niveau in den Server 20 unabhängig von den Protokollen zu konfigurieren, welche durch die spezielle Web-Empfängerplatine verwendet werden, mit welcher das Erweiterungsprogramm verwendet wird.
  • 3A und 3B 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-Empfangsplatine 16 empfangen bzw. erhalten. Bei einem Erhalten der Klientenanforderung leitet die Web-Empfängerplatine 16 die Anforderung an den Webagent 18 in Schritt 52 weiter. Die Zuteiler-Einsteckeinrichtung 30 identifiziert das Programm, welches der Klientenanforderung entspricht, indem in Schritt 54 auf die Konfigurationsbibliothek 34 zugegriffen wird. Die Konfigurationsbibliothek 34 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 Konfigurationsbibliothek 34 ein entsprechendes Objekt speichern, welches spezifiziert, daß der JAVA-Interpreter 36b konfiguriert ist, um Anfragen handzuhaben, welche den virtuellen Pfad "/Java" aufweisen. Die Konfigurationsbibliothek 34 wird auch einen virtuellen Pfad beinhalten, welcher eine Adreßposition für das gespeicherte Programm spezifiziert, welches verwendet wird, um Instanzen des Programms 20 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 Konfigurationsbibliothek 34 gespeichert ist. Wenn der Anforderungs-Objekttyp nicht einem identifizierbaren Programm entspricht, wird die Anforderung an die Web-Empfängerplatine 16 in Schritt 58 rückgeleitet (siehe 3B). Wenn in Schritt 58 der HTTP-Dämon 16a die Anforderung als eine Anforderung für eine statische HTML-Seite erkennt, greift der HTTP-Dämon auf die statische HTML-Seite aus dem Seitenspeicher 16b 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 Konfigurationsbibliothek 34 ein Erweiterungsprogramm identifiziert, welches konfiguriert ist, um die Anforderung handzuhaben, bestimmt die Zuteiler-Einsteckeinrichtung 30 in Schritt 62, welcher in 3B gezeigt ist, ob eine verfügbare Instanz des identifizierten Programms unter der bestehenden Anzahl von Instanzen 36 verfügbar ist. Wenn in Schritt 62 die Zuteiler-Einsteckeinrichtung 30 eine verfügbare Instanz, beispielsweise Instanz 36a2 des PL/SQL-Agenten 20a identifiziert, wird die entsprechende Ausführungsmaschine 32 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 Programms 20 verfügbar ist, bestimmt die Zuteiler-Einsteckeinrichtung 30 in Schritt 64, ob die existierende Anzahl von Instanzen eine maximale, vorgeschriebene bzw. vorbestimmte Anzahl überschreitet, welche in der Konfigurationsbibliothek 34 gespeichert ist. Wenn die bestehende Anzahl von Instanzen die maximale, vorgeschriebene Anzahl in Schritt 64 überschreitet, retourniert die Zuteiler-Einsteckeinrichtung 30 die Anforderung an die Web-Empfängerplatine 16 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ührungsmaschine 32a der neuen Instanz zu. Beispielsweise initiiert die Zuteiler-Einsteckeinrichtung 30 eine neue Instanz des PL/SQL-Agenten 20a. Während dieses Schritts wird auf die gespeicherten Sequenzen von Instruktionen für den PL/SQL-Agenten 20a zugegriffen, um eine neue Instanz 36ai des Programms 20a in einem Adreßraum zu erzeu gen, welcher von dem Adreßraum getrennt ist, in welchem die Zuteiler-Einsteckeinrichtung 30 arbeitet.
  • Sobald die neue Instanz 36ai läuft, teilt die Zuteiler-Einsteckeinrichtung 30 die Anforderung an die Ausführungsmaschine 32a in Schritt 68 zu, welche der neuen Instanz 36ai zugeordnet ist. Die Ausführungsmaschine 32a sendet eine Callback- bzw. Rückrufbotschaft an die neue Instanz 36ai , welche eine Ausführung bzw. Durchführung der Anforderung anfordert. Die Ausführungsmaschine 20 gibt in der Rückrufbotschaft jegliche Parameter weiter, welche für die Instanz 36ai 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 Instanz 36ai durchgeführt wird. Die Instanz 36ai führt dann die Anforderung aus. Während der Ausführung der Anforderung durch die Instanz in Schritt 68 überwacht die Zuteiler-Einsteckeinrichtung 30 die Instanz in Schritt 70, um das Auftreten eines Fehlers zu bestimmen. Wenn in Schritt 70 die Zuteiler-Einsteckeinrichtung 30 einen Fehler detektiert bzw. feststellt, ruft die Zuteiler-Einsteckeinrichtung 30 die entsprechende Ausführungsmaschine 32 in Schritt 72 auf, um die Instanz 36 anzuhalten bzw, zu unterbrechen, welche den Fehler aufweist. Die entsprechende Ausführungsmaschine 32 gibt wiederum einen Abschaltbefehl über das API an die fehlerhafte Instanz weiter. Diese Instanz, welche auf den Abschaltbefehl durch die Ausführungsmaschine 32 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 stanz 36 bei einer Vervollständigung bzw. einem Abschluß der Ausführung in Schritt 74. Die Zuteiler-Einsteckeinrichtung 30 gibt in Schritt 76 die Antwort an die Web-Empfängerplatine 16 weiter, welche an den Klienten mit der Antwort von der ausgeführten Instanz 36 antwortet. Nach einem Ausführen der Instanz hält die Zuteiler-Einsteckeinrichtung 30 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 Programm 20 wird in einem getrennten Speicherraum ausgeführt, wodurch ermöglicht wird, daß eine fehlerhafte Instanz 36 eines Programms 20 beendet bzw. abgebrochen wird, ohne irgendwelche andere Instanzen der Programme zu beeinflussen. Der Webagent 18 regelt bzw. steuert auch die Anzahl von Instanzen für jedes vorgegebene Erweiterungsprogramm 20. Somit sind die Serverressourcen geregelt bzw. gesteuert bzw. kontrolliert, um sicherzustellen, daß eine große Anzahl von Anfragen den Server 10 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 Servers 10 gemäß einer Ausführungsform der vorliegenden Erfindung illustriert. Der Server 10 wird durch ein Starten des Serverprozesses in Schritt 90 initialisiert, wo die Web-Empfängerplatine und Unterstützungsprozesse in den Speicherraum geladen werden. Der Server 10 startet dann die Zuteiler-Einsteckeinrichtung 30 in Schritt 92, wodurch bewirkt wird, daß Sequenzen von Instruktionen zum Ausführen des Webagenten 18 in dem Speicher gespeichert werden. Die Erweiterungsprogramme 20 werden dann mit der Zuteiler-Einsteckeinrichtung 30 in Schritt 94 registriert, indem in der Konfigurationsbibliothek 34 für jedes Erweiterungsprogramm 20 gespeichert wird: (1) der Kassettenname; (2) die minimale Anzahl von erforderlichen Instanzen bzw. Stellen 36; (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 Erweiterungsprogramm 20 zu liefern ist. Der Objekttyp kann ein bestimmtes Wort sein oder kann einen virtuellen Pfad, beispielsweise "/java" beinhalten. Die Erweiterungsprogramme 20 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-Einsteckeinrichtung 30 die minimalen Instanzen für jedes Programm in einem getrennten Adressenraum in Schritt 96. Sobald die minimale Anzahl von Instanzen initiiert wurde, wird der Server 10 vorbereitet, um Klientenanfragen zu bearbeiten. Jede Ausführungsmaschine 32 verfolgt die Stelle im Speicher und den Status von jeder Instanz 36 des entsprechenden Programms 20.
  • 5 ist ein Blockdiagramm des Servers 10 gemäß einer zweiten Ausführungsform der vorliegenden Erfindung. Die erste Ausführungsform von 2 nimmt an, daß die Zuteiler-Einsteckeinrichtung 30 kompatibel mit Prozessen auf niedrigerem Niveau der Web-Empfängerplatine 16 und des HTTP-Dämons 16a ist. Die Ausführungsform der 5 ist eine Modifikation der ersten Ausführungsform der 2 dahingehend, daß der Server einen Transportadapter 17 beinhaltet, welcher eine Klientenanforderung von dem HTTP-Dämon 16' empfängt, welcher gemäß einem von dem Webagenten 18 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ämon 16' erhalten wurden, in eine umgewandelte bzw. konvertierte Klientenanforderung umwandeln, welche ein zweites Protokoll unabhängig von dem Protokoll des HTTP-Dämon 16' aufweist und mit dem Protokoll des Webagenten 18 übereinstimmt. Somit ermöglicht der Transportadapter 17, daß der Webagent 18 mit HTTP-Dämonen von unterschiedlichen Verkäufern verwendet wird. Darüber hinaus kann der Transportadapter 17 konfiguriert sein, um unterschiedliche Server-Architekturen und Betriebssysteme aufzunehmen. Somit wandelt der Transportadapter 17 eine Klientenanforderung von dem HTTP-Dämon 16' von einem ersten Protokoll in ein zweites Protokoll um, welches mit dem Webagenten 18 kompatibel ist. In ähnlicher Weise werden Antworten von dem Webagenten in das Transportprotokoll des HTTP-Dämons 16' umgewandelt, um dem HTTP-Dämon 16' 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. Serversystem nach Anspruch 16, worin jede Ausführungsmaschine (32) eine vorgeschriebene, minimale Anzahl der Fälle (36) des entsprechenden Programms (20) beginnt bzw. einleitet.
  23. 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.
  24. Serversystem nach Anspruch 16, worin die Objektart der Anfrage einen virtuellen Weg beinhaltet, welcher das identifizierte eine Programm (20) spezifiziert.
DE69812899T 1997-02-03 1998-01-29 Webagent zur anforderung von mehreren prozessen Expired - Lifetime DE69812899T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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,