-
Die vorliegende Erfindung bezieht
sich allgemein auf eine Dokumentherstellung und insbesondere auf
eine Dokumentherstellung, die keine Benutzerwechselwirkung erfordert.
-
Mit der Ausbreitung von Handhalte-Rechenvorrichtungen
und drahtlosen Netzwerkfähigkeiten
ist es oft wünschenswert,
eine Operation auf einem Server zu programmieren, um ein Dokument
zu drucken. Unter Verwendung von elektronischer Post, eines Webbrowsers
oder einer anderen Kommunikationseinrichtung, die auf einer mobilen
Vorrichtung verfügbar
ist, sendet der Benutzer das Dokument elektronisch zu dem Server,
das gedruckt werden soll. Der Server speichert das Dokument unter
Verwendung eines temporären
Dateinamens. Auf der mobilen Vorrichtung wurde das Dokument wahrscheinlich
mit einem Dateinamen gespeichert, der erzeugt wurde, und somit dem
Benutzer bekannt ist – z.
B., „c:\mydocuments-\file.doc". Eine Dateiverwaltungsprogrammierung
auf dem Server erzeugt jedoch einen neuen und typischerweise nicht
so benutzerfreundlichen Dateinamen, wenn das Dokument gespeichert
wird – z.
B., „c:\winnt\temp\973498-98398843-09679-67267\t839348abcb5.tmp". Dadurch kann die
Dateiverwaltungssoftware die temporäre Datei löschen, nachdem dieselbe gedruckt
wurde, wodurch verhindert wird, daß der Server mit Dateien verstopft
wird, die nicht mehr benötigt
werden.
-
Um das Dokument zu drucken, öffnet eine Programmierung
auf dem Server, wie z. B. eine Textverarbeitungseinrichtung oder
ein Internetbrowser die temporär
gespeicherte Datei und gibt einen Druckbefehl aus. Eine Programmierung
jedoch, die in der Lage ist, Dokumente zu drucken, erfordert üblicherweise
eine Benutzerwechselwirkung, um verschiedene Produktionsoptionen
auszuwählen,
wie z. B. die Anzahl von Ko pien, ob ein Duplexdrucken erforderlich
ist und in vielen Fällen
das Drücken
von Enter auf einer Tastatur oder das Klicken eines Druckbefehlknopfes
unter Verwendung einer Maus. Wenn der Server geographisch von dem
Benutzer getrennt ist, ist der Benutzer nicht in der Lage, die Wechselwirkung
zu liefern, die für
ein direktes Drucken benötigt
wird. Der Benutzer muß sich
statt dessen auf eine andere Programmierung verlassen, die auf dem
Server arbeitet, um die erforderliche Wechselwirkung zu liefern.
-
Ferner ist es beim Drucken eines
Dokuments häufig
wünschenswert,
den Dateinamen des Dokumentes in einem Anfangsblock oder einer Fußzeile einzuschließen, die
durch das Programm hinzugefügt
wird, das für
das Drucken verantwortlich ist. Dies ermöglicht es dem Benutzer oder
einer anderen Partei, die elektronische Version des Dokuments später zu lokalisieren.
Wenn das Dokument, das gedruckt wird, ein temporäres ist, das auf einem Server
gespeichert wird, kennt das Programm, das für das Drucken verantwortlich
ist, das Dokument nur durch dessen temporären Dateinamen. Die Programmierung hat
keine Kenntnisse über
den Dateinamen, durch den der Benutzer das Dokument identifiziert
hat. Wenn somit das Dokument gedruckt wird, wird der temporäre Dateiname
in dem Anfangsblock oder der Fußzeile
plaziert. Diese Informationen sind von wenig falls überhaupt
von Verwendung für
den Benutzer. Sie geben ferner Informationen über den Server frei, die durch
Hacker verwendet werden könnten,
um das System zu gefährden.
-
Es ist die Aufgabe der vorliegenden
Erfindung, ein Dokumentherstellungsverfahren, ein computerlesbares
Medium und ein Dokumentherstellungssystem mit verbesserten Charakteristika
zu schaffen.
-
Diese Aufgabe wird durch ein Dokumentherstellungsverfahren
gemäß Anspruch
1, 5, 7 und 9, durch ein computerlesbares Medium gemäß Anspruch
11, 15, 17 und 19 und durch ein Doku mentherstellungssystem gemäß Anspruch
25, 27, 29 und 31 gelöst.
-
Entsprechend entstand die vorliegende
Erfindung aus dem Bedarf, ein Dokument zu einer Rechenvorrichtung
zu liefern, wie z. B. einem Server, der es der Vorrichtung ermöglicht,
das Dokument herzustellen, ohne eine Benutzerwechselwirkung zu erfordern.
Bei verschiedenen Ausführungsbeispielen wird
ein Dokument empfangen, das hergestellt bzw. erzeugt werden soll.
Eine Herstellungsanwendung, die für das Herstellen des Dokuments
verantwortlich ist, wird initiiert. Rufe von der Herstellungsanwendung
zu einer Dokumentherstellungsfunktion werden verursacht, um zu einer
Stellvertreterdokumentherstellungsfunktion umgeleitet zu werden.
Die Herstellungsanwendung wird dann angewiesen, das Dokument herzustellen.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm, das die physischen und logischen Komponenten eines
Computersystems darstellt;
-
2 ein
Flußdiagramm,
das die Schritte darstellt, die unternommen werden, um ein Aktionsmodul
in einen Betriebsspeicher zu laden;
-
3 bis 8 Blockdiagramme, die die
Inhalte des Betriebsspeichers aus 1 darstellen,
wenn die Schritte ausgeführt
werden, die in 2 beschrieben
sind;
-
9 eine
schematische Darstellung einer Rechenumgebung, in der verschiedene
Ausführungsbeispiele
der vorliegenden Erfindung eingelagert sein können;
-
10 ein
Blockdiagramm, das die Hardware und Programmierung darstellt, die
auf einem Server gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung enthalten ist;
-
11 ein
Blockdiagramm, das die logischen Programmierungselemente eines entfernten Herstellungsdienstes
darstellt;
-
12 ein
Flußdiagramm,
das die Schritte darstellt, die unternommen werden, um ein Dokument
zu einem Server zu senden, das gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung hergestellt werden soll;
-
13 ein
Flußdiagramm,
das Schritte darstellt, die unternommen werden, um ein Dokument gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung herzustellen; und
-
14 bis 21 Blockdiagramme, die die
Inhalte des Betriebsspeichers aus 10 darstellen, wenn
die Schritte, die in 13 beschrieben
sind, gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ausgeführt werden.
-
Einleitung:
-
Moderne Betriebssysteme unternehmen
einen modularen Ansatz zum Unterstützen verschiedener Anwendungen.
Zum Beispiel kann ein gegebenes Betriebssystem eine Anzahl von Funktionen
verfügbar
machen – diese
Funktionen liegen in einer Reihe von Programmierungsmodulen vor.
Eine gegebene Anwendung benötigt
jedoch vielleicht nur wenige dieser Funktionen. Folglich muß die Programmierung
für alle
Funktionen, die durch das Betriebssystem bereitgestellt werden,
nicht in den Speicher eines Computers geladen werden – nur die
Programmierung für
jene Funktionen, die durch die Anwendung verwendet werden.
-
Betriebssysteme, wie z. B. Microsoft
Windows® liefern
eines oder mehrere Herstellungsmodule. Diese Module liefern Funktionen,
die es einem Benutzer ermöglichen,
eine Dokumentherstellungs-Vorrichtung oder einen -Dienst auszuwählen, wie
z. B. eine Drucker- oder Fax-Software, und Herstellungsoptionen
auszuwählen,
wie z. B. die Anzahl von Kopien, zweiseitiges Drucken und Porträt- oder
Landschafts-Seitenlayout.
Die Herstellungsmodule, die durch ein Betriebssystem geliefert werden,
sind entworfen, um Schnittstellen für eine Dokumentherstellung
zu liefern, die auf eine Eingabe durch eine Person ansprechen. Das
nachfolgende ist eine Teilliste der Dokumentherstellungsfunktionen,
die durch Microsoft Windows® geliefert werden: OpenPrinter()
bzw. Drucker öffnen,
GetPrinter() bzw. Drucker erhalten, SetPrinter() bzw. Drucker einstellen,
GetPrinterDate() bzw. Druckerdaten erhalten, SetPrinterData() bzw.
Druckerdaten einstellen, PrinterProperties() bzw. Druckereigenschaften,
StartDocPrinter() bzw. Dokumentdrucker starten, EndDocPrinter()
bzw. Dokumentdrucker beenden, DocumentProperties() bzw. Dokumenteigenschaften,
GetDeviceCaps() bzw. Vorrichtungsfähigkeiten erhalten, DeviceCapabilities() bzw.
Vorrichtungsfähigkeiten,
CreateDC() bzw. Erzeuge DC und CreateIC() bzw. Erzeuge IC.
-
Wenn ein elektronisches Dokument
zu einem entfernten Server gesendet wird, ist eine Wechselwirkung
durch eine Person häufig
keine Option. Eine Software, die auf dem Server arbeitet, erfordert eine
programmatische Schnittstelle, um das Dokument herzustellen. Ferner
ist es häufig
wünschenswert,
den Dateinamen des Dokuments in den Anfangsblock oder die Fußzeile des
gedruckten Dokumentes einzuschließen. Auf der Vorrichtung des
Benutzers weist das Dokument einen lokalen Dateinamen auf, der bekannt
ist und wahrscheinlich durch den Benutzer erzeugt wurde. Wenn das
Dokument zu dem Server gesendet wird, wird es temporär auf dem
Server unter Verwendung eines temporären Dateinamens gespeichert,
der durch die Dateiverwaltungsprogrammierung des Servers erzeugt
wird. Durch diesen temporären
Dateinamen identifiziert die Programmierung, die für das Drucken
verantwortlich ist, das Dokument. Leider ist der temporäre Dateiname
häufig
von wenig oder gar keinem Nutzen für den Benutzer.
-
Es wird dann erwartet, daß verschiedene Ausführungsbeispiele
der vorliegenden Erfindung arbeiten, um eine programmatische Schnittstelle
zum Drucken zu liefern, die in der Lage ist, den lokalen Dateinamen
eines Dokuments zu identifizieren und zu verwenden, und nicht dessen
temporären
Dateinamen. In der nachfolgenden Beschreibung werden die Schritte,
die unternommen werden, um eine Computeranwendung auszuführen, Bezug
nehmend auf 1 – 8 beschrieben. Die Umgebung,
in der verschiedene Ausführungsbeispiele
der vorliegenden Erfindung implementiert sein können, wird Bezug nehmend auf 9 – 11 beschrieben.
Schritte, die unternommen werden, um ein Ausführungsbeispiel der vorliegenden
Erfindung zu praktizieren, werden dann Bezug nehmend auf 12 und 13 beschrieben. Schließlich wird
ein Beispiel einer bestimmten Implementierung der vorliegenden Erfindung
Bezug nehmend auf 14 – 21 beschrieben.
-
Anwendungsausführung:
-
1 ist
ein Blockdiagramm, das einige physische und logische Komponenten
eines Computers 10 darstellt. Der Computer 10 umfaßt eine
CPU 12 (Central Processing Unit), einen Speicherungsspeicher 14 und
einen Betriebsspeicher 16. Die CPU 12 stellt allgemein
einen Prozessor dar, der in der Lage ist, Computerprogramme auszuführen. Der
Speicherungsspeicher 14 stellt allgemein einen Speicher
dar, der bezeichnet ist, um Programme und andere Daten zu speichern,
wenn dieselben nicht durch die CPU 12 verwendet werden. Üblicherweise
ist der Speicherungsspeicher 14 ein nichtflüch tiger
Speicher, der in der Lage ist, dessen Inhalte zu halten, wenn der Computer 10 abgeschaltet
wird. Beispiele umfassen Festplattenlaufwerke, Flash-Speicher und
Disketten. Der Betriebsspeicher 16 stellt allgemein einen
Speicher dar, der bezeichnet ist, um Programme und Daten zu enthalten,
wenn dieselben durch die CPU 12 in Verwendung sind. Üblicherweise
ist der Betriebsspeicher 16 ein flüchtiger Speicher, der seine
Inhalte verliert, wenn der Computer 12 abgeschaltet wird. Ein
Beispiel eines Betriebsspeichers 16 ist der RAM (Random
Access Memory = Direktzugriffsspeicher).
-
1 stellt
einen Computer 10 dar, bei dem nur ein Betriebssystem 18 in
den Betriebsspeicher 16 geladen ist. Der Speicherungsspeicher 14 enthält eine
Anwendung 20, Betriebssystemdateien 21, die eine
Reihe von Herstellungsmodulen 22 enthalten, und einen Datenspeicher 23.
Die Anwendung 20 stellt allgemein eine Computerprogrammanwendung dar.
Die Herstellungsmodule 22 stellen allgemein eine Programmierung
dar, die Dokumentherstellungsfunktionen liefert, die durch die Anwendung 20 benötigt werden
können
oder nicht. Der Datenspeicher 23 stellt einen logischen
Speicherbereich zum Speichern elektronischer Dateien dar, die durch
die Anwendung 20 erzeugt oder verwendet werden. Wenn die
Anwendung 20 z. B. eine Textverarbeitungseinrichtung ist,
würde der
Datenspeicher 23 Textverarbeitungsdokumente enthalten.
-
Die Schritte, die unternommen werden,
um die Anwendung 20 unter Verwendung eines Betriebssystems
auszuführen,
wie z. B. Microsoft Windows®, werden Bezug nehmend
auf 2 beschrieben. 3 – 8 helfen
beim Darstellen der Inhalte des Betriebsspeichers, wenn die Schritte
aus 2 ausgeführt werden.
Nach der Anweisung von einem Benutzers oder einer anderen Programmierung
greift das Betriebssystem 18 auf den Speicherungsspeicher 14 zu,
lokalisiert die Anwendung 20 und lädt die Anwendung 20 in
den Betriebsspeicher 16 (Schritt 24). Das Betriebssystem 18 identifiziert
jene Herstellungsmodule 22, die eine Programmierung enthalten,
die Dokumentherstellungsfunktionen liefert, die durch die Anwendung 20 benötigt werden
(Schritt 26). Die Anwendung 20 umfaßt eine
IAT (Import Address Table = Importadreßtabelle). Die IAT ist ein
Array, das durch die Anwendung 20 verwendet wird, um die
Speicheradresse der Module zu identifizieren, die bei Schritt 26 identifiziert
werden. Die IAT, wenn sie betriebsfähig ist, weist eine eindeutige
Speicheradresse zu einem Namen zu, der jede Funktion jedes identifizierten
Moduls identifiziert. Da die identifizierten Module jedoch noch
nicht in den Operationsspeicher 16 geladen wurden, enthält die IAT
an diesem Punkt die Namen der identifizierten Module und die relevanten Funktionen,
die durch jedes derselben geliefert werden. Sie enthält keine
Adressen.
-
Das Betriebssystem 18 lädt die Herstellungsmodule 22,
die bei Schritt 26 identifiziert wurden, in den Betriebsspeicher 16 (Schritt 30).
Das Betriebssystem 18 identifiziert die Speicheradressen
der Dokumentherstellungsfunktionen, die durch jedes der geladenen
Module 22 bereitgestellt wurden, und aktualisiert die IAT,
was die IAT funktionsfähig
macht (Schritt 32). Das Betriebssystem 18 führt nun
die Anwendung 20 aus. Wenn die Anwendung 20 einen
Ruf zu einer Dokumentherstellungsfunktion ausführt, die durch ein geladenes
Herstellungsmodul 22 geliefert wird, kann die Adresse dieser
Funktion in der IAT identifiziert werden.
-
3 und 4 stellen die Inhalte des
Betriebsspeichers 16 nachfolgend zu Schritt 26 dar,
bei dem das Betriebssystem 18 die Anwendung 20 geladen hat.
Der Betriebsspeicher 16 enthält die Anwendung 20 mit
der IAT 34. Die IAT 34 umfaßt eine Reihe von Einträgen – separate
Einträge,
die sich auf jedes Modul 22 beziehen, das die Anwendung 20 benötigt, um zu
arbeiten, und auf jede Dokumentherstellungsfunktion, die durch die
Anwendung 20 aufgerufen wird, die durch diese Module 22 bereitgestellt
wird. Jeder Eintrag 36 umfaßt ein Modulfeld 38,
ein Funktionsfeld 40 und ein Adreßfeld 42.
-
Für
jeden Eintrag 36, der auf ein Modul 22 Bezug nimmt,
enthält
das Modulfeld 38 einen Namen, der dieses Modul identifiziert.
Für jeden
Eintrag 36, der eine Dokumentherstellungsfunktion identifiziert,
enthält
das Funktionsfeld 40 einen Namen, der diese Dokumentherstellungsfunktion
identifiziert. Bei dem Beispiel aus 3 benötigte die
Anwendung 20 die Module Eins und Zwei zum Arbeiten.
-
Die Adreßfelder 42 sind an
diesem Punkt leer, da die Module 22, die durch die Anwendung 20 zum
Arbeiten benötigt
werden, nicht geladen wurden. Innerhalb von Modul Eins ruft die
Anwendung 20 eine Funktion auf, die etikettiert ist mit „service_select" (Dienstauswahl).
Innerhalb von Modul Zwei ruft die Anwendung 20 Funktionen
auf, die etikettiert sind mit „copy_number" (Kopieanzahl) und „page_layout" (Seitenlayout).
Module Eins und Zwei können
andere Funktionen bereitstellen, aber nur jene, die in der IAT 34 aufgelistet
sind, werden durch die Anwendung 20 benötigt.
-
5 stellt
die Inhalte des Betriebsspeichers 16 nachfolgend zu Schritt 30 dar,
bei dem das Betriebssystem 18 die Module 22 in
den Betriebsspeicher 16 lädt, die durch die Anwendung 20 benötigt werden.
Die benötigten
Module sind gekennzeichnet als Modul Eins 22A und Modul
Zwei 22B, die in 6 bzw. 7 detaillierter
dargestellt sind. Modul Eins 22A enthält Programmierungsbereitstellungsfunktionen, etikettiert
mit service_select 44, print_to_file 46 (in Datei
drucken) und serive_search 48 (Dienstsuche). Das Betriebssystem 18 hat
die Programmierung für jede
dieser Funktionen in eine einer Reihe von Speicheradressen 50 – 54 geladen.
Das Modul Zwei 22B enthält
Programmierungsbereitstellungsfunktionen, die etikettiert sind mit
copy_number 56, page_layout 48 und duplex 60.
Das Betriebssystem 18 hat die Programmierung für jede dieser
Funktionen in eine einer Reihe von Speicheradressen 62 – 66 geladen.
-
8 stellt
die Inhalte der IAT 34 nach Schritt 30 dar, bei
dem das Betriebssystem 18 die IAT 34 aktualisiert.
Die IAT 34 enthält
nun Adressen für die
Funktionen service_select, copy_number und page_layout. Immer wenn
die Anwendung 20 eine dieser Dokumentherstellungsfunktionen
aufruft, kann die Anwendung 20 oder das Betriebssystem 18 auf die
IAT 34 zugreifen, um die Adresse für diese Funktion zu identifizieren.
-
Umgebung:
-
9 ist
eine schematische Darstellung einer Rechenumgebung 68,
in der verschiedene Ausführungsbeispiele
der vorliegenden Erfindung eingelagert sein können. Die Umgebung 68 umfaßt eine Benutzervorrichtung 70,
einen Server 72 und eine Herstellungsvorrichtung 74.
Die Benutzervorrichtung 70 und die Herstellungsvorrichtung 74 sind
mit einem Server 72 über
eine Verknüpfung 76 verbunden.
Die Verknüpfung 76 stellt
allgemein eine Kabel-, drahtlose oder entfernte Verbindung über eine
Telekommunikationsverknüpfung,
eine Infrarotverknüpfung,
eine Hochfrequenzverknüpfung
oder einen anderen Verbinder oder ein System dar, das eine elektronische Kommunikation
bereitstellt. Die Verknüpfung 76 kann ein
Intranet, das Internet oder eine Kombination von beiden darstellen.
Die Vorrichtungen 70 – 74 können mit
der Verknüpfung 76 an
einem beliebigen Punkt verbunden sein, und der geeignete Kommunikationsweg
kann logisch zwischen den Vorrichtungen eingerichtet sein.
-
Die Herstellungsvorrichtung 74 stellt
allgemein eine Kombination von Hardware und Programmierung dar,
die in der Lage ist, ein Dokument herzustellen. Beispiele einer
Dokumentherstellung umfassen Drucken, Faxen und Verteilung über elektronische
Post. Die Benutzervorrichtung 70 stellt allgemein eine
Kombination aus Hardware und/oder Programmierung dar, die in der
Lage ist, ein elektronisches Dokument zu dem Server 72 über die
Verknüpfung 76 zu übermitteln.
Bei dem Beispiel aus 9 ist
die Benutzervorrichtung 70 ein PDA (Personal Digital Assistant
= persönlicher
digita ler Assistent). Die Benutzervorrichtung 70 kann jedoch
ein beliebiger Typ einer Rechenvorrichtung sein. Der Server 72 stellt
allgemein eine Kombination aus Hardware und Programmierung dar,
die in der Lage ist, die Herstellungsvorrichtung 74 anzuweisen,
ein Dokument herzustellen, das von der Benutzervorrichtung 70 empfangen
wurde. Während 10 die Benutzervorrichtung 70 und
den Server 72 als zwei unterschiedliche Vorrichtungen darstellt,
können
die Funktionen, die durch jedes derselben (nachfolgend beschrieben) geliefert
werden, in eine einzelne Vorrichtung oder drei oder mehr Vorrichtungen
eingelagert werden.
-
10 stellt
die Hardware- und Programmierungs-Elemente des Servers 72 dar.
Der Server 72 umfaßt
eine CPU 78, einen Speicherungsspeicher 80 und
einen Betriebsspeicher 82. Der Speicherungsspeicher 80 enthält eine
Herstellungsanwendung 84, Betriebssystemdateien 86,
die Herstellungsmodule 94 umfassen, einen Datenspeicher 88 und
einen entfernten Herstellungsdienst 90. Die CPU 78 stellt
allgemein einen Prozessor dar, der in der Lage ist, die Herstellungsanwendung 78 und
einen entfernten Herstellungsdienst 90 auszuführen. Der Betriebsspeicher 82 umfaßt das Betriebssystem 92, das
allgemein eine Programmierung darstellt, die in der Lage ist, eine
Herstellungsanwendung 84 und einen entfernten Herstellungsdienst 90 zu
laden. Das Betriebssystem 92 ist ferner für das Laden
von Herstellungsmodulen 94 in den Betriebsspeicher 82 verantwortlich,
wodurch ermöglicht
wird, daß eine
Herstellungsanwendung 84 durch die CPU 78 ausgeführt wird.
-
Die Herstellungsanwendung 84 stellt
allgemein eine Programmierung dar, die eine Dokumentherstellungsfunktion
auf dem Server 72 bereitstellt. Beispiele umfassen Textverarbeitungseinrichtungen, Tabellenkalkulationsanwendungen,
Webbrowser, Bildeditierungsanwendungen und andere Anwendungen, die
in der Lage sind, ein Dokument herzustellen. Betriebssystemdateien 86 stellen
allgemein eine Programmierung dar, die in der Lage ist, die Ausführung einer
Anwendung zu un terstützen. Üblicherweise wird
eine gegebene Betriebssystemdatei nicht in einen Betriebsspeicher 82 geladen,
bis eine Anwendung, die auf den Programmierungsfunktionen basiert,
die durch diese Datei angeboten werden, ebenfalls geladen wird.
Als Beispiele einer solchen Programmierung stellt jedes Herstellungsmodul 94 allgemein
eine Programmierung dar, die eine Dokumentherstellungsfunktion oder- funktionen liefert,
die durch die Herstellungsanwendung 84 verwendet werden.
Eines oder mehrere Herstellungsmodule 94 sind verantwortlich
für das
Bereitstellen einer Schnittstelle, die es einem Benutzer ermöglicht,
die Auswahlmöglichkeiten
zu liefern, die zum Herstellen eines Dokuments erforderlich sind.
Solche Auswahlmöglichkeiten
umfassen, sind jedoch nicht beschränkt auf das Identifizieren
einer Herstellungsvorrichtung, wie z. B. eines Druckers, die Papier-Größe und -Ausrichtung
sowie Farb- und Auflösungs-Einstellungen.
-
Der Datenspeicher 88 stellt
allgemein einen logischen Speicherbereich zum Speichern von elektronischen
Dateien dar, die durch die Herstellungsanwendung 84 verwendet
werden. Eine entfernte Herstellungsanwendung 90 stellt
allgemein eine Programmierung dar, die in der Lage ist, auf eine
nachfolgend beschriebene Weise die Herstellungsanwendung 84 zu ändern, nachdem
die Herstellungsanwendung 84 in den Betriebsspeicher 82 geladen
wurde, um ein Dokument herzustellen, das von einer Benutzervorrichtung 70 empfangen
wurde (9). Wenn die
CPU 78 eine Herstellungsanwendung 84 ausführt, werden
Aufrufe an Funktionen durchgeführt,
die durch eines oder mehrere Herstellungsmodule 94 geliefert
werden. Die Änderungen
jedoch, die durch eine entfernte Herstellungsanwendung 90 verursacht
werden, verursachen, daß jene
Aufrufe zu Stellvertreterherstellungsfunktionen umgeleitet werden,
die durch ein Stellvertreterherstellungsmodul bereitgestellt werden.
Eine gegebene Stellvertreterherstellungsfunktion kann z. B. eine
programmatische Schnittstelle bereitstellen, wenn die Dokumentherstellungs funktion,
die sie ersetzt, eine Benutzerschnittstelle bereitgestellt hätte.
-
11 ist
ein Blockdiagramm, das die logischen Programmierungselemente des
entfernten Herstellungsdienstes 90 darstellt. Der entfernte
Herstellungsdienst 90 umfaßt eine Einhakanwendung 96,
ein Einhakmodul 98 und ein Stellvertreterherstellungsmodul 100.
Die Einhakanwendung 96 stellt eine Programmierung dar,
die in der Lage ist, die Programmierungsanwendung 84 derart
zu ändern,
daß Aufrufe
von einer Herstellungsanwendung 84 zu einer Funktion oder
mehreren Funktionen, die durch eines oder mehrere Herstellungsmodule 94 bereitgestellt
werden, zu Dokumentherstellungsfunktionen umgeleitet werden, die
durch ein Stellvertreterherstellungsmodul 100 bereitgestellt
werden. Das Einhakmodul 98 stellt allgemein jegliche Programmierungsbereitstellungsfunktionen
dar, die durch die Einhakanwendung 96 benötigt werden.
Während
das Einhakmodul 98 als ein einzelnes Modul dargestellt ist,
können
die Funktionen, die es bereitstellt, statt dessen durch zwei oder
mehr Module bereitgestellt werden. Das Stellvertreterherstellungsmodul 100 stellt
allgemein eine Programmierung dar, die in der Lage ist, Funktionen
zu ersetzen, die durch eines oder mehrere Herstellungsmodule 94 bereitgestellt werden.
-
Das Einhakmodul 98 umfaßt eine
Anwendungsladevorrichtung 102, eine Modulladevorrichtung 104,
einen Ereignisdetektor 106, eine Ausführungssteuerung 108,
einen IAT-Bearbeiter 110 und einen Dateidatenverwalter 112.
Die Anwendungsladevorrichtung 102 stellt allgemein eine
Programmierung dar, die in der Lage ist, eine Herstellungsanwendung 84 in
ihren eigenen Speicherraum in dem Betriebsspeicher 82 zu
laden und dann die Herstellungsanwendung 84 im Fehlersuchmodus
zu initiieren.
-
Ein Speicherraum ist ein Abschnitt
eines Betriebsspeichers 82, der für eine bestimmte Anwendung
und Module reserviert ist, die dieselbe zum Arbeiten benötigen könnte. Jede
An wendung, die in den Betriebsspeicher 82 geladen wird,
wird in ihren eigenen eindeutigen Speicherraum geladen. Das Reservieren
eines eindeutigen Speicherraums für jede Anwendung hilft zu verhindern,
daß der
Betrieb einer Anwendung den Betrieb einer anderen stört. In dem Fehlersuchmodus
arbeitet die Herstellungsanwendung 84 normalerweise, außer die
Einhakanwendung 96 hält
die Steuerung über
bestimmte Aspekte der Herstellungsanwendung 84. Zum Beispiel
kann die Einhakanwendung 96 den Betrieb unterbrechen und
die Ausführung
der Herstellungsanwendung 84 nach der Erfassung von bestimmten
Ereignissen wieder aufnehmen. Die Einhakanwendung 96 hat
ferner die Fähigkeit,
eine Programmierung in den Speicherraum der Herstellungsanwendung 84 zu
laden.
-
Die Modulladevorrichtung 104 stellt
allgemein eine Programmierung dar, die in der Lage ist, ein Stellvertreterherstellungsmodul 100 in
den Speicherraum der Herstellungsanwendung 84 zu laden. Der
Ereignisdetektor 106 stellt eine Programmierung dar, die
in der Lage ist, eines oder mehrere Ereignisse bei der Ausführung der
Herstellungsanwendung 84 zu erfassen. Ein Beispiel eines
solchen Ereignisses umfaßt
das Auftreten, wann die Herstellungsanwendung 84 in dem
Betriebsspeicher 82 geladen wurde und ihre IAT mit den
Adressen für
Funktionen besetzt wurde, die durch Herstellungsmodule 94 bereitgestellt
werden. Die Ausführungssteuerung 108 stellt
allgemein eine Programmierung dar, die betreibbar ist, um die Ausführung der
Herstellungsanwendung 84 zu unterbrechen und wieder aufzunehmen.
Der IAT-Bearbeiter 110 stellt eine Programmierung dar,
die in der Lage ist, in einer Importadreßtabelle für die Herstellungsanwendung 84 Dokumentherstellungsfunktionen
zu identifizieren, die durch Herstellungsmodule 94 bereitgestellt
werden. Für eine
oder mehrere der identifizierten Funktionen ist der IAT-Bearbeiter 110 ferner
für das
Ersetzen einer Adresse, die zum Zugreifen auf die Dokumentherstellungsfunktion
verwendet wird, durch eine Adresse, die zum Zugreifen auf eine Stellvertreterherstellungsfunktion
verwendet wird, verant wortlich, die durch ein Stellvertreterherstellungsmodul 100 bereitgestellt
wird.
-
Ein Dateidatenverwalter 112 stellt
allgemein eine Programmierung dar, die in der Lage ist, ein Stellvertreterherstellungsmodul 100 mit
Dateidaten für
ein Dokument bereitzustellen. Dateidaten umfassen solche Informationen
wie den Dokumentdateinahmen, der seinen Pfad umfassen kann oder
nicht. Man nehme z. B. den Dateinahmen c:\mydocuments-\paper.doc; der Weg
des Dateinamens ist c:\mydocuments.
-
Betrieb:
-
Die Schritte, die durch die Programmierung unternommen
werden, die auf der Benutzervorrichtung 70 arbeitet, um
die Produktion eines Dokuments zu initiieren, werden zuerst Bezug
nehmend auf 12 beschrieben.
Anfänglich
weist ein Benutzer eine Programmierung an, die auf der Benutzervorrichtung 70 arbeitet,
ein lokales Dokument zu erwerben, das zusammen mit dessen lokalen
Dateidaten erzeugt werden soll (Schritt 114). Die lokalen
Dateidaten des Dokuments stellen den Dateinamen und den Weg des
Dokuments auf einer Benutzervorrichtung 70 dar. Herstellungsoptionen
für das
Dokument werden ausgewählt
(Schritt 116). Das lokale Dokument, seine Dateidaten und
die ausgewählten
Herstellungsoptionen werden zur Herstellung zu dem Server 72 gesendet
(Schritt 118).
-
Die Schritte, die unternommen werden,
um das Dokument herzustellen, das bei Schritt 114 erworben
wurde, werden nun Bezug nehmend auf 13 beschrieben.
Das Betriebssystem 92 lädt
die Einhakanwendung 96 zusammen mit dem Einhakmodul 98)
in dessen eigenen Speicherraum in dem Betriebsspeicher 82 (Schritt 122).
Nachdem dieselbe durch die CPU 78 ausgeführt wurde,
empfängt
die Einhakanwendung 96 das Dokument zusammen mit dem lokalen
Dateinamen und den Herstellungsoptionen, die bei Schritt 118 aus 12 von der Benutzervor richtung 70 empfangen
wurden. Die Einhakanwendung 96 erzeugt und verwendet einen
temporären
Dateinamen, um das Dokument auf dem Server 72 in dem Datenspeicher 88 zu
speichern (Schritt 124).
-
Die Einhakanwendung 96 initiiert
eine Herstellungsanwendung 84 im Fehlersuchmodus (Schritt 126).
Das Betriebssystem 92 reserviert dann einen Speicherraum
in dem Betriebsspeicher 82 für die Herstellungsanwendung 84 und
lädt die
Herstellungsanwendung 84 in diesen Speicherraum (Schritt 128).
Das Betriebssystem 92 lädt
die Herstellungsmodule 94, die Dokumentherstellungsfunktionen
bereitstellen, die durch die Produktionsanwendung aufgerufen werden.
Das Betriebssystem 92 aktualisiert die IAT für die Herstellungsanwendung
84, um die Adressen für
jene Dokumentherstellungsfunktionen zu enthalten, die durch die
Herstellungsanwendung 84 verwendet werden. Die Einhakanwendung 96 erfaßt, wann
die Herstellungsanwendung 84 geladen wurde und deren IAT
aktualisiert wurde (Schritt 130) und unterbricht wiederum
die Ausführung
der Herstellungsanwendung 84 (Schritt 132).
-
Wenn die Herstellungsanwendung 84 unterbrochen
ist, wird das Stellvertreterherstellungsmodul 100 in den
Speicherraum für
die Herstellungsanwendung 84 geladen (Schritt 134).
Dazu reserviert die Einhakanwendung 96 ein Speicherstück innerhalb des
Speicherraums für
die Herstellungsanwendung 84. Die Einhakanwendung 96 lädt einen „Urladecode" in das reservierte
Speicherstück.
Der Urladecode stellt allgemein eine Programmierung dar, die in der
Lage ist, ein Stellvertreterherstellungsmodul 100 in den
Speicherraum der Herstellungsanwendung 84 zu laden und
einen Aufruf an eine Funktion oder mehrere Funktionen durchzuführen, die
durch die Produktionsanwendung 84 verwendet werden. Die Einhakanwendung 96 modifiziert
die IAT für
die Herstellungsanwendung 84, so daß eine Adresse für eine Funktion,
die früh
bei der Ausführung
der Herstellungsanwendung 84 aufgerufen wurde, durch eine
Adresse ersetzt wird, die auf den Urladecode zeigt. Wenn die Herstellungsanwendung 84 gestartet wird,
führt sie
einen Aufruf an die Funktion unter Verwendung der Adresse in der
IAT durch. Da die Adresse geändert
wurde, wird der Ruf zu dem Urladecode weitergeleitet. Der Urladecode
lädt ein
Stellvertreterherstellungsmodul 100 in den Speicherraum
der Herstellungsanwendung 84. Um das erwartete Verhalten der
Herstellungsanwendung 84 zu bewahren, führt der Urladecode dann einen
Aufruf an die Funktion durch, die die Herstellungsanwendung 84 aufgerufen hätte, wenn
die IAT nicht modifiziert worden wäre, um die Adresse für den Urladecode
zu umfassen.
-
Die Einhakanwendung 96 überarbeitet
die IAT für
die Herstellungsanwendung 84. Dabei identifiziert die Einhakanwendung 96 Adressen,
die auf eine oder mehrere Dokumentherstellungsfunktionen zeigen,
die durch eines oder mehrere geladene Herstellungsmodule 94 bereitgestellt
werden. Die Einhakanwendung 96 ersetzt dann die identifizierten Adressen
durch Adressen, die auf eine oder mehrere Stellvertreterdokumentherstellungsfunktionen
zeigen, die durch das Stellvertreterherstellungsmodul 100 bereitgestellt
werden (Schritt 138). Die Einhakanwendung 96 stellt
ein Stellvertreterherstellungsmodul 100 bereit, wobei die
Herstellungsoptionen und lokale Dateidaten bei Schritt 124 empfangen werden
(Schritt 140). Die Einhakanwendung 96 führt dann
die Ausführung
der Herstellungsanwendung 84 mit Anweisungen fort, um das
Dokument herzustellen, das bei Schritt 124 gespeichert
wurde (Schritt 142).
-
Die Herstellungsanwendung 84 verwendet unbewußt das Stellvertreterherstellungsmodul 100, um
das Dokument herzustellen (Schritt 144). Das Stellvertreterherstellungsmodul 100 lädt das Dokument
unter Verwendung seiner temporären
Dateidaten und weist die Herstellungsvorrichtung 74 an,
das Dokument gemäß den Herstellungsoptionen
herzustellen, die bei Schritt 124 empfangen wurden. Dabei verwendet
das Stellvertreterherstellungsmodul 100 wenn nötig die
lokalen Dateidaten, die bei Schritt 124 empfangen wurden,
und nicht die temporären
Dateidaten, die verwendet wurden, um das Doku ment auf dem Server 72 zu
speichern. Vorteilhafterweise ist keine weitere Benutzerwechselwirkung
erforderlich, und wo die Herstellungsoptionen vorgeben, daß die Dateidaten
des Dokuments verwendet werden müssen,
werden statt dessen die lokalen Dateidaten verwendet.
-
Obwohl die Flußdiagramme aus 12 und 13 spezifische
Reihenfolgen der Ausführung
zeigen, können
die Ausführungsreihenfolgen
von der abweichen, die gezeigt ist. Zum Beispiel kann die Reihenfolge
der Ausführung
von zwei oder mehr Blöcken
relativ zu der gezeigten Reihenfolge durcheinandergewürfelt werden.
Ferner können
zwei oder mehr Blöcke,
die in Aufeinanderfolge in 12 oder 13 gezeigt sind, gleichzeitig
oder teilweise gleichzeitig ausgeführt werden. Alle solchen Variationen
liegen innerhalb des Schutzbereichs der vorliegenden Erfindung.
-
Beispiel:
-
14 – 21 liefern Beispiele, die
beim Darstellen der Inhalte des Betriebsspeichers 82 helfen, wenn
die Schritte aus 13 ausgeführt werden. 14 stellt den Betriebsspeicher 82 nachfolgend
zu Schritt 122 dar. Nachfolgend zu Schritt 122 enthält der Einhakanwendungs-Speicherraum 148 die
Einhakanwendung 96, das Einhakmodul 98 und die
IAT 50 für
die Einhakanwendung 96.
-
15 stellt
den Betriebsspeicher 82 nachfolgend zu Schritt 128 dar.
Vor dem Laden der Herstellungsanwendung 84 hat das Betriebssystem 92 Speicherraum 152 reserviert.
Bei Schritt 128 hat das Betriebssystem 92 auf
die Anweisung der Einhakanwendung 96 die Produktionsanwendung 84 mit
ihrer IAT 154 in den Speicherraum 152 geladen.
Das Betriebssystem 92 hat die Herstellungsmodule 94 identifiziert
und geladen. Bei dem Beispiel aus 15 und 16 sind die Herstellungsmodule 94 als
Modul Eins 94A, Modul Zwei 94B und Modul Drei 94C aufgelistet.
Eine beliebige Anzahl von Modulen kann bei Schritt 128 geladen
worden sein. Bei diesem Beispiel verwendet die Herstellungsanwendung 84 jedoch
nur Dokumentherstellungsfunktionen, die durch die Module Eins, Zwei
und Drei 94A – 94C bereitgestellt wurden.
Bezug nehmend auf 16 liefert
Modul Eins 94A eine Programmierung für zwei Dokumentherstellungsfunktionen – Funktion 1.1,
die bei Adresse 1 zugreifbar ist, und Funktion 1.2,
die bei Adresse 2 zugreifbar ist. Das Modul Zwei 94B enthält eine Programmierung
für eine
einzelne Dokumentherstellungsfunktion-Funktion 2.1, die bei Adresse 3 zugreifbar
ist. Modul Drei 94C enthält eine Programmierung für drei Dokumentherstellungsfunktionen – Funktion 3.1,
die bei Adresse 4 zugreifbar ist, Funktion 3.2,
die bei Adresse 5 zugreifbar ist, und Funktion 3.3 bei Adresse 6.
-
17 stellt
die IAT 154 für
die Herstellungsanwendung 84 dar, bevor die IAT 154 durch
das Betriebssystem 92 aktualisiert wird. 18 zeigt die IAT 154, nachdem
dieselbe aktualisiert wurde. Die Vorher-Version der IAT 154,
die als 154A bezeichnet wird, enthält Einträge 156 für jedes
Herstellungsmodul 94, das für die Herstellungsanwendung 84 verwendet
wird, und Einträge 158 für jede Dokumentherstellungsfunktion,
die durch die Herstellungsmodule 94 bereitgestellt und
durch die Herstellungsanwendung 84 aufgerufen wird. Die
IAT 154 enthält
jedoch keine Adressen in den Einträgen 158. Die Nachher-Version
der IAT 154, die als 154B bezeichnet wird, enthält Adressen
für die
Funktionen, die durch die Herstellungsanwendung 84 aufgerufen
werden.
-
19 stellt
den Betriebsspeicher 82 nachfolgend zu Schritt 134 dar,
bei dem das Stellvertreterherstellungsmodul 100 in den
Herstellungsanwendungsspeicherraum 152 geladen wurde. 20 stellt das Stellvertreterherstellungsmodul 100 detaillierter
dar. Bei diesem Beispiel liefert das Stellvertreterherstellungsmodul 100 zwei
Stellvertreterdokumentherstellungsfunktionen – Stellvertreterfunktion 1.2 auf
die bei Adresse 7 zugegriffen wird und Stellvertreterfunktion 3.2 auf
die bei Adresse 8 zugegriffen wird.
-
21 stellt
die IAT 154 dar, nachdem diese durch die Einhakanwendung 96 bei
Schritt 138 überarbeitet
wurde. Bei der Nachher-Version der IAT 154, die als 154C bezeichnet
wird, wurde die Adresse für die
Funktion 1.2 durch die Adresse 7 ersetzt – die Adresse
zum Zugreifen auf die Stellvertreterfunktion 1.2. Die Adresse
für Funktion 3.2 wurde
durch die Adresse 8 ersetzt – die Adresse zum Zugreifen
auf die Stellvertreterfunktion 3.2.
-
Nachfolgend zu Schritt 142,
wenn die Ausführung
der Herstellungsanwendung 84 wieder aufgenommen wird und
die Herstellungsanwendung 84 Aufrufe an die Dokumentherstellungsfunktionen 1.2 und 3.2 ausführt, werden
diese Aufrufe zu Stellvertreterfunktionen 1.2 und 3.2 entsprechend
umgeleitet. Wenn die Programmierung für die Produktionsanwendung 84 jedoch
nicht geändert
wurde, ist die Umleitung transparent für die Herstellungsanwendung 84.
Es ist wichtig darauf hinzuweisen, daß während bei den Beispielen, die
in 14 – 22 dargestellt sind, nur zwei Funktionsaufrufe
umgeleitet wurden – Funktionen 1.2.
und 3.2 umgeleitet zu Stellvertreterfunktionen 1.2 und 3.2 – alle Eintrags-
und Funktionsaufrufe umgeleitet werden können.
-
Die vorliegende Erfindung kann in
einem computerlesbaren Medium zur Verwendung durch oder in Verbindung
mit einem Anweisungsausführungssystem,
wie z. B. einem Computer-/Prozessor-basierten
System oder einem anderen System verkörpert sein, das die Logik aus
dem computerlesbaren Medium holen oder erhalten und die Anweisungen,
die in denselben enthalten sind, ausführen kann. Ein „computerlesbares
Medium" kann ein
beliebiges Medium sein, das eine Programmierung zur Verwendung durch
oder in Verbindung mit dem Anweisungsausführungssystem enthalten, speichern oder
beibehalten kann. Das computerlesbare Medium kann eines von vielen
physischen Medien aufweisen, wie z. B. ein elektronisches, magnetisches,
optisches, elektromagnetisches, Infrarot- oder Halbleiter-Medium. Spezifischere
Beispiele eines ge eigneten computerlesbaren Mediums würden folgende umfassen,
sind jedoch nicht auf diese beschränkt: eine tragbare magnetische
Computerplatte, wie z. B. eine Diskette oder eine Festplatte, einen
Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren,
programmierbaren Nur-Lese-Speicher oder eine tragbare CD-Platte.