DE60006065T2 - Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten - Google Patents

Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten Download PDF

Info

Publication number
DE60006065T2
DE60006065T2 DE60006065T DE60006065T DE60006065T2 DE 60006065 T2 DE60006065 T2 DE 60006065T2 DE 60006065 T DE60006065 T DE 60006065T DE 60006065 T DE60006065 T DE 60006065T DE 60006065 T2 DE60006065 T2 DE 60006065T2
Authority
DE
Germany
Prior art keywords
website
computer
data
page
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60006065T
Other languages
English (en)
Other versions
DE60006065D1 (de
Inventor
Gillis E. Onyeabor
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.)
Onyeabor Gillis E Chandler
Original Assignee
Onyeabor Gillis E Chandler
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 Onyeabor Gillis E Chandler filed Critical Onyeabor Gillis E Chandler
Publication of DE60006065D1 publication Critical patent/DE60006065D1/de
Application granted granted Critical
Publication of DE60006065T2 publication Critical patent/DE60006065T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen Datenbankzugriff über das Internet und insbesondere Webseitenentwicklung, -verbreitung und -ausführung, die zu Datenbankzugriff und Datenverarbeitung über das Internet führt.
  • HINTERGRUND DER ERFINDUNG
  • Das World Wide Web, üblicherweise als "Web" bezeichnet, ist zu einer wertvollen Internetressource für Wirtschaft, Wissenschaft und individuelle Informationsbeschaffung und Werbung geworden. Individuen und Firmen erzeugen und posten gleichermaßen Webseiten, die alle Arten von Informationen enthalten. Die Dateien, die solche Webseiten definieren, werden in der Regel auf einem "Server"-Computer gespeichert, auf den von "Client"-Computern über das Internet oder irgendein anderes Netzwerk zugegriffen werden kann. Nachdem die Verbindung mit einem Server hergestellt wurde, kann ein Client-Computer auf eine Webseite zugreifen und diese unter Verwendung eines kommerziell erhältlichen Web-Browsers betrachten, wie Netscape Navigator und Microsoft Explorer.
  • Mit zunehmender Beliebtheit des Webs wurden die Webseiten immer komplizierter, und Unternehmen haben von Webseitenentwicklern die Bereitstellung immer höherer Informationsanzeigefähigkeiten verlangt. Eine derartige Fähigkeit, die zu einer hocherwünschten Web-Anwendung geworden ist, ist die Fähigkeit zum Zugriff auf und zur Verarbeitung von Daten aus der Ferne. Beispielsweise möchte eine Firma, dass ihr Verkaufspersonal auf die Datenbanken der Firma zugreifen kann, während sich dieses Verkaufspersonal im Außendienst befindet. Wie nachfolgend detailliert beschrieben ist, haben Systeme des Standes der Technik mit Internet-Datenbankanwendungen Probleme, insbesondere in den Bereichen Effizienz, Sicherheit, Statusmanagement und "Aktenkoffer" für Daten.
  • Eine "Datenbank" bezeichnet hier eine Informationssammlung, die in Tabellen organisiert und auf einem Server-Computer gespeichert oder einem Server-Computer über einen Datenbankmanager zugänglich ist. Eine "Tabelle" bezieht sich auf eine Datensammlung, die ähnliche Sachen zusammenfassend organisiert. In einer Firmendatenbank kann eine Tabelle beispielsweise Informationen über Angestellte enthalten, und eine andere Tabelle kann Informationen über Verkaufsaktivitäten enthalten. Jede Tabelle enthält Spalten und Zeilen. Zu Zwecken dieser Beschreibung definiert eine Spalte, welcher Informationstyp zusammengetragen wird (z.B. Name, Einstellungsdatum, Gehalt), und eine Zeile speichert diese Informationen (z.B. gibt es eine Zeile für jeden Verkaufsmitarbeiter). Eine Datenzeile wird hier auch als "Datensatz" bezeichnet, und eine Datenspalte wird hier als "Feld" bezeichnet. Eine "relationale Datenbank" ist eine Datenbank mit mehreren Tabellen, deren Datensätze durch Schlüssel miteinander verbunden sind.
  • In der frühen Geschichte des Webs wurde die HyperText Markup Language entwickelt, üblicherweise als "HTML" bezeichnet. HTML ist eine Sprache, die eine Webseite beschreibt, und ist durch praktisch alle kommerziell erhältlichen Web-Browser interpretierbar.
  • Ein Nachteil der Verwendung eines HTML-Dokuments für Datenbankzugriffanwendungen liegt darin, dass der Zugriff auf HTML-Dokumentenbasis sehr ineffizient ist. Falls ein HTML-Dokument zum Anzeigen von Informationen aus einer Datenbankabfrage verwendet wird, muss der Server jedes Mal, wenn der Benutzer einen anderen Satz von Daten anfordert, ein "Common Gateway Interface"- oder "CGI"-Skript aufrufen, das eine Interaktion mit dem Datenbankmanager durchführt, um die Daten zu erhalten. Danach muss der Server alle Informa tionen auf der Seite zu dem Browser senden. Selbst wenn sich die Informationen nur in einem einzigen Feld unterscheiden (d.h. dem Feld, das den neuen Satz von Daten enthält), müssen alle statischen und nicht geänderten Seiteninformationen ebenfalls heruntergeladen werden. Diese Einschränkung von HTML führt zu langsamem und ineffizientem Datenbankzugriff. Außerdem fügt das CGI-Skript eine Verarbeitungsschicht zwischen dem Server und der Datenbank hinzu, wodurch dem System eine Ineffizienzebene zugefügt wird.
  • Ein weiteres Problem bei der Verwendung reiner HTML-Dokumente für Datenbankanwendungen resultiert aus der interaktiven Natur dieser Anwendungen. Datenbankzugriff wird als interaktive Web-Anwendung angesehen, weil oft ein Client-Computer erforderlich ist, um viele Nachrichten mit einem Server auszutauschen. Dies trifft insbesondere dann zu, wenn ein Benutzer über eine Webseite auf eine große Zahl von Datensätzen in einer Datenbanktabelle zugreifen möchte.
  • HTML wurde vorwiegend als Sprache zum Ermöglichen von Textanzeigen entwickelt und ist für interaktive Anwendungen einschließlich Datenbankzugriff- und Datenverarbeitungsanwendungen nicht gut geeignet. Daher haben viele Webseiten einschließlich datenbankorientierter Webseiten ihren HTML-Dokumenten Java-, JavaScript- und ActiveX-Steuerelemente zugefügt, um bessere Interaktionsfähigkeiten zu liefern. Die Verwendung von Java-, JavaScript- und ActiveX-Steuerelemente führt leider zu ernsten Sicherheitsproblemen für die Integrität von Computern und Computernetzwerken.
  • Java ist eine Programmiersprache, die speziell zur Unterstützung der Entwicklung von Internetanwendungen angepasst ist. Java ermöglicht einem Anwendungs-Designer das Transportieren von Objekten über das Internet, wodurch Datenbankzugriff möglich wird. Während einer interaktiven Session mit einer Webseite arbeiten Java, JavaScript und ActiveX in der gleichen Weise. Der Kürze halber wird nur Java erörtert, obwohl die Java betreffenden Sicherheitsprobleme bei JavaScript und ActiveX in gleichem Maße vorhanden sind.
  • Ein Java-"Applet" ist ein Java-Programm, das speziell zum Einbau in ein HTML-Dokument vorgesehen ist. Statt den eigentlichen Applet-Code in ein HTML-Dokument einzuschließen, wird "konservierter" Applet-Code oft von einer anderen Stelle im Web heruntergeladen und dann auf dem Client-Gerät ausgeführt. Ein solches Applet wird generisch als "heruntergeladenes ausführbares Programm" bezeichnet. Um ein Applet herunterzuladen, schließt ein HTML-Dokument unter anderem die Uniform Resource Locator- oder "URL"-Adresse ein, die den Ort des Applets im Web bezeichnet. Ein HTML-Dokument könnte beispielsweise ein Applet mit dem Namen "Clock" aufrufen, das auf http://Java.sun.com/openstudio/index.html gespeichert ist. Während des Betriebs einer Webseite, die dieses Applet aufruft, wird kompilierter "Clock"-Applet-Code von "Java.sun.com" auf das Client-Gerät heruntergeladen. Der Browser des Clients führt das Applet dann auf dem Client-Gerät aus.
  • Ein enormes Problem, mit dem Webseitenbenutzer konfrontiert werden, sind die Sicherheitsrisiken, die dadurch erzeugt werden, dass die Ausführung herunterladbarer ausführbarer Programme auf dem Client-Gerät zugelassen wird. Das Java-Applet wird hier hauptsächlich angeklagt, obwohl es ähnliche Sicherheitsprobleme bei JavaScript und ActiveX gibt. Java-Applets, die von irgendwo heruntergeladen werden können, können "bösartigen" Code einschließen. Nach Ausführung des heruntergeladenen Applets kann ein solches Applet beispielsweise nicht autorisierte Dateiverarbeitungsschritte auf dem Client-Gerät durchführen.
  • Es sind mehrere Lösungen entwickelt worden, um mit der Gefahr durch bösartige Java-Applets umzugehen, bislang hat sich jedoch keine als effizient und narrensicher erwiesen. Beispielsweise hat FinJan Software das "SurfinShield Xtra"-Werkzeug entwickelt, das, wenn ein Browser versucht, ein Applet oder Steuerelement herunterzuladen, dieses in ähnlicher Weise wie ein Antivirenprogramm überprüft. Leider schließen viele Webseiten jedoch zahlreiche Applets ein, und der Überprüfungsvorgang kann die zum Herunterladen und Anzeigen einer Seite erforderliche Zeitdauer wesentlich erhöhen. Außerdem ist jedes Werkzeug vom Antivirentyp nur so gut wie der Einfaltsreichtum der Erzeuger von bösartigem Code zum Zeitpunkt der Freigabe des Antivirus-Werkzeugs. Es ist daher wahrscheinlich, dass ein Benutzer seine Software vom Antivirustyp auf regelmäßiger Basis aktualisieren müsste.
  • Microsoft hat in letzter Zeit eine ähnliche antivirusartige Lösung freigegeben, die als "Dynamisches HTML" oder "DHTML" bezeichnet wird, die ActiveX ersetzen soll. DHTML ist sicherer als ActiveX, weil es von dem Browser interpretiert wird, der den Code überschreiben und Verstöße gegen die Systemsicherheit verhindern kann. DHTML ermöglicht die Einführung dynamischer Effekte auf der Client-Seite mit geringerer Belastung des Webservers. Wie in einem Artikel von Rick Dobson mit dem Titel "Jump Starting Your Site with Dynamic HTML" in Web Techniques, Dezember 1997 (Band 2, Nr. 12), Seiten 34 bis 41 erörtert wird, ermöglicht DHTML Entwicklern die Erzeugung des Eindrucks eines dynamischen Gehalts, indem es neuen Text zeigt, der am Anfang nicht zu sehen ist. Auf diesen neuen Text wird durch ausgeblendeten Code zugegriffen, und dieser neue Text wird angezeigt, wenn der ausgeblendete Code ausgeführt wird, wenn eine spezielle Eingabe des Benutzers erhalten wird (z.B. ein Mausklick auf eine Webseitenkomponente). Der neue Text wird beim Client gespeichert, und daher muss der Web-Browser für den neuen Seitengehalt nicht auf den Server zugreifen. Obwohl diese Anwendung von DHTML die Verwendung herunterladbarer ausführbarer Programme (z.B. Java Applets oder ActiveX-Steuerelemente) vermeidet, ist sie in ihrem Umfang darauf begrenzt, lediglich auf mit dem ausgeblendeten Code verbundenen konservierten Text zuzugreifen und diesen anzuzeigen. Die Komplexizität, die mit dem Zugriff auf Daten in einer Datenbank verbunden ist, wird nicht angesprochen.
  • Wie bei HTML erfordern andere DHTML-Anwendungen, dass ein Server jedes Mal, wenn eine Aktualisierung der Seite angefordert wird, dynamisch eine Webseite erzeugt. Wenn ein Benutzer, der mit einer DTML-erzeugten Seite interagiert, beispielsweise ein neues Datenfragment in einem einzelnen Feld innerhalb der Seite anfordert, wird auf dem Server ein CGI-Skript aufgerufen, um die gesamte Seite neu zu erzeugen, selbst wenn sich nur ein Datenfragment geändert hat. DHTML kann somit einige Sicherheitsrisiken verringern, fordert von den Entwicklern jedoch die Erzeugung von CGI-Skripten auf der Serverseite, und DHTML hat auch Effizienzprobleme bei Verwendung in Datenbankanwendungen.
  • Neben den Sicherheitsrisiken, die mit der Verwendung herunterladbarer ausführbarer Programme in einem HTML-Dokument verbunden sind, liegt eine weitere Herausforderung bei der Bereitstellung von interaktivem Datenbankzugriff darin, dass die Natur der Web-Kommunikationen das Statusmanagement erschwert. "Statusmanagement" bezieht sich auf das Halten von Informationen, die den speziellen Status beschreiben, in dem sich ein Programm befindet. In einer Datenbankanwendung ermöglicht es Statusmanagement einem System, zu verfolgen, wer auf eine Datenbank zugreift, auf welche Datensätze ein Benutzer zugegriffen hat und welche Datensätze als nächstes drankommen. **
  • Zur Erörterung des internetbezogenen Statusmanagementproblems wird ein kurzes Internet-Datenzugriffsszenarium beschrieben. Wenn ein Client-Gerät eines Benutzers über eine Webseite Zugriff auf einen anfänglichen Satz von Daten anfordert, die einem fernen Server zugänglich sind, stellt der Client-Browser eine Verbindung mit dem fernen Server her, sendet eine Anforderung, empfängt die angeforderten Daten (falls sie verfügbar sind) und schließt die Verbindung. Wenn das Client-Gerät den nächsten Satz von Daten anfordert, muss der Browser die Verbindung mit dem fernen Server erneut herstellen und eine neue Anforderung senden. Der ferne Server sieht die Anforderung jedoch in einem leeren Raum und hat daher keine Vorstellung davon, dass der Client zuvor Datensätze angefordert hat, welche Datensätze der Client zuvor angefordert hat oder welche Datensätze die nächsten für diesen Client wären. Der Browser verfolgt die Statusinformationen ebenfalls nicht. Daher hielten Systeme des Standes der Technik keine Statusmanagementinformationen, oder sie führten Statusmanagement in einer ineffizienten Weise durch, indem sie für jeden Client in der Hoffnung, der Client würde zurückkommen, Ressourcen belegten. Der letztere Ansatz beansprucht viele Serverressourcen und begrenzt auch die Anzahl möglicher Benutzer.
  • Im lokalen Netz- (Local Area Network, "LAN")- und Fernnetz (Wide Area Network, "WAN")-Bereich bleibt eine persistente Verbindung zu dem Server erhalten, wodurch Zugriff und Statusmanagement serverseitig leichter zur Verfügung gestellt werden. Es besteht daher nie ein Zweifel, mit welcher Datenbanktabelle ein Benutzer verbunden ist, auf welchen Datensatz dieser Tabelle der Benutzer momentan zugreift, auf welchen Datensatz der Benutzer zuvor zugegriffen hat oder welcher Datensatz der nächste Datensatz ist. Im LAN/WAN-Bereich ist es einfach, Statusmanagement für einen oder mehrere simultane Benutzer zur Verfügung zu stellen. Eine persistente Verbindung wäre für Internetanwendungen jedoch ineffizient, weil zu viel Bandbreite und andere Systemressourcen verbraucht würden.
  • Weil Server des Standes der Technik nicht in der Lage waren, Statusinformationen zu halten, wurden mehrere Anwendungen erzeugt, um eine gewisse Ähnlichkeit mit Statusmanagement bereitzustellen, damit es einem Benutzer möglich war, Informationen innerhalb einer Datenbank im Browser durchzusehen. Ein derartiges Werkzeug ist "Intrabuilder" von Inprise Corporation (auch bekannt als Borland International). IntraBuilder ist ein Werkzeug, das auf dem Servergerät läuft. Wenn ein neuer Benutzer Zugriff auf eine Datenbank anfordert, erzeugt das IntraBuilder-Werkzeug einen "Agenten" für diesen Benutzer auf dem Server. Der Agent ist dafür verantwortlich, dass er weiß, mit welchem Benutzer er verbunden ist, und dass er für diesen Benutzer Statusmanagement liefert. Ein Nachteil dieses Agentenkonzepts liegt darin, dass es auf einem Server simultan Hunderte oder sogar Tausende von Agenten geben kann, die Zugriff auf eine oder mehrere besonders beliebte Datenbanken liefern. Die Anwesenheit einer erheblichen Anzahl von Agenten stellt für den Server eine Last dar und begrenzt die Fähigkeit des Servers, Datenbankzugriff zur Verfügung zu stellen.
  • Ein weiteres Problem, das ursprünglich bei dem IntraBuilder-Werkzeug auftrat, lag darin, dass der Browser Schwierigkeiten bei der Positionierung einer aktiven Seitenkomponente (d.h. eines Elements einer Webseite, das Daten einschließt) auf der richtigen Stelle der Seite hatte. Der Browser berechnete die Position der Komponente unabhängig. Die Browser-berechnete Position unterschied sich öfter von der erwünschten Position, als sie diese traf.
  • Zur Linderung dieses Problems änderte Netscape anscheinend seinen Browser, damit er die von der Serverseite kommenden Nachrichten erkennen konnte, wenn die Webseite gepostet wurde. Dies verbesserte die Fähigkeit des Netscape-Browsers, die Informationen relativ nahe an der erwünschten Position anzuordnen. Die Netscape-Änderung führte jedoch nicht zu einer optimalen Lösung, weil sie nur für eine Webseite mit einer relativ kleinen Anzahl von Komponenten (z.B. ungefähr 20) funktioniert. Viele Webseiten-Designer bauen zahlreiche Komponenten ein, mitunter Hunderte. Eine spezielle Datenbank kann beispielsweise sechzig oder mehr Felder aufweisen, die ein Designer gerne auf der Seite anzeigen lassen würde. Daher würde die Webseite sechzig oder mehr Komponenten erfordern. Der aktuelle Netscape-Browser wäre mit der Handhabung einer solchen Seite überfordert.
  • Ein weiteres Werkzeug, um Datenbankzugriff zur Verfügung zu stellen, ist "Emrys Visions" von Emrys Solutions, Inc. Das Emrys Visions-Werkzeug befindet sich auf dem Client-Gerät und läuft auf diesem. Das Emrys Visions-Werkzeug strebt auch die Lösung des Problems des Statusmanagements an, das dem "Übertragung durchführen"-"Unterbrechen"-Datenübertragungsprotokoll zu eigen ist, indem der Browser gezwungen wird, während der gesamten Session mit Datenbankzugriff des Browsers eine persistente Verbindung mit dem Server aufrechtzuerhalten. Obwohl dies das Halten des Statusmanagements ermöglicht, liegt ein Hauptnachteil der Emrys Visions-Lösung darin, dass der Client zum fortlaufenden Verbrauchen von Bandbreite sowohl auf der Client- als auch auf der Serverseite gezwungen wird. Wie bereits gesagt ist eine derartige persistente Verbindung für eine Internetanwendung unerwünscht, weil sie wesentlich mehr Bandbreite verbraucht, als möglicherweise erforderlich ist.
  • Ein weiterer Nachteil von Systemen des Standes der Technik ist, dass sie nicht in adäquater Weise die Fähigkeit mitbringen, Daten "in dem Aktenkoffer" zu halten. "In dem Aktenkoffer" bezieht sich auf die Möglichkeit eines Benutzers, Daten von einem Server auf sein Client-Gerät herunterzuladen, die Daten ohne Internetverbindung ("offline") zu bearbeiten, sich zu einem späteren Zeitpunkt wieder mit dem Server zu verbinden und seine Änderungen an die Datenbank zu posten. Dass der Aktenkoffer nicht möglich ist, hängt mit der Unfähigkeit zum adäquaten Halten von Statusinformationen zusammen. In Systemen des Standes der Technik wüsste der Server aufgrund des Fehlens von Statusmanagementfähigkeiten nicht, wie die Änderungen eines Benutzers mit vorhandenen Datensätzen oder mit Änderungen, die andere Benutzer gepostet haben, abzustimmen sind. Obwohl eine Lösung darin liegen könnte, einem Server oder Datenbankmanager das Setzen einer Sperre auf die Datensätze zu ermöglichen, damit andere Benutzer daran gehindert würden, Änderungen vorzunehmen, nachdem ein Benutzer diese, Datensätze heruntergeladen hat, wäre ein solcher Ansatz in einer Situation unpraktisch, in der viele Benutzer die Daten bearbeiten müssten.
  • Ein weiterer Nachteil von Systemen des Standes der Technik liegt darin, dass bei aktuellen Browsern ein Benutzer von Seite zu Seite springen kann, jedoch eine einzelne Instanz eines Browsers nicht mehrere Seiten simultan anzeigt. Wenn daher ein Benutzer mehrere Seiten simultan sehen möchte, muss der Benutzer eine weitere Instanz des Web-Browsers starten. Dies verbraucht weitere Ressourcen auf dem Client-Computer und kompliziert die Interaktion des Benutzers mit den Browsern. Es gibt zudem keine Mechanismen zum Verlinken der simultan angezeigten Seiten. Der Benutzer interagiert unabhängig mit jeder Seite.
  • Es wird ein Weg zu Zugriff auf Daten über das Internet benötigt, der effizient ist und Statusmanagement liefert, ohne unnötig Bandbreite oder andere Serverressourcen zu verbrauchen. Es wird des Weiteren ein Datenbankzugriffwerkzeug benötigt, das Sicherheitsrisiken beseitigt, die durch bösartigen Code entstehen, ohne die Herunterlade- und Anzeigeeffizienz herabzusetzen. Es wird des Weiteren ein Weg zur Bereitstellung von "Aktenkoffer"-Fähigkeit auf Internetbasis für Datenbankzugriff und -änderung gebraucht.
  • Ferner wird für Webseitenbenutzer ein Weg zum Betrachten und Interagieren mit mehreren Seiten gleichzeitig benötigt, der die Beziehungen der Datenbanktabellen sichtbar macht, ohne eine weitere Instanz des Web-Browsers zu starten.
  • KURZFASSUNG DER ERFINDUNG
  • Die obigen und andere Nachteile des Standes der Technik werden durch die Erfindung wie in den Ansprüchen definiert angesprochen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 illustriert ein vereinfachtes Hardware-Diagramm eines Systems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 2 illustriert eine Seiteneditoranzeige gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 3 illustriert ein Flussdiagramm eines Verfahrens zum Erzeugen und Verbreiten einer Webseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 4 illustriert eine beispielhafte Codeeditoranzeige gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 5 illustriert ein Flussdiagramm eines Verfahrens zum Hinzufügen einer Datenbankkomponente zu einer Webseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 6 illustriert ein vereinfachtes Hardwareblockdiagramm eines Webseitenentwicklungscomputers gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 7 illustriert ein Flussdiagramm eines Verfahrens zum Empfangen, Speichern und Ausliefern von Webseiten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 8 illustriert ein Flussdiagramm eines Verfahrens zum Kontrollieren des Zugriffs auf eine Webseite oder Daten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 9 illustriert ein vereinfachtes Hardwareblockdiagramm eines Computers auf der Serverseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 10 illustriert ein Flussdiagramm eines Verfahrens zum Anfordern, Empfangen und Anzeigen einer Webseite und/oder Daten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 11 illustriert ein Flussdiagramm eines Verfahrens zum Posten geänderter Daten an eine ferne Datenbank gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 12 illustriert ein vereinfachtes Hardwareblockdiagramm eines Computers auf der Clientseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 13 illustriert ein Flussdiagramm eines Verfahrens zum Verlinken von Daten auf mehreren Seiten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 14 illustriert eine beispielhaft verlinkte Webseitenanzeige gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 15 illustriert ein Flussdiagramm eines Verfahrens zum Rollen durch Daten, die zu verlinkten Seiten gehören, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Zusammengefasst liefern Ausführungsformen der vorliegenden Erfindung und der unabhängigen Ansprüche ein Webseitendokument, das dazu führt, dass ein Computer auf der Clientseite eine Webseite anzeigt, die dem Webseitendokument entspricht. Das Webseitendokument schließt Informationen beschreibende Komponenten, die auf der Webseite eingeschlossen sind, und ereignisgesteuerten Code ein, der zu einer oder mehreren der Komponenten gehört. Der ereignisgesteuerte Code wird durch den Computer auf der Clientseite ausgeführt, der die Webseite anzeigt, und der ereignisgesteuerte Code ist in der Lage, Zugriff auf und Verarbeitung von Daten in einer Datenbank anzufordern.
  • Ausführungsformen liefern auch eine Webseiten-Entwicklungsvorrichtung, die einen Prozessor einschließt, der ein Webseitenentwicklungswerkzeug initialisiert und ausführt. Das Webseitenentwicklungswerkzeug zeigt eine Webseite an, empfängt Benutzereingaben und baut ereignisgesteuerten Code wie oben beschrieben in das dazugehörige Webseitendokument ein. Ebenfalls bereitgestellt wird ein Server, der über ein Kommunikationsmittel eine Nachricht von einem Computer auf der Clientseite empfängt und eine Nachricht an diesen sendet. Die empfangene Nachricht schließt eine Informationsanforderung ein, die durch ereignisgesteuerten Code wie oben beschrieben erzeugt wird, der in ein Webseitendokument eingeschlossen ist, das durch den Computer auf der Clientseite ausgeführt wird. Ebenfalls bereitgestellt wird eine Client-Vorrichtung, die ein Webseitendokument einschließlich der Ausführung von ereignisgesteuertem Code wie oben beschrieben ausführt, der zu einer oder mehreren Webseitenkomponenten gehört, die in das Webseitendokument eingeschlossen sind.
  • Ausführungsformen der vorliegenden Erfindung liefern auch ein Verfahren zur Entwicklung von Webseiten, das das Hinzufügen von ereignisgesteuertem Code wie oben beschrieben zu einem Seitendokument einschließt. Es wird des Weiteren ein Verfahren zur Bereitstellung von Zugriff auf gespeicherte Informationen bereitgestellt, das das Empfangen einer Anforderung von einem Computer auf der Clientseite einschließt. Die Informationsanforderung wird in Reaktion auf die Ausführung von ereignisgesteuertem Code wie oben beschrieben durch den Computer auf der Clientseite erzeugt. Ausführungsformen liefern auch ein Verfahren zur Interaktion mit einer Webseite, die auf einem Computer auf der Clientseite angezeigt wird. Das Verfahren schließt das Anzeigen einer Webseite, die zu einem Webseitendokument gehört, wobei das Webseitendokument ereignisgesteuerten Code wie oben beschrieben einschließt, und das Ausführen des ereignisgesteuerten Codes ein.
  • Schließlich liefern Ausführungsformen der vorliegenden Erfindung ein System zum Entwickeln, Verbreiten, Herunterladen und Ausführen von Webseiten. Das System schließt einen Computer zur Webseitenentwicklung, einen Computer auf der Serverseite und einen Computer auf der Clientseite ein, die alle wie oben beschrieben sind.
  • Das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung liefern einen Weg zum Zugriff auf Daten über das Internet, während effizientes, akkurates Statusmanagement ohne unnötigen Verbrauch von Bandbreite oder anderen Serverressourcen bereitgestellt wird. Das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung liefern ferner einen Weg zur Bereitstellung einer "Aktenkoffer"-Fähigkeit für Datenbankzugriff und -verarbeitung auf Internetbasis. Das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung liefern ferner ein Datenbankzugriffwerkzeug, das Sicherheitsrisiken be seitigt, die durch bösartigen Code entstehen, ohne die Herunterlade- und Anzeigeeffizienz herabzusetzen.
  • In einer bevorzugten Ausführungsform schließt das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung ein Webseitenentwicklungswerkzeug ein, das es einem Entwickler ermöglicht, ein Webseitendokument zu erzeugen, das ausführbaren Code einschließt, wodurch die Notwendigkeit des Herunterladens von fremden ausführbaren Programmen während der Anzeige und Bearbeitung einer Seite wegfällt. Dies beseitigt praktisch das Risiko, dass bösartiger Code heruntergeladen wird und Schaden an dem Client-Gerät anrichten kann.
  • Die gemäß einer bevorzugten Ausführungsform der Erfindung entwickelten Seiten sind besonders geeignet zur Behandlung von Datenbankzugriff und -verarbeitung, teilweise weil das Client-Gerät die Statusmanagementaufgaben übernimmt. Dies verringert die Last des Servers, zahlreiche "Agenten" zu halten, und beseitigt auch die Notwendigkeit des Haltens einer persistenten Verbindung während der Datenbankzugriffsession des Benutzers. Schließlich ermöglicht es einem Benutzer, Daten leicht in einen "Aktenkoffer" zu packen, sie offline zu bearbeiten und die geänderten Daten zu einem späteren Zeitpunkt wieder mit den Datenbankeinträgen abzustimmen.
  • In einer bevorzugten Ausführungsform verwenden das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung eine geänderte Version einer allgemein bekannten objektorientierten Softwaresprache, um für eine sehr kurze Lernkurve und für die Wahrscheinlichkeit zu sorgen, dass die meisten Plattformen die Sprache unterstützen. In einer bevorzugten Ausführungsform ist die Sprache objektorientiertes Pascal mit einigen Erweiterungen, obwohl auch andere Sprachen verwendet werden können, beispielsweise C++.
  • Schließlich liefert eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung Verschlüsselung und Entschlüsselung, um die Sicherheit des Systems zu erhöhen. In einer bevorzugten Ausführungsform wird solche Verschlüsselung und Entschlüsselung mit Webseiten, Datenanforderungen und Datennachrichten durchgeführt.
  • 1 illustriert ein vereinfachtes Hardwarediagramm eines Systems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. System 100 schließt Webseitenentwicklungscomputer 110, Computer 140 auf der Serverseite und Computer 170 auf der Clientseite ein. Webseitenentwicklungscomputer 110 und Computer 170 auf der Clientseite sind über das Internet 102 mit dem Computer 140 auf der Serverseite verbunden gezeigt. In alternativen Ausführungsformen können das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung auch in einem System verwendet werden, bei dem einer oder beide Computer 110, 170 über ein LAN, WAN oder anderes Netzwerk oder andere Verbindung, wobei diese Verbindung elektronisch, optisch, drahtlos oder irgendeine Kombination davon sein kann, mit dem Computer 140 auf der Serverseite verbunden sind.
  • Webseitenentwicklungscomputer 110 und Computer 170 auf der Clientseite können dasselbe Gerät oder verschiedene Geräte sein. Weil die Funktionen von Webseitenentwicklung und Client verschieden sind, sind sie zur leichten Veranschaulichung als separate Computer gezeigt. Außerdem sind nur ein Webseitenentwicklungscomputer 110 und ein Computer 170 auf der Clientseite verbunden mit Computer 140 auf der Serverseite gezeigt. In einigen Fällen können wesentlich mehr als einer der Computer 110 und/oder 170 mit dem Computer 140 auf der Serverseite verbunden sein.
  • Es folgt eine kurze Erläuterung der Interaktion zwischen Computern 110, 140 und 170. Zuerst wird Webseitenentwicklungscomputer 110 von einem menschlichen Entwickler verwendet, um eine Webseite gemäß einer bevorzugten Ausführungsform zu erzeugen. In einer bevorzugten Ausführungsform verschlüsselt Webseitenentwicklungscomputer 110 dann die Seite, obwohl der Verschlüsselungsschritt nicht wesentlich ist. Webseitenentwicklungscomputer 110 sendet dann die Webseite an Computer 140 auf der Serverseite über das Internet oder irgendeine andere Verbindung. Wenn die Webseite von dem Computer 170 auf der Clientseite angefordert wird, sendet Computer 140 auf der Serverseite die Webseite an Computer 170 auf der Clientseite zu dessen Verwendung. Die Webseite kann dann Daten von dem Computer 140 auf der Serverseite anfordern. Die Webseite hält während der Datenbankinteraktionssession und möglicherweise darüber hinaus Statusinformationen.
  • In einer alternativen Ausführungsform können von Computer 110 erzeugte Webseiten in einer anderen Weise außer Senden der Informationen über eine physikalische Verbindung mit dem Server an den Server gesendet werden. Eine oder mehrere Webseiten können beispielsweise auf einer Diskette oder Platte oder anderem Speichermedium gespeichert sein, und die auf diesem Speichermedium gespeicherten Seiten können auf den Computer 140 auf der Serverseite geladen werden.
  • Die Funktionalität, das Verfahren und die detailliertere Vorrichtung, die zu dem Webseitenentwicklungscomputer 110 gehören, sind im Zusammenhang mit den 2 bis 6 beschrieben. Die Funktionalität, das Verfahren und die detailliertere Vorrichtung, die zu dem Computer 140 auf der Serverseite gehören, sind im Zusammenhang mit den 7 bis 9 beschrieben. Schließlich sind die Funktionalität, das Verfahren und die detailliertere Vorrichtung, die zu dem Computer 170 auf der Clientseite gehören, im Zusammenhang mit den 10 bis 15 beschrieben.
  • Um eine Webseite aufzubauen oder eine zuvor erzeugte Seite zu bearbeiten, ruft der Seitenentwickler über Webseitenentwicklungscomputer 110 ein Programm auf, das die nachfolgend beschriebenen Funktionen zur Verfügung stellt. Nachdem das Programm aufgerufen worden ist, zeigt es eine "Seiteneditoranzeige", die mehrere Felder einschließt, mit denen der Benutzer etwas tut, um eine Webseite zu erzeugen.
  • 2 illustriert eine Seiteneditoranzeige gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Die Seiteneditoranzeige 200 zeigt drei Felder 210, 220, 230. Seitenaufbaufeld 220 zeigt die Webseite, die gerade entworfen wird. Zum Erzeugen einer neuen Seite zeigt Seitenaufbaufeld 220 eine leere Seite. Der Seiten-Designer fügt dann der leeren Seite Komponenten hinzu, um eine neue Seite zu erzeugen. In einer bevorzugten Ausführungsform kann ein Designer unter Verwendung des Werkzeugs mehrere Seiten gleichzeitig bearbeiten. In einer bevorzugten Ausführungsform wird, wenn mehrere Seiten bearbeitet werden, die derzeit aktive Seite in Seitenaufbaufeld 220 gezeigt, und die anderen Seiten werden ausgeblendet. In einer alternativen Ausführungsform werden solche Seiten kaskadenartig in Seitenaufbaufeld 200 gezeigt.
  • Komponenteneigenschaftenfeld 230 schließt eine Liste von Eigenschaften ein, die eine spezielle Komponente aufweisen kann. In dem gezeigten Beispiel hat der Entwickler eine Bearbeitungsfeldkomponente 222 in Seitenaufbaufeld 220 gewählt. Die gewählte Komponente wird verwendet, um den "Vornamen" eines Angestellten anzuzeigen. Die speziellen Komponenteneigenschaften für eine solche Textkomponente sind in der linken Spalte des Komponenteneigenschaftenfelds 230 aufgeführt, und der Wert für jede Komponenteneigenschaft ist in der rechten Spalte aufgeführt. Komponenteneigenschaften können beispielsweise Komponentenpositionsinformationen, Größeninformationen, Farbe, Text charakteristika und andere relevante Eigenschaften einschließen. Am Anfang sind die Komponenteneigenschaften für den speziellen Komponententyp die Standardeigenschaften. Gewünschtenfalls kann der Entwickler die Einträge in der rechten Spalte des Komponenteneigenschaftenfelds 230 bearbeiten, um andere Werte der Komponenteneigenschaften für die gewählte Komponente anzugeben.
  • Symbolleistenfeld 210 schließt Symbole 212 ein, die dem Entwickler das Durchführen von Funktionen ermöglichen, wie unter anderem das Hinzufügen einer neuen Komponente zu einer Seite, das Bearbeiten von Quellcode oder Eigenschaften einer Komponente, das Verlinken einer Komponente mit einer Komponente auf derselben Seite oder einer anderen Seite und das Ausrichten von Komponenten.
  • In einer bevorzugten Ausführungsform erzeugt zum Hinzufügen einer Komponente zu einer Seite ein derartiges Symbol 212 ein Drop-down-Menü von Komponenten, die der Seite zugefügt werden können (z.B. durch Ziehen). Diese auswählbaren Komponenten können beispielsweise eine Schaltfläche, ein Bearbeitungsfeld zur Texteingabe, eine Beschriftung, ein Bild, ein Audiosymbol, ein Datenanzeigefeld, ein Menü, eine Fensterfläche (Panel) und einen Hyperlink einschließen, obwohl auch mehr, weniger oder verschiedene Komponenten auswählbar sein können. Das Hinzufügen von Komponenten ist detailliert im Zusammenhang mit 3, Schritte 320 bis 324 beschrieben.
  • In einer bevorzugten Ausführungsform kann der Entwickler einer Seite sowohl sichtbare als auch ausgeblendete Komponenten zufügen. Eine sichtbare Komponente kann beispielsweise eine Schaltfläche oder ein Bild sein, mit dem ein Benutzer eine Interaktion durchführen kann oder nicht. Eine ausgeblendete Komponente ist für den Benutzer beispielsweise möglicherweise nicht sichtbar, kann jedoch ausführbaren Code initiieren, falls irgendein Ereignis statt findet. Eine ausgeblendete Komponente kann beispielsweise eine Komponente sein, die es einer Webseite ermöglicht, ihre Anzeigeauflösung automatisch zu vergrößern oder zu verkleinern, was davon abhängt, welche Auflösung der Bildschirm hat, auf dem die Seite gezeigt werden soll. Solcher Code kann aufgerufen werden, wenn das Webseitendokument von dem Client-Computer empfangen worden ist. Der Code ermittelt die Auflösung des Computerbildschirms, und falls er nicht der aktuellen Auflösung der Webseite entspricht, wird der Code die Anzahl der Pixel und die erforderliche Auflösung malnehmen oder teilen, damit die Webseite auf dem Client-Gerät in der richtigen Auflösung angezeigt werden kann.
  • In einer bevorzugten Ausführungsform kann ein Entwickler auch kundenspezifisch entwickelte Komponenten einschließen, die momentan im Stand der Technik nicht zur Verfügung stehen. Beispielsweise ist in einer bevorzugten Ausführungsform eine neue Komponente, die in eine Seite eingeschlossen werden kann, eine "Berichtgenerator"-Komponente. Eine Berichtgeneratorkomponente kann in Form einer Schaltfläche erscheinen, die beispielsweise ein Entwickler einer Webseite zufügt. Wenn ein Benutzer auf die Berichtgeneratorkomponente klickt, kann die Seite Code ausführen, der Daten und Informationen aus der Webseite herausfiltert, diese Daten in eine Berichtdokumentenvorlage hineinformatiert und ein Berichtdokument erzeugt, das der Benutzer dann speichern, betrachten und/oder drucken kann. In einer bevorzugten Ausführungsform wird die Berichtdokumentenvorlage durch den Entwickler definiert, wenn die Webseite entwickelt wird. In einer alternativen Ausführungsform kann eine Standarddokumentenvorlage verwendet werden. In einer weiteren alternativen Ausführungsform kann der Benutzer das Format des Berichts zu dem Zeitpunkt angeben, zu dem der Benutzer den Bericht anfordert. Die "Berichtgenerator"-Komponente liefert einen klaren Vorteil gegenüber Verfahren des Standes der Technik, die einen Bildschirmauszug einer Webseite liefern können, jedoch Informationen auf der Seite nicht sauber zu einem gut formatierten Bericht oder anderen Dokument formatieren können. Das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung ermöglichen dem Benutzer das Erzeugen eines solchen gut formatierten Berichts oder anderen Dokuments aus einer Webseite.
  • Wiederum in Bezug auf 2 kann ein weiteres Symbol 212 das Werkzeug dazu bringen, einen Codeeditorbildschirm aufzurufen, der es einem Entwickler ermöglicht, Code einer speziellen Komponente zuzuordnen und zu spezifizieren, welche Ereignisse dazu führen, dass dieser Code ausgeführt wird. Wenn beispielsweise eine spezielle Schaltflächenkomponente "angeklickt" wird, möchte ein Entwickler möglicherweise bestimmten Code ausgeführt haben, der dazu führt, dass ein nächster Datensatz aus der Datenbank angefordert wird. Der Seitenentwickler kann den Codeeditorbildschirm verwenden, um für diese Schaltflächenkomponente anzugeben, dass nach dem Ereignis "geklickt" Code ausgeführt wird, der dazu führt, dass der nächste Datensatz angefordert wird. Der Codeeditorbildschirm wird detailliert im Zusammenhang mit 4 erörtert, und der Prozess des Bearbeitens von Code ist detailliert im Zusammenhang mit 3 in Schritten 340 bis 344 erörtert. In einer bevorzugten Ausführungsform verwendet der Codeeditor eine objektorientierte Sprache wie Pascal, vorzugsweise mit einigen Erweiterungen. In alternativen Ausführungsformen können andere Sprachen verwendet werden, beispielsweise C++.
  • Ein weiteres Symbol 212 kann ermöglichen, dass Komponenten auf derselben Seite oder auf unterschiedlichen Seiten verlinkt werden. Wenn zwei Komponenten gemäß einer bevorzugten Ausführungsform verlinkt werden, kann ein Benutzer in einer ersten Komponente durch Daten rollen, und die zweite Komponente aktualisiert sich automatisch, um ent sprechende Informationen zu zeigen. Das Verlinken von Komponenten ist detailliert im Zusammenhang mit 3, Schritten 330 bis 336 beschrieben.
  • Nachdem ein Entwickler alle erwünschten Komponenten auf der Seite ausgewählt und positioniert hat, zeigt der Entwickler, dass er fertig ist, und das Webseitenentwicklungswerkzeug verlinkt die Komponenten in der Seite, kompiliert die Seite und speichert die Seite im Speicher. Die Webseite kann dann bearbeitet werden, indem das Seitenentwicklungswerkzeug erneut aufgerufen wird, oder die Seite kann verbreitet werden, wie detailliert im Zusammenhang mit 7 erörtert wird.
  • 3 illustriert ein Flussdiagramm eines Verfahrens zum Erzeugen und Verbreiten einer Webseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. In einer bevorzugten Ausführungsform wird das Verfahren auf einem Computer durchgeführt, wie einem Webseitenentwicklungscomputer 110, 1.
  • Das Verfahren beginnt, indem der Schritt 301 des Initialisierens des Seitenentwicklungswerkzeugs durchgeführt wird. Wie zuvor beschrieben initialisiert ein Entwickler das Seitenentwicklungswerkzeug, wenn er eine neue Seite erzeugen möchte oder eine zuvor erzeugte Seite bearbeiten möchte. Nach Erhalt des Initialisierungsbefehls ruft Computer 110 den ausführbaren Code des Werkzeugs aus dem Speicher ab und initialisiert die Ausführung des Codes. In einer bevorzugten Ausführungsform zeigt das Werkzeug eine Seiteneditoranzeige (z.B. Anzeige 200, 2) und lässt den Entwickler in Schritt 302 wählen, ob eine neue Anwendung gestartet oder eine zuvor erzeugte Anwendung geöffnet werden soll. In einer bevorzugten Ausführungsform sollte diese Option als auswählbarer Menüpunkt gegeben werden. In einer alternativen Ausführungsform kann die Option über eine Eingabeaufforderung (Prompt) aus dem Werkzeug gegeben werden.
  • Alle Webseiten werden als Teil eines Anwendungskonzepts erzeugt, wobei jedes Anwendungskonzept durch eine Anwendungsdatei wiedergegeben wird, die Informationen über eine oder mehrere Webseitendateien in sich gruppieren kann. Informationen über eine zuvor erzeugte Seitendatei liegen demnach in einer zuvor erzeugten Anwendungsdatei vor. Wenn ein Entwickler eine neue Seite erzeugen möchte, muss der Entwickler die neue Seitendatei einer zuvor erzeugten Anwendungsdatei zuordnen, oder der Entwickler muss eine neue Anwendungsdatei starten.
  • Wenn der Entwickler in Schritt 302 angibt, dass er eine vorhandene Anwendung öffnen möchte, wird in Schritt 303 die vorhandene Anwendungsdatei geöffnet, und die Hauptseitendatei dieser Anwendung wird in Schritt 310 automatisch abgerufen. Schritte 310 bis 312 werden nachfolgend detaillierter beschrieben.
  • Wenn der Entwickler in Schritt 302 angibt, dass er eine neue Anwendung starten möchte, wird in Schritt 304 eine neue Anwendungsdatei gestartet. Die neue Anwendungsdatei kann dann als Transportmittel zum Speichern von Informationen über Webseiten verwendet werden. Nach Schritt 304 kann der Entwickler mittels des Werkzeugs in Schritt 305 wählen, ob eine neue Seite erzeugt oder eine zuvor bearbeitete Seite bearbeitet werden soll. In einer bevorzugten Ausführungsform kann diese Option als auswählbarer Menüpunkt gegeben werden. In einer alternativen Ausführungsform kann die Option von dem Werkzeug über einen Prompt gegeben werden. In einigen Fallen mag es einem Entwickler möglich sein, eine Webseitendatei direkt zu öffnen, ohne zuerst deren zugehörige Anwendungsdatei zu öffnen.
  • Wenn in Schritt 305 bestimmt wurde, dass der Entwickler eine neue Seite erzeugen möchte, zeigt das Werkzeug in Schritt 306 eine leere Seite, Symbolleistenfeld und Komponenteneigenschaftenfeld auf dem Monitor des Entwicklers. In Schritt 308 erzeugt das Werkzeug auch ein "Seitendokument" ähnlich einem HTML-Dokument, das das Werkzeug bearbeitet, wenn der Entwickler die Seite bearbeitet. Anfangs ist das Seitendokument strukturiert, als wenn es eine leere Webseite beschreibt.
  • Wenn in Schritt 305 bestimmt wurde, dass der Entwickler eine zuvor erzeugte Seite bearbeiten möchte, ruft das Werkzeug in Schritt 310 eine Kopie des dazugehörigen Seitendokuments aus dem Speicher ab und zeigt die Seite in Schritt 312 zusammen mit dem Symbolleistenfeld und dem Komponenteneigenschaftsfeld.
  • Das Werkzeug wartet dann in Schritt 314 auf weitere Eingaben des Entwicklers. Nachdem die Eingaben des Entwicklers empfangen worden sind, wird in Schritt 316 bestimmt, welcher Typ von Eingabe von dem Entwickler empfangen worden ist. In einer bevorzugten Ausführungsform sind die folgenden Typen von Eingaben des Entwicklers möglich: 1) eine neue Komponente ist der Seite zugefügt worden, oder 2) der Entwickler möchte Komponenten verlinken, oder 3) der Entwickler möchte den Komponentencode bearbeiten oder 4) der Entwickler möchte eine Komponente löschen, oder 5) der Entwickler möchte eine Komponenteneigenschaft bearbeiten, oder 6) der Entwickler möchte die Seite speichern und verlassen, oder 7) der Entwickler möchte die Seite verlassen, ohne sie zu speichern, oder 8) der Entwickler möchte in eine neue oder vorhandene Anwendung hineingehen. Jede der Entwicklereingaben ist nachfolgend beschrieben. Zur leichten Darstellung schließt das Flussdiagramm nur Schritte und Entscheidungen ein, die für das Erzeugen, Kompilieren und Speichern einer Webseite von Bedeutung sind. Es sind nicht alle möglichen Entwicklereingaben ein geschlossen. In alternativen Ausführungsformen sind zusätzliche oder andere Entwicklereingaben möglich.
  • 1. Zufügen einer neuer Komponente
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler eine neue Komponente auf der Seite positioniert hat (z.B. unter Verwendung eines Drop-down-Menüs aus Symbolen 212, 2), positioniert das Werkzeug die gewählte Komponente in Schritt 320 auf der Seite und ruft in Schritt 322 den dazugehörigen Standardcode für diese Komponente ab. Der Komponentencode ist in der Funktion einem heruntergeladenen ausführbaren Programm (z.B. einem Java-Applet) ähnlich, außer dass der Komponentencode schließlich erfindungsgemäß als Teil der Webseite kompiliert wird, statt dass während der Laufzeit über das Internet darauf zugegriffen werden muss, wie es bei einem herunterladbaren ausführbaren Programm der Fall wäre. Der Einbau des Komponentencodes in die Webseite beseitigt das Risiko, dass für diese Komponente bösartiger Code heruntergeladen und ausgeführt wird.
  • Der Standardcode wird in Schritt 324 in das Seitendokument eingebaut, einschließlich aller Informationen, die für Typ, Position und andere Eigenschaften der Komponente von Bedeutung sind. In einer bevorzugten Ausführungsform wird die Position der Komponente durch die Stelle bestimmt, zu der der Entwickler die Komponente gezogen und an der er sie fallengelassen hat, oder durch eine Position, die der Entwickler im Komponenteneigenschaftenfeld (2, Feld 230) angibt. In einer alternativen Ausführungsform kann die Komponentenposition eine Standardposition sein, die der Entwickler nachfolgend über das Komponenteneigenschaftenfeld oder unter Verwendung der Maus ändern kann.
  • Wie zuvor erörtert wurde, können einer Webseite eine Reihe unterschiedlicher Komponententypen zugefügt werden. Weil das Zufügen einer Datenkomponente mehrere wichtige Details einschließt, wird das Zufügen einer Datenkomponente detailliert im Zusammenhang mit 5 erörtert. Nach Schritt 324 kehrt das Verfahren dann zu Schritt 314 zurück, um auf weitere Entwicklereingabe zu warten.
  • 2. Verlinkungskomponenten
  • Wenn zwei Komponenten gemäß einer bevorzugten Ausführungsform verlinkt werden, kann ein Entwickler in einer ersten Seite durch Daten rollen und auf einer zweiten Seite angezeigte Daten aktualisieren sich automatisch, um entsprechende Informationen zu zeigen. Für die Zwecke dieser Beschreibung sind Komponenten zwischen Seiten verlinkt, obwohl Komponenten ebenso innerhalb derselben Seite verlinkt sein können.
  • Die Verlinkungsfähigkeit des Webentwicklungswerkzeugs ist zum Verlinken von Datenkomponenten gut geeignet. In alternativen Ausführungsformen kann die Verlinkungsfähigkeit verwendet werden, um andere Typen von Komponenten zu verlinken. Im Datenbereich kann die Verlinkungsfähigkeit beispielsweise verwendet werden, um ein oder mehrere Felder innerhalb einer Tabelle mit einem anderen, jedoch entsprechenden Satz von Feldern innerhalb einer anderen Tabelle in einer relationalen Datenbank zu verlinken. Alternativ kann die Verlinkungsfähigkeit verwendet werden, um Felder innerhalb derselben Tabelle zu verlinken.
  • Ein Entwickler kann beispielsweise wünschen, dass eine erste Seite Datenkomponenten einschließt, die Kunden-ID-Nummer, Adresse und Telefonnummer aus einer "Kundeninformation"-Tabelle einer relationalen Datenbank angeben. Der Entwickler möchte möglicherweise auch eine zweite Seite entwerfen, die eine Datenkomponente einschließt, die die vorhergehenden Aufträge des Kunden einschließt, wobei solche Informationen in der "Auftragsinformation"-Tabelle derselben oder einer anderen relationalen Datenbank gespeichert sind. Unter Verwendung des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung kann der Entwickler die Kunden-ID-Nummer-Komponente der ersten Seite mit der Komponente der vorhergehenden Aufträge auf der zweiten Seite verlinken. Wenn ein Benutzer der ersten und zweiten Seiten dann durch Kunden-ID-Nummern auf der ersten Seite rollt, erscheint die Auftragsinformation für jeden dazugehörigen Kunden automatisch auf der zweiten Seite. Ein ähnliches Verlinkungsbeispiel ist detaillierter im Zusammenhang mit den 13 bis 15 beschrieben.
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler zwei Komponenten verlinken möchte, identifiziert der Entwickler in Schritt 330, welche Komponenten zu verlinken sind. Die Identifizierung der verlinkten Komponenten kann durch einen oder mehrere Prompts des Webentwicklungswerkzeugs erfolgen, oder kann durch den Entwickler durchgeführt werden, der die Komponenten auswählt, die er verlinken möchte, und dann auf ein "Komponenten verlinken"-Symbol klickt (z.B. Symbol 212, 2).
  • In einer bevorzugten Ausführungsform wird der Entwickler gebeten, eine "Master"-Seite und eine "Detail"-Seite anzugeben. In einer alternativen Ausführungsform können die Identität der Master- oder Detailseiten Standardwerte sein (z.B. kann die erste gewählte Komponente die Masterseite definieren). Eine Masterseite ist die Seite, die die "Master"-Informationen anzeigt, mit denen die "Detail"-Informationen auf der Detailseite verlinkt sind. Die Masterseite oder die Detailseite oder beide schließen Code ein, der für die zu der Masterseite gehörenden Daten und die zu der Detailseite gehörenden Daten eine Datenanforderung für den Server formuliert und sendet. Unter Verwendung des obigen Beispiels würde, wenn die Masterseite die Seite mit der Kunden-ID-Nummer-Komponente (d.h. die "Master"-Information) wäre und die Kunden-ID-Nummer mit einem Datenfeld der vorhergehenden Aufträge auf der Detailseite (d.h. die "Detail"-Information) verlinkt wäre, der zu entweder der Masterseite oder der Detailseite gehörende Code während des Betriebs die nächste Kunden-ID-Nummer und die Daten über vorhergehende Aufträge anfordern, wenn sowohl die Master- als auch die Detailseite geöffnet sind. wenn die Masterseite die Daten anfordert, würde der Masterseitencode, nachdem er die nächste Kunden-ID-Nummer und die vorhergehenden Aufträge dieses Kunden erhalten hat, die Daten über vorhergehende Aufträge an die Detailseite "senden". Falls die Detailseite die Daten anfordert, würde der Detailseitencode dann, nachdem er die nächste Kunden-ID-Nummer und die vorhergehenden Aufträge dieses Kunden erhalten hat, die nächste Kunden-ID-Nummer an die Masterseite "senden". In einer alternativen Ausführungsform können beide Seiten Code einschließen, der separat die zu jeder verlinkten Komponente gehörenden Daten anfordert.
  • Nachdem die Master- und Detailseiten identifiziert sind, wird in Schritt 334 Verlinkungscode erzeugt. Während des Betriebs ermöglicht Verlinkungscode es einer Seite, eine Anforderung von Daten zu formulieren, die die Felder identifiziert, die auf der Seite angezeigt werden, und die die Felder identifiziert, die auf anderen verlinkten Seiten angezeigt werden. Außerdem führt der Verlinkungscode dazu, dass empfangene Daten syntaktisch analysiert (Parsing) werden, und dass die Daten der verlinkten Seite an die verlinkte Seite gesendet werden. Der Verlinkungscode ermöglicht einer Seite auch das Empfangen von Daten von einer anderen Seite und das automatische Anzeigen der Daten (z.B. in der Komponente der Auftraginformationen).
  • In Schritt 336 wird der Verlinkungscode den Seitendokumenten für die Master- und Detailseiten zugefügt. Das Verfahren kehrt dann zu Schritt 314 zurück, um auf weitere Entwicklereingabe zu warten.
  • 3. Bearbeiten des Quellcodes der Komponente
  • Wenn in Schritt 316 die Entwicklereingabe angibt, dass der Entwickler den Quellcode für eine gewählte Komponente bearbeiten möchte, zeigt das Werkzeug in Schritt 340 einen Codeeditorbildschirm, in den der aktuelle Quellcode für diese Komponente eingeschlossen ist. In Schritt 342 bearbeitet der Entwickler den Quellcode dann über den Codeeditorbildschirm.
  • 4 illustriert einen beispielhaften Codeeditorbildschirm gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Codeeditorbildschirm 400 schließt eine Befehlszeile 410, selektierbare Aktionsliste 412 und Quellcodeanzeigebereich 414 ein. Nachdem eine Komponente ausgewählt und der Codeeditorbildschirm 400 aufgerufen worden ist, schließt Codeanzeigebereich 414 zuerst den aktuellen Quellcode für diese Komponente ein. Der Entwickler kann dann den angezeigten Quellcode bearbeiten. Über die selektierbare Aktionsliste 412 kann der Entwickler angeben, welche Aktion diesen speziellen Code aufrufen wird. Der Entwickler kann beispielsweise angeben, dass der Code aufgerufen werden soll, wenn Information in ein Textfeld eingegeben und mit der Eingabetaste "bestätigt" wird. Als weiteres Beispiel kann der Entwickler angeben, dass ein Tastendruck der "NACH-OBEN"-Taste dazu führt, dass die Komponente durch eine Liste von Daten nach oben rollt.
  • Die Befehlszeile 410 schließt Felder ein, die den Entwickler in dem Bearbeitungsprozess unterstützen. Ein Eintrag in der Befehlszeile 410 kann dem Entwickler beispielsweise den Zugriff auf Standardroutinen (z.B. Absolutwert oder "Abs") ermöglichen und diese Standardroutinen in den Quellcode einschließen. Ein weiteres Feld in Befehlszeile 410 kann einen Entwickler bei der Identifizierung von Tabellen in einer oder mehreren Datenbanken unterstützen und kann ihn die Tabellennamen in den Code ziehen lassen.
  • Komponentencode kann viele unterschiedliche Typen von Anweisungen einschließen. Wenn beispielsweise eine Kundennummer in ein Bearbeitungsfeld eingegeben und bestätigt wird, kann der Code veranlassen, dass eine Datenanforderung erzeugt und an einen Server gesendet wird. Nach Empfang der Daten kann der Code veranlassen, dass die Daten in verschiedenen anderen Komponenten angezeigt werden.
  • Ein Entwickler kann als Teil des Komponentencodes auch für Zugriffschutz sorgen. Wenn beispielsweise eine spezielle Datenbank Zugriffsbeschränkungen aufweist, kann der Entwickler veranlassen, dass die Seite den Benutzer nach Zugangsinformationen fragt (z.B. Benutzername und/oder Passwort), bevor die Seite die erwünschten Daten anfordert. Ein solcher Benutzerzugriff kann beispielsweise kontrolliert werden, indem eine Liste gültiger Benutzer, Benutzerprofile und/oder Passwörter in das Seitendokument eingeschlossen oder auf dem Computer auf der Serverseite gespeichert wird. Wenn die eingegebenen und bestätigten Zugangsinformationen dem gespeicherten Benutzernamen, Profil und/oder Passwort nicht entsprechen, wird die Seiten den Benutzer darüber informieren, dass der Zugriff verweigert wurde. Andernfalls fordert die Seite die angegebenen Daten an und liefert diese.
  • Neben Zugriffschutz kann der Entwickler andere Benutzerprivilegien in den Seitendokumentcode und/oder Komponentencode einbauen. Ein Entwickler kann beispielsweise Code einbauen, der kontrolliert, welche Benutzer eine Webseite in den Aktenkoffer nehmen dürfen. Falls ein Benutzer diese Privilegien nicht hat, ist es dem Benutzer nicht erlaubt, eine Webseite und/oder zugehörende Daten auf seinem Client-Computer zu speichern. Ein Entwickler kann auch Code einbauen, der kontrolliert, welche Benutzer Daten in einer Datenbank verändern dürfen. Wenn ein Benutzer keine Veränderungsprivilegien hat, erlaubt die Seite es dem Benutzer nicht, Änderungen an Datensätzen in der Datenbank zu posten.
  • Nachdem der Entwickler das Bearbeiten des Quellcodes der speziellen Komponente beendet hat, kann er die Änderungen speichern und das Bearbeitungsprogramm verlassen.
  • In 3 ersetzt der veränderte Quellcode in Schritt 344 die vorhergehende Version des Codes in dem Seitendokument. Das Verfahren kehrt dann zu Schritt 314 zurück, um auf weitere Entwicklereingabe zu warten.
  • 4. Löschen einer Komponente
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler eine Komponente löschen möchte, die sich momentan auf der Seite befindet, entfernt das Werkzeug die Komponente in Schritt 350 von der Anzeigeseite, und der dazugehörende Quellcode der Komponente wird in Schritt 352 aus dem Seitendokument gelöscht. Das Verfahren kehrt dann zu Schritt 314 zurück, um auf weitere Entwicklereingabe zu warten.
  • 5. Bearbeiten der Komponenteneigenschaft
  • Ein Entwickler kann gemäß einer bevorzugten Ausführungsform über Komponenteneigenschaftsfeld 230 (2) eine Komponenteneigenschaft bearbeiten. In einer bevorzugten Ausführungsform ändert der Entwickler einfach den Eigenschaftswert in der rechten Spalte von Feld 230. Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler eine Komponenteneigenschaft bearbeiten möchte (z.B. hat der Entwickler einen neuen Eigenschaftswert eingegeben und bestätigt), wird in Schritt 358 der Komponentencode in dem Seitendokument geändert. Solche Änderungen können beispielsweise angeben, dass die Komponente an einer anderen Position gezeigt werden soll, eine andere Größe haben soll, oder eine andere Schriftart oder eine andere Farbe verwenden soll. Das Verfahren kehrt dann zu Schritt 314 zurück, um auf weitere Entwicklereingabe zu warten.
  • 6. Seite speichern und verlassen
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler die Seite speichern und verlassen möchte, speichert das Werkzeug in Schritt 360 das Seitendokument im Speicher. In einer bevorzugen Ausführungsform bekommt der Entwickler dann die Möglichkeit, das Seitendokument zu einem Zielserver zu verbreiten. Falls in Schritt 362 ermittelt worden ist, dass der Entwickler die Seite nicht verbreiten möchte, wird das Werkzeug in Schritt 370 geschlossen (wenn keine anderen Seiten bearbeitet werden), und das Verfahren endet.
  • Falls in Schritt 362 ermittelt worden ist, dass der Entwickler die Seite verbreiten möchte, wird der Entwickler in Schritt 364 gebeten, den Zielwerter zu identifizieren (z.B. durch dessen URL). Nachdem der Daten-Server identifiziert ist, wird die Seitendatei kompiliert und in einer bevorzugten Ausführungsform in Schritt 366 verschlüsselt. In einer alternativen Ausführungsform wird keine Verschlüsselung durchgeführt. Der Webseitenentwicklungscomputer 110 richtet dann eine Verbindung mit dem Zielserver ein und sendet die verschlüsselte Seite in Schritt 368 über das Internet (oder andere Verbindung). Es wird dann in Schritt 370 ermittelt, ob der Entwickler das Werkzeug schließen möchte. Falls dies der Fall ist, wird (wenn keine anderen Seiten bearbeitet werden) in Schritt 374 das Werkzeug geschlossen und das Verfahren endet. Falls dies nicht der Fall ist, wird dann in Schritt 372 ermittelt, ob der Entwickler die aktuelle Anwendung schließen möchte.
  • Falls dies der Fall ist, verzweigt die Prozedur zu Schritt 301. Falls nicht, verzweigt die Prozedur zu Schritt 314.
  • 7. Verlassen ohne Speichern
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler die Seite ohne Speichern verlassen möchte, schließt sich das Werkzeug in Schritt 370 selbst (wenn keine anderen Seiten bearbeitet werden), ohne die Seitendatei in den Speicher zu speichern, und das Verfahren endet.
  • 8. Öffnen einer neuen oder vorhandenen Anwendung
  • Wenn die Entwicklereingabe in Schritt 316 angibt, dass der Entwickler eine neue oder vorhandene Anwendung öffnen möchte, geht der Prozess zurück zu Schritt 302, in dem das Werkzeug ermittelt, ob die gewünschte Anwendung neu ist oder bereits besteht. Die Prozedur wird dann wie in 3 gezeigt fortgesetzt.
  • 5 illustriert ein Flussdiagramm eines Verfahrens zum Hinzufügen einer Datenbankkomponente zu einer Webseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Eine solche Komponente wird beispielsweise gemäß Schritt 320 von 3 einer Seite zugefügt.
  • Das Verfahren beginnt in Schritt 502, wenn ein Entwickler angibt, dass er eine Datenkomponente auf einer Seite positionieren möchte. In Schritt 504 fragt das Webseitenentwicklungswerkzeug den Entwickler nach dem Alias der Datenbank. Der Alias der Datenbank kann beispielsweise ein Name sein, den das Werkzeug verwendet, um den Pfad der Datenbank zu identifizieren.
  • Nachdem das Werkzeug den Alias der Datenbank kennt, zeigt das Werkzeug in Schritt 506 die Namen der Tabellen, die zu dieser Datenbank gehören. Der Entwickler wird gebeten, eine oder mehrere Tabellen aus der Datenbank auszuwählen, und das Werkzeug wartet in Schritt 508 auf die Wahl des Entwicklers. Nachdem der Entwickler eine Tabelle (oder Tabellen) gewählt hat, fügt das Werkzeug in Schritt 510 der Seite jedes Tabellenfeld als separate Komponente hinzu. In einer alternativen Ausführungsform kann das Werkzeug alle Felder anzeigen und dem Entwickler die Auswahl ermöglichen, welches Feld (oder welche Felder) der Entwickler der Seite zugefügt haben möchte.
  • Wenn der Seite die Datenkomponenten zugefügt werden, erzeugt das Werkzeug in Schritt 512 den Komponentencode für jede Komponente. In einer bevorzugten Ausführungsform schließt der Komponentencode Informationen ein, die erforderlich sind, um die Daten anzufordern, zu empfangen und anzuzeigen. Falls mehrere Komponenten Daten aus derselben Tabelle einschließen, muss in der Regel nur eine der Komponenten die eigentliche Datenanforderung durchführen. Eine solche Anforderung fordert Daten für jede der verwandten Feldkomponenten an. Die Erzeugung des Komponentencodes ist analog zu dem Zugriffscode in Schritt 322, 3.
  • Das Verfahren wartet in Schritt 514 dann auf weitere Entwicklereingabe. Nachdem die Entwicklereingabe erhalten wurde, wird in Schritt 516 ermittelt, welcher Typ von Entwicklereingabe erhalten wurde. In einer bevorzugten Ausführungsform sind die folgenden Typen von Entwicklereingaben möglich: 1) der Entwickler möchte das Anzeigeformat ändern, oder 2) der Entwickler möchte ein Feld löschen, oder 3) der Entwickler möchte eine Feldbeschränkung angeben oder 4) der Entwickler gibt an, dass er fertig ist. Jede der Entwicklereingaben wird nachfolgend beschrieben. Zur leichteren Veranschaulichung umfasst das Flussdiagramm nicht alle möglichen Entwicklereingaben. In alternativen Ausführungsformen sind weitere oder andere Entwicklereingaben möglich.
  • 1. Ändern des Anzeigeformats
  • Wenn die Entwicklereingabe in Schritt 516 angibt, dass der Entwickler das Anzeigeformat einer speziellen Datenkomponente (oder Datenkomponenten) ändern möchte, wird in Schritt 518 das Anzeigeformat gemäß den Anweisungen des Entwicklers bewegt, erneut skaliert oder anderweitig verändert. Ein Entwickler möchte beispielsweise alle Datenkomponenten abweichend von der aktuellen Ausrichtung ausrichten. Der Entwickler kann diese Änderung des Anzeigeformats in einer bevorzugten Ausführungsform spezifizieren, indem ein Ausrichtungssymbol (z.B. Symbol 212, 2) gewählt und die gewünschte Ausrichtung spezifiziert wird. Alternativ kann der Entwickler ein Anzeigeformat ändern, indem das Komponenteneigenschaftenfeld 230 (2) verändert wird. Das Verfahren kehrt dann zu Schritt 514 zurück, um auf weitere Entwicklereingabe zu warten.
  • 2. Löschen eines Felds
  • Wenn die Entwicklereingabe in Schritt 516 angibt, dass der Entwickler ein spezielles Feld einer Tabelle von der Webseite löschen möchte, entfernt das Werkzeug in Schritt 520 die Komponente von der Anzeigeseite, und in Schritt 522 wird der zu der Komponente gehörende Quellcode aus dem Seitendokument gelöscht. Diese Schritte sind analog zu den Schritten 350, 352 von 3. Das Verfahren kehrt dann zu Schritt 514 zurück, um auf weitere Entwicklereingabe zu warten.
  • 3. Angeben einer Feldbeschränkung
  • Wenn die Entwicklereingabe in Schritt 516 angibt, dass der Entwickler eine spezielle Feldbeschränkung angeben möchte, ändert das Werkzeug in Schritt 524 den Komponentencode für das spezielle Feld, so dass er die entsprechende Be schränkung wiedergibt. In einem Datenfeld, das Textdaten erhält, kann der Entwickler beispielsweise angeben, dass die Komponente nur Datenpositionen anzeigen soll, deren erster Buchstabe "A" ist. Diese Beschränkung wird dem Komponentencode zugefügt und nach Ausführung zeigt die Komponente nur Tabelleneinträge mit "A" als erstem Buchstaben. Das Verfahren kehrt dann zu Schritt 514 zurück, um auf weitere Entwicklereingabe zu warten.
  • 4. Fertig
  • Wenn die Entwicklereingabe in Schritt 516 angibt, dass der Entwickler mit dem Bearbeiten des Komponentencodes für das Feld (oder die Felder) fertig ist, wird dieser in Schritt 526 in das Seitendokument eingebaut, und der Prozess endet.
  • 6 illustriert ein vereinfachtes Hardware-Blockdiagramm eines Webseitenentwicklungscomputers 110 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Webseitenentwicklungscomputer 110 kann beispielsweise eine SUN-Workstation oder ein anderer Desktop- oder Laptop-PC sein. In einer bevorzugten Ausführungsform schließt Computer 110 Prozessormittel 612, Benutzereingabemittel 614, Datenspeicherungsmittel 616 und Monitor 618 ein. Außerdem schließt Computer 110 Verschlüsselungsmittel 620 und/oder Kommunikationshardware 622 ein, obwohl diese beiden Elemente zum Erreichen von vielen der Vorteile der vorliegenden Erfindung nicht wesentlich sind.
  • Prozessormittel 612 kann beispielsweise ein Intel-Pentiumprozessor oder anderer Prozessor sein, der zur Durchführung der Verarbeitungsfunktionen eines Webseitenentwicklungscomputers 110 geeignet ist. Diese Verarbeitungsfunktionen sind im Zusammenhang mit den 3 und 5 detailliert beschrieben, schließen beispielsweise jedoch Initialisieren des Seitenentwicklungswerkzeugs (Schritt 301, 3), Er zeugen von oder Zugriff auf ein Seitendokument (Schritte 306, 310, 3), Positionieren einer gewählten Komponente auf oder Entfernen einer gewählten Komponenten von einer Seite (Schritte 320, 350, 3), Bearbeiten von Komponenteneigenschaften (Schritt 358, 3), Bearbeiten von Komponentencode (Schritt 342, 3) und Speichern/Verbreiten von Seiten (Schritte 360 bis 368, 3) ein.
  • Benutzereingabemittel 614 ist entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 612 gekoppelt. Benutzereingabemittel 614 kann beispielsweise eine Tastatur, eine Maus, ein Mikrophon, ein Lautsprecher, ein Digitalvideogerät oder jegliche Kombination davon sein. Das Benutzereingabemittel 614 ist die Art und Weise, mit der ein Entwickler dem Seitenentwicklungswerkzeug Befehle gibt und/oder Informationen in dieses eingibt. Solche Befehle können beispielsweise einen Befehl zum Initialisieren des Werkzeugs (Schritt 301, 3), Ziehen und Fallenlassen einer neuen Komponente, Bearbeiten einer Komponenteneigenschaft, Bearbeiten von Komponentenquellcode, Löschen einer Komponente, Speichern eines Seitendokuments, Verlassen des Seitenentwicklungswerkzeugs oder Verbreiten einer Seite einschließen.
  • Datenspeicherungsmittel 616 ist mit Prozessormittel 612 entweder direkt oder durch verschiedene Hardware und Schnittstellen gekoppelt. Datenspeicherungsmittel 616 wird verwendet, um den Code des Webseitenentwicklungswerkzeugs, Seitendokumente, Quellcode und ausführbaren Code und andere Datenpositionen zu speichern. Datenspeicherungsmittel 616 kann jeden Typ von Festwertspeicher (ROM) und/oder Direktzugriffspeicher (RAM) einschließen und kann in Form magnetischer oder optischer Speichermedien vorliegen, wie beispielsweise Festplattenlaufwerken, CDs, Magnetplatten oder beliebiger Kombination davon. Zur leichten Veranschaulichung ist nur ein Datenspeicherungsmittel 616 ge zeigt. Es ist für den Fachmann jedoch offensichtlich, dass mehrere Speicherungstypen erwünscht sind, um das erfindungsgemäße Verfahren durchzuführen.
  • Monitor 618 ist entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 612 gekoppelt. Monitor 618 wird verwendet, um zu dem Webseitenentwicklungswerkzeug gehörende Bildschirme zu zeigen, einschließlich beispielsweise Seiteneditoranzeigen (z.B. Anzeige 200, 2) und Codeeditorbildschirme (z.B. Bildschirm 400, 4). Monitor 618 ist der Hauptmechanismus, um dem Entwickler während einer Seitenentwicklungssession visuelles Feedback zu geben, obwohl andere Feedback-Mittel (z.B. ein Lautsprecher) ebenfalls verwendet werden können.
  • In einer bevorzugten Ausführungsform ist Verschlüsselungsmittel 620 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 612 gekoppelt. In einer alternativen Ausführungsform ist Verschlüsselungsmittel 620 an Kommunikationshardware 622 gekoppelt. Verschlüsselungsmittel 620 wird in einer bevorzugten Ausführungsform zum Verschlüsseln von Nachrichten, Seitendokumenten und/oder anderen Informationen vor der Übertragung durch Kommunikationshardware 622 verwendet. Verschlüsselungsmittel 620 wird auch in einer bevorzugten Ausführungsform zum Verschlüsseln von Nachrichten und/oder anderen Informationen verwendet, die über Kommunikationshardware 622 empfangen werden. Verschlüsselungsmittel 620 kann beispielsweise nahezu jeden zugelassenen Verschlüsselungsalgorithmus verwenden, einschließlich Algorithmen mit öffentlichem Schlüssel/privatem Schlüssel, Verwürfelung (Scrambling) oder andere herstellereigene Algorithmen. Verschlüsselungsmittel 620 ist für das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung nicht wesentlich, liefert jedoch einen erhöhten Grad an Informationssicherheit.
  • In einer bevorzugten Ausführungsform ist Kommunikationshardware 622 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 612 und/oder Verschlüsselungsmittel 620 gekoppelt. Kommunikationshardware 622 kann beispielsweise ein Modem sein, das verwendet wird, um übertragene beziehungsweise empfangene Informationen über eine externe Verbindung zu modulieren oder demodulieren. Solche Information kann in verschlüsselter oder unverschlüsselter Form vorliegen. Alternativ kann Kommunikationshardware 622 eine Netzwerkkarte, USB oder anderes Kommunikationsgerät sein.
  • Obwohl nur ein Prozessormittel 612, Benutzereingabemittel 614 und Datenspeicherungsmittel 616 gezeigt wird, kann zusammen mit dem Webseitenentwicklungscomputer 110 jede Anzahl von Prozessoren, Benutzereingabemitteln und Datenspeicherungsgeräten verwendet werden.
  • Wie zuvor im Zusammenhang mit 3, Schritten 362 bis 368, beschrieben wurde, kann nach Erzeugen einer Webseite durch Webseitenentwicklungscomputer 110 ein Entwickler dann anfordern, dass Computer 110 die neue Webseite "verbreitet". "Verbreiten" einer Webseite bezeichnet die Handlung des Sendens der Seite an einen Server, der dann Client-Computern über das Internet Zugriff auf die Seite bietet. Der Webseitenentwicklungscomputer kann die Webseite über das Internet, ein LAN, ein WAN, jeden anderen Typ von optischer, drahtloser oder drahtgebundener Verbindung (oder Verbindungen) oder über ein greifbares Datenspeichermedium an den Server senden.
  • 7 illustriert ein Flussdiagramm eines Verfahrens zum Empfangen, Speichern und Ausliefern von Webseiten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. In einer bevorzugten Ausführungsform wird das Verfahren auf einem Computer durchgeführt, wie dem Computer 140 auf der Serverseite (1).
  • Das Verfahren beginnt in Stufe 702, wenn der Computer auf der Serverseite eine oder mehrere Webseiten empfängt. In einer bevorzugten Ausführungsform werden diese Webseiten von einem Computer, wie Webseitenentwicklungscomputer 110 (1) über das Internet oder irgendeine andere Verbindung empfangen. Die empfangenen Webseiten können in verschlüsselter oder unverschlüsselter Form vorliegen.
  • In Schritt 704 speichert der Computer auf der Serverseite die empfangenen Webseiten zum späteren Zugriff. In einer bevorzugten Ausführungsform speichert der Computer auf der Serverseite, falls eine Webseite in verschlüsselter Form empfangen wird, diese in der verschlüsselten Form. In einer alternativen Ausführungsform kann der Computer auf der Serverseite die Webseite vor dem Speichern derselben entschlüsseln.
  • Eine spezielle Webseite kann eine beliebige Zeitdauer gespeichert werden, bevor ein Client anfordert, dass diese Seite an den Client-Computer gesendet werden soll. Außerdem speichern Server oft Datenbanken, auf die durch eine Webseitenanwendung zugegriffen werden kann. Anforderungen von Webseiten oder Daten kommen in Form von Client-Nachrichten, die verschlüsselt sein können oder nicht.
  • In Schritt 706 verschlüsselt ein Computer auf der Serverseite die Anforderung, falls erforderlich, wenn ein Computer auf der Serverseite eine Client-Anforderung von Daten oder eine Anforderung einer Webseite empfängt. Es wird in Schritt 708 ermittelt, ob die Seite und/oder die Daten Berechtigung (Autorisierung) erfordern. Berechtigung ist möglicherweise für den Benutzer oder den Server oder für beide erforderlich. In einer bevorzugten Ausführungsform wird die Benutzerberechtigungsprüfung auf dem Client- Computer durch die Webseite durchgeführt, die die Anforderung nach Daten oder einer weiteren Webseite aufruft. Ein solcher Ansatz ist wünschenswert, weil die Notwendigkeit wegfällt, Berechtigungsnachrichten zwischen dem Client und dem Server hin- und herzuschicken. In einer alternativen Ausführungsform kann solche Berechtigungsprüfung auf dem Server durchgeführt werden. Der Berechtigungsprüfungsschritt 708 bezieht sich auf die Berechtigungsprüfung für den Server gemäß der bevorzugten Ausführungsform. Falls erforderlich, kann diese Berechtigungsprüfung ebenso für den Benutzer durchgeführt werden.
  • 8 illustriert ein Flussdiagramm eines Verfahrens zum Kontrollieren des Zugriffs auf eine Webseite oder Daten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Das Verfahren beginnt in Schritt 802 damit, dass ermittelt wird, ob die angeforderte Seite oder die angeforderten Daten "sicher" sind oder Zugriffsberechtigung erfordern. Falls nicht, dann wird ermittelt, dass in Schritt 810 Zugriff genehmigt wurde, und die Prozedur endet.
  • Falls in Schritt 802 ermittelt wurde, dass die angeforderte Seite oder die angeforderten Daten Zugriffsberechtigung erfordern, werden in Schritt 804 Zugriffsinformationen angefordert. Falls der Server Zugriffsinformationen zur Verfügung stellen muss, kann der Server seine Berechtigungsinformationen (z.B. ein Passwort) an den Datenbankmanager senden, der den Zugriff auf die Daten oder die Seite kontrolliert. Der Datenbankmanager vergleicht dann in Schritt 806 die Zugriffsinformationen mit einer Zugriffsliste, oder im Fall der Benutzerberechtigung mit einer Benutzerprofilliste.
  • Dann wird in Schritt 808 basierend auf dem in Schritt 806 durchgeführten Vergleich ermittelt, ob der Server (oder Benutzer) berechtigt ist, auf die Daten zuzugreifen, oder nicht. Falls ja, wird dann bestimmt, dass Zugriff in Schritt 810 genehmigt wird, und die Prozedur endet. Falls nicht, wird dann bestimmt, dass in Schritt 812 der Zugriff verweigert wird, und die Prozedur endet.
  • Falls in Schritt 708 bestimmt wurde, dass der Zugriff (entweder dem Benutzer oder dem Server) verweigert wird, sendet wiederum in 7 der Computer auf der Serverseite in Schritt 710 eine "Zugriff verweigert"-Nachricht an den Client-Computer, und das Programm wiederholt sich wie in 7 gezeigt.
  • Falls der Computer auf der Serverseite in Schritt 708 bestimmt, dass keine Zugriffsberechtigung erforderlich ist oder dass der Zugriff zugelassen wird, ruft der Computer auf der Serverseite in Schritt 714 Seite und/oder Daten ab. Nachdem die Webseite und/oder die Daten abgerufen worden ist bzw. sind, sendet in Schritt 716 der Computer auf der Serverseite die Seite und/oder die Daten (in verschlüsselter oder unverschlüsselter Form) an den Computer auf der Clientseite. Das Programm wiederholt sich dann wie in 7 gezeigt.
  • 9 illustriert ein vereinfachtes Hardware-Blockdiagramm eines Computers 140 auf der Serverseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Der Computer 140 auf der Serverseite kann beispielsweise eine SUN-Workstation oder ein anderer Desktop- oder Laptop-PC sein. In einer bevorzugten Ausführungsform schließt Computer 140 auf der Serverseite erste Kommunikationshardware 910, Prozessormittel 912 und Datenspeicherungsmittel 914 ein. Computer 140 schließt außerdem Verschlüsselungs-/Entschlüsselungsmittel 920 und zweite Kommunikationshardware 930 ein, obwohl diese beiden Elemente zum Erreichen von vielen der Vorteile der vorliegenden Erfindung nicht wesentlich sind.
  • Prozessormittel 912 kann beispielsweise ein Intel-Pentiumprozessor oder anderer Prozessor sein, der zur Durchführung der Verarbeitungsfunktionen des Computers 140 auf der Serverseite geeignet ist. Diese Verarbeitungsfunktionen sind detailliert im Zusammenhang mit 7 beschrieben, schließen jedoch beispielsweise Empfangen und Speichern von Webseiten (Schritte 702, 704), Verarbeiten von Clientanforderungen (Schritt 706), Bestimmen von Zugriffsrechten (Stufe 708) und Abrufen und Senden von Seiten und Daten (Schritt 716) ein.
  • Datenspeicherungsmittel 914 ist mit Prozessormittel 912 entweder direkt oder durch verschiedene Hardware und Schnittstellen gekoppelt. Datenspeicherungsmittel 914 wird verwendet, um entweder verschlüsselt oder unverschlüsselt Webseiten, Nachrichten und Datenbanken zu speichern. Datenbanken werden jedoch oft ferngespeichert und sind einem Server über einen Datenbankmanager zugänglich. Datenspeicherungsmittel 914 kann jeden Typ von Festwertspeicher (ROM) und/oder Direktzugriffspeicher (RAM) einschließen und kann in Form magnetischer oder optischer Speichermedien vorliegen, wie beispielsweise Festplattenlaufwerken, CDs oder Magnetplatten. Zur leichten Veranschaulichung ist nur ein Datenspeicherungsmittel 914 gezeigt. Es ist für den Fachmann jedoch offensichtlich, dass mehrere Speicherungstypen erwünscht sind, um das erfindungsgemäße Verfahren durchzuführen.
  • In einer bevorzugten Ausführungsform ist Verschlüsselungs-/Entschlüsselungsmittel 920 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 912 gekoppelt. In einer alternativen Ausführungsform ist Verschlüsselungs-/Entschlüsselungsmittel 920 an erste Kommunikationshardware 910 und/oder zweite Kommunikationshardware 930 gekoppelt. Verschlüsselungs-/Entschlüsselungsmittel 920 wird in einer bevorzugten Ausführungsform zum Verschlüsseln von Nach richten, Daten, Webseiten und/oder anderen Informationen vor der Übertragung durch die erste oder zweite Kommunikationshardware 910, 930 verwendet. Verschlüsselungs-/Entschlüsselungsmittel 920 wird auch in einer bevorzugten Ausführungsform zum Verschlüsseln von Nachrichten und/oder anderen Informationen verwendet, die über erste oder zweite Kommunikationshardware 922, 924 empfangen werden. Verschlüsselungsmittel 920 kann beispielsweise nahezu jeden zugelassenen Verschlüsselungsalgorithmus verwenden, einschließlich Algorithmen mit öffentlichem Schlüssel/privatem Schlüssel, Verwürfelung (Scrambling) oder andere herstellereigene Algorithmen. Verschlüsselungsmittel 920 ist für das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung nicht wesentlich, liefert jedoch einen erhöhten Grad an Informationssicherheit.
  • In einer bevorzugten Ausführungsform sind die erste Kommunikationshardware 910 und die zweite Kommunikationshardware 930 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 912 und/oder Verschlüsselungs-/Entschlüsselungsmittel 920 gekoppelt. Die erste Kommunikationshardware 910 kann beispielsweise ein Modem sein, das verwendet wird, um über eine externe Verbindung mit einem Computer, wie Webseitenentwicklungscomputer 110 (1), übertragene beziehungsweise empfangene Informationen zu modulieren oder demodulieren. Die zweite Kommunikationshardware 930 kann beispielsweise auch ein Modem sein, das verwendet wird, um über eine externe Verbindung mit einem Computer, wie Computer 170 auf der Clientseite (1), übertragene beziehungsweise empfangene Informationen zu modulieren oder demodulieren. Solche Information kann in verschlüsselter oder unverschlüsselter Form übertragen oder empfangen werden. Alternativ kann Kommunikationshardware 910, 930 Netzwerkkarten, USB oder anderes Kommunikationsgerät sein. In einer alternativen Ausführungsform schließt Computer 140 nur ein einziges Kommunikationshardwaregerät ein, das sowohl mit den Webseitenentwicklungscomputern als auch den Computern auf der Clientseite kommuniziert. In einer weiteren alternativen Ausführungsform kann Computer 140 einen Pool von Kommunikationshardware und/oder Modems zur Kommunikation mit mehreren anderen Computern einschließen.
  • Obwohl nur ein Prozessormittel 912, Datenspeicherungsmittel 914 und erste und zweite Kommunikationshardware 910, 930 gezeigt wird, kann zusammen mit dem Computer 140 auf der Serverseite jede Anzahl von Prozessoren, Datenspeicherungsgeräten und Kommunikationshardware verwendet werden.
  • 10 illustriert ein Flussdiagramm eines Verfahrens zum Anfordern, Empfangen und Anzeigen einer Webseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. In einer bevorzugten Ausführungsform wird das Verfahren auf einem Computer durchgeführt, wie einem Computer 170 auf der Clientseite (1).
  • Das Verfahren beginnt in Schritt 1002, wenn von einem Benutzer des Computers 170 auf der Clientseite ein Befehl zum Initialisieren des Browsers erhalten wird. Der Befehl zum Initialisieren des Browsers gibt an, dass der Benutzer dem Browser öffnen möchte, der zu dem erfindungsgemäßen Verfahren und der erfindungsgemäßen Vorrichtung gehört.
  • In Schritt 1004 wird der Browser initialisiert und erzeugt und sendet eine Anforderung für die Hauptwebseite, die zu dem Browser gehört. In einer bevorzugten Ausführungsform wird die Anforderung verschlüsselt, obwohl dies für das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung nicht wesentlich ist. Der Browser wartet dann auf den Empfang der Hauptseite von dem Server. Falls er nicht innerhalb einer bestimmten Zeitgrenze empfangen wird, kann der Browser dem Benutzer eine "Zeitgrenze überschritten"-Nachricht zeigen und kann beendet werden.
  • Wenn in Schritt 1006 die Hauptseite empfangen wurde, wird in Schritt 1006 die Seite falls nötig entschlüsselt und auf dem Benutzermonitor angezeigt. Nachdem die Webseite angezeigt worden ist, hält der Computer auf der Clientseite die Anzeige aufrecht, bis in Schritt 1008 eine Benutzereingabe oder ein Seitenbefehl empfangen worden ist. Die Benutzereingabe kann beispielsweise in Form einer Eingabe aus einer Tastatur, eines Mausklicks oder eines Audiobefehls vorliegen. Ein Seitenbefehl ist ein Befehl von einer aktiven Webseite, um bestimmte Funktionen durchzuführen.
  • Nachdem Benutzereingabe oder Seitenbefehl empfangen worden sind, wird in Schritt 1010 ermittelt, welcher Eingabetyp empfangen worden ist. In einer bevorzugten Ausführungsform sind die folgenden Typen von Benutzereingaben und Seitenbefehle möglich: 1) eine Seite ist angefordert worden, oder 2) Daten sind angefordert worden, oder 3) irgendwelche nicht zur Seite oder zu den Daten gehörenden Anforderungen wurden gemacht, oder 4) der Benutzer hat das Legen einer Seite/von Daten in den Aktenkoffer angefordert; oder 5) der Benutzer möchte die Seite verlassen. Jede der Benutzereingaben und Seitenbefehle wird nachfolgend beschrieben. Zur leichten Veranschaulichung schließt das Flussdiagramm nur Schritte und Entscheidungen an, die für Empfangen, Anzeigen und Speichern einer Webseite und/oder Daten von Bedeutung sind. Es umfasst nicht alle möglichen Benutzereingaben und Seitenbefehle. In alternativen Ausführungsformen sind zusätzliche oder andere Benutzereingaben und Seitenbefehle möglich.
  • 1. Seitenanforderung
  • Wenn in Schritt 1010 ermittelt wurde, dass der Benutzer eine Webseite angefordert hat, wird in Schritt 1012 ermittelt, ob der Benutzer Zugriffsrechte hat. In einer bevorzugten Ausführungsform wird durch die Webseite, von der aus der Benutzer Zugriff auf eine neue Seite ange fordert hat, eine Bestimmung der Zugriffsrechte vorgenommen. In anderen Worten schließt die Webseite Code ein, der ihr die Bestimmung ermöglicht, ob der Benutzer zum Zugriff auf die angeforderte Webseite berechtigt ist oder nicht. Die Überprüfung der Zugriffsberechtigungen eines Benutzers kann beispielsweise erfordern, dass der Benutzer ein Passwort oder irgendeine andere Information eingibt, und das Passwort kann mit Informationen überprüft werden, die in dem Seitendokument gespeichert sind. Eine solche Zugriffsbestimmung kann beispielsweise nach einem ähnlichen Algorithmus erfolgen, wie detailliert im Zusammenhang mit 8 beschrieben ist, außer dass alle Schritte auf dem Computer auf der Clientseite durchgeführt werden. In alternativen Ausführungsformen können Zugriffsrechte durch irgendwelche anderen Verfahren ermittelt werden.
  • Falls in Schritt 1012 bestimmt worden ist, dass der Zugriff verweigert wird, dann wird dem Benutzer in Schritt 1014 eine "Zugriff verweigert"-Nachricht gesendet (z.B. durch Anzeigen der Nachricht auf dem Monitor). Wenn der Zugriff genehmigt wird, formuliert die Webseite die Seitenanforderung und sendet sie in Schritt 1016 an den entsprechenden Server. Der entsprechende Server kann ein ferner Server oder in einigen Fällen ein lokaler Server sein.
  • Nachdem die Seite empfangen worden ist, verschlüsselt der Client-Computer die Seite, falls erforderlich, und zeigt in Schritt 1018 die Webseite auf dem Monitor. Die Webseite wird dann "aktiv", und bestimmte Teile des Komponentencodes können ausgeführt werden. Falls die Webseite Datenkomponenten einschließt, kann die Seite einen ersten Satz von Daten anfordern, der in diesen Datenkomponenten angezeigt werden soll. Falls die Webseite, wie in Schritt 1020 gezeigt ist, keine Datenkomponenten einschließt, kehrt das Verfahren zu Schritt 1008 zurück, um auf weitere Benutzereingabe zu warten. Falls die Webseite Datenkomponenten einschließt, ermittelt das Verfahren in Schritt 1021, ob diese Daten lokal gespeichert sind. Falls nicht, führt das Verfahren dann Schritte 1026 bis 1034 aus, die erforderlich sind, damit die Webseite die entsprechenden Daten anfordern kann. Falls das Verfahren in Schritt 1021 ermittelt, dass die Daten lokal gespeichert sind, führt das Verfahren Schritte 1028 bis 1034 aus. In einem solchen Fall wäre der entsprechende Server in Schritt 1030 der lokale Server, statt eines fernen Servers. Schritte 1026 bis 1034 werden nachfolgend detailliert erörtert.
  • In einigen Fällen kann eine Seite angefordert werden, ohne Schritte 1002 bis 1010 durchzuführen. Ein Benutzer kann beispielsweise eine Webseite aufrufen, die gemäß einer bevorzugten Ausführungsform erzeugt worden ist, indem die URL-Adresse der Seite in einen Browser eingegeben wird. Ein solcher Browser kann der erfindungsgemäße Browser sein, oder kann ein Browser des Standes der Technik sein. Wenn direkt auf eine Seite zugegriffen wird, kann es notwendig sein, dass der Server eine Zugriffsberechtigungsprüfung durchführt, da die Seite nicht von einer anderen Seite gestartet wurde, die Kenntnis der Zugriffsrechte des Benutzers hatte. Alternativ kann die Seite die Zugriffsberechtigungsprüfung vornehmen, wenn sie auf den Client-Computer heruntergeladen wird.
  • 2. Datenanforderung
  • Falls in Schritt 1010 ermittelt wurde, dass der Benutzer Daten angefordert hat, wird in Schritt 1022 ermittelt, ob die Daten lokal gespeichert sind. Die Daten können beispielsweise lokal gespeichert sein, falls die Daten zuvor von dem Server erhalten und auf dem Client-Gerät gespeichert worden waren. Der Benutzer kann beispielsweise während der Interaktion mit einer speziellen Seite mehrere Sätze von Daten heruntergeladen haben. Der Benutzer möchte möglicherweise dann zurückrollen zu Daten, die der Benutzer zuvor heruntergeladen hat. Alternativ kann der Benutzer eine Seite und einen Satz von Daten in den Aktenkoffer gelegt haben und möchte vielleicht die in dem Aktenkoffer befindlichen Daten sehen. In jedem Fall werden in Schritt 1024 die Daten, falls die Daten lokal gespeichert sind, von dem Client-Computer aufgefunden und angezeigt.
  • Falls die Daten nicht lokal gespeichert sind, wird in Schritt 1026 ermittelt, ob der Benutzer Zugriffsrechte hat. Dies kann ähnlich wie in Schritt 1012 bestimmt werden, außer dass die Zugriffsrechte den Zugriff auf Daten statt den Zugriff auf eine Seite betreffen. Falls der Benutzer keine Zugriffsrechte hat, wird dem Benutzer in Schritt 1014 eine "Zugriff verweigert"-Nachricht gesendet, und die Prozedur wiederholt sich wie gezeigt.
  • Falls der Benutzer Zugriffsrechte hat, werden die zur Beschreibung der Daten erforderlichen Kriterien in Schritt 1028 ermittelt. Schritt 1028 kann auch wie zuvor beschrieben aufgerufen werden, wenn eine Webseite automatisch ermittelt, dass sie einen Satz von Daten anfordern muss (Schritt 1020). Die Datenkriterien identifizieren die Datenbank, die Tabelle und den Datensatz (oder die Datensätze), die der Benutzer oder die Webpage sehen möchte. In einer speziellen Ausführungsform wird der zu betrachtende spezielle Datensatz durch Bewertung von Statusvariablen identifiziert, die die Webseite speichert. Diese Statusvariablen geben an, auf welche Datensätze die Seite bereits zugegriffen hat, und welche Datensätze als nächstes drankommen.
  • Die Speicherung von Statusvariablen durch die Webseite stellt einen bedeutsamen Vorteil des erfindungsgemäßen Verfahrens dar. Dieses Speichern beseitigt die Notwendigkeit, dass Intelligenz auf dem Server zum Halten von Statusinformationen (z.B. "Agenten") vorhanden sein muss, und beseitigt auch die Notwendigkeit des Haltens einer persistenten Verbindung mit dem Server während der ganzen Datenbankzugriffsession. Das Halten der Statusvariablen auf der Webseite führt unter anderen Vorteilen somit zu verringerter Kompliziertheit des Servers und auch zu niedrigeren Bandbreitenanforderungen.
  • Nachdem in Schritt 1028 die Datenkriterien bestimmt worden sind, wird dann in Schritt 1030 eine Datenanforderung formuliert und die Anforderung an den entsprechenden Server gesendet. Der entsprechende Server kann ein Fernserver oder in einigen Fällen ein lokaler Server sein. In einer bevorzugten Ausführungsform wird die Anforderung verschlüsselt, bevor sie gesendet wird, obwohl dies nicht wesentlich ist. Die angeforderten Daten werden in Schritt 1032 empfangen und in der entsprechenden Datenkomponente (oder den entsprechenden Datenkomponenten) angezeigt. In Schritt 1034 werden die zu den Daten gehörenden Statusvariablen aktualisiert, um die Tatsache wiederzuspiegeln, dass der Benutzer in der Datenbank (oder unterschiedlichen Datensätzen innerhalb der Datenbank) weitergekommen ist. Das Verfahren kehrt dann zu Schritt 1008 zurück, um auf weitere Benutzereingabe zu warten.
  • 3. keine Seiten/keine Daten-Anforderung
  • Falls in Schritt 1010 ermittelt wurde, dass der Benutzer (oder eine Webseite) eine Anforderung gestellt hat, die keine Seiten- oder Datenanforderung ist, dann führt der Client-Computer in Schritt 1036 die zu der Anfrage gehörende Funktion durch und das Verfahren kehrt zu Schritt 1008 zurück, um auf weitere Benutzereingabe zu warten. Keine Seite/keine Daten-Anforderungen können beispielsweise eine Anforderung zur Verwendung eines Hyperlinks auf eine weitere Webseite, eine Anforderung zum Abspielen einer Audio- oder Videodatei, eine Anforderung zum Senden einer E-Mail oder viele andere Typen von Anforderungen einschließen.
  • 4. Aktenkoffer-Anforderung
  • Falls in Schritt 1010 ermittelt wurde, dass der Benutzer das Legen einer Seite und/oder von Daten in den Aktenkoffer angefordert hat, wird in Schritt 1038 ermittelt, ob die Seite und/oder die Daten speicherbar ist. In einer bevorzugten Ausführungsform erfolgt diese Bestimmung auf der Webseite durch Ausführen von Code, den ein Entwickler in die Webseite eingeschlossen hat (wie im Zusammenhang mit 3, Schritt 342 erörtert wurde). Die Bestimmung, ob eine Seite und/oder Daten speicherbar ist bzw. sind, kann auch eine Bestimmung der Zugriffsrechte einschließen.
  • Falls ermittelt wurde, dass die Seite und/oder die Daten speicherbar ist bzw. sind, dann werden in Schritt 1040 das Seitendokument, Daten, die im Zusammenhang mit der Seite heruntergeladen worden sind, und die aktuellen Statusvariablen auf dem Client-Computer gespeichert. Die Speicherung der Statusvariablen ist erwünscht, so dass, wenn ein Benutzer sich zum erneuten Aufrufen der Seite entschließt, er dort auf die Daten zugreifen kann, wo er zuletzt war. Falls Schritt 1041 angibt, dass der Entwickler die Seite verlassen möchte, verzweigt das Verfahren zu Schritt 1050. Falls in Schritt 1050 bestimmt wurde, dass der Entwickler den Browser schließen möchte, wird der Browser geschlossen und das Verfahren endet. Ansonsten verzweigt das Verfahren zu Schritt 1002. Falls Schritt 1041 angibt, dass der Entwickler die Seite nicht verlassen wollte, kehrt das Verfahren dann zu Schritt 1008 zurück, um auf weitere Benutzereingabe zu warten.
  • Falls in Schritt 1038 bestimmt wurde, dass die Seite und/oder die Daten nicht speicherbar sind bzw. sind, dann wird der Benutzer in Schritt 1042 davon in Kenntnis gesetzt. Falls Schritt 1043 angibt, dass der Entwickler die Seite verlassen möchte, werden in Schritt 1044 das Seiten dokument, die Daten und Statusvariablen gelöscht. Das Verfahren kehrt dann zu Schritt 1008 zurück, um auf weitere Benutzereingabe zu warten.
  • 5. Verlassen
  • Falls in Schritt 1010 ermittelt wurde, dass der Benutzer die Seite verlassen möchte, dann wird in einer bevorzugten Ausführungsform der Benutzer gefragt, ob er die Seite und/oder die Daten in den Aktenkoffer legen möchte. Falls der Benutzer angibt, dass er die Seite und/oder die Daten in die Aktenkoffer legen möchte, dann werden Schritte 1038 bis 1044 durchgeführt. Falls der Benutzer angibt, dass er die Seite und/oder die Daten nicht in die Aktenkoffer legen möchte, werden in Schritt 1048 das Seitendokument, die Daten und Statusvariablen gelöscht, und es wird in Schritt 1050 bestimmt, ob der Entwickler den Browser schließen möchte. Falls ja, wird der Browser geschlossen und das Verfahren endet dann. Falls nein, dann verzweigt das Verfahren zu Schritt 1002 und wird fortgesetzt.
  • Ein Vorteil der vorliegenden Erfindung liegt darin, dass der zu den Webseiten der bevorzugten Ausführungsform gehörende Browser viel kleiner sein kann als bei Webseiten des Standes der Technik. Ein Grund hierfür liegt darin, dass jede erfindungsgemäß entwickelte Webseite in der Lage ist, direkt mit Fernservern zu kommunizieren. Webseiten des Standes der Technik verlassen sich auf Browser des Standes der Technik, um Nachrichten von dem Server und an den Server zu übertragen. Bei den erfindungsgemäßen Webseiten ist dies anders. Es ist daher möglich, den erfindungsgemäßen Browser während einer interaktiven Sitzung zwischen einer Webseite und einem Server zu schließen. In der Tat kann eine erfindungsgemäß erzeugte Webseite anfordern, dass der Browser nach Aufruf der Seite geschlossen wird.
  • Falls eine Webseite und/oder Daten in den Aktenkoffer gelegt und offline von einem Benutzer bearbeitet worden ist bzw. sind, möchte der Benutzer später möglicherweise seine Datenänderungen an die Datenbank posten. 11 illustriert ein Flussdiagramm eines Verfahrens zum Posten geänderter Daten an eine ferne Datenbank gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • Das Verfahren beginnt in Schritt 1102, wenn der Benutzer den Browser initialisiert. Die Browserinitialisierung wurde detaillierter im Zusammenhang mit 10, Schritt 1002, erörtert. Nachdem der Browser initialisiert wurde, kann der Benutzer in Schritt 1104 das Laden und Anzeigen der lokal gespeicherten Webseite und Daten herbeiführen. In diesem Schritt kann der Benutzer gewünschtenfalls weitere Bearbeitungen durchführen.
  • Nachdem der Benutzer seine Änderungen an den Daten vorgenommen hat, informiert er die Seite, dass die Verbindung mit dem Server hergestellt und die Änderungen gepostet werden sollen. In einer bevorzugten Ausführungsform ermittelt die Seite in Schritt 1106, ob der Benutzer Zugriffsrecht hat, um solche Änderungen an der Datenbank vorzunehmen. Die Bestimmung der Zugriffsrechte kann beispielsweise in ähnlicher Weise wie in 10, Schritt 1026, durchgeführt werden. Während der Entwicklung der Seite kann der Entwickler Code in die Webseite einbauen, der angibt, wer Datenänderungsberechtigungen hat, wie zuvor im Zusammenhang mit 3, Schritt 342, erörtert wurde. Falls der Benutzer keine Zugriffsrechte hat, wird dem Benutzer in Schritt 1108 eine "Zugriff verweigert"-Nachricht gesendet und die Prozedur endet.
  • Falls der Benutzer Zugriffsrechte hat, dann formuliert die Seite in Schritt 1110 eine Nachricht, die die Datenbank und Tabelle identifiziert und die auch die alten Datensätze (d.h. die Daten, die ursprünglich von dem Server herunter geladen worden waren) und die geänderten Datensätze einschließt. Der Server bestimmt dann in Schritt 1112, ob der Server Zugriffsrechte zum Ändern der Daten in der Datenbank hat. Falls nicht, dann sendet der Server in Schritt 1114 eine "Zugriff verweigert"-Nachricht an den Client-Computer, und die Prozedur endet.
  • Falls der Server Zugriffsrechte hat, vergleicht der Server dann in Schritt 1116 die von dem Client-Computer erhaltenen alten Datensätze mit den momentan in der Datenbank vorhandenen Datensätzen. In Schritt 1118 wird bestimmt, ob die alten Datensätze und die vorhandenen Datensätze zusammenpassen. Falls sie nicht zusammenpassen, zeigt dies, dass die Datenbank von einem anderen Benutzer geändert worden ist, seit der aktuelle Benutzer die Daten heruntergeladen hat. In einem derartigen Fall sendet der Server die vorhandenen Datensätze in Schritt 1120 an den Client-Computer zurück, so dass der Client-Computer den Benutzer fragen kann, ob er die Datenbank tatsächlich ändern möchte. Falls der Benutzer in Schritt 1122 angibt, dass kein Ersetzen gewünscht wird, dann endet die Prozedur.
  • Falls der Benutzer angibt, dass Ersetzen erwünscht ist, oder falls die alten und vorhandenen Datensätze zusammenpassen, dann werden die vorhandenen Datensätze in Schritt 1124 durch die geänderten Datensätze ersetzt und die Prozedur endet. Einige der Schritt 1112 bis 1124 erfordern möglicherweise die Interaktion des Servers mit einem zu der Datenbank gehörenden Datenbankmanager.
  • 12 illustriert ein vereinfachtes Hardwareblockdiagramm eines Computers 170 auf der Clientseite gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Computer 170 auf der Clientseite kann beispielsweise eine SUN Workstation oder ein anderer Desktop- oder Laptop-PC sein. In einer bevorzugten Ausführungsform schließt Computer 170 auf der Clientseite Prozessormittel 1212, Benutzereingabemittel 1214, Datenspeicherungsmittel 1216, Kommunikationshardware 1222 und Monitor 1218 ein. Des Weiteren schließt Computer 170 Verschlüsselungs-/Entschlüsselungsmittel 1220 ein, obwohl dieses Element zum Erreichen von vielen der Vorteile der vorliegenden Erfindung nicht wesentlich ist.
  • Prozessormittel 1212 kann beispielsweise ein Intel-Pentiumprozessor oder anderer Prozessor sein, der zur Durchführung der Verarbeitungsfunktionen des Computers 170 auf der Clientseite geeignet ist. Diese Verarbeitungsfunktionen sind detailliert im Zusammenhang mit 10 beschrieben, schließen jedoch beispielsweise Initialisieren des Browsers (Schritt 1002, 10), Anfordern der Hauptseite (Schritt 1004, 10), Anfordern weiterer Seiten (Schritte 1012 bis 1020, 10) , Anfordern von Daten (Schritte 1022 bis 1034, 10) und Legen von Seiten und Daten in den Aktenkoffer (Schritte 1038 bis 1044, 10) ein.
  • Das Benutzereingabemittel 1214 ist entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 1212 gekoppelt. Benutzereingabemittel 1214 kann beispielsweise eine Tastatur, eine Maus, ein Mikrophon, ein Digitalvideogerät oder jede Kombination davon sein. Benutzereingabemittel 1214 ist die Art und Weise, nach der ein Benutzer dem Browser Befehle gibt.
  • Datenspeicherungsmittel 1216 ist entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 1212 gekoppelt. Datenspeicherungsmittel 1216 wird verwendet, um den Browser, Seitendokumente, Daten von fernen Datenbanken und andere Datenpositionen zu speichern. Datenspeicherungsmittel 1216 kann jeden Typ von Festwertspeicher (ROM) und/oder Direktzugriffspeicher (RAM) einschließen und kann in Form magnetischer oder optischer Speichermedien vorliegen, wie beispielsweise Festplattenlaufwerken, CDs oder Magnetplatten. Zur leichten Veranschaulichung ist nur ein Datenspeicherungsmittel 1216 gezeigt. Es ist für den Fachmann jedoch offensichtlich, dass mehrere Speicherungstypen erwünscht sind, um das erfindungsgemäße Verfahren durchzuführen.
  • Monitor 1218 ist entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 1212 gekoppelt. Monitor 1218 wird verwendet, um dem Benutzer Webseiten anzuzeigen.
  • In einer bevorzugten Ausführungsform ist Verschlüsselungs-/Entschlüsselungsmittel 1220 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 1212 gekoppelt. In einer alternativen Ausführungsform ist Verschlüsselungs-/Entschlüsselungsmittel 1220 an Kommunikationshardware 1222 gekoppelt. Verschlüsselungs-/Entschlüsselungsmittel 1220 wird in einer bevorzugten Ausführungsform zum Verschlüsseln von Nachrichten, Anforderungen und/oder anderen Informationen vor der Übertragung über Kommunikationshardware 1222 verwendet. Verschlüsselungs-/Entschlüsselungsmittel 1220 wird auch in einer bevorzugten Ausführungsform zum Verschlüsseln von Nachrichten, Webseiten und/oder anderen Informationen verwendet, die über Kommunikationshardware 1222 empfangen wurden. Verschlüsselungs-/Entschlüsselungsmittel 1220 kann beispielsweise nahezu jeden zugelassenen Verschlüsselungsalgorithmus verwenden, einschließlich Algorithmen mit öffentlichem Schlüssel/privatem Schlüssel, Verwürfelung (Scrambling) oder andere herstellereigene Algorithmen. Verschlüsselungsmittel 1220 ist für das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung nicht wesentlich, liefert jedoch einen erhöhten Grad an Informationssicherheit.
  • In einer bevorzugten Ausführungsform ist Kommunikationshardware 1222 entweder direkt oder durch verschiedene Hardware und Schnittstellen an Prozessormittel 1212 und/oder Verschlüsselungs-/Entschlüsselungsmittel 1220 gekoppelt. Kommunikationshardware 1222 kann beispielsweise ein Modem sein, das verwendet wird, um übertragene beziehungsweise empfangene Informationen über eine externe Verbindung zu modulieren oder demodulieren. Solche Information kann in verschlüsselter oder unverschlüsselter Form vorliegen. Alternativ kann Kommunikationshardware 1222 eine Netzwerkkarte, USB oder anderes Kommunikationsgerät sein.
  • Obwohl nur ein Prozessormittel 1212, Benutzereingabemittel 1214 und Datenspeicherungsmittel 1216 gezeigt wird, kann zusammen mit dem Computer 170 auf der Clientseite jede Anzahl von Prozessoren, Benutzereingabemitteln und Datenspeicherungsgeräten verwendet werden.
  • Wie zuvor beschrieben liefern das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung den Vorteil, dass ein Benutzer Daten auf einer ersten offenen Seite mit dem Browser durchblättern kann, während die Daten auf einer zweiten offenen Seite automatisch aktualisiert werden. Die Erzeugung von Seiten mit verlinkten Komponenten aus der Entwicklerperspektive wurde detailliert im Zusammenhang mit 3, Schritte 330 bis 336 beschrieben. Datenverlinken wird nun aus der Perspektive des Computers auf der Clientseite beschrieben.
  • Wie zuvor beschrieben bezieht sich Datenverlinken über mehrere Seiten auf das Verlinken verschiedener Sätze von Daten über mehrere Webseiten. In einer bevorzugten Ausführungsform kann eine erste Webseite beispielsweise eine Komponente einschließen, die Daten enthält, durch die der Benutzer rollen kann. Der Benutzer kann dann eine zweite Webseite öffnen, die eine Komponente enthält, die Daten enthält, die mit den durch die erste Seite angezeigten Daten verwandt sind, sich jedoch von diesen unterscheiden. In einer bevorzugten Ausführungsform sind diese beiden Seiten in einer solchen weise verlinkt, dass, wenn der Be nutzer die zweite Seite öffnet, die darin angezeigten Daten den in der ersten Seite angezeigten Daten entsprechen. Wenn der Benutzer außerdem auf einer der Seiten durch die Daten rollt, aktualisiert sich die andere Seite automatisch selbst, so dass sie die entsprechenden Daten anzeigt.
  • Ein Beispiel wird die bevorzugte Ausführungsform näher erläutern. Nehmen wir an, dass eine erste Webseite Zugriff auf bestimmte Informationen über Angestellte liefert, die in einer Angestellteninformationsdatenbank gespeichert sind, die einem Server zugänglich ist. In dem vorliegenden Beispiel kann die Datenbank eine relationale Datenbank sein, in der unverwechselbare Angestelltennummern die Schlüssel sind, die verwendet werden, um Datensätze der verschiedenen Tabellen miteinander zu verlinken. Die Datenbank kann die Angestelltennummer und mehrere Typen von Informationen einschließen, wie:
    • a) arbeitsbezogene Informationen, einschließlich Name des Aufsichtsführenden, Name des Sekretärs/der Sekretärin, Ort des Büros, Telefon und Faxnummern am Arbeitsplatz und Bezeichnung der Arbeitsstelle;
    • b) personalbezogene Informationen, einschließlich Gehalt, Dienstgrad, Leistungsdaten und Einstellungsdatum;
    • c) Personalinformationen, einschließlich Name, Sozialversicherungsnummer, Privatanschrift und privater Telefonnummer, Familienstand, Geschlecht und Alter.
  • Nehmen wir an, dass eine erste Webseite eine Komponente zum Anzeigen des Namen des Angestellten zusammen mit dem ersten Typ von Angestellteninformationen, nämlich arbeitsbezogener Information, einschließt. Nachdem der Webseitenbenutzer einen speziellen Namen eines Angestellten gewählt hat, sendet der Computer des Benutzers auf der Clientseite eine Anforderung nach arbeitsbezogener Information für diesen Angestellten an den entsprechenden Server. Der Computer auf der Serverseite ruft diese Informationen aus der Angestellteninformationsdatenbank ab und sendet die Informationen zurück an den Computer auf der Clientseite. In einer bevorzugten Ausführungsform zeigt der Computer auf der Clientseite dann die Information in der Datenkomponente oder den Datenkomponenten auf der ersten Webseite an, die dieser Information entspricht bzw. entsprechen, und aktualisiert die Statusvariablen, die angeben, auf welchen Datensatz der Datenbank der Benutzer zugegriffen hat.
  • Nehmen wir weiterhin an, dass der Benutzer die Möglichkeit (und Zugriffsberechtigungen) hat, eine zweite verwandte Webseite zu öffnen, die eine Komponente zum Anzeigen der personalbezogenen Informationen des Angestellten einschließt. In einer bevorzugten Ausführungsform der vorliegenden Erfindung sendet der Computer auf der Clientseite eine Anforderung an den Server für die personalbezogenen Informationen über denselben Angestellten, ohne dass der Benutzer den Namen des Angestellten erneut eingeben muss. Der Server greift auf die entsprechenden personalbezogenen Informationen zu und sendet diese, die auf der zweiten Seite angezeigt werden.
  • Falls der Benutzer beide Seiten offenhält und auf der ersten Seite den Namen eines anderen Angestellten eingibt, führt das erfindungsgemäße Verfahren dazu, dass die Daten auf sowohl der ersten als auch der zweiten Webseite automatisch aktualisiert werden, um die arbeitsbezogenen und personalbezogenen Informationen über den zweiten Angestellten wiederzugeben. Auf diese Weise werden die Daten zwischen den beiden Webseiten verlinkt. Wenn die Daten auf der ersten Seite aktualisiert werden, werden die verwandten Daten auf der zweiten Seite auch aktualisiert.
  • 13 illustriert ein Flussdiagramm eines Verfahrens zum verlinken von Daten auf mehreren Seiten gemäß einer bevor zugten Ausführungsform der vorliegenden Erfindung. In einer bevorzugten Ausführungsform wird das Verfahren auf einem Computer wie dem Computer 170 auf der Clientseite, 1, durchgeführt. Das Verfahren beginnt in Schritt 1302 mit der Anzeige einer ersten Seite und/oder eines dazu gehörenden ersten Satzes von Daten. Zur einfachen Darstellung wird die erste Seite als die Masterseite angesehen, so wie dieser Begriff zuvor definiert worden ist.
  • Schritt 1302 geht davon aus, dass es keine Zugriffsbeschränkungen gibt oder dem Benutzer der Zugriff zum Anzeigen der ersten Seite und/oder des ersten Satzes von Daten gewährt wurde. In Schritt 1304 sind Statusvariablen gespeichert, die den ersten Satz von Daten identifizieren. In dem oben beschriebenen Beispiel kann der erste Satz von Daten die arbeitsbezogenen Informationen eines Angestellten einschließen.
  • In Schritt 1306 wird eine Benutzeranforderung zur Anzeige einer zweiten Seite mit einem zweiten Satz verwandter Daten empfangen. Zur leichten Darstellung wird die zweite Seite als die Detailseite angesehen, so wie dieser Begriff zuvor definiert worden ist. In dem oben beschriebenen Beispiel kann der zweite Satz von Daten personalbezogene oder Personalinformationen eines Angestellten einschließen. In Schritt 1310 wird die zweite Seite empfangen, und nachdem sie aktiv wird, werden die zu der ersten Seite gehörenden Statusvariablen verwendet, um in Schritt 1312 eine Anforderung für die Daten auf der zweiten Seite zu formulieren.
  • Die Anforderung der Daten für die zweite Seite wird dann in Schritt 1314 zu dem Server gesendet, und in Schritt 1316 werden die Daten der zweiten Seite empfangen. Falls die zweite Seite Datenkomponenten einschließt, die nicht mit den Daten der ersten Seite verwandt sind, dann müssen möglicherweise auch Statusvariablen für diese neuen Daten komponenten initialisiert werden. In Schritt 1318 werden die zweite Seite und die Daten der zweiten Seite von dem Computer auf der Clientseite angezeigt. In einer alternativen Ausführungsform kann die zweite Seite vor Schritt 1318 angezeigt werden.
  • Falls der Benutzer eine andere Seite mit verwandten Daten (z.B. eine Seite, die die Personalinformation des Angestellten anzeigt) anfordert, werden Schritte 1306 bis 1318 wiederholt. Falls der Benutzer weitere Daten auf irgendeiner der Seiten anfordert (z.B. Daten für einen anderen Angestellten), werden die verwandten Statusvariablen zur Formulierung der Datenanforderung für jede Seite mit verwandten Daten verwendet, und nachdem die Daten von dem Server erhalten worden sind, werden die entsprechenden Datenkomponenten für jede Seite aktualisiert.
  • In einigen Fällen kann eine spezielle Webseite erfindungsgemäß mehrere Datensätze mit Daten angefordert und gespeichert haben (z.B. Informationen über mehrere Angestellte), selbst wenn die Seite Informationen anzeigt, die in nur einem oder wenigen derartigen Datensätzen enthalten sind. Nach Öffnen einer zweiten Seite können die verwandten Daten für die mehreren Datensätze mit Daten von dem Server angefordert und gespeichert werden, und die zweite Seite kann auch Informationen anzeigen, die in nur einem oder wenigen solchen Datensätzen enthalten ist.
  • Falls der Benutzer durch die lokal gespeicherten Daten rollen möchte, ist es nicht erforderlich, die Daten von dem Server (Schritte 1312 bis 1316) anzufordern. Stattdessen kann der Computer auf der Clientseite auf die zuvor gespeicherten Daten für jede der Seiten zugreifen und diese anzeigen. Datenanforderungen an den Server sind nur dann erforderlich, wenn eine Webseite (oder Webseiten) auf Daten zugreifen möchte, die sie nicht heruntergeladen und gehalten hat bzw. haben. Zudem müssen Statusvariablen nur dann aktualisiert werden, wenn neue Sätze von Daten von dem Server empfangen worden sind.
  • 14 illustriert eine beispielhaft verlinkte Webseitenanzeige gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Eine Browseranzeige 1405 gehört zu einem Browser, der zuerst verwendet wird, um Zugriff auf einen Computer auf der Serverseite zu erhalten und eine erste Webseite anzuzeigen. Erfindungsgemäß kann der Browser danach auf Wunsch des Benutzers geschlossen werden, da der Browser nicht wesentlich ist, damit ein Benutzer Interaktionen mit erfindungsgemäß entworfenen Webseiten durchführen kann. Eine erste Seite 1410 und eine zweite Seite 1420 zeigen jeweils spezielle Positionen verwandter Daten. In dem gezeigten Beispiel zeigt die erste Seite 1410 Daten für Kundennummer 1412, Firma 1414 und andere Informationen für diese spezielle Kundennummer. Die zweite Seite 1420 zeigt auch Kundennummer 1422 und Firma 1424, zeigt jedoch andere, jedoch verwandte Informationen, speziell die Verkäufe 146 des Kunden in der Vergangenheit.
  • In einer bevorzugten Ausführungsform verwendet das erfindungsgemäße Verfahren zu der Zeit, zu der der Benutzer die zweite Seite 1420 geöffnet hat, die Statusvariablen, die die Daten der ersten Seite identifizieren, um eine Anforderung für die Verkaufsdaten 1426 des Kunden zu formulieren. Ebenfalls aktualisiert das erfindungsgemäße Verfahren, falls ein Benutzer die Kundennummer 1412 oder 1422 in entweder der ersten Seite 1410 oder der zweiten Seite 1420 ändert, die Firmendaten 1414, 1424, Verkäufe des Kunden 1426 und andere verwandte Daten, die von beiden Seiten 1410 und 1420 angezeigt werden.
  • 15 illustriert ein Flussdiagramms eines Verfahrens zum Rollen durch Daten, die zu verlinkten Seiten gehören, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. In einer bevorzugten Ausführungsform wird das Verfahren auf einem Computer wie dem Computer 170 auf der Clientseite, 1, durchgeführt.
  • Wenn das Verfahren beginnt, wird angenommen, dass bereits gemäß dem in 13 beschriebenen Verfahren die Daten mehrerer verlinkter Seiten heruntergeladen worden sind. Nach Initiierung des Verfahrens von 15 wird daher des Weiteren angenommen, dass mehrere verlinkte Seiten, die verlinkte Datenkomponenten einschließen, momentan angezeigt werden, und dass die Statusvariablen für diese Seiten von den Webseiten gespeichert worden sind.
  • In Schritt 1502 empfängt eine der verlinkten Seiten Benutzereingabe, die angibt, dass der Benutzer einen anderen Satz von Daten in einer oder mehreren Komponenten auf dieser Seite angezeigt haben möchte. Nach Empfangen dieser Anforderung wird in Schritt 1504 ermittelt, ob die angeforderten Daten momentan auf dem Client-Gerät gespeichert sind. Möglicherweise sind zum Beispiel auf einem Client-Gerät nur die ersten zwanzig Datensätze von Angestelltenpersonaldaten in Reaktion auf eine oder mehrere vorhergehende Anforderungen an den Server empfangen und gespeichert worden. In einer bevorzugten Ausführungsform sind diese zwanzig Datensätze auf dem Client-Gerät gespeichert und der Benutzer ist in der Lage, durch diese hindurch zu rollen, ohne eine weitere Anforderung an den Server zu initiieren. Falls in demselben Beispiel der Benutzer versucht, durch den einundzwanzigsten Datensatz zu rollen, müsste das Webdokument in einer bevorzugten Ausführungsform eine weitere Anforderung für Daten formulieren und diese Anforderung an den Server senden. Während durch die ersten zwanzig Datensätze gerollt wird, ermittelt Schritt 1504, dass die Daten lokal gespeichert sind. Falls eine Anforderung nach anderen Daten als denjenigen, die in den ersten zwanzig Datensätzen enthalten sind, empfangen wird, ermittelt Schritt 1504, dass die Daten nicht lokal gespeichert sind. Falls Schritt 1504 ermittelt, dass die Daten lokal gespeichert sind, dann werden in Schritt 1506 die Daten abgerufen und angezeigt.
  • Falls Schritt 1504 ermittelt, dass die Daten nicht lokal gespeichert worden sind, dann wird in Schritt 1508 bestimmt, ob die Daten in einer verlinkten Seitenkomponente gerollt werden. Falls die Daten in einer verlinkten Seitenkomponente gerollt werden, dann sendet die erste Seite in Schritt 1510 eine Anforderung an die verlinkte Seite, die Daten von dem Server für die erste Seite erhält, wobei die Anforderung angibt, welche Daten die erste Seite betrachten möchte.
  • Falls die erste Seite in der Lage ist, ihre eigenen Datenanforderungen an den Server zu erzeugen und zu senden, oder nachdem die Anforderung von der ersten Seite seitens der verlinkten Seite erhalten worden ist, dann erzeugt in Schritt 1512 das Client-Gerät unter Verwendung der Statusvariablen eine Anforderung sowohl für die von der ersten Seite als auch für die von der verlinkten Seite angezeigten Daten. Das Client-Gerät sendet dann in Schritt 1514 die Anforderung an den Server. Nach Empfang der Daten von dem Server in Schritt 1516 sendet die Seite, die die Daten von dem Server angefordert hat, die Daten zu der Seite, die jene Daten anzeigt, und jene Seite zeigt in Schritt 1518 die Daten. Die durch die neuen Daten beeinflussten Statusvariablen werden dann in Schritt 1520 aktualisiert, und die Prozedur wiederholt sich wie gezeigt.
  • Somit sind ein Verfahren und eine Vorrichtung zum Entwickeln, Verbreiten, Herunterladen und Ausführen von Webseiten beschrieben worden, die spezielle Probleme überwinden und bestimmte Vorteile verglichen mit Verfahren und Mechanismen des Standes der Technik bewirken. Ein Vorteil des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung liegt darin, dass während Datenbankanwendungen nicht erforderlich ist, dass eine gesamte Seite auf dem Server bei jedem Mal dynamisch erzeugt werden muss, wenn ein Benutzer einen neuen Satz von Daten anfordert. Stattdessen sendet erfindungsgemäß der Server nur das neue Datenfragment, und die Webseite aktualisiert das entsprechende Feld. Ein weiterer Vorteil ist, dass das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung das Durchführen von Statusmanagement durch den Computer auf der Clientseite ermöglichen, indem in eine Webseite eingebetteter Code genutzt wird. Diese Statusmanagementfähigkeit ermöglicht es dem erfindungsgemäßen Verfahren und der erfindungsgemäßen Vorrichtung auch, Aktenkofferfunktionen für Webseiten zu liefern, was ein weiterer Vorteil der vorliegenden Erfindung ist. Des Weiteren verringern der eingebettete Webseitencode des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung Sicherheitsrisiken wesentlich, die mit herunterladbaren ausführbaren Programmen des Standes der Technik verbunden sind, die bösartigen Code enthalten können. Ein weiterer Vorteil der vorliegenden Erfindung liegt darin, dass sie es Webseitenbenutzern ermöglicht, mehrere verlinkte Seiten gleichzeitig zu betrachten und Interaktionen mit ihnen durchzuführen, ohne eine weitere Instanz des Web-Browsers zu starten.
  • Die vorhergehenden Beschreibungen der speziellen Ausführungsformen zeigen die allgemeine Natur der Erfindung so vollständig, dass andere durch Verwendung von aktuellem Wissen die Ausführungsformen für verschiedene Anwendungen leicht ändern und/oder anpassen können, ohne von dem allgemeinen Konzept abzuweichen. Daher sind solche Anpassungen und Änderungen in der Bedeutung und dem Bereich der Äquivalente der offenbarten Ausführungsformen eingeschlossen. Während eine bevorzugte Ausführungsform in Form eines Systems beschrieben worden ist, bei dem insbesondere ein Computer auf der Clientseite und der Seitenentwicklungscomputer über das Internet mit einem Computer auf der Serverseite kommunizieren, werden Fachleute auf Grundlage der hier gegebenen Beschreibung verstehen, dass das erfindungsgemäße Verfahren und die erfindungsgemäße Vorrichtung auch in einem System verwendet werden können, bei den einer oder beide von Computer auf der Clientseite und Entwicklungscomputer über ein LAN, WAN oder anderes Netzwerk oder andere Verbindung mit dem Computer auf der Serverseite kommunizieren. Fachleute werden zudem erkennen, dass die hier gezeigten Flussdiagramme die vorliedende Erfindung lehren sollen und dass andere Techniken zum Implementieren des Programmflusses, die sich nicht notwendigerweise aus den Flussdiagrammen ergeben, vorgesehen sein können. Jede hier erörterte Aufgabe kann beispielsweise unterbrochen werden, damit der Programmfluss Hintergrund- oder andere Aufgaben durchführen kann. Außerdem kann die spezielle Reihenfolge der Aufgaben geändert werden, und die zur Implementierung der Aufgaben verwendeten speziellen Techniken können von System zu System unterschiedlich sein.
  • Es sei darauf hingewiesen, dass die hier verwendete Wortwahl oder Terminologie zum Zweck der Beschreibung und nicht der Einschränkung verwendet wird. Demnach soll die Erfindung alle derartigen Alternativen, Veränderungen, Äquivalente und Variationen einschließen, die in den umfassenden Schutzumfang der angefügten Ansprüche fallen.

