DE69721632T2 - Verfahren und Vorrichtung zur Servletverarbeitung - Google Patents

Verfahren und Vorrichtung zur Servletverarbeitung Download PDF

Info

Publication number
DE69721632T2
DE69721632T2 DE69721632T DE69721632T DE69721632T2 DE 69721632 T2 DE69721632 T2 DE 69721632T2 DE 69721632 T DE69721632 T DE 69721632T DE 69721632 T DE69721632 T DE 69721632T DE 69721632 T2 DE69721632 T2 DE 69721632T2
Authority
DE
Germany
Prior art keywords
servlet
request
client
server computer
computer
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 - Fee Related
Application number
DE69721632T
Other languages
English (en)
Other versions
DE69721632D1 (de
Inventor
James A Gosling
Pavani Diwanji
David W. Connelly
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69721632D1 publication Critical patent/DE69721632D1/de
Publication of DE69721632T2 publication Critical patent/DE69721632T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/465Distributed object oriented systems
    • 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/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

  • Kurzbeschreibung der Erfindung
  • Diese Erfindung bezieht sich allgemein auf den Austausch von Informationen in einer Client-Server-Computerumgebung. Genauer bezieht sich diese Erfindung auf eine verbesserte Technik zum Beantworten von Informationsanfragen an einen Server-Computer.
  • Hintergrund der Erfindung
  • Client-Server-Computernetzwerke sind wohlbekannt. Das bekannteste Beispiel eines Client-Server-Computernetzwerks ist das weltweite Netzwerk (World Wide Web) von Computern. In einem Client-Server-Computernetzwerk empfängt ein Server-Computer eine Anfrage nach Informationen von einem Client-Computer. Web-Server-Software, die auf dem Server-Computer läuft, gewinnt typischerweise die angeforderten Informationen aus einer Datei wieder, die auf einer dauerhaften Speichervorrichtung gespeichert ist, und sendet die Datei über das Netzwerk zum Client-Computer, der die Informationen angefordert hat. Die Web-Server-Software ist im allgemeinen nicht unter Verwendung einer objektorientierten Programmiersprache geschrieben. Somit kann sie nicht leicht erweitert werden, um eine neue Funktionalität bereitzustellen. Unter der Voraussetzung der dynamischen Eigenart des heutigen Software-Markts, kann ein Mangel an Flexibilität und Erweiterbarkeit eines Produkts die Marktfähigkeit des Produkts stark beeinträchtigen.
  • Die derzeitige Web-Server-Software kann in Reaktion auf eine Anfrage von einem Client-Computer eine Datei dynamisch erzeugen. Typischerweise empfängt der Web-Server die Anfrage und spaltet anschließend einen gewöhnlichen Zugangsschnittstellen-(CGI)-Prozeß ab, um die Datei dynamisch zu erzeugen. Sobald die Datei erzeugt worden ist, sendet die Web-Server-Software die Datei zum Client-Computer zurück. Ungünstigerweise ist es sehr rechenaufwendig, einen Prozeß jedesmal dann abzuspalten, wenn dynamische Informationen erzeugt werden müssen.
  • Eine Möglichkeit zur Vermeidung der Abspaltung eines neuen Prozesses jedesmal dann, wenn ein Benutzer eine Anfrage stellt, wird vorgeschlagen von Venkata N. Padmanabhan in "Improving World Wide Latency", Universität von Kalifornien in Berkeley, Computerwissenschaftsbereich, Bericht Nr. UCB/CSD-95-875 (Mai 1995). Dieses Dokument schlägt das Offenhalten von HTTP-Verbindungen und das Lauschen nach weiteren Anfragen nach dem Beantworten einer Anfrage vor, statt die Verbindung zu schließen und zu beenden, um die Abspaltung eines neuen Prozesses für jede neue HTTP-Verbindung zu vermeiden. Wenn der Server mehrere Stränge mit einem einzelnen Prozeß handhabt, schlägt das Dokument vor, einen Satz von TCP-Verbindungen offenzuhalten und nach neuen Anfragen auf allen diesen auf einmal zu lauschen.
  • Hinsichtlich des Vorangehenden wäre es sehr wünschenswert, einen Web-Server zu schaffen, der Informationen dynamisch in Reaktion auf eine Client-Computer-Anfrage erzeugt, der jedoch keinen Prozeßstartaufwand auf sich lädt, während er die dynamischen Informationen erzeugt. Ferner wäre es sehr wünschenswert, eine objektorientierte Web-Server-Umgebung zu schaffen, die flexibel und erweiterbar ist.
  • Zusammenfassung der Erfindung
  • Die Erfindung schafft ein Verfahren, wie in Anspruch 1 ausgeführt ist, einen computerlesbaren Speicher, wie in den Ansprüchen 17 und 22 ausgeführt ist, und ein Client-Server-Computernetzwerk, wie in Anspruch 27 ausgeführt ist. Ausführungsformen der Erfindung umfassen ein Verfahren und eine Vorrichtung zum Betreiben eines lokalen Server-Computers eines Client-Server-Netzwerks und eine Technik zum Empfangen einer Anfrage von einem Client-Computer des Client-Server-Netzwerks. Es wird ermittelt, ob die Anfrage dynamisch erzeugte Informationen von einem Servlet-Objekt des Client-Server-Netzwerks benötigt. Trifft dies zu, kann ein spezifiziertes Servlet-Objekt, das der Anfrage entspricht, von einem entfernten Server-Computer des Client-Server-Netzwerks hochgeladen werden. Das spezifizierte Servlet-Objekt wird anschließend ausgeführt, um dynamisch erzeugte Informationen zu erhalten, die der Anfrage entsprechen.
  • Die Servlet-Objekte bieten eine objektorientierte Web-Server-Umgebung, die flexibel und erweiterbar ist. Das Client-Server-Netzwerk der Erfindung ist mit Servlet-Objekten bestückt. Die Servlet-Objekte laufen in einer Endlosschleife, bis sie aufgerufen werden. Somit ist kein Startzusatzaufwand vorhanden, der der Ausführung der Servlet-Objekte zugeordnet ist. Durch Beobachten einer gewöhnlichen Anwendungsprogrammschnittstelle können die Servlet-Objekte in einer beliebigen Server-Umgebung laufen. Ein Merkmal der Ausführungsformen erlaubt die Ausführung von nicht-vertrauenswürdigen Servlet-Objekten in einem sicheren Bereich, wobei die dynamisch erzeugten Informationen vom sicheren Bereich in die übrige Server-Umgebung weitergeleitet werden.
  • Kurzbeschreibung der Zeichnungen
  • Im folgenden werden Beispiele der Erfindung in Verbindung mit den beigefügten Zeichnungen beschrieben, in welchen:
  • 1 ein Client-Server-Computernetzwerk gemäß einer Ausführungsform der Erfindung zeigt;
  • 2 eine vereinfachte Darstellung der Interaktionen zwischen einem Web-Server und den Servlets ist;
  • 3 eine vereinfachte Darstellung der Interaktionen zwischen einem Web-Server einem von einem externen Server geladenen Servlet ist;
  • 4 Verarbeitungsschritte zeigt, die einer Servlet-Verarbeitungsroutine zugeordnet sind;
  • 5 Verarbeitungsschritte zeigt, die einer Servlet-Verarbeitungsroutine zugeordnet sind.
  • Ähnliche Bezugszeichen beziehen sich über die mehreren Ansichten der Zeichnungen hinweg auf entsprechende Teile.
  • Genaue Beschreibung der Erfindung
  • 1 zeigt ein Client-Server-Computernetzwerk 20. Das Netzwerk 20 enthält wenigstens einen Client-Computer 22 und wenigstens einen Server-Computer 24. Der Client-Computer 22 und der Server-Computer 24 sind über einen Übertragungskanal 26 verbunden, der irgendein drahtgebundener oder drahtloser Übertragungskanal sein kann.
  • Der Client-Computer 22 ist ein Standardcomputer, der eine Zentraleinheit (CPU) 30 enthält, die mit einem Speicher (primär und/oder sekundär) 32 verbunden ist. Der Speicher 32 speichert mehrere Computerprogramme, einschließlich eines "Browsers" 34. Wie im Stand der Technik bekannt ist, wird ein Browser verwendet, um mit entfernten Server-Computern 24 zu kommunizieren und die von solchen Computern wiedergewonnenen Informationen visuell darzustellen. Der Client-Computer 22 bewerkstelligt die Netzwerkkommunikation über eine Standard-Netzwerkverbindungsvorrichtung 36.
  • Der Server-Computer 24 enthält Standard-Server-Computerkomponenten, einschließlich einer Netzwerkverbindungsvorrichtung 40, einer CPU 42 und eines Speichers (primär und/oder sekundär) 44. Der Speicher 44 speichert einen Satz von Computerprogrammen, um die der Erfindung zugeordnete Verarbeitung zu implementieren. Der Speicher 44 speichert einen Web-Server 46. Der Web-Server 46 kann ein im Stand der Technik bekannter Typ sein, der modifiziert ist, um die in 1 gezeigten zusätzlichen Programme zu enthalten. Das heißt, in einer Umgebung der Erfindung ist ein Standard-Web-Server 46 modifiziert, um einen Server-Akzeptor-Strang 48, eine Verbindungswarteschlange 50, einen Pooladministrator 52, einen Strangpool 54, Servlets 56, eine Servlet-Karte 58, einen Sicherheitsadministrator 60 und Grenz-Servlets 62 zu enthalten.
  • 2 ist eine vereinfachte Darstellung eines Server-Computers 24A, der gemäß einer Ausführungsform der Erfindung konstruiert ist. Die Figur zeigt einen Web-Server 46, der mit einem Satz von Servlets 56A-56N interagiert. Genauer interagiert der Web-Server 46 mit den Servlets über eine Anwendungsprogrammschnittstelle (API). Wie in 1 gezeigt ist, sind der Web-Server 46 und die Servlets 56 im Speicher 44 gespeichert. Der Web-Server 46 kann eine Standard-Web-Server-Software sein, die modifiziert ist, um die hier beschriebene Funktionalität zu enthalten. Jedes Servlet 56 ist ein Stück eines Softwarecodes, das verwendet wird, um Informationen dynamisch zu erzeugen. Jedes Servlet 56 ist ein instantiiertes Softwareobjekt, das darauf wartet, aufgerufen zu werden. Sobald es aufgerufen wird, erzeugt es dynamisch Informationen. Es ist zu beachten, daß diese Technik der dynamischen Erzeugung von Informationen sich von dem typischen Prozeß des Holens statischer Informationen von einer dauerhaften Speichervorrichtung unterscheidet. Die Technik der Erfindung ist einem CGI-Skript ähnlich, in dem Sinn, daß es Informationen dynamisch erzeugt. Im Gegensatz zu einem CGI-Skript wird jedoch ein Servlet-Objekt der vorliegenden Erfindung beim Server-Start instantiiert. Das Servlet kann somit als in einer Endlosschleife auf die Ausführung wartend gedacht werden. Es ist zu beachten, daß nach der Instantiierung kein Start-Rechenaufwand erforderlich ist, wenn das Servlet aufgerufen wird.
  • 3 ist eine allgemeine Darstellung, die zusätzliche Merkmale der Erfindung zeigt. 3 zeigt einen lokalen Server-Computer 24A, der eine Anfrage von einem (nicht gezeigten) Client-Computer über einen Übertragungskanal 26 empfängt. Der Web-Server 46 ermittelt, daß dynamisch erzeugte Informationen von einem Servlet-Objekt erforderlich sind. In diesem Fall befindet sich das Servlet-Objekt anfangs nicht auf dem lokalen Server-Computer 24A, so daß es vom lokalen Server-Computer 24A aus einem entfernten Server-Computer 24B unter Verwendung einer Kommunikationsverbindung 26 hochgeladen wird. Im Beispiel der 3 wird das Servlet 56P vom entfernten Server-Computer 24B zum lokalen Server-Computer 24A weitergeleitet.
  • 3 zeigt ein weiteres Merkmal der Erfindung. Genauer zeigt sie, daß das hochgeladene Servlet 56P in einem Sicherheitsbereich 57 des lokalen Server-Computers 24A ausgeführt wird. Nach der Ausführung werden die Ergebnisse an ein Grenz-Servlet 56 im übrigen Abschnitt des lokalen Server-Computers 24A weitergeleitet. Dieses Sicherheitsmerkmal erlaubt, nicht-vertrauenswürdige Servlets sicher auszuführen.
  • Die vorangehende Beschreibung bietet eine allgemeine Beschreibung der Merkmale und Vorteile der Erfindung. Die Aufmerksamkeit wird nun auf eine genauere Beschreibung dieser Merkmale und Vorteile gerichtet. Die linke Seite der 4 zeigt die Verarbeitungsschritte, die einer Ausführungsform der Erfindung zugeordnet sind. Die rechte Seite der 4 zeigt Programmkomponenten, die verwendet werden können, um diese Operationen auszuführen.
  • Der in 4 gezeigte erste Verarbeitungsschritt besteht darin, zu ermitteln, ob eine neue Anfrage empfangen worden ist (Schritt 70). Wie oben gezeigt ist, ist eine Anfrage eine Anfrage nach Informationen von einem Client-Computer 22 an einen Server-Computer 24. Die Operation eines Client-Computers 22, der Informationen von einem Server-Computer 24 anfordert, ist wohlbekannt. Sie wird typischerweise unter Verwendung eines einheitlichen Betriebsmittellokalisierers (URL = Uniform Resource Locator) durchgeführt. Ein URL spezifiziert einen Computer und eine Datei. Ein typischer URL ist http://SU/123. Dieser URL ist ein Befehl zum Abrufen der Datei "123" vom Computer der State University "SU" unter Verwendung des Hypertext-Übertragungsprotokolls "HTTP".
  • Wie in 4 gezeigt ist, wird ein Server-Akzeptor-Strang 48 verwendet, um jede neue Anfrage zu verarbeiten. Die Erfindung ist vorzugsweise als ein verbindungsorientierter Web-Server mit einem Server-Akzeptor-Strang implementiert, der kontinuierlich in einer Schleife läuft, während er Anfragen akzeptiert. Sobald eine Anfrage empfangen worden ist, sendet er die Anfrage zu einer Verbindungswarteschlange (Schritt 72). Wie in 1 gezeigt ist, ist die Verbindungswarteschlarge 50 im Speicher des lokalen Server-Computers 24 ausgebildet.
  • Wenn keine neue Anfrage empfangen wird, wird geprüft, ob die Wartschlange leer ist (Schritt 71). Wenn die Warteschlange nicht leer ist oder eine neue Anfrage empfangen worden ist, rückt die Verarbeitung zum Schritt 74 vor. Schritt 74 bedingt Strangpool-Administrationsoperationen, die von einem Pooladministrator 52 ausgeführt werden. 1 zeigt einen Strangpool 54. Der Strangpool 54 ist ein Pool von Strängen, die für die Anfrageverarbeitung verwendet werden. Individuelle Stränge holen und verarbeiten Anfragen aus der Verbindungswarteschlange 50. Der Pool-Administrator 52 arbeitet so, daß er sicherstellt, daß ein Strang für jede Anfrage in der Verbindungswarteschlange 50 vorhanden ist. Der Pool-Administrator 52 erzeugt oder spaltet zusätzliche Stränge ab, um neue Anfragen in der Verbindungswarteschlange 50 zu behandeln. Wenn eine maximale Anzahl von Strängen erreicht ist, hindert der Pool-Administrator 52 neue Anfragen am Eintreten in die Warteschlange 50. In einem solchen Fall empfängt der Server-Computer keine neuen Anfragen. Wenn andererseits ein Strang mehr als eine vorgegebene Zeitspanne auf eine Anfrage aus der Verbindungswarteschlange 50 wartet, zerstört der Pool-Administrator 60 diesen. Es wird vorzugsweise ein neuer Hantiererstrang unter Verwendung des Pufferraums eines zerstörten Hantiererstrangs erzeugt. Mit anderen Worten, die Erfindung ist vorzugsweise unter Verwendung eines spezifischen Pufferspeicherraums für einen Strang implementiert. Wenn ein Strang zerstört wird, wird der Pufferspeicherraum gelöscht, jedoch wird er einem neuen Strang zugewiesen. Durch die Wiederverwendung des zugewiesenen Speichers auf diese Weise minimiert diese Ausführungsform der Erfindung die vom System verwendete Speichermenge, insbesondere im Vergleich zu Systemen, die Speicher auf einer Basis je Anfrage zuweisen und freigeben.
  • Nachdem die Strangpool-Administrationsoperationen durchgeführt worden sind (Schritt 74), holt ein Strang eine Anfrage aus der Verbindungswarteschlange (Schritt 76). Der Strang bildet anschließend die Anfrage auf einen Servlet-Namen ab (Schritt 78). Das Servlet kann durch einen URL spezifiziert sein, wobei in diesem Fall der Abbildungsprozeß direkt ist. Andererseits kann ein bestimmter Übersetzungsprozeß erforderlich sein, um zu identifizieren, welches Servlet fähig ist, die Anfrage zu bedienen. Die Abbildungsoperation kann auf eine der folgenden Weisen durchgeführt werden. Ein Server-Administrator kann spezifizieren, daß bestimmte Arten von Client-Anfragen immer auf ein bestimmtes Servlet abgebildet werden. Zum Beispiel auf eines, das immer mit einer bestimmten Datenbank kommuniziert. Ein Server- Administrator kann spezifizieren, daß ein Teil der Client-Anfrage der Namen des Servlets ist, wie er in einem administrierten Servlet-Verzeichnis zu finden ist. An vielen Stellen würde dieses Verzeichnis zwischen den Servern gemeinsam genutzt, die die Last der Verarbeitung für den Ort der Clients teilen. Bestimmte Server können fähig sein, automatisch Servlets aufzurufen, um die Ausgabe anderer Servlets auf der Grundlage ihrer administrativen Konfiguration zu filtern. Zum Beispiel können bestimmte Typen von Servlets eine Nachbearbeitung durch andere Servlets auslösen, um vielleicht Formatkonversionen durchzuführen. Geeignet autorisierte Clients können das aufzurufende Servlet ohne eine administrative Intervention spezifizieren.
  • Vom Strang können auch Sicherheitsoperationen ausgeführt werden (Schritt 80). Ein Sicherheitsadministrator 60 kann verwendet werden, um vertrauenswürdige und nicht-vertrauenswürdige Klassen von Servlets zu identifizieren. Die Entscheidung, einem Servlet zu vertrauen, kann durch einen Satz von Regeln bewerkstelligt werden, die dem Sicherheitsadministrator 60 zugeordnet sind. Zum Beispiel kann der Sicherheitsadministrator 60 entscheiden, allen lokalen Servlets zu trauen und allen hochgeladenen Netzwerk-Servlets zu mißtrauen. Nicht-vertrauenswürdige Servlets werden dann im Sicherheitsbereich 57 ausgeführt, wie in 3 gezeigt ist. Der Sicherheitsadministrator 60 kann ferner verwendet werden, um zu ermitteln, ob das Servlet autorisiert ist, um vorgegebene riskante Operationen durchzuführen. Sicherheitsinformationen dieses Typs können im Strang gespeichert sein.
  • JAVA-Servlets gemäß der Erfindung bieten eine starke Sicherheitstaktik-Unterstützung. Dies liegt daran, daß alle JAVA-Umgebungen einen Sicherheits-Manager bereitstellen, der verwendet werden kann, um zusteuern, ob Aktionen wie z. B. Netzwerk- oder Dateizugriffe zuzulassen sind. Als Vorgabe sind alle Servlets nicht-vertrauenswürdig und dürfen keine Operationen wie z. B. Zugriffe auf Netzwerkdienste oder lokale Dateien durchführen. Servlets jedoch, die in den Server "eingebaut" sind, oder Servlets, die digital signiert worden sind, als sie in den JAVA-Archivdateien abgelegt wurden, kann vertraut werden und kann vom Sicherheitsmanager mehr Erlaubnis gewährt werden. Eine digitale Signatur auf ausführbarem Code zeigt an, daß die Organisation, die den Code signiert hat, in einem gewissen Sinne "hierfür bürgt". Solche Signaturen können die Verantwortlichkeit selbst nicht unterstützen, jedoch zeigen sie einen Grad an Vertrauen an, das in die Verwendung dieses Codes gelegt wird. Zum Beispiel kann eine bestimmte Signatur von einer MIS-Organisation für allen Code erforderlich sein, dem allgemeiner Zugriff auf Netzwerkdienste innerhalb eines Firmen-Intranetz gewährt wird. Diese Signatur kann nur für Code verwendet werden, von dem stark angenommen wird, daß er bestimmte Sicherheitstaktiken nicht verletzt. Erweiterungs-APIs in anderen Sprachen, wie z. B. C oder Scriptsprachen, können solche feingliedrigen Zugangskontrollen unterstützen, selbst wenn sie keine digitalen Signaturen für ihren Code erlauben.
  • Nachdem Sicherheitsoperationen ausgeführt worden sind (Schritt 80), wird der Strang abgefertigt (Schritt 82 der 5). Die Abfertigungsoperation bedingt das Aufrufen eines Servlets, so daß es die angeforderten dynamischen Informationen erzeugt. Die Abfertigungsoperation entspricht einem von zwei Typen. Es wird entschieden, ob das Servlet lokal ist (Schritt 84). Wenn das Servlet lokal ist, wird das lokale Servlet ausgeführt (Schritt 86). Dies führt zur Erzeugung dynamischer Informationen, die anschließend vom Web-Server 46 in Standardweise verarbeitet werden. Der Web-Server 46 leitet die Informationen typischerweise unter Verwendung bekannter Techniken zum Client-Computer zurück. Der Informationsaustausch zwischen einem Servlet und dem Web-Server 46 wird über eine Anwendungsprogrammschnittstelle erreicht, die im folgenden beschrieben wird.
  • Wenn das Servlet nichtlokal ist, wird es anschließend von einem entfernten Server 24B hochgeladen (Schritt 88). Anschließend wird entschieden, ob das hochgeladene Servlet sicher ist (Schritt 90). Es sei daran erinnert, daß der Sicherheitsoperationsschritt zu den Strangannahmeinformationen bezüglich der Sicherheitsparameter für Servlets geführt hat. Wenn keine Sicherheitsprobleme vorhanden sind, die dem hochgeladenen Servlet zugeordnet sind, wird es lokal ausgeführt (Schritt 92). Wenn andererseits ein Sicherheitsproblem identifiziert wird, wird das Servlet in einem Sicherheitsbereich (Schritt 94) ausgeführt. Anschließend werden die dynamisch erzeugten Ergebnisse an den Nicht-Sicherheitsbereich weitergeleitet (Schritt 96). Für diesen Zweck kann ein Grenz-Servlet verwendet werden. Das Grenz-Servlet kann unter Verwendung von Kontrollabschnitten und Subkontrakten oder durch andere "Firewall"-Techniken, die im Stand der Technik bekannt sind, implementiert werden. Nachdem das Servlet ausgeführt worden ist, kehrt die Verarbeitung zum Schritt 70 der 4 zurück.
  • Die Operation der Erfindung wurde nun vollständig beschrieben. Die Aufmerksamkeit wird nun auf eine genauere Beschreibung der Servlet-Objekte gelenkt, die gemäß der Erfindung verwendet werden, und auf eine Ausführungsform der Anwendungsprogrammschnittstelle, die in Verbindung mit den Servlet-Objekten verwendet wird. Wie oben gezeigt worden ist, sind die Servlet-Objekte Software-Objekte, die verwendet werden, um dynamisch Informationen zu erzeugen. Sie sind instantiierte Objekte, die in einer Schleife sitzen und darauf warten, aufgerufen zu werden. Sie sind vorzugsweise als Objekt-Bytecodes in der Programmiersprache JAVA® implementiert. Es ist wohlbekannt, daß die Programmiersprache JAVA® verwendet wird, um "Applets" (Kleinprogramme) auf einem Client-Computer zu implementieren. Ein "Applet" ist ausführbarer JAVA-Objekt-Bytecode, der verwendet wird, um eine graphische Anzeige auf einem Client-Computer zu erzeugen. Die Servlets, die die vorliegende Erfindung verkörpern, werden auf der Server-Seite ausgeführt und haben keinen graphischen Inhalt.
  • Ein Servlet wird typischerweise beim Serverstart instantiiert. In einer Alternative kann das Servlet unter einem vorgegebenen Satz von Bedingungen oder durch Client-Aufruf instantiiert werden. Das Servlet kann unter Verwendung seines URL (z. B. http://host/<servlet URL>) instantiiert und ausgeführt werden. Das HTTP-Protokoll unterstützt die Weiterleitung von Argumenten, so daß Argumente zum Servlet weitergeleitet werden können (z. B. httpa/host/<servlet URL>?<Argumente>). Dieses Eigenschaftenobjekt ist eine JAVA-Programmiersprache-Eigenschaftenklasse, die einen Satz von Paaren "Name:Wert" umfaßt. Ein Systemadministrator kann Argumente an ein instantiiertes HttpServlet-Objekt über das Eigenschaftenobjekt weiterleiten. Auf diese Weise kann der Systemadministrator ein HttpServlet für einen bestimmten Server an einem bestimmten Ort individuell anpassen. Zum Beispiel kann der Systemadministrator die HttpServlet-Objektort-spezifischen Informationen über den Netzwerkort einer Datenbank, die Dokumente speichert, die von Clientprozessen über das Netzwerk angefordert werden, oder die Speichermenge, die in den Systempuffern verfügbar ist, die für die Verarbeitung des Server-Administrators verwendet werden, weiterleiten.
  • Sobald ein Servlet instantiiert ist, läuft es in einer Schleife, bis der Server ausgeschaltet wird oder vom Server ein Zerstörungsverfahren für das Servlet aufgerufen wird. Da das Servlet in einer kontinuierlichen Schleife arbeitet, wenn es auf Anfragen wartet, bei denen es aktiv wird, vermeidet der Server-Computer den Zusatzaufwand der Erzeugung und Zerstörung des Servlets zwischen den Anfragen an das Servlet. Außerdem erlaubt die Aufrechterhaltung des Servlets zwischen den Anfragen den Servlets, Daten weiterzuleiten und untereinander zu kommunizieren. Zum Beispiel können Servlets Daten über einen Benutzer zwischen den Sitzungen des Benutzers halten. Diese Daten können unter verschiedenen Servlets gemeinsam genutzt werden, um eine Arbeitsumgebung individuell anzupassen, innerhalb der der Benutzer arbeitet. Wenn Servlets auf einer Basis pro Anfrage erzeugt und zerstört würden, wäre es sehr viel schwieriger, wenn nicht praktisch unmöglich, daß ein Servlet die Umgebung versteht, innerhalb der es läuft, und dieses Wissen verwendet, um verbesserte Verarbeitungsfähigkeiten bereitzustellen. Der Server-Computer kann ein Zerstörungsverfahren für das Servlet aufrufen, wenn bestimmte Betriebsmittelgrenzen hinsichtlich der Zeit, des Speichers und dergleichen erreicht sind.
  • Die Servlet-Anwendungsprogrammschnittstelle (API) richtet einen Standard für die Verbindung von Servlets mit Informations-Servern, wie z. B. Web-Servern, ein. Die Servlet-API enthält Verfahren zum Initialisieren eines Servlets, Verarbeiten der Anfrage, Erhalten von Servlet-Informationen und Zerstören des Servlets. Die Servlet-API erlaubt plattformunabhängige Servlets. Eine beispielhafte Servlet-Schnittstelle ist folgende: Servlet-Schnittstelle:
    Figure 00110001
  • Der Server-Computer leitet Objekte, die die "HttpRequest" implementieren, weiter, während das Servlet ein "HttpResponse"-Objekt zurückgibt. Die "ServletContext"-Schnittstelle wird verwendet, um Informationen mit der Serverumgebung auszutauschen. Einige der Verfahren für das "ServletContext"-Objekt sind "GetServer()" und "GetServlets()". "GetServer()" gibt einen Zeiger auf den Stammserver zurück, innerhalb dem das instantiierte HttpServlet läuft. Unter Verwendung dieses Zeigers kann das HttpServlet-Objekt Informationen über seinen Stammserver herausfinden. Das Verfahren "GetServlet" gibt Zeiger auf die Servlets zurück, die auf dem Stammserver laufen. Die "ServerProperties"-Schnittstelle wird verwendet, um Informationen bezüglich spezifischer Server-Eigenschaften, die von einem Server-Administrator eingerichtet werden, auszutauschen.
  • Servlets unterstützen das geläufige Programmiermodell des Akzeptierens von Anfragen und des Erzeugens von Antworten. Folgendes ist ein einfaches Servlet, das ein einzelnes Verfahren mit der Bezeichnung "Service" definiert:
    Figure 00120001
  • Das Service-Verfahren wird mit Anfrage- und Antwortparametern verwendet. Diese Parameter kapseln die vom Client gesendeten Daten, um somit den Servlets zu erlauben, Statusinformationen wie z. B. Fehler zu melden. Servlets gewinnen normalerweise einen Großteil ihrer Parameter über einen Eingangsstrom und senden ihre Ausgaben unter Verwendung eines Aus gangsstroms:
    ServletInputStream in = request.getInputStream O:
    ServletOutputStream out = response.getOutputStream O;
  • Diese Eingangs- und Ausgangsströme können mit Daten in einem beliebigen geeigneten Format verwendet werden. Zum Beispiel können ein Applet und ein Servlet Daten unter Verwendung der Objekt-Serialisierung, HTML oder einer beliebigen Anzahl von Bildformaten austauschen.
  • Da Servlets JAVA-Objekte sind, weisen sie instanz-spezifische Daten auf. Dies bedeutet, daß Servlets tatsächlich unabhängige Anwendungen sind, die innerhalb von Servern laufen, ohne die Komplexität von zusätzlichen Klassen zu benötigen (die von bestimmten alternativen Servererweiterungs-APIs benötigt werden). Servlets haben zum Initialisierungszeitpunkt Zugriff auf bestimmte servlet-spezifische Konfigurationsdaten. Dies erlaubt, verschiedene Instanzen der gleichen Servlet-Klasse mit verschiedenen Daten zu initialisieren und als verschieden bezeichnete Servlets zu managen. Die zum Initialisierungszeitpunkt vorgesehenen Daten enthalten einen Bereich, in dem jede Instanz ihren Geständigen instanz-spezifischen Zustand hält.
  • Aufbauend auf den vorherigen einfachen Servlet-Beispielen ist der folgende Programmcode ein Beispiel eines Servlets, das verwendet wird, um HTML-Text (HTML = Hypertext Markup Language) zu senden, wenn es aufgerufen wird:
    Figure 00140001
  • Der folgende Programmcode ist ein Beispiel eines Servlets, das das Fingerprotokoll verwendet, um Informationen über Benutzer auf spezifischen Host- Computern abzufragen. Die Abfrage-Kettenparameter <tt>user</tt>, <tt>hosts</tt> und <tt>verbose</tt> können verwendet werden, um den Benutzer und Hosts zum Abfragen zu spezifizieren. Der Parameter <tt>user</tt> ist der Benutzername, <tt>hosts</tt> ist eine durch Kommata getrennte Liste von Hostnamen zur Abfrage, und <tt>verbose</tt>, falls spezifiziert, veranlaßt die Erzeugung einer wortreichen Ausgabe. Zum Beispiel fordert <pre> httpagoa/finger/.html?user=dac&hosts=eno,doppio&verbose=yes </pre> vollständige Informationen über einen Benutzer "dac" auf beiden Hosts "eno" und "doppio" an.
  • Figure 00150001
  • Figure 00160001
  • Figure 00170001
  • Fachleute werden erkennen, daß Servlets, die mit dem HTTP-Protokoll verwendet werden, irgendein HTTP-Verfahren unterstützen können, einschließlich GET, POST, HEAD und weitere. Sie können Anfragen zu anderen Orten umleiten und HTTP-spezifische Fehlernachrichten senden. Sie können auf Parameter zugreifen, die über Standard-HTML-Formulare weitergeleitet wurden, einschließlich dem HTTP-Verfahren, das auszuführen ist, und dem URI, der das Ziel der Anfrage definiert.
  • Wie oben gezeigt ist, ist eines der größten Leistungsmerkmale von Servlets, daß sie keine Erzeugung eines neuen Prozesses für jede Anfrage erfordern. In den meisten Umgebungen können viele Servlets parallel innerhalb des gleichen Prozesses wie der Server laufen. Wenn sie in solchen Umgebungen mit HTTP verwendet werden, bieten Servlets durchschlagende Leistungsvor teile gegenüber sowohl dem CGI-Ansatz als auch dem Schnell-CGI-Ansatz. Dies liegt daran, daß Servlets einen kleinen Berechnungsaufwand während der Strangkontextumschaltungen erfordern. Da in den meisten Umgebungen Servlets jedesmal viele Client-Anfragen handhaben können, wenn sie initialisiert sind, werden die Kosten der Initialisierung über viele Verfahren verteilt. Alle Clientanfragen für diesen Dienst haben die Gelegenheit, Daten und Kommunikationsbetriebsmittel gemeinsam zu nutzen, wodurch sie stärker von System-Zwischenspeichern profitieren.
  • Fachleute werden erkennen, daß die Servlets, die die Erfindung verkörpern, verwendet werden können, um JAVA-freigegebene Server dynamisch zu erweitern. Die Servlets bieten einen allgemeinen Rahmen für Dienste, die unter Verwendung des Anfrage-Antwort-Paradigmas aufgebaut sind. Die Servlets können einen sicheren web-basierten Zugriff auf Daten bieten, die unter Verwendung von HTML-Web-Seiten präsentiert werden, und können verwendet werden, um interaktiv diese Daten unter Verwendung dynamischer Web-Seitenerzeugungstechniken zu betrachten oder zu modifizieren.
  • Die Servlets, die die Erfindung verkörpern, können verwendet werden, um individuell angepaßte Multi-Benutzer-Dienste für Kunden-Basen bereitzustellen. Die Servlets sind ferner flexibel genug, um standardisierte Dienste zu unterstützen, wie z. B. das Bereitstellen statischer Web-Seiten über die HTTP-Protokolle (oder HTTPS-Protokolle) und Vertretungsdienste. Da sie für die dynamische Erweiterbarkeit verwendet werden, können sie in einer Einsteck-Weise verwendet werden, was Einrichtungen wie z. B. Suchmaschinen und halb-kundenspezifische Anwendungen erleichtert, wie z. B. die web-basierte Bestellungseingabe oder Inventursysteme.
  • Obwohl die Servlets vorzugsweise in JAVA geschrieben sind, können die Servlet-Clients in einer beliebigen Sprache geschrieben werden. Wenn die Servlets in den mittleren Lagen eines verteilten Anwendungssystems verwendet werden, können sie ihrerseits Clients für andere Dienste sein, die in einer beliebiger Sprache geschrieben sind.
  • Fachleute werden erkennen, daß Servlets in mehreren Modi verwendet werden können. Der Grundmodus befindet sich am Kern eines Anfra ge/Antwort-Protokolls. Außerdem können Servlets spezialisiert sein, um Protokolle wie z. B. HTTP zu unterstützen. In HTTP-basierten Anwendungen sind Servlets portabel, vollständig und ein sehr viel effizienterer Ersatz für CGI-basierte Erweiterungen. Ferner können in HTTP-Anwendungen Servlets mit HTML-Serverseite-Einfügungen verwendet werden, um dynamisch einen Teil eines Web-Dokuments zu erzeugen.
  • Die vorangehende Beschreibung hat zum Zweck der Erläuterung eine spezifische Nomenklatur verwendet, um ein vollständiges Verständnis von Beispielen der Erfindung zu schaffen. Es ist jedoch für Fachleute klar, daß die spezifischen Einzelheiten nicht erforderlich sind, um andere Beispiele der Erfindung auszuführen. In anderen Beispielen sind wohlbekannte Schaltungen und Vorrichtungen in Blockdiagrammform gezeigt, um eine unnötige Ablenkung von den zugrundeliegenden Prinzipien zu vermeiden. Die vorangehenden Beschreibungen spezifischer Ausführungsformen der vorliegenden Erfindung werden daher zum Zweck der Erläuterung und Beschreibung präsentiert.

Claims (30)

  1. Verfahren, das von einem lokalen Server-Computer (24A) unter der Steuerung eines Programms ausgeführt wird, wobei der lokale Server-Computer einen Speicher zum Speichern des Programms enthält und einen Teil eines Client-Server-Netzwerks (20) bildet, und wobei das Verfahren die Schritte umfaßt: Empfangen einer Anfrage von einem Client-Computer (22A) des Client-Server-Netzwerks (20); wobei das Verfahren gekennzeichnet ist durch; das Ermitteln, daß die Anfrage dynamisch erzeugte Informationen von einem Servlet-Objekt (56) des Client-Server-Netzwerks (20) erfordert; das Hochladen eines spezifizierten Servlet-Objekts (56), das der Anfrage entspricht, von einem entfernten Server-Computer (24B) des Client-Server-Netzwerks (20); und das Ausführen des spezifizierten Servlet-Objekts (56), um dynamisch erzeugte Informationen zu erhalten, die der Anfrage entsprechen.
  2. Verfahren nach Anspruch 1, das ferner den Schritt des Weiterleitens der dynamisch erzeugten Informationen vom spezifizierten Servlet-Objekt (56) zu einem Web-Server (46) umfaßt, der auf dem lokalen Server-Computer (24A) operiert, wobei der Weiterleitungsschritt mit einer Anwendungsprogrammschnittstelle erleichtert wird.
  3. Verfahren nach Anspruch 2, bei dem die Anwendungsprogrammschnittstelle Techniken zum Durchführen wenigstens einer der folgenden Operationen spezifiziert: Initialisieren eines Servlet-Objekts (56), Ausführen eines Servlet-Objekts (56), und Zerstören eines Servlet-Objekts (56).
  4. Verfahren nach Anspruch 2, bei dem das spezifizierte Servlet-Objekt {56) und die Anwendungsprogrammschnittstelle als Objekt-Bytecodes in der JAVA-Programmiersprache spezifiziert sind.
  5. Verfahren nach Anspruch 2, das ferner den Schritt des Sendens der dynamisch erzeugten Informationen vom Web-Server (46) zum Client-Computer (22A) umfaßt.
  6. Verfahren nach Anspruch 1, bei dem der Ausführungsschritt die Schritte enthält: Ausführen des spezifizierten Servlets (56) in einem Sicherheitsbereich (57) des lokalen Server-Computers; und Weiterleiten der dynamisch erzeugten Informationen vom Sicherheitsbereich (56) zu einem Nicht-Sicherheits-Bereich des lokalen Server-Computers (24A).
  7. Verfahren nach Anspruch 1, bei dem der lokale Server-Computer (24A) mehrere Servlet-Objekte (56) speichert, wobei jedes der Servlet-Objekte kontinuierlich arbeitet, bis es in Reaktion auf eine spezifizierte Anfrage von einem Client-Computer (22A) aufgerufen wird.
  8. Verfahren nach Anspruch 7, bei dem die mehreren Servlet-Objekte (56) untereinander Daten austauschen.
  9. Verfahren nach Anspruch 7, bei dem die ausgewählten Servlet-Objekte (56) der mehreren Servlet-Objekte beim Hochfahren des lokalen Server-Computers (24A) instanziiert werden.
  10. Verfahren nach Anspruch 7, bei dem ausgewählte Servlet-Objekte 56 der mehreren Servlet-Objekte in Reaktion auf eine Anforderung vom Client-Computer (22A) instanziiert werden.
  11. Verfahren nach Anspruch 7, bei dem ausgewählte Servlet-Objekte (56) der mehreren Servlet-Objekte in Reaktion auf einen aktivierten Servlet-URL instanziiert werden.
  12. Verfahren nach Anspruch 11, bei dem der Servlet-URL Argumente enthält.
  13. Verfahren nach Anspruch 1, bei dem der Empfangsschritt den Schritt (72) des Speicherns der Anfrage in einer Verbindungswarteschlange (50) enthält.
  14. Verfahren nach Anspruch 13, bei dem der Ermittlungsschritt den Schritt (74) des Auswählens eines Hantiererstrangs aus einem Pool von Hantierersträngen (54) enthält, um den Ermittlungsschritt auszuführen.
  15. Verfahren nach Anspruch 14, das ferner den Schritt des Betreibens des Pools von Hantierersträngen (54) durch selektives Erzeugen eines neuen Hantiererstrangs und Zerstören eines alten Hantiererstrangs umfaßt.
  16. Verfahren nach Anspruch 15, bei dem der Betreibungsschritt den Schritt des Wiederverwendens eines Pufferspeicherraums des alten Hantiererstrangs für den neuen Hantiererstrang enthält.
  17. Computerlesbarer Speicher, der verwendet werden kann, um einen Server-Computer (24A) eines Client-Server-Computernetzwerks (20) anzuweisen, in einer spezifizierten Weise zu arbeiten, umfassend: einen ersten Satz von Befehlen zum Empfangen einer Anfrage von einem Client-Computer (22A) des Client-Server-Netzwerks (20); wobei der computerlesbare Speicher gekennzeichnet ist durch: einen zweiten Satz von Befehlen zum Ermitteln, daß die Anfrage dynamisch erzeugte Informationen von einem Servlet-Objekt (56) des Client-Server-Netzwerks (20) erfordert; einen dritten Satz von Befehlen zum Hochladen eines spezifizierten Servlet-Objekts (56), das der Anfrage entspricht, von einem entfernten Server-Computer (24B) des Client-Server-Netzwerks (20); und einen vierten Satz von Befehlen zum Ausführen des spezifizierten Servlet-Objekts (56), um dynamisch erzeugte Informationen zu erhalten, die der Anfrage entsprechen.
  18. Vorrichtung nach Anspruch 17, die ferner einen fünften Satz von Befehlen umfaßt zum Weiterleiten der dynamisch erzeugten Informationen vom spezifizierten Servlet-Objekt (56) über eine Anwendungsprogrammschnittstelle zu einem Web-Server (46), der auf dem lokalen Server-Computer (24A) operiert.
  19. Vorrichtung nach Anspruch 18, die ferner einen sechsten Satz von Befehlen umfaßt zum Weiterleiten der dynamisch erzeugten Informationen vom Web-Server (46) zum Client-Computer (22A).
  20. Verfahren nach Anspruch 17, das ferner einen siebten Satz von Befehlen umfaßt zum Speichern mehrerer Servlet-Objekte (56) auf dem Server-Computer (24A), wobei jedes der Servlet-Objekte kontinuierlich arbeitet, bis es in Reaktion auf eine spezifizierte Anfrage von einem Client-Computer (22A) aufgerufen wird,
  21. Vorrichtung nach Anspruch 20, bei der der siebte Satz von Befehlen Befehle zum Weiterleiten von Daten zwischen den mehreren Servlet-Objekten (56) enthält.
  22. Computerlesbarer Speicher, der verwendet werden kann, um einen Server-Computer (24A) eines Client-Server-Computernetzwerks (20) anzuweisen, in einer spezifizierten Weise zu arbeiten, umfassend: einen ersten Satz von Befehlen zum Empfangen einer Anfrage von einem Client-Computer (22A) des Client-Server-Computernetzwerks (20); wobei der computerlesbare Speicher gekennzeichnet ist durch: einen zweiten Satz von Befehlen zum Ermitteln, daß die Anfrage dynamisch erzeugte Informationen von einem Servlet-Objekt (56) des Server-Computers (24A) erfordert; einen dritten Satz von Befehlen zum Ausführen des spezifizierten Servlet-Objekts (56), um dynamisch erzeugte Informationen zu erhalten, die der Anfrage entsprechen; und einen vierten Satz von Befehlen zum Weiterleiten der dynamisch erzeugten Informationen zum Client-Computer (22A).
  23. Vorrichtung nach Anspruch 22, bei der der zweite Satz von Befehlen Befehle zum Interpretieren eines Servlet-URL entsprechend der Anfrage enthält.
  24. Vorrichtung nach Anspruch 22, bei der der zweite Satz von Befehlen Befehle zum Interpretieren eines Servlet-URL mit Argumenten enthält.
  25. Vorrichtung nach Anspruch 22, die ferner einen fünften Satz von Befehlen umfaßt zum Speichern mehrerer Servlet-Objekte (56) auf dem Server-Computer (24A), wobei jedes der Servlet-Objekte kontinuierlich arbeitet, bis es in Reaktion auf eine spezifizierte Anfrage von einem Client-Computer (22A) aufgerufen wird.
  26. Vorrichtung nach Anspruch 20, bei der der fünfte Satz von Befehlen Befehle zum Weiterleiten von Daten zwischen den mehreren Servlet-Objekten (56) enthält.
  27. Client-Server-Computernetzwerk (20), umfassend: einen Client-Computer (22A) zum Erzeugen einer Anfrage; wobei das Client-Server-Computernetzwerk gekennzeichnet ist durch: einen Server-Computer (24A), der dafür konfiguriert ist, zu ermitteln, daß die Anfrage dynamisch erzeugte Informationen von einem Servlet-Objekt (56) des Server-Computers erfordert; das spezifizierte Servlet-Objekt (56) auszuführen, um dynamisch erzeugte Informationen entsprechend der Anfrage zu erhalten; und die dynamisch erzeugten Informationen zum Client-Computer , (22A) weiterzuleiten.
  28. Vorrichtung nach Anspruch 27, die ferner einen entfernten Server-Computer (24B) umfaßt, der einen Satz von Servlet-Objekten speichert, die zum Server-Computer (24A) weitergeleitet werden können.
  29. Vorrichtung nach Anspruch 27, bei der der Server-Computer (24A) mehrere Servlet-Objekte (56) speichert, wobei jedes der Servlet-Objekte kontinuierlich arbeitet, bis es in Reaktion auf eine spezifizierte Anfrage vom Client-Computer (22A) aufgerufen wird.
  30. Vorrichtung nach Anspruch 29, bei der die mehreren Servlet-Objekte (56) untereinander Daten austauschen.
DE69721632T 1996-05-30 1997-05-27 Verfahren und Vorrichtung zur Servletverarbeitung Expired - Fee Related DE69721632T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US65771296A 1996-05-30 1996-05-30
US657712 1996-05-30
US75632596A 1996-11-25 1996-11-25
US756325 1996-11-25
US08/828,318 US5928323A (en) 1996-05-30 1997-03-28 Apparatus and method for dynamically generating information with server-side software objects
US828318 1997-03-28

Publications (2)

Publication Number Publication Date
DE69721632D1 DE69721632D1 (de) 2003-06-12
DE69721632T2 true DE69721632T2 (de) 2004-02-19

Family

ID=27417985

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69721632T Expired - Fee Related DE69721632T2 (de) 1996-05-30 1997-05-27 Verfahren und Vorrichtung zur Servletverarbeitung

Country Status (8)

Country Link
US (4) US5928323A (de)
EP (2) EP0810524B1 (de)
JP (1) JP4005667B2 (de)
KR (1) KR100464839B1 (de)
CN (1) CN1145896C (de)
DE (1) DE69721632T2 (de)
SG (1) SG74588A1 (de)
TW (1) TW374876B (de)

Families Citing this family (249)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918214A (en) * 1996-10-25 1999-06-29 Ipf, Inc. System and method for finding product and service related information on the internet
US6961712B1 (en) * 1996-10-25 2005-11-01 Ipf, Inc. Consumer product information request (CPIR) enabling servlets and web-based consumer product information catalogs employing the same
JP3839932B2 (ja) 1996-09-26 2006-11-01 キヤノン株式会社 プロセスカートリッジ及び電子写真画像形成装置及び電子写真感光体ドラム及びカップリング
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6718550B1 (en) 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US20050010475A1 (en) * 1996-10-25 2005-01-13 Ipf, Inc. Internet-based brand management and marketing communication instrumentation network for deploying, installing and remotely programming brand-building server-side driven multi-mode virtual Kiosks on the World Wide Web (WWW), and methods of brand marketing communication between brand marketers and consumers using the same
US7904333B1 (en) 1996-10-25 2011-03-08 Ipf, Inc. Web-based electronic commerce (EC) enabled shopping network configured to allow members of a consumer product management team and authorized parties to communicate directly with consumers shopping at EC-enabled websites along the world wide web (WWW), using multi-mode virtual kiosks (MMVKS) driven by server-side components and managed by product team members
US7848948B2 (en) * 1996-10-25 2010-12-07 Ipf, Inc. Internet-based product brand marketing communication network configured to allow members of a product brand management team to communicate directly with consumers browsing HTML-encoded pages at an electronic commerce (EC) enabled web-site along the fabric of the world wide web (WWW), using programable multi-mode virtual kiosks (MMVKS) driven by server-side components and managed by product brand management team members
US7711598B2 (en) * 1996-10-25 2010-05-04 Ipf, Inc. Web-based consumer product marketing communication network for managing and delivering consumer product marketing communications to consumers along e-commerce (EC) enabled web sites on the world wide web (WWW), using multi-mode virtual kiosks (MMVKS) driven by server=side components embodying consumer product identifiers and driven by consumer product information (CPI) links managed by product manufacturer team members and/or their agents
US20040210479A1 (en) * 1996-10-25 2004-10-21 Ipf, Inc. Internet-based brand marketing communication instrumentation network for deploying, installing and remotely programming brand-building server-side driven multi-mode virtual kiosks on the World Wide Web (WWW), and methods of brand marketing communication between brand marketers and consumers using the same
US20050144072A1 (en) * 1996-10-25 2005-06-30 Perkowski Thomas J. Internet-based brand management and marketing communication instrumentation network for deploying, installing and remotely programming brand-building server-side driven multi-mode virtual kiosks on the World Wide Web (WWW), and methods of brand marketing communication between brand marketers and consumers using the same
US7516094B2 (en) * 1996-10-25 2009-04-07 Ipf, Inc. Internet-based system for managing and delivering consumer product information to consumers at web-based retailer store sites on the world wide web (WWW), using consumer product information (CPI) requesting and graphical user interface (GUI) display subsystems, driven by server-side components embodying universal product numbers (UPNs) and driven by UPN/URL links managed by product manufacturer team members and/or their agents
US7536324B2 (en) * 1996-10-25 2009-05-19 Ipf, Inc. Internet-based system for managing and delivering consumer product brand information to consumers at points of presence along the world wide web (WWW)
US6167522A (en) * 1997-04-01 2000-12-26 Sun Microsystems, Inc. Method and apparatus for providing security for servers executing application programs received via a network
JP3848725B2 (ja) * 1997-04-04 2006-11-22 富士通株式会社 双方向通信システム
US6304912B1 (en) * 1997-07-24 2001-10-16 Fujitsu Limited Process and apparatus for speeding-up layer-2 and layer-3 routing, and for determining layer-2 reachability, through a plurality of subnetworks
US6035324A (en) * 1997-08-28 2000-03-07 International Business Machines Corporation Client-side asynchronous form management
US6070184A (en) * 1997-08-28 2000-05-30 International Business Machines Corporation Server-side asynchronous form management
US7630006B2 (en) 1997-10-09 2009-12-08 Fotonation Ireland Limited Detecting red eye filter and apparatus using meta-data
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
IL122314A (en) 1997-11-27 2001-03-19 Security 7 Software Ltd Method and system for enforcing a communication security policy
US6249803B1 (en) 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
US6516354B2 (en) 1997-12-18 2003-02-04 Sun Microsystems, Inc. Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6438616B1 (en) 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6510460B1 (en) * 1997-12-18 2003-01-21 Sun Microsystems, Inc. Method and apparatus for enforcing locking invariants in multi-threaded systems
US6085196A (en) * 1997-12-23 2000-07-04 Ricoh Company, Ltd. Object-oriented system and computer program product for mapping structured information to different structured information
US7437725B1 (en) 1999-01-04 2008-10-14 General Electric Company Processing techniques for servers handling client/server traffic and communications
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
AU2787799A (en) 1998-02-26 1999-09-15 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
WO1999044121A2 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
DE19818041B4 (de) * 1998-04-22 2008-04-03 Siemens Ag Verfahren zur Erzeugung einer Oberfläche zum Bedienen und Beobachten von Leitsystemen
GB2337671B (en) * 1998-05-16 2003-12-24 Ibm Security mechanisms in a web server
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6330710B1 (en) * 1998-06-19 2001-12-11 At&T Corp. Servlet-based architecture for dynamic service composition
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
US6212564B1 (en) * 1998-07-01 2001-04-03 International Business Machines Corporation Distributed application launcher for optimizing desktops based on client characteristics information
US6633914B1 (en) * 1998-08-05 2003-10-14 International Business Machines Corporation Systems, methods and computer program products for handling client requests for server application processing using a thread pool
JP3558887B2 (ja) * 1998-08-28 2004-08-25 株式会社東芝 分散システム、その制御方法、および記憶媒体
US6643708B1 (en) * 1998-10-29 2003-11-04 International Business Machines Corporation Systems, methods and computer program products for chaining Java servlets across networks
US6409602B1 (en) * 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
EP1208482A1 (de) * 1998-11-30 2002-05-29 Siebel Systems, Inc. CLIENT-SERVER-SYSTEM MIT ARCHITEKTUR MIT BESCHRANKTER FUNKTIONALITäT
US6266774B1 (en) 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
GB2335060B (en) * 1998-12-09 2003-04-30 Taxmate Ltd An inter-computer communications apparatus
JP2000250841A (ja) * 1999-03-02 2000-09-14 Hitachi Ltd ページ生成方法及び装置並びにページ生成プログラムを記録した記憶媒体および電子モールシステム
ATE314682T1 (de) * 1999-04-09 2006-01-15 Henry B Steen Iii Entfernter datenzugang und steuerungssystem
US20020198791A1 (en) * 1999-04-21 2002-12-26 Perkowski Thomas J. Internet-based consumer product brand marketing communication system which enables manufacturers, retailers and their respective agents, and consumers to carry out product-related functions along the demand side of the retail chain in an integrated manner
US20080021778A1 (en) * 1999-04-21 2008-01-24 Ipf, Inc. Web-based brand marketing communication network for enabling e-commerce transactions using Multi-Mode Virtual Kiosks (MMVKS)
US7844492B2 (en) * 1999-11-17 2010-11-30 Ipf, Inc. Internet-based E-commerce network for enabling commission-based E-commerce transactions along the fabric of the world wide web (WWW) using server-side driven multi-mode virtual kiosks (MMVKS) and transaction and commission tracking servers
US8862507B2 (en) * 1999-06-14 2014-10-14 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US6701438B1 (en) * 1999-06-14 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for providing customizable security and logging protocols in a servlet engine
US6446111B1 (en) * 1999-06-18 2002-09-03 Epicrealm Operating Inc. Method and apparatus for client-server communication using a limited capability client over a low-speed communications link
US6480882B1 (en) * 1999-06-25 2002-11-12 Emc Corporation Method for control and communication between computer systems linked through a network
US6954777B1 (en) * 1999-07-29 2005-10-11 International Business Machines Corporation Method for extending capabilities of an arbitrary web server
US6604125B1 (en) 1999-09-24 2003-08-05 Sun Microsystems, Inc. Mechanism for enabling a thread unaware or non thread safe application to be executed safely in a multi-threaded environment
US6895584B1 (en) 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
AU2112301A (en) 1999-09-24 2001-04-24 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6701367B1 (en) 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6636596B1 (en) * 1999-09-24 2003-10-21 Worldcom, Inc. Method of and system for providing intelligent network control services in IP telephony
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
US6629142B1 (en) 1999-09-24 2003-09-30 Sun Microsystems, Inc. Mechanism for optimizing processing of client requests
US6542920B1 (en) * 1999-09-24 2003-04-01 Sun Microsystems, Inc. Mechanism for implementing multiple thread pools in a computer system to optimize system performance
US7388953B2 (en) * 1999-09-24 2008-06-17 Verizon Business Global Llc Method and system for providing intelligent network control services in IP telephony
US7266766B1 (en) 1999-09-30 2007-09-04 International Business Machines Corporation Method for developing a custom tagbean
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
CN1433547A (zh) * 1999-12-08 2003-07-30 Mci全球通讯公司 会话初始协议小服务程序应用编程接口
US6678518B2 (en) 1999-12-09 2004-01-13 Nokia Corporation Dynamic content filter in a gateway
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
US20020087915A1 (en) * 1999-12-23 2002-07-04 Jesse Perla Error handler method and system for internet-based applications
US20020032706A1 (en) * 1999-12-23 2002-03-14 Jesse Perla Method and system for building internet-based applications
US20010047385A1 (en) * 1999-12-30 2001-11-29 Jeffrey Tuatini Passthru to shared service funtionality
US20110238506A1 (en) * 2000-01-14 2011-09-29 Perkowski Thomas J Internet-based brand marketing communication network for enabling commission-based e-commerce transactions along the fabric of the world wide web (www) using server-side driven multi-mode virtual kiosks (mmvks)
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
CA2397994A1 (en) * 2000-01-27 2001-08-02 Hummingbird Ltd. A method and system for implementing a common user logon to multiple applications
US6772395B1 (en) * 2000-02-01 2004-08-03 Microsoft Corporation Self-modifying data flow execution architecture
US6748593B1 (en) * 2000-02-17 2004-06-08 International Business Machines Corporation Apparatus and method for starvation load balancing using a global run queue in a multiple run queue system
US6658449B1 (en) 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
US6553405B1 (en) 2000-02-25 2003-04-22 Telefonaktiebolaget Lm Ericsson (Publ) Self-configurable distributed system
US6598036B1 (en) * 2000-04-04 2003-07-22 Ford Global Technologies, Llc Method for serving engineering rules on a network through servlet and applet
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6985946B1 (en) 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
EP1356394A2 (de) * 2000-05-16 2003-10-29 divine technology ventures Verteiltes system zum zwischenspeichern von dynamischen internet-seiten
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6792607B1 (en) 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US7140018B1 (en) 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
US6507903B1 (en) 2000-06-20 2003-01-14 International Business Machines Corporation High performance non-blocking parallel storage manager for parallel software executing on coordinates
US6832378B1 (en) 2000-06-20 2004-12-14 International Business Machines Corporation Parallel software processing system
EP1296260A4 (de) * 2000-06-27 2003-03-26 Kbmj Inc System zur bereitstellung von informationen
US7076534B1 (en) * 2000-06-30 2006-07-11 Microsoft Corporation Server-side scripting that enables creation of customized documents for clients
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US7089560B1 (en) * 2000-07-24 2006-08-08 Sun Microsystems, Inc. Architecture for building web applications
US6571201B1 (en) * 2000-08-18 2003-05-27 Gilbarco Inc. Remote-access fuel dispenser using a data type aware mark-up language
ATE443964T1 (de) * 2000-08-25 2009-10-15 Research In Motion Ltd System und verfahren zur implementierung eines verbesserten transportschicht- sicherheitsprotokolls
US20020046240A1 (en) * 2000-08-31 2002-04-18 Scott Graham Web server framework
US6769123B1 (en) * 2000-09-07 2004-07-27 Cisco Technology, Inc. Method and apparatus of using a single computer program source code base to provide a program that is operable in either a client-server mode or a standalone mode
US7526438B1 (en) * 2000-09-18 2009-04-28 Hewlett-Packard Development Company, L.P. Localizing client purchasing of consumables for hardcody output engine and method
US6684262B1 (en) 2000-10-25 2004-01-27 International Business Machines Corporation Method and system for controlling peripheral device interface behavior using thread registration
US11526940B2 (en) 2000-10-31 2022-12-13 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US20020099806A1 (en) * 2000-11-30 2002-07-25 Phillip Balsamo Processing node for eliminating duplicate network usage data
US20020069217A1 (en) * 2000-12-04 2002-06-06 Hua Chen Automatic, multi-stage rich-media content creation using a framework based digital workflow - systems, methods and program products
US7089281B1 (en) * 2000-12-08 2006-08-08 Sun Microsystems, Inc. Load balancing in a dynamic session redirector
US6968557B1 (en) * 2000-12-18 2005-11-22 Stratum8 Corporation Reducing stack memory resources in a threaded computer system
US6988349B2 (en) * 2000-12-27 2006-01-24 Pitney Bowes Inc. Printstream processing for inserter systems
US7412598B1 (en) * 2000-12-29 2008-08-12 Cisco Technology, Inc. Method and system for real-time insertion of service during a call session over a communication network
EP1379947B1 (de) * 2001-01-19 2012-09-05 Hostbridge Technology, LLC Ein verbessertes system, verfahren und vorrichtung zur kommunikation zwischen cics und non-cics softwareapplikationen
US20030056173A1 (en) * 2001-01-22 2003-03-20 International Business Machines Corporation Method, system, and program for dynamically generating input for a test automation facility for verifying web site operation
JP2005503047A (ja) * 2001-02-06 2005-01-27 エン ガルデ システムズ、インコーポレイテッド 安全なネットワークを供給するための装置と方法
US7797431B2 (en) * 2001-02-09 2010-09-14 Willard Case Enhanced data exchange and functionality control system and method
US7249190B2 (en) * 2001-02-09 2007-07-24 Comlet Technologies, Llc. Enhanced data exchange and presentation/communication system
US20020120677A1 (en) * 2001-02-23 2002-08-29 Goward Philip J. Method and apparatus for using a servlet to interoperate with server pages
US6961938B1 (en) * 2001-03-03 2005-11-01 Brocade Communications Systems, Inc. Management of multiple network devices using unsigned Java applets
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7734725B2 (en) * 2001-03-30 2010-06-08 International Business Machines Corporation Method and apparatus for server side queuing to control page presentation on web enabled device
JP2004527545A (ja) * 2001-04-20 2004-09-09 ファイザー・プロダクツ・インク 1,3−置換インデンおよびアリール縮合アザ多環式化合物の調製方法
USRE47735E1 (en) 2001-04-20 2019-11-19 Progme Corporation Audio/video program-related hyperlink printer
US7480860B2 (en) 2001-04-23 2009-01-20 Versata Computer Industry Solutions, Inc. Data document generator to generate multiple documents from a common document using multiple transforms
US6748386B1 (en) * 2001-04-24 2004-06-08 Nec Corporation System and method for automated construction of URL, cookie, and database query mapping
US7320027B1 (en) * 2001-05-14 2008-01-15 At&T Corp. System having generalized client-server computing
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6944797B1 (en) 2001-06-07 2005-09-13 Microsoft Corporation Method and system for tracing
US7430738B1 (en) * 2001-06-11 2008-09-30 Microsoft Corporation Methods and arrangements for routing server requests to worker processes based on URL
US7594230B2 (en) 2001-06-11 2009-09-22 Microsoft Corporation Web server architecture
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US6996602B2 (en) * 2001-06-18 2006-02-07 Ford Global Technologies, Llc Server-side page table framework for client application definition and execution
US6898604B1 (en) 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7269788B2 (en) * 2001-06-29 2007-09-11 Versata Development Group, Inc. Extensibility and usability of document and data representation languages
US7162723B2 (en) * 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
US20030046441A1 (en) * 2001-07-05 2003-03-06 Rau Sadhana S. Teamware repository of teamware workspaces
US6813641B2 (en) * 2001-07-05 2004-11-02 Sun Microsystems, Inc. Teamware server working over HTTP/HTTPS connections
US20030009522A1 (en) * 2001-07-05 2003-01-09 Rau Sadhana S. Method for propagating teamware transactions
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US6973625B1 (en) 2001-07-06 2005-12-06 Convergys Cmg Utah Method for creating browser-based user interface applications using a framework
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US7349942B1 (en) 2002-02-13 2008-03-25 Vignette Corporation Storage medium having a manageable file directory structure
US7024452B1 (en) * 2001-07-13 2006-04-04 Vignette Corporation Method and system for file-system based caching
US9639547B2 (en) 2001-07-13 2017-05-02 Open Text Sa Ulc Method and system for file-system based caching
US7761497B1 (en) 2001-07-13 2010-07-20 Vignette Software, LLC Storage medium having a manageable file directory structure
US20030063122A1 (en) * 2001-07-27 2003-04-03 Cichowlas Bruce William Method, system, and computer program product for developing and using stateful web applications
GB2378270B (en) * 2001-07-30 2005-04-20 Ibm Method and apparatus for data transfer across a network
US7216294B2 (en) 2001-09-04 2007-05-08 Microsoft Corporation Method and system for predicting optimal HTML structure without look-ahead
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030074432A1 (en) * 2001-09-26 2003-04-17 Mazzitelli John Joseph State data management method and system
US7003570B2 (en) 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7761594B1 (en) * 2001-10-15 2010-07-20 Netapp, Inc. Method and apparatus for forwarding requests in a cache hierarchy based on user-defined forwarding rules
US7469299B2 (en) * 2001-10-25 2008-12-23 Verizon Business Global Llc Bridging user agent and a proxy server for supporting network services
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US20030140161A1 (en) * 2001-12-21 2003-07-24 Matthew A. Hayduk Portable computing device having a dynamic client classmark and method therefor
US20030140100A1 (en) * 2002-01-18 2003-07-24 Sam Pullara System and method for URL response caching and filtering in servlets and application servers
US20030145048A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System and method for HTTP request preprocessing for servlets and application servers
US7552189B2 (en) * 2002-01-18 2009-06-23 Bea Systems, Inc. System and method for using virtual directories to service URL requests URL requests in application servers
US7197530B2 (en) * 2002-01-18 2007-03-27 Bea Systems, Inc. System and method for pluggable URL pattern matching for servlets and application servers
CA2416962A1 (en) * 2002-01-22 2003-07-22 Datacom Wireless Corporation Vehicle monitoring system
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US6792545B2 (en) * 2002-06-20 2004-09-14 Guidance Software, Inc. Enterprise computer investigation system
US20070011450A1 (en) * 2004-09-14 2007-01-11 Mccreight Shawn System and method for concurrent discovery and survey of networked devices
US7711728B2 (en) * 2002-06-20 2010-05-04 Guidance Software, Inc. System and method for searching for static data in a computer investigation system
US20030236826A1 (en) * 2002-06-24 2003-12-25 Nayeem Islam System and method for making mobile applications fault tolerant
US7454458B2 (en) 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US20070005685A1 (en) * 2002-09-16 2007-01-04 Wunchun Chau Browser-based payment system
US7130877B2 (en) * 2002-09-30 2006-10-31 Alcatel Canada Inc. Request processing switch
US7116784B2 (en) 2002-09-30 2006-10-03 Motorola, Inc. Method and apparatus for authenticated reporting in a mobile communication device
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
DE50208160D1 (de) * 2002-10-31 2006-10-26 Siemens Ag Verfahren und Vorrichtung zur asynchronen Übertragung mindestens eines Meldesignals
US8145759B2 (en) * 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
US20040111421A1 (en) * 2002-12-10 2004-06-10 Cohen Norman H. Data source synthesis
US20040128654A1 (en) * 2002-12-30 2004-07-01 Dichter Carl R. Method and apparatus for measuring variation in thread wait time
KR100408758B1 (en) * 2003-01-22 2003-12-11 Nexon Co Ltd Method for controlling user application program
US20040163086A1 (en) * 2003-02-14 2004-08-19 Richard Friedman WebDAV servlet
US8621031B2 (en) * 2003-04-29 2013-12-31 Oracle International Corporation Method and apparatus using connection pools in communication networks
JP4555000B2 (ja) * 2003-06-20 2010-09-29 株式会社エヌ・ティ・ティ・ドコモ アプリケーションの適応的レプリケーションをサーバサイドコードユニットを用いて実行する方法および装置
EP1652117A4 (de) * 2003-07-11 2010-07-28 Computer Ass Think Inc Ereignisprozessor zur job-einteilung und -verwaltung
US7237619B2 (en) * 2003-07-23 2007-07-03 Mehr Ralph R Automatic fire sprinkler having a variable orifice
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
CN1662003B (zh) * 2004-02-27 2010-04-28 华为技术有限公司 一种实现会话发起协议应用服务器个人业务定制的方法
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US7571236B2 (en) * 2004-06-07 2009-08-04 Sap Ag System and method for managing connections
GB0416259D0 (en) * 2004-07-21 2004-08-25 Ibm A method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented
US20060047840A1 (en) * 2004-08-31 2006-03-02 Peter Postmus Method and session initiation protocol (SIP) server for the exchange of end-point capabilities
US7418719B2 (en) * 2004-08-31 2008-08-26 Microsoft Corporation Method and system to support a unified process model for handling messages sent in different protocols
US7418712B2 (en) * 2004-08-31 2008-08-26 Microsoft Corporation Method and system to support multiple-protocol processing within worker processes
US7418709B2 (en) * 2004-08-31 2008-08-26 Microsoft Corporation URL namespace to support multiple-protocol processing within worker processes
JP4144609B2 (ja) * 2004-09-29 2008-09-03 ソニー株式会社 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム
US7984418B2 (en) * 2005-03-24 2011-07-19 International Business Machines Corporation Method and apparatus for situationally aware delivery of object instances to a client
US7823158B2 (en) * 2005-08-18 2010-10-26 International Business Machines Corporation Adaptive scheduling and management of work processing in a target context in resource contention
WO2007044709A2 (en) * 2005-10-06 2007-04-19 Guidance Software, Inc. Electronic discovery system and method
US20070083671A1 (en) * 2005-10-11 2007-04-12 International Business Machines Corporation Servlet filters to decode encoded request parameters
US8010595B2 (en) * 2005-11-29 2011-08-30 International Business Machines Corporation Execution of server-side dynamic pages
JP2007241854A (ja) * 2006-03-10 2007-09-20 Sangyo Kaihatsu Kiko:Kk オンラインストレージシステム
US8892735B2 (en) * 2006-09-28 2014-11-18 Guidance Software, Inc. Phone home servlet in a computer investigation system
US7657591B2 (en) * 2007-02-23 2010-02-02 Microsoft Corporation Dispatching client requests to appropriate server-side methods
US8334891B2 (en) * 2007-03-05 2012-12-18 Cisco Technology, Inc. Multipoint conference video switching
US8264521B2 (en) * 2007-04-30 2012-09-11 Cisco Technology, Inc. Media detection and packet distribution in a multipoint conference
US20090276791A1 (en) * 2008-05-01 2009-11-05 Microsoft Corporation Techniques for facilitating server callbacks
US8732588B2 (en) * 2008-09-09 2014-05-20 Applied Systems, Inc. Method and apparatus for remotely displaying screen files and efficiently handling remote operator input
WO2010059881A2 (en) * 2008-11-19 2010-05-27 Brett Babat Bone fixation assembly
US8532714B2 (en) * 2009-01-29 2013-09-10 Qualcomm Incorporated Dynamically provisioning a device with audio processing capability
JP5483249B2 (ja) * 2009-03-03 2014-05-07 日本電気株式会社 HTTP要求処理システム、Webサーバ、HTTP要求処理方法、及びHTTP要求処理プログラム
US20110082875A1 (en) * 2009-10-02 2011-04-07 Netquote, Inc. System and method for dynamic payload generation on shared sites
CN101777065B (zh) * 2009-12-31 2015-01-14 优视科技有限公司 一种用于移动通讯设备终端的多页面浏览器及其应用方法
US9479480B2 (en) * 2010-01-29 2016-10-25 Citrix Systems, Inc. Systems and methods of using SSL pools for WAN acceleration
US20110239229A1 (en) * 2010-03-26 2011-09-29 Microsoft Corporation Predicative and persistent event streams
US8903884B2 (en) * 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
US8856260B2 (en) 2011-06-14 2014-10-07 Microsoft Corporation Providing access to shared state data
US20130290830A1 (en) * 2012-04-30 2013-10-31 Salesforce.Com, Inc. System and method for managing a viewstate of a web application
GB2502277B (en) * 2012-05-21 2015-07-08 Rosberg System As Data communication network
US9135030B2 (en) * 2012-06-29 2015-09-15 M-Files Oy Method, an apparatus and a computer program product for extending an application in a client device
US9448862B1 (en) * 2013-05-16 2016-09-20 Ca, Inc. Listening for externally initiated requests
US9823826B2 (en) 2014-10-16 2017-11-21 International Business Machines Corporation User interface module sharing
IL293340A (en) 2019-12-02 2022-07-01 Storm Therapeutics Ltd Polyheterocyclic compounds as mettl3 inhibitors
CN111209495A (zh) * 2019-12-26 2020-05-29 曙光信息产业股份有限公司 一种动态页面的生成方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5452454A (en) * 1991-12-10 1995-09-19 Digital Equipment Corporation Generic remote boot for networked workstations by creating local bootable code image
US5475421A (en) * 1992-06-03 1995-12-12 Digital Equipment Corporation Video data scaling for video teleconferencing workstations communicating by digital data network
US5570291A (en) * 1994-08-24 1996-10-29 Wallace Computer Services, Inc. Custom product estimating and order processing system
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5612730A (en) * 1995-03-03 1997-03-18 Multimedia Systems Corporation Interactive system for a closed cable network
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
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US6163797A (en) * 1996-08-06 2000-12-19 Hewlett-Packard Company Application dispatcher for seamless, server application support for network terminals and non-network terminals
US6167522A (en) * 1997-04-01 2000-12-26 Sun Microsystems, Inc. Method and apparatus for providing security for servers executing application programs received via a network
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6075528A (en) * 1997-10-20 2000-06-13 International Business Machines Corporation Graphical user interface stream processor
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
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
KR100464839B1 (ko) 2005-02-28
EP0810524B1 (de) 2003-05-07
US7171446B2 (en) 2007-01-30
US6247044B1 (en) 2001-06-12
EP1235150A3 (de) 2005-04-13
EP1235150B1 (de) 2017-04-05
CN1145896C (zh) 2004-04-14
US20030009519A1 (en) 2003-01-09
JP4005667B2 (ja) 2007-11-07
SG74588A1 (en) 2000-08-22
DE69721632D1 (de) 2003-06-12
US6405241B2 (en) 2002-06-11
US5928323A (en) 1999-07-27
US20010011298A1 (en) 2001-08-02
JPH10133892A (ja) 1998-05-22
EP0810524A1 (de) 1997-12-03
TW374876B (en) 1999-11-21
CN1191350A (zh) 1998-08-26
KR19980079252A (ko) 1998-11-25
EP1235150A2 (de) 2002-08-28

Similar Documents

Publication Publication Date Title
DE69721632T2 (de) Verfahren und Vorrichtung zur Servletverarbeitung
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE60035745T2 (de) Verfahren zum bei Bedarf Laden und Ausführen einer Netzwerkanwendung
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE69736697T2 (de) Verfahren und Gerät zur Steuerung von Zugriff auf Systembetriebsmittel
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen
DE69327448T2 (de) Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
DE69632987T2 (de) Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem
DE60109709T2 (de) Datenverwaltungsrahmenwerk für Verfahrensverwaltung
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69630329T2 (de) Verfahren zur Verwaltung des Deaktivierens und Ausschaltens eines Servers
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE60308489T2 (de) Anwendungsfensterschließung als Reaktion auf ein Ereignis in einem Parent-Fenster
DE19605093B4 (de) Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE102012213795A1 (de) Durch einen Computer implementiertes Verfahren, das es einer Web-Anwendung ermöglicht, mindestens eine native Funktion einer mobilen Einheit aufzurufen
DE69930695T2 (de) Verfahren und Vorrichtung für ein Applikationsverteiler für eine Serverapplikation
DE102004060757A1 (de) Effiziente Handhabung von Download-Anfragen
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
EP1938185A2 (de) Verfahren und programm für die generierung automatisch verteilbarer clients von application-servern
DE60002839T2 (de) Verfahren und vorrichtung zur datenverarbeitung durch einen proxy

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee