-
Die
vorliegende Erfindung bezieht sich allgemein auf ein Verfahren,
ein System und ein Programmprodukt zum Drucken eines Dokuments,
das eine Mehrzahl von Seiten aufweist, insbesondere auf ein verbessertes
Verfahren, ein System und ein Programmprodukt zum Drucken eines
Dokuments unter Verwendung von Webbilderzeugungsoperationen.
-
Die
Verwendung von Webanwendungen ist im Verlauf der Jahre stark angewachsen,
da das Internet immer weiter entwickelt wird. Da die meisten Webanwendungen
entworfen sind, um mit Plattform-übergreifenden Browsern zu arbeiten,
arbeiten dieselben unabhängig
von dem Betriebssystem („OS" = operating system). Anders
ausgedrückt
können
die meisten Webanwendungen mit jedem Betriebssystem arbeiten, wie
z. B. LINUX®,
WINDOWS® oder
MACINTOSH®.
-
Spezielle
Verhaltensprobleme entstehen während
gewissen Druckoperationen, wenn die Seiten zum Drucken außerhalb
der numerischen Reihenfolge angefordert werden. Eine Duplexspezifikation
könnte
z. B. die Seiten 1 und 3 anfordern und dann 2 und 4. Bestimmte Druckoperationen,
wie z. B. das Broschürendrucken,
könnten
Seiten außer
der Reihenfolge erfordern, wie z. B. 1, 99, 2, 98, etc. Um dies
zu ermöglichen,
ist üblicherweise
eine bedeutende Speichermenge erforderlich, um die dazwischenliegenden
Seiten temporär
zu speichern. Dementsprechend mußten Druckerentwerfer früher angemessene
Speichermengen einlagern, um eine derartige Druckspezifikation zu
ermöglichen.
Ein Aspekt der vorliegenden Erfindung richtet sich auf das Lösen dieses
Problems.
-
Die
DE 19921120 A1 beschreibt
ein Verfahren und ein System zum Ausschießen von Druckdaten. Gemäß diesem
System werden zunächst
Druckdaten in einer logischen Seitenfolge zum Drucken bereitgestellt. Ein
Parameter des Aufzeichnungsträgers,
auf dem die Druckdaten gedruckt werden, wird bestimmt, der für die Positionen
des Druckbildes auf dem gefalteten Aufzeichnungsträger relevant
ist. In Abhängigkeit
von diesem Parameter wird vor dem Drucken eine Positionskorrektur
der Seiten durchgeführt,
so daß die
Druckbilder aufeinanderfolgender Seiten passgenau liegen. Die Druckdaten
werden zu Beginn der Verarbeitung für das vollständige Dokument
bereitgestellt.
-
Die
JP 10-269039 A betrifft ein Drucksystem, bei dem der Druckserver
mit einem www-Server verbunden ist, wobei ein Drucker Daten über den
Druckserver druckt, die von einem Hostcomputer, der mit dem www-Server
verbunden ist, empfangen werden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, ein System
und ein Programmprodukt zu schaffen, daß bei Druckspezifikationen
zum Drucken von Seiten außer
der Reihenfolge den hierfür
erforderlichen Speicherbedarf reduziert.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein System gemäß Anspruch
5 und ein Programmprodukt gemäß Anspruch
11 gelöst.
-
Kurz
ausgedrückt
schafft die vorliegende Erfindung ein Verfahren zum Drucken eines
Dokuments, das eine Mehrzahl von Seiten aufweist, wobei jede der
Seiten des Dokuments durch Seitenbilddaten (canvas = ein Satz von
Bilddaten, der für
eine einzelne Seite bestimmt ist) beschrieben ist, wobei das Verfahren
folgende Schritte aufweist: Empfangen eines Auftrags zum Drucken
des Dokuments, wobei der Auftrag eine dem Dokument zugeordnete Druckspezifikation
aufweist; Bestimmen einer Reihenfolge, in der die Seitenbilddaten
gemäß der dem
Dokument zugeordneten Druckspezifikation zu drucken sind; Erhalten
der Seitenbilddaten in der bestimmten Reihenfolge; und Bereitstellen
der Seitenbilddaten in der bestimmten Reihenfolge zum Drucken.
-
Gemäß einem
Aspekt umfaßt
das Verfahren ferner den Schritt des Erhaltens von Inhaltsformaten,
in denen die Seitenbilddaten verfügbar sind, und den Schritt
des Auswählens
eines gewünschten
Formates aufweist, wobei der Schritt des Erhaltens von Seitenbilddaten
das Erhalten von Seitenbilddaten in dem ausgewählten Format aufweist.
-
Vorzugsweise
zeigt die Druckspezifikation einen Duplex-Druck oder einen Broschüren-Druck
an.
-
Weiterhin
vorzugsweise umfaßt
das Verfahren ferner den Schritt des Druckens der Seitenbilddaten.
-
Die
vorliegende Erfindung schafft ferner ein System zum Drucken eines
Dokuments, das eine Mehrzahl von Seiten aufweist, wobei jede der
Seiten des Dokuments durch Seitenbilddaten beschrieben ist, wobei das
System folgende Merkmale aufweist: eine erste Komponente zum Empfangen
eines Auftrags zum Drucken des Dokuments, wobei der Auftrag eine
dem Dokument zugeordnete Druckspezifikation aufweist; eine zweite
Komponente zum Bestimmen einer Reihenfolge, in der die Seitenbilddaten
gemäß der dem
Dokument zugeordneten Druckspezifikation zu drucken sind; eine dritte
Komponente zum Erhalten von Seitenbilddaten in der bestimmten Reihenfolge;
und eine vierte Komponente zum Verarbeiten der Seitenbilddaten in
der bestimmten Reihenfolge zum Drucken.
-
Vorzugsweise
ist die erste Komponente ein Webinhalt, der innerhalb eines Webbrowsers
arbeitet und durch einen Webserver bereitgestellt wird.
-
Weiterhin
vorzugsweise umfaßt
der Webinhalt die zweite und die dritte Komponente.
-
Ferner
umfaßt
der Webdienst vorzugsweise die zweite und die dritte Komponente.
-
Vorzugsweise
umfaßt
der Webserver die vierte Komponente.
-
Die
vorliegende Erfindung schafft ferner ein Programmprodukt zum Drucken
eines Dokuments, das eine Mehrzahl von Seiten aufweist, wobei jede
der Seiten des Dokuments durch Seitenbilddaten beschrieben ist,
wobei das Programmprodukt einen computerlesbaren Code aufweist,
um zu bewirken, daß ein
System die erfindungsgemäßen Verfahrensschritte
ausführt,
wenn der computerlesbare Code auf dem System abläuft.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Diagramm des Aufbaus eines Klientenserver-Netzwerksystems, in dem die vorliegende
Erfindung implementiert werden kann;
-
2 ein
Diagramm des Aufbaus des Klientenserver-Netzwerksystems von 1,
wobei der Bilderzeugungsklient außerhalb einer Brandmauer gezeigt
ist;
-
3 ein
Diagramm des Aufbaus eines zweiten Klientenserver-Netzwerksystems,
in dem die vorliegende Erfindung implementiert werden kann;
-
4 ein
Diagramm des Aufbaus des Klientenserver-Netzwerksystems von 3,
wobei der Bilderzeugungsklient außerhalb einer Brandmauer gezeigt
ist;
-
5 ein
Diagramm des Aufbaus des Klientenservernetzwerks unter Verwendung
eines gemeinschaftlich verwendeten oder Gruppenzusammensetzungs-Speichers und Graphikspeichers;
-
6A und 6B ein
Flußdiagramm,
das die bevorzugte Funktionalität
des Übertragungsverfahrens
der vorliegenden Erfindung darstellt.
-
7 ein
Flußdiagramm,
das die bevorzugte Funktionalität
zum Auswählen
eines Profils über 6 darstellt.
-
8 ein
schematisches Diagramm, das die Operation der Erfindung für ein Beispiel
auf einer sehr hohen Ebene darstellt.
-
9 ein
Diagramm des Aufbaus eines beispielhaften Bilderzeugungsklienten.
-
10 ein
schematisches Blockdiagramm eines Ausführungsbeispiels eines Graphikspeichers.
-
11 ein
schematisches Blockdiagramm eines zweiten Ausführungsbeispiels eines Graphikspeichers.
-
12 ein
schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels
zum Ermöglichen,
daß ein
Drucker oder eine andere Vorrichtung Dokument- oder Druckauftrag-Daten in einer vorbestimmten
Seitenbilddaten-Reihenfolge anfordert.
-
Glossar der verwendeten
Ausdrücke
und Akronyme
-
Die
folgenden Ausdrücke
und Akronyme werden in der gesamten, detaillierten Beschreibung
verwendet:
„API". Eine Anwendungsprogrammschnittstelle
(API = application programming interface) ist eine Bibliothek von
Verfahren in Form von Programmen, die durch ein System einer bestimmten
Art (ein Beispiel ist ein Web-basiertes Bilderzeugungssystem, wie
in der vorliegenden Erfindung) bereitgestellt werden, das es Klientenprogrammen
(Webinhalt, der innerhalb des Browsers arbeitet ist ein Beispiel)
ermöglicht,
mit diesem System zu interagieren. Ein Verfahren des Erzeugens einer
API ist es, eine Bibliothek zu erzeugen. In Java z. B. wird eine
Bibliothek (üblicherweise
eine Jar-Datei genannt)
durch Definieren von einer Klasse oder von Klassen, Kompilieren
der Klasse oder der Klassen und Gruppieren der Klasse oder der Klassen
in einer Bibliothek erzeugt. Es könnte z. B. die nachfolgende
Klasse erzeugt werden:
classBaseConversionAPI {static public
String convert-BaseToBase(
String inNumber, int inBase, int outBase) {//Code zum Zurückgeben
einer Zeichenfolge, die inNumber konvertiert outBase darstellt }}
-
Diese
Klasse würde
dann mit dem folgenden Befehl kompiliert werden:
java.exe BaseConversionAPI.java.
-
ANMERKUNG:
Programme werden üblicherweise
in Textdateien gespeichert, die „kompiliert" werden, um „Objektdateien" zu erzeugen, die
die ausführbaren
(oder interpretierbaren) Befehle enthalten. In diesem Fall ist das
Programm in der Datei BaseConversionAPI.java enthalten. Der Vorgang
des Kompilierens erzeugte eine Datei mit dem Namen „BaseConversionAPI.class", die Befehle für eine spezifische
Rechenarchitektur (in diesem Fall die Java Virtual Machine) enthält, die
dem Programm entsprechen.
-
Als
nächstes
in diesem Beispiel wird eine Jar-Datei erzeugt:
jar.exe cvf
BaseConversionAPI.tar BaseConversionAPI.class
-
Dieser
Befehl erzeugt eine „Bibliothek"-Datei, die die BaseConversionAPIclass
enthält.
Dieser letzte Schritt ist nicht absolut erforderlich. In manchen
Fällen
werden APIs als Dateien bereitgestellt, die ausführbare Befehle enthalten (wie
z. B. die BaseConversionAPI.class-Datei).
-
Bezugnahmen
betreffend die Erzeugung von APIs:
http://www.library.yale.edu/orbis2/public/activity/API.html
-
Es
wird darauf hingewiesen, daß die
APIs zu den Netzwerkdiensten (Graphikspeicher, Zusammensetzungsspeicher
und Be nutzerprofilspeicher, die alle nachfolgend erörtert werden)
erzeugt werden, um durch eine Fernaufruftechnik, wie z. B. CORBA,
JAVA-RMI, DCOM, RPC oder SOAP zugreifbar zu sein. Eine breite Vielzahl
von gedruckten Bezugnahmen ist verfügbar, die beschreiben, wie
APIs erzeugt werden können,
um durch eine Fernaufruftechnik, wie z. B. eine der oben genannten
Techniken, zugreifbar zu sein.
-
Obwohl
Bibliotheken in diesem Patent als APIs bezeichnet werden ist es
wichtig zu erkennen, daß eine API
nicht wirklich eine Bibliothek ist; eine API ist eine Schnittstelle,
die eine Bibliothek implementiert. Um jedoch den Text in diesem
Patent zu vereinfachen, wird eine API und die Implementierung einer
API als eine Bibliothek als miteinander austauschbar verwendet.
-
„Klientenserver". Ein Modell der
Wechselwirkung in einem verteilten System, in dem ein Programm auf einer
Site eine Anforderung an ein Programm auf einer anderen Site sendet
und auf eine Antwort wartet. Das Anforderungsprogramm wird der „Klient" genannt, und das
Programm, das auf die Anforderung antwortet, wird der „Server" genannt. In dem
Kontext des World Wide Web (weltweites Netz = Internet) (nachfolgend
erörtert) ist
der Klient ein „Webbrowser" (oder einfach „Browser"), der auf dem Computer
eines Benutzers läuft;
das Programm, das auf Browseranforderungen durch Liefern von Webseiten
oder anderer Typen von Webinhalt antwortet wird üblicherweise als ein „Webserver" bezeichnet.
-
„Zusammensetzung". Eine Zusammensetzung,
die auch als eine „Graphikzusammensetzung" bezeichnet wird,
weist eine Datei mit Verbindungen zu Graphikdaten auf, die als eine
einzelne Einheit, d. h. eine Graphik, bedient werden. Die Datei
umfaßt
ferner üblicherweise
Informationen über
die Plazierung dieser Graphiken auf einer Sequenz von Seitenbilddaten.
Sie beschreibt ferner, wie eine oder mehrere Graphiken aus einer
oder mehreren Quellen auf einer Sequenz von Seitenbilddaten auf
eine Vielzahl von unterschiedlichen Wegen kombi niert werden. Die
Verwendung von Zusammensetzungen ermöglicht mehrere Zusammensetzungen,
um auf eine Graphik in einem Graphikspeicher Bezug zu nehmen, ohne
die Graphik kopieren zu müssen.
-
„Zusammensetzungsspeicher". Zusammensetzungsspeicher
bezieht sich auf einen Dienst (idealerweise implementiert als ein
Netzwerkdienst), der Bilderzeugungszusammensetzung(en) speichert
und Zugriff zu denselben liefert, auf die durch den Benutzer oder
Webdienste zugegriffen werden kann. In diesem Kontext umfaßt das Liefern
von „Zugriff" das Liefern von
Verfahren zum Aufbauen von Zusammensetzungen, zum Modifizieren von
Zusammensetzungen und zum stückchenweisen
Zugreifen auf dieselben. Ein Satz von Verfahren z. B., der für eine Ausführung über den
Zusammensetzungsspeicher verfügbar
ist, könnte
folgende Verfahren umfassen: Erhalten einer Zusammensetzung, Erzeugen
einer Zusammensetzung, Löschen
einer Zusammensetzung, und Modifizieren einer Zusammensetzung.
-
„Inhalt". Ein Satz von ausführbaren
Befehlen, der durch einen Server an einen Klienten geliefert wird, und
der durch den Klienten ausführbar
sein soll, um dem Klienten eine gewisse Funktionalität zu liefern.
Webinhalt bezieht sich auf Inhalt, der durch die Operation eines
Webbrowsers ausgeführt
werden soll. Webinhalt kann daher auf nicht erschöpfende Weise
eines oder mehrere der folgenden aufweisen: HTML-Code, SGML-Code,
XML-Code, XSL-Code, CSS-Code, Java-applet, JavaScript- und C-„Sharp"-Code.
-
„Austauschinfrastruktur". Eine Austauschinfrastruktur
ist eine Sammlung von Diensten, die durch ein Netzwerk verteilt
werden, das Bilderzeugungsdaten speichert, die einem bestimmten
Benutzer durch ein Benutzerprofil zugeordnet sind.
-
„Brandmauer" (Firewall). Eine
Brandmauer filtert ungewollte Kommunikationspakete in einer oder mehreren
Richtungen aus. Mittels eines Beispiels aber nicht einschränkend können bei einer
Implementierung einer Brandmauer Anforderungen von innerhalb einer
Brandmauer an Zugriffsdaten an der Außenseite der Brandmauer getätigt werden,
und Antworten auf derartige Anforderungen werden üblicherweise
erlaubt. Kommunikationen, die von außerhalb der Brandmauer an Vorrichtungen
innerhalb der Brandmauer eingeleitet werden, werden üblicherweise
nicht erlaubt. Im allgemeinen kann die Brandmauer durch einen Brandmauer-Stellvertreterserver
bzw. Proxyserver implementiert sein, der es Vorrichtungen innerhalb
der Brandmauer ermöglicht,
HTTP-Anforderungen an Webserver außerhalb der Brandmauer zu leiten.
Offensichtlich können
auch andere Protokolle zum Implementieren einer Kommunikation durch
die Brandmauer verwendet werden.
-
„Allgemeine
Zugriffsbefehle".
Ein allgemeiner Zugriffsbefehl bezieht sich auf einen ausführbaren
Befehl, der verursachen soll, daß die ausführende Vorrichtung allgemeine
Zugriffsanforderungen erzeugt, um auf einen Satz von Graphikdaten
zuzugreifen. Diese Befehle rufen Verfahren auf, die z. B. durch
eine Bilderzeugungserweiterung bereitgestellt werden. Verfahren,
die durch die Umgebung bereitgestellt werden, in der das Programm
ausgeführt
wird, werden üblicherweise
eine „Anwendungsprogrammschnittstelle" (API = application programming
interface) genannt. Es wird darauf hingewiesen, daß ein allgemeiner
Zugriffsbefehl den Ort der graphischen Zieldaten nicht umfaßt. Üblicherweise
werden die graphischen Zieldaten vorausgewählt (im allgemeinen durch einen
Benutzer), und deren Ort wird aus Informationen bestimmt, die lokal
innerhalb der Ausführungsvorrichtung
beibehalten werden.
-
„Hyperlink". Eine Navigationsverbindung
von einem Dokument zu einem anderen, von einem Abschnitt (oder einer
Komponente) eines Dokuments zu einem anderen oder zu einer Web-Ressource, wie z.
B. einem Java-applet. Üblicherweise
ist eine Hyperlink als ein hervorgehobenes Wort oder eine Phrase
angezeigt, die durch Klicken auf dieselbe unter Verwendung einer
Maus ausgewählt
werden kann, um zu dem zugeord neten Dokument oder dem Dokumentabschnitt
zu springen, oder um eine bestimmte Ressource wiederzugewinnen.
-
„Hypertext-System". Ein Computer-basiertes
Informationssystem, in dem Dokumente (und möglicherweise andere Typen von
Datenentitäten)
miteinander über
Hyperlinks verbunden sind, um ein durch den Benutzer navigierbares „Web" (bzw. Netz) zu bilden.
-
„Graphikdaten". Graphikdaten beziehen
sich auf digitale Daten, die in der Lage sind, als zwei- oder mehr-dimensionale
Graphiken dargestellt zu werden, wie z. B. als eine Portable Document
Format- („PDF-") Datei oder eine
Joint Photographic Experts Group („JPEG")-Datei.
-
„Graphikspeicher". Graphikspeicher
bezieht sich auf einen Netzwerkdienst oder eine Speicherungsvorrichtung
zum Speichern von Graphikdaten, auf die durch den Benutzer oder
durch andere Netzwerkdienste zugegriffen werden kann. Der Graphikdatenspeicher
nimmt vorzugsweise die Graphikdaten in mehreren Standarddateiformaten
an, und die Graphikdaten werden wenn nötig in dieses Dateiformat umgewandelt,
abhängig von
der Implementierung.
-
„Internet". Eine Sammlung von
miteinander verbundenen oder getrennten Netzwerken (öffentlich und/oder
privat), die miteinander durch einen Satz von Standardprotokollen
(wie z. B. TCP/IP und HTTP) verbunden sind, um ein globales, verteiltes
Netz zu bilden. (Während
dieser Ausdruck sich auf das beziehen soll, das nun allgemein als
das Internet bekannt ist, soll es ebenfalls Variationen umfassen,
die in der Zukunft gemacht werden können, einschließlich Änderungen
und Hinzufügungen
zu bestehenden Standardprotokollen.)
-
„World
Wide Web" („Web"). Wird hierin verwendet,
um sich allgemein sowohl (i) auf eine verteilte Sammlung von verbundenen,
durch den Benutzer betrachtbaren Hypertextdokumente (üblicherweise
bezeichnet als Webdokumente oder Web seiten), die über das
Internet zugreifbar sind und (ii) die Klienten- und Server-Softwarekomponenten
zu beziehen, die Benutzerzugriff auf derartige Dokumente unter Verwendung
von standardisierten Internetprotokollen liefern. Momentan ist das
primäre
Standardprotokoll, um es Anwendungen zu ermöglichen, Webdokumente zu lokalisieren
und zu erwerben, HTTP, und die Webseiten werden unter Verwendung
von HTML codiert. Die Ausdrücke „Web" und „World
Wide Web" sollen
jedoch WAP und WML für Mobiltelephon-Webbrowser
sowie andere aktuelle und zukünftige
Markierungssprachen und Transportprotokolle umfassen, die anstelle
von (oder zusätzlich
zu) HTML und HTTP verwendet werden können.
-
„Website". Ein Computersystem,
das Informationsinhalt über
ein Netzwerk unter Verwendung der Standardprotokolle des World Wide
Webs liefert. Üblicherweise
entspricht eine Website einem bestimmten Internetdomainnamen, wie
z. B. „HP.com", und umfaßt den Inhalt,
der einer bestimmten Organisation zugeordnet ist. Wie er hierin
verwendet ist soll der Ausdruck allgemein sowohl (i) die Hardware-/Software-Serverkomponenten,
die den Informationsinhalt über
das Netzwerk liefern und (ii) die „Ausgangsseiten"-Hardware-/Software-Komponenten
umfassen, die jegliche nichtstandardmäßige oder spezialisierten Komponenten
umfassen, die mit den Serverkomponenten interagieren, um Dienste
für Website-Benutzer
auszuführen.
Wichtig zu erwähnen
ist, daß eine
Website zusätzliche
Funktionen aufweisen kann, eine Website kann z. B. die Fähigkeit aufweisen,
Dokumente zu drucken, Dokumente zu scannen, etc.
-
„HTML" (HyperText Markup
Language = HyperText-Markierungssprache).
Eine Standardcodierungsvereinbarung und ein Satz von Codes zum Anbringen
von Präsentations-
und Verbindungs-Attributen an Informationsinhalt innerhalb von Dokumenten.
(HTML 2.0 ist momentan der primäre
Standard, der zum Erzeugen von Webdokumenten verwendet wird.) Während des
Verfassungsstadiums eines Dokuments sind die HTML-Codes (bezeichnet
als „Etiketten
bzw. Tags") innerhalb
des Infor mationsinhalts des Dokuments eingebettet. Wenn das Webdokument
(oder das HTML-Dokument) nachfolgend von einem Webserver an einen Browser übertragen
wird, werden die Codes durch den Browser interpretiert und verwendet,
um das Dokument anzuzeigen. Zusätzlich
können
die HTML-Etiketten beim Spezifizieren, wie der Webbrowser das Dokument anzeigen
soll verwendet werden, um Verbindungen zu anderen Webdokumenten
zu erzeugen (üblicherweise bezeichnet
als „Hyperlinks"). Für weitere
Informationen bezüglich
HTML, siehe Ian S. Graham, The HTML Source Book, John Wiley and
Sons, Inc., 1995 (ISBN 0471-11894-4).
-
„HTTP" (HyperText Transport
Protocol). Das standardmäßige World
Wide Web Klient-Server-Protokoll, das für das Austauschen von Informationen
(wie z. B. HTML-Dokumenten und Benutzeranforderungen für derartige
Dokumente) zwischen einem Browser und einem Webserver verwendet
wird. HTTP umfaßt
eine Anzahl von unterschiedlichen Typen von Meldungen, die von dem
Clienten an den Server gesendet werden können, um unterschiedliche Typen
von Serveraktionen anzufordern. Eine „GET-Meldung, die das Format GET<URL> aufweist, verursacht
z. B. daß der
Server das Dokument oder die Datei, die an dem spezifizierten URL
positioniert ist, zurücksendet.
-
„URL" (Uniform Resource
Locator = einheitlicher Ressourcenlokalisierer). Eine eindeutige
Adresse, die den Ort einer Datei oder einer anderen Ressource auf
dem Internet oder einem Netzwerk umfassend spezifiziert. Das allgemeine
Format eines URL ist protocol://machine address:port/path/filename.
-
„Benutzerinformationen". Benutzerinformationen
sind Identifizierungs- und Sicherheits-Informationen, die beim Zugreifen
auf Graphikzusammensetzung (en) und Graphikdaten verwendet werden,
die einem bestimmten Benutzerprofil zugeordnet sind. Es wird vorzugsweise
entweder direkt oder indirekt durch Verfahren auf dieselben zugegriffen,
die durch eine Erweiterungskomponente bereitgestellt werden, die
in den Webbrowser integriert ist.
-
„PDA" (Personal Digital
Assistent = persönlicher
digitaler Assistent). Ein kleiner handgehaltener Computer, der zum
Schreiben von Nachrichten, Aufzeichnen von Verabredungen, Verwalten
von E-Mail und Browsen im Web verwendet wird, mit im allgemeinen
bedeutend weniger Speicherungskapazität als ein Desktop-Computer.
-
„Personalbilderzeugungsverwahrungsort". Ein Personalbilderzeugungsverwahrungsort
ist ein konzeptioneller Ausdruck, der die Austauschinfrastruktur
beschreibt, die zum Austauschen von Graphikzusammensetzungen und
Graphikdaten mit Webdiensten verwendet wird. Benutzer sind ihren
Graphikdaten durch Benutzerprofile zugeordnet. Es sollte darauf
hingewiesen werden, daß der
Personalbilderzeugungsverwahrungsort jeglichen Typ oder jegliche
Kombination von Datenspeicherungsvorrichtungen darstellen kann.
-
„Bezugnahme". Eine Bezugnahme
soll ein allgemeiner Ausdruck sein, der eine URL-Bezugnahme umfaßt, oder
in manchen Fällen
einen Zeiger, eine Buchsennummer oder ein anderes Hintergrunddetail,
hinsichtlich eines anderen internen oder externen Orts.
-
„Webdienst". Ein Webdienst soll
sich auf einen Dienst beziehen, der (zumindest teilweise) durch
einen Webserver bereitgestellt wird. Aber ein Webdienst ist ein
breiteres Konzept als ein Webserver. In dieser Hinsicht ist ein „Web-Server" ein Programm, das
unter Verwendung des Klient/Server-Modells und des Hypertext-Übertragungsprotokolls des World
Wide Web (Hypertext Transfer Protocol) die Dateien, die Webseiten
bilden an Webbenutzer liefert (deren Computer HTTP-Klienten enthalten,
die ihre Anforderungen weiterleiten). Jeder Computer auf dem Internet,
der eine Website enthält,
muß ein
Webserverprogramm aufweisen. Die am weitesten verbreiteten Webserver sind
momentan die Internetinformationsserver (Internet Information Server) von
Microsoft, die mit dem Windows NT-Server geliefert werden; Netscape Fast
Track- und Enterprise-Server; und Apache, ein Webserver für UNIX-basierte
Betriebssysteme. Andere Webserver umfassen den Webserver von Novell
für Benutzer
von deren NetWare Betriebssystem und die Familie der Lotus Domino-Server
von IBM, primär
für OS/390
und AS/400-Kunden von IBM.
-
Webserver
sind oft Teil eines größeren Pakets
von Internet- und
Intranet-verwandten Programmen zum Bedienen von E-Mail, Herunterladen
von Anforderungen für
File Transfer Protocol-Dateien
und zum Aufbauen und Veröffentlichen
von Webseiten. Dieses größere Paket
wird als der Webdienst bezeichnet. Parameter für einen Webserver umfassen,
wie gut derselbe mit verschiedenen Betriebssystemen und anderen
Servern arbeitet, dessen Fähigkeit
zum Handhaben der Programmierung der Serverseite und das Veröffentlichen, Suchmaschinen
und Site-Aufbautools in dem Paket.
-
„XML". XML (Extensible
Markup Language = erweiterbare Markierungssprache) ist eine flexible
Art, allgemeine Informationsformate zu erzeugen und sowohl das Format
als auch die Daten auf dem World Wide Web, Intranets und anderswo
gemeinschaftlich zu verwenden. XML ist „erweiterbar", da die Markierungssymbole
im Gegensatz zu HTML unbegrenzt und selbstdefinierend sind. XML
ist ein einfacherer und verwendungsfreundlicherer Teilsatz der Standard
Generalized Markup Language (SGML = Standardkorrekturzeichensatz), der
Standard dafür,
wie eine Dokumentstruktur erzeugt wird. XML ist ähnlich der Hypertext Markup
Language (HTML = Hypertextmarkierungssprache). Sowohl XML als auch
HTML enthalten Markierungssymbole, um den Inhalt einer Seite oder
einer Datei zu beschreiben. HTML beschreibt jedoch den Inhalt einer
Webseite (überwiegend
Text und Graphikbilder) nur hinsichtlich der Tatsache, wie derselbe
angezeigt und mit demselben interagiert werden soll. Der Buchstabe „p", der zwischen Markierungsetiketten
plaziert ist, startet z. B. ei nen neuen Absatz. XML beschreibt den
Inhalt bezüglich
der Frage, welche Daten beschrieben werden. Das Wort „phonenum", das innerhalb von
Markierungsetiketten plaziert ist, könnte z. B. anzeigen, daß die Daten,
die folgen, eine Telephonnummer waren. Dies bedeutet, daß eine XML-Datei
durch ein Programm als reine Daten verarbeitet werden kann, oder
daß es
mit ähnlichen
Daten auf einem Computer gespeichert oder wie eine HTML-Datei angezeigt
werden kann.
-
Die
nachfolgende anhängige
Anmeldung wird hierdurch durch Bezugnahme als Ganzheit aufgenommen: „SYSTEM
AND METHOD FOR PROCESSING DATA IN A DISTRIBUTED SYSTEM" von Shell Simpson und
Philip Verghese, Seriennr. 09/712336, eingereicht am 13. November
2000.
-
Ein
Beispiel einer Klient-Server-Architektur, in der die vorliegende
Erfindung implementiert sein kann, ist in 1 gezeigt.
-
Die
vorliegende Erfindung bezieht sich bei einem Aspekt auf das Implementieren
des Konzepts, um zu ermöglichen,
daß die
Informationen einem Benutzer ihm/ihr folgen, d. h. von einer Vielzahl
von unterschiedlichen Orten aus zugreifbar sind, sowohl innerhalb
einer Brandmauer als auch außerhalb
einer Brandmauer, sowie von einer Vielzahl von unterschiedlichen
Maschinen. Dieses Konzept wird unter Verwendung von einem oder mehreren
Benutzerprofilen 24 und 26 in Kombination mit
dem Konzept eines Personalbilderzeugungsverwahrungsorts 50 zum
Speichern von Benutzergraphiken über
eine verteilte Umgebung implementiert. Der Personalbilderzeugungsverwahrungsort 50 kann über mehrere
Orte, mehrere Maschinen und mehrere Architekturen verteilt sein.
Einige Graphikinformationen können
z. B. in einem lokalen Graphikspeicher 60 hinter einer
Brandmauer 14 gespeichert sein, während andere Graphiken in externen
Graphikspeichern 70 außerhalb der
Brandmauer 14 gespeichert sein können. Ein derartiger lokaler
oder externer Graphikspeicher könnte
auf der Festplatte des Benutzers sein. Ein anderer lokaler oder externer
Graphikspeicher könnte
die Festplattenspeicherung für
ein Multifunktions-Peripheriegerät
sein, wie z. B. einen Drucker/Kopierer/Faxmaschine. Ein anderer
lokaler oder externer Graphikspeicher könnte auf einem Intranet- oder
einem Internet-Server sein. Der tatsächliche Speicherungsort wird
gemäß Benutzer-Präferenz und
Anwendung bestimmt. Somit könnten
Graphikinformationen, die von den Multifunktions-Peripheriegeräten angesammelt
wurden, in einem Graphikspeicher auf der Vorrichtung bleiben und
einem Zugriff durch den Benutzer unterliegen, wodurch das Verhalten
verbessert wird. Auf ähnliche
Weise könnten
Graphikinformationen, die für
Internetzielorte bestimmt waren, in einem Graphikspeicher auf einem
Server gespeichert sein, der über
das Internet zugreifbar ist. Graphikinformationen, für die eine
breite Zugreifbarkeit erwünscht
ist, könnten
im Internet gespeichert werden. Aus der Perspektive der Bilderzeugungszielorte,
d. h. Websites, die Graphikinformationen verwenden, wären alle
verfügbaren
Informationen ohne spezielle Kenntnisse verfügbar. Bei der vorliegenden
Erörterung
soll der Ausdruck „Graphik" jegliches Bild,
einschließlich
eines Textbildes, eines Photobildes, PDF-Dateien und sonstiges umfassen, das
in zwei- oder mehrdimensionalen Graphiken dargestellt werden kann.
Für weitere
Informationen, siehe Definition für „Graphikdaten" in dem Definitionsabschnitt.
Für weitere
Informationen über
die Bedeutung eines „Graphikspeichers", siehe die nachfolgende,
detaillierte Erörterung.
-
Zu
Zwecken einer Übersicht
von 1 ist eine Bilderzeugungs-Klientenmaschine 12 hinter
einer Brandmauer 14 gezeigt. Der Bilderzeugungsklient 12 kann
mittels eines Browsers 18 auf den Webinhalt 16 zugreifen,
der von den Servern 30 und 32 innerhalb der Brandmauer 14 erhalten
wurde, und auf den Webinhalt, der von den Servern 40 und 42 außerhalb
der Brandmauer erhalten wurde. Der Bilderzeugungsklient kann Graphiken
in seiner Personalbilderzeugungsverwahrungsort 50 speichern,
die von diesem Webinhalt erhalten wurden, in der Form oder dem Kontext
einer Zusammensetzung (siehe die Definition von „Zusammensetzung" oben), entweder
innerhalb oder außerhalb
der Brandmauer 14.
-
BILDERZEUGUNGSERWEITERUNG.
Der Bilderzeugungsklient 12 umfaßt eine Bilderzeugungserweiterung 22 (ebenfalls
gezeigt als 922 in 9). Die
Bilderzeugungserweiterung 22 ist konfiguriert, um auf die
Ausführung
von allgemeinen Zugriffsbefehlen von dem Webinhalt 16 durch
Erzeugen von/Abbilden auf entsprechende Bilderzeugungsklientspezifische
Befehle von dem Bilderzeugungsklient 12 zu antworten. Dies passiert
jedoch nur, wenn Benutzerinformationen 20 (die Bezugnahmen 24, 26 betreffend
die Profile 64, 74 des Benutzers enthalten) für die Bilderzeugungserweiterung 22 verfügbar sind,
um auf den Personalbilderzeugungsverwahrungsort 50 des
Benutzers zuzugreifen.
-
Die
Bilderzeugungserweiterung 22 kann als eine Anwendungsprogrammschnittstelle
(API) implementiert/beabsichtigt sein. Die API, die für die Bilderzeugungserweiterung
verwendet wird, entspricht vorzugsweise einem systemweiten Standard.
Die allgemeinen Zugriffsbefehle von dem Webinhalt können, wenn
sie ausgeführt
werden, verursachen, daß Bilderzeugungserweiterungs-API-Aufrufe
an die API ausgegeben werden, um über Bilderzeugungsklienten-spezifische
Befehle einen Zugriff auf den Personalbilderzeugungsverwahrungsort 50 des
Benutzers zu bewirken. Es ist offensichtlich, daß viele andere Wege (sowohl
Hardware als auch Software) verfügbar
sind, um diese Funktionalität
zu implementieren. Die vorliegende Erfindung ist nicht auf einen
der Wege begrenzt. Im wesentlichen ist die Bilderzeugungserweiterung 22 für das Zugreifen
auf Benutzerinformationen 20 und zum Liefern einer undurchsichtigen
Schnittstelle zwischen dem Webinhalt 16, der in dem Browser 18 abgespielt
wird, und dem Personalbilderzeugungsverwahrungsort 50 und
anderen Funktionalitäten
des Bilderzeugungsklienten gedacht. Eine beispielhafte Implementierung
der Bilderzeugungserweiterung wird nachfolgend detaillierter erörtert.
-
Die
Benutzerinformationen 20 in 1 weisen
mindestens eine oder mehrere Bezugnahmen auf eines oder mehrere
Benutzerprofile auf. Jede Bezugnahme würde beispielsweise aber nicht
einschränkend durch
eine URL-Bezugnahme oder in manchen Fällen einen Zeiger, eine Buchsenanzahl
oder ein anderes Hintergrunddetail implementiert. Die Bezugnahme
für das
Benutzerprofil könnte
auf einen Ort innerhalb des Bilderzeugungsklienten selbst weisen
oder auf einen Ort außerhalb
des Bilderzeugungsklienten, wie z. B. den Server 66 oder
den Server 76, der in 1 gezeigt
ist. In 1 umfassen die Benutzerinformationen 20 eine Bezugnahme 24 auf
ein internes Benutzerprofil 64 und eine Bezugnahme 26 auf
ein externes Benutzerprofil 74, die in einem Server 66 bzw. 76 positioniert
sind.
-
Jedes
Benutzerprofil 64 und 74, auf das Bezug genommenen
wird, könnte
eine Benutzeridentifikationsinformation und mindestens eine Bezugnahme
auf den gesamten oder einen Abschnitt eines Personalbilderzeugungsverwahrungsortes 50 für dieses
Benutzerprofil umfassen. Wie oben erwähnt wurde, kann eine Bezugnahme
eine URL-Bezugnahme (oder einen Zeiger, eine Buchse oder ein anderes
Hintergrunddetail) auf einen oder mehrere Zusammensetzungsspeicher
umfassen. Bei dem Beispiel von 1 umfaßt das interne Benutzerprofil 64 eine
Bezugnahme 67 auf einen Standardzusammensetzungsspeicher 62 auf
einem separaten Server 63. Zusätzlich dazu umfaßt das interne
Benutzerprofil 64 eine Bezugnahme 68 auf einen
Standardgraphikspeicher 60 auf einem separaten Server 61 und
eine Bezugnahme 69 auf eine Standardzusammensetzung innerhalb
eines bestimmten Zusammensetzungsspeichers, der der Standardzusammensetzungsspeicher 62 sein
könnte.
Es wird darauf hingewiesen, daß im
Gegensatz zur Standardzusammensetzungsspeicherbezugnahme 67 und
zur Standardgraphikspeicherbezugnahme 68, die sich im allgemeinen
nicht ändern
und durch die Bilderzeugungserweiterung zum Lokalisieren des Standardgraphikspeicherdienstes
und des Standardzusammensetzungsspeicherdienstes verwendet werden,
die Standardzusammensetzungsbezugnahme 69 bei vielen Ausfüh rungsbeispielen
ausgelegt ist, um sich oft zu ändern.
Dies ist eine Bezugnahme auf die Zusammensetzung, auf die durch „Standard" durch „Bilderzeugungszielortdienste" zugegriffen wird. Bilderzeugungsquelldienste
ignorieren üblicherweise
den bestehenden Wert einer Standardzusammensetzungsbezugnahme 69 und
sind nur am Ändern
des Werts der Standardzusammensetzungsbezugnahme 69 interessiert,
so daß sich
derselbe auf eine Zusammensetzung bezieht, die durch den Bilderzeugungsquelldienst
erzeugt wurde.
-
Es
wird ferner darauf hingewiesen, daß die Profilbezugnahmen im
allgemeinen bestimmen, welche Zusammensetzungen für den Benutzer,
der das Profil verwendet, aufgezählt/verfügbar sind.
-
Auf ähnliche
Weise ist in 1 ferner die Bezugnahme 26 auf
das externe Benutzerprofil 74 gezeigt. In 1 ist
das externe Benutzerprofil auf dem Server 76 extern zu
dem Bilderzeugungsklienten 12 und extern zu der Brandmauer 14 angeordnet.
Es wird darauf hingewiesen, daß die
Brandmauer üblicherweise
die Grenze zwischen einem privaten Intranet und dem öffentlichen
Internet liefert. Das externe Benutzerprofil 74 umfaßt eine
Bezugnahme 77 auf einen Standardzusammensetzungsspeicher 72 auf
einem Server 73, der extern zu der Brandmauer 12 ist,
eine Bezugnahme 78 auf einen Standardgraphikspeicher 70 auf
einem Server 71, der ebenfalls extern zu der Brandmauer 14 ist,
und eine Bezugnahme 79 auf eine Standardzusammensetzung
in dem externen Standardzusammensetzungsspeicher 72 oder
einem anderen Zusammensetzungsspeicher extern zu der Brandmauer.
-
Es
sollte darauf hingewiesen werden, daß mehrere interne und/oder
externe Benutzerprofile vorliegen können, die automatisch oder
manuell basierend auf einem oder mehreren Kriterien auswählbar sind.
Es könnte
z. B. ein unterschiedliches internes und externes Benutzerprofil
für jeden
unterschiedlichen Bilderzeugungsklienten vorliegen, den der Benutzer
verwenden kann, wobei das bestimmte interne oder externe Benutzerprofil
durch Liefern der Benutzeridentifikationsinformationen, anderer
Informationen einschließlich
Positionsinformationen und der Bilderzeugungsklientenmaschineinformationen
an die Bilderzeugungserweiterung 22 ausgewählt werden.
-
Es
wird darauf hingewiesen, daß der
gleiche Benutzer mehrere Benutzerprofile haben kann. Dies ist besonders
vorteilhaft wenn Brandmauern verwendet werden. Der Grund dafür ist, wie
oben erwähnt
wurde, daß unterschiedliche
Graphikspeicher und Zusammensetzungsspeicher verwendet werden, abhängig davon, ob
sich der Bilderzeugungsklient innerhalb der Brandmauer oder außerhalb
der Brandmauer befand. Mehrere Benutzerprofile für den gleichen Benutzer können zu
mehreren Personalbilderzeugungs-Verwahrungsortsegmenten führen, die
diesem einzelnen Benutzer zugeordnet sind, wobei jedes derselben über ein
unterschiedliches Benutzerprofil zugreifbar ist. Es wird darauf
hingewiesen, daß mehrere
Benutzer in einer Gruppe (jeder mit einem eigenen Personalbilderzeugungsverwahrungsort)
unter Verwendung von gemeinschaftlich verwendeten Diensten, z. B.
eines Gruppenzusammensetzungsspeichers, wie oben erwähnt wurde,
auf die gleichen Bilderzeugungsinformationen Bezug nehmen kann.
Ein Teil jedes Personalbilderzeugungsverwahrungsortes jedes Benutzers
kann bei diesem Szenario durch eine Gruppe mit gleicher Zuordnung
gemeinschaftlich verwendet werden, wie z. B. einem Gruppenprojekt.
-
Um
ein Benutzerprofil auszuwählen,
wenn mehr als eines bereitgestellt ist, umfaßt der Bilderzeugungsklient 12 einen
Code (der üblicherweise
in der Bilderzeugungserweiterung 22 vorliegt), zum Auswählen von
einem aus internem Benutzerprofil 64 und externem Benutzerprofil 74.
Bei einem Ausführungsbeispiel könnte dies
einfach durch einen Code implementiert sein, der ein Menü an den
Benutzer des Bilderzeugungsklienten 12 liefert, um die
manuelle Auswahl der Bezugnahme auf das gewünschte Benutzerprofil zu ermöglichen.
Alternativ oder zusätzlich
dazu könnte
der Code implemen tiert sein, um das Benutzerprofil automatisch basierend
auf einem Kriterium auswählen,
z. B. welche Bilderzeugungsklientenmaschine verwendet wird, oder ob
der Bilderzeugungsklient mit einem Netzwerk innerhalb der Brandmauer
verbunden ist oder sich anderweitig innerhalb der Brandmauer befindet,
oder ob derselbe außerhalb
der Brandmauer 14 ist.
-
In
Betrieb, um den Standardzusammensetzungsspeicher zu erhalten, verursachen
der Standardgraphikspeicher, die Standardzusammensetzung und der
Webinhalt ein Verfahren, das durch die Bilderzeugungserweiterung 22 (die
Bilderzeugungserweiterungs-API) bereitgestellt wird. Die Bilderzeugungserweiterung 22 erhält wiederum
eine Bezugnahme auf das entsprechende Benutzerprofil in einem Bilderzeugungsklientenprofilspeicher
in dem Benutzerinformationsabschnitt 20 und ruft (unter
Verwendung von Fernaufruftechniken wie CORBA, SOAP, etc.) Verfahren
auf, die durch den Profilspeicher für Zwecke des Erhaltens des
Standardzusammensetzungsspeichers, des Standardgraphikspeichers
oder der Standardzusammensetzung bereitgestellt sind.
-
Profilspeicher.
Es wird darauf hingewiesen, daß der
Profilspeicher einfach ein Dienst in dem Benutzerinformationsabschnitt 20 ist,
der entsprechende Verfahren umfaßt, um Profile in einer Profilspeicherung
zu erzeugen, zu modifizieren, auf dieselben zuzugreifen und dieselben
zu löschen.
Ein derartiger Benutzerprofilspeicherdienst könnte Daten umfassen, d. h.
eines oder mehrere Benutzerprofile, und eine Mehrzahl von typischen
Verfahren zum Zugreifen auf und Modifizieren der gespeicherten Benutzerprofile.
Der Dienst könnte
z. B. Verfahren mit dem Titel „erhalte
ein Benutzerprofil", „modifiziere
ein Benutzerprofil" und „lösche ein
Benutzerprofil" umfassen.
Dementsprechend bildet die Bilderzeugungserweiterungs-API auf die
entsprechenden Verfahren in dem Benutzerprofilspeicher ab, in dem
das Benutzerprofil gespeichert ist, um die Bezugnahme auf die Gegenstände (wie
z. B. Standardgraphikspeicher, Standardzusammen setzungsspeicher
und Standardzusammensetzung) in dem Benutzerprofil zu erhalten.
-
Es
sollte darauf hingewiesen werden, daß der Bilderzeugungsklient,
der innerhalb der Brandmauer 12 positioniert gezeigt ist,
auf den Webinhalt außerhalb
der Brandmauer von den Webservern 40 und 42 aus
zugreifen kann. Auf ähnliche
Weise kann jedes Benutzerprofil auf Zusammensetzungsspeicher und
Graphikspeicher außerhalb
der Brandmauer 14 Bezug nehmen.
-
Üblicherweise
liefert jeder Webserver unterschiedlichen Webinhalt, abhängig von
den Diensten und Graphiken, die derselbe anbietet. Jeder Webinhalt
ist mit bestimmten, ausführbaren
Befehlen vorkonfiguriert, abhängig
von dem Typ des Dienstes, den die Servermaschine liefert. Bei diesem
Beispiel kann der Webserver 40 für einen Druckdienst vorgesehen
sein, wobei der Webserver 30 einen speziellen Photographikdienst
liefern kann. Folglich kann sich der Webinhalt von dem Server 30 von
dem Webinhalt von dem Server 40 unterscheiden, wobei jeder
unterschiedliche ausführbare
Befehle an den Browser 18 umfaßt.
-
Der
Benutzer speichert anfänglich üblicherweise
Graphiken, an denen ein ausgewählter
Webdienst (ein Druckerdienst, z. B.) in dem Personalbilderzeugungsverwahrungsort
des Benutzers arbeiten sollte, wobei die bestimmte Speicherung innerhalb
des Personalbilderzeugungsverwahrungsortes des Benutzers gemäß dem Benutzerprofil
ausgewählt
ist, das aktiv ist, oder als manuell durch den Benutzer ausgewählt, oder
alternativ als durch den Webdienst oder eine andere Anwendung ausgewählt, die
in dem Browser arbeitet. Beispielhaft könnte der Benutzer eine Graphik
speichern, um in seinem/ihrem Personalbilderzeugungsverwahrungsort 50 innerhalb
der Brandmauer 14 in einem internen Graphikspeicher bearbeitet
zu werden, der der interne Standardgraphikspeicher 60 sein
könnte.
Der bestimmte interne Graphikspeicher, der für diese Speicherung verwendet
wird, würde
z. B. entweder manuell über
eine Popup-Menü-Darstellung
an einen Benutzer oder automatisch durch eine Bilderzeugungserweiterung 22 ausgewählt werden,
die die Informationen in einem oder mehreren internen Benutzerprofilen 64 auf
einen Server 66 verweist und auf demselben verwendet. Wie
oben erwähnt
wurde, würde
das interne Benutzerprofil 64 üblicherweise eine Bezugnahme 67 umfassen,
wie z. B. einen einheitlichen Ressourcenlokalisierer (URL), auf
einen internen Standardzusammensetzungsspeicher 62, der
jeglicher durch den Benutzer oder das System ausgewählte interne
Zusammensetzungsspeicher sein könnte.
Das interne Benutzerprofil würde
ferner eine Bezugnahme 68 auf den internen Standardgraphikspeicher 60 umfassen,
der wiederum jeglicher interne Graphikspeicher sein könnte, der
durch den Benutzer des Systems ausgewählt wird. Zusätzlich dazu
würde das
interne Benutzerprofil eine Bezugnahme 69 auf eine Standardzusammensetzung
umfassen. Diese Standardzusammensetzung wäre die letzte interne Zusammensetzung,
die durch den Benutzer ausgewählt
wurde.
-
Alternativ
dazu könnte
der Benutzer auswählen,
die Graphik zu speichern, um in einem Graphikspeicher in dem Personalbilderzeugungsverwahrungsort 50 des
Benutzers außerhalb
der Brandmauer 14 bearbeitet zu werden, oder dies könnte erforderlich
sein, da der Bilderzeugungsklient 12 außerhalb der Brandmauer 14 ist.
Dieser externe Graphikspeicher könnte
ein externer Standardgraphikspeicher 70 sein. Es wird darauf hingewiesen,
daß die
bestimmten Graphiken, auf die durch eine Zusammensetzung in einem
externen Zusammensetzungsspeicher Bezug genommen wird ferner außerhalb
der Brandmauer positioniert sein können. Der bestimmte externe
Graphikspeicher, der für
diese Speicherung verwendet wird, würde entweder manuell über ein
Popup-Menü oder
z. B. automatisch durch die Bilderzeugungserweiterung 22 ausgewählt werden,
die auf die Informationen in dem externen Benutzerprofil 74 auf
einen Server 76 Bezug nimmt und dieselben verwendet. Wie
erwähnt
wurde, würde
das externe Benutzerprofil eine Bezugnahme 77 umfassen,
wie z. B. einen URL, auf den externen Standardzusammensetzungsspeicher 72,
der jeglicher externe Zusammensetzungsspeicher sein könnte, der
durch den Benutzer oder das System ausgewählt wird. Das externe Benutzerprofil umfaßt ferner
eine Bezugnahme 78 auf den externen Standardgraphikspeicher 70,
der wiederum jeder externe Graphikspeicher sein könnte, der
durch den Benutzer des Systems ausgewählt wird. Zusätzlich dazu
umfaßt das
externe Benutzerprofil 74 eine Bezugnahme 79 auf
eine Standardzusammensetzung. Diese Standardzusammensetzung ist
die letzte externe Zusammensetzung, die durch den Benutzer ausgewählt wurde.
-
Die
Standardzusammensetzung könnte
auf verschiedene Weisen eingestellt sein. Die zwei üblichsten Weisen
sind: 1) Der Benutzer hat vorangehend eine Zusammensetzung durch
eine Internetbilderzeugungs-Homepage oder durch einen anderen Internetdienst
ausgewählt,
der eine Liste von verfügbaren
Zusammensetzungen anzeigt, die der Benutzer auswählen kann. Sobald dieselbe
ausgewählt
ist, wird die Standardzusammensetzungsbezugnahme in dem Profil des
Benutzers aktualisiert, um auf die ausgewählte Zusammensetzung Bezug
zu nehmen. Es ist wichtig darauf hinzuweisen, daß die Internetbilderzeugungs-Homepage
nur ein Beispiel eines Dienstes ist, der es dem Benutzer ermöglicht,
auszuwählen,
welche Zusammensetzung die Standardzusammensetzung sein sollte.
Andere Webdienste können
die gleiche Art von Fähigkeit liefern;
2) der Benutzer interagierte mit einem Webdienst, der eine neue
Zusammensetzung erzeugte. Üblicherweise
wollen Webdienste (Webserver plus Webinhalt, die in dem Browser
eines Benutzers laufen), die neue Zusammensetzungen erzeugen, daß die neue
Zusammensetzung leicht verfügbar
ist (was dadurch erreicht wird, die neu erzeugte Zusammensetzung
zu der Standardzusammensetzung zu machen).
-
Es
ist somit wichtig darauf hinzuweisen, daß der Benutzer implizit oder
explizit die Standardzusammensetzung in seinem/ihrem Profil auswählen kann.
Wie oben erwähnt
wurde, kann der Benutzer explizit die Standardzusammensetzung durch
Interagieren mit einem Webdienst auswählen (wie z. B. einem Internetbilderzeugungs-Heimdienst),
der Inhalt liefert, der in der Lage ist, die „Standardzusammensetzung" zu ändern. Alternativ
dazu kann der Benutzer die Standardzusammensetzung implizit durch
Interagieren mit Webdiensten auswählen, die neue Zusammensetzungen
erzeugen, und macht diese neuen Zusammensetzungen zu Standardzusammensetzungen,
um die neue Zusammensetzung leicht verfügbar zu machen, wenn der Benutzer nachfolgend
zu anderen Webdiensten blättert.
-
Als
ein Beispiel der Auswahl einer Standardzusammensetzung zur Verwendung,
so daß ein
anderer Webdienst an einer Graphik arbeiten kann, sei ein Graphikspeicher
auf einem Kameraserver angenommen, dessen Speicher Photographiken
enthält,
die der Benutzer drucken möchte.
Der Benutzer blättert
zu der Webseite der Kamera, wobei er/sie ein gewünschtes Photobild aussucht
und dasselbe in den Personalbilderzeugungsverwaltungsort des Benutzers
wiedergewinnt, wo dasselbe eine Graphik in einer neuen Zusammensetzung
wird. Diese Photozusammensetzung, die durch den Benutzer ausgewählt wurde,
ist nun die Standardzusammensetzung.
-
Bezug
nehmend nun auf die einzelnen Komponenten, weist der Bilderzeugungsklient
beispielsweise aber nicht einschränkend üblicherweise eine Konfiguration
mit einem Webbrowser 18, ein Speicherungsmodul eines bestimmten
Typs 20 mit Benutzerinformationen und anderen Informationen,
eine Bilderzeugungserweiterung 22 und eine bestimmte Form
einer Benutzerschnittstelle (nicht gezeigt), z. B. eine Tastatur-
und Anzeige-Vorrichtung, auf. Im allgemeinen ist der Browser unter
der Steuerung eines Mikroprozessors implementiert. Ein beispielhafter
Bilderzeugungsklient 12 in der Form eines Personalcomputers
ist in 9 gezeigt. 9 ist ein
Diagramm auf hoher Ebene eines Personalcomputer-/Bilderzeugungs-Klienten 12.
Wie gezeigt ist, umfaßt der
Personalcomputer 12 einen Prozessor 902, einen
Speicher 904, den Web-Browser 912, die Bilderzeugungserweiterung 922,
einen reservierten Speicherbereich 916 und ein oder mehrere
Eingangs-/Ausgangs-(I/O)Tore 908. Alle diese Komponenten
sind durch eine oder mehrere lokale Schnittstellen 910 verbunden.
Das I/O-Tor 908 ist mit den Servern verbunden, wie vorangehend
beschrieben wurde. Der Prozessor 902 wird verwendet, um
den Web-Browser 912 auszuführen.
-
Webinhalt.
In Betrieb greift der Browser 18 anfangs auf eine Website
zu und lädt
von derselben den Webinhalt unter Verwendung der entsprechenden
Anforderungsbefehle herunter (HTTP für die aktuelle Erzeugung von
Browsern). Wie durch die Definition hierin erwähnt wurde, umfaßt der Webinhalt 16 einen
Satz von ausführbaren
Befehlen, die in dem Browser 18 ausgeführt werden sollen, um dem Bilderzeugungsklienten 12 eine
vorbestimmte Funktionalität
zu liefern. Diese ausführbaren
Befehle weisen allgemeine Zugriffsbefehle (siehe Definition oben)
auf, die systemweite Befehle sind, ausgedrückt in einer bestimmten Sprache
(z. B. Java), und die die Verfahren einer Bilderzeugungserweiterungs-API
aufrufen, um auf den Personalbilderzeugungsverwahrungsort des Benutzers
zuzugreifen, um Webbilderzeugungsoperationen durchzuführen. Derartige
allgemeine Zugriffsbefehle können
beispielsweise aber nicht einschränkend Java, JavaScript und C-sharp-Befehle
sein. Der systemweite Standard spezifiziert üblicherweise „allgemeine
Zugriffsbefehle", „allgemeine
Zugriffsanforderungen" und „Zielgraphiken".
-
Eine
Vielzahl von Funktionalitäten
könnte
durch den Webinhalt geliefert werden. Der Webinhalt könnte z.
B. ausführbare
Befehle umfassen, um zu verursachen, daß der Bilderzeugungsklient 12 Zielgraphiken
anzeigt, d. h. verfügbare
Graphiken auf der zugegriffenen Webseite zeigt. Ein anderer Webinhalt
könnte
ausführbare
Befehle zum Anzeigen einer Drucktaste sein, und wenn die Drucktaste
geklickt wird verursachen, daß der Bilderzeugungsklient
einen Druckauftrag erzeugt, der eine Graphik in dem Personalbilderzeugungsverwahrungsort
für den
Benutzer beschreibt und den Druckauftrag an einen Drucker überträgt. Er könnte ferner
eine Vorschau auf die Zielgraphik liefern. Dementsprechend bezieht sich
der Webinhalt 16 in 1 auf einen
Satz von ausführbaren
Befehlen, die in den Browser 18 heruntergeladen werden,
um einen Dienst auszuführen,
der durch einen Benutzer angefordert wurde.
-
Der
Webbrowser führt
den Webinhalt aus, egal ob derselbe durch den Benutzer HTML-interpretiert/ausgeführt wird,
in Markierungen, die auf dem Bildschirm eines Benutzers angezeigt
werden, oder in Java und JavaScript oder bestimmten anderen, geeigneten
Sprachen. Wie vorangehend erwähnt
wurde, enthält
der Webinhalt ausführbare
Befehle, die die API verwenden, die durch die Bilderzeugungserweiterung 22 geliefert wird,
um indirekt auf den Personalbilderzeugungsverwahrungsort des Benutzers
zuzugreifen. Die ausführbaren
Befehle des Webinhalts könnten
z. B. einen undurchsichtigen Zugriff zu den Informationen von dem
Profil des Benutzers erhalten (um den Personalbilderzeugungs-Verwahrungsort
des Benutzers zu spezifizieren), durch Interagieren mit einem Benutzerprofilspeicherdienst,
in dem das Profil des Benutzers positioniert ist.
-
Die
ausführbaren
Befehle des Webinhalts könnten
diesen Zugriff ausführen,
um eine undurchsichtige Bezugnahme auf die Bezugnahme 67 auf
den internen Standardzusammensetzungsspeicher des Benutzers und
eine undurchsichtige Bezugnahme auf die Bezugnahme 68 auf
den internen Standardgraphikspeicher des Benutzers zu erhalten.
Der Webinhalt könnte
ferner die API verwenden, die durch die Bilderzeugungserweiterung 22 bereitgestellt
wird, um eine neue Graphik zu dem internen Standardgraphikspeicher über diese
undurchsichtige Bezugnahme auf die Bezugnahme 68 hinzuzufügen.
-
Bilderzeugungserweiterung.
Bei einem bevorzugten Ausführungsbeispiel
ist die Bilderzeugungserweiterung 22 aufgebaut, um zu verhindern,
daß der
Webinhalt 16 (d. h. die ausführbaren Befehle von dem Webdienst)
direkt auf willkürliche
Dienste und den Personalbilderzeugungsverwahrungsort des Benutzers
zugreifen. Im Grunde verwendet der Webinhalt die Bilderzeugungserweiterung
als den Gateway zum Zugreifen auf alles in dem Personalbilderzeugungsverwahrungsort
des Benutzers, einschließlich
der Informationen in dem Benutzerprofil. In der Erörterung
hierin wird der Ausdruck „undurchsichtige
Bezugnahme" verwendet.
Eine „undurchsichtige
Bezugnahme" ist
eine Bezugnahme, die keine Informationen über eine zugrundeliegende Ressource
darlegt. Der Besitzer einer undurchsichtigen Bezugnahme ist nicht
in der Lage, irgend etwas über
die Ressource aus der undurchsichtigen Bezugnahme zu bestimmen,
oder die undurchsichtige Bezugnahme zu modifizieren, um zu ändern, auf
welche Ressource Bezug genommen wird. (Im Gegensatz dazu, wenn ein URL
bereitgestellt ist, z. B. http://www.hp.com, wäre es für den Webinhalt relativ einfach,
den URL zu modifizieren, um auf eine unterschiedliche Ressource
Bezug zu nehmen, z. B. „http://www.xerox.com".)
-
Dieser
begrenzte Zugriff, der dem Webinhalt auferlegt ist, kann unter Verwendung
einer Vielzahl von Verfahren implementiert sein. Der Entwerfer kann
die API für
die Bilderzeugungserweiterung 22 so implementieren, daß die API
nur Bezugnahmen von dem Webinhalt akzeptiert, die vorangehend an
dieselbe durch die Bilderzeugungserweiterung 22 geliefert
wurden. Im Grunde wäre
der Bilderzeugungsklient-/Web-Inhalt
nicht in der Lage, willkürlich
Bezugnahmen zu liefern, wenn die API aufgerufen wird, bereitgestellt
durch die Bilderzeugungserweiterung. Der Webinhalt 16 (der
auf dem Bilderzeugungsklienten 12 läuft) muß zuerst undurchsichtige Bezugnahmen
unter Verwendung der API der Bilderzeugungserweiterung 22 erhalten,
um mit Bilderzeugungsklientenressourcen und dem Personalbilderzeugungsverwahrungsort 50 des
Benutzers zu kommunizieren. Wenn der Webinhalt 16 z. B.
auf den Standardgraphikspeicher 16 zugreifen will, ist
es erforderlich, daß der
Webinhalt 16 ein Verfahren (bereitgestellt durch die API
der Bilderzeugungserweiterung 22) aufruft, das eine undurchsichtige
Bezugnahme auf den Standardgraphikspeicher liefert. Diese Bezugnahme
könnte
dann bei den nachfolgenden Aufrufen durch den Webinhalt an die API
der Bilderzeugungserweiterung 22 verwendet werden.
-
Beispielsweise
aber nicht einschränkend
wäre ein
Lösungsansatz,
diese Einschränkung
zu erreichen, eine Sitzung zu erzeugen. Eine Bilderzeugungserweiterungs-API
für eine
bestimmte Operation könnte
z. B. folgendes aufweisen:
CreateParticularOperationSession():
sendet SessionID zurück
PerformOperation(Parameter,
SessionID id): sendet ein Boole'sches
Ergebnis zurück
(was ein Ergebnis anzeigt)
DeleteParticularOperationSession(
SessionID sessionID)
-
Dementsprechend
wäre es
erforderlich, daß der
Webinhalt die Bilderzeugungserweiterungs-API aufruft, um zuerst
eine Sitzung durch Aufrufen von CreateParticularOperationSession
zu erzeugen, die eine SessionID (Sitzungs-ID) zurücksendet.
Diese SessionID wird verwendet, um nachfolgend Bezug auf die bestimmte
Sitzung zu nehmen. Als nächstes
ruft der Webinhalt die PerformOperation (Durchführoperation) in der Bilderzeugungserweiterungs-API
mit einem bestimmten Eingang und der Sitzungs-ID auf. Der Webinhalt
kann dann eine Vielzahl von Handlungen ausführen, wird aber nicht in der
Lage sein, direkt auf Parameter und Operationen zuzugreifen, die
der Sitzungs-ID „zugeordnet" sind, da die Zuordnung
auf eine Weise erreicht wird, die für den Klienten „undurchsichtig" ist. Die Bilderzeugungserweiterungs-API
und nur diese API alleine weiß, wie
die Sitzungs-ID verwendet wird, um Bilderzeugungsklientenparameter
zu bestimmen/auf diese abzubilden. Oft ist die Sitzungs-ID eine
Bezugnahme, wie z. B. ein Zeiger, auf eine Datenstruktur, die für die Sitzung
relevante Informationen enthält.
Diese Datenstruktur könnte
die Parameter und andere zugehörige
Informationen enthalten. Wenn der Webinhalt seine Operation abgeschlossen
hat, ruft der Webinhalt die DeleteParticularOperationSession (lösche bestimmte
Operation-Sitzung) in der Bilderzeugungserweiterungs-API mit der
Sitzungs-ID als einem Parameter auf. Dies weist die Bilderzeugungserweiterung-API
an, jegliche Ressourcen (wie z. B. Speicher) freizugeben, die der
Sitzung zugeordnet sind. Es wird darauf hingewiesen, daß wenn der Webinhalt
die Sitzungs-ID ändert
dies dem Webinhalt nicht ermöglicht,
die eingeschränkten
Parameter zu erhalten, sondern daß derselbe nur die Bilderzeugungserweiterung
mit der bislang nicht gesehenen Sitzungs-ID verwechseln wird.
-
Die
API, die durch die Bilderzeugungserweiterung bereitgestellt wird,
kann üblicherweise
als eine Bibliothek von Verfahren implementiert sein, die einen
gesteuerten Zugriff auf die APIs liefern, die durch die Netzwerkdienste
bereitgestellt werden, die an dem Personalbilderzeugungsverwahrungsort
des Benutzers beteiligt sind. Diese Bilderzeugungserweiterungs-API
ist so implementiert, um die APIs aufzurufen, die durch den Benutzerprofilspeicher,
den Zusammensetzungsspeicher und den Graphikspeicher bereitgestellt
sind. Auf die API, die durch die Bilderzeugungserweiterung bereitgestellt
ist, wird allgemein nicht durch Fernaufruftechnik zugegriffen, obwohl
dieselbe implementiert sein kann, um eine Fernaufruftechnik zu verwenden,
um auf die APIs zuzugreifen, die durch die Netzwerkdienste bereitgestellt
sind, die an dem Personalbilderzeugungsverwahrungsort des Benutzers
beteiligt sind. Die API, die durch die Bilderzeugungserweiterung
bereitgestellt ist, ist keine exakte Kopie der APIs, die durch den
Benutzerprofilspeicher, den Zusammensetzungsspeicher und den Graphikspeicher
bereitgestellt sind, da diese API einen gesteuerten Zugriff auf
diese Netzwerkdienste durch (unter anderen Techniken) undurchsichtige
Bezugnahmen liefern möchte.
-
Aus
dem obigen Beispiel ist ersichtlich, daß der Webinhalt daran gehindert
wird, die API zu verwenden, die durch die Bilderzeugungserweiterung
geliefert wird, um auf willkürliche
Dienste zuzugreifen. Der Schlüssel
zu dieser Einschrän kung
ist, daß der
Webinhalt nicht in der Lage ist, die Adressen für diese willkürlichen
Dienste zu liefern. Der Webinhalt ist nur in der Lage, durch undurchsichtige
Bezugnahmen, die durch die Bilderzeugungserweiterungs-API geliefert
werden (um die tatsächliche
Bezugnahme/URL auf den Webinhalt nicht freizulegen) Bezug zu nehmen.
Der Webinhalt könnte
z. B. die API verwenden, um eine Liste von undurchsichtigen Bezugnahmen
auf verfügbare
Zusammensetzungen zu erhalten. Diese Liste von undurchsichtigen
Bezugnahmen bildet auf die echten Bezugnahmen/URLs in der Bilderzeugungserweiterung
allein ab. Somit ist es dem Webinhalt nicht erlaubt beim nachfolgenden
Bezug nehmen auf diese Zusammensetzung einen URL zu liefern (der
ein von demselben eigens erzeugter sein könnte), da dieser erzeugte URL
nicht innerhalb der Bilderzeugungserweiterung auf echte Ressourcen
abbildet. Statt dessen muß der
Webinhalt Bezugnahmen verwenden, die an denselben durch die API
geliefert werden, die nur im Kontext der aktuellen Sitzung mit dieser
API Sinn machen. Bestimmte unübliche
Aspekte des vorangehenden sind, daß der Code, der versucht, die
bestimmten Ressourcen zu verwenden, extern erhaltener Webinhalt
ist, und daß die
Ressourcen, auf die derselbe zugreifen/die derselbe verwenden möchte, Netzwerkdienste
sind.
-
Um
das vorangehende anders auszudrücken,
können
nur Bezugnahmen, die durch die Bilderzeugungserweiterung (durch
Aufrufen der API) erhalten wurden, nachfolgend durch den Webinhalt
verwendet werden. Andere „erfundene" Bezugnahmen werden
effektiv durch die Bilderzeugungserweiterung 22 als nicht relevant
behandelt.
-
Der
Webinhalt könnte
damit beginnen, eine undurchsichtige Bezugnahme auf den Standardzusammensetzungsspeicher
von der Bilderzeugungserweiterung (unter Verwendung der geeigneten
API) zu erhalten. Später
könnte
der Webinhalt die undurchsichtige Bezugnahme auf den Standardzusammensetzungsspeicher
verwenden, um einen Satz von Bezugnahmen auf Inhalt innerhalb des
Standardzusammensetzungsspeichers zu erhal ten. Diese undurchsichtigen
Bezugnahmen könnten
wiederum verwendet werden, um undurchsichtige Bezugnahmen auf Graphiken
zu erhalten, die jeder Zusammensetzung zugeordnet sind, so daß der Webinhalt
eine undurchsichtige Bezugnahme auf jede einzelne Graphik erhält. Es ist
jedoch wichtig darauf hinzuweisen, daß jede dieser undurchsichtigen
Bezugnahmen nur im Kontext der Wechselwirkung des Webinhalts mit
der Bilderzeugungserweiterung Sinn macht. Es ist ferner wichtig
darauf hinzuweisen, daß nur
die undurchsichtigen Bezugnahmen, die von der Bilderzeugungserweiterung
stammen, durch die Bilderzeugungserweiterung erkannt werden. (Bei
einer wahrscheinlichen Implementierung sind die „Bezugnahmen", die durch die Bilderzeugungserweiterung
geliefert werden, nur unsinnige Zeichenfolgen, die nur für die Bilderzeugungserweiterung
Sinn machen.)
-
Folglich
verhindert die Bilderzeugungserweiterung, daß böswilliger Webinhalt unangebracht
auf Dienste zugreift. Es wird darauf hingewiesen, daß die API
der Bilderzeugungserweiterung 22 üblicherweise keine Bezugnahmen
auf aktuelle Bezugnahmen liefert, d. h., Zusammensetzungsspeicher,
Benutzerprofilspeicher, die auf dem Netzwerk positioniert sind,
und daß dieselbe
diese Bezugnahme nur unter gesteuerten Umständen akzeptiert (z. B. wenn
eine Bezugnahme für
eine Graphik, die in dem Graphikspeicher einer Website positioniert
ist, einer Zusammensetzung hinzugefügt wird).
-
Wie
oben erwähnt
wurde ist es dem Webinhalt normalerweise nicht erlaubt, URLs an
die Bilderzeugungserweiterung zu liefern. Der Grund dafür ist, daß derselbe
diese Fähigkeit
ausnutzen könnte,
wenn der Webinhalt in der Lage wäre,
URLs zu liefern, um unangemessen Zugriff auf die Netzwerkdienste
zu erhalten, auf die der Webinhalt nicht versuchen sollte zuzugreifen,
er könnte
Graphikspeicherdienste z. B. willkürlich auswählen und sich in dieselben „einhacken". Obwohl es üblicherweise
nicht angemessen ist, dem Webinhalt zu ermöglichen, URLs an die Bilderzeugungserweiterung
zu liefern, gibt es doch einige Umstände, in denen es von einem Sicherheits-
und Risiko-Standpunkt aus Sinn macht. Wie oben erwähnt wurde
kann eine Website, die Webinhalt liefert, ihren eigenen Graphikspeicher
aufweisen. Die Graphiken in diesem Graphikspeicher (ob echt oder
virtuell) weisen URLs oder anderen Bezugnahmen auf, die beim Bezugnehmen
auf diese Graphiken verwendet werden müssen. Wenn der Webinhalt eine
Zusammensetzung erzeugen möchte,
die derartige Bezugnahmen enthält,
muß derselbe
eine Möglichkeit
zum Liefern dieser Bezugnahme an die Bilderzeugungserweiterung aufweisen.
Dem Webinhalt zu ermöglichen,
Bezugnahmen auf Graphiken zu liefern, die von dem gleichen Ort kommen
wie der Webinhalt, ist üblicherweise
relativ harmlos. Somit kann es dem Webinhalt möglich sein, den URL an die
Bilderzeugungserweiterung zu liefern, anstelle dem Webinhalt zu
ermöglichen, willkürlich jeglichen
URL in dem Personalbilderzeugungsverwahrungsort des Benutzers auszuwählen, unter der
gesteuerten Situation des Lieferns eines URL an die gleiche Website
wie der Webinhalt, oder basierend auf Nachweisen. Dies ermöglicht,
daß auf
von der Website gelieferte Graphiken Bezug genommen wird, während weiterhin
ein vernünftiger
Sicherheitspegel beibehalten wird.
-
Dementsprechend
kann es dem Webinhalt bei dem Beispiel, in dem der Webinhalt wünscht, einen Graphikspeicher
auf dem eigenen Server der Website des Webinhalts zu erzeugen, zu
verwalten und zu verwenden ermöglicht
werden, eine Bezugnahme auf die Graphiken hinzuzufügen, die
durch dessen Website verwaltet werden, auf eine Zusammensetzung,
die der Webinhalt erzeugt oder modifiziert. Bei diesem Beispiel verwendet
der Webinhalt ein API-Verfahren (einen CreateOpaqueRefFromURL(Session,
URL) in der Bilderzeugungserweiterungs-API – das den URL einer Graphik
in dem Graphikspeicher der Website in eine undurchsichtige Bezugnahme
umwandelt. Der Webinhalt könnte
dann die undurchsichtige Bezugnahme verwenden, um die Graphik einer
Zusammensetzung hinzuzufügen.
Der Zugriff auf diese API-Verfahrensfunktion würde wahrscheinlich auf dem
Nachweise der Site oder auf einer Bestimmung basieren, daß der von
der Website gelie ferte URL für
die gleiche Website ist wie der Webinhalt, der diese Operation verursacht
hat.
-
GRAPHIKSPEICHER.
Die vorliegende Erfindung umfaßt
als einen wichtigen Aspekt derselben die Verwendung einer Graphikspeicherkonfiguration.
Der Graphikspeicher liefert im Gegensatz zu der Speicherung auf
einem Webserver, der einfach arbeitet, um alle Daten zu bekommen
(„GET"), die einem gegebenen URL
entsprechen, Dienste, die Graphiken erhalten/bearbeiten/erzeugen/umformatieren/umsetzen.
Bei einem Aspekt der Erfindung kann der Graphikspeicher mit aktuellen
Daten dynamisch Graphiken erzeugen, durch Bezug nehmen auf Daten
zusammen mit zugeordneten Webdiensten. Ein gegebener Graphikspeicher
kann eine entfernte Speicherung für einen Benutzer liefern und
kann Teil des Personalbilderzeugungsverwahrungsortes des Benutzers
werden, so daß der
Benutzer keine Speicherung für
eine Graphik bereitstellen muß,
die er/sie verarbeiten/bearbeiten möchte. Dieser Aspekt ist besonders
wichtig für
einen Benutzer, der PDAs und andere Vorrichtungen ohne Hochkapazitäts-Speicherungsfähigkeiten
bearbeitet – die üblicherweise
zum Speichern von Graphikdaten erforderlich sind. Was besonders
wichtig ist, der Graphikspeicher kann die Fähigkeit liefern, mit dem Webinhalt
verschiedener Webdienste zu kommunizieren. Der Webinhalt von einem
Druckerwebdienst kann z. B. Fragen über den Graphikspeicher stellen,
wie z. B. wie viele Seiten in der Graphik gedruckt werden sollen
(üblicherweise
fragt der Webinhalt die Zusammensetzung für die Anzahl von Seiten ab, die
wiederum diese Informationen von jedem Graphikspeicher anfordern,
der eine Graphik enthält,
auf die in der Zusammensetzung Bezug genommen wird, falls erforderlich).
Der Druckerwebinhalt kann ferner anfordern, daß die Seiten der Graphik in
einer gewünschten
Reihenfolge anders als der chronologischen Reihenfolge übertragen
werden, um dadurch das Druckerverhalten zu verbessern.
-
Ein
Graphikspeicher kann auf eine Vielzahl von Arten implementiert sein,
aber es gibt zwei typische Variationen, jede mit leicht unterschiedlichen
Elementen:
-
Variation
1 (gezeigt als Graphikspeicher 1000 in 10):
- 1) einen Speicher 1010 zum Speicher
von Graphikdateien;
- 2) eine Logik 1020, die eine Graphikspeicherschnittstelle
(API) implementiert (verwendet durch Webdienste und durch Klienten
im allgemeinen). Diese Logik liefert eine Einrichtung zum Speichern
und Wiedergewinnen von Graphiken in der Speicherung 1010;
- 3) eine Verbindungsschnittstelle 1030 zu einem Netzwerk
(mit dem die Benutzer verbunden sind); und
- 4) eine Verbindungsschnittstelle 1040 zu dem Webdienst
(der derselbe wie die Verbindung 1030 zu dem Netzwerk sein
könnte,
aber auch unterschiedlich).
-
Variation 2 (gezeigt
als Graphikspeicher 1100 in 11):
- 1) eine Logik 1120, die eine Graphikspeicherschnittstelle
(API) implementiert. Diese Logik liefert eine Einrichtung zum Erfüllen von
Anforderungen nach Informationen und Daten, die Informationen und
Daten umfassen, die sich auf eine „virtuelle" Graphik beziehen. Diese Logik verwendet
eine Ressource, die zwischen dem Webserver und dem Graphikspeicher
gemeinschaftlich verwendet wird. Diese andere, gemeinschaftlich
verwendete Ressource könnte
ein anderer Server auf dem Netzwerk sein, z. B. ein POP-Server für E-Mail.
- 2) Eine Verbindungsschnittstelle 1130 zu dem Netzwerk
(mit dem die Benutzer verbunden sind).
- 3) Eine Verbindungsschnittstelle 1150 mit einer Ressource,
die gemeinschaftlich zwischen dem Webserver und dem Graphikspeicher
verwendet wird (die die gleiche sein könnte, wie die Verbindung mit
dem Netzwerk, oder auch unterschiedlich).
- 4) Ein optionaler Cache-Speicher 1110 zum Speichern
von Graphiken, die dynamisch erzeugt werden (wenn angefordert).
-
Es
wird betreffend 11 darauf hingewiesen, daß die Verbindung
zwischen dem Webdienst und dem Graphikspeicher indirekt sein kann,
durch die Spezifikation von Informationen über die gemeinschaftlich verwendete
Ressource, die durch den Webdienst in dem URL plaziert wird, der
auf die gewünschte
Graphik Bezug nimmt. Der Web-Dienst erzeugt anfänglichen einen URL, der eine
virtuelle Graphik darstellt, d. h. eine, die durch Bezugnahme auf
einem gemeinschaftlich verwendete Ressource erhalten/erzeugt werden
muß. Dementsprechend
spezifiziert der URL selbst die gemeinschaftlich verwendete Ressource,
wo die Graphik erhalten/erzeugt werden kann. Dieser URL spezifiziert
ferner den Graphikspeicher, in dem auf die virtuelle Graphik zugegriffen
werden kann. Wenn der Benutzer auf eine Taste in dem Webinhalt in
dem Browser des Benutzers klickt, um diese Graphik zu erhalten,
wird auf den oben genannten URL für die Graphik durch den Webinhalt Bezug
genommen, und derselbe wird nachfolgend an den Graphikspeicher geliefert.
Der URL enthält
Informationen über
die gemeinschaftlich verwendete Ressource (zusätzlich zum Spezifizieren des
Graphikspeichers), die später
verwendet werden, um die gemeinschaftlich verwendete Ressource zu
identifizieren. Auf die virtuelle Graphik kann z. B. durch den URL
http://graphicstore.webmail.com/msg?mailserver=imap.webmail
.com&user=joe&msgid=12453 Bezug
genommen werden. Dieser URL weist innerhalb desselben verschiedene
codierte Schlüsselinformationen
auf. Diese enthalten die Identität
des Graphikspeichers, graphicstore.webmail.com, die Identität des Mailservers imap.webmail.com,
die Identität
des Benutzers, joe, und die Identität der Mailnachricht, 12453.
Auf Empfangen dieses URL von dem Webinhalt hin ruft der Graphikspeicher
ein Verfahren zum Interpretieren des URL und zum Erzeugen eines
Aufrufs nach der gemeinschaftlich verwendeten Ressource auf, um
die gewünschte
Graphik zu erhalten/erzeugen.
-
Wenn
der Graphikspeicher z. B. eine Anforderung nach einer Skizzen-JPEG-Bittabelle
von Seite 1 der virtuellen Graphik empfangen hat, auf die durch
http://graphicstore.webmail.com/msg?mailserver=imap.webmail
.com&user=joe&msgid=12453 Bezug
genommen wird, dann kontaktiert der Graphikspeicher den E-Mail-Server
imap.webmail.com unter Verwendung des IMAP-Protokolls und fordert
Daten betreffend die Meldung 12453 für den Benutzer Joe an. Der
Graphikspeicher wandelt dann die E-Mail-Nachrichtdaten in eine Skizzen-JPEG-Bittabelle von Seite
1 um und verwendet diese Bittabelle, um die Forderung zu erfüllen. Die
E-Mail-Nachrichtdaten können
in eine Reihe von Seiten umgewandelt werden, unter Verwendung von
herkömmlichen
Mechanismen, die ermöglichen,
daß Text
in druckbare Graphiken umgewandelt wird (d. h. PDF). Die druckbaren
Graphiken könnten
in eine Bittabelle unter Verwendung von herkömmlichen Mechanismen umgewandelt
werden, die ermöglichen,
daß Druckgraphiken in
Bittabellen umgewandelt werden (wie z. B. die offene Quelle Ghostscript-Graphikübersetzer).
-
Die
Graphikspeicherungsschnittstelle (API) könnte eine Vielzahl von verschiedenen
Formen annehmen, abhängig
von den Diensten, die der Graphikspeicher liefern möchte, und
den Dialogtypen, die derselbe mit dem Webinhalt unterstützen möchte. Sie
könnte
z. B. folgende Form annehmen:
- – ein Verfahren
oder mehrere Verfahren zum Bestimmen von Informationen über eine
Graphik, einschließlich
(zum Beispiel):
- – Anzahl
von Seiten (oder allgemeiner gesagt Seitenbilddaten)
- – Vorhandensein
von Farbe auf jeglicher der Seiten
- – weisen
alle Seiten (oder Seitenbilddaten) die gleiche Größe auf
- – ein
Verfahren oder mehrere Verfahren zum Bestimmen, in welchen Graphikformaten
die Gesamtgraphik in der Speicherung verfügbar ist, einschließlich (zum
Beispiel):
- – Postscript
- – PDF
- – PCL5
- – PCL6
- – PCL6
für den
Color LaserJet 4500
- – ein
Verfahren oder mehrere Verfahren zum Erhalten der Gesamtgraphik
in einem Graphikformat, in dem die Graphik verfügbar ist (Graphikübersetzung
wird implizit gehandhabt, so daß kein
explizites Übersetzungsverfahren
erforderlich ist);
- – ein
Verfahren oder mehrere Verfahren zum Bestimmen der verfügbaren Seitenreihenfolge,
in der die Gesamtgraphik verfügbar
ist, und der Graphikformate, in denen die Graphik für diese
Seitenreihenfolgen verfügbar
ist;
- – ein
Verfahren oder mehrere Verfahren zum Erhalten der Gesamtgraphik
in einer verfügbaren
Seitenreihenfolge in dem Graphikformat, in dem die Graphik verfügbar ist;
- – ein
Verfahren oder mehrere Verfahren zum Bestimmen, in welchen Graphikformaten
eine Seite (d. h. Seitenbilddaten) der Graphik verfügbar ist,
einschließlich
(zum Beispiel):
- – JPEG
- – GIF
- – PNG
- – Teil-PDF
- – ein
Verfahren oder mehrere Verfahren zum Erhalten einer Seite (d. h.
Seitenbilddaten) der Graphik in einem Graphikformat, in dem die
Seite (d. h. Seitenbilddaten) verfügbar ist.
-
ANMERKUNG:
Die gewünschte
Seitenreihenfolge kann durch Erhalten der Gesamtgraphik mit den Seiten
in der gewünschten
Reihenfolge oder durch Erhalten jeder einzelnen Seite in der gewünschten
Reihenfolge erreicht werden.
-
Üblicherweise
weisen die Ressource sowie der Webdienst, der dem Graphikspeicher
zugeordnet ist und der Graphikspeicher selbst eine eigene Bezugnahme
auf, die ein URL sein kann. Der Graphikspeicher kann wie oben erwähnt eine
Fernspeicherung für
einen Benutzer liefern, der Webinhalt von dem zugeordneten Webdienst
heruntergeladen hat. Auf den Graphikspeicher kann ferner indirekt
durch Benutzer durch andere Webdienste zugegriffen werden.
-
Es
wird darauf hingewiesen, daß die
Zuordnung zwischen einem Webdienst und einem Graphikspeicher besonders
vorteilhaft ist, wenn ein Benutzer eine temporäre oder permanente Speicherung
benötigt,
um Graphiken von dem Webdienst an einem anderen Webdienst zu bearbeiten/verarbeiten.
Ein Benutzer könnte z.
B. mit seinem/ihrem Browser auf einen ersten Webdienst (z. B. eine
Webcam) zugreifen und den Webinhalt aus derselben verwenden, um
eine Webcam-Bildgraphik innerhalb eines Graphikspeichers zu erzeugen,
der diesem ersten Webdienst zugeordnet ist, und um ferner eine Zusammensetzung
für denselben
in einem Standardzusammensetzungsspeicher in dem Personalbilderzeugungsverwahrungsort
des Benutzers zu erzeugen und eine Bezugnahme auf die neu erzeugte
Zusammensetzung (üblicherweise
einen URL) der Webcam-Graphik
in dem Graphikspeicher hinzuzufügen.
Der Benutzer kann dann zu einem zweiten Webdienst blättern (z. B.
einem Drucker zum Drucken des Webcam-Bildes). Der Webinhalt von
dem zweiten Webdienst kann dann durch die Bezugnahme in der neu
erzeugten Zusammensetzung auf die Webcam-Bildgraphik zugreifen und dessen
Druckfunktion mit diesen Webcam-Bilddaten
ausführen.
Eine der Vorteile dieser Sequenz ist, daß der Benutzer keine Speicherung
für die
Webcam-Graphik liefern muß.
-
Es
sollte darauf hingewiesen werden, daß bei einem weiteren Aspekt
der vorliegenden Erfindung einige Webdienste sowohl innerhalb als
auch außerhalb
der Brandmauer es wirtschaftlich wichtig finden können, daß sie Graphikspeichern
zugeordnet sind, die eine Langzeitstabilität aufweisen, so daß kein Bedarf
besteht, eine neue Graphik für
dieselben in einem anderen Graphikspeicher zu erzeugen. Wie oben
erwähnt
wurde, könnte
der Graphikspeicher, der dem Webdienst zugeordnet ist, zu einem
Teil des Personalbilderzeugungsverwahrungsortes durch Bezugnahme
auf dasselbe über
einen URL, einen Zeiger oder eine andere geeignete Bezugnahme, gemacht
werden. (Ein Graphikspeicher soll effizient zu einem Teil eines
Personalbilderzeugungsverwahrungsortes eines Benut zers gemacht werden,
durch Bezugnahme auf eine Graphik innerhalb dieses Graphikspeichers
von dem Personalbilderzeugungsverwahrungsort des Benutzers. Es ist
in der Tat genauer, die Graphiken, Zusammensetzungen und Benutzerprofile
derart zu betrachten, daß sie
Teil des Personalbilderzeugungsverwahrungsortes des Benutzers sind,
und nicht die einzelnen Dienste zu betrachten. In der Tat ist es
möglich,
nur einen Teil der Graphiken durch einen Graphikspeicher verfügbar zu
haben, auf den durch den Personalbilderzeugungsverwahrungsort des
Benutzers Bezug genommen wird.) Ein Beispiel eines derartigen, zugeordneten
Graphikspeichers könnte
ein Serververwahrungsort für
die archivische Speicherung von neuen Gegenständen sein, wobei die Graphikspeicherfunktionalität hierin
beschrieben ist. Eine Bezugnahme bei einer Zusammensetzung könnte auf
diese Graphik innerhalb des Graphikspeichers in dem archivischen
Speicherungsdienst Bezug nehmen.
-
Wie
vorangehend erwähnt
wurde, ist ein besonderer Aspekt der vorliegenden Erfindung die
Fähigkeit, in
dem Graphikspeicher Graphiken „fliegend" („on the
fly") zu erzeugen.
Dieser Aspekt wird durch die Zuordnung des Webdienstes und eines
Graphikspeichers und einer Ressource ermöglicht, wie in der Konfiguration, die
in 11 gezeigt ist. Eine Bezugnahme kann in einer
Zusammensetzung auf eine Ressource geliefert werden, die nicht wirklich
in dem Graphikspeicher existiert, wenn die Fähigkeit besteht, die Existenz
dieser Ressource zu simulieren. Es sei z. B. angenommen, daß ein Webdienst,
der einen zugeordneten Graphikspeicher aufweist, eine URL-Bezugnahme
auf ein wichtiges Dokument in dem zugeordneten Graphikspeicher dem Personalbilderzeugungsverwahrungsort
des Benutzers wie folgt hinzufügt
(durch Webinhalt, der für
denselben agiert):
„http://famousdocs.com?doc=declarationofindependence". Ein Benutzer könnte nachfolgend
nach einem Bittabellenbild (z. B. JPEG) der ersten Seite des Dokuments
fragen, auf das durch diesen URL Bezug genommen wird, über den
Webinhalt (vermutlich von einem anderen Webdienst oder dem gleichen Webdienst)
in seinem Browser. Der Graphikspeicher, auf den durch den Webinhalt über diese
Bezugnahme zugegriffen werden würde
(indirekt durch die Bilderzeugungserweiterung) weist vielleicht
nicht das eigentliche JPEG-Bild der ersten Seite auf, sondern nur
eine Textdatei des betreffenden wichtigen Dokuments. Der Graphikspeicher
jedoch könnte
verschiedene Dienste umfassen, einschließlich eines Text-zu-Bittabelle-Umwandlungsdienstes.
Aus dieser Textdatei erzeugt der Graphikspeicher mit diesem Umwandlungsdienst
eine Bittabelle der ersten Seite und sendet die angeforderte Bittabelle
an den Benutzer an seinem/ihrem Browser zurück.
-
Bei
einem zweiten Beispiel könnte
ein Benutzer zu einem Webmaildienst browsen bzw. blättern und einen
URL erhalten, wie zum Beispiel
„http://graphicstore.webmail.com?imap=imap1.webmail.com&use r=johnsmith&messageid=23456", der einer E-Mail-Nachricht
des Benutzers entspricht. Später
könnte
der Benutzer über
den Webinhalt in seinem Browser, der den Graphikspeicher indirekt
kontaktiert, eine Anfrage tätigen,
daß die
erste Seite dieser E-Mail-Nachricht formatiert wird, um in der Form
eines JPEG-Bildes gedruckt zu werden. In diesem Fall wird die E-Mail-Nachricht
tatsächlich
in einem anderen Netzwerkdienst, wie z. B. einem „IMAP-Dienst" gespeichert, der
verantwortlich für
das Speichern und das Liefern von Zugriff auf E-Mail-Nachrichten
ist. Ansprechend auf die Anforderung des Benutzers kontaktiert der
Graphikspeicher den IMAP-Dienst unter Verwendung der Informationen,
die innerhalb der Bezugnahme eingebettet sind, erhält die E-Mail-Nachricht des Benutzers,
formatiert die E-Mail-Nachricht zum Drucken unter Verwendung eines
Dienstes, der ferner an dem Graphikspeicher verfügbar sein kann, und verwendet
dann einen unterschiedlichen Dienst an dem Graphikspeicher, um eine
Bittabelle der ersten Seite zu erzeugen, da der Graphikspeicher
nicht eigentlich aufweist, nach was der Benutzer fragt. (Der in
dem vorangehenden Satz erwähnte
Dienst könnte
durch einfache Codebibliotheken ersetzt werden, die durch Graphikspeicherdienste
verwendet werden. Dies wird in der Tat in der bevorzugten Implementierung durchgeführt.) Es
wird darauf hingewiesen, daß der
Graphikspeicher für
den Webdienst nicht auf der gleichen Maschine vorliegen muß wie der
Webserver. Er könnte
auf einer anderen Maschine positioniert sein. Der Schlüsselpunkt
ist, daß Webinhalt,
der von dem Webdienst kommt, der dem Graphikspeicher zugeordnet
ist, über
den Graphikspeicher „Bescheid
weiß" und den Graphikspeicher
durch Erzeugen eines geeigneten URL verwendet (oder allgemeiner
eine Bezugnahme), der zurück
auf den Graphikspeicher verweist. Wie hier erörtert wird, muß der Graphikspeicher
die fragliche Ressource nicht einmal aufweisen – nur die Fähigkeit, auf Anfragen betreffend
diese Ressource zu antworten. Dies ist wichtig, da es den Bedarf
nach einer Speicherung in dem Graphikspeicher reduziert, sicherstellt,
daß die
Informationen aktuell sind (da mehrere Kopien die Möglichkeit
mit sich bringen, daß eine
Kopie veraltet ist) und daß einige
Operationen schneller vervollständigt
werden. Wenn ein Graphikspeicher z. B. durch einen Webinhalt gefragt
wird, ob eine bestimmte Graphik (in diesem Fall eine virtuelle Graphik)
eine bestimmte Farbe enthält,
kann der Zusammensetzungsspeicher in der Lage sein, sehr schnell
auf diese Frage zu antworten, basierend auf Wissen über die
zugrundeliegenden Informationen (z. B. eine E-Mail-Nachricht).
-
Es
sollte darauf hingewiesen werden, daß ein Unterschied zwischen
einer Graphikspeicherschnittstelle und einer Graphikspeicherimplementierung
besteht. Die Graphikspeicherschnittstelle ist der Satz von Verfahren,
die alle Graphikspeicherdienste implementieren müssen, um ein Graphikspeicher
zu sein. Die Graphikspeicherimplementierung ist die Art und Weise,
wie diese Schnittstellen implementiert sind. Die Implementierung
kann von Graphikspeicher zu Graphikspeicher bedeutend variieren.
-
Der
Ausdruck „zugeordnet" in dem Kontext eines
Webdienstes und eines Graphikspeichers kann eine Vielzahl von Variationen
annehmen. Bei dem Beispiel des obigen Absatzes, in dem der Graphikspeicher
einem Webdienst zugeordnet ist, ist der Graphikspeicher vorzugsweise
auf eine derartige Weise implementiert, um über die Art Bescheid zu wissen,
wie die Webanwendungen in dem zugeordneten Webdienst Daten intern speichern.
Jede Webanwendung in einem Webdienst weist ihre eigene interne Datendarstellung
auf, die während
der Operation der Anwendung verwendet wird. Ein korrekt implementierter
Graphikspeicher, der eng in einer Anwendung auf einem Webdienst
integriert ist, hat Zugriff auf diese interne Datendarstellung und
könnte dieselbe
verwenden, um dessen Verhalten zu optimieren (da der Graphikspeicher
und der Webserver als Teil eines größeren Webdienstes implementiert
sein könnten
und die interne Datendarstellung gemeinschaftlich verwenden könnten).
Eine Anwendung, die z. B. Graphiken liefert, die zum Erzeugen einer
Broschüre
verwendet werden, könnte
Informationen in ihren internen Daten über die Anzahl von verfügbaren Seiten
aufweisen. Auf diese Seitenanzahlinformationen könnten direkt durch den Graphikspeicher
zugegriffen werden, ohne druckfertige Daten zu erzeugen, wenn die
Anwendung fest in dem Graphikspeicher integriert ist. Das Bereitstellen
von aktuellen Informationen über
die Seitenanzahl würde
die Operation des Broschürenherstellungs-Webdienstes
verbessern, da diese Informationen zum korrekten Formatieren der
Broschüre
erforderlich sind.
-
Eine
Vielzahl von unterschiedlichen Speichern und anderen Konfigurationen,
die die Bilderzeugungserweiterung umfassen, wurden jeweils mit ihren
eigenen APIs beschrieben. Ein Satz von Beispiel-APIs wird nachfolgend
für eine
Anzahl der Speichereinrichtungen und die hierin offenbarte Bilderzeugungserweiterung erläutert. Es
wird darauf hingewiesen, daß die
Beispiel-API-Sätze
keine vollständigen
Sätze sind,
aber erläutert
sind, um eine repräsentative
Vorstellung der typischen APIs zu liefern, die vorhanden sind würden. Ein wichtiger
Hinweis ist, daß Fehlerhandhabungs-
und Position sinformations-Verfahren aus den API-Einstellungen fehlen.
Die API-Einstellungen unten sollen auf keine Weise einschränkend sein
und sollen lediglich Beispiele darstellen. Die API-Einstellungen
werden unter Verwendung einer D/C++/Java/Perl-Stilsyntax (frei)
ausgedrückt.
Es wird ferner darauf hingewiesen, daß dies ad hoc APIs sind, die
mit gewissen weiteren Aspekten der webbasierten Bilderzeugung nicht
zusammenpassen, die in dieser Patentanmeldung bereitgestellt sind, und
nur als ein Beispiel vorgesehen sind.
-
Die
API ist unter Verwendung einer herkömmlichen Schreibweise geschrieben.
Diese Schreibweise ist in den meisten einleitenden Texten für die meisten
Programmiersprachen beschrieben. Diese Schreibweise ist jedoch eine
Beispielschreibweise und keine Einschränkung durch dieselbe ist beabsichtigt.
Die allgemeine Form eines Verfahrens, das eine API bildet, ist:
-
Wobei
returnType der Typ ist, der durch ein Verfahren zurückgesendet
wird. Üblicherweise
ist die Bedeutung des zurückgesendeten
Wertes aus dem Namen des Verfahrens offensichtlich. Zum Beispiel
sendet das Verfahren „Zeichenfolge
GetPresidentsAddress()" (ErhaltePräsidentAdresse)
den Wert des Types „Zeichenfolge" zurück, wobei
aus dem Namen des Verfahrens bestimmt werden kann, daß derselbe
die Adresse des Präsidenten
enthält.
-
MethodName
ist der Name des Verfahrens. Dieser Name sollte eine prägnante Beschreibung
des Zwecks des Verfahrens sein.
-
ParameterTypeN
ist der Typ des Parameters N, wobei N der n-te Parameter in der Argumentliste des Verfahrens
ist. Parametertypen zeigen das Datenformat des Parameters an, der
zu dem Verfahren übertragen wird,
wie z. B. Zeichenfolge, ganze Zahl, oder komplexere Strukturen/Objekte.
Parametertypen können
beschreibend für
die Bedeutung des Parameters sein oder nicht. Sind sie dies nicht,
ist es notwendig, einen Parameternamen zu umfassen, um sicherzustellen,
daß der
Leser die Bedeutung des Parameters versteht.
-
ParameterNameN
ist der Name für
den Parameter N, wobei N der n-te Parameter in der Argumentenliste
des Verfahrens ist. Parameternamen sollten die Bedeutung des Parameters
anzeigen. Manchmal sind sie redundant und können optional weggelassen werden.
Ein Parameter der z. B. als „Session
session" (Sitzung Sitzung)
beschrieben ist, mit einem Parametertyp Sitzung und einem Parameternamen
Sitzung ist unnötig
redundant. In diesen Fällen
ist es üblich,
den Parameter beim Beschreiben des Verfahrens der API wegzulassen.
-
Es
sollte darauf hingewiesen werden, daß ein Parameter mit dem Namen „OpaqueRef
preferredDestination" (undurchsichtige
Bezugnahme bevorzugter Zielort) mit den zugesendeten Werten des
Typs OpaqueRef (undurchsichtige Bezugnahme) kompatibel sind. Der
Name „preferredDestination" (bevorzugter Zielort)
ist lediglich der beschreibende Name des Parameters und bestimmt
nicht die Parameterkompatibilität. Zurückgesendete
Werte haben üblicherweise
keine Namen, da die Bedeutung des zurückgesendeten Wertes durch den
Verfahrensnamen impliziert wird. Jegliche Anmerkungen werden durch
// identifiziert.
-
1. Programmierschnittstellen
(APIs)
-
Netzwerkdienst-APIs i.
Benutzerprofil-Speicherdienst-API
-
-
ii.
Zusammensetzungsspeicherdienst-API
-
-
iii.
Graphikspeicherdienst-API
-
//ANMERKUNG:
Jede Seite ist eine einzelne Graphik (dies ist eine Entwurfsentscheidung,
die beim Erzeugen dieser APIs getroffen wurde)
-
//
ANMERKUNG : 6 beschreibt einen Prozeß, bei dem
eine Graphik erzeugt, geöffnet,
in dieselbe geschrieben und geschlossen wird. Zu Zwecken des vorliegenden
API-Beispiels wurde der Prozeß vereinfacht.
Der Konsistenz halber sind die folgenden fünf Verfahren, die die in dem
Flußdiagramm
beschriebenen Verfahren verfolgen, beschrieben. Diese Verfahren
erzeugen eine einzelne Graphik, die basierend auf der in diesem
Beispiel verwendeten Entwurfsentscheidung in einer einzelnen „Seite" (oder einem Bildhintergrund)
resultieren würde.
-
-
b.
Bilderzeugungserweiterungs-API
-
//ANMERKUNG:
Im Hinblick auf BrowseToPreferredDestination (blättere zu bevorzugtem Zielort)
aktiviert dieses Verfahren den Browser, um darauf ausgerichtet zu
sein, zu einem bevorzugten Zielort zu blättern, ohne dem Benutzer den
zugrundeliegenden URL freizulegen.
-
-
//ANMERKUNG:
Im Hinblick auf CreateOpaqueRefFromURL (erzeuge undurchsichtige
Bezugnahme aus URL) ist es einigen Websites nicht erlaubt, dieses
Verfahren überhaupt
zu verwenden, einigen Websites ist es nur erlaubt, ihre eigenen
URLs in OpaqueRef (undurchsichtige Bezugnahmen) umzuwandeln (um
einen willkürlichen
Zugriff auf Netzwerkdienste zu verhindern) und wiederum anderen
ist ein umfassender Zugriff auf dieses Verfahren erlaubt. (Zugriff
basiert auf Nachweisen.)
-
//ANMERKUNG:
Im Hinblick auf GetURLFromOpaqueRef (erhalte URL von undurchsichtiger
Bezugnahme) ist der Zugriff auf dieses Verfahren eingeschränkt. (Der
Zugriff basiert auf Nachweisen. Zugriff auf jegliche dieser Verfahren
kann basierend auf Nachweisen eingeschränkt sein.)
-
//ANMERKUNG:
Jede Seite ist eine einzelne Graphik (dies ist eine Entwurfsentscheidung,
die beim Erzeugen dieser APIs getroffen wurde)
//erzeugt höchstens
eine Graphik aus den Graphikdaten
//erzeugt eine oder mehrere
Graphiken aus den Graphikdaten
-
//ANMERKUNG: 6 beschreibt einen Prozeß, bei dem
eine Graphik erzeugt, geöffnet,
in dieselbe geschrieben und geschlossen wird. Zu Zwecken des vorliegenden
API-Beispiels wurde der Prozeß vereinfacht.
Der Konsistenz halber sind jedoch die folgenden fünf Verfahren,
die die in dem Flußdiagramm
beschriebenen Verfahren verfolgen, umfaßt. Diese Verfahren erzeugen
eine einzelne Graphik, die basierend auf den in diesem Beispiel
verwendeten Entwurfsentscheidungen nur zu einer einzelnen „Seite" (oder Unterlage)
führen
würden.
-
-
2. Pseudocodebeispiele
der Verwendung von APIs
-
a. Webinhalt, der den
Browser zu einer Webbilderzeugungshomepage umleitet
-
//Anmerkung:
Das folgende Verfahren wird aufgerufen als Ergebnis des Endverbrauchers,
der auf ein Link (oder eine Taste) auf der Webbilderzeugungs-Homepage
klickt. Dieses Verfahren ist Teil des Webinhalts, der in den Browser
des Benutzers heruntergeladen wird. Die Bezeichnung „=" bedeutet das Zuweisen
eines Werts zu einer Variablen, d. h., in dem Verfahren unten wird
die Variable „session" dem Wert der Sitzung
zugeordnet, die durch das Verfahren „CreateSession" (Sitzung erzeugen)
erzeugt wird. Der „→" Operator (in den Beispielen
unten verwendet) ist eine Standardbezeichnung für das Aufrufen eines Verfahrens
in einem Objekt. Der Einfachheit halber werden Dienste als Objekte
dargestellt. Bei einer typischen Implementierung würde der tatsächliche
Dienst als ein „proxy" (Stellvertreter-)
Objekt dargestellt werden, da derselbe auf einer entfernten Maschine
arbeitet. Ein „proxy"-Objekt liefert eine
lokale Rufschnittstelle zu dem Klientencode und handhabt die Kommunikation,
die mit dem tatsächlichen
Dienst erforderlich ist (versteckt den Kommunikationsprozeß effektiv
vor dem Klientencode).
-
b. Implementierung ausgewählter Verfahren
der Bilderzeugungserweiterungs-API
-
i.
GetReferenceToPreferredImagingHomeDestination
-
//Anmerkung:
Dies ist ein privates Verfahren, d. h. nicht als Teil der Bilderzeugungserweiterungs-API freilegend,
die die Benutzeridentität
UserIdentification durch Öffnen
des Verfahrens GetUserIdentification (erhalte Benutzeridentifikation)
mit dem Argument „session" (Sitzung) zurücksendet,
das bei dem vorangehenden Verfahren bezüglich des Umleitens des Browsers
erhalten wurde.
-
-
//Anmerkung:
Der nachfolgende Pseudocode erhält
eine Bezugnahme auf den Benutzerprofilspeicher unter Verwendung
eines privaten Verfahrens, das die Identität des Benutzer profilspeichers „UserProfileStore" von der Benutzeridentität erhält.
-
-
//Anmerkung:
Der nachfolgende Pseudocode ruft ein „O-penSession"-(öffne
Sitzung)-Verfahren auf dem Benutzerprofilspeicherdienst auf, um
sich in dem Benutzerprofilspeicher „anzumelden" unter Verwendung der
Argumente „UserIdentification" (Benutzeridentifikation)
und „Credentials" (Nachweis), die
vorangehend erhalten wurden, und sendet „UserProfileStoreSession" (Benutzerprofilspeicherungssitzung)
zurück.
Wie oben erwähnt
wurde, bedeutet das Pfeilzeichen „→" in dieser Schreibweise das Rufen/Aufrufen
eines Verfahrens eines Objekts, wobei das Objekt auf der linken
Seite und das Verfahren innerhalb des Objekts auf der rechten Seite
ist – Objekt→Verfahren(Parameter)
unter Verwendung der ausgeführten
Argumente. Bei diesem Beispiel wird das Verfahren „OpenSession" (öffne Sitzung)
innerhalb des Objekts „UserProfileStore" (Benutzerprofilspeicher)
aufgerufen.
-
-
//Anmerkung:
Der nachfolgende Pseudocode ruft auf/ruft ein Verfahren „GetReferenceToPreferredImagingHomeDestinationURL", das durch das UserProfileStore-Objekt
oder den -Service bereitgestellt wird, der einen Bilderzeugungsheimzielort
zurücksendet,
der durch den Benutzer bevorzugt wird (bei diesem Beispiel einen
URL).
-
-
//Anmerkung:
Der nachfolgende Pseudocode erzeugt eine undurchsichtige Bezugnahme „OpaqueRef", die dem URL entspricht,
und sendet dieselbe unter Verwendung eines privaten Bilderzeugungserweiterungsverfahrens
mit den Argumenten „session" und „preferredImagingHomeDestinationURL" zurück.
-
-
//Anmerkung:
Der nachfolgende Pseudocode beendet die Kommunikation mit dem Benutzerprofilspeicher.
-
-
//Anmerkung:
Der nachfolgende Pseudocode sendet die undurchsichtige Bezugnahme
zurück.
ii.
BrowseToPreferredDestination
-
//Der
nachfolgende Pseudocode ist ein privates Verfahren, nicht freiliegend
als Teil der Bilderzeugungserweiterungs-API, die eine undurchsichtige
Bezugnahme in einen URL umwandelt.
-
-
//Das
nachfolgende ist ein Verfahren, das den Browser zu einem Zielort
umleitet, dem ein URL gegeben wurde
-
Das
vorangehende umfaßt
eine Mehrzahl von innovativen APIs. Es wird bei den verschiedenen
APIs auf die Einstell-Verfahren
zum Einstellen eines bevorzugten Druckerlistenzielorts (PreferredPrinterDestinationList,
d. h. eine Liste von Druckern, die angezeigt oder anderweitig für eine Auswahl
angeboten werden), eines bevorzugten Druckerzielorts (PreferredPrinterDestination,
d. h. eines einzelnen, bevorzugten Druckers, der ausgewählt wird
und eine Druckereinstellungsseite, die angezeigt oder anderweitig
für eine
Auswahl angeboten wird), und einen für sofortiges Drucken bevorzugten
Zielort (PreferredPrintNowDestinatin, d. h. ein Drucker, der zur
Verwendung mit voreingestellten Einstellungen ausgewählt wird – keine
Möglichkeit
zum Einstellen der Druckeinstellungen) in dem Profil des Benutzers
in dem Benutzerprofilspeicher hingewiesen, sowie ein Verfahren zum
Auswählen
eines bevorzugten Druckzielorts basierend auf Kriterien (PrintActionCriteria)
und einem Kontext (PrintActionContext). Diese Verfahren verwenden
die Argumente „userProfileStoreSession" und „uRLpreferred...." oder „printActionCriteria". Üblicherweise
ist die Bezugnahme ein URL, dieselbe kann jedoch ferner eine andere
geeignete Bezugnahme sein, wie z. B. ein proprietäres Codierungsschema
zum Identifizieren (und somit zum Bezug nehmen auf) die fragliche
Ressource.
-
Auf ähnliche
Weise wird auf die verschiedenen Verfahren zum Erhalten (Get) „GetReference..." oder „GetPrintActionCriteria" hingewiesen, zum
Erhalten einer der Bezugnahmen, die durch das Einstellungsverfahren
für die
bevorzugte Druckerzielortliste, den bevorzugten Druckerzielort,
den bevorzugten Zielort zum Sofortdrucken und den PrintActionCriteria
(Druckaktionskriterien) in dem Profil des Benutzers in dem Benutzerprofilspeicher
eingestellt wurden. Diese Verfahren verwenden das Argument „UserProfileStoreSession" und senden einen „URL" oder die „PrintActionCriteria" zurück.
-
Der
GetDestinationPrintActionCriteriaAndContext ist von besonderem Interesse.
Dieses Verfahren wird verwendet, um die bevorzugte Druckaktion des
Benutzers in einer bestimmten Situation (Kontext) basierend auf
Kriterien, d. h. vorgeschriebenen Regeln zu erhalten. Dieses Verfahren
würde den
Browser zu der bevorzugten Druckerliste, PreferredPrinter-ListDestination umleiten,
(so daß er
oder sie aus einer Anzahl von verfügbaren Druckern auswählen kann),
oder es würde
den Browser zu dem bevorzugten Drucker PreferredPrinter-Destination umleiten
(so daß er
oder sie Optionen bezüglich
dieses Druckers auswählen
kann), oder es würde
den Browser zu dem bevorzugten Zielort zum Sofortdrucken Prefer redPrintNowDestination
(so daß das
Drucken sofort beginnt) oder einem bestimmten anderen Drucker umleiten,
der in einem bestimmten Kontext bevorzugt wird. Obwohl jeder dieser
drei oder mehr Zielorte spezifisch bezeichnet werden kann, d. h.
die Anwendung liefert explizit einen Mechanismus für den Benutzer
zum Auswählen
von „PrinterList" oder „Printer" oder „PrintNow", könnten andere
Anwendungen einfach einen Mechanismus für den Benutzer liefern, um
allgemein „print" (drucken) auszuwählen, ohne
zu spezifizieren, auf welche der Zielorte „PrinterList", „Printer", „PrintNow" oder sonstige der
Browser des Benutzers gerichtet werden sollte. Alternativ könnte der
Webinhalt eine Webseite liefern, die sowohl eine Taste „print" als auch eine Taste „PrintNow" enthält. Die
allgemeine Taste „print" würde die
unten erörterten
PrintActionCriteria, PrintActionContext und GetPrintActionDestinationUsingCriteriaAndContext
(oder welchen Namen die Funktion hat) verwenden, um den tatsächlichen
URL zu bestimmen, auf den der Browser des Benutzers gerichtet wird.
Die Taste „PrintNow" verwendet einfach
den Zielort „PrintNow", der unter Verwendung
der Funktion „GetPrintNow-Destination" (oder wie die Funktion
genannt wird) erhalten wird.
-
Der
Zweck von GetDestinationUsingPrintActionCriteriaAndContext ist es,
beim Bestimmen zu helfen, welche der verfügbaren Druckaktionen unternommen
werden sollten, und eine Bezugnahme auf den bevorzugten Zielort
zurückzusenden,
auf den der Browser gerichtet werden sollte. Dieses Verfahren nimmt
Session als Parameter und den Typ PrintActionContext sowie den Typ
PrinActionCriteria. PrintActionContext liefert Informationen, die
beim Bestimmen des Zielorts unter Verwendung des Verfahrens GetDestinationUsingPrintActionCriteriaAndContext
nützlich
sein könnte.
Derartige Kontextinformationen könnten
der URL der aktuelle Website, der Typ der aktuellen Website (z.
B. wie durch ein Etikett in der aktuellen Website bestimmt wird),
wo der Benutzer positioniert ist, ob sich der Benutzer innerhalb
oder außerhalb
einer Brandmauer befindet, und verschiedene andere Informationen
sein. Die PrintActionCriteria können
ein Regelsatz, konditionelle Logik oder andere Kriterien zur Verwendung/zum
Interpretieren der Kontextinformationen sein, um den bevorzugten Zielort
zu bestimmen. Beispielsweise aber nicht einschränkend könnte ein Satz von Regeln/konditioneller
Logik folgendes sein:
Wenn die Website – Amazon.com ist, dann ist
der Zielort PreferredPrintNowDestination;
Wenn die Website – eine Produktivitätswebsite
ist (basierend auf einem Etikett in dem Webinhalt für die Website,
z. B.), dann ist der Zielort PreferredPrinterDestination;
Wenn
die Benutzerposition – außerhalb
des Büros
ist, dann ist der Zielort PrinterA;
Wenn die Benutzerposition – im Büro ist,
dann ist der Zielort PreferredPrinterListDestination;
Wenn
der Brandmauerstatus – außerhalb
des Büros
ist, dann wird PrinterB verwendet.
-
Das
Verfahren GetDestinationUsingPrintActionCriteriaAndContext würde die
vorangehenden Regeln in der Datenstruktur der PrintActionCriteria
basierend auf den Informationen von dem PrintActionContext interpretieren,
um den Zielort zu bestimmen.
-
Es
wird in der Bilderzeugungserweiterungs-Beispiel-API auf die Verfahren
zum Blättern
zu einem bevorzugten Druckzielort unter Verwendung einer undurchsichtigen
Bezugnahme hingewiesen. Die Verfahren umfassen „CreateOpaqueRefFromURL", das den „URL" als ein Argument
benutzt und „OpaqueRef" zurücksendet;
und das Verfahren „BrowseToPreferredDestination", das die Argumente „Session,
OpaqueRef preferredDestination" verwendet,
um zu verursachen, daß der
Browser zu der URL-Bezugnahme blättert,
ohne den URL für
den Webinhalt freizulegen.
-
Bezug
nehmend auf die Beispiel-API für
die Bilderzeugungserweiterung wird auf das vergleichbare Verfahren
hingewiesen, das zum Erhalten einer undurchsichtigen Bezugnahmen „OpaqueRef" für den Druckerlistenzielort,
den Bevorzugter-Drucker-Zielort,
den Zielort zum sofortigen Drucken und den Bevorzugte-Bilderzeugungs-Homepage-Zielort
unter Verwendung entsprechender GetReference-Verfahren eingestellt ist.
Auf ähnliche
Weise wird auf den Satz von Verfahren zum Einstellen der Bezugnahme
auf den bevorzugten Zielort hingewiesen, d. h. den PreferredPrintListerDestination,
PreferredPrinterDestination, PreferredPrintNowDestination und den
PreferredImagingHomePageDestination, unter Verwendung des geeigneten „SetReferenceTo..."-Verfahrens mit den
Argumenten des Typs „Session,
OpaqueRef".
-
Auf ähnliche
Weise wird auf das Verfahren zum Einstellen der Druckaktionskriterien
zum Bestimmen eines automatischen Druckzielorts hingewiesen, d.
h. „SetPrintActionCriteria" die die Argumente „UserProfileStoreSession
und „PrintActionCriteria" verwenden. Außerdem umfaßt ist ein
Verfahren zum Erhalten (Get) „Sessions,
PrintActionDestinationPreference".
Die SetPrintActionDestinationPreference ist der Standardzielort,
der verwendet wird, wenn keine PreferredPrinterList oder kein PreferredPrinter
oder kein PreferredPrintNow oder PreferredImagingHomePage an dem
Browser ausgewählt
wurde. Ferner umfaßt
ist ein Get-Verfahren zum Erhalten einer undurchsichtigen Bezugnahme „OpaqueRef" für die PrintActionDestinationPreference,
die in der Einstellungsbezugnahme unter Verwendung der Argumente „Sessions,
PrintActionDestinationPreference" eingestellt
ist. Ferner umfaßt
ist ein Get-Verfahren „GetPrintActionDestinationPreference" unter Verwendung
des Arguments „Session", um die PrintActionDestinationPreference
zu erhalten.
-
Bezug
nehmend nun auf 2 ist die gleiche Konfiguration
gezeigt wie in 1, bei der aber der Bilderzeugungsklient 12 außerhalb
der Brandmauer 14 liegt. In dieser Situation wäre auf keinen
der Server innerhalb der Brandmauer 14 zugreifbar, einschließlich dem
Zusammensetzungsspeicher und dem Graphikspeicher. Dies ist durch
Grauunterlegung der Server innerhalb der Brandmauer und ferner durch
Grauunterlegung der Bezugnahme auf das interne Benutzerprofil dargestellt.
-
Bezug
nehmend nun auf 3 ist eine unterschiedliche
Konfiguration der vorliegenden Erfindung bereitgestellt. Gleich
numerierte Blöcke
haben die gleiche Bedeutung wie in 1 und 2.
Bei dieser Konfiguration umfaßt
der Bilderzeuqungsklient 300 einen Webbrowser 318,
der Webinhalt 316 heruntergeladen hat, eine Bilderzeugungserweiterung 322 und
einen Benutzerinformationsblock 320, die im wesentlichen
wie oben beschrieben wirken. Bei dieser Konfiguration umfaßt der Bilderzeugungsklient 300 auf
demselben jedoch das Benutzerprofil 360. Das Benutzerprofil 360 ist
sowohl für
eine interne (innerhalb der Brandmauer) Operation als auch für eine externe
(außerhalb
der Brandmauer) Operation entworfen. Dementsprechend umfaßt dieses Benutzerprofil 360 eine
Benutzeridentifizierung (nicht gezeigt) sowie eine Bezugnahme 367 auf
einen internen Standardzusammensetzungsspeicher 62, eine
Bezugnahme 368 auf einen internen Standardgraphikspeicher 60,
eine Bezugnahme 377 auf einen externen Standardzusammensetzungsspeicher 72,
eine Bezugnahme 378 auf einen externen Standardgraphikspeicher 70,
und kann eine Bezugnahme 390 auf eine Standardzusammensetzung
umfassen.
-
Zusätzlich dazu
ist in dem Bilderzeugungsklienten ein Code zum Aufrufen eines Verfahrens
zum Zugreifen auf die Bezugnahmen umfaßt, die in dem Benutzerprofil 360 gespeichert
sind. üblicherweise
würde dieses
aufgerufene Verfahren ferner einen Code zum Auswählen der entsprechenden Bezugnahmen
basierend auf einem Kriterium umfassen. Mittels eines Bei spiels
könnte
dieser Code eine Benutzerschnittstelle liefern, um dem Benutzer
zu ermöglichen,
manuell den Standardzusammensetzungsspeicher und den Standardgraphikspeicher
auszuwählen.
Alternativ oder zusätzlich
dazu könnte
der Code automatisch einen Standardzusammensetzungsspeicher und
einen Standardgraphikspeicher basierend auf einem Kriterium auswählen, wie z.
B. aber nicht einschränkend
dem Typ oder der Identifizierung der Bilderzeugungsklientenmaschine,
die durch den Benutzer verwendet wird, oder ob der Bilderzeugungsklient
sich mit einem Netzwerk innerhalb der Brandmauer 14 verbunden
hat oder sich anderweitig innerhalb der Brandmauer befindet, oder
ob sich derselbe außerhalb
der Brandmauer befindet.
-
Es
wird darauf hingewiesen, daß der
Bilderzeugungsklient 300 in 3 innerhalb
der Brandmauer 14 gezeigt ist. Dementsprechend hat der
Browser 318 in dem Bilderzeugungsklienten Zugriff auf die
Webserver 30 und 32 innerhalb der Brandmauer,
sowie auf die Server 40 und 42 außerhalb
der Brandmauer. Ferner hat der Benutzer die Option, einen Standardzusammensetzungsspeicher
und einen Standardgraphikspeicher entweder innerhalb oder außerhalb
der Brandmauer auszuwählen.
-
4 zeigt
die gleiche Konfiguration wie in 3, außer daß sich der
Bilderzeugungsklient 300 außerhalb der Brandmauer 14 befindet.
Somit hat der Bilderzeugungsklient keinen Zugriff auf die Webserver 30 und 32 und
den Zusammensetzungsspeicher 62 und den Graphikspeicher 60 innerhalb
der Brandmauer 14. Dieser fehlende Zugriff ist in diesem
Fall durch Grauunterlegung der Server 30, 32, 60 und 62 sowie
der Bezugnahmen 367 und 368 auf den internen Standardzusammensetzungsspeicher
und den internen Standardgraphikspeicher dargestellt.
-
GRUPPENZUSAMMENSETZUNGSSPEICHER
Bezug nehmend nun auf 5 ist eine Konfiguration der
vorliegenden Erfindung gezeigt, bei der mindestens ein Zusammensetzungsspeicher 500 und
ein Graphikspeicher 501 vorhanden ist, der durch eine Mehrzahl
von Bilderzeugungsklienten 502 und 505 gemeinschaftlich
verwendet wird. Gleich numerierte Bezugnahmen haben die gleiche
Bedeutung wie in 1. Es wird darauf hingewiesen,
daß jeder
Bilderzeugungsklient 502 und 505 einen Webbrowser 18 umfaßt, der
Webinhalt 16 heruntergeladen hat, sowie eine Bilderzeugungserweiterung 22 und
eine Benutzeridentifizierung 20. Bei dem Beispiel, das
für die
Darstellung der Konzepte gezeigt ist, umfaßt der Webinhalt 16 für den Bilderzeugungsklienten 502 Webinhalt
von jedem der Webserver 30 oder 32, die innerhalb
der Brandmauer vorliegen, während der
Webinhalt 16 für
den Bilderzeugungsklienten 505 Webinhalt von einem Webserver 40 außerhalb
der Brandmauer umfaßt.
(Es wird darauf hingewiesen, daß dieses
Diagramm ausschließlich
für eine
Vereinfachung der Darstellung vorliegt. Beide Bilderzeugungsklienten 502 und 505 haben
Zugriff auf alle Webserver innerhalb und außerhalb der Brandmauer 14,
da sie innerhalb der Brandmauer 14 liegen, und können Webinhalt
von denselben herunterladen.) Die Benutzeridentifizierung 20,
die sich in dem Bilderzeugungsklienten 502 befindet oder
in denselben geladen ist, umfaßt
eine Bezugnahme auf einen Server 566, der das interessierende
Benutzerprofil 564 enthält.
Auf ähnliche
Weise umfassen die Benutzerinformationen 20, die sich in
dem Bilderzeugungsklienten 505 befinden oder in denselben
geladen sind eine Bezugnahme 524 auf ein Benutzerprofil 574 auf
dem Server 576.
-
Es
sollte darauf hingewiesen werden, daß ein gegebener „Bilderzeugungsklient" einfach eine öffentliche
Maschine an einem Flughafen sein könnte. Diese öffentliche
Maschine könnte
durch Einfügen
einer „Smartcard" in die öffentliche
Maschine verwendet werden. Die Smartcard würde die „Benutzerinformationen 20" enthalten. Dementsprechend
ist das Benutzerprofil im allgemeinen dem Benutzer zugeordnet und
nicht der Bilderzeugungsklientenmaschine an sich. Es wird darauf
hingewiesen, daß viele
einzelne „Benutzeridentifikationen 20" vorhanden sein können, die
sich alle auf das gleiche Benutzerprofil (oder Satz von Benutzerprofilen) beziehen.
Es könnte
z. B. eine „Benutzeridentifizierung 20" in dem Laptop des
Benutzers und eine andere in dem Mobiltelephon des Benutzers vorhanden
sein, wobei sich beide auf das gleiche Benutzerprofil beziehen.)
-
Bezug
nehmend wiederum auf 4 umfaßt das Benutzerprofil 564 eine
Bezugnahme 567 auf einen Standardzusammensetzungsspeicher 62,
eine Bezugnahme 568 auf einen Standardgraphikspeicher 60,
eine Bezugnahme 569 auf eine Standardzusammensetzung und
eine Bezugnahme 590 auf den Gruppenzusammensetzungsspeicher 500.
-
Auf ähnliche
Weise umfaßt
das Benutzerprofil 574 eine Bezugnahme 577 auf
einen Standardzusammensetzungsspeicher 72, eine Bezugnahme 578 auf
einen Standardgraphikspeicher 70, eine Bezugnahme 579 auf
eine Standardzusammensetzung und eine Bezugnahme 591 auf
den Gruppenzusammensetzungsspeicher 500.
-
Es
ist ersichtlich, daß der
Gruppenzusammensetzungsspeicher 500 und der Gruppengraphikspeicher 501 auf
dem gleichen Server 508 angeordnet sind, für eine Vereinfachung
der Darstellung. Sie können
sich jedoch auch auf unterschiedlichen Servern befinden. Der Gruppenzusammensetzungsspeicher 500 umfaßt eine
Mehrzahl von Zusammensetzungen, die sich jeweils auf eine Graphik
in dem Gruppengraphikspeicher beziehen, für eine leichtere Darstellung.
Es besteht keine Anforderung, daß eine Zusammensetzung in dem Gruppenzusammensetzungsspeicher
auf eine Graphik in dem Gruppengraphikspeicher Bezug nimmt. Sie könnte auf
eine Graphik an einem beliebigen Ort Bezug nehmen. Zusätzlich dazu
nimmt eine Zusammensetzung 509 Bezug auf eine Graphik 511 in
einem Graphikspeicher 513 in einem Server 40 außerhalb
der Brandmauer 14.
-
Es
wird darauf hingewiesen, daß alle
zugreifbaren Zusammensetzungen in den unterschiedlichen Zusammensetzungsspei chern,
einschließlich
der Gruppenzusammensetzungsspeicher auf dieser Liste sein werden,
wenn der Webinhalt die Bilderzeugungserweiterung verwendet, um eine
Liste aller verfügbaren
Zusammensetzungen zu erhalten und dann an den Benutzer anzuzeigen
(zur Verwendung mit dem Webinhalt, der momentan in dem Bilderzeugungsklienten 12 arbeitet).
Es wird dann ein Dialog mit dem Benutzer begonnen, um die gewünschte Zusammensetzung
auszuwählen,
wobei die Auswahl eine Zusammensetzung in dem Gruppenzusammensetzungsspeicher
umfassen kann.
-
Es
können
verschiedene Gruppenzusammensetzungsspeicher für unterschiedliche Gruppen
verfügbar
sein. Für
jeden Gruppenzusammensetzungsspeicher, auf den der Benutzer zugreift,
besteht eine Bezugnahme auf diesen Gruppenzusammensetzungsspeicher
in einem der Profile des Benutzers. Es wird darauf hingewiesen,
daß eine
Bezugnahme auf einen bestimmten Gruppenzusammensetzungsspeicher
dem Profil des Benutzers üblicherweise
dadurch zugefügt
wird, daß der
Benutzer den Gruppenzusammensetzungsspeicher „abonniert". Dies kann dadurch ausgeführt werden,
daß der
Benutzer zu einem Webdienst blättert,
der Webinhalt in dem Browser des Benutzers herunterlädt, der
eine Bilderzeugungserweiterung verwendet, um eine Bezugnahme auf
den Gruppenzusammensetzungsspeicher zu dem Profil des Benutzers
hinzuzufügen. Diese
Bezugnahme könnte
später
durch Blättern
zu einem anderen Webdienst entfernt werden, dem ermöglicht ist,
Bezugnahmen auf Gruppenzusammensetzungsspeicher aus dem Benutzerprofil
zu entfernen. Sobald die Bezugnahme dem Benutzerprofil für den Gruppenzusammensetzungsspeicher
hinzugefügt
ist, sind die Zusammensetzungen, die innerhalb des Gruppenzusammensetzungsspeichers
enthalten sind, umfaßt
(zusammen mit Zusammensetzungen in anderen Zusammensetzungsspeichern,
die dem Benutzerprofil zugeordnet sind, wie z. B. der Standardzusammensetzungsspeicher),
immer wenn der Webinhalt alle verfügbaren Zusammensetzungen aufzählt. Somit
sind alle Zusammensetzungen, die gerade in dem Gruppenzusammensetzungsspeicher
sind, für
den Webinhalt/Benutzer automatisch ver fügbar. Wenn der Benutzer z.
B. das People Magazine abonniert (wodurch der Benutzer ein Mitglied
der „People
Magazine-Abonnentengruppe" wird),
kann eine Bezugnahme auf den People Magazine-Gruppenzusammensetzungsspeicher
an das Benutzerprofil geliefert werden. Dieser Gruppenzusammensetzungsspeicher
kann Ausgaben des People Magazine enthalten. Wenn neue Ausgaben
herauskommen, werden diese Ausgaben dem People Magazine-Gruppenzusammensetzungsspeicher
hinzugefügt.
Da der Benutzer eine Bezugnahme auf den People Magazine-Gruppenzusammensetzungsspeicher
in seinem/ihrem Benutzerprofil hat, werden neue Ausgaben des People
Magazine (dargestellt als Zusammensetzungen in dem Gruppenzusammensetzungsspeicher)
automatisch ein Teil des Personalbilderzeugungsverwahrungsort des
Benutzers. Der Benutzer wäre
in der Lage, dieselben wie jegliche andere Zusammensetzung auszuwählen, die
in dem Personalbilderzeugungsverwahrungsort des Benutzers verfügbar ist,
und kann dieselbe nachfolgend verwenden. Der Benutzer müßte den
Gruppenzusammensetzungsspeicher nicht ausdrücklich auswählen – sobald eine Bezugnahme auf
denselben zu dem Benutzerprofil hinzugefügt wird, ist dieselbe immer
ein Teil des Personalbilderzeugungsverwahrungsorts des Benutzers
und Zusammensetzungen aus demselben werden aufgezählt, wenn
verfügbare
Zusammensetzungen für
eine Auswahl durch den Benutzer durch den Webinhalt aufgelistet
werden, außer
der Benutzer entfernt dieselbe. Es sollte darauf hingewiesen werden,
daß sich
der Benutzer nicht notwendigerweise bewußt ist, daß er/sie spezifisch eine Zusammensetzung
aus dem Gruppenzusammensetzungsspeicher ausgewählt hat – der Benutzer würde nur
denken, daß er/sie
eine Zusammensetzung ausgewählt
hat.
-
Es
wird darauf hingewiesen, daß zwei
oder mehr Gruppenzusammensetzungsspeicher und Gruppengraphikspeicher
vorhanden sein können,
wobei sich einige innerhalb der Brandmauer und einige außerhalb der
Brandmauer befinden. Dementsprechend, wenn sich der Bilderzeugungsklient
außerhalb
der Brandmauer befindet, dann würden
die verfügbaren
Zusammensetzungen, die durch den Webinhalt für eine Auswahl durch den Benutzer aufgezählt werden,
die Zusammensetzungen in dem Gruppenzusammensetzungsspeicher nicht umfassen,
die sich innerhalb der Brandmauer befinden.
-
Die
Verwendung eines Gruppenzusammensetzungsspeichers 500 und/oder
des Gruppengraphikspeichers 501 ist besonders vorteilhaft
zum Erstellen eines Satzes von Zusammensetzungen, die für eine Gruppe von
Benutzern verfügbar
sind. Dem Gruppenzusammensetzungsspeicher könnte z. B. monatlich ein Rundschreiben
hinzugefügt
werden. Auf diese Rundschreibenzusammensetzung könnte dann zum Zweck des Druckens
oder anderer Handhabungen zugegriffen werden. Der Gruppen-Zusammensetzungsspeicher/-graphikspeicher
macht die Bilderzeugungsinformationen automatisch für einen
Benutzer verfügbar,
basierend auf seiner/ihrer Zugehörigkeit
zu einer bestimmten Gruppe. Diese Zugehörigkeit wird in dem Benutzerprofil
für jede Person
angezeigt. Es wird darauf hingewiesen, daß mehrere einzelne Gruppen-Zusammensetzungsspeicher/-Graphikspeicher
für jede
Gruppe vorhanden sein könnte,
zu der der Benutzer zugehörig
ist. Wenn zusätzliche
Bilderzeugungsinformationen in diesen Gruppenzusammensetzungsspeichern
verfügbar
werden, hat der Benutzer diese Bilderzeugungsinformationen automatisch
in seinem/ihrem Personalbilderzeugungsverwahrungsort, da der Gruppenzusammensetzungsspeicher
ein Teil dieses Personalbilderzeugungsverwahrungsortes des Benutzers
ist, über
die Bezugnahme auf den Gruppenzusammensetzungsspeicher in dem Benutzerprofil
des Benutzers.
-
Als
ein anderes Beispiel könnten
sich die Erfinder das gemeinschaftliche Verwenden von Patentanmeldungsinformationen
vorstellen. Eine Patentanmeldung weist (mindestens) drei Teile auf:
beschreibender Text, Ansprüche
und Figuren. Ein Erfinder könnte
an dem beschreibenden Text arbeiten und dann eine Zusammensetzung
in dem Gruppenzusammensetzungsspeicher erzeugen, die Bezug auf eine
Graphik nimmt, die den beschreibenden Text enthält. Ein anderer Erfinder könnte das
gleiche für
die Zeichnungen tun. Ein dritter Erfin der könnte das gleiche für die Ansprüche tun.
Da Zusammensetzungen, die diese Elemente darstellen, sich in dem
Gruppenzusammensetzungsspeicher befinden, hätten alle Erfinder Zugriff
auf dieselben, über
ihre jeweiligen Personalbilderzeugungsverwahrungsorte. Wenn neue
Gegenstände
hinzugefügt
oder aktualisiert werden, hätten
alle Erfinder Zugriff auf die neuesten Versionen.
-
Der
Gruppenzusammensetzungsspeicher macht die gleichen Zusammensetzungen
einfach für
eine Gruppe von Personen verfügbar.
Wenn zwei Benutzer Benutzerprofile aufweisen, die eine Bezugnahme
auf einen Gruppenzusammensetzungsspeicher enthalten, haben beide
Benutzer Zugriff auf die Zusammensetzungen, die innerhalb dieses
Gruppenzusammensetzungsspeichers gespeichert sind. Wenn eine neue
Zusammensetzung hinzugefügt
wird oder eine bestehende Zusammensetzung auf eine bestimmte Weise
aktualisiert wird, haben beide Benutzer Zugriff auf diese hinzugefügte/aktualisierte
Zusammensetzung. Die Zusammensetzungen (und die Graphiken, auf die
durch diese Zusammensetzungen Bezug genommen wird), die innerhalb
des Gruppenzusammensetzungsspeichers gespeichert sind, werden ein
Teil des „Personalbilderzeugungsverwahrungsorts" für jeden
der Benutzer. Es wird darauf hingewiesen, daß jeglicher Gruppenzusammensetzungsspeicher
(es können
mehrere vorhanden sein) der innerhalb der Brandmauer positioniert
ist für diesen
Bilderzeugungsklienten unzugreifbar wird.
-
Bezug
nehmend nun auf 6A und 6B ist
eine Beispielimplementierung der Operation der vorliegenden Erfindung
dargestellt, um ein leichtes Verständnis zu liefern. Die Erfindung
soll nicht auf diese spezifische Sequenz von Operationsschritten
beschränkt
sein. Zusätzlich
dazu würde
ein Fachmann auf dem Gebiet erkennen, daß jeder der Schritte auf andere,
vergleichbare Weisen implementiert werden könnte.
-
In 6A beginnt
die Operation bei Startblock 600, der anzeigt, daß der Bilderzeugungsklient 12 aktiviert
wurde. Üblicherweise
wird dies dadurch erreicht, daß der
Benutzer seinen/ihren Benutzeranmeldenamen und das Paßwort zum
Einfügen
einer Karte in einen allgemeinen Bilderzeugungsklienten eingibt.
Die Ausführung
bewegt sich dann weiter zu Block 602, bei dem ein Benutzerprofil
ausgewählt
wird. Die Details für
die Auswahl des Benutzerprofils werden detaillierter im Hinblick
auf 7 erörtert.
Bei diesem Beispiel blättert
der Browser an dem Bilderzeugungsklienten 12 dann zum Beispiel
zu einem Lieferantenwebserver 30 bei Block 604.
Ein Lieferantenwebserver würde
Graphiken für
ein nachfolgendes Verarbeiten liefern, möglicherweise an einen anderen
Webdienst, d. h. einen Verbraucherwebdienst.
-
Die
Operation bewegt sich dann weiter zu Block 606, bei dem
Lieferantenwebinhalt von dem Server 30 angefordert und
auf den Bilderzeugungsklienten 12 heruntergeladen wird.
Die vorangehenden Schritte des Blätterns zu dem Webserver und
des Erhaltens von Lieferantenwebinhalt umfassen bei einem Ausführungsbeispiel,
daß der
Benutzer einen geeigneten URL für
eine Webseite einer Website eingibt. Der Browser 18 an dem
Bilderzeugungsklienten 12 empfängt diese URL-Eingabe und überträgt ansprechend
darauf eine geeignete Anfrage (in manchen Fällen durch eine Brandmauer)
für die
Webseite an einen Webserver. Der Webserver, z. B. Webserver 30,
empfängt
diese Anfrage und antwortet durch Übertragen der gewünschten
Webseite an den Webbrowser. Der Browser 18 empfängt die übertragene
Webseite und zeigt dieselbe an.
-
Webseiten
weisen eine Reihe von Etiketten auf, wobei die meisten derselben
die Art beschreiben, wie die Webseite aussehen sollte, sie umfassen
ferner jedoch Etiketten zum Spezifizieren von Hyperlinks zu anderen
Orten (einer anderen Website, einer Webseite auf der aktuellen Site
oder einem Ort innerhalb der aktuellen Seite z. B.). Konzeptionell
würde die
Webseite einen Textabschnitt und eine oder mehrere Hyperlinks aufweisen,
wie z. B. eine „get
document ser vice" (erhalte
Dokumentdienst)-Hyperlink zum Liefern der Graphik für das Dokument.
Der Textabschnitt kann Informationen betreffend den Dokumenterzeugungsdienst
umfassen, der durch den Webserver 30 geliefert wird, und
potentiell ebenfalls Informationen über die Kosten zur Verwendung
des Dienstes und eine Einrichtung für den Benutzer zum Einleiten
der Zahlung. Die Hyperlink ist derart formatiert, daß der Benutzer
eine entsprechende Anfrage zurück
an den Webserver 30 für
den Dokumenterzeugungslieferanten-Webinhalt überträgt, wenn sie durch den Benutzer
ausgewählt
wird, der dann auf den Browser 18 heruntergeladen wird.
-
Somit
stellt der Lieferantenwebinhalt 16, der nun in dem Bilderzeugungsklienten 12 vorliegt,
eine Vielzahl von Optionen zum Zugreifen, Handhaben und anderweitigen
Verwenden der Graphiken an dem oder zugreifbar durch den Webserver
dar.
-
Die
Operation bewegt sich dann zu Block 608, wo angenommen
wird, daß der
Benutzer über
die Hyperlink oder mittels automatischer Auswahl eine Option auswählt, um
etwas mit der Graphik zu unternehmen, wie z. B. das Dokument zu
erhalten. Der Browser 18 empfängt diese Benutzereingabe und überträgt eine
entsprechende Anforderung nach dem Dokumenterzeugungs-Webinhalt
an den Webserver 30.
-
Die
Operation bewegt sich dann zu Block 610, wo der Lieferantenwebinhalt
von dem Benutzerprofil eine Bezugnahme auf einen Graphikspeicher
in dem Personalbilderzeugungsverwahrungsort des Benutzers anfordert. Üblicherweise
wäre dies
eine undurchsichtige Bezugnahme für eine Bezugnahme 68 auf
einen Standardgraphikspeicher 60. Um dies zu erreichen,
ruft der Lieferantenwebinhalt ein Verfahren auf, das Teil der API
ist, die durch die Bilderzeugungserweiterung 22 bereitgestellt
wird. Dieses Verfahren meldet sich in dem Graphikspeicher an, auf
den Bezug genommen wurde. Dabei kann der Webinhalt bestimmen, ob
der Graphikspeicher ein bestimmtes Graphikformat bevorzugt wird
und welche Graphik formate allgemein durch den Graphikspeicher unterstützt werden.
Das Graphikformat muß nicht
notwendigerweise für
jeden spezifischen Zweck kompatibel sein, wie z. B. Drucken. Es
muß lediglich
mit dem Graphikspeicher kompatibel sein, so daß der Graphikspeicher das gelieferte
Graphikformat bearbeiten kann.
-
Es
sollte darauf hingewiesen werden, daß zwei Webinhalte vorhanden
sind, die üblicherweise
sequentiell arbeiten: ein Webinhalt von einem Lieferantenwebdienst
und ein Webinhalt von einem Verbraucherwebdienst. Der Benutzer fügt seinem
Personalbilderzeugungsverwahrungsort Graphikdaten hinzu, die von
einem Webdienst (dem Lieferantenwebdienst) geliefert wurden, und
verwendet dann diese Graphikdaten durch Blättern zu einem anderen Webdienst
zum Verarbeiten (dem Verbraucherwebdienst). Anfänglich lädt der Lieferantenwebdienst
dessen Webinhalt auf den Browser des Benutzers herunter und verwendet
diesen Webinhalt zum Hinzufügen
einer Graphik zu dem Personalbilderzeugungsverwahrungsort des Benutzers,
wie hierin detaillierter erörtert
wird. Dann lädt
der Verbraucherwebdienst dessen Webinhalt auf den Browser des Benutzers herunter
und greift auf die Graphik in dem Personalbilderzeugungsverwahrungsort
des Benutzers zu, um dieselbe zu bearbeiten. Der Webinhalt, der
durch den Verbraucherwebdienst geliefert wird, liefert Webinhalt,
der anzeigt, daß diese
Datenformate durch den Verbraucherwebdienst unterstützt werden. Üblicherweise
verwenden Verbraucherwebdienste JPEG-, PNG-, GIF-Formate die Informationen über die
Graphik verwenden, wie z. B. Größe, Anzahl
von Seiten, etc. Beispielsweise aber nicht einschränkend sei
angenommen, daß die
Graphikdaten durch einen Verbraucherwebdienst verarbeitet werden
sollen, wie z. B. einen Druckerwebdienst, da der Benutzer zu dem
Druckerwebdienst geblättert
ist und verursacht hat, daß der
Webinhalt des Druckerwebdienstes auf den Browser heruntergeladen
wird. Der Druckerwebdienst-Webinhalt tritt in Wechselwirkung mit dem
Graphikspeicher in dem Personalbilderzeugungsverwahrungsort 50 des
Benutzers und wählt
ein Datenformat aus, das mit demselben kompatibel ist; bei einem
Druckerwebdienst üblicherweise
PDF, PCL, PS und PCL6. Anders ausgedrückt „weiß" der Verbraucherwebinhalt von dem Druckerwebdienst
(aufgrund seiner Herkunft), welches Datenformat für diesen
Druckerwebdienst geeignet/mit demselben kompatibel ist und fragt
den Graphikspeicher ab, um zu bestimmen, ob eine Übereinstimmung
zwischen dem Datenformat vorhanden ist, das an dem Verbraucherdruckerwebdienst
verwendet wird und dem Datenformat, das von dem Graphikspeicher
erhältlich
ist, und trifft dann die geeignete Auswahl aus den von dem Graphikspeicher
verfügbaren
Formaten.
-
Diese
Formatinformationen könnten
automatisch ausgewählt
werden, oder manuell über
eine Eingabe von dem Benutzer durch eine Benutzerschnittstelle.
-
Bei
Block 614 würde
der Verbraucherwebdienst basierend auf diesen Graphikformatoptionen
ein Graphikformat für
die Graphik auf dem Server 30 auswählen.
-
An
diesem oder einem früheren
Punkt würde
der Lieferantenwebinhalt ferner eine Benutzerschnittstelle mit auswählbaren
Optionen anzeigen, die ein Pull-down-Menü umfassen kann, um dem Benutzer
zu ermöglichen
anzuzeigen, wo er/sie das Dokument speichern möchte, d. h. in einem Graphikspeicher,
der dem Webdienst zugeordnet ist, von dem die Graphik geliefert
wurde (wobei auf den Graphikspeicher dann durch eine Zusammensetzung
in einem Zusammensetzungsspeicher Bezug genommen werden könnte, der
Teil des Personalbilderzeugungsverwahrungsortes des Benutzers ist,
und dadurch zu einem Teil des Personalbilderzeugungsverwahrungsortes
des Benutzers gemacht wird), oder in einem Standardgraphikspeicher
in dem Personalbilderzeugungsverwahrungsort des Benutzers. Es ist
besser, den Standardgraphikspeicher des Benutzers in dem Personalbilderzeugungsverwahrungsort
des Benutzers zu verwenden, wenn der fragliche Webdienst nicht immer
verfügbar
ist (oder genauer gesagt, die Graphik, die diesem Webdienst zugeordnet
ist). Einige Webdienste haben keinen Graphikspeicher oder sind nicht
verläßlich, um
Graphiken zuverlässig
zu liefern. Ein Webdienst, der z. B. eine Kamera darstellt (wie
z. B. eine, die auf der lokalen Maschine des Benutzers läuft – d. h.
der Bilderzeugungsklientenmaschine) wird keinen Graphikspeicher
aufweisen, da es wahrscheinlich ist, daß die Kamera nur vorübergehend
mit dem Bilderzeugungsklienten des Benutzers verbunden ist.
-
Angenommen,
die Speicherungsoption wurde ausgewählt und der Graphikspeicher
wurde entweder manuell oder automatisch ausgewählt, dann würde die Operation sich zu Block 616 bewegen,
wo der Lieferantenwebinhalt über
geeignete undurchsichtige Bezugnahmen eine neue Graphik in dem ausgewählten Graphikspeicher
erzeugt, der dann der Standardgraphikspeicher 60 ist, auf
den durch das Benutzerprofil Bezug genommen wird. Die Operation
bewegt sich dann zu Block 618, wo der Webinhalt die erzeugte
Graphik in dem Standardgraphikspeicher 60 zum Zweck des
Schreibens von Daten öffnet.
-
Die
Operation bewegt sich dann zu Block 620, wo der Webinhalt
eine Nachricht oder eine Sequenz von Nachrichten erzeugt, die die
gewünschten
Graphikdaten aus dem Webserver 30 in dem geeigneten Format
anfordern. Die Operation bewegt sich dann zu Block 622,
wo der Webinhalt eine oder mehrere Nachrichten in dem ausgewählten Format
empfängt
und über
die Bilderzeugungserweiterungs-API die Graphikdaten in diese Nachrichten
schreibt, um die Graphik in dem Graphikspeicher zu öffnen.
-
Genauer
gesagt empfängt
die Bilderzeugungserweiterung 22 die allgemeine Zugriffsanforderung
von dem Webinhalt und antwortet mit einem Verfahren in deren API,
das entsprechende undurchsichtige Bezugnahmen bei dem bevorzugten
Ausführungsbeispiel
verwendet, um zu verursachen, daß die Daten in den Nachrichten
in dem Graphikspeicher 60 gespeichert werden. Wie vorangehend
erwähnt
wurde, kann dies eine Kommunikation über eine Kommunikationsverbindung
zu einem entfernten Graphikspeicher umfassen, oder es kann einfach eine
Speicherung in einen zweckgebundenen Abschnitt einer Festplatte
des Bilderzeugungsklienten 12 umfassen, wobei beides in
dem Personalbilderzeugungsverwahrungsort für den Benutzer sein kann. Es
wird darauf hingewiesen, daß die
Erweiterung diese Nachrichten, die die Graphik enthalten, durch die
Brandmauer 14 kommunizieren kann, da das HTTP-Protokoll verwendet
werden kann. Der Graphikspeicher antwortet auf diese Befehle durch
Speichern der Nachrichten in einer oder mehreren Graphikdateien.
-
Die
Operation bewegt sich dann zu Block 624, wo der Lieferantenwebinhalt
eine undurchsichtige Bezugnahme durch die Bilderzeugungserweiterungs-API
zu der neu erzeugten Graphik hält
und dann die offene Graphik schließt. Die Operation bewegt sich
dann zu Block 626, wo der Webinhalt eine Bezugnahme 67 in
dem Benutzerprofil für
einen Standardzusammensetzungsspeicher wiedergewinnt. Dieser Standardzusammensetzungsspeicher 62 kann
gemäß einem
vorbestimmten Kriteriensatz durch den Benutzer bestimmt oder automatisch
eingestellt werden.
-
Die
Operation bewegt sich dann zu Block 628, wo der Lieferantenwebinhalt
sich durch die undurchsichtigen Bezugnahmen von der Bilderzeugungserweiterungs-API
in dem Standardzusammensetzungsspeicher 62 anmeldet und
eine Zusammensetzung innerhalb des Zusammensetzungsspeichers 62 erzeugt.
Die Operation bewegt sich dann zu Block 630, wo der Lieferantenwebinhalt
durch die undurchsichtigen Bezugnahmen von der Bilderzeugungserweiterungs-API
der neu erzeugten Graphik in dem Graphikspeicher 60 eine
Bezugnahme auf die Zusammensetzung hinzufügt, die soeben in dem Zusammensetzungsspeicher 62 erzeugt wurde.
-
Die
Operation bewegt sich dann zu Block 632, wo der Lieferantenwebinhalt
durch die undurchsichtigen Bezugnahmen von der Bilderzeugungserweiterungs-API
die Bezugnahme 69 in dem Benutzerprofil 64 für die Standardzusammensetzung ändert, um
auf die Zusammensetzung Bezug zu nehmen, die soeben in dem Zusammensetzungsspeicher 62 erzeugt
wurde. Die Operation bewegt sich dann zu Block 634, wo
der Lieferantenwebdienst den Browser anweist, die Verwendung einzuleiten,
die anfänglich
durch den Benutzer für
die Graphik ausgewählt
wurde, z. B. Drucken. Da die neu erzeugte Zusammensetzung als die
Standardzusammensetzung eingestellt ist, wird dieselbe ausgewählt und
durch nachfolgende Webdienste verwendet, z. B. Drucker, um Dienste
auf denselben auszuführen.
-
Bezug
nehmend auf 7 sind Details für eine Beispielimplementierung
von Block 602 in 6 offenbart.
In 7 ist die Anfangsoperation in Block 700 eine
Anforderung, die durch den Lieferantenwebinhalt an die Bilderzeugungserweiterungs-API
nach Benutzeridentifizierungsinformationen betreffend verfügbare Benutzerprofile
getätigt
werden soll. Wie bei anderen Operationen würde diese Anforderung tatsächlich durch
die API der Bilderzeugungserweiterung übertragen werden, die wirkt,
um undurchsichtige Bezugnahmen auf das Benutzerprofil und Ressourcen
in demselben zurück
an den Webinhalt zu liefern. Diese undurchsichtigen Bezugnahmen
würden
eine Zuordnung der Webinhaltsbefehle zu den entsprechenden Ressourcen
an dem Bilderzeugungsklienten und mit dem entsprechenden Personalbenutzerverwahrungsort
ermöglichen.
Die Operation bewegt sich dann zu Block 702, wo bestimmt
wird, ob mehr als ein Benutzerprofil für eine Auswahl verfügbar ist.
Wenn die Bestimmung NEIN ist, dann bewegt sich die Operation zu
Block 704, wo das einzelne aktive Benutzerprofil durch
die Bilderzeugungserweiterungs-API dem Webinhalt zugeordnet wird.
Wenn die Bestimmung JA ist, dann bewegt sich die Operation zu Block 706,
wo ein Verfahren zum Bestimmen des korrekten Benutzerprofils aufgerufen
wird. Als Beispiel kann dieses Verfahren das Anzeigen einer Benutzerschnittstelle mit
Tasten aufweisen, um die Auswahl von einem aus einer Mehrzahl von
verfügbaren
Benutzerprofilen zu ermöglichen.
Alternativ oder zusätzlich
dazu kann das aufgerufene Verfahren auf ein bestimmtes Benutzerprofil voreingestellt
werden, das vorangehend durch den Benutzer ausgewählt wurde,
oder basierend auf vorbestimmten Krite rien ausgewählt wurde,
wie z. B. ob sich der Bilderzeugungsklient innerhalb einer Brandmauer befindet,
oder basierend darauf, welche Maschine der Benutzer als den Bilderzeugungsklienten 12 aktiviert hat.
-
Die
Operation bewegt sich dann zu Block 708, wo das ausgewählte oder
automatisch bestimmte Benutzerprofil durch die Bilderzeugungserweiterungs-API
dem Webinhalt zugeordnet ist.
-
Der
in 7 beschriebene Prozeß kann ferner für den Webinhalt
durch die Bilderzeugungserweiterung durchgeführt werden.
-
Bezug
nehmend nun auf 8 ist ein schematisches Beispiel
der Operation der vorliegenden Erfindung zum Erzeugen, Adressieren
und Stempeln eines Umschlags gezeigt. 8 zeigt
eine einzelne Zusammensetzung 800, die sich auf zwei Graphiken
bezieht – eine
für einen
Umschlag 808 und eine für
einen Stempel 814. Die Graphik des Umschlags 808 umfaßt eine
Absendeadresse und eine Zieladresse. Diese sind nicht notwendigerweise
die gleiche Graphik – aber
der Einfachheit halber sind sie Teil der gleichen Graphik (der Umschlagsgraphik).
Die Graphik des Umschlags 808 kann aus einem Dokument unter
Verwendung einer Tischcomputeranwendung 806 (z. B. Microsoft
Word) und eines „Webbilderzeugungsdruckers" (ein Betriebssystem-Druckzielort,
der Druckdaten beim Drucken aus der Anwendung erfaßt und diese
Informationen in den Personalbilderzeugungsverwahrungsort des Benutzers überträgt) erzeugt
wird und in den Standardgraphikspeicher 810 des Benutzers
plaziert wird. Die Stempelgraphik 814, die in der Figur
gezeigt ist, kann durch einen Stempelwebdienst 812 erzeugt
werden und in dem Standardgraphikspeicher 810 des Benutzers
plaziert werden. Vermutlich (obwohl dies in dem Diagramm nicht spezifisch
dargestellt ist) kann die Umschlagsgraphik zuerst existieren.
-
Im
Betrieb erzeugt der Benutzer die Umschlaggraphik mit dem „Webbilderzeugungsdrucker" zusammen mit der
entsprechenden Zusammensetzung 800 aus der Anwendung 806.
Nachdem die Umschlagsgraphik 808 und die Zusammensetzung 800 unter
Verwendung der Anwendung 806 und des Webbilderzeugungsdruckers
erzeugt wurden und in dem Standardgraphikspeicher 810 des
Benutzers plaziert wurden, blättert
der Benutzer zu einer Stempeldienstwebsite 812 und kauft
einen Stempel. Die Stempeldienstwebsite 812 erzeugt Bilddaten,
die einem Stempel entsprechen (üblicherweise
einen Streifencode für
einen elektronischen Stempel) und plaziert die Bilddaten unter Verwendung
des Stempeldienstwebsite-Webinhalts in eine Graphik 814 innerhalb
des Standardgraphikspeichers 810 des Benutzers. Wurde dies
erfüllt,
fügt der
Stempeldienstwebinhalt dann die Graphik 814 der Umschlagzusammensetzung 800 in
einem Ort hinzu, der für
einen Stempel geeignet ist. Somit stellt das Diagramm eine Zusammensetzung 800 dar,
die auf zwei Graphiken 808 und 814 Bezug nimmt.
Diese Zusammensetzung könnte
dann nachfolgend gedruckt werden – mit dem Stempel.
-
Obwohl
die vorangehende Beschreibung im Kontext eines Bilderzeugungsklienten
und zweier Servermaschinen 30 und 32 innerhalb
der Brandmauer und zweier Servermaschinen 40 und 42 außerhalb
der Brandmauer für
eine leichtere Erklärung
durchgeführt
wurde, umfaßt
die bevorzugte Implementierung wahrscheinlich viele Servermaschinen,
auf die die Klientenmaschine Zugriff hat und mit welchen sie kommunizieren
kann. Für
ein besseres Leseverhalten wurde manchmal auf „eine" Klientenmaschine oder Servermaschine
Bezug genommen. Es sollte jedoch darauf hingewiesen werden, daß sich die
Verwendung von „eine" ferner auf „eine oder
mehrere" bezieht.
-
Ein
weiterer Aspekt der vorliegenden Erfindung richtet sich auf das
Lösen der
nachfolgenden Druckprobleme. Besondere Verhaltensprobleme entstehen
während
gewisser Druckoperationen, wenn die Seiten zum Drucken außerhalb
der numerischen Reihenfolge angefordert werden. Eine Duplexspezifizierung
könnte z.
B. die Seiten 1 und 3 und dann 2 und 4 anfordern. Bestimmte Druckoperationen,
wie z. B. Broschürendrucken,
könnten
Seiten außer
der Reihenfolge anfordern, wie z. B. 1, 99, 2, 98, etc. Um dies
zu ermöglichen,
ist eine bedeutende Speichermenge erforderlich, um die dazwischenliegenden
Seiten temporär
zu speichern. Dementsprechend mußten Druckerentwerfer in der
Vergangenheit angemessene Speichermengen einlagern, um eine derartige
Druckspezifikation zu ermöglichen.
-
Ein
System und ein Verfahren, das ein Anfordern und Zugreifen auf bestimmte
Seiten außer
der Reihenfolge erlaubt, würde
das Verhalten verbessern und die erforderliche Speichermenge (sowohl
im RAM als auch auf der Festplatte) reduzieren. Dementsprechend
wäre ein
System und ein Verfahren, das es dem Drucker erlaubt, Seiten in
der natürlichen
Reihenfolge anzufordern, die durch den Drucker für einen bestimmten Druckauftrag
erforderlich ist, äußerst vorteilhaft.
Die Zuverlässigkeit
wird ebenfalls verbessert, da es weniger wahrscheinlich ist, daß der Drucker
keinen Speicher mehr aufweist.
-
Dementsprechend
wird ein System und ein Verfahren geschaffen, um es einem Drucker
zu erlauben, Dokument-/Druckauftrag-Daten
in einer vorgeschriebenen Seitenbilddaten-Reihenfolge anzufordern.
-
Bezug
nehmend auf 12 kann ein Prozessor an einen
Druckerdienst oder anderswo bei Block 1500 eine Bezeichnung
zum Drucken eines Dokuments empfangen. Üblicherweise wird diese Bezeichnung
von einem Browser unter der Steuerung eines Webinhalts empfangen,
der von dem Druckerdienst stammt. Bei diesem Szenario kann ein Benutzer
auf eine Taste geklickt haben oder anderweitig eine Anzeige auf
einer graphischen Schnittstelle getätigt haben, daß er/sie
ein Dokument drucken möchte.
Ferner wird zu dieser oder einer späteren Zeit eine Benutzerspezifizierung
des Typs des ausge wählten
Druckauftrags erhalten. Der Benutzer kann z. B. DUPLEX oder BROSCHÜRE oder
eine bestimmtere andere Spezifizierung durch Klicken auf eine Taste
oder anderweitiges Durchführen
einer Identifizierung auf der graphischen Benutzerschnittstelle
ausgewählt
haben, die durch den Webinhalt bereitgestellt wird. Es wird darauf
hingewiesen, daß die
Druckspezifikation ferner automatisch von dem Webinhalt oder von
einer Quelle ohne Benutzereingabe erhalten werden kann. Das Erhalten
der Druckspezifikation ist durch Block 1510 in 12 dargestellt.
-
Das
Verfahren bewegt sich dann zu Block 1520, wo eine Seitenbilddaten-Reihenfolge
aufgebaut ist. Die Seitenbilddaten-Reihenfolge kann durch den Webinhalt
aufgebaut werden oder kann von einer anderen Quelle an den Webinhalt
geliefert werden, wie z. B. dem Webdruckerdienst. Üblicherweise
wird die Seitenbilddaten-Reihenfolge basierend auf der bei Block 1510 bestimmten
Druckspezifikation bestimmt. Die Seitenbilddaten-Reihenfolge kann
jedoch basierend auf einem anderen Kriterium vorbestimmt werden
oder eine StandardSeitenbilddaten-Reihenfolge aufweisen.
-
Das
Verfahren fährt
dann mit Block 1530 fort, um die Formate zu erhalten, in
denen der gesamte Satz von Seitenbilddaten für das Dokument erhältlich ist,
und trifft eine Auswahl eines geeigneten Formats. Das Format wird
z. B. durch Vergleichen der Formate ausgewählt, in denen die gesamte Zusammensetzung
erhältlich ist,
mit einem oder mehreren Formaten, die durch den Druckerdienst spezifiziert
werden, und durch nachfolgendes Treffen einer Auswahl basierend
auf demselben. Die Beispiel-API in der Zusammensetzungsspeicher-API
zum Ermöglichen
dieser Get-Operation ist „GetGraphicFormatsInWhichEntireCompositionIs
AvailableInGivenCanvasOrder(CompositionStoreSession, URL composition,
CanvasOrder)
unter Verwendung der Argumente compositionStoreSession,
wobei ein URL die Zusammensetzung darstellt und eine Seitenbilddaten-Reihenfolge
verfügbar
ist, um die Formate zu erhalten, in denen die gesamte Zusammensetzung
erhältlich halten,
in denen die gesamte Zusammensetzung erhältlich ist. Auf ähnliche
Weise ist die Beispiel-API bei der Bilderzeugungserweiterungs-API
für diese
Operation GetGraphikFormatsInWhichEntireCompositionIsAvailableInGivenCanvasOrder(Session,
OpaquRef composition, CanvasOrder) URL composition)
unter Verwendung
der Argumente session, einer undurchsichtigen Bezugnahme für die Zusammensetzung, einer
Seitenbilddaten-Reihenfolge und dem URL für die Zusammensetzung.
-
Das
Verfahren bewegt sich dann zu Block 1540, wo die Daten
für alle
Seitenbilddaten in der Seitenbilddaten-Reihenfolge erhalten werden.
Die Beispiel-API in der Zusammensetzungsspeicher-API zum Ermöglichen
dieser Get-Operation ist „GetGraphicDataForEntireCompositionInGivenCanvasOrder(CompositionStoreSession,
URL composition, CanvasOrder GraphicFormat)
unter Verwendung
der Argumente compositionStoreSession, einem URL, der die Zusammensetzung
darstellt, und einer Seitenbilddaten-Reihenfolge, und dem ausgewählten Graphikformat,
um die Graphiken für
die gesamte Zusammensetzung in der gegebenen Seitenbilddaten-Reihenfolge
zu erhalten. Auf ähnliche
Weise ist die Beispiel-API in der Bilderzeugungserweiterungs-API
für diese
Operation GetGraphicDataForEntireCompositionInGivenCanvasOrder(Session,
OpaqueRef composition, CanvasOrder, Graphic-Format)
unter Verwendung der Argumente
session, einer undurchsichtigen Bezugnahme für die Zusammensetzung, einer
Seitenbilddaten-Reihenfolge und dem ausgewählten Graphikformat.
-
Das
Verfahren fährt
dann mit Block 1550 fort, wo die Graphikdaten für das Dokument
in der gewünschten
Seitenbilddaten-Reihenfolge zum Druckerverarbeiten gesendet werden.
-
Das
Verfahren fährt
dann mit Block 1560 fort, wo die verarbeiteten Daten gedruckt
werden.
-
Das
in 12 beschriebene Verfahren wird vorzugsweise unter
der Steuerung des Webinhalts durchgeführt, der in einem Browser im
Auftrag eines Webdienstes ausgeführt
wird. Dieses Verfahren kann jedoch alternativ direkt durch den Webdienst
ohne die Hilfe des Webinhalts ausgeführt werden. In dieser Situation kommuniziert
der Webdienst direkt mit dem relevanten Zusammensetzungsspeicher,
um die Graphikdaten in der gewünschten
Seitenbilddaten-Reihenfolge zu erhalten.
-
Es
sollte darauf hingewiesen werden, daß es offensichtlich ist, daß die Reihenfolge
dieser Schritte von der abweichen kann, die dargestellt ist, obwohl
die hierin bereitgestellten Flußdiagramme
eine spezifische Reihenfolge zeigen. Ferner können zwei oder mehr Schritte
gleichzeitig oder teilweise gleichzeitig ausgeführt werden. Eine derartige
Variation ist von den ausgewählten
Software- und Hardware-Systemen
und allgemein von der Wahl des Entwicklers abhängig. Es wird darauf hingewiesen,
daß alle
derartigen Variationen innerhalb des Schutzbereichs der Erfindung
liegen. Es wird ferner darauf hingewiesen, daß einer oder mehrere der Schritte durch
eine programmierte Maschine durchgeführt oder implementiert werden
können,
oder durch eine Hardwarevorrichtung oder manuell. Es sollte ferner
darauf hingewiesen werden, daß viele
der Aspekte der vorliegenden Erfindung unabhängig von der hierin offenbarten
API sind und unabhängig
von derselben implementiert werden können. Obwohl z. B. die Verwendung
einer Bilderzeugungserweiterung bevorzugt wird, um eine Schnittstelle
zwischen dem Webinhalt und den Bilderzeugungssystemressourcen zu
liefern, können
viele Aspekte der vorliegenden Erfindung ohne die Verwendung einer
Bilderzeugungserweiterung implementiert werden.