Claims (37)

  1. Computerprogrammprodukt, das Webseiten-Computercode umfasst, der, wenn er von einem Computer (170) auf der Clientseite ausgeführt wird, dazu führt, dass der Computer (170) auf der Clientseite eine Webseite (1410, 1420) anzeigt, die dem Webseiten-Computercode entspricht, wobei der Webseiten-Computercode umfasst: Informationen beschreibende Komponenten (1412, 1414, 1422, 1424), die auf der Webseite enthalten sind; und ereignisgesteuerten Code, der einer oder mehreren der Komponenten zugeordnet ist, wobei der ereignisgesteuerte Code durch den Computer der Clientseite ausgeführt wird, der die Webseite anzeigt, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank (914) anzufordern, die einem Computer (140) auf der Serverseite zugänglich ist.
  2. Computerprogrammprodukt nach Anspruch 1, bei dem die Komponenten des Weiteren gekennzeichnet sind durch datenbankbezogene Komponenten, die zum Anzeigen von Daten aus der Datenbank (914) vorgesehen sind, und den ereignisgesteuerten Code, der zur Erzeugung von Informationsanforderungen führt, die an den Computer auf der Serverseite gesendet (1030) werden, was dazu führt, dass der Computer auf der Clientseite Informationen empfängt (1032), die den Informationsanforderungen entsprechen, und die Informationen zusammen mit den datenbankbezogenen Komponenten angezeigt werden.
  3. Computerprogrammprodukt nach Anspruch 1, des Weiteren gekennzeichnet durch eine Komponente der Komponenten, die Listengeneratorcode zugeordnet ist, der, wenn er durch den Computer (170) der Clientseite ausgeführt wird, ein Listendokument erzeugt, das zu der Webseite gehörende Informationen enthält.
  4. Webseiten-Entwicklungsvorrichtung (110) zum Entwickeln des Computerprogrammprodukts nach Anspruch 1, 2 oder 3, mit einem Monitor (618) zum Anzeigen der Webseite zur Betrachtung durch einen Entwickler; einem Benutzereingabemittel (614), um dem Entwickler die Eingabe von Informationen zu ermöglichen, die die Entwicklung der Webseite betreffen, die durch den Computer auf der Clientseite ausführbar ist; und einem Prozessormittel (612), das an den Monitor und das Benutzereingabemittel gekoppelt ist, wobei das Prozessormittel zum Initialisieren und Ausführen eines Webseiten-Entwicklungswerkzeugs, zum Bewirken der Anzeige der Webseite auf dem Monitor, zum Empfangen der Informationen von dem Benutzereingabemittel und zum Bewirken von Änderungen des Webseitendokuments auf Basis der Informationen dient, dadurch gekennzeichnet, dass die Änderungen den Einbau von ereignisgesteuertem Code in das Webseitendokument einschließen, der zu einer oder mehreren Webseitenkomponenten gehört, wobei der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in der Datenbank anzufordern.
  5. Webseiten-Entwicklungsvorrichtung nach Anspruch 4, des Weiteren gekennzeichnet durch ein Kommunikationsmittel (622), das an das Prozessormittel gekoppelt ist, wobei das Kommunikationsmittel verwendet wird, um das Webseitendokument zu einem Computer (140) auf der Serverseite zu senden.
  6. Webseiten-Entwicklungsvorrichtung nach Anspruch 4, des Weiteren gekennzeichnet durch ein Datenspeicherungsmittel (616), das an das Prozessormittel gekoppelt ist, wobei das Datenspeicherungsmittel zum Speichern des Webseitendokuments verwendet wird.
  7. Webseiten-Entwicklungsvorrichtung nach Anspruch 4, des Weiteren gekennzeichnet durch ein Mittel zur Verschlüsselung (620), das an das Prozessormittel gekoppelt ist, wobei das Mittel zur Verschlüsselung zum Verschlüsseln des Webseitendokuments verwendet wird.
  8. Servervorrichtung (140) mit mindestens einem Kommunikationsmittel (910, 930), das eine erste Nachricht von einem Computer (170) der Clientseite empfängt und eine zweite Nachricht an diesen sendet, wobei die erste Nachricht eine Informationsanforderung enthält, die durch ereignisgesteuerten Code erzeugt worden ist, der in einem Webseitendokument enthalten ist, das durch den Computer der Clientseite ausgeführt wird, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank anzufordern, und die zweite Nachricht gespeicherte Informationen enthält, die der Servervorrichtung zugänglich sind; und mindestens einem Prozessormittel (912), das an das mindestens eine Kommunikationsmittel gekoppelt ist, um die Informationsanforderung zu verarbeiten, um die gespeicherten Informationen zu identifizieren, um die zweite Nachricht zu erzeugen, die die gespeicherten Informationen enthält, und um das Senden der zweiten Nachricht an den Computer der Clientseite zu bewirken, so dass der Computer der Clientseite die gespeicherten Informationen in Reaktion auf die Ausführung des ereignisgesteuerten Codes anzeigen kann.
  9. Servervorrichtung nach Anspruch 8, des Weiteren gekennzeichnet durch ein Datenspeicherungsmittel (194), das an das Prozessormittel gekoppelt ist, wobei das Datenspeicherungsmittel zum Speichern der gespeicherten Informationen verwendet wird.
  10. Clientvorrichtung (170) mit einem Monitor (1218), der eine Webseite anzeigt, die durch ein Webseitendokument definiert ist, das von der Clientvorrichtung ausgeführt wird; einem Kommunikationsmittel (1222), das erste Nachrichten an einen Computer (140) auf der Serverseite sendet und zweite Nachrichten von diesem empfängt; und einem Prozessormittel (1212), das an den Monitor und das Kommunikationsmittel gekoppelt ist, das das Webseitendokument einschließlich der Ausführung von ereignisgesteuertem Code ausführt, der einem oder mehreren Webseitenkomponenten zugeordnet ist, die in dem Webseitendokument enthalten sind, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank (914) anzufordern, die dem Computer der Serverseite zugänglich ist.
  11. Clientvorrichtung nach Anspruch 10, des Weiteren gekennzeichnet durch ein Verschlüsselungsmittel (1220), das an das Prozessormittel gekoppelt ist, um die ersten Nachrichten zu verschlüsseln.
  12. Clientvorrichtung nach Anspruch 10, des Weiteren gekennzeichnet durch ein Entschlüsselungsmittel (1220), das an das Prozessormittel gekoppelt ist, um die zweiten Nachrichten zu entschlüsseln.
  13. Clientvorrichtung nach Anspruch 10, des Weiteren gekennzeichnet durch ein Datenspeicherungsmittel (1216), das an das Prozessormittel gekoppelt ist, um zu der Webseite gehörende Informationen zu speichern.
  14. Verfahren zum Entwickeln des Computerprogrammprodukts nach Anspruch 1, 2 oder 3, das die Schritte aufweist: Erzeugen (308) eines Seitendokuments, das die Webseite definiert; Empfangen (314) von Eingaben von einem Entwickler, wobei mindestens einige der Eingaben angeben, dass der Webseite eine Komponente hinzugefügt werden soll; und Bearbeiten des Seitendokuments in Reaktion auf diese Eingaben, wobei das Bearbeiten des Seitendokuments Hinzufügen (324) von ereignisgesteuertem Code zu dem Seitendokument beinhaltet, wobei der ereignisgesteuerte Code der Komponente zugeordnet ist und Code enthält, der durch den Computer (170) auf der Clientseite ausgeführt wird, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank anzufordern.
  15. Verfahren nach Anspruch 14, des Weiteren dadurch gekennzeichnet, dass mindestens einige der Eingaben angeben, dass zuvor erzeugter ereignisgesteuerter Code bearbeitet werden soll, wobei das Verfahren des Weiteren das Bearbeiten (342) des zuvor erzeugten ereignis gesteuerten Codes beinhaltet, um neuen Code zu erzeugen, der dem Seitendokument hinzugefügt (344) wird.
  16. Verfahren nach Anspruch 14, des Weiteren dadurch gekennzeichnet, dass mindestens einige der Eingaben anzeigen, dass eine Eigenschaft der Komponente einen speziellen Wert haben soll, wobei das Verfahren des Weiteren das Ändern (358) des ereignisgesteuerten Codes beinhaltet, um den speziellen Wert zu spezifizieren.
  17. Verfahren nach Anspruch 14, des Weiteren dadurch gekennzeichnet, dass das Seitendokument zu einem Computer (140) auf der Serverseite gesendet (368) wird.
  18. Verfahren nach Anspruch 17, des Weiteren dadurch gekennzeichnet, dass das Seitendokument (366) verschlüsselt wird, bevor das Seitendokument zu dem Computer auf der Serverseite gesendet wird.
  19. Verfahren nach Anspruch 14, des Weiteren dadurch gekennzeichnet, dass mindestens einige der Eingaben angeben, dass die Komponente mit einer zweiten Komponente eines zweiten Seitendokuments verlinkt werden soll, wobei das Verfahren des Weiteren das Hinzufügen (336) von Verlinkungscode zu dem Seitendokument beinhaltet, der, wenn er ausgeführt wird, dazu führt, das eine dem zweiten Seitendokument zugeordnete zweite Webseite sich automatisch aktualisiert, wenn die zweite Webseite zusammen mit der ersten Webseite angezeigt wird.
  20. Verfahren zum Bereitstellen von Zugang zu gespeicherten Informationen mit Empfangen (706) einer Anforderung von einem Computer (170) der Clientseite auf einem Computer (140) der Serverseite, wobei die Informationsanforderung in Reaktion auf die Ausführung von ereignisgesteuertem Code auf dem Computer der Clientseite erzeugt wurde, welcher in einem Webseitendokument enthalten ist, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank (914) anzufordern, die dem Computer auf der Serverseite zugänglich ist; Verarbeiten (714) der Anforderung, um gespeicherte Informationen zu identifizieren, die der Anforderung entsprechen; Erzeugen (714) einer Nachricht, die die gespeicherten Informationen enthält; und Senden (716) einer Nachricht an den Computer der Clientseite, so dass der Computer der Clientseite die gespeicherten Informationen in Reaktion auf die Ausführung des ereignisgesteuerten Codes anzeigen kann.
  21. Verfahren nach Anspruch 20, des Weiteren dadurch gekennzeichnet, dass die Anforderung eine Anforderung eines zweiten Webseitendokuments ist und die Verarbeitung (714) das Identifizieren der gespeicherten Informationen als das zweite Webseitendokument einschließt, und das Erzeugen der Nachricht das Einschließen des zweiten Webseitendokuments in die Nachricht beinhaltet.
  22. Verfahren nach Anspruch 21, des Weiteren gekennzeichnet durch: Ermitteln (708), ob ein Benutzer des Computers der Clientseite Rechte besitzt, um auf das zweite Webseitendokument zuzugreifen; und Umgehen des Erzeugens der Nachricht und Sendens der Nachricht, falls der Benutzer die Rechte nicht besitzt.
  23. Verfahren nach Anspruch 20, des Weiteren dadurch gekennzeichnet, dass die Anforderung eine Anforderung von zu einer Datenbank gehörenden Daten ist, und das Verarbeiten (714) das Identifizieren der Datenbank und Erhalten der Daten von der Datenbank beinhaltet, und das Erzeugen der Nachricht das Einschließen der Daten in die Nachricht einschließt.
  24. Verfahren nach Anspruch 23, des Weiteren gekennzeichnet durch: Ermitteln (708), ob ein Benutzer des Computers der Clientseite Rechte besitzt, um auf die Daten zuzugreifen; und Umgehen des Erzeugens der Nachricht und Sendens der Nachricht, falls der Benutzer die Rechte nicht besitzt.
  25. Verfahren zur Interaktion mit einer Webseite, die auf einem Computer (170) der Clientseite angezeigt wird, mit Anzeigen (1018) einer zu einem Webseitendokument gehörenden Webseite, wobei das Webseitendokument ereignisgesteuerten Code enthält, der einer oder mehreren Webseitenkomponenten des Webseitendokuments zugeordnet ist, dadurch gekennzeichnet, dass der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank (914) anzufordern, die dem Computer (140) der Serverseite zugänglich ist; und Ausführen (1030, 1032) des ereignisgesteuerten Codes, der in dem Webseitendokument enthalten ist.
  26. Verfahren nach Anspruch 25, des Weiteren dadurch gekennzeichnet, dass die Ausführung des ereignisgesteuerten Codes in Reaktion auf das Empfangen (1008) von Eingabe durchgeführt wird.
  27. Verfahren nach Anspruch 26, des Weiteren dadurch gekennzeichnet, dass die Eingabe angibt, dass eine zweite Webseite (1420) angefordert worden ist, wobei das Verfahren des Weiteren das Anfordern (1308) der zweiten Webseite von einem Computer (140) auf der Serverseite einschließt.
  28. Verfahren nach Anspruch 27, des Weiteren dadurch gekennzeichnet, dass die zweite Webseite von dem Computer auf der Serverseite empfangen (1310) und angezeigt (1318) wird.
  29. Verfahren nach Anspruch 28, des Weiteren dadurch gekennzeichnet, dass die erste Webseite und die zweite Webseite eine mit der ersten Seite verlinkte Komponente (1412) und eine mit der zweiten Seite verlinkte Komponente (1426) aufweisen, die zwischen der ersten Webseite (1410) und der zweiten Webseite (1420) verlinkt sind.
  30. Verfahren nach Anspruch 29, des Weiteren gekennzeichnet durch: Empfangen (1502) zusätzlicher Eingabe, die angibt, dass der Benutzer wünscht, dass die erste Webseite zusätzliche Daten anzeigt, die der mit der ersten Seite verlinkten Komponente zugeordnet sind; Erzeugen (1512) einer Informationsanforderung, die die zusätzlichen Daten anfordert und die verlinkten Daten anfordert, die der mit der zweiten Seite verlinkten Komponente zugeordnet sind; Senden (1514) der Informationsanforderung zu dem Computer der Serverseite; Empfangen (1516) der zusätzlichen Daten und der verlinkten Daten; Anzeigen (1518) der zusätzlichen Daten zusammen mit der mit der ersten Seite verlinkten Komponente; und Anzeigen (1518) der verlinkten Daten zusammen mit der mit der zweiten Seite verlinkten Komponente.
  31. Verfahren nach Anspruch 26, des Weiteren gekennzeichnet durch die Eingabe, die angibt, dass Daten angefordert worden sind, wobei das Verfahren des Weiteren das Anfordern (1514) der Daten von einem Computer der Serverseite einschließt.
  32. Verfahren nach Anspruch 31, des Weiteren dadurch gekennzeichnet, dass die Daten von dem Computer der Serverseite empfangen (1516) und angezeigt (1518) werden, wobei die Daten zusammen mit einer datenbankbezogenen Komponente auf der Webseite angezeigt werden.
  33. Verfahren nach Anspruch 32, des Weiteren dadurch gekennzeichnet, dass Statusvariablen, die auf dem Computer der Clientseite gespeichert sind, aktualisiert (1520) werden, wobei die Statusvariablen angeben, welche Datensätze in einer zu den Daten gehörenden Datenbank Daten enthalten, auf die als nächstes zugegriffen werden soll, falls der Computer der Clientseite eine zusätzliche Datenanforderung von dem Benutzer empfängt.
  34. Verfahren nach Anspruch 26, des Weiteren durch die Eingabe (1010) gekennzeichnet, die angibt, dass der Benutzer die Webseite und dazugehörende Daten auf dem Computer der Clientseite zu speichern wünscht, wobei das Verfahren des Weiteren das Speichern (1040) der Webseite und der dazugehörenden Daten auf dem Computer der Clientseite einschließt.
  35. Verfahren nach Anspruch 34, des Weiteren gekennzeichnet durch: Ermitteln (1038), ob die Webseite und die dazugehörenden Daten auf dem Computer der Clientseite gespeichert werden dürfen; und Umgehen des Speicherns der Webseite und der dazugehörenden Daten, falls die Webseite und die dazugehörenden Daten nicht auf dem Computer der Clientseite gespeichert werden dürfen.
  36. Verfahren nach Anspruch 25, des Weiteren gekennzeichnet durch: Erzeugen (1030) einer Informationsanforderung bezogen auf den ereignisgesteuerten Code; Senden (1030) der Informationsanforderung an einen Computer der Serverseite; Empfangen (1032) einer Nachricht, die gespeicherte Informationen einschließt, die der Informationsanforderung entsprechen, von dem Computer der Serverseite; und Anzeigen (1032) der gespeicherten Informationen in Reaktion auf die Ausführung des ereignisgesteuerten Codes.
  37. System zum Entwickeln, Verbreiten, Herunterladen und Ausführen von Webseiten, mit einem Webseitenentwicklungscomputer (110) nach Anspruch 4 mit einem ersten Prozessormittel (612), einem ersten Monitor (618), einem ersten Datenspeicherungsmittel (616), einem ersten Benutzereingabemittel (614) und einem ersten Kommunikationsmittel (622), wobei das erste Prozessormittel ein Seitenentwicklungswerkzeug initialisiert (301), mit dem ein menschlicher Entwickler unter Verwendung des ersten Benutzereingabemittels ein Webseitendokument erzeugt, indem eine Komponente auf einer Webseite angeordnet (320) wird, die auf dem ersten Monitor angezeigt wird, woraufhin das Seitenentwicklungswerkzeug ereignisgesteuerten Code, der der Komponente entspricht, von dem ersten Datenspeicherungsmittel abruft (322), wobei der ereignisgesteuerte Code durch den Computer auf der Clientseite ausgeführt wird, der die Webseite anzeigen wird, und der ereignisgesteuerte Code in der Lage ist, Zugriff auf und Verarbeitung von Daten in einer Datenbank anzufordern, und das Seitenentwicklungswerkzeug auch Datenbankinformationen zusammenträgt (324), falls die Komponente eine datenbankbezogene Komponente ist, Verlinkungscode erzeugt (334), falls der menschliche Entwickler angibt, dass die mit datenbankbezogene Komponente mit einer zweiten datenbankbezogenen Komponente auf einer zweiten Webseite verlinkt werden soll, und den ereignisgesteuerten Code, Datenbankinformationen und Verlinkungscode in dem Webseitendokument anordnet, und der Webseitenentwicklungscomputer, wenn der menschliche Entwickler angibt, dass die durch das Webseitendokument definierte Webseite verbreitet werden soll, über das erste Kommunikationsmittel das Webseitendokument über ein erstes Netzwerk (102) an einen Computer (140) auf der Serverseite sendet (368); dem Computer (140) auf der Serverseite mit mindestens einem Kommunikationsmittel (910), einem zweiten Prozessormittel (912) und einem zweiten Datenspeicherungsmittel (914), wobei das Webseitendokument über das mindestens eine Kommunikationsmittel von dem ersten Netzwerk empfangen (702) wird und in dem zweiten Datenspeicherungsmittel gespeichert (704) wird, und, wenn ein Computer (170) auf der Clientseite das Webseitendokument anfordert (706), der Computer auf der Serverseite das Webseitendokument von dem zweiten Datenspeicherungsmittel abruft (714) und über das mindestens eine Kommunikationsmittel das Webseitendokument über ein zweites Netzwerk (102), das das erste Netzwerk sein kann, zu dem Computer auf der Clientseite sendet (716), und, wenn die Webseite auf dem Computer auf der Clientseite Daten aus einer Datenbank anfordert (706), der Computer auf der Serverseite die Daten abruft (714) und über das mindestens eine Kommunikationsmittel zu dem Computer auf der Clientseite sendet (716); und dem Computer (170) auf der Clientseite mit einem dritten Prozessormittel (1212), einem zweiten Monitor (1218), einem dritten Datenspeicherungsmittel (1216), einem zweiten Benutzereingabemittel (1214) und einem zweiten Kommunikationsmittel (1222), wobei das dritte Prozessormittel einen Browser initialisiert (1002), der über das zweite Kommunikationsmittel das Webseitendokument von dem Computer auf der Serverseite anfordert (1016) und das dritte Prozessormittel, nachdem das zweite Kommunikationsmittel das Webseitendokument empfängt (1018), das Anzeigen (1018) der Webseite, die dem Webseitendokument entspricht, über den zweiten Monitor ermöglicht, und der Prozessor, falls (1020) die Webseite die datenbankbezogene Komponente einschließt, den ereignisgesteuerten Code ausführt, der der datenbankbezogenen Komponente entspricht, wodurch bewirkt wird, dass der Computer auf der Clientseite über das dritte Kommunikationsmittel über das zweite Netzwerk eine Datenanforderung an den Computer auf der Serverseite sendet (1030) und der Prozessor nach Empfangen (1032) der Daten, die der Anforderung entsprechen, bewirkt, dass die Daten innerhalb der datenbankbezogenen Komponente auf der Webseite angezeigt (1032) werden, und Statusvariablen speichert (1034), die verwendet werden, falls zusätzliche Daten angefordert werden, die angeben, welche Daten angezeigt worden sind, und der dritte Prozessor, falls die datenbankbezogene Komponente mit der zweiten datenbankbezogenem Komponente verlinkt ist, den Verlinkungscode ausführt, und der dritte Prozessor, falls der menschliche Benutzer anfordert, dass das Webseitendokument lokal auf dem Computer auf der Clientseite gespeichert werden soll, bewirkt, dass das Webseitendokument, die Daten und die zusätzlichen Daten und die Statusvariablen in dem dritten Datenspeicherungsmittel gespeichert (1040) werden, so dass der menschliche Benutzer die Daten und die zusätzlichen Daten im Offline-Zustand ändern, sich zu einem späteren Zeitpunkt erneut mit dem Computer auf der Serverseite verbinden und geänderte Daten auf den Computer auf der Serverseite herunterladen (1110) kann, die dann die Datenbank unter Verwendung der geänderten Daten ändern (1124).
