DE60126016T2 - Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen - Google Patents

Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen Download PDF

Info

Publication number
DE60126016T2
DE60126016T2 DE60126016T DE60126016T DE60126016T2 DE 60126016 T2 DE60126016 T2 DE 60126016T2 DE 60126016 T DE60126016 T DE 60126016T DE 60126016 T DE60126016 T DE 60126016T DE 60126016 T2 DE60126016 T2 DE 60126016T2
Authority
DE
Germany
Prior art keywords
server
client
control object
side control
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60126016T
Other languages
English (en)
Other versions
DE60126016D1 (de
Inventor
Gary S. Kirkland Burd
Kenneth B. Seattle Cooper
Scott D. Bellevue Guthrie
David S. Redmond Ebbo
Mark T. Bellevue Anders
Ted A. Seattle Peters
Stephen J. Edmonds Millet
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60126016D1 publication Critical patent/DE60126016D1/de
Application granted granted Critical
Publication of DE60126016T2 publication Critical patent/DE60126016T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Communication Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Document Processing Apparatus (AREA)

Description

  • Gebiet der Technik
  • Die vorliegende Erfindung betrifft allgemein eine Webserver-Grundstruktur und speziell serverseitige Steuerobjekte, die clientseitige Benutzeroberflächenelemente einer Webseite verarbeiten.
  • Hintergrund der Erfindung
  • Ein typischer Webbrowser empfängt Daten von einem Webserver, der das Erscheinungsbild und das rudimentäre Verhalten einer Webseite zur Anzeige auf einem Clientsystem definiert. In einem typischen Szenario spezifiziert ein Benutzer eine URL-Adresse, eine globale Adresse einer Ressource im World Wide Web, um Zugang zu einer gewünschten Website zu erhalten. Im allgemeinen bezieht sich der Ausdruck "Ressource" auf Daten oder Routinen, auf die von einem Programm zugegriffen werden kann. Eine beispielhafte URL-Adresse ist "http://www.microsoft.com/ms.htm". Der zweite Teil bezeichnet den Domäne-Namen (d. h. "www.microsoft.com"), wo sich die Ressource befindet. Der dritte Teil bezeichnet die Ressource (d. h. eine Datei mit der Bezeichnung "ms.htm") innerhalb der Domäne. Somit erzeugt ein Browser eine HTTP (HyperText Transport Pxotocol)-Anfrage, die der beispielhaften URL-Adresse zugeordnet ist, um die zu der ms.htm-Datei innerhalb der www.microsoft.com-Domäne gehörigen Daten abzurufen. Ein Webserver, der für den Betrieb der www.microsoft.com-Site zuständig ist, empfängt die HTTP-Anfrage und sendet die angeforderte Webseite oder Ressource in einer HTTP-Antwort an das Clientsystem zur Anzeige im Browser zurück.
  • Die "ms.htm"-Datei des obigen Beispiels enthält einen statischen HTML(HypexText-MarkupLanguage)-Code. HTML ist eine Klartext-Autorensprache, die zum Erzeugen von Dokumenten (z. B. Webseiten) im World Wide Web verwendet wird. Als solche kann eine HTML-Datei von einem Webserver abgerufen und als Webseite in einem Browser angezeigt werden, um die umfangreichen grafischen Erfahrungen darzustellen, die Anwender inzwischen erwarten, wenn sie Informationen aus dem Internet betrachten. Unter Anwendung von HTML kann ein Entwickler beispielsweise formatierten Text, Listen, Formulare, Tabellen, Hypertext-Links, Inlinebilder und -töne sowie Hintergrundgrafiken zur Anzeige im Browser bezeichnen. Eine HTML-Datei ist jedoch eine statische Datei, die nicht inhärent die dynamische Erzeugung von Webseiteninhalten unterstützt.
  • In manchen Fällen kann es notwendig sein, daß eine Webseite dynamischen Inhalt in einem Browser anzeigt, etwa veränderliche Börsenkurs- oder Verkehrsinformationen. In solchen Situationen wird typischerweise ein serverseitiges Anwendungsprogramm entwickelt, um die dynamischen Daten zu erhalten und sie in HTML zu formatieren und an den Browser zu übermitteln, um in einer Webseite angezeigt zu werden, während die Webseite aktualisiert wird.
  • Zusätzlich können dieselben serverseitigen Anwendungsprogramme in Situationen verwendet werden, in denen die Information nicht strikt dynamisch ist, wo es jedoch so viele verschiedene Werte gibt, die in einer statischen Webseite angezeigt werden können, daß es impraktikabel wäre, die erforderliche Anzahl von statischen Webseiten zu erzeugen. Beispielsweise kann eine Reiseplanungsseite zwei Kalender zeigen: einen Kalender für Abreisedaten und einen Kalender für Rückreisedaten. Anstatt Hunderte von statischen Seiten mit jedem möglichen Paar von Kalenderkombinationen zu entwickeln, kann ein serverseitiges Anwendungsprogramm die entsprechende statische Seite mit Anzeige der entsprechenden Kalender dynamisch erzeugen.
  • Viele Webseiten erlauben dem Benutzer den Dialog mit der im Browser angezeigten Seite durch die Wahl von visuellen Elementen der Seite. In der oben erwähnten Reiseplanungsseite könnte beispielsweise der Kalender dem Benutzer den Dialog mit dem Kalender erlauben durch Anklicken eines Tags, um dieses Datum zu wählen, oder durch Anklicken eines Piktogramms, um einen Monat weiter oder zurück zu gehen. Bei vorhandenen Lösungen sendet ein Browser eine HTTP-Anfrage zurück zum serverseitigen Anwendungsprogramm. Die HTTP-Anforderung kann Parameter enthalten, die in der Anfragekette codiert sind, und zwar als Formularpostvariablen oder in einem anderen Datenformat, um die clientseitigen Ereignisse oder Daten zu beschreiben (z. B. welche Steuerung der Benutzer angeklickt hat). Beispielsweise könnten die Parameter das Datum enthalten, das der Benutzer in dem einen Kalender gewählt hat, zusammen mit dem Datum, das aktuell in dem anderen Kalender angezeigt wird.
  • Die Übermittlung von Ereignissen und Daten zurück zum Server wird als "Postback" bezeichnet, weil der Browser typischerweise die Anforderung unter Verwendung einer HTTP POST-Anforderung sendet. Das serverseitige Anwendungsprogramm kann die HTTP-Anforderung verarbeiten und den entsprechenden HTML-Code für eine Webseite mit einem neu berechneten Kalender, der die Benutzeraktion reflektiert, erzeugen, so daß dieser in einer HTTP-Antwort zum Client übertragen wird. Danach wird das resultierende Dokument zu einem Clientsystem in einer HTTP-Antwort übermittelt, wo es im Browser als Webseite dargestellt wird, welche die aktualisierten Kalender zeigt.
  • Die Entwicklung eines serverseitigen Anwendungsprogramms kann eine komplexe Aufgabe sein, bei der nicht nur die Vertrautheit mit normaler HTML-Codierung, die für das Layout einer Webseite verwendet wird, sondern auch mit den Grundlagen der Programmierung erforderlich sind, was eine oder mehrere Programmiersprachen (z. B. C++, Perl, Visual Basic oder Jscript) und das HTTP-Protokoll einschließt, wie Daten zwischen Browser und Server gesendet werden. Webseiten-Designer dagegen sind häufig Grafik-Designer und -Editoren, die möglicherweise keine Programmiererfahrung haben. Außerdem kann die Vereinfachung der Entwicklung komplexer Webseiten die Entwicklung von neuen Webinhalten durch jeden Entwickler beschleunigen.
  • Im allgemeinen erfordert die Entwicklung eines kundenspezifischen serverseitigen Anwendungsprogramms auch eine enorme Anstrengung, und zwar derart, daß Entwickler häufig nicht geneigt sind, diese Aufgabe anzugehen. Ein Entwickler muß nicht nur den HTML-Code verstehen, der erzeugt werden muß, um eine gewünschte Webseite anzuzeigen, sondern der Entwickler muß auch verstehen, wie Benutzerdialog- und Clientdaten von der Webseite in Postback-Operationen resultieren. Es ist daher erwünscht, eine Entwicklungs-Grundstruktur bereitzustellen, die es einem Entwickler ermöglicht, eine Webseite mit minimaler Programmierung dynamisch zu erstellen und zu verarbeiten.
  • Eine Vorgehensweise zur Minimierung der Programmierungsanforderungen für die dynamische Webseitenerzeugung ist die Active Server Page- bzw. ASP-Grundstruktur, die von Microsoft Corporation bereitgestellt wird. Eine ASP-Ressource weist typischerweise Visual Basic oder Jscript-Code auf, um beispielsweise eine HTTP-Anforderung zu verarbeiten, welche die ASP-Ressource als die gewünschte Ressource bezeichnet, und danach den resultierenden HTML-Code in einer HTTP-Antwort zum Client zu erzeugen. Ferner kann eine ASP-Ressource Bezug nehmen auf bereits entwickelte oder von Dritten stammende clientseitige Bibliothekskomponenten (z. B. clientseitige ACTIVEX-Steuerungen), um eine gegebene Anwendungsprogrammieraufgabe zu erleichtern. bei den derzeitigen serverseitigen Anwendungs-Grundstrukturen kann jedoch die Programmierung, die notwendig ist, um clientseitige Benutzeroberflächenelemente (z. B. Textboxen, Listenboxen, Tasten, Hypertext-Links, Bilder, Töne etc.) innerhalb von serverseitigen Anwendungen dynamisch zu managen, anspruchsvolle Programmierfähigkeiten und beträchtliche An strengungen erfordern. Ein ungelöstes Problem ist die richtige Kapselung der Programmierung, die notwendig ist, um Benutzeroberflächenelemente einschließlich der Handhabung von Postback-Ereignissen zu verarbeiten, damit der Webseiten-Entwickler sich auf andere Aspekte der Webseite konzentrieren kann.
  • Weitere Informationen in bezug auf den Stand der Technik sind ersichtlich aus der US-PS 5 991 802, die ein Verfahren und ein System angibt, um durch ein Clientcomputersystem eine Funktion eines Objekts einer Objektklasse aufzurufen, die von einem Servercomputersystem bereitgestellt wird. Der Client sendet eine Anforderung an einen Server, die eine URL-Adresse aufweist, die ein Skript, eine Objektklasse und eine Funktion der aufzurufenden Objektklasse bezeichnet. Als Antwort auf den Empfang der Anforderung startet der Server das Skript und überträgt die Steuerung auf das Skript. Das Skript instanziert ein Objekt der in der URL-Adresse der empfangenen Anforderung erkannten Objektklasse und ruft die in der URL-Adresse der empfangenen Anforderung erkannte Funktion auf. Die aufgerufene Funktion führt das Verhalten der Funktion aus, erzeugt eine an den Client zu sendende Antwort und sendet die Antwort an den Client. Die Antwort enthält Zustandsinformation, die einen Zustand des Objekts beschreibt, nachdem das Verhalten der Funktion ausgeführt ist. Wenn der Client anschließend eine Anforderung sendet, eine Funktion der Objektklasse aufzurufen, wird die Zustandsinformation in die Anforderung eingefügt, so daß die Funktion ihr Verhalten auf der Basis der Zustandsinformation ausführen kann.
  • WO 98/21651 betrifft eine gattungsgemäße Softwarezustandsmaschine zur Implementierung einer Softwareanwendung in einer objektorientierten Umgebung und umfaßt ein Set von Entitätsobjekten, die für Softwareelemente der Softwareanwendung definiert sind, ein Set von Zustandsobjekten, die für jedes Entitätsobjekt definiert und für Zustände repräsentativ sind, in die das Softwareelement eintreten kann, und ein Set von Ereignisobjekten, die für jedes Zustandsobjekt definiert sind, das für Eingaben, welche das Softwareelement empfangen kann, oder für Aktionen repräsentativ ist, die das Softwareelement antreffen kann, während es in dem durch das Zustandsobjekt repräsentierten Zustand ist. Ein Verfahren und ein System zum Aufbau dynamischer Objekte für eine Anwendungssoftware umfaßt die folgenden Schritte: Lesen und Parsen einer Hauptkonfigurationsdatei durch ein Masterobjekt, Erhalten einer Objekt-ID für jedes in der Hauptkonfigurationsdatei bezeichnete dynamische Objekt, mittels eines Werkobjekts Erzeugen eines Beispiels jedes dynamischen Objekts, das in der Hauptkonfigurationsdatei bezeichnet ist, und Erhalten einer physikalischen Adresse für jedes erzeugte Objekt, Abspeichern der Objekt-IDs und der physikalischen Adressen der erzeugten Objektbeispiele in einem Ob jektlexikon, Aufrufen des Initialisierungsverfahrens jedes in dem Objektlexikon abgespeicherten Objekts und Initialisieren jedes erzeugten Objekts.
  • "Chapter 6 Session Management Service", Server-Side JavaScript Guide, [Online] 1999, S. 125-126, XP002193608, abgerufen aus dem Internet am 19. März 2002 von URL: http://developer.netscape.com/docs/manuals/ssjs/1:4/ssjs.pdf beschreibt die Session Management Service-Objekte, die im serverseitigen JavaScript verfügbar sind, um Daten gemeinsam unter einer Vielzahl von Client-Anforderungen an eine Anwendung, unter einer Vielzahl von Benutzern einer einzigen Anwendung oder auch unter einer Vielzahl von Anwendungen auf einem Server zu nutzen.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung werden die vorstehenden und weitere Probleme gelöst durch Bereitstellen eines serverseitigen Steuerobjekt-Grundgerüsts zum Verwalten der Verarbeitung und Erzeugung von clientseitigen Benutzeroberflächenelementen. Ferner kann eine Hierarchie von serverseitigen Steuerobjekten zusammenwirken zum Erzeugen des resultierenden Autorensprache-Codes wie etwa Standard-HTML zum Anzeigen einer Webseite an einem Client. Der Client kann beispielsweise irgendein Browser sein, der Standard-HTML oder eine andere Autorensprache unterstützt. Die Operation des Verarbeitens des clientseitigen Benutzeroberflächenelements kann eine oder mehrere von einer Postback-Ereignisbehandlungsoperation, einer Postback-Datenbehandlungsoperation, einer Datenbindungsoperation oder einer Zustandsmanagementoperation sein, die auf den Zustand eines serverseitigen Steuerobjekts bezogen ist.
  • Ein erheblicher Nutzen einer Ausführungsform der vorliegenden Erfindung liegt in der verbesserten Kapselung der serverseitigen Verarbeitung von clientseitigen Benutzeroberflächenelementen (z.B. Eingängen, die von Benutzeroberflächenelementen empfangen werden, und Ausgängen, die zum Erzeugen von Benutzeroberflächenelementen dienen) und der zugehörigen Funktionalität. Ein oder mehr serverseitige Steuerobjekte können erzeugt werden, um ein oder mehr Benutzeroberflächenelementen logisch zu entsprechen. Beispielsweise kann mit einem gegebenen Benutzeroberflächenelement, das einen Monat in einem Kalenderdisplay darstellt, eine Hierarchie von serverseitigen Steuerobjekten erzeugt werden, die dem Kalenderdisplay und seinen verschiedenen Unterelementen entsprechen. Bei einer Konfiguration kann ein "Monat"-Steuerobjekt hierarchisch eine Vielzahl von "Wochen"-Steuerobjekten enthalten, wobei jedes "Wochen"-Steuerobjekt hierarchisch sieben "Tag"-Steuerobjekte enthält.
  • Bei einer Ausführungsform der vorliegenden Erfindung können außerdem die serverseitigen Steuerobjekte zusammenwirken zum Verarbeiten der logisch entsprechenden Benutzeroberflächenelemente. Dieser Vorteil resultiert zum Teil aus der gleichzeitigen Existenz einer Vielzahl von serverseitigen Steuerobjekten während der Verarbeitung einer Clientanforderung und der Erzeugung einer Antwort. Beispielsweise kann bei Detektierung eines ersten Postbackereignisses, das vom Client empfangen wird (z. B. einem Klick auf ein "nächster-Monat"-Tastenelement in einer Kalenderanzeige), ein Steuerobjekt ein zweites Ereignis hervorrufen (z. B. die Wahl des nächsten Monats zur Anzeige durch das "Monat"-Steuerobjekt), das anschließend von ein oder mehr gleichzeitig existierenden Steuerobjekten detektiert und verarbeitet wird. Diese Kooperation ermöglicht die Kapselung von komplexen Steuerdialogen innerhalb der serverseitigen Steuerobjekte selbst, wodurch die vom Webseiten-Entwickler verlangte kundenspezifische Ereignisbehandlung minimiert wird.
  • Ein Verfahren und ein Computerprogrammprodukt, die ein clientseitiges Benutzeroberflächenelement, das in eine auf einem Client gezeigte Webseite eingefügt ist, verarbeiten, werden bereitgestellt. Eine Anforderung, die auf einen serverseitigen Vereinbarungsdatenspeicher bezogen ist, wird empfangen. Eine Vereinbarung wird von dem serverseitigen Vereinbarungsdatenspeicher eingegeben. Ein serverseitiges Steuerobjekt wird erzeugt und programmiert, um auf der Basis der Vereinbarung eine Funktionalität des Benutzeroberflächenelements bereitzustellen. Das Benutzeroberflächenelement wird unter Nutzung des serverseitigen Steuerobjekts verarbeitet. Autorensprache-Daten werden von dem serverseitigen Steuerobjekt erzeugt, um das Benutzeroberflächenelement in der Webseite anzuzeigen.
  • Eine Hierarchie von serverseitigen Steuerobjekten, die von einem Computer ausführbar sind, um ein oder mehr clientseitige Benutzeroberflächenelemente zu verarbeiten, die in eine an einem Client gezeigte Webseite eingebaut sind, wird bereitgestellt. Ein oder mehr serverseitige Sohn-Objekte entsprechen den ein oder mehr clientseitigen Benutzeroberflächenelementen. Jedes serverseitige Sohn-Objekt behandelt Eingänge, die von dem Client empfangen werden, und erzeugt Autorensprache-Daten zur Anzeige des clientseitigen Benutzeroberflächenelements an dem Client. Mindestens eine hierarchische Kennung wird von dem Client im Zusammenwirken mit dem Eingang empfangen und bezeichnet eines der serverseitigen Sohn-Objekte. Ein serverseitiges Seiten-Objekt enthält die serverseitigen Sohn-Objekte und empfängt den Eingang zur Verteilung an eines der serverseitigen Sohn-Objekte in Übereinstimmung mit der hierarchischen Kennung.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt einen Webserver zum dynamischen Erzeugen von Webseiteninhalt zur Anzeige an einem Client bei einer Ausführungsform der vorliegenden Erfindung;
  • 2 zeigt ein Flußdiagramm von Operationen zum Verarbeiten und Bereitstellen von clientseitigen Benutzeroberflächenelementen unter Verwendung von serverseitigen Steuerobjekten bei einer Ausführungsform der vorliegenden Erfindung;
  • 3 zeigt beispielhafte Module in einem Webserver, die bei einer Ausführungsform der vorliegenden Erfindung verwendet werden;
  • 4 zeigt eine beispielhafte Ressource mit dynamischem Inhalt (z. B. eine ASP+-Ressource) bei einer Ausführungsform der vorliegenden Erfindung;
  • 5 zeigt ein beispielhaftes System, das zur Implementierung einer Ausführungsform der vorliegenden Erfindung brauchbar ist;
  • 6 ist ein Prozeßflußdiagramm, das die Verarbeitung eines Seiten- bzw. Page-Objekts bei einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 7 zeigt eine beispielhafte serverseitige Steuer- bzw. Controlklasse bei einer Ausführungsform der vorliegenden Erfindung;
  • 8 zeigt eine beispielhafte serverseitige ContainerControl-Klasse bei einer Ausführungsform der vorliegenden Erfindung;
  • 9 zeigt eine beispielhafte serverseitige ControlCollection-Klasse bei einer Ausführungsform der vorliegenden Erfindung;
  • 10 zeigt eine beispielhafte serverseitige Seiten- bzw. Page-Klasse bei einer Ausführungsform der vorliegenden Erfindung.
  • Genaue Beschreibung der Erfindung
  • Eine Ausführungsform der vorliegende Erfindung umfaßt ein serverseitiges Steuerobjekt zum Verarbeiten und Erzeugen eines clientseitigen Benutzeroberflächenelements zur Anzeige in einer Webseite. Ferner kann eine Hierarchie von serverseitigen Steuerobjekten zusammenwirken zum Erzeugen des resultierenden Autorensprache-Codes wie Standard-HTML zur Anzeige einer Webseite an einem Client. Der Client kann beispielsweise irgendein Browser sein, der Standard-HTML oder eine andere Autoren-Sprache unterstützt. Bei einer Ausführungsform der vorliegenden Erfindung entsprechen serverseitige Steuerobjekte logisch clientseitigen Benutzeroberflächenelementen und erzeugen an einem Server den Autorensprache-Code, der von einem clientseitigen Browser zu verwenden ist, um eine Webseite zu zeigen und zu verarbeiten. Die Operation der Verarbeitung des Postback-Ereignisbehandlungsoperation, einer Postback-Datenbehandlungsoperation, einer Datenbindungsoperation und einer Zustandsmanagementoperation umfassen. Die Zustandsmanagementoperation betrifft den Zustand eines serverseitigen Steuerobjekts.
  • 1 zeigt einen Webserver zum dynamischen Erzeugen von Webseiteninhalt zur Anzeige an einem Client bei einer Ausführungsform der vorliegenden Erfindung. Ein Client 100 führt einen Browser 102 aus, der eine Webseite 104 an einer Displayeinrichtung des Client 100 anzeigt. Der Client 100 kann ein Clientcomputersystem aufweisen, das eine Displayeinrichtung wie etwa einen Videomonitor hat. Ein "INTERNET EXPLORER"-Browser, der von Microsoft Corporation vertrieben wird, ist ein Beispiel eines Browsers 102 in einer Ausführungsform der vorliegenden Erfindung. Andere beispielhafte Browser umfassen, ohne Einschränkung, "NETSCAPE NAVIGATOR" und "MOSAIC". Die beispielhafte Webseite 104 enthält eine Textboxsteuerung 106 und zwei Schaltflächensteuerungen 108 und 110. Der Browser 102 kann HTML-Code in der HTTP-Antwort 112 von einem Webserver 116 empfangen und zeigt die Webseite wie durch den HTML-Code beschrieben. Die HTML wird zwar unter Bezugnahme auf eine Ausführungsform beschrieben, aber im Rahmen der vorliegenden Erfindung sind auch andere Autorensprachen möglich, was – ohne Einschränkung – die folgenden einschließt: SGML (Standard Generalized Markup Language), XML (eXtensible Markup Language) und WML (Wireless Markup Language), die eine XML-basierte Markupsprache und dazu bestimmt ist, den Inhalt und Benutzeroberflächen von Schmalbandfunkgeräten wie Pagern und Mobiltelefonen zu bezeichnen. Ferner wird zwar im vorliegenden Fall hauptsächlich Standard-HTML 3.2 angegeben, aber im Rahmen der vorliegenden Erfindung kann jede Version von HTML unterstützt werden.
  • Die Kommunikationen zwischen dem Client 100 und dem Webserver 116 können unter Verwendung einer Folge von HTTP-Anforderungen 114 und HTTP-Antworten 112 ausgeführt werden. HTTP wird zwar unter Bezugnahme auf eine Ausführungsform beschrieben, aber andere Transportprotokolle einschließlich – ohne Einschränkung – S-HTTP sind im Rahmen der vorliegenden Erfindung denkbar. Am Webserver 116 empfängt ein HTTP-Fließbandmodul 118 eine HTTP-Anforderung 114, bestimmt die URL-Adresse und ruft einen geeigneten Handler 120 zur Verarbeitung der Anforderung auf. Bei einer Ausführungsform der vorliegenden Erfindung sind an dem Webserver 116 eine Vielzahl von Handlern 120 vorgesehen, um verschiedene Arten von Ressourcen zu behandeln.
  • Wenn beispielsweise die URL-Adresse eine Ressource 122 mit statischem Inhalt wie etwa eine HTML-Datei bezeichnet, greift ein Handler 120 auf die Ressource 122 mit statischem Inhalt zu und leitet die Ressource 122 mit statischem Inhalt durch das HTTP-Fließband 118 zurück zur Übertragung zu dem Client 100 in einer HTTP-Antwort 112. Wenn alternativ bei einer Ausführungsform der vorliegenden Erfindung die URL-Adresse eine Ressource 124 mit dynamischem Inhalt bezeichnet wie etwa eine ASP+-Ressource, greift ein Handler 120 auf die Ressource 124 mit dynamischem Inhalt zu, verarbeitet die Inhalte der Ressource 24 mit dynamischem Inhalt und erzeugt den resultierenden HTML-Code für die Webseite 104. Bei einer Ausführungsform der vorliegenden Erfindung umfaßt der resultierende HTML-Code den Standard-HTML-Code 3.2. Im allgemeinen ist eine Ressource mit dynamischem Inhalt ein serverseitiger Vereinbarungs-Datenspeicher (z. B. eine ASP+-Ressource), der verwendet werden kann, um den Autorensprache-Code dynamisch zu erzeugen, der eine an einem Client anzuzeigende Webseite beschreibt. Der HTML-Code für die Webseite wird dann in einer HTTP-Antwort 112 durch das HTTP-Fließband 118 zur Übertragung an den Client 100 geleitet.
  • Während der Verarbeitung kann ein Handler 120 auch auf Bibliotheken von bereits entwickelten oder Drittcodes zugreifen, um die Entwicklungsarbeit zu vereinfachen. Eine solche Bibliothek ist eine serverseitige ClassControl-Bibliothek 126, von welcher der Handler 120 serverseitige Steuerobjekte instanzieren kann zur Verarbeitung von Benutzeroberflächenelementen und zum Erzeugen der resultierenden HTML-Daten für die Anzeige einer Webseite. Bei einer Ausführungsform der vorliegenden Erfindung werden ein oder mehr serverseitige Steuerobjekte in ein oder mehr Benutzeroberflächenelementen entweder sichtbar oder versteckt in der Webseite abgebildet, die in der Ressource 124 mit dynamischem Inhalt beschrieben ist.
  • Dagegen ist eine zweite Bibliothek eine clientseitige ControlClass-Bbibliothek 128 wie etwa eine Bibliothek mit "ACTIVEX"-Komponenten von Microsoft Corporation. Eine "ACTIVEX"-Steuerung ist ein COM-Objekt ("Component Object Model"), das bestimmten Standards insofern folgt, auf welche Weise es mit seinem Client und anderen Komponenten in Dialog tritt. Eine clientseitige "ACTIVEX"-Steuerung ist beispielsweise eine COM-basierte Komponente, die automatisch zu einem Client gedownloaded und von einem Webbrowser am Client ausgeführt werden kann. Serverseitige ACTIVEX-Komponenten (nicht gezeigt) sind COM-basierte Komponenten, die an einem Server implementierbar sind, um verschiedene serverseitige Funktionen auszuführen wie etwa die Bereitstellung der serverseitigen Funktionalität einer Börsenkursnachschlage-Anwendung oder Datenbankkomponente. Eine detaillierte Erläuterung von ACTIVEX findet sich in "Understanding ACTIVEX and OLE", David Chappell, Microsoft Press, 1996.
  • Im Gegensatz zu "ACTIVEX"-Steuerungen entspricht ein serverseitiges Steuerobjekt in einer Ausführungsform der vorliegenden Erfindung, das in einer Ressource 124 mit dynamischem Inhalt bezeichnet ist, einem Benutzeroberflächenelement, das am Client angezeigt wird. Das serverseitige Steuerobjekt kann auch gültigen HTML-Code erzeugen, der beispielsweise eine HTML-Marke und einen Lokalisierer zur Bezugnahme auf eine gegebene clientseitige "ACTIVEX"-Steuerung aufweisen kann. Wenn der Browser den Code für die clientseitige "ACTIVEX"-Steuerung bereits in seinem Speichersystem hat, führt der Browser die "ACTIVEX"-Steuerung innerhalb der Webseite am Client aus. Andernfalls downloadet der Browser den Code für die "ACTIVEX"-Steuerung von der vom Lokalisierer bezeichneten Ressource und führt dann die "ACTIVEX"-Steuerung innerhalb der Webseite am Client aus. Ein serverseitiges Steuerobjekt bei einer Ausführungsform der vorliegenden Erfindung kann außerdem Ereignisse zu einem serverseitigen "ACTIVEX"-Objekt erheben, das dazu genutzt wird, eine Börsennachschlage-Anwendung am Server zu implementieren.
  • Ein Handler 120 hat ferner Zugang zu ein oder mehr Nicht-Benutzeroberflächen-Serverkomponenten 130, die an dem Webserver 116 oder einem anderen zugänglichen Webserver ausgeführt werden. Eine Nicht-Benutzeroberflächen-Serverkomponente 130 wie etwa eine Börsenkursnachschlage-Anwendung oder Datenbankkomponente kann in einer Ressource 124, die von einem Handler 120 verarbeitet wird, als Referenz vorgesehen oder zugeordnet sein. Serverseitige Ereignisse, die von den in der Ressource 124 mit dynamischem Inhalt deklarierten Steuerobjekten aufgerufen werden, können mit serverseitigem Code verarbeitet werden, der geeignete Methoden in der Nicht-Benutzeroberfläche-Serverkomponente 130 aufruft. Infolgedessen vereinfacht die von den serverseiti gen Steuerobjekten ermöglichte Verarbeitung die Programmierung der Nicht-Benutzeroberfläche-Serverkomponente 130 durch Kapselung der Verarbeitung und Erzeugung der Benutzeroberflächenelemente einer Webseite, was es dem Entwickler der Nicht-Benutzeroberflächen-Serverkomponente 130 erlaubt, sich auf die spezifische Funktionalität der Anwendung anstatt auf Benutzeroberflächenaspekte zu konzentrieren.
  • 2 ist ein Flußdiagramm von Operationen zum Verarbeiten und Erzeugen von clientseitigen Benutzeroberflächenelementen unter Verwendung von serverseitigen Steuerobjekten in einer Ausführungsform der vorliegenden Erfindung. In einer Operation 200 sendet der Client eine HTTP-Anforderung an den Server. Die HTTP-Anforderung enthält eine URL-Adresse, die eine Ressource wie etwa eine ASP+-Ressource bezeichnet. In einer Operation 202 empfängt der Server die HTTP-Anforderung und ruft den entsprechenden Handler zur Verarbeitung der angegebenen Ressource auf. Die ASP+-Ressource wird in einer Operation 203 gelesen. Eine Operation 204 erzeugt eine serverseitige Steuerobjekthierarchie auf der Basis der Inhalte der bezeichneten Ressource mit dynamischem Inhalt (z. B. der ASP+-Ressource).
  • In einer Operation 206 führen die serverseitigen Steuerobjekte der Steuerobjekthierarchie ein oder mehr der folgenden Operationen aus: Postback-Ereignisbehandlung, Postback-Datenbehandlung, Zustandsmanagement und Datenbindung. Postback-Ereignisse und – Daten (gemeinsam "Postback-Eingaben") von Benutzeroberflächenelementen werden von dem Client an den Server zum Zweck der Verarbeitung übermittelt. Beispielsweise kann ein Postback-Ereignis ohne Einschränkung ein "Mausklick"-Ereignis von einem clientseitigen Tastenfeldelement oder ein "Datenänderung"-Ereignis von einem clientseitigen Textboxelement umfassen, das zum Server übermittelt wird. Postback-Daten können beispielsweise ohne Einschränkung Text umfassen, der von einem Benutzer in einem Textboxelement eingegeben wird, oder einen Index eines von einer Dropdown-Box gewählten Elements. Eine Postback-Operationkann jedoch aus anderen Ereignissen und nicht nur aus einem Benutzerdialog resultieren.
  • In einer Operation 208 wird jedes serverseitige Steuerobjekt in der Hierarchie aufgerufen, Daten wie etwa HTML-Code zum Anzeigen von clientseitigen Benutzeroberflächenelementen in der Webseite zu generieren (oder darzustellen). Es ist zu beachten, daß der Ausdruck "darstellen" zwar verwendet werden kann, um den Vorgang des Anzeigens von grafischen Darstellungen auf einer Benutzeroberfläche zu beschreiben, er wird hier aber auch dazu verwendet, den Vorgang des Erzeugens von Autorensprache-Daten zu beschreiben, die von einer Client-Anwendung wie etwa einem Browser zum Zweck der An zeige und der clientseitigen Funktionalität interpretiert werden können. Eine detaillierte Erörterung der Verarbeitungsoperation 206 und der Erzeugungsoperation 208 folgt in Verbindung mit 6. Bei einer Ausführungsform werden Aufrufe an Erzeugungs
    Figure 00120001
    -Methoden in einzelnen Steuerobjekten durchgeführt unter Verwendung einer Baumdurchquerungsfolge. Dabei resultiert ein Aufruf an die Erzeugungs
    Figure 00120002
    -Methode eines Seitenobjekts in einem rekursiven Durchlauf durch sämtliche geeigneten serverseitigen Steuerobjekte in der Hierarchie. Alternative Methoden zum Aufrufen der Erzeugungs
    Figure 00120003
    -Methoden für geeignete Steuerobjekte können ebenfalls angewandt werden einschließlich einer Ereignisanzeige oder einer Objektregistrierung. Die runden Klammern bedeuten, daß die "Erzeugungs
    Figure 00120004
    -Markierung eine Methode im Vergleich mit einem Datenwert bezeichnet.
  • Bei einer Ausführungsform der vorliegenden Erfindung kann die tatsächliche Erzeugung der einzelnen serverseitigen Steuerobjekte verzögert bzw. aufgeschoben werden, bis auf das serverseitige Steuerobjekt zugegriffen wird (etwa bei der Handhabung von Postback-Eingaben, Laden eines Zustands, Erzeugen von HTML-Code von dem Steuerobjekt etc.) in den Operationen 206 oder 208. Wenn auf ein serverseitiges Steuerobjekt niemals für eine gegebene Anfrage zugegriffen wird, optimiert die aufgeschobene Steuerobjekterzeugung die Serververarbeitung durch Eliminieren einer unnötigen Objekterzeugungsoperation.
  • Eine Operation 210 überträgt den HTML-Code in einer HTTP-Antwort an den Client. In einer Operation 214 empfängt der Client den HTML-Code, der einer anzuzeigenden neuen Webseite zugeordnet ist. In einer Operation 216 fügt das Clientsystem die Benutzeroberflächenelemente der neuen Seite entsprechend dem von der HTTP-Antwort empfangenen HTML-Code ein (d. h. zeigt ihn an). Es versteht sich jedoch, daß das Einfügen eines Benutzeroberflächenelements auch Nicht-Anzeigeoperationen umfassen kann wie etwa das Erstellen von Audio- oder Tastausgaben, Lesen und Schreiben aus einem bzw. in einen Speicher, Steuern der Operation von Skripten etc. In einer Operation 212 wird die serverseitige Steuerobjekthierarchie abgeschlossen. Bei einer Ausführungsform der vorliegenden Erfindung werden serverseitige Steuerobjekte in der Hierarchie erzeugt als Antwort auf eine HTTP-Anforderung, die auf eine zugehörige ASP+-Ressource Bezug nimmt, und werden anschließend an die Erzeugung von Autorensprache-Daten (z. B. HTML-Daten) zerstört. Bei einer alternativen Ausführungsform kann die Operation 212 nach der Operation 208 und vor der Operation 210 durchgeführt werden.
  • 3 zeigt beispielhafte Module in einem Webserver, die in einer Ausführungsform der vorliegenden Erfindung verwendet werden. Der Webserver 300 empfängt eine HTTP-Anforderung 302 in dem HTTP-Fließband 304. Das HTTP-Fließband 304 kann verschiedene Module umfassen wie etwa Module zum Protokollieren von Webseiten-Statistiken, Benutzerberechtigung, Benutzerautorisierung und das Einbringen von Webseiten-Ausgängen im Cache-Speicher. Jede ankommende HTTP-Anforderung 302, die von dem Webserver 300 empfangen wird, wird letztlich von einer spezifischen Instanz einer IHTTPHandler-Klasse (als Handler 306 gezeigt) verarbeitet. Der Handler 306 löst die URL-Anforderung auf und ruft einen geeigneten Handlerbetrieb auf (z. B. ein Seitenherstellungsmodul 308).
  • In 3 wird ein der ASP+-Ressource 310 zugeordnetes Seitenherstellungsmodul 308 aufgerufen, um die Instanzierung und Konfigurierung der ASP+-Ressource 310 abzuwickeln. Bei einer Ausführungsform kann eine ASP+-Ressource durch Bezeichnen eines bestimmten Suffixes (oder einer Dateierweiterung wie ".aspx") mit der Ressource identifiziert werden. Wenn eine Anforderung für eine gegebene ASP+-Ressource erstmals von dem Seitenherstellungsmodul 308 empfangen wird, durchsucht das Seitenherstellungsmodul 308 das Dateisystem nach der entsprechenden Datei (z. B. der .aspx-Datei 310). Die Datei kann Text (z. B. Autorensprache-Daten) oder ein anderes Datenformat (z. B. Bytecodedaten oder codierte Daten) enthalten, die später von dem Server interpretiert werden oder auf die er zugreift, um die Anforderung zu bedienen. Wenn die physikalische Datei existiert, öffnet das Seitenherstellungsmodul 308 die Datei und liest die Datei in den Speicher ein. Wenn die Datei nicht zu finden ist, sendet das Seitenherstellungsmodul 308 eine entsprechende Fehlermeldung "Datei nicht gefunden" zurück.
  • Nach dem Einlesen der ASP+-Ressource 310 in den Speicher verarbeitet das Seitenherstellungsmodul 308 den Dateiinhalt, um ein Datenmodell der Seite aufzubauen (z. B. Listen von Skriptblöcken, Anweisungen, statischen Textbereichen, hierarchischen serverseitigen Steuerobjekten, serverseitigen Steuereigenschaften etc.). Das Datenmodell wird genutzt, um eine Quellenauflistung einer neuen Objektklasse wie etwa einer COM+-Klasse (COM+ = "Component Object Model+") zu erzeugen, das die Seitengrundklasse erweitert. Die Seitengrundklasse umfaßt Code, der die Struktur, die Eigenschaften und die Funktionalität eines Seitengrundobjekts definiert. Bei einer Ausführungsform der vorliegenden Erfindung wird die Quellenauflistung dann dynamisch in einer Zwischensprache kompiliert und später just-in-time-kompiliert in plattformspezifische Anweisungen (z. B. X86, Alpha etc.). Eine Zwischensprache kann allgemeinen oder kundenspezifisch aufgebauten Sprachcode wie COM+ IL-Code, Java Bytecodes, Modula 3 Code, SmallTalk-Code und Visual Basic-Code umfassen. Bei einer alternativen Ausführungsform können die Zwischensprache-Operationen entfallen, so daß die programmspezifischen Anweisungen direkt aus den Quellenauflistungen oder der Quellendatei erzeugt werden können (z. B. der ASP+-Ressource 310). Das Seitenherstellungsmodul 308 kann auf eine ControlClass-Bbliothek 312 zugreifen, um vordefinierte serverseitige Steuerklassen zu erhalten, die bei der Erzeugung der Steuerobjekthierarchie verwendet werden.
  • Das Seitenherstellungsmodul 308 gibt ein Seitenobjekt 314 aus, das ein serverseitiges Steuerobjekt ist, das der Webseite 104 von 1 entspricht. Das Seitenobjekt 314 und seine Söhne (d. h. ein Textboxobjekt 318, ein Tastenfeldobjekt 320 und ein anderes Tastenfeldobjekt 322) bilden eine beispielhafte Steuerobjekthierarchie 316. Andere beispielhafte Steuerobjekte sind gemäß der vorliegenden Erfindung ebenfalls vorstellbar, was ohne Einschränkung Objekte, die den HTML-Steuerungen in Tabelle 1 entsprechen, sowie kundenspezifische Steuerobjekte umfaßt. Das Seitenobjekt 314 entspricht der Textbox 106 in 1. Ebenso entspricht das Tastenfeldobjekt 320 dem ADD-Tastenfeld 108 in 1, und das Tastenfeldobjekt 322 entspricht dem Entfernen-Tastenfeld 110 in 1. Das Seitenobjekt 314 ist hierarchisch mit anderen Steuerobjekten an dem Server verknüpft. Bei einer Ausführungsform ist ein Seitenobjekt ein Container-Objekt, das hierarchisch seine Sohn-Steuerobjekte enthält. Bei einer alternativen Ausführungsform können andere Formen von hierarchischen Beziehungen verwendet werden einschließlich einer Abhängigkeitsbeziehung. Bei einer komplexeren Steuerobjekthierarchie mit einer Vielzahl von Ebenen von Söhnen kann ein Sohnobjekt ein Container-Objekt für andere Sohnobjekte sein.
  • Bei der gezeigten Ausführungsform werden die Steuerobjekte in der Steuerobjekthierarchie 316 an dem Server 300 erzeugt und ausgeführt, und jedes serverseitige Steuerobjekt entspricht logisch einem entsprechenden Benutzeroberflächenelement an dem Client. Die serverseitigen Steuerobjekte wirken außerdem zusammen, um Postback-Eingaben von der HTTP-Anforderung 302 zu handhaben, die Zustände von serverseitigen Steuerobjekten zu managen, eine Datenbindung mit serverseitigen Datenbanken auszuführen und Autorensprache-Daten (z. B. HTML-Code) zu erzeugen, um eine resultierende Webseite am Client zur Anzeige zu bringen. Die resultierenden Autorensprache-Daten werden von der serverseitigen Steuerobjekthierarchie 316 generiert (d. h. erzeugt) und in einer HTTP-Antwort 324 zum Client übermittelt. Beispielsweise kann resultierender HTML-Code jedes gültige HTML-Konstrukt verkörpern und kann auf Steuerungen vom ACTIVEX-Typ, JAVA-Applets, Skripts und alle sonstigen Webressourcen Bezug nehmen, die clientseitige Benutzeroberflächenelemente ergeben (z. B. Steuertasten, Textboxen etc.), wenn sie von einem Browser verarbeitet werden.
  • Aufgrund von Vereinbarungen, die in der ASP+-Ressource 310 getroffen werden, können serverseitige Steuerobjekte auch auf ein oder mehr Nicht-Benutzeroberflächen-Serverkomponenten 330 zugreifen, um einen Dialog zwischen der Nicht-Benutzeroberflächen-Serverkomponente 330 und clientseitigen Benutzeroberflächenelementen herzustellen. Beispielsweise können als Antwort auf Postback-Eingaben serverseitige Steuerobjekte serverseitige Ereignisse zu den Nicht-Benutzeroberflächen-Serverkomponenten erheben, die für diese Ereignisse registriert sind. Auf diese Weise kann die Nicht-Benutzeroberfläche-Serverkomponente 330 mit dem Benutzer durch Benutzeroberflächenelemente in Dialog treten, ohne den zum Anzeigen und Verarbeiten dieser Elemente erforderlichen Code zu programmieren.
  • 4 zeigt Inhalte einer beispielhaften Ressource mit dynamischem Inhalt bei einer Ausführungsform der vorliegenden Erfindung. Bei der gezeigten Ausführungsform enthält die Datei 400 Klartextvereinbarungen in einem beispielhaften Ressourcenformat (z. B. ASP+) mit dynamischem Inhalt. Jede Vereinbarung liefert Anweisungen an einen Seitenkompilierer, der die Datei 400 liest, die entsprechenden serverseitigen Steuerobjekte erzeugt und aufruft, um das clientseitige Benutzeroberflächenelement zu verarbeiten, und schließlich den erhaltenen HTML-Code zur Übermittlung an den Client in einer HTTP-Antwort kombiniert. Insofern beschreibt oder bezieht sich eine Vereinbarung auf die Funktionalität eines clientseitigen Benutzeroberflächenelements, das von einem serverseitigen Steuerobjekt implementiert wird. Das serverseitige Steuerobjekt erzeugt dann den HTML-Code, der dazu dient, eine neue Version der Webseite am Client zu definieren.
  • Die erste Zeile der Datei 400 umfaßt eine Übersetzungsanweisung in dem Format:
    <%@directive {attribute=value}%>
    wobei directive ohne Einschränkung "Seite", "Cache" oder "importieren" umfassen kann. Übersetzungsanweisungen werden von dem Seitenkompilierer verwendet bei der Verarbeitung einer Ressource mit dynamischem Inhalt, um Charakteristiken zu bestimmen wie Zwischenspeicher-Semantik, Sitzungszustands-Anforderungen, Fehlerhandhabungspläne, Skriptsprachen, Transaktionssemantik und Importanweisungen. Anweisungen können überall innerhalb einer Seitendatei plaziert sein.
  • In der zweiten Zeile ist <html> eine Standard-HTML-Startmarke, die den resultierenden HTML-Code als Literalkonstante (d. h. ohne zusätzliche Verarbeitung zum Erzeugen des resultierenden HTML-Codes) durchläuft. In HTML bezeichnet <html> den Beginn der HTML-Datei und wird mit der Abschlußmarke in Zeile 21, also </html>, gepaart, die ebenfalls eine Literalkonstante ist.
  • Ein Codevereinbarungsblock befindet sich in Zeilen 3 bis 10 der Datei 400. Im allgemeinen definieren serverseitige Codevereinbarungsblöcke Seitenobjekt- und Steuerobjektelement-Variablen und -methoden, die am Server ausgeführt werden. In dem Format:
    Figure 00160001
    wobei die Sprach- und die src-Parameter fakultativ sind. Bei einer Ausführungsform der vorliegenden Erfindung sind Codevereinbarungsblöcke definiert unter Verwendung von <script>-Marken, die ein "runat"-Attribut enthalten, das einen Wert hat, der auf "server" gesetzt ist. Fakultativ kann ein "language"-Attribut auch verwendet werden, um die Syntax des inneren Codes zu bezeichnen. Die Standardsprache kann die Sprachkonfiguration der Gesamtseite repräsentieren; das "language"-Attribut in dem Codevereinbarungsblock erlaubt jedoch einem Entwickler die Verwendung verschiedener Sprachen innerhalb derselben Webseitenimplementierung, was beispielsweise Jscript und PERL (Practical Extraction and Report Language) einschließt. Die <script>-Marke kann auch fakultativ eine "src"-Dabei bezeichnet, die eine externe Datei ist, aus der Code in die Ressource mit dynamischem Inhalt zur Verarbeitung durch den Seitenkompilierer eingefügt wird. Es versteht sich, daß die angegebene Syntax bei einer Ausführungsform verwendet wird, daß jedoch alternative Ausführungsformen andere Syntaxen im Rahmen der vorliegenden Erfindung verwenden können.
  • In 4 sind zwei Subroutinen im Visual Basic-Format innerhalb des Codevereinbarungsblocks vereinbart: AddButton_Click und DeleteButton_Click. Beide Subroutinen benötigen zwei Eingangsparameter "Source" und "E" und werden auf dem Server als Antwort auf eine HTTP-Anforderung ausgeführt, wenn ein clientseitiges Klickereignis an der entsprechenden Taste detektiert wird. In der AddButton_Click-Subroutine wird der Text in einer UserName-Textbox mit dem Wort "Add" verkettet und in das Textdatenelement von Message geladen. In der DeleteButton_Click-Subroutine wird der Text in der UserName-Textbox mit dem Wort "Delete" verkettet und in das Textdatenelement von Message geladen. Obwohl dies in 4 nicht gezeigt ist, können Elementvariablen von serverseitigen Steuerobjekten in dem Codevereinbarungsblock der Datei 400 deklariert sein. Beispielsweise deklariert bei Anwendung einer Visual Basic-Syntax der Schlüsselwortplatz "DIM" eine Datenvariable eines serverseitigen Steuerobjekts.
  • Ein "code render block" (nicht gezeigt) kann ebenfalls in einer Ressource mit dynamischem Inhalt enthalten sein. Bei einer Ausführungsform der vorliegenden Erfindung wird ein Codeerzeugungsblock in einem einzigen "rendering"-Verfahren ausgeführt, das zu einem Seitenerzeugungszeitpunkt abläuft. Ein Codeerzeugungsblock genügt dem folgenden Format (obwohl bei alternativen Ausführungsformen auch an andere Formate gedacht ist):
    <%InlineCode%>
    wobei InlineCode eigenständige Codeblöcke oder Steuerablaufblöcke umfaßt, die auf dem Server während der Seitenerzeugungszeit ausgeführt werden.
  • Inline-Ausdrücke können ebenfalls innerhalb eines Codeerzeugungsblocks verwendet werden unter Verwendung der beispielhaften Syntax:
    <%=InlineExpression%>
    wobei der in einem Block InlineExpression enthaltene Ausdruck letztlich von einem Aufruf zu "Response.Write(InlineExpression)" in einem Seitenobjekt umfaßt ist, das den aus InlineExpression resultierenden Wert in einen geeigneten Platzhalter in der Vereinbarung schreibt. Beispielsweise können InlineExpressions in einem Codeerzeugungsblock wie folgt eingefügt sein:
    <font size="<%=x%>">Hi<%=Name%>,you are%=Age%>!</font>
    wobei eine Grußformel und eine Angabe über das Alter einer Person in einem Font ausgegeben werden, der in dem Wert "x" gespeichert ist. Name und Alter der Person sind als Zeichenfolgen in einem Codevereinbarungsblock (nicht gezeigt) definiert. Der resultierende HTML-Code wird am Server zur Übermittlung an den Client in der HTTP-Antwort so erzeugt, daß er die Werte der InlineExpressions an geeigneten Stellen enthält:
    <font size="12">Hi Bob, du bist 35!
  • In Zeile 11 der Datei 400 ist <body> eine Standard-HTML-Marke zur Definition des Beginns des Hauptteils des HTML-Dokuments. In Zeile 20 der Datei 400 ist die Abschlußmarke </body> ebenfalls gezeigt. Sowohl <body> als auch </body> sind Literalkonstanten bei einer Ausführungsform der vorliegenden Erfindung.
  • Innerhalb des Hauptteils der HTML-Datei 400 findet man in Zeile 12 die Startmarke <form> eines HTML-Formularblocks. Die Endmarke </form> des Formularblocks findet man in Zeile 19 der HTML-Datei 400. Ein fakultativer Parameter "id" kann ebenfalls in der HTML-Steuermarke <form> enthalten sein, um dem Formularblock eine gegebene Kennung zuzuordnen, was es möglich macht, daß eine Mehrzahl von Formularblöcken in einer einzigen HTML-Datei enthalten sein kann.
  • In Zeile 18 der Datei 400 wird eine serverseitige Marke deklariert, die mit "Message" bezeichnet ist. Die "Message"-Marke wird in dem in Zeilen 5 und 8 der Datei 400 vereinbarten Code verwendet, um eine Marke auf der Webseite anzuzeigen.
  • Innerhalb eines Formularblocks sind drei beispielhafte HTML-Steuermarken gezeigt, die den Benutzeroberflächenelementen 106, 108 und 110 von 1 entsprechen. Das erste Benutzeroberflächenelement ist in Zeile 13 der Datei 400 deklariert und entspricht einer Textbox. Das Textliteral "User Name:" deklariert eine Marke, die links von der Textbox positioniert ist. Die Eingabemarke mit type="Text" bezeichnet ein serverseitiges Textbox-Steuerobjekt, das ein id gleich "UserName" als serverseitiges Steuerobjekt hat, das ein clientseitiges Textbox-Benutzeroberflächenelement bildet. Zeilen 15 und 16 der Datei 400 deklarieren die clientseitigen Benutzeroberflächenelemente, die als Tastenfelder 108 und 110 von 1 gezeigt sind. Es ist zu beachten, daß der "OnServerClock"-Parameter die geeignete Subroutine bezeichnet, die in dem Codevereinbarungsblock der Daten 400 deklariert ist. Als solche erzeugen die serverseitigen Tastenfeldsteuerobjekte, die als Antwort auf die Vereinbarungen in der Datei erzeugt wurden, den HTML-Code für die clientseitigen Tastenfelder und einen zugehörigen serverseitigen Code zur Implementierung der Tastenfeld-Klickereignisse.
  • Die Textbox und die Tastenfelder, die in der Datei 400 deklariert werden, sind Beispiele von HTML-Serversteuerungs-Vereinbarungen. Standardmäßig werden sämtliche HTML-Marken innerhalb einer ASP+-Ressource als literaler Textinhalt behandelt und sind für Seitenentwickler programmorientiert unzugänglich. Seitenautoren können jedoch angeben, daß eine HTML-Marke zerlegt werden und als eine zugängliche Serversteuerungsvereinbarung behandelt werden sollte, indem sie mit einem "runat"-Attribut mit einem auf "server" gesetzten Wert markiert wird. Jedes serverseitige Steuerobjekt kann fakultativ einem speziellen "id"-Attribut zugeordnet sein, um die programmorientierte Bezugnahme auf das entsprechende Steuerobjekt zu ermöglichen. Eigentumsargumente und Ereignisbindungen an serverseitigen Steuerobjekten können ebenfalls angegeben werden unter Verwendung von deklarativen Name-/Wert-Attributpaaren an dem Markenelement (z. B.: der OnServerClick ist gleich dem Paar "MyButton_Click").
  • Bei einer Ausführungsform der vorliegenden Erfindung ist eine allgemeine Syntax zur Deklaration von HTML-Steuerobjekten wie folgt:
    Figure 00190001
    wobei OptionalName eine besondere Kennung für das serverseitige Steuerobjekt ist. Eine Liste von aktuell unterstützten HTML-Marken und der zugehörigen Syntax und COM+-Klasse ist in der TABELLE 1 gezeigt, obwohl im Rahmen der vorliegenden Erfindung auch andere HTML-Marken in Betracht kommen.
    Figure 00190002
    TABELLE 1
  • Zusätzlich zu Standard-HTML-Steuermarken ermöglicht es eine Ausführungsform der vorliegenden Erfindung Entwicklern, wiederverwendbare Komponenten zu generieren, die gemeinsame programmorientierte Funktionalitäten außerhalb der gesetzten Standard-HTML-Marke kapseln. Diese kundenspezifischen serverseitigen Steuerobjekte werden bezeichnet unter Verwendung von beschreibenden Marken innerhalb einer Seitendatei. Kundenspezifische serverseitige Steuerobjektbeschreibungen umfassen ein "runat"-Attribut mit einem auf "server" gesetzten Wert. Fakultativ kann das spezielle "id"-Attribut angegeben werden, um die programmorientierte Bezugnahme des kundenspezifischen Steuerobjekts zu ermöglichen. Außerdem bezeichnen beschreibende Name-/Wert-Attributpaare an einem Markenelement Eigenschaftsargumente und Ereignisbindungen an einem serverseitigen Steuerobjekt. Inline-Schablonenparameter können ebenfalls an ein serverseitiges Steuerobjekt gebunden sein durch Vorsehen eines geeigneten Sohn-Elements mit "template"-Präfix an dem Vater-Serversteuerobjekt. Ein Format für eine kundenspezifische serverseitige Steuerobjektbeschreibung ist:
    <servercntrlclassname id="OptionalName" [propertyname="propval"] runat=server/>
    wobei servercntrlclassname ein Name einer zugänglichen Serversteuerklasse ist, OptionalName eine spezielle Kennung des serverseitigen Steuerobjekts ist und propval einen fakultativen Eigenschaftswert in dem Steuerobjekt darstellt.
  • Unter Verwendung einer alternativen Beschreibungssyntax können XML-Marken-Präfixe verwendet werden, um eine genauere Bezeichnung zum Benennen von serverseitigen Steuerobjekten innerhalb einer Seite zu erhalten, wobei das folgende Format verwendet wird:
    <tagprefix:classname id="OptionalName" runat=server/>
    wobei tagprefix einer gegebenen Steuernamensplatz-Bibliothek zugeordnet ist und classname einen Namen einer Steuerung in der zugeordneten Namensplatz-Bibliothek darstellt. Ein fakultativer propertyvalue wird ebenfalls unterstützt.
  • Zusammenfassend umfaßt eine Ausführungsform der vorliegenden Erfindung serverseitige Steuerobjekte, die generiert und an dem Server ausgeführt werden, um HTML-Code zu erzeugen, der an einen Client gesendet wird. Der HTML-Code kann alle gültigen HTML-Konstrukte verkörpern und kann beispielsweise auf Steuerungen vom ACTIVEX-Typ, JAVA-Applets, Skripte und alle anderen Webressourcen Bezug nehmen, um Benutzeroberflächen-Tastenfelder und andere Benutzeroberflächenelemente am Client zu erzeugen. Ein Benutzer am Client kann mit diesen Benutzeroberflächenelementen in Dialog treten, die den serverseitigen Steuerobjekten logisch entsprechen, und kann an den Server eine Anforderung zurücksenden. Die serverseitigen Steuerobjekte werden an dem Server generiert zum Verarbeiten der Daten, Ereignisse und anderen Charakteristiken der Benutzeroberflächenelemente, um so die nächste Runde von HTML-Code zu erzeugen, der in einer Antwort an den Client übertragen werden soll.
  • Unter Bezugnahme auf 5 weist ein beispielhaftes Rechnersystem für Ausführungsformen der Erfindung folgendes auf: eine Universalrechenvorrichtung in Form eines herkömmlichen Computersystems 500 mit einer Prozessoreinheit 502, einem Systemspeicher 504 und einem Systembus 506, der verschiedene Systemkomponenten einschließlich des Systemspeichers 504 mit der Prozessoreinheit 500 verbindet. Der Systembus 506 kann einer von mehreren Typen von Busstrukturen sein mit einem Speicherbus oder einer Speichersteuerung, einem peripheren Bus und einem lokalen Bus, wobei jede von verschiedenen Busarchitekturen verwendet werden kann. Der Systemspeicher umfaßt einen Festwertspeicher bzw. ein ROM 508 und einen Speicher mit wahlfreiem Zugriff bzw. ein RAM 510. Ein Ein-/Ausgabe-Grundsystem 512 (BIOS), das Grundroutinen enthält, die dazu beitragen, Informationen zwischen Elementen innerhalb des Computersystems 500 zu übertragen, ist in dem ROM 508 gespeichert.
  • Das Computersystem 500 hat ferner ein Festplattenlaufwerk 512 zum Lesen von einer und Schreiben auf eine Festplatte, ein Magnetplattenlaufwerk 514 zum Lesen von einer oder Schreiben auf eine entfernbare Magnetplatte 516 und ein Bildplattenlaufwerk 518 zum Lesen von einer oder Schreiben auf eine entfernbare Bildplatte 519 wie etwa ein CD-ROM, eine DVD oder einen anderen Bilddatenträger. Das Festplattenlaufwerk 512, das Magnetplattenlaufwerk 514 und das Bildplattenlaufwerk 518 sind mit dem Systembus 506 über eine Festplattenlaufwerk-Schnittstelle 520, eine Magnetplattenlaufwerk-Schnittstelle 522 und eine Bildplattenlaufwerk-Schnittstelle 524 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Datenträger bilden den nichtflüchtigen Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programmen und anderen Daten für das Computersystem 500.
  • Die hier beschriebene beispielhafte Umgebung verwendet zwar eine Festplatte, eine entfernbare Magnetplatte 516 und eine entfernbare Bildplatte 519, aber andere Arten von computerlesbaren Medien, die Daten speichern können, können in dem beispielhaften System Anwendung finden. Beispiele dieser anderen Arten von computerlesbaren Datenträgern, die in der beispielhaften Betriebsumgebung verwendet werden können, umfassen Magnetbandkassetten, Flash-Speicherkarten, digitale Bildplatten, Bernoulli-Kartuschen, RAMs und ROMs.
  • Eine Reihe von Programm-Modulen kann auf der Festplatte, der Magnetplatte 516, der Bildplatte 510, dem ROM 508 oder RAM 510 gespeichert sein einschließlich eines Betriebssystems 526, eines oder mehrerer Anwendungsprogramme 528, anderer Programm-Module 530 und Programmdaten 532. Ein Benutzer kann Befehle und Informationen in das Computersystem 500 durch Eingabeeinrichtungen wie eine Tastatur 534 und eine Maus 536 oder eine andere Zeigereinrichtung eingeben. Beispiele von anderen Eingabeeinrichtungen umfassen etwa ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel und einen Scanner. Diese und weitere Eingabeeinrichtungen werden häufig mit der Verarbeitungseinheit 502 über eine Serienport-Schnittstelle 540 verbunden, die mit dem Systembus 506 gekoppelt ist. Dennoch können diese Eingabeeinrichtung auch über andere Schnittstellen wie etwa einen Parallelport, einen Gameport oder einen universellen seriellen Bus bzw. USB angeschlossen werden. Ein Monitor 542 oder eine andere Art von Displayeinrichtung ist ebenfalls über eine Schnittstelle wie etwa einen Videoadapter 544 mit dem Systembus 506 verbunden. Zusätzlich zu dem Monitor 542 weisen Computersysteme typischerweise andere periphere Ausgabeeinrichtungen (nicht gezeigt) auf, etwa Lautsprecher und Drucker.
  • Das Computersystem 500 kann in einer vernetzten Umgebung betrieben werden unter Anwendung logischer Verbindungen mit einem oder mehreren abgesetzten Computern wie etwa einem abgesetzten Computer 546. Der abgesetzte Computer 546 kann ein Computersystem, ein Server, ein Router, ein Netz-PC, ein gleichrangiger Computer oder normaler Netzknoten sein und weist charakteristisch viele oder alle von den oben relativ zu dem Computersystem 500 beschriebenen Elementen auf. Die Netzverbindungen umfassen ein lokales Netz bzw. LAN 548 und ein Fernnetz bzw. WAN 550 auf. Diese Netzwerkumgebungen sind in Büros, unternehmensweiten Computernetzen, Intranetzen und dem Internet allgemein üblich.
  • Bei Verwendung in einer LAN-Netzumgebung ist das Computersystem 500 mit dem lokalen Netz 548 über eine Netzschnittstelle oder einen Netzadapter 552 verbunden. Bei Verwendung in einer WAN-Netzumgebung weist das Computersystem 500 charakteristisch ein Modem 554 oder eine andere Einrichtung zum Herstellen von Verbindungen über das Fernnetz 550, wie etwa das Internet auf. Das Modem 554, das intern oder extern sein kann, ist mit dem Systembus 506 über die serielle Portschnittstelle 540 verbunden. In einer vernetzten Umgebung können Programm-Module, die relativ zu dem Computersys tem 500 oder Bereichen davon gezeigt sind, in der abgesetzten Speichereinrichtung gespeichert sein. Es versteht sich, daß die gezeigten Netzwerkverbindungen beispielhaft sind und daß andere Einrichtungen zum Herstellen einer Kommunikationsstrecke zwischen den Computern verwendet werden können.
  • Bei einer Ausführungsform der vorliegenden Erfindung stellt der Computer 500 einen Webserver dar, wobei der Prozessor 502 ein Seitenherstellungsmodul an einer ASP+-Ressource ausführt, die auf wenigstens einem der Datenträger 516, 512, 514, 518, 519 oder dem Speicher 532 abgespeichert ist. HTTP-Antworten und -Anforderungen werden über das LAN 548 übertragen, das mit einem clientseitigen Computer 546 gekoppelt ist.
  • 6 zeigt ein Prozeßablaufdiagramm, das die serverseitige Verarbeitung eines Seitenobjekts und anderer Steuerobjekte in einer Ausführungsform der vorliegenden Erfindung darstellt. In einer Operation 600 wird ein Seitenobjektkonstruktor von dem Seitenherstellungsmodul 308 aufgerufen (siehe 3). Infolgedessen wird ein Seitenobjekt (siehe z. B. das Seitenobjekt 314 in 3) generiert, um dem Webseiten-Benutzeroberflächenelement am Client logisch zu entsprechen. In einer Operation 602 ruft das Seitenherstellungsmodul die ProcessRequest
    Figure 00230001
    -Elementfunktion des Seitenobjekts auf, welche die stufenweisen Operationen zum Verarbeiten der von einem Client empfangenen HTTP-Anforderung initiiert. In einer ersten Stufe einer Ausführungsform der vorliegenden Erfindung generiert eine serverseitige Create-Operation (nicht gezeigt) die serverseitigen Sohn-Steuerobjekte, die in der Steuerobjekthierarchie des Seitenobjekts enthalten sind, d. h. Konstruktoren für Sohn-Steuerobjekte werden rekursiv aufgerufen, um die Steuerobjekte während der Lebensdauer der Verarbeitung der HTTP-Anforderung zu generieren.
  • Bei einer alternativen Ausführungsform wird jedoch die Erschaffung von Sohn-Steuerobjekten aufgeschoben, bis das Steuerobjekt für einen gegebenen Verarbeitungsschritt erforderlich ist (z. B. die Handhabung eines Postback-Ereignisses, die Handhabung von Postback-Daten, das Laden oder Sichern eines Betrachtungszustands, das Umwandeln einer Datenbindung oder die Erzeugung von HTML-Code für das entsprechende Benutzeroberflächenelement). Die letztere Ausführungsform, von der es heißt, daß sie "aufgeschobene Steuerobjekterzeugung" implementiert, ist eine Optimierung, die eine unnötige Nutzung von CPU und Speicher reduzieren kann. Beispielsweise kann ein vom Client empfangenes, vom Benutzer eingegebenes Ereignis in der Erschaffung einer vollständig verschiedenen Webseite resultieren. In diesem Fall ist es nicht notwendig, eine vollständige Steuerobjekthierarchie der vorhergehenden Seite zu instanzieren, nur um ein Ereignis zu verarbeiten, das unmittelbar in der Beendigung der Steuerobjekthierarchie und der Instanzierung einer neuen und davon verschiedenen Steuerobjekthierarchie für eine neue Seite resultiert.
  • Als Antwort auf den Serveraufruf für die ProcessRequest-Methode des Seitenobjekts können die Operationen 604 bis 620 von dem Seitenobjekt und von einzelnen Sohn-Steuerobjekten ausgeführt werden, was teilweise von den Daten einer gegebenen HTTP-Anforderung abhängig ist. Bei einer Ausführungsform der vorliegenden Erfindung werden die Operationen 604 bis 620 für jedes einzelne Objekt in der in 6 gezeigten Reihenfolge ausgeführt; eine gegebene Operation für ein Objekt kann jedoch außerhalb der Reihenfolge oder überhaupt nicht in bezug auf eine gegebene Operation eines anderen Objekts auftreten, was von der HTTP-Anforderung abhängig ist. Beispielsweise kann ein erstes Objekt seine Init-Operation 604 und seine Lade-Operation 606 ausführen und mit der Postback-Datenverarbeitungsoperation 608 beginnen, bevor ein Sohn-Steuerobjekt seine eigene Init-Operation 604 und Lade-Operation 606 aufgrund der aufgeschobenen Steuerobjekterschaffung ausführt. Die Reihenfolge der Operationsverarbeitung durch das Seitenobjekt und Sohn-Steuerobjekte ist von verschiedenen Faktoren abhängig, einschließlich und ohne Einschränkung von der Beschaffenheit der Daten in der HTTP-Anforderung, der Konfiguration der Steuerobjekthierarchie, dem aktuellen Zustand der Steuerobjekte und davon, ob eine aufgeschobene Steuerobjekterstellung implementiert ist.
  • Die Init-Operation 604 initialisiert ein Steuerobjekt, nachdem es durch Ausführen eines serverseitigen Codes generiert wurde, welcher der Initialisierung in der Ressource mit dynamischem Inhalt zugeordnet ist. Auf diese Weise kann jedes serverseitige Steuerobjekt mit spezieller serverseitiger Funktionalität, die in der Ressource mit dynamischem Inhalt beschrieben ist, kundenangepaßt werden. Bei einer Ausführungsform der vorliegenden Erfindung ist der dynamische Inhaltscode, der die Grundseitensteuerungsklassen kundenanpassen soll, von dem Seitenentwickler in der ASP+-Ressource am Server deklariert. Wenn die ASP+-Ressource kompiliert wird, wird der deklarierte Code in den geeigneten Initialisierungscode (z. B. die Init
    Figure 00240001
    -Methoden des Seitenobjekts und der Sohn-Steuerobjekte) eingefügt. Die Init-Operation 604 führt diesen Code aus, um die Seitengrundklasse und die Grundklassen für Sohn-Steuerobjekte zu personalisieren oder zu erweitern.
  • Bei einer Ausführungsform der vorliegenden Erfindung wird das Zustandsmanagement der serverseitigen Steuerobjekte in einer Lade-Operation 606 und einer Sicherungs-Operation 616 unterstützt, die eine transportfähige Zustandsstruktur verwenden zur Anpassung an das zustandslose Modell für Client-Serversysteme durch Rückstellen von serverseitigen Steuerobjekten in ihre vorherigen Zustände. Bei einer Ausführungsform wird der Zustand in einem oder mehreren verdeckten HTML-Feldern eines HTTP-Anforderungs/-Antwortpaars zum und vom Server übermittelt, obwohl andere transportfähige Zustandsstrukturen im Rahmen der vorliegenden Erfindung liegen.
  • In einer gegebenen Folge von auf die aktuelle Seite bezogenen Anforderungen und Antworten zwischen einem Client und einem Server werden die Zustände von ein oder mehr Steuerobjekten mittels der Sicherungs-Operation 616 nach Verarbeitung einer vorhergehenden Anforderung in einer transportfähigen Zustandsstruktur gespeichert. Bei einer Ausführungsform der vorliegenden Erfindung ist in die transportfähige Zustandsstruktur auch zusätzliche Zustandsinformation eingefügt, was hierarchische Information oder Steuerobjektkennungen einschließt, um dem Server zu ermöglichen, einen gegebenen Zustand dem entsprechenden Steuerobjekt zuzuordnen. In einer anschließenden HTTP-Anforderung wird die Zustandsinformation in der transportfähigen Zustandsstruktur zum Server zurückgebracht. Der Server extrahiert die Zustandsinformation aus der empfangenen transportfähigen Zustandsstruktur und lädt die Zustandsdaten in die entsprechenden Steuerobjekte innerhalb der Steuerobjekthierarchie, um jedes Steuerobjekt in seinen Zustand zurückzubringen, wie er vor einer vorhergehenden HTTP-Antwort existiert hat. Nachdem die aktuelle Anforderung verarbeitet ist, werden die Zustände von ein oder mehr serverseitigen Steuerobjekten erneut in der transportfähigen Zustandsstruktur durch die Sicherungs-Operation 616 abgespeichert, und die transportfähige Zustandsstruktur wird in der nächsten HTTP-Antwort zum Client zurückgebracht.
  • Als Ergebnis der Lade-Operation 606 wird jedes serverseitige Steuerobjekt in einen Zustand gebracht, der mit seinem Zustand vor einer vorhergehenden HTTP-Antwort übereinstimmt. Wenn beispielsweise ein Textbox-Steuerobjekt einen Merkmalswert aufweist, der gleich "JDOE" vor einer vorhergehenden HTTP-Antwort ist, bringt die Lade-Operation 606 dieses Steuerobjekt in seinen vorhergehenden Zustand zurück, und zwar zum Teil durch Laden der Textfolge "JDoe" in den Merkmalswert. Ob der Zustand eines gegebenen Objekts gespeichert und wieder hergestellt wird, ist außerdem konfigurierbar.
  • Um eine Ausführungsform der vorliegenden Erfindung zusammenzufassen: Der Zustand von ein oder mehr serverseitigen Steuerobjekten wird nach der Verarbeitung "gesichert". Die gesicherte Zustandsinformation wird in einer Antwort zum Client übermittelt. Der Client sendet in einer anschließenden Antwort die gesicherte Zustandsinformation zum Server zurück. Der Server lädt die Zustandsinformation einer frisch instanzierten serverseitigen Steuerobjekthierarchie, so daß der Zustand der Hierarchie in ihren vorhergehenden Zustand zurückgebracht wird.
  • Eine alternative Ausführungsform kann die Zustandsinformation am Server oder an einer anderen Weblokation aufrechterhalten, die für den Server während der Rundreise vom Server zum Client und dann zurück zum Server zugänglich ist. Nach Empfang der Anforderung vom Client durch den Server kann diese Zustandsinformation vom Server wieder abgerufen und in der Steuerobjekthierarchie in das entsprechende serverseitige Steuerobjekt bzw. die Steuerobjekte geladen werden.
  • In der Operation 608 werden von der HTTP-Anforderung empfangene Postback-Daten verabeitet. Postback-Daten können in die Nutzinformation der HTTP-Anforderung eingefügt sein in Schlüsselwert-Paaren, in einer hierarchischen Darstellung (z. B. CML) oder in anderen Datendarstellungen wie RDF ("Resource Description Framework"). Die Operation 608 zerlegt die Nutzinformation, um eine spezielle Kennung eines serverseitigen Steuerobjekts zu identifizieren. Wenn die Kennung (z. B. "page1:text1") gefunden ist und das erkannte serverseitige Steuerobjekt in der Steuerobjekthierarchie existiert, werden die entsprechenden Postback-Daten zum Steuerobjekt weitergeleitet. Unter Bezugnahme auf 1 werden beispielsweise eine spezielle Kennung, die der Textbox 106 zugeordnet ist, und der Text "JDoe" in die Nutzinformation der HTTP-Anforderung 114 an den Webserver 116 übermittelt. Die Operation 608 zerlegt die Nutzinformation der HTTP-Anforderung 114 und gewinnt die spezielle Kennung der Textbox 106 und ihren zugehörigen Wert (d. h. "JDoe"). Die Operation 608 wandelt dann die spezielle Kennung der Textbox 106 um, um das entsprechende serverseitige Steuerobjekt zu identifizieren, und leitet den "JDoe"-Wert zum Zielobjekt zum Zweck der Verarbeitung.
  • Wie in bezug auf die Lade-Operation 606 erörtert wird, können die Merkmalswerte der serverseitigen Steuerobjekte in ihre früheren Zustände zurückgebracht werden. Als Antwort auf den Empfang von Postback-Daten bestimmt das serverseitige Steuerobjekt, ob der eingeleitete Postback-Wert eine Änderung gegenüber dem vorhergehenden Wert des entsprechenden Merkmals bewirkt. Wenn ja, wird die Änderung in einer Änderungsliste protokolliert, um für das zugeordnete Steuerobjekt eine Datenänderung zu bezeichnen. Nachdem sämtliche Postback-Daten innerhalb der Steuerobjekthierarchie verarbeitet worden sind, kann eine Steuerobjektmethode aufgerufen werden, um ein oder mehr durch Postback-Daten geänderte Ereignisse zu ein oder mehr Nicht-Benutzeroberflächen-Serverkomponenten zu erhöhen, etwa eine Börsenkurs-Nachschlageanwendung, die auf dem Server läuft. Ein Beispiel für ein durch Postback-Daten geändertes Ereignis ist ein Ereignis, das anzeigt, daß Postback-Daten eine Änderung eines Merkmals eines serverseitigen Steuerobjekts bewirkt haben. Bei einer beispielhaften Ausführungsform kann ein solches Ereignis zu einer vom System bereitgestellten Ereignisschlange gesendet werden, so daß serverseitiger Code, der zum Verarbeiten des Ereignisses gespeichert sein kann, aufgerufen werden kann. Der serverseitige Code kann dann eine Methode der Nicht-Benutzeroberfläche-Serverkomponente aufrufen. Auf diese Weise kann eine serverseitige Nicht-Benutzeroberfläche-Serverkomponente auf Ereignisse ansprechen, die von einer Änderung in Daten eines serverseitigen Steuerobjekts ausgelöst wurden. Alternative Methoden zur Implementierung von Ereignissen sind im Umfang der vorliegenden Erfindung ebenfalls möglich, etwa die Verwendung von durch eine Anwendung bereitgestellten Ereignisschlangen, Abfragen und Verarbeitungsunterbrechungen.
  • In der Operation 610 werden Postback-Ereignisse gehandelt. Postback-Ereignisse können in der Nutzinformation der HTTP-Anforderung übermittelt werden. Die Operation 610 zerlegt ein bezeichnetes Ereignisziel (z. B. mit "_EVENTTARGET" bei einer Ausführungsform der vorliegenden Erfindung markiert) zur Identifizierung des serverseitigen Steuerobjekts, auf das sich das Ereignis richtet. Ferner zerlegt die Operation 610 die eventuell vorhandenen ermittelten Ereignisargumente und liefert das Ereignisargument (z. B. markiert mit "_EVENTARGUMENT" in einer Ausführungsform der vorliegenden Erfindung) an das angegebene serverseitige Steuerobjekt. Das Steuerobjekt hebt seine Ereignisse zur Verarbeitung durch serverseitigen Code an, der eine Methode einer Nicht-Benutzeroberfläche-Serverkomponente (z. B. einer serverseitigen Börsenkurs-Nachschlaganwendung) aufruft, die der Ressource mit dynamischem Inhalt zugeordnet ist.
  • Die Operation 612 löst Datenbindungsbeziehungen zwischen den serverseitigen Steuerobjekten und ein oder mehr Datenbanken, auf die der Server Zugriff hat, auf, wodurch in Steuerobjektmerkmalen Datenbankwerte aktualisiert werden und/oder Datenbankfelder mit Werten von Steuerobjektmerkmalen aktualisiert werden. Bei einer Ausführungsform der vorliegenden Erfindung können Merkmale von serverseitigen Steuerobjekten Merkmalen eines Vater-Datenbindungscontainers wie etwa einer Tabelle in einer serverseitigen Anwendungsdatenbank zugeordnet (oder datengebunden) werden. Während der Datenbindungsoperation 612 kann das Seitengerüst ein datengebundenes Steuerobjektmerkmal mit dem Wert des entsprechenden Merkmals des Vater-Datenbindungscontainers aktualisieren. Auf diese Weise reflektieren Benutzeroberflächenelemente auf der Webseite der nächsten Antwort exakt aktualisierte Merkmalswerte, weil die Steuerobjektmerkmale, denen die Benutzeroberflächenelemente entsprechen, während der Datenbindungsoperation 612 automatisch aktualisiert worden sind. Ebenso können Steuerobjektmerkmale zu den Vater-Datenbindungs-Containerfeldern aktualisiert werden, wodurch eine serverseitige Anwendungsdatenbank mit Postback-Eingaben von einem serverseitigen Steuerobjekt aktualisiert wird.
  • Die Operation 614 führt verschiedene Aktualisierungsoperationen aus, die ausgeführt werden können, bevor der Steuerobjektzustand gesichert und die Ausgabe erzeugt wird. Die Operation 616 fordert Zustandsinformationen (d. h. den Betrachtungszustand) von ein oder mehr Steuerobjekten in der Steuerobjekthierarchie an und speichert die Zustandsinformationen zur Einfügung in eine transportfähige Zustandsstruktur, die in der HTTP-Nutzantwort zum Client übermittelt wird. Beispielsweise kann ein "grid"-Steuerobjekt eine aktuelle Indexseite einer Liste von Werten sichern, so daß das "grid"-Steuerobjekt nach einer darauf folgenden HTTP-Anforderung (d. h. in der Operation 606) in diesen Zustand zurückgebracht werden kann. Wie oben beschrieben wird, repräsentiert die Betrachtungszustandsinformation den Zustand der Steuerobjekthierarchie vor allen folgenden Aktionen durch den Client. Wenn die Betrachtungszustandsinformation zurückgegeben wird, wird sie genutzt, um die Steuerobjekthierarchie in diesen vorhergehenden Zustand zu bringen, bevor irgendwelche clientseitigen Postback-Eingaben oder Datenbindungen verarbeitet werden.
  • Die Erzeugen-Operation 618 erzeugt die geeignete Autorensprache-Ausgabe (z. B. HTML-Daten) für die Übermittlung zum Client in einer HTTP-Antwort. Die Erzeugung erfolgt durch einen von oben nach unten verlaufenden hierarchischen Baumdurchlauf von allen serverseitigen Steuerobjekten und von eingebettetem Erzeugungscode. Die Operation 620 führt alle letzten Aufräumarbeiten durch (z. B. Schließen von Dateien oder Datenbankverbindungen), bevor die Steuerobjekthierarchie abgeschlossen wird. Die Verarbeitung springt dann zu Operation 602 zurück und läuft bis zu Operation 622, wo das Seitenobjekt durch Aufrufen seines Destruktors abgeschlossen wird.
  • 7 zeigt eine Darstellung einer beispielhaften serverseitigen Steuerklasse bei einer Ausführungsform der vorliegenden Erfindung. Die serverseitige Steuerklasse definiert die Methoden, Merkmale und Ereignisse, die allen serverseitigen Steuerobjekten einer Ausführungsform der vorliegenden Erfindung gemeinsam sind. Speziellere Steuerklassen (z. B. ein serverseitiges Tastensteuerobjekt, das einer clientseitigen Taste in einer Webseite entspricht) werden von der Steuerklasse abgeleitet. Eine dargestellte Steuerklasse 700 weist einen Speicher auf, in dem Merkmale 702 und Methoden 704 abgespeichert sind. Andere Ausführungsformen von Steuerklassen mit einer anderen Kombination von Datenelementen und Methoden liegen ebenfalls im Rahmen der vorliegenden Erfindung.
  • Bei der gezeigten Ausführungsform sind Merkmale 702 öffentlich. Das Merkmal "ID" ist ein lesbarer und schreibbarer String- bzw. Kettenwert, der eine Steuerobjektkennung bezeichnet. Das Merkmal "Visible" ist ein lesbarer und schreibbarer boolescher Wert, der angibt, ob die Autorensprache-Daten für ein entsprechendes clientseitiges Benutzeroberflächenelement erzeugt werden sollen. Das Merkmal "MaintainState" ist ein lesbarer und schreibbarer boolescher Wert, der angibt, ob das Steuerobjekt seinen Betrachtungszustand (und den Betrachtungszustand seiner Söhne) am Ende der aktuellen Seitenanforderung (d. h. als Antwort auf eine Sicherungsoperation 616 in 6) sichern soll. Das Merkmal "Parent" ist eine lesbare Referenz zu einem ControlContainer (siehe 8), der dem aktuellen Steuerobjekt in der Steuerobjekthierarchie zugeordnet ist. Das Merkmal "Page" ist eine lesbare Referenz zu dem Stammseitenobjekt, in dem das aktuelle Steuerobjekt beherbergt ist. Das Merkmal "Trace" ist eine lesbare Referenz, die es einem Entwickler erlaubt, ein Ablaufverfolgungsprotokoll zu schreiben. PropertyBindingContainer ist eine lesbare Referenz auf den unmittelbaren Datenbindungsbehälter des Steuerobjekts. Das Merkmal "Bindings" ist eine lesbare Referenz auf eine Sammlung der Datenbindungszuordnungen des Steuerobjekts.
  • Die Methoden 704 umfassen Methoden zum Verarbeiten von Anforderungen und zum Zugriff auf Datenelemente des Steuerobjekts. Bei einer Ausführungsform erfolgt Bezugnahme auf die Methoden durch Zeiger, die in dem Speicherplatz des Steuerobjekts abgespeichert sind. Diese Referenzeinrichtung wird auch bei Ausführungsformen von anderen serverseitigen Objekten angewandt, etwa einem Container-Steuerobjekt, einem Steuersammelobjekt und einem Seitenobjekt. Die Methode "Init
    Figure 00290001
    " dient dazu, Sohn-Steuerobjekte zu initialisieren, nachdem sie erzeugt worden sind (siehe Operation 604 von 6). Die Methode "Load
    Figure 00290002
    " dient dazu, die Betrachtungszustandsinformation aus einer vorhergehenden HTTP-Anforderung wieder herzustellen (siehe Operation 606 von 6). Die Methode "Save
    Figure 00290003
    " dient dazu, Betrachtungszustandsinformation zur Verwendung mit einer späteren HTTP-Anforderung zu sichern (siehe Operation 616 von 6). Die Methode "PreRender
    Figure 00290004
    " dient dazu, alle notwendigen Vor-Erzeugungsschritte vor der Sicherung des Betrachtungszustands und des Erzeugungsinhalts auszuführen (siehe Operation 614 von 6). Die Methode "Render (TextWriter output)" dient dazu, Autorensprache-Code für das Benutzeroberflächenelement auszugeben, das dem aktuellen Steuerobjekt entspricht (siehe Operation 618 von 6). Der Code wird durch den Ausgabestrom (der ihm im "output"-Parameter zugeführt wird) übermittelt, um den Code in der Antwort an den Client zu speichern. Die Methode "Dispose
    Figure 00290005
    " dient dazu, letzte Aufräumarbeiten auszuführen, bevor das Steuerobjekt beendet wird (siehe Operation 620 von 6).
  • Die Methode "GetUniqueID
    Figure 00300001
    " beschafft eine spezielle, hierarchisch qualifizierte Kettenkennung für das aktuelle Steuerobjekt. Die Methode "GetControlWithID(String id)" gibt eine Referenz zu einem unmittelbaren Sohn-Steuerobjekt mit der bereitgestellten Kennung ("id") zurück. Die Methode "GetControlWithUniqueID(String id)" gibt eine Referenz zu einem Sohn-Steuerobjekt zurück, das eine spezielle hierarchische Kennung ("id") hat.
  • Die Methode "PushControlPxopertyTwoBindingContainer (String prop Name)" dient dazu, einen Bindungsbehälter für die Zweiwege-Datenbindung von Postback-Daten zu aktualisieren, wenn sich der Postback-Datenwert innerhalb des serverseitigen Steuerobjekts ändert. Die Methode "PushBindingContainerPropertyTwoControl(String prop Name)" dient dazu, ein serverseitiges Steuerobjektmerkmal mit einem aktuellen Bindungsbehälterwert zu aktualisieren. Die Methode "HasBindings
    Figure 00300002
    " gibt einen booleschen Wert zurück, der bezeichnet, ob ein Steuerobjekt irgendwelche Bindungszuordnungen hat. Diese drei Funktionen werden verwendet, um Bindungsbeziehungen zwischen Merkmalen von serverseitigen Steuerobjekten und Attributen in serverseitigen Datenspeichern aufzulösen (siehe die Datenbindungsoperation 612 von 6).
  • 8 zeigt eine beispielhafte serverseitige ContainerControl-Klasse in einer Ausführungsform der vorliegenden Erfindung. Die ContainerControl-Klasse ermöglicht eine Implementierung, die verschachtelte Sohn-Steuerobjekte unterstützt und automatisch Betrachtungszustand-Information in eine transportfähige Zustandsstruktur serialisiert und deserialisiert. Eine ContainerControl-Klasse 800 weist einen Speicher auf, der Merkmale 802 und Methoden 804 speichert. Das Merkmal "Controls" ist eine lesbare Referenz zu einer "ControlCollection" der Sohn-Steuerobjekte in der Steuerobjekthierarchie (siehe 9). Das Merkmal "StateCollection" ist eine lesbare Referenz auf ein Lexikon von Betrachtungszustandsinformation, die dazu dient, den Zustand eines Steuerobjekts über eine Vielzahl von Seitenanforderungen aufrechtzuerhalten. Die Methode "HasControls
    Figure 00300003
    " gibt einen booleschen Wert zurück, der anzeigt, ob das Steuerobjekt irgendwelche Sohn-Steuerobjekte hat.
  • Bei einer alternativen Ausführungsform können die Elementmerkmale und Methoden der ContainerControl-Klasse 800 in die Control-Klasse 700 von 7 kombinatorisch eingebracht werden, so daß jedes Steuerobjekt imstande ist, in sich und von sich aus Söhne zu unterstützen. Wenn ein Steuerobjekt einer solchen Ausführungsform jedoch keine Sohn- Objekte aufweist, ist das Controls-Element (vom ControlCollection-Typ) leer (d. h. es hat keine Sohn-Objekte).
  • 9 zeigt eine beispielhafte serverseitige ControlCollection-Klasse in einer Ausführungsform der vorliegenden Erfindung. Eine ControlCollection-Klasse 900 umfaßt einen Speicher zum Speichern von Merkmalen 902 und Methoden 904. Das Merkmal "All" ist eine lesbare und schreibbare Schnappschußanordnung aller Sohn-Steuerobjekte des aktuellen Steuerobjekts, geordnet nach einem Index. Merkmal "this[index]" ist eine lesbare Referenz zu einem nach Ordnungszahlen indexierten Steuerobjekt innerhalb der Steuerkollektion. Das Merkmal "Count" ist ein lesbarer Wert, der die Anzahl von Sohn-Steuerobjekten in der Kollektion bezeichnet.
  • Die Methode "Add(Control child)" dient dazu, ein bestimmtes Steuerobjekt zu der aktuellen Kollektion zu addieren. Die Methode "IndexOf(Contxol child)" gibt den Ordnungszahlenindex des bestimmten Sohn-Steuerobjekts in die Kollektion zurück. Die Methode "GetEnumerator(boolAllowRemove)" gibt den Zähler aller Sohn-Steuerobjekte innerhalb der Kollektion zurück. Die Methode "Remove(Control value)" entfernt das bestimmte Steuerobjekt aus der aktuellen Kollektion. Die Methode "Remove(int index)" entfernt ein bestimmtes Steuerobjekt aus der aktuellen Sammlung auf der Basis des angegebenen Index. Die Methode "Clear
    Figure 00310001
    " entfernt sämtliche Steuerobjekte aus der aktuellen Kollektion.
  • 10 zeigt ein beispielhaftes serverseitiges Seiten- bzw. Page-Objekt bei einer Ausführungsform der vorliegenden Erfindung. Eine Seitengrundklasse definiert die Methoden, Merkmale und Ereignisse, die allen server-manipulierten Seiten innerhalb einer Ausführungsform der vorliegenden Erfindung gemeinsam sind. Ein Seitenobjekt 1000 weist einen Merkmale 1002 speichernden Speicher und Methoden 1004 auf. Das Merkmal "ErrorPage" ist eine lesbare und schreibbare Kette, die im Fall einer nichtgehandelten Seitenausnahme erzeugt wird. Auf diese Weise gibt ein Seitenobjekt eine lesbare Fehlerseite an den Client in einer HTTP-Antwort zurück. Das Merkmal "Requests" ist eine lesbare Referenz zu einem HTTPRequest, das von der Webserver-Grundstruktur geliefert wird und die Funktionalität für den Zugriff auf ankommende HTTP-Anforderungsdaten liefert. Das Merkmal "Response" ist eine lesbare Referenz zu einer HTTP-Antwort, die von der Webserver-Grundstruktur bereitgestellt wird und die Funktionalität zum Übertragen von HTTP-Antwortdaten zu einem Client bereitstellt. Das Merkmal "Application" ist eine lesbare Referenz zu einer HTTPApplication, die von der Webserver-Grundstruktur bereitgestellt wird. Das Merkmal "Session" ist eine lesbare Referenz zu einer HTTPSession, die von der Webserver-Grundstruktur bereitgestellt wird. Das Merkmal "Server" ist eine lesbare Referenz zu einem ServerObjekt, das ein seitenkompatibles Anwendungsserver-Nutzobjekt ist. Das Merkmal "Context" ist eine lesbare Referenz zu sämtlichen Webserver-Objekten, die von der Webserver-Grundstruktur bereitgestellt werden, was es einem Entwickler ermöglicht, Zugriff auf zusätzliche exponierte Fließband-Modul-Objekte zu erhalten. Das Merkmal "IsFirstLoad" ist ein lesbarer boolescher Wert, der angibt, ob das Seitenobjekt gerade erstmals oder als Antwort auf eine clientseitige Postback-Anforderung geladen wird und ob darauf zugegriffen wird.
  • Die Methode "Load
    Figure 00320001
    " dient dazu, das Seitenobjekt zu initialisieren und Betrachtungszustandsinformation von der vorhergehenden Seitenanforderung wiederherzustellen. Die Methode "Save
    Figure 00320002
    " dient dazu, Betrachtungsinformation zum Gebrauch mit einer späteren Seitenanforderung zu sichern. Die Methode "HandleErxor(Exception errorInfo)" dient dazu, einen nicht-gehandelten Fehler, der während einer Seitenausführung auftritt, zu handeln. In diesem Fall leitet die Grundklassen-Implementierung den Client zu einer URL-Adresse, die eine Standardfehler-Webseite hat, um. Die Methode "GetPostbackScript(Control target, String name, String arg)" bringt eine einem gegebenen Steuerobjekt zugeordnete clientseitige Scriptmethode zurück. Die Methode "RegisterClientScript-Block(String key, String script)" dient dazu, doppelte Blöcke von clientseitigem Scriptcode, der an den Client gesendet wird, zu eliminieren. Die Methode "IHTTPHandler.ProcessRequest(HTTPContextContext)" dient dazu, Webanforderungen zu verarbeiten. IHTTPHandler.ProcessRequest wird aufgerufen, um die Verarbeitung einer HTTP-Anforderung zu initiieren, die von einem Client empfangen wurde (siehe Operation 602 von 6). Die Methode "IHTTPHandler.IsReusable
    Figure 00320003
    " gibt an, ob ein Seitenobjekt erneut verwendet werden kann, um eine Vielzahl von Webanforderungen zu bedienen.
  • Die hier beschriebenen Ausführungsformen der Erfindung sind als logische Schritte in ein oder mehr Computersystemen implementiert. Die logischen Operationen der vorliegenden Erfindung sind implementiert (1) als eine Folge von prozessor-implementierten Schritten, die in ein oder mehr Computersystemen ausgeführt werden, und (2) als miteinander verbundene Maschinenmodule innerhalb von ein oder mehr Computersystemen. Die Implementierung ist eine Frage der Wahl und abhängig von den Leistungsanforderungen des die Erfindung implementierenden Computersystems. Daher werden die logischen Operationen, welche die Ausführungsformen der Erfindung bilden, hier unterschiedlich als Operationen, Schritte, Objekte oder Module bezeichnet.
  • Die vorstehende Beschreibung, die Beispiele und die Daten ergeben eine vollständige Beschreibung der Herstellung und des Gebrauchs des Aufbaus der Erfindung. Viele Ausfüh rungsformen der Erfindung können realisiert werden, ohne vom Umfang der Erfindung abzuweichen, wie er in den beigefügten Patentansprüchen definiert ist.

Claims (8)

  1. Verfahren zum serverseitigen Verarbeiten mindestens eines clientseitigen Benutzeroberflächenelements (106, 108, 110), das in eine Web-Seite (104) eingebaut ist, die auf einem Client (100) angezeigt wird, wobei das Verfahren die folgenden Schritte aufweist: Lesen (203) einer Vereinbarung von einer Resource (310; 400); Erzeugen (204) einer Vielzahl von gleichzeitig existierenden serverseitigen Steuerobjekten (318, 320, 322), die dem clientseitigen Benutzeroberflächenelement logisch entsprechen, auf der Basis der Vereinbarung; Verarbeiten (206) der clientseitigen Benutzeroberflächenelement-Ereignisse unter Verwendung der gleichzeitig existierenden serverseitigen Steuerobjekte; und Erzeugen (208) von Autorensprache-Daten aus den gleichzeitig existierenden serverseitigen Steuerobjekten, um das clientseitige Benutzeroberflächenelement im Anschluß an den Verarbeitungsvorgang in die Web-Seite einzubauen.
  2. Verfahren nach Anspruch 1, wobei der Vorgang des Erzeugens einer Vielzahl von gleichzeitig existierenden serverseitigen Steuerobjekten die folgenden Schritte aufweist: Erzeugen eines ersten serverseitigen Steuerobjekts, das einem ersten clientseitigen Benutzeroberflächenelement entspricht; und Erzeugen eines zweiten serverseitigen Steuerobjekts, das einem ersten clientseitigen Benutzeroberflächenelement entspricht, so dass das erste und das zweite serverseitige Steuerobjekt gleichzeitig existieren.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Verarbeitungsvorgang den folgenden Schritt aufweist: Aufrufen eines serverseitigen Ereignisses, das einem ersten serverseitigen Steuerobjekt zugeordnet ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Verarbeitungsvorgang ferner den folgenden Schritt aufweist: Bearbeiten des serverseitigen Ereignisses unter Verwendung eines zweiten serverseitigen Steuerobjekts.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der Verarbeitungsvorgang ferner den folgenden Schritt aufweist: Bearbeiten des serverseitigen Ereignisses unter Verwendung einer Nicht-Benutzeroberflächen-Serverkomponente.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Vorgang des Erzeugens einer Vielzahl von gleichzeitig existierenden serverseitigen Steuerobjekten die folgenden Schritte aufweist: Erzeugen eines ersten serverseitigen Steuerobjekts, das einem clientseitigen Benutzeroberflächenelement entspricht; und Erzeugen eines zweiten serverseitigen Steuerobjekts, das dem clientseitigen Benutzeroberflächenelement entspricht, so dass das erste und das zweite serverseitige Steuerobjekt gleichzeitig existieren.
  7. Computerdatensignal, das in einer Trägerwelle verkörpert ist, die mit einem Computersystem (500) lesbar ist und ein Computerprogramm codiert, das, wenn es auf dem Computersystem abläuft, sämtliche Schritte des Verfahrens von Anspruch 1 ausführt.
  8. Computerprogramm-Datenträger (516), der mit einem Computersystem (500) lesbar ist und ein Computerprogramm codiert, das, wenn es auf dem Computersystem abläuft, sämtliche Schritte des Verfahrens von Anspruch 1 ausführt.
DE60126016T 2000-05-18 2001-05-14 Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen Expired - Lifetime DE60126016T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US573769 2000-05-18
US09/573,769 US6961750B1 (en) 2000-05-18 2000-05-18 Server-side control objects for processing client-side user interface elements

Publications (2)

Publication Number Publication Date
DE60126016D1 DE60126016D1 (de) 2007-03-08
DE60126016T2 true DE60126016T2 (de) 2007-07-12

Family

ID=24293324

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60126016T Expired - Lifetime DE60126016T2 (de) 2000-05-18 2001-05-14 Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen

Country Status (7)

Country Link
US (2) US6961750B1 (de)
EP (1) EP1156415B1 (de)
JP (1) JP4015375B2 (de)
AT (1) ATE352061T1 (de)
DE (1) DE60126016T2 (de)
DK (1) DK1156415T3 (de)
ES (1) ES2280283T3 (de)

Families Citing this family (225)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437725B1 (en) * 1999-01-04 2008-10-14 General Electric Company Processing techniques for servers handling client/server traffic and communications
AU2001233141A1 (en) * 2000-02-04 2001-08-14 America Online Incorporated Methods and systems of automated client-server data validation
WO2001057663A2 (en) * 2000-02-04 2001-08-09 America Online Incorporated Optimized delivery of web application code
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US7788602B2 (en) * 2000-06-06 2010-08-31 Microsoft Corporation Method and system for providing restricted actions for recognized semantic categories
US7712024B2 (en) 2000-06-06 2010-05-04 Microsoft Corporation Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings
US7716163B2 (en) 2000-06-06 2010-05-11 Microsoft Corporation Method and system for defining semantic categories and actions
US7770102B1 (en) 2000-06-06 2010-08-03 Microsoft Corporation Method and system for semantically labeling strings and providing actions based on semantically labeled strings
US7089560B1 (en) * 2000-07-24 2006-08-08 Sun Microsystems, Inc. Architecture for building web applications
AU2001215798A1 (en) * 2000-10-31 2002-05-15 Netscape Communications Corporation Click-to-add, jot-it-down, and add banner
GB2372118A (en) * 2001-02-09 2002-08-14 Amino Holdings Ltd System commands carried in tags in markup language documents
US7778816B2 (en) * 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
US7685229B1 (en) 2001-05-15 2010-03-23 Adobe Systems Incorporated System and method for displaying server side code results in an application program
US7480910B1 (en) 2001-05-15 2009-01-20 Adobe Systems Incorporated System and method for providing information and associating information
US6915454B1 (en) * 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
EP1271877B1 (de) * 2001-06-22 2008-11-05 Microsoft Corporation Drahtloses Browser
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7017162B2 (en) 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7581231B2 (en) * 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
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
GB2378782B (en) * 2001-08-16 2005-04-13 Sun Microsystems Inc Message brokering
GB2378781B (en) * 2001-08-16 2005-06-01 Sun Microsystems Inc Message brokering
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
US7428725B2 (en) * 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US20030120722A1 (en) * 2001-12-20 2003-06-26 Forkner Damien R. Persistent process software architecture
GB2383505B (en) * 2001-12-21 2004-03-31 Searchspace Ltd System and method for monitoring usage patterns
US7107543B2 (en) * 2002-01-25 2006-09-12 Tibco Software Inc. Single applet to communicate with multiple HTML elements contained inside of multiple categories on a page
US7707496B1 (en) 2002-05-09 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings
US7707024B2 (en) * 2002-05-23 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting currency values based upon semantically labeled strings
US7742048B1 (en) 2002-05-23 2010-06-22 Microsoft Corporation Method, system, and apparatus for converting numbers based upon semantically labeled strings
US7281245B2 (en) * 2002-06-05 2007-10-09 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US7827546B1 (en) 2002-06-05 2010-11-02 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US7356537B2 (en) * 2002-06-06 2008-04-08 Microsoft Corporation Providing contextually sensitive tools and help content in computer-generated documents
US7716676B2 (en) 2002-06-25 2010-05-11 Microsoft Corporation System and method for issuing a message to a program
US7392479B2 (en) * 2002-06-27 2008-06-24 Microsoft Corporation System and method for providing namespace related information
US7209915B1 (en) 2002-06-28 2007-04-24 Microsoft Corporation Method, system and apparatus for routing a query to one or more providers
US8635254B2 (en) 2002-08-08 2014-01-21 Axeda Corporation Maintaining independent states for multiple web browser instances
JP2004164150A (ja) * 2002-11-12 2004-06-10 Yokogawa Electric Corp プラント運転支援装置
WO2004046894A2 (en) * 2002-11-19 2004-06-03 Nexaweb Technologies, Inc. System and method for stateful web-based computing
US20040103438A1 (en) * 2002-11-27 2004-05-27 Yong Yan Methods and systems for transferring events including multimedia data
US7392160B2 (en) * 2002-12-18 2008-06-24 Fortent Limited System and method for monitoring usage patterns
US7447747B2 (en) 2003-02-04 2008-11-04 Aol Llc Method for flexible, safe, robust, and efficient generation and serving of multi-source world-wide web content pages
US7783614B2 (en) 2003-02-13 2010-08-24 Microsoft Corporation Linking elements of a document to corresponding fields, queries and/or procedures in a database
US7814423B2 (en) * 2003-02-28 2010-10-12 Bea Systems, Inc. Method for providing a graphical user interface
EP1457882B1 (de) * 2003-03-13 2019-06-05 Sap Se Verfahren und Rechnersystem zur Ermöglichung von flexiblen Anfrage-Antwortzyklen
US7711550B1 (en) 2003-04-29 2010-05-04 Microsoft Corporation Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names
JP4097263B2 (ja) * 2003-06-11 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブアプリケーションモデル生成装置、ウェブアプリケーション生成支援方法及びプログラム
WO2004111843A1 (en) 2003-06-13 2004-12-23 Sap Ag A method of entering of data into a data processing system
US7739588B2 (en) 2003-06-27 2010-06-15 Microsoft Corporation Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data
US7765523B2 (en) * 2003-07-10 2010-07-27 Computer Associates Think, Inc. System and method for generating a web-enabled graphical user interface plug-in
US7761842B2 (en) * 2003-07-11 2010-07-20 Computer Associates Think, Inc. System and method for generating a graphical user interface (GUI) element
US20050010877A1 (en) * 2003-07-11 2005-01-13 Arthur Udler System and method for dynamic generation of a graphical user interface
US7200615B2 (en) * 2003-10-16 2007-04-03 Xerox Corporation Viewing tabular data on small handheld displays and mobile phones
US20050102611A1 (en) * 2003-11-06 2005-05-12 Danny Chen Process for creating dynamic web pages driven from the server side
US8407718B2 (en) 2003-12-23 2013-03-26 Corizon Limited Method and apparatus for composite user interface generation
US7383531B2 (en) * 2004-01-29 2008-06-03 Microsoft Corporation Extensible productivity tool for exposing common classes in application building
US20050182617A1 (en) * 2004-02-17 2005-08-18 Microsoft Corporation Methods and systems for providing automated actions on recognized text strings in a computer-generated document
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
US7849412B2 (en) * 2004-05-21 2010-12-07 Computer Associates Think, Inc. System and method for generating a web control in a Windows development environment
US8156448B2 (en) 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US20050289450A1 (en) * 2004-06-23 2005-12-29 Microsoft Corporation User interface virtualization
US20060069745A1 (en) * 2004-09-08 2006-03-30 International Business Machines Corporation Method, system and program product for identifying web page dependencies
US7250862B2 (en) * 2004-12-22 2007-07-31 Sap Aktiengesellschaft Dynamic display of RFID and sensor data
US20060224700A1 (en) * 2005-03-15 2006-10-05 Microsoft Corporation Multipart response generation
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
US8341536B2 (en) 2005-07-08 2012-12-25 International Business Machines Corporation Dynamic interface component control support
US8739020B2 (en) 2005-08-03 2014-05-27 Aol Inc. Enhanced favorites service for web browsers and web applications
US9268867B2 (en) * 2005-08-03 2016-02-23 Aol Inc. Enhanced favorites service for web browsers and web applications
US7831918B2 (en) * 2005-09-12 2010-11-09 Microsoft Corporation Content based user interface design
US7788590B2 (en) * 2005-09-26 2010-08-31 Microsoft Corporation Lightweight reference user interface
US7992085B2 (en) 2005-09-26 2011-08-02 Microsoft Corporation Lightweight reference user interface
US20070106946A1 (en) * 2005-11-07 2007-05-10 Philip Goetz Method and system for developing interactive Web applications in a unified framework
KR20070052645A (ko) * 2005-11-17 2007-05-22 삼성전자주식회사 사용자 인터페이스를 관리하는 장치 및 방법
US8327297B2 (en) * 2005-12-16 2012-12-04 Aol Inc. User interface system for handheld devices
US8812978B2 (en) * 2005-12-22 2014-08-19 Xerox Corporation System and method for dynamic zoom to view documents on small displays
US20070214408A1 (en) * 2006-03-07 2007-09-13 Optimus Corporation Declarative web application for search and retrieval
US7685367B2 (en) * 2006-03-08 2010-03-23 Microsoft Corporation Multi-cache cooperation for response output caching
US20070214210A1 (en) * 2006-03-10 2007-09-13 Mechov Chavdar B Display of web page code
US20070288644A1 (en) * 2006-06-07 2007-12-13 Cesar Augusto Rojas Systems and methods for developing and running applications in a web-based computing environment
US8639782B2 (en) * 2006-08-23 2014-01-28 Ebay, Inc. Method and system for sharing metadata between interfaces
US9201854B1 (en) 2006-10-25 2015-12-01 Hewlett-Packard Development Company, L.P. Methods and systems for creating, interacting with, and utilizing a superactive document
EP1939759A1 (de) * 2006-12-29 2008-07-02 Vodafone Holding GmbH Verfahren zur Bereitstellung von Inhalt für ein Mobilgerät, Gateway zur Bereitstellung von Inhalt und Mobilgerät
US8230052B2 (en) * 2007-02-14 2012-07-24 Microsoft Corporation Module diagnostic toolkit for client-server based protocols
US8065667B2 (en) * 2007-03-20 2011-11-22 Yahoo! Inc. Injecting content into third party documents for document processing
US8037039B2 (en) * 2007-04-20 2011-10-11 Microsoft Corporation Runtime class database operation
US8255883B2 (en) * 2007-04-20 2012-08-28 Microsoft Corporation Translating late bound LINQ expressions into database queries
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8805747B2 (en) 2007-12-07 2014-08-12 Z-Firm, LLC Securing shipment information accessed based on data encoded in machine-readable data blocks
US8818912B2 (en) 2007-12-07 2014-08-26 Z-Firm, LLC Methods and systems for supporting the production of shipping labels
US8527429B2 (en) 2007-12-07 2013-09-03 Z-Firm, LLC Shipment preparation using network resource identifiers in packing lists
US10417726B2 (en) * 2007-12-07 2019-09-17 The Descartes Systems Group Inc. Methods and systems for producing shipping labels
US8812409B2 (en) 2007-12-07 2014-08-19 Z-Firm, LLC Reducing payload size of machine-readable data blocks in shipment preparation packing lists
US8126821B2 (en) * 2008-01-04 2012-02-28 Z-Firm, LLC Methods and systems for supporting the production of shipping labels
US8521656B2 (en) 2007-12-07 2013-08-27 Z-Firm, LLC Systems and methods for providing extended shipping options
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) * 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8156243B2 (en) * 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8533293B1 (en) * 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US9063755B2 (en) * 2008-04-07 2015-06-23 Express Mobile, Inc. Systems and methods for presenting information on mobile devices
CA2720897C (en) 2008-04-28 2015-06-30 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8793339B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8793398B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US20110161440A1 (en) * 2008-11-03 2011-06-30 Livechime, Inc. System and method for enhancing digital content
EP2347337A4 (de) * 2008-11-03 2013-12-25 Livechime Inc System und verfahren zur erweiterung digitaler inhalte
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US10755287B2 (en) * 2008-11-25 2020-08-25 Microsoft Technology Licensing, Llc Selecting between client-side and server-side market detection
US9009662B2 (en) 2008-12-18 2015-04-14 Adobe Systems Incorporated Platform sensitive application characteristics
US9009661B2 (en) * 2008-12-18 2015-04-14 Adobe Systems Incorporated Platform sensitive application characteristics
US20100217642A1 (en) * 2009-02-26 2010-08-26 Jason Crubtree System and method for single-action energy resource scheduling and participation in energy-related securities
US20100217550A1 (en) * 2009-02-26 2010-08-26 Jason Crabtree System and method for electric grid utilization and optimization
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8108497B2 (en) * 2009-04-16 2012-01-31 Microsoft Corporation Selective enablement of runtime-based application behaviors
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
KR101632748B1 (ko) * 2009-09-24 2016-07-04 삼성전자주식회사 맞춤형 원격 사용자 인터페이스 페이지를 제공하기 위한 장치 및 방법
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US10176270B2 (en) * 2009-12-24 2019-01-08 International Business Machines Corporation Performance of template based javascript widgets
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8990499B2 (en) 2010-03-26 2015-03-24 Amazon Technologies, Inc. Caching of a site model in a hierarchical modeling system for network sites
US9356991B2 (en) 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US20120084638A1 (en) * 2010-09-30 2012-04-05 Salesforce.Com, Inc. Techniques content modification in an environment that supports dynamic content serving
US9223892B2 (en) 2010-09-30 2015-12-29 Salesforce.Com, Inc. Device abstraction for page generation
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8935360B2 (en) 2010-12-03 2015-01-13 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
EP2485457A1 (de) * 2011-02-04 2012-08-08 Siemens Aktiengesellschaft Verfahren zur Aufrechterhaltung einer Live-Internetsitzung in einer Internetanwendung
US9852401B2 (en) 2011-04-04 2017-12-26 Microsoft Technology Licensing, Llc Providing additional email content in an email client
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10534830B2 (en) 2011-06-23 2020-01-14 Microsoft Technology Licensing, Llc Dynamically updating a running page
US10540416B2 (en) 2011-06-23 2020-01-21 Microsoft Technology Licensing, Llc Linking source code to running element
US8396920B1 (en) * 2011-11-30 2013-03-12 Google Inc. Clean URLs in web applications
US9037636B2 (en) * 2012-01-19 2015-05-19 Microsoft Technology Licensing, Llc Managing script file dependencies and load times
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US20130227397A1 (en) * 2012-02-24 2013-08-29 Microsoft Corporation Forming an instrumented text source document for generating a live web page
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US20130290830A1 (en) * 2012-04-30 2013-10-31 Salesforce.Com, Inc. System and method for managing a viewstate of a web application
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9516088B2 (en) * 2012-08-29 2016-12-06 Ebay Inc. Systems and methods to consistently generate web content
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9747010B2 (en) 2014-01-16 2017-08-29 Xerox Corporation Electronic content visual comparison apparatus and method
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9946601B2 (en) 2015-05-21 2018-04-17 Red Hat, Inc. User interface state saving and restoration
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US20170126844A1 (en) * 2015-10-30 2017-05-04 Microsoft Technology Licensing, Llc Server architecture and protocol development
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
CN108647076B (zh) * 2018-05-14 2020-07-24 阿里巴巴集团控股有限公司 一种页面处理方法、装置及设备
CN110879757B (zh) * 2018-09-05 2024-02-27 广州弘度信息科技有限公司 客户端异常运行时的重启方法、装置和计算机设备
US11227252B1 (en) 2018-09-28 2022-01-18 The Descartes Systems Group Inc. Token-based transport rules
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11178221B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11489730B2 (en) 2018-12-18 2022-11-01 Storage Engine, Inc. Methods, apparatuses and systems for configuring a network environment for a server
US10887382B2 (en) 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10958720B2 (en) 2018-12-18 2021-03-23 Storage Engine, Inc. Methods, apparatuses and systems for cloud based disaster recovery
US10983886B2 (en) 2018-12-18 2021-04-20 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11252019B2 (en) 2018-12-18 2022-02-15 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11176002B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
CN110489695A (zh) * 2019-07-30 2019-11-22 广东分利宝金服科技有限公司 模块驱动视图数据的方法及装置
CN113010162B (zh) * 2021-03-02 2024-03-29 中国工商银行股份有限公司 一种页面构建方法、装置及设备
US11882173B1 (en) * 2022-09-12 2024-01-23 Sap Se Capture network communication via client extension

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517655A (en) 1991-04-26 1996-05-14 Hewlett-Packard Company Method for monitoring transactions in an object-oriented environment
US5812996A (en) 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5706505A (en) 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US5911068A (en) 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
US6651108B2 (en) * 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
EP0762273B1 (de) 1995-09-06 2002-05-15 Seiko Epson Corporation Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten
US5774670A (en) 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5928323A (en) 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5961601A (en) 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5835724A (en) 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6115744A (en) 1996-07-30 2000-09-05 Bea Systems, Inc. Client object API and gateway to enable OLTP via the internet
US5897622A (en) 1996-10-16 1999-04-27 Microsoft Corporation Electronic shopping and merchandising system
AU5355098A (en) 1996-11-14 1998-06-03 Alcatel Usa Sourcing, L.P. Generic software state machine and method of constructing dynamic objects for an application program
US5953524A (en) 1996-11-22 1999-09-14 Sybase, Inc. Development system with methods for runtime binding of user-defined classes
US5991802A (en) 1996-11-27 1999-11-23 Microsoft Corporation Method and system for invoking methods of objects over the internet
US6401099B1 (en) 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6032207A (en) 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
US5748890A (en) 1996-12-23 1998-05-05 U S West, Inc. Method and system for authenticating and auditing access by a user to non-natively secured applications
US6006230A (en) 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
US6212192B1 (en) 1997-03-14 2001-04-03 Itxc, Inc. Method and apparatus for synchronizing information browsing among multiple systems
US6253228B1 (en) 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US5983190A (en) 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
CA2210755C (en) 1997-07-17 2003-12-23 Ibm Canada Limited - Ibm Canada Limitee Creating proxies for distribution of beans and event objects
US5940075A (en) 1997-09-30 1999-08-17 Unisys Corp. Method for extending the hypertext markup language (HTML) to support enterprise application data binding
US6014666A (en) 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6460071B1 (en) 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6442619B1 (en) 1997-12-31 2002-08-27 Alcatel Usa Sourcing, L.P. Software architecture for message processing in a distributed architecture computing system
US6076108A (en) 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
EP1076871A1 (de) 1998-05-15 2001-02-21 Unicast Communications Corporation Verfahren zur implementation browser-initiierter und über das netzwerk verbreiteter werbung und zum zwischenzeitlichen anzeigen einer werbeanzeige
US6185608B1 (en) 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
US6373841B1 (en) 1998-06-22 2002-04-16 Agilent Technologies, Inc. Integrated LAN controller and web server chip
US6463442B1 (en) 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6205480B1 (en) 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6397253B1 (en) 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6460141B1 (en) 1998-10-28 2002-10-01 Rsa Security Inc. Security and access management system for web-enabled and non-web-enabled applications and content on a computer network
US8418131B2 (en) 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6351767B1 (en) 1999-01-25 2002-02-26 International Business Machines Corporation Method and system for automatically caching dynamic content based on a cacheability determination
US6591272B1 (en) 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6557038B1 (en) 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
DE19961683A1 (de) 1999-12-21 2001-06-28 Philips Corp Intellectual Pty Bauteil mit Dünnschichtschaltkreis
AU2001247789A1 (en) 2000-03-22 2001-10-03 Sidestep, Inc. Method and apparatus for dynamic information connection engine
US6622168B1 (en) 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US8010702B2 (en) 2001-06-14 2011-08-30 Nokia Corporation Feature-based device description and content annotation
US7162723B2 (en) 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
US6813641B2 (en) 2001-07-05 2004-11-02 Sun Microsystems, Inc. Teamware server working over HTTP/HTTPS connections
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

