-
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.