DE60006065T 1999-01-15 2000-01-14 Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten Expired - Fee Related DE60006065T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US231123 1999-01-15
US09/231,123 US6631512B1 (en) 1999-01-15 1999-01-15 Method and system for database-driven, scalable web page development, deployment-download, and execution
PCT/US2000/001016 WO2000042528A1 (en) 1999-01-15 2000-01-14 Method and system for database-driven, scalable web page development, deployment-download, and execution

Publications (2)

Publication Number Publication Date
DE60006065D1 DE60006065D1 (de) 2003-11-27
DE60006065T2 true DE60006065T2 (de) 2004-07-08

Family

ID=22867823

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60006065T Expired - Fee Related DE60006065T2 (de) 1999-01-15 2000-01-14 Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten

Country Status (8)

Country Link
US (2) US6631512B1 (de)
EP (1) EP1145151B1 (de)
AT (1) ATE252747T1 (de)
AU (1) AU768423B2 (de)
CA (1) CA2358531A1 (de)
DE (1) DE60006065T2 (de)
ES (1) ES2212768T3 (de)
WO (1) WO2000042528A1 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6714219B2 (en) * 1998-12-31 2004-03-30 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6594691B1 (en) 1999-10-28 2003-07-15 Surfnet Media Group, Inc. Method and system for adding function to a web page
GB2361341A (en) * 2000-03-03 2001-10-17 Knowhow Systems Ltd Document creation and delivery
US20090100168A1 (en) * 2000-05-24 2009-04-16 Harris Scott C Automatic location detection in a computing environment
CA2322594C (en) * 2000-10-06 2005-01-11 Ibm Canada Limited-Ibm Canada Limitee System and method for managing web page components
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7051084B1 (en) * 2000-11-02 2006-05-23 Citrix Systems, Inc. Methods and apparatus for regenerating and transmitting a partial page
US6823359B1 (en) * 2000-11-21 2004-11-23 Pfs Trader Tools, Llc System and method for continually updating dynamic data
US7130889B2 (en) * 2000-11-29 2006-10-31 Ncr Corporation Method of printing information by a network kiosk
US20020105548A1 (en) 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface using property paths
DE50111786D1 (de) * 2000-12-15 2007-02-15 Siemens Ag Verschlüsselung von Steuerungsprogrammen
US20020078103A1 (en) * 2000-12-20 2002-06-20 Gorman William Phillip Wizard development kit
EP1638020A3 (de) 2000-12-22 2006-05-24 Research In Motion Limited System und Verfahren zur Informationsnavigation mittels eines drahtlosen Kommunikationsgerätes
US7165088B2 (en) * 2001-01-24 2007-01-16 Microsoft Corporation System and method for incremental and reversible data migration and feature deployment
US7739590B2 (en) * 2001-03-01 2010-06-15 Accenture Llp Automatic generation of personal homepages for a sales force
US7150001B1 (en) * 2001-03-19 2006-12-12 Microsoft Corporation System and method to facilitate design-time component discovery
US20020178254A1 (en) * 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
US6862620B2 (en) * 2001-06-07 2005-03-01 International Business Machines Corporation Web page monitoring system and methods therefor
US7406664B1 (en) * 2001-06-15 2008-07-29 Microsoft Corporation System for integrating HTML Web site views into application file dialogs
US7287227B2 (en) * 2001-06-29 2007-10-23 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
DE20212755U1 (de) * 2001-08-20 2002-11-28 Softworks Ag Daten-Kommunikationssystem, sowie zentraler Rechner zur Verwendung in einem Daten-Kommunikationssystem
EP1296251A1 (de) * 2001-09-19 2003-03-26 Kreter, Martin Dokumentenerzeugungssystem
US7278161B2 (en) 2001-10-01 2007-10-02 International Business Machines Corporation Protecting a data processing system from attack by a vandal who uses a vulnerability scanner
US20030135821A1 (en) * 2002-01-17 2003-07-17 Alexander Kouznetsov On line presentation software using website development tools
US7194473B1 (en) * 2002-02-15 2007-03-20 Oracle International Corporation Application platform development environment
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US20030187968A1 (en) * 2002-03-28 2003-10-02 Gateway, Inc. Layer menus and multiple page displays for web GUI
US7249313B2 (en) 2002-06-26 2007-07-24 International Business Machines Corporation Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line
US7200645B2 (en) 2002-06-26 2007-04-03 International Business Machines Corporation Running dynamic web pages off-line with a wizard
US8046682B2 (en) * 2002-12-02 2011-10-25 Siebel Systems, Inc. Method and system for accessing business applications via a standard interface
US7958186B2 (en) * 2003-03-14 2011-06-07 Sap Ag Restructuring integration system
JP2005122377A (ja) * 2003-10-15 2005-05-12 Konica Minolta Business Technologies Inc 制御装置、制御指示装置、制御プログラムおよび制御指示プログラム
US8527943B1 (en) * 2004-02-12 2013-09-03 Raju V. Chiluvuri System and method of application development
US8782200B2 (en) * 2004-09-14 2014-07-15 Sitespect, Inc. System and method for optimizing website visitor actions
CN101297268B (zh) * 2005-03-03 2016-05-25 汤姆森路透社全球资源公司 用于设计自动业务过程应用程序的集成系统、工具和方法
US9632758B2 (en) * 2005-08-24 2017-04-25 International Business Machines Corporation System and method for generating content rules for a website
US7881999B2 (en) * 2005-12-29 2011-02-01 Sap Ag System and method for generating a reimbursement request
US7783985B2 (en) * 2006-01-04 2010-08-24 Citrix Systems, Inc. Systems and methods for transferring data between computing devices
US9454734B2 (en) * 2006-02-21 2016-09-27 International Business Machines Corporation Heuristic assembly of a component based application
US20070232333A1 (en) * 2006-03-30 2007-10-04 Sap Ag Method and system for providing work related information in a mobile environment
US20080120723A1 (en) * 2006-10-31 2008-05-22 Bellsouth Intellectual Property Corporation Methods, systems and computer program products for authorizing access to features of software applications
US8095910B2 (en) * 2007-04-10 2012-01-10 Microsoft Corporation Interruptible client-side scripts
US20080263142A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Meta Data Driven User Interface System and Method
US9830309B2 (en) 2007-04-27 2017-11-28 Oracle International Corporation Method for creating page components for a page wherein the display of a specific form of the requested page component is determined by the access of a particular URL
US8201096B2 (en) 2007-06-09 2012-06-12 Apple Inc. Browsing or searching user interfaces and other aspects
US8190707B2 (en) 2007-10-20 2012-05-29 Citrix Systems, Inc. System and method for transferring data among computing environments
US9635135B1 (en) 2008-04-21 2017-04-25 United Services Automobile Association (Usaa) Systems and methods for handling replies to transaction requests
CN101350822B (zh) * 2008-09-08 2011-06-15 南开大学 一种Internet恶意代码的发现和追踪方法
CA2739595A1 (en) * 2008-10-19 2010-04-22 Research In Motion Limited Web application framework for enabling optimum rendering performance on a client based upon detected parameters of the client
US8458246B2 (en) * 2008-10-19 2013-06-04 Research In Motion Limited Web application framework method enabling the creation of applications that provide an interface with clients that is independent of scripting capability
US20100169169A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation System and method for using transaction statistics to facilitate checkout variance investigation
US8515979B2 (en) * 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
KR101689745B1 (ko) * 2010-09-06 2016-12-27 삼성전자주식회사 스크립트에 의한 동적 리소스 정보를 처리하는 웹 브라우징 시스템 및 방법
US8689181B2 (en) * 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
WO2014056145A1 (zh) * 2012-10-09 2014-04-17 华为技术有限公司 使Web应用获取数据库变化的方法和系统
CN116361748B (zh) * 2023-04-03 2023-09-15 武汉金力软件有限公司 一种软件供应链安全检测方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835712A (en) * 1996-05-03 1998-11-10 Webmate Technologies, Inc. Client-server system using embedded hypertext tags for application and database development
US5784058A (en) * 1996-05-28 1998-07-21 Sun Microsystems, Inc. User-controllable persistent browser display pages
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
US5742768A (en) 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6105012A (en) 1997-04-22 2000-08-15 Sun Microsystems, Inc. Security system and method for financial institution server and client web browser
US6085120A (en) * 1997-11-17 2000-07-04 International Business Machines Corporation Data system processing and method for creating application extension
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
US6353839B1 (en) * 1998-04-30 2002-03-05 Openwave Systems Inc. Method for inline variables management in a hypermedia display language
US6529910B1 (en) * 1998-09-18 2003-03-04 David E. Fleskes Apparatus and method for automatically generating worldwide web pages based on real world domain data
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6397217B1 (en) * 1999-03-04 2002-05-28 Futuretense, Inc. Hierarchical caching techniques for efficient dynamic page generation

Also Published As

Publication number Publication date
ATE252747T1 (de) 2003-11-15
US6631512B1 (en) 2003-10-07
DE60006065D1 (de) 2003-11-27
WO2000042528A1 (en) 2000-07-20
AU768423B2 (en) 2003-12-11
US20040143591A1 (en) 2004-07-22
ES2212768T3 (es) 2004-08-01
AU2728300A (en) 2000-08-01
CA2358531A1 (en) 2000-07-20
EP1145151B1 (de) 2003-10-22
EP1145151A1 (de) 2001-10-17

Similar Documents

Publication Publication Date Title
DE60006065T2 (de) Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten
DE60029774T2 (de) Videokonferenzsystem
DE69729926T2 (de) Netzwerkbrowser
DE69829253T2 (de) Verfahren zum Umsetzen vom Dateiformat und Dateisystem, Informationsverarbeitungssystem und elektronisches Handelsverkehrssystem mit diesem Verfahren
DE69736697T2 (de) Verfahren und Gerät zur Steuerung von Zugriff auf Systembetriebsmittel
DE69633564T2 (de) Zugangskontrolle und überwachungssystem für internetserver
DE112012000944B4 (de) Auf einer Webseite selbst erfolgende Bearbeitung und Austausch von Webinhalt in Echtzeit
DE10052313B4 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
DE69734048T2 (de) Erfassung und Betrieb von ferngeladener Software durch einen Applet-modifizierten Browser
DE602004003135T2 (de) Einheitliches management von netzressourcen für gleichzeitige teilnahme mehrerer nutzer an einer sitzung
DE102006007084B4 (de) System zum Liefern von Programmen zu einer von einem Nutzer bedienbaren Vorrichtung
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE102013222290A1 (de) System und Verfahren zur gemeinsamen Nutzung von Ermittlungsergebnisdaten
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE60029334T2 (de) Selbstbedienungsterminals zum anbieten von fremdanwendungen
DE60122298T2 (de) Dateneingabe
DE112014001363T5 (de) Verfahren, Vorrichtung und computer-lesbares Medium zum Datentokenisieren
DE102010023691A1 (de) Gemeinsame Nutzung von dynamischen Inhaltsvoreinstellungen und Verhalten von EDV-Geräten
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE19953055C2 (de) Vorrichtung und Verfahren zur geschützten Ausgabe eines elektronischen Dokuments über ein Datenübertragungsnetz
DE10135136A1 (de) Sichere Datenberichtausbildung und -zustellung
DE10118064B4 (de) Erweiterung Browser-bezogener Internetseiteninhaltskennzeichen und Kennwortüberprüfung auf Kommunikationsprotokolle
DE10290696T5 (de) Verfahren und System zum drahtlosen Zugriff auf einen Computer eines Benutzers
DE102008019658A1 (de) System und Verfahren zum Unterbringen oder Veröffentlichen eines Inhalts
DE10146977B4 (de) Elektronisches Personaldaten-Verwaltungssystem

Legal Events

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