DE69327138T2 - Verfahren zur Namensgebung und zur Bindung von Objekten - Google Patents
Verfahren zur Namensgebung und zur Bindung von ObjektenInfo
- Publication number
- DE69327138T2 DE69327138T2 DE69327138T DE69327138T DE69327138T2 DE 69327138 T2 DE69327138 T2 DE 69327138T2 DE 69327138 T DE69327138 T DE 69327138T DE 69327138 T DE69327138 T DE 69327138T DE 69327138 T2 DE69327138 T2 DE 69327138T2
- Authority
- DE
- Germany
- Prior art keywords
- reference object
- data
- document
- function
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 221
- 239000002131 composite material Substances 0.000 claims abstract description 55
- 150000001875 compounds Chemical class 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 13
- 239000000203 mixture Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 67
- 238000010586 diagram Methods 0.000 description 34
- 238000012545 processing Methods 0.000 description 12
- 230000003442 weekly effect Effects 0.000 description 4
- 101100298412 Arabidopsis thaliana PCMP-H73 gene Proteins 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 101150096366 pep7 gene Proteins 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 101150026173 ARG2 gene Proteins 0.000 description 2
- 101100005166 Hypocrea virens cpa1 gene Proteins 0.000 description 2
- 101100379633 Xenopus laevis arg2-a gene Proteins 0.000 description 2
- 101100379634 Xenopus laevis arg2-b gene Proteins 0.000 description 2
- 101150088826 arg1 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Steroid Compounds (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Image Generation (AREA)
Description
- Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren und ein System zur Namensgebung und zur Bindung von Objekten und speziell auf ein verallgemeinertes Verfahren zur Namensgebung verbundener Objekte, die in anderen Objekten enthalten sein können, dem Auffinden und Verbinden der Quellen verbundener Objekte und dem Reduzieren der Anzahl von Serveraufrufen, die zum Binden eines Objektes benötigt werden.
- Gängige Computersysteme zur Dokumentenverarbeitung erlauben einem Benutzer, zusammengesetzte Dokumente vorzubereiten. Ein zusammengesetztes Dokument ist ein Dokument, welches Information in verschiedenen Formaten enthält. Z. B. kann ein zusammengesetztes Dokument Daten in Textformat, tabellarischem Format, numerischem Format etc. enthalten. Fig. 1 ist ein Beispiel eines zusammengesetzten Dokuments. In diesem Beispiel wird das zusammengesetzte Dokument 101 als Bericht für ein bestimmtes Fertigungsprojekt generiert. Das zusammengesetzte Dokument 101 enthält Planungsdaten 102, die in tabellarischem Format dargestellt sind; Budgetdaten 103, die in Tabellenkalkulationsformat (spread sheet format) dargestellt sind; und erklärende Daten 104, die in Textformat dargestellt sind. In typischen früheren Systemen generiert ein Benutzer die Planungsdaten 102 mit einem Projektverwaltungscomputerprogramm (project management computer program) und die Budgetdaten 103 mit einem Tabellenkalkulationscomputerprogramm. Nachdem diese Daten generiert wurden, erzeugt der Benutzer das zusammengesetzte Dokument 101, gibt die erklärenden Daten 104 ein und verbindet die Planungsdaten 102 und Budgetdaten 103 mit einem Textverarbeitungscomputerprogramm.
- Fig. 2 zeigt, wie die Planungsdaten, Budgetdaten und erklärenden Daten in ein zusammengesetztes Dokument aufgenommen werden können. Der Benutzer generiert Planungsdaten mit dem Projektverwaltungsprogramm 201 und speichert dann die Daten in der Zwischenablage (clipboard) 203. Der Benutzer generiert Budgetdaten mit dem Tabellenkalkulationsprogramm 204 und speichert dann die Daten in der Zwischenablage 203. Die Zwischenablage 203 ist ein Speicherbereich (Diskette oder Speicher), auf den typischerweise irgendein Programm zugreifen kann. Das Projektverwaltungsprogramm 201 und das Tabellenkalkulationsprogramm 204 speichern typischerweise die Daten in der Zwischenablage in einem Präsentationsformat. Ein Präsentationsformat ist ein Format, in welchem die Daten in einfacher Weise auf einer Ausgabevorrichtung dargestellt werden kann. Z. B. das Präsentationsformat kann ein Pixelmuster (bit map) sein, welches mit einem Standard Pixelmusterblockübertragungsvorgang (BitBlt) dargestellt werden kann. Das Speichern von Daten in einer Zwischenablage wird als "Kopieren" in die Zwischenablage bezeichnet.
- Nachdem Daten in die Zwischenablage 203 kopiert wurden, startet der Benutzer das Textverarbeitungsprogramm 206, um das zusammengesetzte Dokument 101 zu erzeugen. Der Benutzer gibt die erklärenden Daten 104 ein und spezifiziert die Stellen in dem zusammengesetzten Dokument 101, an die die Planungsdaten und Budgetdaten, die in der Zwischenablage 203 sind, kopiert werden sollen. Das Kopieren der Daten in der Zwischenablage in ein Dokument wird als "Einfügen" von der Zwischenablage bezeichnet. Das Textverarbeitungsprogramm 206 kopiert dann die Planungsdaten 102 und die Budgetdaten von der Zwischenablage 203 in das zusammengesetzte Dokument 101 an die spezifizierte Stelle. Daten, die von der Zwischenablage in das zusammengesetzte Dokument kopiert werden, werden als "eingebettete" Daten bezeichnet. Das Textverarbeitungsprogramm 206 behandelt die eingebetteten Daten als einfache Pixelmuster, die es mit einem BitBlt-Vorgang darstellt, wenn das zusammengesetzte Dokument 101 auf einer Ausgabevorrichtung wiedergegeben werden soll. In einigen früheren Systemen konnte die Zwischenablage nur in der Lage sein, Daten für einen Kopierbefehl auf einmal zu speichern. In solchen Systemen können die Planungsdaten in die Zwischenablage kopiert werden und dann in das zusammengesetzte Dokument eingefügt werden. Dann können die Budgetdaten in die Zwischenablage kopiert werden und dann in das zusammengesetzte Dokument eingefügt werden.
- Da Textverarbeitungsprogramme typischerweise nur Textdaten verarbeiten, können Benutzer von Textverarbeitungsprogrammen eingebettete Daten verschieben oder löschen, können eingebettete Daten aber nicht modifizieren, außer wenn die Daten in Textformat sind. Deshalb, wenn ein Benutzer z. B. die Budgetdaten 103, die in dem zusammengesetzten Dokument 101 sind, modifizieren will, muß der Benutzer das Tabellenkalkulationsprogramm 204 starten, die Budgetdaten 103 von einer Datei laden, die Modifizierungen ausführen, die Modifizierungen in die Zwischenablage 203 kopieren, das Textverarbeitungsprogramm 206 starten, das zusammengesetzte Dokument 101 laden und die modifizierten Daten aus der Zwischenablage in das zusammengesetzte Dokument 101 einfügen.
- Einige frühere Systeme speichern Verweise (links) auf die Daten, die in das zusammengesetzte Dokument eingebunden werden sollen, eher als das eigentliche Einbetten der Daten. Wenn ein Textverarbeitungsprogramm die Daten von der Zwischenablage in ein zusammengesetztes Dokument einfügt, wird ein Verweis in dem zusammengesetzten Dokument gespeichert. Der Verweis zeigt auf die Daten (typischerweise in einer Datei gespeichert), die eingefügt werden sollen. Diese früheren Systeme stellen typischerweise Verweise auf Daten in einem Format zur Verfügung, welches das Textverarbeitungsprogramm erkennt oder im Präsentationsfomrat behandelt. Z. B. wenn das Textverarbeitungsprogramm 206 von einem Benutzer angewiesen wird, die Planungsdaten und Budgetdaten in das zusammengesetzte Dokument mit Verweisen einzufügen, eher als durch Einbetten, werden die Namen der Dateien, in denen die Planungsdaten und Budgetdaten im Präsentationsformat gespeichert sind, in das Dokument eingefügt. Mehrere zusammengesetzte Dokumente können Verweise auf die gleichen Daten enthalten, um zu erlauben, daß eine Kopie der Daten von mehreren zusammengesetzten Dokumenten geteilt wird.
- Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren nach den angehängten Ansprüchen zum Generieren von Verweisen auf Daten, die in ein zusammengesetztes Dokument eingebunden sind, anzugeben.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, Verweise an die darunterliegenden Daten zu binden.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, diese Verweise auf eine Art zu bearbeiten, die unabhängig von den darunter liegenden Daten ist.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, Daten zu verbinden, die auf einer beliebigen Ebene innerhalb des zusammengesetzten Dokuments verschachtelt sind.
- Diese und weitere Aufgaben, die durch die ausführlichere Beschreibung der Erfindung offensichtlicher werden, werden durch ein Verfahren zur Namensgebung und zum Binden von Datenobjekten gelöst. In einer bevorzugten Ausführungsform wird ein Verweis auf ein anderes eingebundenes Objekt als ein Verweisobjekt (Moniker) gespeichert. Ein Verweisobjekt ist ein Objekt, welches die Information verkapselt, die zum Zugriff auf die eingebetteten Daten benötigt wird, und Verfahren zur Verfügung stellt, welche an die eingebetteten Daten binden.
- Fig. 1 ist ein Beispiel eines zusammengesetzten Dokuments.
- Fig. 2 zeigt wie die Planungsdaten, Budgetdaten und erklärenden Daten in das zusammengesetzte Dokument eingebettet werden können.
- Fig. 3 zeigt ein Beispiel der Beziehung zwischen einem eingebundenen Objekt und seiner Quelle.
- Fig. 4 ist ein Blockdiagramm einer beispielhaften Instanz eines Objektes.
- Fig. 5 zeigt ein Blockdiagramm einer öffentlichen Ansicht eines Objektes.
- Fig. 6 zeigt ein Blockdiagramm eines typischen Beispiels der IMoniker-Schnittstelle.
- Fig. 7 zeigt ein Blockdiagramm eines Verweisobjektes, welches in dem zusammengesetzten Dokument 303 der Fig. 3 mit der Zusammenfassung der Direktion gespeichert ist.
- Fig. 8 zeigt ein Blockdiagramm einer typischen Objektdatenstruktur eines zusammengesetzten Verweisobjektes.
- Fig. 9 ist ein Programmablaufplan einer Realisierung einer Methode für ein generisch zusammengesetztes Verweisobjekt, ComposeWith.
- Fig. 10 ist ein Programmablaufplan für die Funktion MkCreateGenericComposite.
- Fig. 11 ist ein Programmablaufdiagramm der FindLastEltMethode einer typischen Realisierung. Dieses Verfahren erzeugt zwei Verweisobjekte.
- Fig. 12 ist ein Programmablaufplan für eine FindFirstElt Methode einer typischen Realisierung.
- Fig. 13 ist ein Programmablaufdiagramm einer BindToObject Methode einer typischen Realisierung.
- Fig. 14 ist ein Programmablaufdiagramm einer FindToObject Methode einer typischen Implementierung eines Verweisobjektes auf eine Datei.
- Fig. 15 ist ein Programmablaufdiagramm einer BindToObject Methode einer typischen Realisierung eines Verweisobjektes auf einen Posten (Item).
- Fig. 16 ist ein Programmablaufdiagramm einer BindToStorage Methode einer typischen Realisierung eines WItemMoniker.
- Fig. 17 zeigt ein übergeordnetes Ablaufdiagramm einer reduzierten Methode (reduced method) für die Schnittstelle eines generischen zusammengesetzten Verweisobjektes.
- Fig. 18 zeigt ein übergeordnetes Ablaufdiagramm der reduzierten Methode für eine typische Implementierung eines Verweisobjektes auf eine Datei.
- Fig. 19 zeigt ein übergeordnetes Ablaufdiagramm eines reduzierten Verfahrens für eine typische Realisierung eines Verweisobjektes auf einen Posten einer Textverarbeitung WItemMoniker.
- Fig. 20 zeigt ein übergeordnetes Ablaufdiagramm für die Funktion im MkParse-UserName.
- Fig. 21 zeigt ein übergeordnetes Ablaufdiagramm für die Methode ParseUserName für eine typische Realisierung eines Verweisobjektes auf eine Datei.
- Fig. 22 ist ein Diagramm, welches ein verbundenes Objekt erläutert.
- Die vorliegende Erfindung stellt ein verallgemeinertes Verfahren zur Namensgebung und zur Bindung von verbundenen Daten zur Verfügung. In einer bevorzugten Ausführungsform speichert ein zusammengesetztes Dokument, welches gebundene Daten umfaßt, eine beständige Datenkennung (Handle), welche "Verweisobjekt" genannt wird, welches einen Verweis auf die gebundene Quelle ist. Ein Verweisobjekt ist ein Datenobjekt, welches Information enthält, um die gebundenen Daten zu identifizieren und um Verfahren zur Verfügung zu stellen, mit denen ein Anwendungsprogramm an die gebundenen Daten anbinden kann.
- Das Bindeverfahren gibt eine Instanz einer Schnittstelle zurück, durch die auf die gebundenen Daten zugegriffen werden kann. In einigen Fällen kann das Verweisobjekt die Daten binden, die selbst in einem anderen zusammengesetzten Dokument eingebettet sind. Z. B. kann ein Verweisobjekt an einen Bereich von Zellen innerhalb einer Tabelle eines Tabellenkalkulationsprogramms binden, wobei die Tabelle in einem Textdokument enthalten ist. Ein Verweisobjekt kann an Daten in irgendeiner Ebene innerhalb eines zusammengesetzten Dokuments binden. Während des Bindeprozesses können mehrere Anwendungen aufgerufen werden, um die gebundenen Daten aufzufinden. Z. B., um an den Bereich der Zellen innerhalb einer Tabellenkalkulation zu binden, die in einem Textdokument ist, kann das Textverarbeitungsprogramm aufgerufen werden, um eingebettete Tabellenkalkulationsdaten aufzufinden und das Tabellenkalkulationsprogramm kann aufgerufen werden, um den Bereich der Zellen zu binden.
- Die vorliegende Erfindung definiert eine abstrakte Klasse (eine Schnittstelle) durch die auf ein Verweisobjekt zugegriffen wird. Typischerweise kann jedes Anwendungsprogramm, welches Daten zur Verfügung stellt, in ein zusammengesetztes Dokument eingebunden werden, das eine Implementierung der Verweisobjektschnittstelle unterstützt.
- In einer bevorzugten Ausführung der vorliegenden Erfindung steuert ein Anwendungsprogramm, welches ein zusammengesetztes Dokument erzeugt, die Manipulierung der gebundenen oder eingebetteten Daten, die von anderen Anwendungen generiert wurden. In einer objektorientierten Ausdrucksweise werden diese Daten als ein Objekt bezeichnet. (Die Referenz BUDD, T., "An Introduction to Object-Oriented Programming," Addison-Wesley Publishing Co. Inc., 1991 bietet eine Einführung in objektorientierte Konzepte und Terminologie.) Ein Objekt, das entweder in ein zusammengesetztes Dokument gebunden oder eingebettet ist, ist "enthalten" (contained) in dem Dokument. Ein zusammengesetztes Dokument ist auch als ein "Behälter-" (container) Objekt bezeichnet und die Objekte, die in einem zusammengesetzten Dokument enthalten sind, werden als "enthaltene" (containee) Objekte bezeichnet. Mit Bezug auf die Fig. 1 und 2 sind die Planungsdaten 102 und Budgetdaten 103 enthaltene Objekte und das zusammengesetzte Dokument 101 ist ein Behälterobjekt. Der Benutzer kann dem Textverarbeitungsprogramm anzeigen, daß er ein enthaltenes Objekt bearbeiten will, wie z. B. die Budgetdaten 103. Wenn der Benutzer anzeigt, daß die Budgetdaten 103 bearbeitet werden sollen, entscheidet das Textverarbeitungsprogramm, welche Anwendung benutzt werden soll, um die Budgetdaten zu bearbeiten (z. B. das Tabellenkalkulationsprogramm) und startet die Anwendung. Der Benutzer kann dann die Budgetdaten mit der gestarteten Anwendung manipulieren und die Änderungen werden in dem zusammengesetzten Dokument widergespiegelt. Der gleiche Vorgang wird benutzt, egal ob die Budgetdaten als eingebettetes oder gebundenes Objekt gespeichert sind.
- Fig. 3 ist ein Blockdiagramm, welches ein Beispiel eines zusammengesetzten Dokuments zeigt. Der wöchentliche Projektbericht 301 ist das gleiche zusammengesetzte Dokument wie in Fig. 1. Der Bericht der Zusammenfassung der Direktion 303 enthält eine Budgetgraphik 305, die an das wöchentliche Projekt 302 gebunden ist. Das wöchentliche Projekt 301 enthält eine eingebettete Tabellenkalkulation 302. Die eingebettete Tabellenkalkulation 302 wurde durch ein Tabellenkalkulationsprogramm 204 der Fig. 2 erzeugt. Die Daten für diese Tabellenkalkulation, das Budget für das Projekt, sind in dem Speicher des Berichts der wöchentlichen Projekte 301 abgespeichert, weil sie ein eingebettetes Objekt sind. Das Dokument mit der Zusammenfassung der Direktion 303 ist ein zusammengesetztes Dokument, welches natürlichen Text 304 und ein enthaltenes Objekt, die Budgetgraphik 305 enthält. Die Budgetgraphik 305 ist gebunden an die Daten, die in der Tabellenkalkulation 302 enthalten sind, welche in das zusammengesetzte Dokument 301 eingebettet sind.
- In einer bevorzugten Ausführungsform kooperieren Anwendungsprogramme durch Nutzen von Objektbindung und eingebetteter Einrichtungen, um zusammengesetzte Dokumente zu erzeugen und zu manipulieren. Eine Anwendung, die ein zusammen gesetztes Dokument erzeugt, wird als Klientanwendung (client application) bezeichnet und eine Anwendung, die ein enthaltenes Objekt erzeugt und manipuliert, wird als Serveranwendung (server application) bezeichnet. Eine Anwendung kann sich entweder als Klient oder als Server verhalten. Mit Bezug auf Fig. 2 sind das Projektverwaltungsprogramm 201 und das Tabellenkalkulationsprogramm 204 Serveranwendungen und das Textverarbeitungsprogramm 206 ist eine Klientenanwendung. Eine Klientenanwendung ist für die Auswahl verschiedener Objekte innerhalb eines Behälterobjekts und für das Aufrufen der passenden Serveranwendung zum Manipulieren des ausgewählten enthaltenen Objekts verantwortlich. Eine Serveranwendung ist für die Manipulation des Inhalts der enthaltenen Objekte verantwortlich.
- In einer bevorzugten Ausführungsform werden Anwendungen mit realisierungsunabhängigen Anwenderprogrammschnittstellen (API, application programming interface) versorgt, die die Funktionalität zum Einbinden und Einbetten von Objekten zur Verfügung stellt. Die API ist ein Satz von Funktionen, die aufgerufen werden durch Klienten- und Serveranwendungen. Diese Funktionen verwalten unter anderem die Installation und Initialisierung, die für Klientanwendungen notwendig ist, um Nachrichten und Daten zu senden und zu empfangen, an und von Serveranwendungen. Die API stellt Funktionen zur Verfügung, die die richtige Serveranwendung aufrufen, um auf ein bestimmtes enthaltenes Objekt zu reagieren und enthaltene Objekte zu manipulieren.
- Zusätzlich definiert die API für Objekt-Bindung und -Einbetten "Schnittstellen" (interfaces), durch die Klientanwendungen mit ihren enthaltenen Objekten kommunizieren. Eine Schnittstelle ist ein Satz von Verfahren, welche gewissen Eingabe-, Ausgabe- und Verhaltensregeln folgen. Wenn ein enthaltenes Objekt eine bestimmte Schnittstelle unterstützt, kann die Klientanwendung die Verfahren dieser Schnittstelle aufrufen, um das definierte Verhalten zu bewirken. In einer bevorzugten Ausführungsform ist der Klientenanwendung der direkte Zugriff auf die Objektdaten nicht erlaubt; sie muß das Objekt mit den unterstützten Schnittstellen manipulieren. Eine Klientenanwendung ist an ein enthaltenes Objekt durch einen Zeiger auf eine Schnittstelle gebunden. Die Klientenanwendung greift auf das Objekt zu durch Aufrufen der Verfahren der Schnittstelle. Um auf die Objektdaten zuzugreifen, können die Verfahren Nachrichten an die Serveranwendungen schicken, um den spezifizierten Zugriff anzufordern. In einer bevorzugten Ausführungsform werden Nachrichten zwischen Klienten und Servern mit Mechanismen, die Interaktion verschiedener Prozesse erlauben (interprocess communications), die durch das zugrundeliegende Betriebssystem zur Verfügung gestellt werden, gesendet.
- Ein Beispiel wird helfen, die Beziehung zwischen einem Klientenprozess und einem Serverprozess zu erläutern. Mit Bezug auf Fig. 1, wenn ein Benutzer Budgetdaten 103 des zusammengesetzten Dokuments 101 bearbeiten will, dann findet der folgende Ablauf von Ereignissen statt. Zuerst startet der Benutzer das Textverarbeitungsprogramm, welches dynamisch an die API für Objektbinden und -einbetten gebunden ist. Zweitens öffnet der Benutzer das zusammengesetzte Dokument zur Bearbeitung. Drittens wählt der Benutzer die Budgetdaten, welche in einem enthaltenen Objekt sind und zeigt an, daß das ausgewählte Objekt bearbeitet werden soll. Viertens ruft die Klientenanwendung eine API für Klientenroutinen auf, zum Ausführen eines Prozesses auf ein Objekt, welches der Routine eine Kennung (welche eindeutig das ausgewählte Objekt identifiziert) auf das Objekt und einen Merker (indicator) übergibt, daß der Prozess zu bearbeiten ist. Fünfttens, die API für Klientenroutinen bestimmt, daß das Tabellenkalkulationsprogramm die Prozesse für die Budgetdaten liefert. Sechstens startet die API für Klientencode das Tabellenkalkulationsprogramm als einen Serverprozess, wenn es noch nicht gestartet wurde. Siebtens sendet die Textverarbeitungsanwendung eine Nachricht an das Tabellenkalkulationsprogramm, daß es die Budgetdaten bearbeiten soll. Achtens empfängt die API für Servercode die Anforderung, zu editieren und ruft eine Routine in dem Tabellenkalkulationsprogramm auf, zum Bearbeiten der Daten. Wenn das Bearbeiten beendet ist, springt die Tabellenkalkulationsroutine zurück zu der API für Servercode. Die API für Servercode sendet eine Nachricht an die Textverarbeitungsanwendung, um anzuzeigen, daß das Bearbeiten beendet ist. Die API für Klientencode empfängt die Nachricht und kehrt von seinem Aufruf zurück. Nach Rückkehr von dem Aufruf weiß die Textverarbeitungsanwendung, daß das Bearbeiten beendet ist.
- Zusätzlich zu den API für Klient und Server liefern die Einrichtungen für Objektbinden und -einbetten der vorliegenden Erfindung Information an Klient- und Serveranwendungen durch eine beständige globale "Registratur" (registry). Diese Registratur ist eine Datenbank von Informationen wie (1) für jeden Objekttyp, die Serveranwen dung, die den Objekttyp implementiert, (2) die Prozesse, die jede Serveranwendung an Klientanwendungen liefert, (3) wo die ausführbaren Dateien für jede Serveranwendung auffindbar sind und (4) ob jede Serveranwendung einen angegliederten Objekttreiber (object handler) hat.
- In objektorientierter Ausdrucksweise ist eine Schnittstelle eine "abstrakte Klasse": eine Klasse mit einer Definition seiner Daten und Verfahren, aber mit keiner Implementierung für diese Verfahren. Es ist die Verantwortung der Serveranwendung für das Objekt "Klasse" den tatsächlichen Code zu liefern, für die Verfahren, die zum Manipulieren des Objekts zur Verfügung stehen.
- Fig. 4 ist ein Blockdiagramm einer beispeilhaften Instanz eines Objektes. In einer bevorzugten Ausführungsform entspricht der Plan eines Beispiels dem Modell, welches in dem US-Patent mit dem Titel "A Method for Implementing Virtual Functions and Virtual Bases in a Compiler for an Object-Oriented Programming Language" definiert ist.
- Das Beispiel enthält Objektdatenstruktur 401 und Schnittstellendatenstruktur 413 für jede unterstützte Schnittstelle. Die Objektdatenstruktur 413 enthält Zeiger 402 auf Schnittstellendatenstrukturen 413 und kann private Daten des Beispiels enthalten. Die privaten Daten dieses Stichprobenbeispiels umfassen einen Klassenbezeichner (class identifier) 403, Kennung 404 für den Speicher des Objekts und Daten 405 zum Folgen des Zustandes des Objektes. Der Klassenbezeichner benutzt, um auf die entsprechende Serveranwendung für das Objekt zuzugreifen. Es ist eine Datenstruktur "Typ" (type), die in Programmiersprachen benutzt wird. Die Schnittstelle kann den Server für das Objekt bestimmen, durch Nutzen der CLASS_ID als einen Index in die beständige globale Registratur. Wie in Fig. 4 gezeigt, enthält jede Schnittstellendatenstruktur 413 eine private Datenstruktur 406 und eine Tabelle virtueller Funktionen 408. Die private Datenstruktur 406 enthält einen Zeiger 407 auf die Tabelle virtueller Funktionen 408. Die Tabelle virtueller Funktionen 408 enthält Zeiger auf den Code, der die Verfahren der Schnittstelle implementiert.
- Definieren der Klasse Schnittstelle
- interface intf {public:
- virtual RETCODE pfnc&sub1; (arg1, arg2) = 0;
- virtual RETCODE pfnc&sub2; (arg1, arg2) = 0;
- virtual RETCODE pfnc3 () = 0;
- };
- Tabelle 1 stellt die Definition für die Schnittstelle für den ersten Eintrag printf&sub1; in die Objektdatenstruktur 401 dar. In Tabelle 1 bedeutet das Wort "Interface" eine C++ Klasse. Die Definition zeigt drei Methoden mit ihren Argumenten. Das " = 0" am Ende jeder Liste von Argumenten zeigt, daß die Methode keine Implementierung mit Code hat. In der C++ Programmiersprache werden diese Funktionen als "reine virtuelle Funktionen" (pure virtual functions) bezeichnet. Eine Klasse, die nur aus reinen virtuellen Funktionen besteht, wird als abstrakte Klasse bezeichnet.
- Fig. 5 ist ein Blockdiagramm, das einen öffentlichen Blick (public view) des Objekts zeigt. Ein öffentlicher Blick eines Objekts sind die verschiedenen Schnittstellen, die das Objekt unterstützt 502-506. Jede Schnittstelle liefert Methoden, mit denen Klientanwendungen auf Objekte zugreifen können. Jedes Objekt unterstützt eine IUnknown Schnittstelle 502. Anwendungen benutzen die IUnknown Schnittstelle 502, um festzustellen, welche anderen Schnittstellen das Objekt unterstützt. Die Implementierung der IUnknown Schnittstelle 502 für ein bestimmtes Objekt weiß, welche anderen Schnittstellen sie unterstützt und meldet der aufrufenden Anwendung Zeiger auf diese Schnittstellen zurück. In einer bevorzugten Ausführungsform wird die Methode IUnknown::QueryInterface für diesen Zweck benutzt. Schnittstellen 503 bis 506 sind Beispiele typischer Schnittstellen, die von einem Objekt unterstützt werden können. Z. B. die ICreate Schnittstelle 503 stellt Methoden zum Erzeugen einer neuen Instanz eines Objektes zur Verfügung. Die IContainer Schnittstelle 504 stellt Methoden zum Auflisten der enthaltenen Objekte zur Verfügung, die in einem Objekt enthalten sind. Die IDataClientSite Schnittstelle 505 liefert Methoden, die von Servern zum Kommunizieren mit Behälterobjekten benutzt werden sollen. Die IDataObjekt Schnittstelle 506 stellt Methoden zum Manipulieren von Objektdaten zur Verfügung.
- Fig. 6 ist ein Bockdiagramm, welches ein typisches Beispiel der IMoniker Schnittstelle zeigt. Anhang A enthält eine detaillierte Beschreibung der Methoden der IMoniker Schnittstelle. Die Instanz Datenstrukturen umfaßt Objektdatenstruktur 601 und die Tabelle virtueller Funktionen 603. Die Objektdatenstruktur 601 enthält einen Zeiger 602 auf die Tabelle virtueller Funktionen 603 und private Instanzdaten. Die Tabelle virtueller Funktionen 603 enthält Zeiger auf den Code, der die Methode der IMoniker Schnittstelle implementiert. Tabelle 2 ist die Definition der Klasse für die IMoniker Schnittstelle. Tabelle 2
- Zusätzlich zu diesen Methoden unterstützt eine IMoniker Implementierung typischerweise die Funktionen MkParseUserName, MkCreateIBindContext, MkCreate- GenericComposite, MkCreateFileMoniker, MkCreate4ItemMoniker und MkCreateAntiMoniker, die nachstehend definiert sind.
- Fig. 22 ist ein Diagramm, welches ein gebundenes Objekt erläutert. In diesem Beispiel ist das zusammengesetzte Dokument 2201 eine Zusammenstellung verschiedener Projektberichte, wie der Bericht, der im zusammengesetzten Dokument 101 gespeichert ist. Zusammengesetztes Dokument 2201 enthält einen Verweis auf das zusammengesetzte Dokument 2202. Der Verweis zeigt an, daß das zusammengesetzte Dokument, welches in der Datei "VAC1.DOC" gespeichert ist, logisch in dem zusammengesetzten Dokument 2201 ist. In einer bevorzugten Ausführungsform ist der Verweis als ein Verweisobjekt (Moniker) gespeichert. Ein Verweisobjekt ist eine Instanz einer Klasse (ein Objekt des Typs Verweisobjekt), die Verfahren bereitstellt zum Zugreifen auf die Quelle des Verweises. Ein Objekt des Typs Verweisobjekt verkapselt Daten, die die Verweisquelle identifizieren und liefert Methoden, durch die ein Anwendungsprogramm auf die Verweisquelle zugreifen kann. Z. B. wenn der Verweis vom zusammengesetzten Dokument 2201 zum zusammengesetzten Dokument 2202 erzeugt wird, ruft das Textverarbeitungsprogramm eine Funktion auf, um das Objekt des Typs Verwaltungsobjekt, welches auf die Datei "VAC1.DOC" zeigt, zu instantiieren. Die Funktion gibt einen Zeiger auf das neue Objekt des Typs Verweisobjekt zurück. Das Textverarbeitungsprogramm speichert dann das Objekt des Typs Verweisobjekt in dem zusammengesetzten Dokument 2201. Das Textverarbeitungsprogramm greift auf die Verweisquelle mit den Methoden des Objekts des Typs Verweisobjekt zu. Z. B. die Klasse Verweisobjekt unterstützt eine "bind"-Methode. Die bind-Methode bestimmt, wo die Verweisquelle auffindbar ist und gibt einen Zeiger auf ein Objekt, welches die Quelle darstellt, zurück. In diesem Beispiel würde die bind-Methode des Objekts des Typs Verweisobjekt bestimmen, daß die Quelle in der Datei "VAC. DOC" gespeichert ist, ein Objekt, welches die Datei darstellt, instantiieren und einen Zeiger auf das instantiierte Objekt zurückgeben. Das Textverarbeitungsprogramm könnte dann die Methoden des zurückgegebenen Dateiobjekts aufrufen, um auf die Quelldaten zuzugreifen.
- Fig. 7 ist ein Blockdiagramm, welches das Verweisobjekt zeigt, das in dem zusammengesetzten Dokument mit der Zusammenfassung der Direktion 303 der Fig. 3 gespeichert ist. Das Verweisobjekt stellt ein gebundenes Grafikobjekt 305 dar. Weil der Verweis auf Daten zeigt, die in einem zusammengesetzten Dokument eingebettet sind, wird das Verweisobjekt als eine Zusammensetzung eines Verweises, der benötigt wird, um das zusammengesetzte Dokument zu identifizieren, und einem Verweis, der benötigt wird, um die Daten in dem zusammengesetzten Dokument zu identifizieren, dargestellt. Der Verweis wird als ein zusammengesetztes Verweisobjekt bezeichnet. Ein zusammengesetztes Verweisobjekt enthält Verweisobjektkom ponenten, die in einer linken oder rechten Art in einer eingebetteten Hierarchie angeordnet sind. Das zusammengesetzte Verweisobjekt 701 umfaßt drei Verweisobjektkomponenten 702, 703 und 704. Verweisobjektkomponente 702 weist auf das zusammengesetzte Dokument 301 hin. Verweisobjektkomponente 702 enthält eine CLASS_D (FileMoniker), ein durch den Benutzer lesbaren Namen "C:\VAC1.DOC" des zusammengesetzten Dokuments 301. Verweisobjektkomponente 703 weist auf das eingebettete Objekt des zusammengesetzten Dokuments 301 hin. Die Textverarbeitungsanwendung versteht Verweisobjektkomponente 703 und benutzt sie, um die eingebettete Tabellenkalkulation aufzufinden. Verweisobjektkomponente 703 enthält CLASS_ID (WItemMoniker) und einen, durch ein Benutzer lesbaren Namen, der eingebetteten Tabellenkalkulation. Die CLASS_ID "WItemMoniker" zeigt an, daß das Textverarbeitungsprogramm die Verweisobjektkomponente erkennt. Verweisobjektkomponente 704 weist auf den Bereich von Daten in dem Objekt der eingebetteten Tabellenkalkulation 302 hin. Verweisobjektkomponente 704 enthält CLASS_ID (SItemMoniker) und einen durch den Benutzer lesbaren Namen für den Bereich. Die CLASS_ID "SItemMoniker" zeigt an, daß das Tabellenkalkulationsprogramm die Verweisobjektkomponente erkennt. Die Datenstruktur des zusammengesetzten Verweisobjektes umfaßt Datenstruktur 801 und die Tabelle virtueller Funktion 802. Datenstruktur 801 enthält die CLASS_ID 803 und einen Zeiger 804 auf die verkettete Liste 805. In diesem Beispiel zeigt die CLASS_ID auf ein Verweisobjekt des Typs ID_GenCompositeMoniker.
- Fig. 8 ist ein Blockdiagramm, welches eine typische Datenstruktur eines zusammengesetzten Verweisobjektes zeigt. Die verkettete Liste 805 enthält einen Eintrag 806 für jede Verweisobjektkomponente. Jeder Eintrag enthält einen Zeiger auf die Verweiskomponente 809 bis 811.
- Fig. 9 ist ein Programmablaufplan einer Implementierung der Methode ComposeWith des generischen zusammengesetzten Verweisobjektes. Die Methode GenCompositeMoniker::ComposeWith erzeugt ein neues zusammengesetztes Verweisobjekt mit dem spezifizierten Verweisobjekt als den linken Teil und dem ernannten Verweisobjekt als den rechten Teil des neuen zusammengesetzten Verweisobjektes. Diese Methode gibt einen Zeiger auf das neue zusammengesetzte Verweisobjekt zurück. Im Schritt 901 ruft die Methode die IsGenericComposite? Methode des ernannten Verweisobjektes auf, um zu bestimmen, ob es ein generisches zusammengesetztes Verweisobjekt ist. Wenn es keines ist, fährt die Methode am Schritt 904 fort, ansonsten fährt sie mit Schritt 902 fort. In Schritt 902 ruft die Methode die FindFirstElement Methode des ernannten Verweisobjektes auf, welche einen Zeiger auf die erste Verweisobjektkomponente und einen Zeiger auf den Rest der Verweisobjektkomponenten zurückgibt. In Schritt 904 zieht die Funktion die CLASS_ID des ernannten Verweisobjektes heraus. Wenn die Schritte 903 und 904 beendet sind, hat die Methode die CLASS_ID des Verweisobjektes erhalten, welche sie als den rechten Teil des neuen zusammengesetzten Verweisobjektes nutzen wird. Im Schritt 907 ruft die Methode die MkCreateGenericComposite Funktion auf, um ein durch ein generisches zusammengesetztes Verweisobjekt spezifiziertes Verweisobjekt in dem linken Teil und das ernannte Verweisobjekt in dem rechten Teil zu erzeugen und dann gibt die Methode einen Zeiger auf das neue zusammengesetzte Verweisobjekt zurück.
- Fig. 10 ist ein Programmablaufdiagramm für die Funktion MkCreateGenericComposite. Diese Funktion nimmt zwei Verweisobjekte, ein linkes und ein rechtes, erzeugt ein neues zusammengesetztes Verweisobjekt, welches das linke und rechte Verweisobjekt umfaßt, und gibt einen Zeiger auf das neue Verweisobjekt zurück. Im Schritt 1001 ruft die Funktion die pmkFirst::IsGenericComposite? Methode auf, um zu bestimmen, ob das linke Verweisobjekt ein generisches zusammengesetztes Verweisobjekt ist. Wenn es eins ist, fährt die Funktion mit Schritt 1004 fort, ansonsten fährt sie mit Schritt 1002 fort. In den Schritten 1002 und 1004 weist die Funktion die notwendigen Datenstrukturen zu und weist einen neuen generischen zusammengesetzten Verweisobjektknotenpunkt (generic composite moniker node) in der verketteten Liste zu und speichert diesen Wert in der vorherigen Variable. Im Schritt 1003 fügt die Funktion das Verweisobjekt auf der linken Seite, welches in (pmkFirst) weitergegeben wurde, in das erste Element in dem neuen zusammengesetzten Verweisobjekt ein, auf das durch pcm gezeigt wird. Die Methode wird mit Schritt 1008 fortgesetzt. In Schritt 1004 bis 1007 führt die Funktion Schleifen aus, um ein neues zusammengesetztes Verweisobjekt zu erzeugen, welches die Verweisobjektkomponenten des ursprünglichen linken Verweisobjektes enthält. Die Schleife durchquert die Elemente der verketteten Liste des ursprünglichen linken Verweisobjektes und fügt eine Kopie der Verweisobjektkomponenten in das neue zusammengesetzte Verweisobjekt ein. Im Schritt 1004 initialisiert die Funktion mehrere Variablen, um nach dem letzten Element des linken Verweisobjektes zu suchen. Um dies zu tun setzt sie die vorherige Variable, um auf das erste Element der verketteten Liste zu zeigen, die aktuelle Variable auf das zweite Element der verketteten Liste und pcm auf das erste Verweisobjekt, auf das durch das erste Element der verketteten Liste gezeigt wird. In Schritt 1005 bestimmt die Funktion, ob die aktuelle Variable NULL ist. Wenn sie NULL ist, dann zeigt die vorherige Variable auf das letzte Element in dem linken zusammengesetzten Verweisobjekt, welches anzeigt, daß all die Verweisobjektkomponenten in dem neuen zusammengesetzten Verweisobjekt ungültig waren und die Funktion fährt mit dem Schritt 1008 fort, ansonsten fährt die Funktion mit dem Schritt 1006 fort. In Schritt 1006 ruft die Funktion die Methode Compose- With des Verweisobjektes auf, auf das durch die Variable pcm gezeigt wird und gibt sie an das Verweisobjekt, auf das durch die aktuelle Variable gezeigt wird, weiter. In Schritt 1007 setzt die Funktion eine Variable pcm, um auf dieses neue zusammengesetzte Verweisobjekt zu zeigen und aktualisiert die vorherige und aktuelle Variable, um auf die nächsten zwei Elemente in der verketteten Liste zu zeigen und wiederholt Schritt 1005, um zu bestimmen, ob die vorherige Variable auf das Ende der verketteten Liste zeigt. In Schritt 1008 ruft die Funktion die Methode pmkRestIsGenericComposite? auf, um zu bestimmen, ob das rechte Verweisobjekt ein generisches zusammengesetztes Verweisobjekt ist. Wenn es keines ist, fährt die Funktion mit Schritt 1010 fort, ansonsten fährt sie mit Schritt 1009 fort. In Schritt 1009 hängt die Funktion die verkettete Liste des rechten Verweisobjektes an das neue linke Verweisobjekt an. Die Funktion fährt dann mit Schritt 1012 fort. In Schritten 1010 und 1011 hängt die Funktion ein neues Element, welches auf das rechte Verweisobjekt zeigt, an das neue linke Verweisobjekt an. In Schritt 1012 setzt die Funktion den Rückgabewert ppmkComposite auf die pcm, das neue zusammengesetzte Verweisobjekt, und kehrt zurück.
- Fig. 11 ist ein Programmablaufdiagramm einer FindLastElt Methode einer typischen Ausführungsform. Diese Methode erzeugt zwei Verweisobjekte. Das erste Verweisobjekt entspricht der letzten Verweisobjektkomponente in dem spezifizierten Verweisobjekt. Das zweite Verweisobjekt entspricht dem Rest des spezifizierten Verweisobjektes. In Schritt 1101 setzt die Methode die Variabel Aktuell (current), um auf das zweite Element in der verketteten Liste zu zeigen, die Variable Vorher (previous) auf das erste Element der verketteten Liste und die Variable Rest, so das sie auf die erste Verweisobjektkomponente zeigt. Schritte 1102 bis 1105 durchlaufen die Verkettete Liste des spezifizierten Verweisobjektes zum Erzeugen des zweiten Verweisobjektes. In Schritt 1102, wenn die Variable Aktuell auf das letzte Element zeigt, fährt die Methode mit Schritt 1106 fort, ansonsten fährt die Methode mit Schritt 1103 fort. In Schritt 1106 setzt die Methode den Parameter LastElt, um auf das Verweisobjekt, auf das durch die Variable Aktuell gezeigt wird, zu zeigen und kehrt zurück.
- Fig. 12 ist ein Programmablaufdiagramm für die FindFirstElt Methode einer typischen Ausführung. Diese Methode entspricht der FindLastElt Methode, aber gibt einen Zeiger auf die erste Verweisobjektkomponente und einen Zeiger auf ein neues zusammengesetztes Verweisobjekt, welches die restlichen Verweisobjektkomponenten umfaßt, zurück.
- Fig. 13 ist ein typisches Programmablaufdiagramm der BindToObject Methode für eine typische Ausführung. Die Methode BindToObject ruft rekursiv entweder Bind- ToObject (oder BindToStorage) auf, um ein Objekt (oder Speicherung) zu erhalten, welches benutzt werden kann, um das Objekt, welches durch das spezifizierte Verweisobjekt angezeigt wird, zu orten und zu binden. Im allgemeinen gibt die Bind- ToObject Methode das Objekt oder die Speicherung zurück, welche durch das spezifizierte Verweisobjekt angezeigt wird, durch Benutzen der Methode seiner Verweisobjektpräfixkomponente (prefix component moniker). Diese Methode ruft die BindToObject Methode der letzten Verweisobjektkomponente auf, welche wiederum die BindToObject Methode eines Präfixverweisobjektes auf einer rechten oder linken Art aufruft. Die BindToObject Methode nimmt sechs Parameter: ein pointer-to-a-bind Kontext, den Schnittstellenbezeichner (interface identifier) des dritten Parameters, den Zeiger auf eine Schnittstelle des Objektes, welches dem Präfixverweisobjekt entspricht, das Präfixverweisobjekt, die Schnittstelle an die der Aufrufer anbinden will, und einen Ausgabeparameter, der der instantiierten Schnittstelle entspricht. In Schritt 1301 ruft die Methode die FindLastElt Methode des spezifizierten Verweisobjektes auf, um seine letzte Verweisobjektkomponente zu finden. In Schritt 1302 ruft die Methode die lidBindToObject Methode der letzten Verweisobjektkomponente auf. In Schritt 1303, wenn diese Methode ID_NULL zurückgibt, dann muß die BindToObject Methode der letzten Verweisobjektkomponente aufgerufen werden, um die Schnittstelle zu bestimmen, die für das Binden benötigt wird und die Methode fährt am Schritt 1304 fort, ansonsten fährt die Methode am Schritt 1305 fort. In Schritt 1304 ruft die BindToObject Methode die BindToObject Methode der letzten Verweisobjektkomponente auf und gibt sie an den ersten Teil des zusammengesetzten Verweisobjektes als Präfixverweisobjekt weiter und kehrt zurück. In Schritt 1205, wenn die Schnittstelle, die von der lidBindToObject Methode der letzten Verweisobjektkomponente zurückgegeben wurde, gleich ID_STORAGE ist, dann fährt die Methode mit Schritt 1306 fort, ansonsten fährt sie mit Schritt 1307 fort. In Schritt 1306 ruft die Methode die BindToStorage Methode des Präfixverweisobjektes (Variable Rest) auf. Wenn sie zurückkehrt, zeigt Variable pv auf eine gebundene Instanz des Speicherungsobjektes (storage object), welches dem Präfixverweisobjekt entspricht, und fährt mit Schritt 1308 fort. In Schritt 1307 ruft die Methode statt dessen die Bind- ToObject Methode an dem Präfixverweisobjekt auf. In diesem Fall gibt sie die Schnittstelle, die durch die letzte Verweisobjektkomponente angefordert wurde, weiter und das instantiierte Objekt, welches der Schnittstelle entspricht, wird in der Variable pv zurückgegeben. In Schritt 1308 wird das instantiierte Objekt, auf das durch die Variable pv gezeigt wird, in dem hineingereichten Bindekontext registriert. Der Bindekontext ist eine verkettete Liste, momentan instantiierter Objekte entsprechend durch vorherige Aufrufe der BindToObject Methode gebunden. Der Bindekontext wird durch die BindToObject Methoden benutzt, um zu bestimmen, ob das Objekt, auf das durch das spezifizierte Verweisobjekt Bezug genommen wird, schon instantiiert ist. In Schritt 1309 ruft die Methode die BindToObjekt Methode für die letzte Verweisobjektkomponente auf, mit der Schnittstelle, die durch die letzte Verweisobjektkomponente angefordert wurde, der instantiierten Schnittstelle entsprechend des Präfixverweisobjektes und die ursprüngliche Schnittstelle, die in dem ursprünglichen BindToObject Aufruf angefordert wurde. Die Methode kehrt dann zurück.
- Fig. 14 ist ein Programmablaufdiagramm der BindToObjekt Methode für eine typische Ausführung des Dateiverweisobjektes. Diese Methode bestimmt, ob ein Objekt, entsprechend einem spezifizierten Dateiverweisobjekt, welches durch eine Tabelle von laufenden Objekten (running object table) angezeigt wird, existiert und gibt einen Zeiger auf das Objekt zurück. Die Tabelle laufender Objekte enthält Zeiger auf alle momentan instantilerten Objekte. Ansonsten ortet diese Methode den entsprechenden Server und instantiiert eine Schnittstelle zu der Datei. Die FileMoniker::BindToObject Methode nimmt die gleichen sechs Parameter, wie die BindToOb ject Methode für generische zusammengesetzte Verweisobjekte. In den Schritten 1401 bis 1404 benutzt die Methode die Tabelle laufender Objekte, die einem Objekt entspricht, um zu bestimmen, ob das spezifizierte Dateiverweisobjekt existiert. In Schritt 1401 bestimmt die Methode, ob das spezifizierte Dateiverweisobjekt in der Tabelle laufender Objekte aufgeführt ist. Wenn es aufgeführt ist, fährt die Methode mit Schritt 1402 fort, ansonsten fährt sie mit Schritt 1405 fort. In Schritt 1402 bestimmt die Methode, ob die angeforderte Schnittstelle mit der in der Tabelle laufender Objekte übereinstimmt. Wenn sie übereinstimmt, dann gibt die Methode in Schritt 1403 einen Zeiger auf die Schnittstelle zurück. Ansonsten erhält die Methode in Schritt 1404 die angeforderte Schnittstelle durch Aufrufen der QueryInterface Methode des Objektes, welches in der Tabelle laufender Objekte gefunden wurde, und kehrt zurück. In Schritt 1405, weil das spezifizierte Verweisobjekt nicht in der Tabelle laufender Objekte gefunden wurde, findet diese Methode den Server, der dem spezifizierten Verweisobjekt (Dateiname) entspricht. In Schritt 1406 ruft die Methode den Server, um eine Instanz ihrer Klasse zu erzeugen. In Schritt 1407 ruft die Methode die QueryInterface Methode dieser Instanz, um eine Schnittstelle zum Binden zu erhalten. In Schritt 1408 ruft die Methode die Load Methode der Bindungsschnittstelle und kehrt zurück.
- Fig. 15 ist ein Programmablaufdiagramm der BindToObject Methode für eine typische Implementierung eines Postenverweisobjektes (ItemMoniker). In dem vorigen Beispiel haben WItemMoniker und SItemMoniker beide ähnliche Implementierungen. Diese Methode benutzt das Schnittstellenobjekt des Präfixverweisobjektes, um seine GetObject Methode aufzurufen. Die GetObject Methode ortet und bindet die Instanz des Objektes, welche durch das Postenverweisobjekt angezeigt wird. Diese Methode nimmt die gleichen sechs Parameter, die an die BindToObject Methode des generischen zusammengesetzten Verweisobjektes gegeben werden. In Schritt 1501 bestimmt die Methode, ob ein Objekt zum Binden weitergegeben wurde. Wenn eins weitergegeben wurde, fährt die Methode mit seinem Schritt 1502 fort, ansonsten fährt sie mit Schritt 1503 fort. In Schritt 1502 ruft die Methode die GetObject Methode der Schnittstelle, die an sie gegeben wurde auf, um das Objekt, welches durch das Postenverweisobjekt angezeigt wurde, zu instantiieren, und kehrt dann zurück. In Schritt 1503, wenn das Präfixverweisobjekt nicht NULL ist, fährt die Methode mit Schritt 1504 fort, ansonsten kehrt sie zurück. In Schritt 1504 ruft die Methode die BindToObject Methode des Präfixverweisobjektes auf, um die IContainer Schnittstelle anzufordern. Im Schritt 1505 ruft die Methode die GetObject Methode der angeforderten IContainer Schnittstelle auf und kehrt zurück.
- Fig. 16 ist ein Programmablaufdiagramm der BindToStorage Methode einer typischen Implementierung von WItemMoniker. Diese Methode ruft die BindToStorage Methode seines Präfix auf und dann, sobald sie die Speicherungskennung (storage handle) für das Präfix erhalten hat, bekommt sie die Speicherung, die mit dem spezifizierten Verweisobjekt verbunden wird. In Schritt 1601 bestimmt die Methode, ob das hineingereichte Präfix NULL ist und, wenn NULL ist, kehrt die Methode zurück, ansonsten fährt die Methode mit ihrem Schritt 1602 fort. In Schritt 1602 ruft die Methode die BindToStorage Methode des Präfixverweisobjektes auf und gibt ihr die angeforderte Schnittstelle. In Schritt 1603 ruft diese Methode die GetToStorage Methode der Speicherungsschnittstelle, die in Schritt 1602 zurückgegeben wurde, auf und gibt ihr den einzigartigen Bezeichner für das Objekt, welches in dem aktuellen WItemMoniker spezifiziert ist. Die Methode kehrt dann zurück.
- Fig. 17 ist ein übergeordnetes Ablaufdiagramm für die Reduce Methode für die GenericCompositeMoniker Schnittstelle. Diese Routine versucht, jede Verweisobjektkomponente zu reduzieren durch Aufrufen der Reduce Methode jeder Verweisobjektkomponente und setzt ein neues GenericComponsiteMoniker aus den reduzierten Komponenten zusammen. Die Methode nimmt drei Parameter: einen Zeiger auf einen Bindekontext, ein Präfixverweisobjekt und einen Ausgabeparameter für das reduzierte Verweisobjekt (reduced Moniker). In Schritt 1701 findet die Methode das erste Element in der verketteten Liste von Verweisobjektkomponenten, die das spezifizierte Verweisobjekt zusammensetzen. In Schritten 1702 bis 1709 ruft die Methode wiederholt die reduzierte Methode jeder Verweisobjektkomponente auf und erzeugt ein neues zusammengesetztes Verweisobjekt mit den reduzierten Komponenten. In Schritt 1702, wenn alle Elemente der verketteten Liste verarbeitet wurden, fährt die Methode mit Schritt 1703 fort, ansonsten fährt sie mit Schritt 1704 fort. In Schritt 1703 setzt die Methode die Ausgabeparameter auf die neuen reduzierten zusammengesetzten Verweisobjekte und kehrt zurück. In Schritt 1704 ruft die Methode die Reduce Methode der Verweisobjektkomponente auf, auf die durch die Variable M Element gezeigt wird, übergibt den Bindekontext und einen Zeiger auf das Präfix verweisobjekt. Das Präfixverweisobjekt entspricht dem neuen zusammengesetzten Verweisobjekt, das soweit erzeugt wurde. In Schritt 1705, wenn die Methode bestimmt, daß die Variable, die auf das Präfixverweisobjekt zeigt, NULL ist, fährt sie mit Schritt 1706 fort, ansonsten fährt sie mit Schritt 1707 fort. In Schritt 1706, wenn die Variable, die auf das Präfixverweisobjekt zeigt, auf NULL zeigt (was bei der ersten Schleife passiert), wird sie auf die reduzierte Verweisobjektkomponente gesetzt, die in Schritt 1704 zurückgegeben wurde und die Methode fährt mit Schritt 1709 fort. In Schritt 1707, wenn die Variable, die auf das Präfixverweisobjekt zeigt, nicht NULL ist, ruft die Methode die ComposeWith Methode des Präfixverweisobjektes auf, um die Präfix mit dem neuen reduzierten Verweisobjekt, das in Schritt 1704 zurückgegeben wurde, zusammen zu setzen. In Schritt 1708 wird die Variable, die auf das Präfixverweisobjekt zeigt, zurück auf das neue zusammengesetzte Ergebnis gesetzt, welches alle die Verweisobjektreduzierungen enthält, die stattgefunden haben. In Schritt 1709 wird die Variable auf das nächste Element der verketteten Liste von Verweisobjektkomponenten vorgeschoben und die Methode kehrt zum Schritt 1702 am oberen Ende der Schleife zurück.
- Fig. 18 ist ein Programmablaufdiagramm der Reduce Methode für eine typische Implementierung eines Dateiverweisobjektes. Die Reduce Methode untersucht das Präfixverweisobjekt, welches ihr übergeben wurde und bestimmt, ob die letzte Komponente des Präfixverweisobjektes ein weiteres Dateiverweisobjekt ist. Wenn es ein weiteres Dateiverweisobjekt ist, gibt diese Methode ein neues zusammengesetztes Dateiobjekt zurück, welches die Kombination der zwei Dateiverweisobjekte in einem ist. Es entfernt auch das Dateiverweisobjekt, welches es von dem übergebenen Präfix verbraucht hat. Diese Funktion nimmt drei Parameter: einen Zeiger auf eine Bindekontext, einen Zeiger auf das Präfixverweisobjekt und einen Ausgabeparameter, wo das neu reduzierte Verweisobjekt zurückgegeben wird. In Schritt 1801 untersucht die Funktion das überreichte Präfixverweisobjekt, um festzustellen, ob es NULL ist. Wenn es NULL ist, kehrt die Funktion zurück, ansonsten fährt sie mit Schritt 1802 fort. In Schritt 1802 untersucht die Funktion das Präfixverweisobjekt, um festzustellen, ob es ein generisches zusammengesetztes Verweisobjekt ist. Wenn es eins ist, fährt die Funktion mit Schritt 1804 fort, ansonsten fährt sie mit Schritt 1803 fort. In Schritt 1803 setzt die Funktion das letzte Element auf das Präfixverweisobjekt, weil das Präfix ein einfacheres Verweisobjekt ist und fährt mit Schritt 1805 fort. In Schritt 1804 ruft die Funktion die FindLastElt Methode des Präfixverweisobjektes auf, um das letzte Element des zusammengesetzten Präfixverweisobjektes zu erhalten. In Schritt 1805 wird die CLASS_ID des letzten Elementes überprüft, um festzustellen, ob es ein Dateiverweisobjekt ist. Wenn es keines ist, fährt die Funktion mit Schritt 1806 fort, ansonsten fährt sie mit Schritt 1807 fort. In Schritt 1806 setzt die Funktion die Ausgabeparameter auf sich selbst, weil keine Reduzierung stattgefunden hat und kehrt zurück. In Schritt 1807 hängt die Funktion den Dateiname, der mit diesem Verweisobjekt verbunden wird, an den Dateinamen des Verweisobjektes, auf das durch das letzte Element gezeigt wird, an. Als nächstes ruft die Funktion im Schritt 1808 ihre eigene Create Methode mit dieser neuen Zeichenkette (string) des Dateinamens auf In Schritt 1809 setzt sie die Präfix mit dem was die Präfix ohne dem letzten Element war, gleich, oder auf NULL, wenn die Präfix kein zusammengesetztes Verweisobjekt war. In Schritt 1801 setzt die Funktion die Ausgabeparameter entsprechend dem neu reduzierten Verweisobjekt auf das in Schritt 1808 erzeugte Verweisobjekt, und die Funktion kehrt zurück.
- Fig. 19 zeigt ein übergeordnetes Programmablaufdiagramm der Reduce Methode für eine typische Implementierung des Verweisobjektes eines Textverarbeitungspostens (Word Processing Item Moniker) WItemMoniker. Diese Routine gibt eine spezielle Art von Verweisobjekt zurück, ein Speicherungsverweisobjekt (storage moniker), welches durch die BindToObject Methode benutzt werden kann, um den Server für ein eingebettetes Objekt direkt aufzurufen, wodurch das Aufrufen der Textverarbeitungsanwendung umgangen wird. Dies wird erreicht durch untersuchen einer speziellen Objekttabelle, die in dem Textverarbeitungsdokument enthalten ist, um den passenden Speicherungszeiger (storage pointer) für das eingebettete Objekt zu finden. Dieser Speicherungszeiger wird dann in einem Speicherungsverweisobjekt zusammengesetzt und anhand seiner BindToObject Methode, die aufgerufen wurde, kann es feststellen, welcher Server aufgerufen werden soll. Diese Routine nimmt drei Parameter: einen pointer-to-a-bind Kontext, ein Präfixverweisobjekt und einen Ausgabeparameter, der das neue reduzierte Verweisobjekt enthalten wird. In Schritt 1901 stellt die Methode fest, ob die Präfix NULL ist und wenn sie NULL ist, kehrt sie zurück, ansonsten fährt die Methode mit Schritt 1902 fort. In Schritt 1902 stellt die Methode fest, ob die Präfix ein generisches zusammengesetztes Verweisobjekt ist und wenn es eins ist, fährt sie mit Schritt 1903 fort, ansonsten fährt sie mit Schritt 1904 fort. In Schritt 1903 ruft die Funktion die FindLastElt Methode des Präfixverweisobjektes auf, um einen Zeiger-auf-letztes-Verweisobjekt der verketteten Liste zu erhalten. Sie fährt dann mit Schritt 1905 fort. Im Schritt 1904 setzt die Methode den Zeiger für das letzte Element auf die Präfix, weil sie kein zusammengesetztes Verweisobjekt ist. In Schritt 1905 untersucht die Methode die CLASS_ID des letzten Elements, um festzustellen, ob es ein Dateiverweisobjekt ist. Wenn es keines ist, fährt die Funktion mit Schritt 1906 fort, ansonsten fährt sie mit Schritt 1907 forL In Schritt 1006 gibt die Funktion einfach sich selbst in dem Ausgabeparameter zurück, weil keine Reduzierung möglich war. In Schritt 1907 untersucht die Methode die Dateikennung (File Extension), oder andere Merkmale, die sie kennt, um festzustellen, ob die Datei der Textverarbeitungsanwendung angehört. Wenn sie feststellt, daß der Typ der Datei unbekannt ist, fährt die Funktion mit Schritt 1006 fort, ansonsten fährt die Funktion mit Schritt 1908 fort. In Schritt 1908 ruft die Methode die GetUser Methode des Verweisobjektes, auf das durch den Zeiger für das letzte Element gezeigt wird, auf, um den Dateinamen des letzten Elements mit der Präfix zu erhalten. In Schritt 1909 untersucht sie die Objekttabelle an einer bekannten Stelle in dem Dateinamen, den sie erhalten hat, um den Eintrag zu finden, der dem aktuellen Verweisobjekt entspricht. Die Elemente in der Tabelle haben die Form eines Dreituppel (WItemMoniker, IStorage, UserName). Von dieser Tabelle holt die Methode den Speicherungszeiger und den Benutzernamen für das neue Verweisobjekt, daß es erzeugen wird. Als nächstes, in Schritt 1910 hängt sie den Benutzernamen des Dateinamens des letzten Elements der Präfix an den neuen Namen, den sie erhalten hat. In Schritt 1911 erzeugt die Methode ein neues IStorage Verweisobjekt mit dem Speicherungszeiger und dem neuen Namen. In Schritt 1912 wird die Präfix auf den Rest dessen gesetzt, was die Präfix minus dem letzten Element war. Als letztes, in Schritt 1913, wird der Ausgabeparameter auf das neue erzeugte IStorage Verweisobjekt gesetzt, und die Funktion kehrt zurück.
- Fig. 20 zeigt ein übergeordnetes Ablaufdiagramm für die Funktion MkParseUserName. Diese Funktion nimmt einen Namen einer Zeichenkette und gibt ihr entsprechendes Verweisobjekt zurück. Das zurückgegebene Verweisobjekt kann ein zusammengesetztes Verweisobjekt sein. In Schrift 2001 zerlegt (parse) die Funktion die Zeichenkette, um einen gültigen Dateinamen zu finden. In Schritt 2002 erzeugt die Funktion ein Dateiverweisobjekt für diesen Dateinamen und speichert ihn in der Variable pfm. In Schritt 2003 setzt die Funktion die übergebliebene Zeichenkette auf die anfänglich übergebene Zeichenkette ohne die verbrauchten Zeichen. Als letztes, in Schritt 2004, ruft die Funktion die ParseUserName Methode für das Dateiverweisobjekt, auf das durch pfm gezeigt wird, auf und gibt es der übergebliebenen Zeichenkette und der Adresse des Rückkehrverweisobjektes. Sobald die Methode des Dateiverweisobjektes ParseUserName zurückgekehrt ist, wird der Rest der Zeichenkette zerlegt sein. Die Funktion kehrt dann zurück.
- Fig. 21 zeigt ein übergeordnetes Ablaufdiagramm für die Methode ParseUserName für eine typische Implementierung eines Dateiverweisobjektes. Weil es die Arten der Objekte, die es enthalten kann, nicht kennt, muß die Methode entscheiden, ob es mit dem Objekt, welches durch den Dateinamen angezeigt wird, binden muß, um den nächsten Teil der Zeichenkette zu zerlegen. Diese Methode nimmt vier Parameter: einen Zeiger auf einen Bindkontext, den Zeiger auf das Präfixverweisobjekt, den restlichen Namen der Zeichenkette, die zerlegt werden soll und einen Zeiger auf das resultierende Verweisobjekt. In Schritt 2101 entscheidet die Methode, ob es den Syntax der Objekte, die in dieser Datei enthalten sind, verstehen kann. Wenn sie den Syntax verstehen kann, fährt die Methode mit Schritt 2102 fort, ansonsten fährt sie mit Schritt 2103 fort. In Schritt 2102 ruft die Methode ihre interne Routine zum Zerlegen einer Zeichenkette (internal parse string routine) auf und erzeugt ein Verweisobjekt für den Teil der Zeichenkette, den sie zerlegen konnte. Sie fährt dann mit Schritt 2105 fort. In 2103 ruft die Methode BindToObject auf sich selbst auf, übergibt ihr die Präfix, die an die ParseUserName Methode überreicht wurde. Als nächstes, in Schritt 2104, ruft diese Methode die ParseUserName Methode des Objektes, das gebunden wurde, um ihr die Präfix zu übergeben, und die restliche Benutzerzeichenkette, die noch zerlegt werden muß. Als letztes, in Schritt 2105, wird die ComposeWith Methode der Präfix aufgerufen, um das neu erzeugte Verweisobjekt zu addieren. Die Funktion kehrt zurück.
Claims (28)
1. Verfahren in einem Computersystem zum Binden eines Objekts in einem ersten
zusammengesetzten Dokument an Daten, die sich in einem zweiten Dokument
befinden, das Verfahren umfassend die Schritte:
Instanzieren eines Verweisobjekts, wobei das Verweisobjekt zum
Speichern von Informationen, die die Daten in dem zweiten Dokument
spezifizieren, und zum Bereitstellen einer Funktion zum Binden an die
Daten in dem zweiten Dokument ist,
Speichern des Verweisobjekts in dem ersten Dokument, und
Aufrufen der Bindefunktion des gespeicherten Verweisobjekts, um an die
Daten in dem zweiten Dokument anzubinden.
2. Verfahren nach Anspruch 1, wobei das Speichern des Verweisobjekts eine
Referenz auf das Verweisobjekt speichert.
3. Verfahren nach Anspruch 1, wobei die Funktion ein Quellobjekt für die Daten
instanziert und einen Zeiger auf das instanzierte Quellobjekt zurückgibt.
4. Verfahren nach Anspruch 1, wobei das instanzierte Verweisobjekt ein
zusammengesetztes Verweisobjekt ist.
5. Verfahren nach Anspruch 4, umfassend Speichern einer Referenz auf ein
erstes Komponentenverweisobjekt und einer Referenz auf ein zweites
Komponentenverweisobjekt in dem zusammengesetzten Verweisobjekt, wobei
das zweite Komponentenverweisobjekt mit dem ersten
Komponentenverweisobjekt zusammengestellt ist, um auf einen Posten in den Daten zu verweisen.
6. Verfahren nach Anspruch 5, wobei die Bindefunktion die Bindefunktion des
ersten Komponentenverweisobjekts aufruft und die Bindefunktion des ersten
Verweisobjekts die Bindefunktion des zweiten Komponentenverweisobjekts
aufruft.
7. Verfahren nach Anspruch 1, wobei das Speichern des Verweisobjekts
Speichern eines Bezeichners einer Klasse des Verweisobjekts zusammen mit
Informationen zum Auffinden der Daten, die sich in dem zweiten
zusammengesetzten Dokument befinden, umfaßt.
8. Verfahren nach Anspruch 1, wobei das Speichern des Verweisobjekts
Speichern eines Dateinamens des zweiten Dokuments umfaßt.
9. Verfahren nach Anspruch 1, wobei das Speichern des Verweisobjekts
Speichern eines Dateinamens des zweiten Dokuments zusammen mit einem
Hinweis auf einen Teil des zweiten Dokuments umfaßt.
10. Verfahren nach Anspruch 1, wobei die Bindefunktion einen Server startet, um
Zugriff auf die Daten bereitzustellen.
11. Verfahren nach Anspruch 1, wobei das Verweisobjekt eine Funktion zum
Bestimmen anderer Schnittstellen bereitstellt, die durch das Verweisobjekt
unterstützt werden.
12. Verfahren nach Anspruch 1, wobei das Verweisobjekt eine Funktion zum
Zusammenstellen des Verweisobjekts mit einem anderen Verweisobjekt
bereitstellt, um ein zusammengesetztes Verweisobjekt zu bilden.
13. Verfahren nach Anspruch 1, wobei das Verweisobjekt auf die Daten zugreift,
ohne einen Server zum Verarbeiten der Daten zu starten.
14. Verfahren nach. Anspruch 1, wobei das Instanzieren des Verweisobjekts
Analysieren eines Zeichenkettennamens für die Daten umfaßt.
15. Computersystem zum Binden eines Objekts in einem ersten
zusammengesetzten Dokument an Daten, die sich in einem zweiten Dokument befinden,
umfassend:
eine Komponente zum Erzeugen einer Instanz eines Verweisobjekts,
wobei das Verweisobjekt zum Speichern von Informationen, die die Daten
in dem zweiten Dokument spezifizieren, und zum Bereitstellen einer
Funktion zum Binden an die Daten in dem zweiten Dokument ist,
eine Komponente zum Speichern einer Referenz zu dem Verweisobjekt in
dem erste Dokument, und
eine Komponente zum Aufrufen der Bindefunktion des gespeicherten
Verweisobjekts, um an die Daten in dem zweiten Dokument anzubinden.
16. Computersystem nach Anspruch 15, wobei das Speichern des Verweisobjekts
eine Referenz auf das Verweisobjekt speichert.
17. Computersystem nach Anspruch 15, wobei die Funktion ein Quellobjekt für die
Daten instanziert und einen Zeiger auf das instanzierte Quellobjekt zurückgibt.
18. Computersystem nach Anspruch 15, wobei das instanzierte Verweisobjekt ein
zusammengesetztes Verweisobjekt ist.
19. Computersystem nach Anspruch 18, umfassend eine Komponente zum
Speichern einer Referenz auf ein erstes Komponentenverweisobjekt und einer
Referenz auf ein zweites Komponentenverweisobjekt in dem
zusammengesetzten Verweisobjekt, wobei das zweite Komponentenverweisobjekt mit dem
ersten Komponentenverweisobjekt zusammengestellt ist, um auf einen Posten
in den Daten zu verweisen.
20. Computersystem nach Anspruch 19, wobei die Bindefunktion die Bindefunktion
des ersten Komponentenverweisobjekts aufruft und die Bindefunktion des
ersten Verweisobjekts die Bindefunktion des zweiten
Komponentenverweisobjekts aufruft.
21 Computersystem nach Anspruch 15, wobei das Speichern des Verweisobjekts
Speichern eines Bezeichners einer Klasse des Verweisobjekts zusammen mit
Informationen zum Auffinden der Daten, die sich in dem zweiten
zusammengesetzten Dokument befinden, umfaßt.
22. Computersystem nach Anspruch 15, wobei das Speichern des Verweisobjekts
Speichern eines Dateinamens des zweiten Dokuments umfaßt.
23. Computersystem nach Anspruch 15, wobei das Speichern des Verweisobjekts
Speichern eines Dateinamens des zweiten Dokuments zusammen mit einem
Hinweis auf einen Teil des zweiten Dokuments umfaßt.
24. Computersystem nach Anspruch 15, wobei die Bindefunktion einen Server
startet, um Zugriff auf die Daten bereitzustellen.
25. Computersystem nach Anspruch 15, wobei das Verweisobjekt eine Funktion
zum Bestimmen anderer Schnittstellen bereitstellt, die durch das Verweisobjekt
unterstützt werden.
26. Computersystem nach Anspruch 15, wobei das Verweisobjekt eine Funktion
zum Zusammenstellen des Verweisobjekts mit einem anderen Verweisobjekt
bereitstellt, um ein zusammengesetztes Verweisobjekt zu bilden.
27. Computersystem nach Anspruch 15, wobei das Verweisobjekt auf die Daten
zugreift, ohne einen Server zum Verarbeiten der Daten zu starten.
28. Computersystem nach Anspruch 15, wobei das Instanzieren des
Verweisobjekts Analysieren eines Zeichenkettennamens für die Daten umfaßt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US90998392A | 1992-07-06 | 1992-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69327138D1 DE69327138D1 (de) | 2000-01-05 |
DE69327138T2 true DE69327138T2 (de) | 2000-04-27 |
Family
ID=25428141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69327138T Expired - Lifetime DE69327138T2 (de) | 1992-07-06 | 1993-07-06 | Verfahren zur Namensgebung und zur Bindung von Objekten |
Country Status (7)
Country | Link |
---|---|
US (10) | US5581760A (de) |
EP (2) | EP0930566A3 (de) |
JP (1) | JP3613401B2 (de) |
KR (1) | KR100287045B1 (de) |
AT (1) | ATE187268T1 (de) |
CA (1) | CA2099918C (de) |
DE (1) | DE69327138T2 (de) |
Families Citing this family (459)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506983A (en) * | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US5805885A (en) * | 1992-12-24 | 1998-09-08 | Microsoft Corporation | Method and system for aggregating objects |
EP0698242A1 (de) * | 1993-05-10 | 1996-02-28 | Apple Computer, Inc. | System zum automatischen bestimmen des status eines in ein dokument eingefügten inhalts |
AU6826794A (en) * | 1993-05-10 | 1994-12-12 | Apple Computer, Inc. | Computer-human interface system which manipulates parts between a desktop and a document |
US5812862A (en) * | 1993-05-10 | 1998-09-22 | Apple Computer, Inc. | Computer-human interface system for compound documents |
CA2124720C (en) * | 1993-06-25 | 2002-10-22 | Michael R. C. Seaman | Integration of systems management services with an underlying system object model |
US6751796B1 (en) | 1993-06-25 | 2004-06-15 | Microsoft Corporation | Integration of systems management services with an underlying system object model |
DE69426615T2 (de) * | 1993-07-20 | 2001-06-28 | Canon K.K., Tokio/Tokyo | Vorrichtung und Verfahren zum Verarbeiten von Dokumenten |
CA2118169A1 (en) | 1993-10-27 | 1995-04-28 | Michael R.C. Seaman | Event architecture for system management in an operating system |
US5568639A (en) * | 1993-11-24 | 1996-10-22 | Menai Corporation | Method and apparatus for providing an object-oriented file structuring system on a computer |
US6813769B1 (en) * | 1997-10-28 | 2004-11-02 | Microsoft Corporation | Server application components with control over state duration |
US5991782A (en) * | 1994-02-18 | 1999-11-23 | Fujitsu Limited | Automated extraction and doubly linked reference marks for partialized document contents and version control |
FR2717280B1 (fr) * | 1994-03-10 | 1996-04-05 | Bull Sa | Procédé de gestion de l'héritage multiple d'objets persistants et partagés. |
US6708196B1 (en) * | 1994-04-15 | 2004-03-16 | Microsoft Corporation | Method and system for caching presentation data |
US5608909A (en) * | 1994-04-15 | 1997-03-04 | Microsoft Corporation | Method and system for caching presentation data of a source object in a presentation cache |
DE69517945T2 (de) * | 1994-09-21 | 2001-01-11 | Kodak Ltd., Hemel Hempstead | Verbindungsverwalter zum integrieren der daten zwischen anwenderprogrammen |
US5838906A (en) | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5862372A (en) * | 1994-11-16 | 1999-01-19 | Morris; Robert M. | Visually oriented computer implemented application development system utilizing standardized objects and multiple views |
DE69535580T2 (de) * | 1994-12-13 | 2007-12-06 | Microsoft Corp., Redmond | Datenaustausch mit erweiterten Zwischenablage-Datenformaten |
US5831606A (en) | 1994-12-13 | 1998-11-03 | Microsoft Corporation | Shell extensions for an operating system |
JPH08212205A (ja) * | 1995-02-07 | 1996-08-20 | Nec Corp | 複合文書管理システム |
US5884321A (en) * | 1995-03-22 | 1999-03-16 | Meffert; Gregory John | Document image and query management system for application databases |
US5802531A (en) * | 1995-05-08 | 1998-09-01 | Apple Computer, Inc. | Method and system for embedding parts of documents and synchronizing multiple views thereof |
ES2156275T5 (es) * | 1995-05-09 | 2005-07-16 | Smartmove (Nz) Limited | Interfaz de tarjetas. |
US5740455A (en) * | 1995-05-16 | 1998-04-14 | Apple Computer, Inc. | Enhanced compound document processing architectures and methods therefor |
US5664208A (en) * | 1995-05-16 | 1997-09-02 | Apple Computer, Inc. | Methods and apparatuses for seamless compound document processing |
US6577746B1 (en) | 1999-12-28 | 2003-06-10 | Digimarc Corporation | Watermark-based object linking and embedding |
US6016392A (en) | 1995-11-03 | 2000-01-18 | Intergraph Corporation | Method for object-oriented programming using dynamic interfaces |
AU1119097A (en) * | 1995-11-13 | 1997-06-05 | Answersoft, Inc. | Intelligent information routing system and method |
US6246410B1 (en) * | 1996-01-19 | 2001-06-12 | International Business Machines Corp. | Method and system for database access |
US5802380A (en) * | 1996-03-08 | 1998-09-01 | Microsoft Corporation | Method and system for uniform access of textual data |
JPH09282167A (ja) * | 1996-04-10 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | メソッド起動方法及びメソッド起動制御装置 |
DE19615683A1 (de) * | 1996-04-22 | 1997-10-23 | Sel Alcatel Ag | Verfahren und Steuereinrichtung für eine graphische Steuerung von Abläufen in einem Netzwerkmanagementsystem |
US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
US6138238A (en) * | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6134603A (en) * | 1998-03-20 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US6272559B1 (en) * | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US5923877A (en) * | 1996-05-01 | 1999-07-13 | Electronic Data Systems Corporation | Object-oriented programming memory management framework and method |
US5940616A (en) * | 1996-05-31 | 1999-08-17 | International Business Machines Corporation | Tracker class for object-oriented programming environments |
US5818447A (en) * | 1996-06-06 | 1998-10-06 | Microsoft Corporation | System and method for in-place editing of an electronic mail message using a separate program |
US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
US5881230A (en) * | 1996-06-24 | 1999-03-09 | Microsoft Corporation | Method and system for remote automation of object oriented applications |
US5809507A (en) * | 1996-07-01 | 1998-09-15 | Sun Microsystems, Inc. | Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US5893107A (en) * | 1996-07-01 | 1999-04-06 | Microsoft Corporation | Method and system for uniformly accessing multiple directory services |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
EP0825506B1 (de) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Verfahren und Gerät zur Fernprozesssteuerung |
US5895477A (en) * | 1996-09-09 | 1999-04-20 | Design Intelligence, Inc. | Design engine for automatic layout of content |
US5903902A (en) * | 1996-09-09 | 1999-05-11 | Design Intelligence, Inc. | Design engine with tree and component structure |
US5956737A (en) | 1996-09-09 | 1999-09-21 | Design Intelligence, Inc. | Design engine for fitting content to a medium |
US5895476A (en) * | 1996-09-09 | 1999-04-20 | Design Intelligence, Inc. | Design engine for automatic reformatting for design and media |
WO1998010356A1 (en) * | 1996-09-09 | 1998-03-12 | Design Intelligence, Inc. | Automatic layout and formatting of content for a design in a medium |
US5878431A (en) * | 1996-10-04 | 1999-03-02 | Hewlett-Packard Company | Method and apparatus for providing topology based enterprise management services |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237142B1 (en) * | 1996-11-12 | 2001-05-22 | International Business Machines Corporation | Method for synchronization between links and group definitions within an object-oriented system |
US6460058B2 (en) | 1996-12-06 | 2002-10-01 | Microsoft Corporation | Object-oriented framework for hyperlink navigation |
US6401099B1 (en) | 1996-12-06 | 2002-06-04 | Microsoft Corporation | Asynchronous binding of named objects |
US6047296A (en) * | 1996-12-09 | 2000-04-04 | Omnimark Technologies Corporation | Comprehensive method of resolving nested forward references in electronic data streams within defined resolution scopes |
US6374250B2 (en) * | 1997-02-03 | 2002-04-16 | International Business Machines Corporation | System and method for differential compression of data from a plurality of binary sources |
US6687761B1 (en) | 1997-02-20 | 2004-02-03 | Invensys Systems, Inc. | Process control methods and apparatus with distributed object management |
US6363433B1 (en) * | 1997-03-12 | 2002-03-26 | Microsoft Corporation | Method and mechanism for client-side handling of extensions originally written for servers |
CN1122213C (zh) * | 1997-05-29 | 2003-09-24 | 太阳微系统公司 | 给对象签名和签章的方法和设备 |
US6125383A (en) | 1997-06-11 | 2000-09-26 | Netgenics Corp. | Research system using multi-platform object oriented program language for providing objects at runtime for creating and manipulating biological or chemical data |
US5987481A (en) * | 1997-07-01 | 1999-11-16 | Microsoft Corporation | Method and apparatus for using label references in spreadsheet formulas |
US6760746B1 (en) * | 1999-09-01 | 2004-07-06 | Eric Schneider | Method, product, and apparatus for processing a data request |
US5905991A (en) * | 1997-08-21 | 1999-05-18 | Reynolds; Mark L | System and method providing navigation between documents by creating associations based on bridges between combinations of document elements and software |
US6233584B1 (en) * | 1997-09-09 | 2001-05-15 | International Business Machines Corporation | Technique for providing a universal query for multiple different databases |
US5995918A (en) * | 1997-09-17 | 1999-11-30 | Unisys Corporation | System and method for creating a language grammar using a spreadsheet or table interface |
US6253256B1 (en) | 1997-10-15 | 2001-06-26 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system |
US5958004A (en) | 1997-10-28 | 1999-09-28 | Microsoft Corporation | Disabling and enabling transaction committal in transactional application components |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
DE19747583B4 (de) * | 1997-10-28 | 2006-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Kommunikationssystem und Verfahren |
US6134594A (en) | 1997-10-28 | 2000-10-17 | Microsoft Corporation | Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects |
US6631425B1 (en) * | 1997-10-28 | 2003-10-07 | Microsoft Corporation | Just-in-time activation and as-soon-as-possible deactivation or server application components |
US6055543A (en) * | 1997-11-21 | 2000-04-25 | Verano | File wrapper containing cataloging information for content searching across multiple platforms |
US6148438A (en) * | 1998-01-06 | 2000-11-14 | National Instruments Corporation | System and method for creating composite classes for objects having virtual functions for avoidance of user mode/kernel mode transitions |
CN1298514A (zh) | 1998-02-26 | 2001-06-06 | 太阳微系统公司 | 确定性散列识别远程方法的方法和系统 |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
US6330006B1 (en) * | 1998-05-12 | 2001-12-11 | Silverstream Software, Inc. | Method and apparatus for synchronizing an application's interface and data |
US6233582B1 (en) * | 1998-05-14 | 2001-05-15 | Sun Microsystems, Inc. | Persistent storage interface for a configuration object-based system |
US6691183B1 (en) | 1998-05-20 | 2004-02-10 | Invensys Systems, Inc. | Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation |
US6912561B1 (en) | 1998-05-22 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for using classes, encapsulating data with its behaviors, for transferring between databases and client applications and for enabling applications to adapt to specific constraints of the data |
US6917939B1 (en) | 1998-05-22 | 2005-07-12 | International Business Machines Corporation | Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage |
US6366916B1 (en) | 1998-05-22 | 2002-04-02 | International Business Machines Corporation | Configurable and extensible system for deploying asset management functions to client applications |
US6826571B1 (en) | 1998-05-22 | 2004-11-30 | International Business Machines Corporation | Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server |
KR19990087910A (ko) * | 1998-05-27 | 1999-12-27 | 포만 제프리 엘 | 관련되지않은윈도들간의연합상호작용 |
US6611954B1 (en) * | 1998-06-03 | 2003-08-26 | Intel Corporation | Binary compatible software objects |
US8527882B2 (en) * | 1998-06-12 | 2013-09-03 | Gregory J. Swartz | System and method for iconic software environment management |
US7346850B2 (en) | 1998-06-12 | 2008-03-18 | Cygnus Systems, Inc. | System and method for iconic software environment management |
US6654881B2 (en) * | 1998-06-12 | 2003-11-25 | Microsoft Corporation | Logical volume mount manager |
US6662236B1 (en) * | 1998-06-29 | 2003-12-09 | International Business Machines Corporation | Runtime object binding in scripting |
US6526416B1 (en) | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
US6282524B1 (en) | 1998-07-20 | 2001-08-28 | Pitney Bowes Inc. | Method and system of printing postage indicia from an envelope design application |
US6384931B1 (en) | 1998-07-20 | 2002-05-07 | Pitney Bowes Inc. | Method and system for capturing destination addresses from label data |
US6342899B1 (en) | 1998-07-20 | 2002-01-29 | Pitney Bowes Inc. | Method and system of displaying database contents in envelope data fields |
GB2340266B (en) * | 1998-07-31 | 2003-03-12 | Sony Uk Ltd | Data processing |
US6442620B1 (en) | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
US6425017B1 (en) | 1998-08-17 | 2002-07-23 | Microsoft Corporation | Queued method invocations on distributed component applications |
US8434099B2 (en) | 1998-09-09 | 2013-04-30 | Microsoft Corporation | Efficient linking and loading for late binding and platform retargeting |
US7409694B2 (en) * | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US7143421B2 (en) * | 1998-09-09 | 2006-11-28 | Microsoft Corporation | Highly componentized system architecture with a demand-loading namespace and programming model |
US6282590B1 (en) | 1998-09-15 | 2001-08-28 | Pitney Bowes Inc. | Method and system for establishing a standard peripheral interface server |
JP3460597B2 (ja) | 1998-09-22 | 2003-10-27 | 日本電気株式会社 | 複合文書管理システム及び複合文書の構造管理方法ならびに複合文書構造管理プログラムを格納した記録媒体 |
US8078727B2 (en) | 1998-10-09 | 2011-12-13 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8060656B2 (en) * | 1998-10-09 | 2011-11-15 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7107591B1 (en) * | 1998-11-05 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Task-specific flexible binding in a software system |
US6952827B1 (en) * | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US6574736B1 (en) | 1998-11-30 | 2003-06-03 | Microsoft Corporation | Composable roles |
US6385724B1 (en) | 1998-11-30 | 2002-05-07 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust |
US6487665B1 (en) | 1998-11-30 | 2002-11-26 | Microsoft Corporation | Object security boundaries |
US6621506B2 (en) * | 1998-12-11 | 2003-09-16 | Adobe Systems Incorporated | Applying operations to selected data of different types |
US6397384B1 (en) * | 1998-12-18 | 2002-05-28 | Adobe Systems Incorporated | Run-time addition of interfaces |
US6681371B1 (en) * | 1998-12-21 | 2004-01-20 | At&T Corp. | System and method for using container documents as multi-user domain clients |
US6978450B2 (en) * | 1999-01-15 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and system for optimizing compilation time of a program by selectively reusing object code |
US6594819B1 (en) * | 1999-01-25 | 2003-07-15 | International Business Machines Corporation | Method and system for establishing collection of hostable applications |
US6704924B1 (en) * | 1999-02-03 | 2004-03-09 | William H. Gates, III | Method and system for implementing virtual functions of an interface |
US7127724B2 (en) * | 1999-02-03 | 2006-10-24 | International Business Machines Corporation | Method and apparatus for providing protocol independent naming and life cycle services in an object-oriented system |
US6493120B1 (en) * | 1999-02-17 | 2002-12-10 | Alcatel | Optical fiber-delay line buffers with void filling |
US6748455B1 (en) | 1999-02-23 | 2004-06-08 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events with filtering |
US6829770B1 (en) | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
US7283991B1 (en) * | 1999-03-11 | 2007-10-16 | Microsoft Corporation | Caching system for path search optimization |
US6463533B1 (en) * | 1999-04-15 | 2002-10-08 | Webtv Networks, Inc. | System for generating site-specific user aliases in a computer network |
AU5273100A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US6678745B1 (en) * | 1999-06-01 | 2004-01-13 | Bruce Hodge | Dynamic object synthesis with automatic late binding |
US6606613B1 (en) | 1999-06-03 | 2003-08-12 | Microsoft Corporation | Methods and apparatus for using task models to help computer users complete tasks |
US6539374B2 (en) * | 1999-06-03 | 2003-03-25 | Microsoft Corporation | Methods, apparatus and data structures for providing a uniform representation of various types of information |
US6778971B1 (en) | 1999-06-03 | 2004-08-17 | Microsoft Corporation | Methods and apparatus for analyzing computer-based tasks to build task models |
US6330554B1 (en) | 1999-06-03 | 2001-12-11 | Microsoft Corporation | Methods and apparatus using task models for targeting marketing information to computer users based on a task being performed |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
US6877163B1 (en) | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
US7150005B2 (en) * | 1999-07-02 | 2006-12-12 | Beryl Technical Assays, Llc | Method and system for global constant management for memory |
US6634019B1 (en) | 1999-07-16 | 2003-10-14 | Lamarck, Inc. | Toggling software characteristics in a fault tolerant and combinatorial software environment system, method and medium |
US6973560B1 (en) | 1999-07-16 | 2005-12-06 | Lamarck, Inc. | Fault tolerant and combinatorial software environment system, method and medium |
US6631497B1 (en) * | 1999-07-19 | 2003-10-07 | International Business Machines Corporation | Binding data from data source to cells in a spreadsheet |
US7039863B1 (en) * | 1999-07-23 | 2006-05-02 | Adobe Systems Incorporated | Computer generation of documents using layout elements and content elements |
US6513112B1 (en) | 1999-07-26 | 2003-01-28 | Microsoft Corporation | System and apparatus for administration of configuration information using a catalog server object to describe and manage requested configuration information to be stored in a table object |
US6675353B1 (en) * | 1999-07-26 | 2004-01-06 | Microsoft Corporation | Methods and systems for generating XML documents |
US7337174B1 (en) | 1999-07-26 | 2008-02-26 | Microsoft Corporation | Logic table abstraction layer for accessing configuration information |
US6421682B1 (en) | 1999-07-26 | 2002-07-16 | Microsoft Corporation | Catalog management system architecture having data table objects and logic table objects |
US6598037B1 (en) | 1999-07-26 | 2003-07-22 | Microsoft Corporation | Data table object interface for datastore |
US6466943B1 (en) * | 1999-07-26 | 2002-10-15 | Microsoft Corporation | Obtaining table objects using table dispensers |
US6418486B1 (en) * | 1999-07-28 | 2002-07-09 | Intel Corporation | Device handling system and method |
US6510352B1 (en) | 1999-07-29 | 2003-01-21 | The Foxboro Company | Methods and apparatus for object-based process control |
US6614808B1 (en) | 1999-09-02 | 2003-09-02 | International Business Machines Corporation | Network packet aggregation |
US6748555B1 (en) * | 1999-09-09 | 2004-06-08 | Microsoft Corporation | Object-based software management |
US6320591B1 (en) | 1999-09-10 | 2001-11-20 | Gateway, Inc. | System and method for the utilization of an electronic book |
US6782532B1 (en) * | 1999-10-21 | 2004-08-24 | Oracle International Corporation | Object type system for a run-time environment using generated high-order language instructions for generic functions |
US6871203B1 (en) | 1999-10-29 | 2005-03-22 | International Business Machines Corporation | Data processing system |
US6553387B1 (en) | 1999-11-29 | 2003-04-22 | Microsoft Corporation | Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers |
US6684231B1 (en) | 1999-11-29 | 2004-01-27 | Microsoft Corporation | Migration of friendly volumes |
US6473660B1 (en) | 1999-12-03 | 2002-10-29 | The Foxboro Company | Process control system and method with automatic fault avoidance |
US6920636B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US7178105B1 (en) * | 2000-02-04 | 2007-02-13 | International Business Machines Corporation | Method and system for document component importation and reconciliation |
US6779128B1 (en) | 2000-02-18 | 2004-08-17 | Invensys Systems, Inc. | Fault-tolerant data transfer |
CA2301822A1 (fr) * | 2000-03-24 | 2001-09-24 | 9071 9410 Quebec Inc. | Projection simultanee de plusieurs patrons avec acquisition simultanee pour l'inspection d'objets en trois dimensions |
US6995853B1 (en) | 2000-03-31 | 2006-02-07 | Pitney Bowes Inc. | Method and system for modifying print stream data to allow printing over a single I/O port |
US6728768B1 (en) * | 2000-04-13 | 2004-04-27 | International Business Machines Corporation | Method and apparatus for improving dynamic simple network management protocol GetNext processing |
AU2001259108A1 (en) * | 2000-04-21 | 2001-11-07 | Togethersoft Corporation | Methods and systems for generating source code for object-oriented elements |
US7080078B1 (en) | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
US6973493B1 (en) | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
US6789077B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment |
US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US7200848B1 (en) | 2000-05-09 | 2007-04-03 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment |
US7577834B1 (en) | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US7065574B1 (en) | 2000-05-09 | 2006-06-20 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment |
US6898618B1 (en) | 2000-05-09 | 2005-05-24 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment |
US7395333B1 (en) | 2000-05-09 | 2008-07-01 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement |
US7370091B1 (en) | 2000-05-09 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements |
US6643650B1 (en) | 2000-05-09 | 2003-11-04 | Sun Microsystems, Inc. | Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment |
US7260543B1 (en) | 2000-05-09 | 2007-08-21 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment |
US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
US7072967B1 (en) | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
US7188251B1 (en) | 2000-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment |
US7010573B1 (en) | 2000-05-09 | 2006-03-07 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment |
US6950875B1 (en) | 2000-05-09 | 2005-09-27 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment |
US6850979B1 (en) | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
US6792466B1 (en) | 2000-05-09 | 2004-09-14 | Sun Microsystems, Inc. | Trusted construction of message endpoints in a distributed computing environment |
US8001232B1 (en) | 2000-05-09 | 2011-08-16 | Oracle America, Inc. | Event message endpoints in a distributed computing environment |
US7016966B1 (en) | 2000-05-09 | 2006-03-21 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment |
US7243356B1 (en) | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
US6789126B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
US6970869B1 (en) | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6868447B1 (en) | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US7013340B1 (en) * | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
US6760815B1 (en) | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
US6865657B1 (en) | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6763440B1 (en) | 2000-06-02 | 2004-07-13 | Sun Microsystems, Inc. | Garbage collection using nursery regions for new objects in a virtual heap |
US20020019845A1 (en) | 2000-06-16 | 2002-02-14 | Hariton Nicholas T. | Method and system for distributed scripting of presentations |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7117435B1 (en) | 2000-06-21 | 2006-10-03 | Microsoft Corporation | Spreadsheet fields in text |
US7155667B1 (en) | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
EP1325427A2 (de) | 2000-06-21 | 2003-07-09 | Microsoft Corporation | System und verfahren zur integration von kalkulationsblättern und textverarbeitungstabellen |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US6874143B1 (en) | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US7117371B1 (en) | 2000-06-28 | 2006-10-03 | Microsoft Corporation | Shared names |
US7219332B2 (en) * | 2000-07-07 | 2007-05-15 | Microsoft Corporation | Configuring software components(merge) with transformation component using configurable and non-configurable data elements |
JP4662657B2 (ja) | 2000-07-10 | 2011-03-30 | マイクロソフト コーポレーション | 統一データ型システムおよび方法 |
US6738968B1 (en) * | 2000-07-10 | 2004-05-18 | Microsoft Corporation | Unified data type system and method |
US6651248B1 (en) * | 2000-09-01 | 2003-11-18 | International Business Machines Corporation | Method and apparatus for efficient interface method dispatch |
TW518509B (en) * | 2000-11-28 | 2003-01-21 | Ibm | Method and system in an electronic spreadsheet for persistently filling by samples a range of cells |
US6561342B2 (en) * | 2000-11-29 | 2003-05-13 | Charles Lepage | Granular material conveyor |
US6842786B1 (en) * | 2001-02-09 | 2005-01-11 | Adobe Systems Incorporated | Method and apparatus for remote communication of data associated with dynamically generated type object at runtime to describe the data type |
US7152223B1 (en) * | 2001-06-04 | 2006-12-19 | Microsoft Corporation | Methods and systems for compiling and interpreting one or more associations between declarations and implementations in a language neutral fashion |
US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
US7089555B2 (en) * | 2001-06-27 | 2006-08-08 | International Business Machines Corporation | Ordered semaphore management subsystem |
US7454753B2 (en) * | 2001-06-27 | 2008-11-18 | International Business Machines Corporation | Semaphore management subsystem for use with multi-thread processor systems |
US7069540B1 (en) * | 2001-07-02 | 2006-06-27 | Unisys Corporation | COM persistence model |
US6941550B1 (en) * | 2001-07-09 | 2005-09-06 | Microsoft Corporation | Interface invoke mechanism |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US20030051029A1 (en) * | 2001-09-07 | 2003-03-13 | Reedy Dennis G. | Dynamic provisioning of sevice components in a distributed system |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7406690B2 (en) * | 2001-09-26 | 2008-07-29 | International Business Machines Corporation | Flow lookahead in an ordered semaphore management subsystem |
US7143414B2 (en) * | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
US6925640B2 (en) * | 2001-10-12 | 2005-08-02 | Sun Microsystems, Inc. | Method and apparatus for extending a program element in a dynamically typed programming language |
US7552222B2 (en) * | 2001-10-18 | 2009-06-23 | Bea Systems, Inc. | Single system user identity |
US20030093435A1 (en) * | 2001-11-05 | 2003-05-15 | Bandekar Vijay R. | Method and system for application level data object synchronization between two or more processes |
CN1591412A (zh) * | 2001-11-09 | 2005-03-09 | 无锡永中科技有限公司 | 集成数据处理系统 |
JP2003150762A (ja) * | 2001-11-15 | 2003-05-23 | Hitachi Ltd | プロジェクト情報連携方法およびシステム |
DE10157633A1 (de) * | 2001-11-26 | 2003-08-28 | Siemens Ag | Medizinische Systemarchitektur mit einer komponentenorientierten Architektur zur Befundung und Dokumentation |
US20040015835A1 (en) * | 2002-01-24 | 2004-01-22 | Sasank Kotnur | Dynamic distribution and integration of computer code objects |
US7007024B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Hashing objects into multiple directories for better concurrency and manageability |
US7036039B2 (en) * | 2002-03-29 | 2006-04-25 | Panasas, Inc. | Distributing manager failure-induced workload through the use of a manager-naming scheme |
US7242991B2 (en) | 2002-04-15 | 2007-07-10 | Invensys Systems, Inc. | Workflow control configurator for use with process, factory-floor, environmental, computer aided manufacturing-based or other control system |
JP4224250B2 (ja) * | 2002-04-17 | 2009-02-12 | パイオニア株式会社 | 音声認識装置、音声認識方法および音声認識プログラム |
US7035862B2 (en) * | 2002-05-09 | 2006-04-25 | Siemens Medical Solutions Health Services Corporation | Method for processing information from an information repository |
US20040064828A1 (en) * | 2002-10-01 | 2004-04-01 | Cox David Payton | Supplanting first device objects with second device objects |
US7234109B2 (en) * | 2002-11-19 | 2007-06-19 | Microsoft Corp. | Equality of extensible markup language structures |
CN1264090C (zh) * | 2002-12-31 | 2006-07-12 | 上海科泰世纪科技有限公司 | 调用构件对象功能的智能指针的封装方法 |
US20040181748A1 (en) * | 2003-03-10 | 2004-09-16 | International Business Machines Corporation | Thin client framework deployment of spreadsheet applications in a web browser based environment |
US7480921B1 (en) | 2003-03-12 | 2009-01-20 | Microsoft Corporation | Method, system, and apparatus for customizing web parts |
US7281252B1 (en) | 2003-03-12 | 2007-10-09 | Microsoft Corporation | Method, system, and apparatus for implementing object interfaces at runtime |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7275216B2 (en) | 2003-03-24 | 2007-09-25 | Microsoft Corporation | System and method for designing electronic forms and hierarchical schemas |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7197512B2 (en) * | 2003-03-26 | 2007-03-27 | Microsoft Corporation | Type bridges |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7516145B2 (en) | 2003-03-31 | 2009-04-07 | Microsoft Corporation | System and method for incrementally transforming and rendering hierarchical data files |
US7168035B1 (en) | 2003-06-11 | 2007-01-23 | Microsoft Corporation | Building a view on markup language data through a set of components |
US7299450B2 (en) * | 2003-06-17 | 2007-11-20 | Microsoft Corporation | Undoing changes in a software configuration management system |
US7197515B2 (en) | 2003-06-30 | 2007-03-27 | Microsoft Corporation | Declarative solution definition |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7581177B1 (en) | 2003-08-01 | 2009-08-25 | Microsoft Corporation | Conversion of structured documents |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7409693B2 (en) * | 2003-10-30 | 2008-08-05 | International Business Machines Corporation | Method and system for providing version control of parameters in a command-based API using Java serialization |
US7464330B2 (en) * | 2003-12-09 | 2008-12-09 | Microsoft Corporation | Context-free document portions with alternate formats |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7469408B2 (en) * | 2004-02-13 | 2008-12-23 | Microsoft Corporation | Document customization for transparent execution on a client and a server |
US7430711B2 (en) | 2004-02-17 | 2008-09-30 | Microsoft Corporation | Systems and methods for editing XML documents |
US7318063B2 (en) | 2004-02-19 | 2008-01-08 | Microsoft Corporation | Managing XML documents containing hierarchical database information |
US7243157B2 (en) | 2004-02-20 | 2007-07-10 | Microsoft Corporation | Dynamic protocol construction |
US20050188350A1 (en) * | 2004-02-20 | 2005-08-25 | Microsoft Corporation | Data binding |
US7496649B2 (en) * | 2004-02-20 | 2009-02-24 | Microsoft Corporation | Policy application across multiple nodes |
US7664828B2 (en) * | 2004-02-20 | 2010-02-16 | Microsoft Corporation | Invalid policy detection |
US7545362B2 (en) * | 2004-02-26 | 2009-06-09 | Microsoft Corporation | Multi-modal navigation in a graphical user interface computing system |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US20050197845A1 (en) * | 2004-03-02 | 2005-09-08 | Kai Wachter | Business workbook precalculation |
US20050198610A1 (en) * | 2004-03-03 | 2005-09-08 | Ulf Fildebrandt | Providing and using design time support |
US7653880B2 (en) * | 2004-04-13 | 2010-01-26 | Microsoft Corporation | Application of data-binding mechanism to perform command binding |
US7539687B2 (en) * | 2004-04-13 | 2009-05-26 | Microsoft Corporation | Priority binding |
US7779387B2 (en) * | 2004-04-15 | 2010-08-17 | Microsoft Corporation | Offline source code control |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
EP1751672A4 (de) * | 2004-05-03 | 2007-05-09 | Lg Electronics Inc | Verfahren und vorrichtung zur verwaltung von lesezeicheninformationen für in einem vernetzten media-server gespeicherten inhalt |
US7890604B2 (en) | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US7568101B1 (en) | 2004-05-13 | 2009-07-28 | Microsoft Corporation | Digital signatures with an embedded view |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US7464386B2 (en) | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US7596546B2 (en) * | 2004-06-14 | 2009-09-29 | Matchett Douglas K | Method and apparatus for organizing, visualizing and using measured or modeled system statistics |
US20060010175A1 (en) * | 2004-06-17 | 2006-01-12 | International Business Machines Corporation | Apparatus, system, and method for automated conversion of content having multiple representation versions |
JP2006065462A (ja) * | 2004-08-25 | 2006-03-09 | Canon Inc | ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体 |
US7503038B2 (en) | 2004-08-27 | 2009-03-10 | Microsoft Corporation | System and method for seamlessly comparing objects |
US20060048095A1 (en) * | 2004-08-31 | 2006-03-02 | Microsoft Corporation | Local type alias inference system and method |
US20060064643A1 (en) | 2004-09-14 | 2006-03-23 | Hariton Nicholas T | Distributed scripting for presentations with touch screen displays |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US7516399B2 (en) | 2004-09-30 | 2009-04-07 | Microsoft Corporation | Structured-document path-language expression methods and systems |
US7475384B2 (en) * | 2004-10-19 | 2009-01-06 | Microsoft Corporation | Binding to types |
US7401340B2 (en) * | 2004-10-21 | 2008-07-15 | Oracle International Corporation | Supporting cross-component references in an object-oriented programming system |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7584417B2 (en) | 2004-11-15 | 2009-09-01 | Microsoft Corporation | Role-dependent action for an electronic form |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7509353B2 (en) | 2004-11-16 | 2009-03-24 | Microsoft Corporation | Methods and systems for exchanging and rendering forms |
US7774308B2 (en) * | 2004-12-15 | 2010-08-10 | Applied Minds, Inc. | Anti-item for deletion of content in a distributed datastore |
US11321408B2 (en) | 2004-12-15 | 2022-05-03 | Applied Invention, Llc | Data store with lock-free stateless paging capacity |
US8275804B2 (en) | 2004-12-15 | 2012-09-25 | Applied Minds, Llc | Distributed data store with a designated master to ensure consistency |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US8996486B2 (en) | 2004-12-15 | 2015-03-31 | Applied Invention, Llc | Data store with lock-free stateless paging capability |
US7437376B2 (en) | 2004-12-20 | 2008-10-14 | Microsoft Corporation | Scalable object model |
US7581168B2 (en) * | 2004-12-20 | 2009-08-25 | Microsoft Corporation | Method, system, and computer-readable medium for determining whether to reproduce chart images calculated from a workbook |
US7752632B2 (en) * | 2004-12-21 | 2010-07-06 | Microsoft Corporation | Method and system for exposing nested data in a computer-generated document in a transparent manner |
GB0428482D0 (en) * | 2004-12-30 | 2005-02-02 | Ibm | Method and apparatus for managing feedback in a group resource environment |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7793255B1 (en) * | 2005-03-01 | 2010-09-07 | Oracle America, Inc. | System and method for maintaining alternate object views |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US20060212842A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Rich data-bound application |
US7636888B2 (en) * | 2005-03-15 | 2009-12-22 | Microsoft Corporation | Verifying compatibility between document features and server capabilities |
JP4517923B2 (ja) * | 2005-03-31 | 2010-08-04 | 沖電気工業株式会社 | オブジェクト救済システム及び方法 |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US9363481B2 (en) * | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
JP4797444B2 (ja) * | 2005-05-24 | 2011-10-19 | ブラザー工業株式会社 | 情報処理装置及び情報処理プログラム |
US7543228B2 (en) | 2005-06-27 | 2009-06-02 | Microsoft Corporation | Template for rendering an electronic form |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US7613996B2 (en) | 2005-08-15 | 2009-11-03 | Microsoft Corporation | Enabling selection of an inferred schema part |
US20070043695A1 (en) * | 2005-08-16 | 2007-02-22 | Bare Ballard C | Action consolidation using hash table |
US7644403B2 (en) * | 2005-09-12 | 2010-01-05 | Oracle International Corporation | Method and system for automated root-cause analysis for class loading failures in java |
EP1785396A1 (de) * | 2005-11-09 | 2007-05-16 | Nederlandse Organisatie voor Toegepast-Natuuurwetenschappelijk Onderzoek TNO | Verfahren zur Herstellung von Metallhydroxyd |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US20070192363A1 (en) * | 2005-12-19 | 2007-08-16 | Microsoft Corporation | Document-centric application environment |
US7779343B2 (en) | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
KR100772396B1 (ko) * | 2006-02-10 | 2007-11-01 | 삼성전자주식회사 | 데이터 객체 병합 방법 및 장치 |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
US20070257354A1 (en) * | 2006-03-31 | 2007-11-08 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Code installation decisions for improving aggregate functionality |
US7552129B2 (en) * | 2006-04-26 | 2009-06-23 | International Business Machines Corporation | Automatically binding and populating a selection control with both display labels and identification values |
US7836440B2 (en) * | 2006-04-27 | 2010-11-16 | Oracle America, Inc. | Dependency-based grouping to establish class identity |
US8650541B2 (en) * | 2006-08-04 | 2014-02-11 | Apple Inc. | Graphical motion composition files and methods for formatting and organization thereof |
US20080040360A1 (en) * | 2006-08-14 | 2008-02-14 | Microsoft Corporation | Design pattern for choice types in object oriented languages |
US7769843B2 (en) | 2006-09-22 | 2010-08-03 | Hy Performix, Inc. | Apparatus and method for capacity planning for data center server consolidation and workload reassignment |
US20080091733A1 (en) * | 2006-10-16 | 2008-04-17 | Scott Shelton | Reusable data query language statements |
US20080144076A1 (en) * | 2006-10-27 | 2008-06-19 | Martin Boliek | Systems and methods for serving documents from a multifunction peripheral |
US20080126368A1 (en) * | 2006-11-24 | 2008-05-29 | Microsoft Corporation | Document Glossaries For Linking To Resources |
US9390059B1 (en) * | 2006-12-28 | 2016-07-12 | Apple Inc. | Multiple object types on a canvas |
US10318624B1 (en) | 2006-12-28 | 2019-06-11 | Apple Inc. | Infinite canvas |
US20080172597A1 (en) * | 2007-01-16 | 2008-07-17 | Siemens Medical Solutions Usa, Inc. | Data Field Referencing Text Processing System |
US20080201360A1 (en) * | 2007-02-15 | 2008-08-21 | Mirapoint, Inc. | Locating Persistent Objects In A Network Of Servers |
US20080235597A1 (en) * | 2007-03-19 | 2008-09-25 | Mor Schlesinger | Systems and methods of data integration for creating custom books |
US8132152B2 (en) * | 2007-06-08 | 2012-03-06 | Apple Inc. | Extending a scripting language to provide an object hierarchy |
US8079025B2 (en) * | 2007-06-08 | 2011-12-13 | Apple Inc. | Asynchronous load of source dependencies |
US9035948B2 (en) * | 2007-08-02 | 2015-05-19 | Adobe Systems Incorporated | Methods and systems for drawing graphics into a data chart |
US8788986B2 (en) | 2010-11-22 | 2014-07-22 | Ca, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US7957948B2 (en) * | 2007-08-22 | 2011-06-07 | Hyperformit, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US20090089653A1 (en) * | 2007-09-28 | 2009-04-02 | Microsoft Corporation | Auto-generation and syndication of tables as forms |
US8774049B2 (en) * | 2007-10-26 | 2014-07-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for use in a communications network |
US20090157841A1 (en) * | 2007-12-14 | 2009-06-18 | Microsoft Corporation | Encapsulation of online storage providers |
US20090254809A1 (en) * | 2008-04-02 | 2009-10-08 | Colorquick, L.L.C. | Objects having usage rules that exist outside of the environment in which the object is used |
US8001099B2 (en) * | 2008-05-15 | 2011-08-16 | International Business Machines Corporation | Maintaining and utilizing copy histories |
US8099721B2 (en) * | 2008-06-17 | 2012-01-17 | Microsoft Corporation | Parsing of declarations in all branches of preprocessor conditionals |
CN102124432B (zh) | 2008-06-20 | 2014-11-26 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
US9253536B2 (en) * | 2009-03-18 | 2016-02-02 | Microsoft Technology Licensing, Llc | Updating data-consuming entities |
US8131676B2 (en) * | 2009-04-03 | 2012-03-06 | Microsoft Corporation | Updating media-location data for media-playing entities |
US9135091B2 (en) * | 2009-04-03 | 2015-09-15 | Microsoft Technology Licensing, Llc | Communicating events or data between application components |
US8392840B2 (en) * | 2009-05-22 | 2013-03-05 | Microsoft Corporation | Large sets of data |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
US9411647B2 (en) * | 2010-01-22 | 2016-08-09 | Qualcomm Incorporated | Hierarchical routing and interface selection for multi-processor multimode network devices |
US10289636B2 (en) * | 2010-02-08 | 2019-05-14 | Here Global B.V. | Virtual table generator for analyzing geographic databases |
US9769016B2 (en) | 2010-06-07 | 2017-09-19 | Brocade Communications Systems, Inc. | Advanced link tracking for virtual cluster switching |
US9270486B2 (en) | 2010-06-07 | 2016-02-23 | Brocade Communications Systems, Inc. | Name services for virtual cluster switching |
US8867552B2 (en) | 2010-05-03 | 2014-10-21 | Brocade Communications Systems, Inc. | Virtual cluster switching |
US9716672B2 (en) | 2010-05-28 | 2017-07-25 | Brocade Communications Systems, Inc. | Distributed configuration management for virtual cluster switching |
US9806906B2 (en) | 2010-06-08 | 2017-10-31 | Brocade Communications Systems, Inc. | Flooding packets on a per-virtual-network basis |
US8499290B2 (en) * | 2010-06-15 | 2013-07-30 | Microsoft Corporation | Creating text functions from a spreadsheet |
US9807031B2 (en) | 2010-07-16 | 2017-10-31 | Brocade Communications Systems, Inc. | System and method for network configuration |
US9811353B1 (en) * | 2010-07-29 | 2017-11-07 | Crimson Corporation | Remotely invoking dynamic classes on a computing device |
US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
US9665601B1 (en) | 2010-12-16 | 2017-05-30 | Crimson Corporation | Using a member attribute to perform a database operation on a computing device |
US8726396B1 (en) | 2011-01-14 | 2014-05-13 | Symantec Corporation | Scanning protected files for violations of a data loss prevention policy |
US8826229B2 (en) * | 2011-06-02 | 2014-09-02 | The Mathworks, Inc. | Immutable properties in a class |
US8930888B2 (en) * | 2011-06-29 | 2015-01-06 | International Business Machines Corporation | Modelling serialized object streams |
US9736085B2 (en) | 2011-08-29 | 2017-08-15 | Brocade Communications Systems, Inc. | End-to end lossless Ethernet in Ethernet fabric |
US8990675B2 (en) * | 2011-10-04 | 2015-03-24 | Microsoft Technology Licensing, Llc | Automatic relationship detection for spreadsheet data items |
US9069748B2 (en) | 2011-10-04 | 2015-06-30 | Microsoft Technology Licensing, Llc | Selective generation and display of data items associated with a spreadsheet |
US20130111435A1 (en) * | 2011-10-28 | 2013-05-02 | Thomas W. Rudwick, III | Reducing object size by class type encoding of data |
US9053083B2 (en) * | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
US9450870B2 (en) | 2011-11-10 | 2016-09-20 | Brocade Communications Systems, Inc. | System and method for flow management in software-defined networks |
US9141393B2 (en) * | 2011-11-17 | 2015-09-22 | EnterCalo, Inc. | Business content authoring and distribution |
US8863129B2 (en) | 2011-12-06 | 2014-10-14 | International Business Machines Corporation | Automated caching and mirroring of immutable data in distributed virtual machines via native interface components |
US8995272B2 (en) | 2012-01-26 | 2015-03-31 | Brocade Communication Systems, Inc. | Link aggregation in software-defined networks |
US9742693B2 (en) | 2012-02-27 | 2017-08-22 | Brocade Communications Systems, Inc. | Dynamic service insertion in a fabric switch |
US9154416B2 (en) | 2012-03-22 | 2015-10-06 | Brocade Communications Systems, Inc. | Overlay tunnel in a fabric switch |
US9374301B2 (en) | 2012-05-18 | 2016-06-21 | Brocade Communications Systems, Inc. | Network feedback in software-defined networks |
US10277464B2 (en) | 2012-05-22 | 2019-04-30 | Arris Enterprises Llc | Client auto-configuration in a multi-switch link aggregation |
US9401872B2 (en) | 2012-11-16 | 2016-07-26 | Brocade Communications Systems, Inc. | Virtual link aggregations across multiple fabric switches |
US9413691B2 (en) | 2013-01-11 | 2016-08-09 | Brocade Communications Systems, Inc. | MAC address synchronization in a fabric switch |
US9548926B2 (en) | 2013-01-11 | 2017-01-17 | Brocade Communications Systems, Inc. | Multicast traffic load balancing over virtual link aggregation |
US20140222866A1 (en) | 2013-02-01 | 2014-08-07 | Google Inc. | Accessing objects in hosted storage |
US9565099B2 (en) | 2013-03-01 | 2017-02-07 | Brocade Communications Systems, Inc. | Spanning tree in fabric switches |
US9401818B2 (en) | 2013-03-15 | 2016-07-26 | Brocade Communications Systems, Inc. | Scalable gateways for a fabric switch |
US9699001B2 (en) | 2013-06-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Scalable and segregated network virtualization |
US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
US20150006146A1 (en) | 2013-06-28 | 2015-01-01 | Google Inc. | Omega names: name generation and derivation |
US9483508B1 (en) | 2013-06-28 | 2016-11-01 | Google Inc. | Omega names: name generation and derivation |
US9806949B2 (en) | 2013-09-06 | 2017-10-31 | Brocade Communications Systems, Inc. | Transparent interconnection of Ethernet fabric switches |
JP5592552B1 (ja) * | 2013-10-25 | 2014-09-17 | 株式会社Ubic | 文書分別調査システム及び文書分別調査方法並びに文書分別調査プログラム |
US9912612B2 (en) | 2013-10-28 | 2018-03-06 | Brocade Communications Systems LLC | Extended ethernet fabric switches |
US9548873B2 (en) | 2014-02-10 | 2017-01-17 | Brocade Communications Systems, Inc. | Virtual extensible LAN tunnel keepalives |
US10581758B2 (en) | 2014-03-19 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Distributed hot standby links for vLAG |
US10476698B2 (en) | 2014-03-20 | 2019-11-12 | Avago Technologies International Sales Pte. Limited | Redundent virtual link aggregation group |
US10063473B2 (en) | 2014-04-30 | 2018-08-28 | Brocade Communications Systems LLC | Method and system for facilitating switch virtualization in a network of interconnected switches |
US9800471B2 (en) | 2014-05-13 | 2017-10-24 | Brocade Communications Systems, Inc. | Network extension groups of global VLANs in a fabric switch |
US10616108B2 (en) | 2014-07-29 | 2020-04-07 | Avago Technologies International Sales Pte. Limited | Scalable MAC address virtualization |
US9807007B2 (en) | 2014-08-11 | 2017-10-31 | Brocade Communications Systems, Inc. | Progressive MAC address learning |
US20160065473A1 (en) * | 2014-09-02 | 2016-03-03 | Brocade Communications Systems, Inc. | Persistent storage in a switch |
US9699029B2 (en) | 2014-10-10 | 2017-07-04 | Brocade Communications Systems, Inc. | Distributed configuration management in a switch group |
US10003552B2 (en) | 2015-01-05 | 2018-06-19 | Brocade Communications Systems, Llc. | Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches |
US9942097B2 (en) | 2015-01-05 | 2018-04-10 | Brocade Communications Systems LLC | Power management in a network of interconnected switches |
US10038592B2 (en) | 2015-03-17 | 2018-07-31 | Brocade Communications Systems LLC | Identifier assignment to a new switch in a switch group |
US9807005B2 (en) | 2015-03-17 | 2017-10-31 | Brocade Communications Systems, Inc. | Multi-fabric manager |
US10579406B2 (en) | 2015-04-08 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | Dynamic orchestration of overlay tunnels |
US10439929B2 (en) | 2015-07-31 | 2019-10-08 | Avago Technologies International Sales Pte. Limited | Graceful recovery of a multicast-enabled switch |
JP6673654B2 (ja) * | 2015-08-20 | 2020-03-25 | Yamagata Intech株式会社 | 情報処理装置 |
US10171303B2 (en) | 2015-09-16 | 2019-01-01 | Avago Technologies International Sales Pte. Limited | IP-based interconnection of switches with a logical chassis |
US9912614B2 (en) | 2015-12-07 | 2018-03-06 | Brocade Communications Systems LLC | Interconnection of switches based on hierarchical overlay tunneling |
US10466867B2 (en) | 2016-04-27 | 2019-11-05 | Coda Project, Inc. | Formulas |
US10237090B2 (en) | 2016-10-28 | 2019-03-19 | Avago Technologies International Sales Pte. Limited | Rule-based network identifier mapping |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US10896030B2 (en) * | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US11115486B2 (en) * | 2018-08-08 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data re-use across documents |
CN110213367B (zh) * | 2019-05-31 | 2023-11-28 | 北京字节跳动网络技术有限公司 | 互动信息通知方法、装置、设备及计算机可读存储介质 |
RU2721960C1 (ru) * | 2019-08-02 | 2020-05-25 | Общество с ограниченной ответственностью "ПИРФ" (ООО "ПИРФ") | Компьютерно-реализуемый способ взаимодействия между компонентами и задачами операционной системы через интерфейсную шину |
US10904027B1 (en) * | 2020-03-31 | 2021-01-26 | Amazon Technologies, Inc. | Usage-based device naming and grouping |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4739477A (en) * | 1984-08-30 | 1988-04-19 | International Business Machines Corp. | Implicit creation of a superblock data structure |
US4962475A (en) * | 1984-12-26 | 1990-10-09 | International Business Machines Corporation | Method for generating a document utilizing a plurality of windows associated with different data objects |
US4674040A (en) * | 1984-12-26 | 1987-06-16 | International Business Machines Corporation | Merging of documents |
US4815029A (en) * | 1985-09-23 | 1989-03-21 | International Business Machines Corp. | In-line dynamic editor for mixed object documents |
US5249275A (en) * | 1986-04-21 | 1993-09-28 | Texas Instruments Incorporated | Apparatus and method enabling a compiled program to exactly recreate its source code |
US5072412A (en) * | 1987-03-25 | 1991-12-10 | Xerox Corporation | User interface with multiple workspaces for sharing display system objects |
US5369778A (en) * | 1987-08-21 | 1994-11-29 | Wang Laboratories, Inc. | Data processor that customizes program behavior by using a resource retrieval capability |
US4933880A (en) * | 1988-06-15 | 1990-06-12 | International Business Machines Corp. | Method for dynamically processing non-text components in compound documents |
JPH0277872A (ja) * | 1988-09-14 | 1990-03-16 | Hitachi Ltd | 文書処理プログラムを格納した記憶媒体と文書処理装置 |
CA1323448C (en) * | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
US5339423A (en) * | 1989-06-16 | 1994-08-16 | International Business Machines Corporation | System for accessing objects external to an application using tables containing path definitions |
US5297283A (en) * | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
US5551035A (en) * | 1989-06-30 | 1996-08-27 | Lucent Technologies Inc. | Method and apparatus for inter-object communication in an object-oriented program controlled system |
DE68929162T2 (de) * | 1989-07-21 | 2000-11-16 | Hewlett Packard Co | Verteilte auf Objekte basierende Systeme |
DE59005294D1 (de) * | 1989-11-29 | 1994-05-11 | Siemens Ag | Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems. |
JPH03191429A (ja) * | 1989-12-20 | 1991-08-21 | Nec Corp | オブジェクト管理方式 |
AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
AU628753B2 (en) * | 1990-08-14 | 1992-09-17 | Digital Equipment Corporation | Method and apparatus for implementing server functions in a distributed heterogeneous environment |
US5237680A (en) * | 1990-09-27 | 1993-08-17 | Sun Microsystems, Inc. | Method for incremental rename propagation between hierarchical file name spaces |
US5204947A (en) * | 1990-10-31 | 1993-04-20 | International Business Machines Corporation | Application independent (open) hypermedia enablement services |
US5191645A (en) * | 1991-02-28 | 1993-03-02 | Sony Corporation Of America | Digital signal processing system employing icon displays |
US5187786A (en) * | 1991-04-05 | 1993-02-16 | Sun Microsystems, Inc. | Method for apparatus for implementing a class hierarchy of objects in a hierarchical file system |
JP2811990B2 (ja) * | 1991-04-19 | 1998-10-15 | 三菱電機株式会社 | プログラム処理装置及びプログラム処理方法 |
US5517655A (en) * | 1991-04-26 | 1996-05-14 | Hewlett-Packard Company | Method for monitoring transactions in an object-oriented environment |
US5274803A (en) * | 1991-04-26 | 1993-12-28 | Sun Microsystems, Inc. | Method and apparatus for aligning a restored parent environment to its child environments with minimal data loss |
DE69230452T2 (de) * | 1991-08-19 | 2000-08-24 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur Änderungskontrolle in mehreren Entwicklungsumgebungen |
JP3191429B2 (ja) | 1992-09-02 | 2001-07-23 | 富士通テン株式会社 | 電子機器の挿排装置 |
WO1994011810A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | A method and system for marshalling interface pointers for remote procedure calls |
US5805885A (en) * | 1992-12-24 | 1998-09-08 | Microsoft Corporation | Method and system for aggregating objects |
US5535389A (en) * | 1993-01-26 | 1996-07-09 | International Business Machines Corporation | Business process objects with associated attributes such as version identifier |
US5446842A (en) * | 1993-02-26 | 1995-08-29 | Taligent, Inc. | Object-oriented collaboration system |
US5369766A (en) * | 1993-03-25 | 1994-11-29 | Taligent, Inc. | Object-oriented loader system with support for different load formats |
US5459865A (en) * | 1993-04-05 | 1995-10-17 | Taligent Inc. | Runtime loader |
US5408665A (en) * | 1993-04-30 | 1995-04-18 | Borland International, Inc. | System and methods for linking compiled code with extended dictionary support |
US5848234A (en) * | 1993-05-21 | 1998-12-08 | Candle Distributed Solutions, Inc. | Object procedure messaging facility |
US5887172A (en) * | 1996-01-10 | 1999-03-23 | Sun Microsystems, Inc. | Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends |
-
1993
- 1993-07-06 KR KR1019930012598A patent/KR100287045B1/ko not_active IP Right Cessation
- 1993-07-06 CA CA002099918A patent/CA2099918C/en not_active Expired - Lifetime
- 1993-07-06 AT AT93110799T patent/ATE187268T1/de not_active IP Right Cessation
- 1993-07-06 US US08/088,724 patent/US5581760A/en not_active Expired - Lifetime
- 1993-07-06 EP EP99104967A patent/EP0930566A3/de not_active Withdrawn
- 1993-07-06 DE DE69327138T patent/DE69327138T2/de not_active Expired - Lifetime
- 1993-07-06 EP EP93110799A patent/EP0578207B1/de not_active Expired - Lifetime
- 1993-07-06 JP JP16713993A patent/JP3613401B2/ja not_active Expired - Lifetime
-
1995
- 1995-06-06 US US08/467,065 patent/US5689703A/en not_active Expired - Lifetime
- 1995-06-06 US US08/467,917 patent/US5740439A/en not_active Expired - Lifetime
- 1995-06-06 US US08/470,055 patent/US5842018A/en not_active Expired - Lifetime
- 1995-06-07 US US08/474,330 patent/US5682536A/en not_active Expired - Lifetime
-
1997
- 1997-08-20 US US08/916,999 patent/US6263379B1/en not_active Expired - Fee Related
-
2001
- 2001-05-29 US US09/867,853 patent/US6519764B1/en not_active Expired - Fee Related
-
2002
- 2002-10-29 US US10/283,627 patent/US7150024B2/en not_active Expired - Fee Related
-
2006
- 2006-07-03 US US11/481,154 patent/US20070061816A1/en not_active Abandoned
- 2006-07-03 US US11/481,345 patent/US7441253B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20070061817A1 (en) | 2007-03-15 |
EP0930566A3 (de) | 2006-07-05 |
US7441253B2 (en) | 2008-10-21 |
DE69327138D1 (de) | 2000-01-05 |
US5842018A (en) | 1998-11-24 |
US5689703A (en) | 1997-11-18 |
JPH06195339A (ja) | 1994-07-15 |
KR940006027A (ko) | 1994-03-22 |
JP3613401B2 (ja) | 2005-01-26 |
EP0930566A2 (de) | 1999-07-21 |
US5682536A (en) | 1997-10-28 |
CA2099918A1 (en) | 1994-01-07 |
US6263379B1 (en) | 2001-07-17 |
US20070061816A1 (en) | 2007-03-15 |
US5581760A (en) | 1996-12-03 |
US5740439A (en) | 1998-04-14 |
KR100287045B1 (ko) | 2001-04-16 |
US20030200504A1 (en) | 2003-10-23 |
ATE187268T1 (de) | 1999-12-15 |
EP0578207A2 (de) | 1994-01-12 |
CA2099918C (en) | 2002-11-19 |
EP0578207B1 (de) | 1999-12-01 |
US7150024B2 (en) | 2006-12-12 |
US6519764B1 (en) | 2003-02-11 |
EP0578207A3 (de) | 1995-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69327138T2 (de) | Verfahren zur Namensgebung und zur Bindung von Objekten | |
DE69309485T2 (de) | Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe | |
DE69425318T2 (de) | Verfahren und System für Fernausführung von Codes | |
DE69630480T2 (de) | Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung | |
DE69533530T2 (de) | Verfahren und System zur dynamischen Aggregation von Objekten | |
DE69615978T2 (de) | Verfahren und Vorrichtung zum Verpackung und Entpackung von Daten in objectreferenzspezifischen Datenformaten anhand generischen Stubs | |
DE69425699T2 (de) | Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell | |
DE69637436T2 (de) | Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen | |
DE69621975T2 (de) | Verfahren und System zum Ermöglichen der Zusammenarbeit von zur Ausführung auf unterschiedlichen Betriebssystemen geschriebenen Prozessen | |
DE69727381T2 (de) | Verfahren zum transportieren von in einer schnittstellendefinitionssprache definierten datenstrukturen zwischen heterogenen systemen | |
DE69424744T2 (de) | Verfahren und System zur Verwaltung von Komponentenverbindungen | |
DE69424597T2 (de) | Erweiterbares Dateiensystem | |
DE69609516T2 (de) | Verfahren zur verwaltung dynamischer relationen zwischen objekten in dynamisch objektorientierten programmiersprachen | |
DE69032191T2 (de) | Anordnung und Verfahren zur Realisierung von Hochleistungskommunikation zwischen Softwareprozessen | |
DE60126016T2 (de) | Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen | |
DE69622144T2 (de) | Allgemeines Fernprozeduraufrufsystem und allgemeines Fernprozeduraufrufverfahren | |
DE69715494T2 (de) | Internetfähiges Portfolioverwaltungssystem, Verfahren und Programmprodukt | |
DE69531119T2 (de) | Datentransfer mit erweitertem Format für die Zwischenablage | |
DE69636887T2 (de) | System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen | |
DE69328162T2 (de) | Gerät und Verfahren zum Verfügbarstellen eines Teiles eines Namensraumes als ein Teil eines anderen Namensraumes | |
DE69112156T2 (de) | Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen. | |
DE69625948T2 (de) | Kompiler mit generischem Front-End und dynamisch ladbaren Back-Ends | |
DE69131745T2 (de) | Verfahren und Gerät zum Verschaffen einer Kundenschnittstelle zu einem objektorientierten Aufruf eines Anwendungsprogramms | |
DE69719620T2 (de) | Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien | |
DE69425548T2 (de) | Verfahren und Vorrichtung zur dynamischen Objektverbindungserzeugung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |