DE69327138T2 - Verfahren zur Namensgebung und zur Bindung von Objekten - Google Patents

Verfahren zur Namensgebung und zur Bindung von Objekten

Info

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
Application number
DE69327138T
Other languages
English (en)
Other versions
DE69327138D1 (de
Inventor
Robert G. Atkinson
Edward K. Jung
Antony S. Williams
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE69327138D1 publication Critical patent/DE69327138D1/de
Application granted granted Critical
Publication of DE69327138T2 publication Critical patent/DE69327138T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-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

    Gebiet der Erfindung
  • 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.
  • Beschreibung des Standes der Technik
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung der Erfindung
  • 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.
  • Tabelle 1
  • 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.
DE69327138T 1992-07-06 1993-07-06 Verfahren zur Namensgebung und zur Bindung von Objekten Expired - Lifetime DE69327138T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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