DE69721632T2 - Verfahren und Vorrichtung zur Servletverarbeitung - Google Patents
Verfahren und Vorrichtung zur Servletverarbeitung Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram 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-Computernetzwerk20 . Das Netzwerk20 enthält wenigstens einen Client-Computer22 und wenigstens einen Server-Computer24 . Der Client-Computer22 und der Server-Computer24 sind über einen Übertragungskanal26 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 Speicher32 speichert mehrere Computerprogramme, einschließlich eines "Browsers" 34. Wie im Stand der Technik bekannt ist, wird ein Browser verwendet, um mit entfernten Server-Computern24 zu kommunizieren und die von solchen Computern wiedergewonnenen Informationen visuell darzustellen. Der Client-Computer22 bewerkstelligt die Netzwerkkommunikation über eine Standard-Netzwerkverbindungsvorrichtung36 . - Der Server-Computer
24 enthält Standard-Server-Computerkomponenten, einschließlich einer Netzwerkverbindungsvorrichtung40 , einer CPU42 und eines Speichers (primär und/oder sekundär)44 . Der Speicher44 speichert einen Satz von Computerprogrammen, um die der Erfindung zugeordnete Verarbeitung zu implementieren. Der Speicher44 speichert einen Web-Server46 . Der Web-Server46 kann ein im Stand der Technik bekannter Typ sein, der modifiziert ist, um die in1 gezeigten zusätzlichen Programme zu enthalten. Das heißt, in einer Umgebung der Erfindung ist ein Standard-Web-Server46 modifiziert, um einen Server-Akzeptor-Strang48 , eine Verbindungswarteschlange50 , einen Pooladministrator52 , einen Strangpool54 , Servlets56 , eine Servlet-Karte58 , einen Sicherheitsadministrator60 und Grenz-Servlets62 zu enthalten. -
2 ist eine vereinfachte Darstellung eines Server-Computers24A , der gemäß einer Ausführungsform der Erfindung konstruiert ist. Die Figur zeigt einen Web-Server46 , der mit einem Satz von Servlets56A-56N interagiert. Genauer interagiert der Web-Server46 mit den Servlets über eine Anwendungsprogrammschnittstelle (API). Wie in1 gezeigt ist, sind der Web-Server46 und die Servlets56 im Speicher44 gespeichert. Der Web-Server46 kann eine Standard-Web-Server-Software sein, die modifiziert ist, um die hier beschriebene Funktionalität zu enthalten. Jedes Servlet56 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-Computer24A , der eine Anfrage von einem (nicht gezeigten) Client-Computer über einen Übertragungskanal26 empfängt. Der Web-Server46 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-Computer24A , so daß es vom lokalen Server-Computer24A aus einem entfernten Server-Computer24B unter Verwendung einer Kommunikationsverbindung26 hochgeladen wird. Im Beispiel der3 wird das Servlet56P vom entfernten Server-Computer24B zum lokalen Server-Computer24A weitergeleitet. -
3 zeigt ein weiteres Merkmal der Erfindung. Genauer zeigt sie, daß das hochgeladene Servlet56P in einem Sicherheitsbereich57 des lokalen Server-Computers24A ausgeführt wird. Nach der Ausführung werden die Ergebnisse an ein Grenz-Servlet56 im übrigen Abschnitt des lokalen Server-Computers24A 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 der4 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-Computer22 an einen Server-Computer24 . Die Operation eines Client-Computers22 , der Informationen von einem Server-Computer24 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-Strang48 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 in1 gezeigt ist, ist die Verbindungswarteschlarge50 im Speicher des lokalen Server-Computers24 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 Strangpool54 . Der Strangpool54 ist ein Pool von Strängen, die für die Anfrageverarbeitung verwendet werden. Individuelle Stränge holen und verarbeiten Anfragen aus der Verbindungswarteschlange50 . Der Pool-Administrator52 arbeitet so, daß er sicherstellt, daß ein Strang für jede Anfrage in der Verbindungswarteschlange50 vorhanden ist. Der Pool-Administrator52 erzeugt oder spaltet zusätzliche Stränge ab, um neue Anfragen in der Verbindungswarteschlange50 zu behandeln. Wenn eine maximale Anzahl von Strängen erreicht ist, hindert der Pool-Administrator52 neue Anfragen am Eintreten in die Warteschlange50 . 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 Verbindungswarteschlange50 wartet, zerstört der Pool-Administrator60 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 Sicherheitsadministrator60 zugeordnet sind. Zum Beispiel kann der Sicherheitsadministrator60 entscheiden, allen lokalen Servlets zu trauen und allen hochgeladenen Netzwerk-Servlets zu mißtrauen. Nicht-vertrauenswürdige Servlets werden dann im Sicherheitsbereich57 ausgeführt, wie in3 gezeigt ist. Der Sicherheitsadministrator60 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-Server46 in Standardweise verarbeitet werden. Der Web-Server46 leitet die Informationen typischerweise unter Verwendung bekannter Techniken zum Client-Computer zurück. Der Informationsaustausch zwischen einem Servlet und dem Web-Server46 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 der4 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:
- 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.
-
- 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.
-
- 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.
- 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)
- 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. - 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. - 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 ). - Verfahren nach Anspruch 2, bei dem das spezifizierte Servlet-Objekt {
56 ) und die Anwendungsprogrammschnittstelle als Objekt-Bytecodes in der JAVA-Programmiersprache spezifiziert sind. - Verfahren nach Anspruch 2, das ferner den Schritt des Sendens der dynamisch erzeugten Informationen vom Web-Server (
46 ) zum Client-Computer (22A ) umfaßt. - 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 ). - 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. - Verfahren nach Anspruch 7, bei dem die mehreren Servlet-Objekte (
56 ) untereinander Daten austauschen. - 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. - 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. - Verfahren nach Anspruch 7, bei dem ausgewählte Servlet-Objekte (
56 ) der mehreren Servlet-Objekte in Reaktion auf einen aktivierten Servlet-URL instanziiert werden. - Verfahren nach Anspruch 11, bei dem der Servlet-URL Argumente enthält.
- Verfahren nach Anspruch 1, bei dem der Empfangsschritt den Schritt (
72 ) des Speicherns der Anfrage in einer Verbindungswarteschlange (50 ) enthält. - 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. - 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. - Verfahren nach Anspruch 15, bei dem der Betreibungsschritt den Schritt des Wiederverwendens eines Pufferspeicherraums des alten Hantiererstrangs für den neuen Hantiererstrang enthält.
- 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. - 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. - 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 ). - 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, - Vorrichtung nach Anspruch 20, bei der der siebte Satz von Befehlen Befehle zum Weiterleiten von Daten zwischen den mehreren Servlet-Objekten (
56 ) enthält. - 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 ). - Vorrichtung nach Anspruch 22, bei der der zweite Satz von Befehlen Befehle zum Interpretieren eines Servlet-URL entsprechend der Anfrage enthält.
- Vorrichtung nach Anspruch 22, bei der der zweite Satz von Befehlen Befehle zum Interpretieren eines Servlet-URL mit Argumenten enthält.
- 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. - 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. - 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. - 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. - 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. - Vorrichtung nach Anspruch 29, bei der die mehreren Servlet-Objekte (
56 ) untereinander Daten austauschen.
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)
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)
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 |
-
1997
- 1997-03-28 US US08/828,318 patent/US5928323A/en not_active Expired - Lifetime
- 1997-05-27 EP EP97303576A patent/EP0810524B1/de not_active Expired - Lifetime
- 1997-05-27 EP EP02076417.1A patent/EP1235150B1/de not_active Expired - Lifetime
- 1997-05-27 DE DE69721632T patent/DE69721632T2/de not_active Expired - Fee Related
- 1997-05-29 SG SG1997001771A patent/SG74588A1/en unknown
- 1997-05-30 JP JP14079497A patent/JP4005667B2/ja not_active Expired - Lifetime
- 1997-05-30 KR KR1019970022987A patent/KR100464839B1/ko not_active IP Right Cessation
- 1997-05-30 CN CNB97113586XA patent/CN1145896C/zh not_active Expired - Lifetime
- 1997-08-16 TW TW086107576A patent/TW374876B/zh active
-
1999
- 1999-05-18 US US09/314,461 patent/US6247044B1/en not_active Expired - Lifetime
-
2001
- 2001-02-16 US US09/792,712 patent/US6405241B2/en not_active Expired - Lifetime
-
2002
- 2002-05-28 US US10/157,734 patent/US7171446B2/en not_active Expired - Fee Related
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 |