Also Published As

Publication number Publication date
ES2280283T3 (es) 2007-09-16
US6961750B1 (en) 2005-11-01
DK1156415T3 (da) 2007-04-10
DE60126016D1 (de) 2007-03-08
EP1156415B1 (de) 2007-01-17
ATE352061T1 (de) 2007-02-15
JP2002049484A (ja) 2002-02-15
JP4015375B2 (ja) 2007-11-28
EP1156415A3 (de) 2002-05-29
US20050050164A1 (en) 2005-03-03
EP1156415A2 (de) 2001-11-21
US7321918B2 (en) 2008-01-22

Similar Documents

Publication Publication Date Title
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE60224926T2 (de) Verfahren und Rechnersystem zur Behandlung von inkrementalen Daten in Klient-Server Kommunikation.
DE60121987T2 (de) Zugreifen auf Daten, die bei einer Zwischenstation gespeichert sind, von einem Dienst aus
DE60108158T2 (de) Onlineentwicklung von applikationen
DE69830285T2 (de) Auf Beans basiertes Verwaltungssystem
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE60218189T2 (de) Datenverarbeitungssystem und verfahren zum impliziten einreichen ungesicherter daten für eine world-wide-anwendung
DE10042601B4 (de) Sprache für XML-Server-Seiten
US7165073B2 (en) Dynamic, hierarchical data exchange system
DE69636887T2 (de) System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE69727381T2 (de) Verfahren zum transportieren von in einer schnittstellendefinitionssprache definierten datenstrukturen zwischen heterogenen systemen
DE60131683T2 (de) Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
US7013306B1 (en) XML input definition table for transforming XML data to internal format
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
DE60308489T2 (de) Anwendungsfensterschließung als Reaktion auf ein Ereignis in einem Parent-Fenster
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
US7158967B1 (en) XML output definition table for transferring internal data into XML document
DE112018005049T5 (de) Transformieren einer spezifikation in ein dauerhaftes computerprogramm
DE60001743T2 (de) Erweiterung der attribute eines anwendungsprogrammes hergestellt mit einem programmierwerkzeug der vierten generation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition