DE60035677T2 - Verfahren und system zur klientenverfolgung - Google Patents

Verfahren und system zur klientenverfolgung Download PDF

Info

Publication number
DE60035677T2
DE60035677T2 DE60035677T DE60035677T DE60035677T2 DE 60035677 T2 DE60035677 T2 DE 60035677T2 DE 60035677 T DE60035677 T DE 60035677T DE 60035677 T DE60035677 T DE 60035677T DE 60035677 T2 DE60035677 T2 DE 60035677T2
Authority
DE
Germany
Prior art keywords
function
server
phantom
client
class
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
DE60035677T
Other languages
English (en)
Other versions
DE60035677D1 (de
Inventor
Richard Seattle HASHA
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.)
GATES III
Gates III William H Medina
Original Assignee
GATES III
Gates III William H Medina
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
Priority claimed from US09/322,962 external-priority patent/US6684246B1/en
Priority claimed from US09/322,852 external-priority patent/US6993771B1/en
Priority claimed from US09/322,643 external-priority patent/US7039943B1/en
Priority claimed from US09/322,457 external-priority patent/US6970925B1/en
Priority claimed from US09/322,965 external-priority patent/US6704924B1/en
Priority claimed from US09/322,455 external-priority patent/US6721898B1/en
Priority claimed from US09/322,207 external-priority patent/US6670934B1/en
Priority claimed from US09/322,964 external-priority patent/US7617453B1/en
Priority claimed from US09/322,459 external-priority patent/US6466234B1/en
Application filed by GATES III, Gates III William H Medina filed Critical GATES III
Publication of DE60035677D1 publication Critical patent/DE60035677D1/de
Application granted granted Critical
Publication of DE60035677T2 publication Critical patent/DE60035677T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/155Coordinated control of two or more light sources
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/175Controlling the light source by remote control
    • H05B47/18Controlling the light source by remote control via data-bus transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/165Controlling the light source following a pre-assigned programmed sequence; Logic control [LC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Circuit Arrangement For Electric Light Sources In General (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Paints Or Removers (AREA)
  • Heat Sensitive Colour Forming Recording (AREA)
  • Vehicle Interior And Exterior Ornaments, Soundproofing, And Insulation (AREA)
  • Selective Calling Equipment (AREA)
  • Radio Relay Systems (AREA)
  • Discharge-Lamp Control Circuits And Pulse- Feed Circuits (AREA)
  • Inks, Pencil-Leads, Or Crayons (AREA)
  • Telephone Function (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Processing Or Creating Images (AREA)

Description

  • Die Offenlegung betrifft im Allgemeinen objektorientierte Programmiertechniken und im Besonderen ein System zum automatischen Verfolgen von Clientreferenzen auf einen Server.
  • Es war bisher ein Ziel der Softwareindustrie, Standardsoftwarekomponenten zu entwickeln, die wiederverwendet werden können und die einfach kombiniert werden können, um komplexe Systeme zu bilden. Es besteht die Vorstellung, dass die von diesen Softwarekomponenten bereitgestellte Funktionalität zu einem großen Teil auf dieselbe Weise beschrieben werden würde, wie ein Datenblatt eine Hardwarekomponente (z. B. einen Spezial-Telekommunikations-Chip) beschreibt. Es wurden bisher verschiedene Objektmodelle definiert, die einen Standard-Verbindungsmechanismus zwischen Softwarekomponenten bereitstellen. Unter diesen Objektmodellen sind Softwarekomponenten „Objekte" in dem objektorientierten Sinn und die Softwarekomponenten stellen „Interfaces" bereit, über die auf ihre Funktionalität zugegriffen werden kann. Durch Verwendung von Interfaces können Objekte ihre Funktionalität unabhängig von der Implementierung der Funktionalität offenbaren. In der Programmiersprache C++ ist ein Interface eine abstrakte Klasse, deren virtuelle Funktionen alle rein sind. Eine reine virtuelle Funktion ist eine Funktion, die keine Implementierung in der Klasse aufweist. Somit definiert ein Interface lediglich die Reihenfolge der virtuellen Funktionen in der Klasse und die Signaturen der virtuellen Funktionen, aber nicht ihre Implementierungen. Das Folgende ist ein Beispiel für ein Interface:
    Figure 00010001
  • Dieses „IShape" genannte Interface hat drei virtuelle Funktionen: Draw, Save und Clear. Das „=0" nach der Formalparameterliste zeigt an, dass jede virtuelle Funktion rein ist.
  • Konzepte der Programmiersprache C++, die objektorientiertes Programmieren unterstützen, werden beschrieben in „The Annotated C++ Reference Manual" von Ellis und Stroustrup, das 1990 von der Addison-Wesley Publishing Company veröffentlicht wurde und hiermit als Bezug aufgenommen wird.
  • Sobald ein Interface definiert ist, können Programmierer Programme schreiben, um unabhängig von der Implementierung auf die Funktionalität zuzugreifen. Somit kann eine Implementierung geändert oder ersetzt werden, ohne dass die Programme, die das Interface verwenden, modifiziert werden müssen. Zum Beispiel kann die Funktion Save (Speichern) des IShape-Interfaces eine Implementierung aufweisen, die die Forminformationen in einer Datei in einem lokalen Dateisystem speichert. Eine andere Implementierung kann die Forminformationen in einem Datei-Server speichern, auf den über das Internet zugegriffen werden kann.
  • Um sicherzustellen, dass eine Implementierung die korrekte Reihenfolge und die korrekten Signaturen der Funktionen eines Interfaces bereitstellt, erbt die Klasse, die die Interfaces implementiert, das Interface. Das Folgende ist ein Beispiel für eine Klassendefinition, die das IShape-Interface implementiert.
  • Figure 00020001
  • Die erste Zeile der Klassendefinition zeigt durch das „: IShape" an, dass die Shape-Klasse das IShape-Interface erbt. Die Auslassungspunkte zwischen den geschweiften Klammern zeigen Quellcode an, der die virtuellen Funktionen implementiert. Die Shape-Klasse definiert zusätzlich zu dem Bereitstellen einer Implementierung der von dem IShape-Interface geerbten drei virtuellen Funktionen außerdem eine neue virtuelle Funkti on „internal_save" (d. h. führt sie ein), die von einer der Implementierungen der anderen virtuellen Funktionen aufgerufen werden kann. Die Shape-Klasse definiert außerdem zwei ganzzahlige Datenelemente x und y.
  • Typische C++-Compiler erzeugen virtuelle Funktionstabellen, um den Aufruf virtueller Funktionen zu unterstützen. Wenn ein Objekt für eine Klasse instanziiert wird, erzeugt ein solcher C++-Compiler eine Datenstruktur, die die Datenelemente des Objekts enthält und die einen Zeiger auf eine virtuelle Funktionstabelle enthält. Die virtuelle Funktionstabelle enthält die Adresse jeder virtuellen Funktion, die für die Klasse definiert ist. 1 stellt eine Musterobjektgestaltung für ein Objekt der Shape-Klasse dar. Die Objektdatenstruktur 101 enthält einen Zeiger auf eine virtuelle Funktionstabelle und die Datenelemente x und y. Die virtuelle Funktionstabelle 102 enthält einen Eintrag für jede virtuelle Funktion. Jeder Eintrag enthält die Adresse der entsprechenden virtuellen Funktion. Zum Beispiel enthält der erste Eintrag in der virtuellen Funktionstabelle die Adresse der Draw-Funktion 103. Die Reihenfolge der Referenzen in der virtuellen Funktionstabelle ist dieselbe wie diejenige, die in dem geerbten Interface definiert wird, auch wenn die Shape-Klasse diese drei Funktionen in einer unterschiedlichen Reihenfolge definiert. Im Besonderen kommt die Referenz auf die Funktion Draw zuerst, gefolgt von den Referenzen auf die Funktionen Save und Clear.
  • Die Vererbung von Interfaces ermöglicht, dass Referenzen auf Objekte, die die Interfaces implementieren, auf eine von der Implementierung unabhängigen Weise weitergeleitet werden können. Eine Routine, die eine Implementierung verwendet, kann ein formales Argument definieren, dass ein Zeiger auf das IShape-Interface ist. Dem Entwickler der Routine könnte nicht bekannt sein, dass die Implementierung tatsächlich die Shape-Klasse ist. Um eine Referenz auf ein Objekt der Shape-Klasse weiterzuleiten, würde ein Programm, dass die Routine aufruft, den Typ eines Zeigers auf das Objekt der Shape-Klasse zu einem Zeiger auf das IShape-Interface umwandeln. Solange der Zeiger auf einen Ort zeigt, der die Adresse der virtuellen Funktionstabelle enthält, und die virtuelle Funktionstabelle die Einträge in der spezifizierten Reihenfolge enthält, kann die aufgerufene Routine korrekt auf die von dem IShape-Interface definierten virtuellen Funktionen zugreifen.
  • Ein populäres Objektmodell, das einen Mechanismus zum Verbinden von Komponenten spezifiziert, ist das Component Object Model („COM") von Microsoft. COM wird in dem 1997 von Microsoft Press veröffentlichten „Inside COM" von Dale Rogerson ausführlicher beschrieben. COM spezifiziert, dass jedes Objekt ein Interface implementieren muss, das als das IUknown-Interface bezeichnet wird. Das IUnknown-Interface stellt eine Abfrage-Interfacefunktion (Querylnterface), eine Referenzhinzufügungsfunktion (AddRef) und eine Ausgabefunktion (Release) bereit. Der Abfrage-Interfacefunktion wird der Identifier eines Interfaces, das das Objekt unterstützt, zugeleitet und sie sendet eine Referenz auf das Interface zurück. Die Funktionen AddRef und Release werden zur Referenzzählung des Objekts verwendet. Jedes Objekt, das COM entspricht, implementiert das IUknown-Interface.
  • Ein Clientobjekt, das das Instanziieren eines COM-Objekts anfordert, kann im Gegenzug einen Zeiger auf das IUknown-Interface empfangen. Der Client kann dann die Abfrage-Interfacefunktion aufrufen, indem der Identifier eines anderen Interfaces, das durch dieses COM-Objekt unterstützt wird, weitergeleitet wird. Die Abfrage-Interfacefunktion sendet einen Zeiger auf das angeforderte Interface zurück. Der Client kann dann den Zeiger verwenden, um eine der Funktionen des angeforderten Interfaces aufzurufen. Wie oben erwähnt, erbt jedes Interface eines COM-Objekts das IUknown-Interface. Somit stellt jedes dieser Interfaces Zugriff auf andere Interfaces bereit und stellt Referenzzählung bereit. Immer dann, wenn ein Client einen Zeiger auf ein Interface eines COM-Objekts dupliziert, wird von dem Client erwartet, die Referenzhinzufügungsfunktion aufzurufen, die die Referenzzählung zu diesem COM-Objekt inkrementiert. Immer dann, wenn ein Client einen Zeiger auf ein Interface zu einem COM-Objekt nicht mehr benötigt, wird von dem Client erwartet, die Ausgabefunktion aufzurufen, die die Referenzzählung zu diesem COM-Objekt dekrementiert und das COM-Objekt zerstört, wenn die Referenzzählung auf 0 geht.
  • 2A ist ein Blockdiagramm, das herkömmliche Verbindungen zwischen einem Serverobjekt und Clientobjekten darstellt. Bei diesem Beispiel enthält das Serverobjekt 2A01 ein Interface 2A02. Sobald das Serverobjekt instanziiert ist, können verschiedene Clientobjekte 2A03 bis 2A06 unter Verwendung der Abfrage-Interfacefunktion einen Zeiger auf ein Interface des Serverobjekts anfordern. Dem Serverobjekt kann es unmöglich sein, festzustellen, welches Clientobjekt eine Funktion des Interfaces aufruft. Wenn zum Beispiel das Clientobjekt 2A03 eine Funktion aufruft, kann das Serverobjekt nicht bestimmen, ob es das Clientobjekt 2A03 oder das Clientobjekt 2A04 ist, das die Funktion aufruft. Einige Serverobjekte können so entwickelt sein, dass sie das einzelne Clientobjekt, das eine Funktion aufruft, feststellen können. Solche Serverobjekte können jedes Clientobjekt mit seinem eigenen Identifier versehen. Zum Beispiel kann, nachdem ein Clientobjekt eine Abfrage-Interfacefunktion des Serverobjekts aufruft, um einen Zeiger auf ein Interface abzurufen, das Clientobjekt per Konvention dann eine Funktion dieses Interfaces aufrufen, wobei diese einen eindeutigen Identifier für dieses Clientobjekt zurücksendet. Wenn das Clientobjekt nachfolgend eine Funktion des Interfaces aufruft, leitet das Clientobjekt seine eindeutige Kennung so weiter, dass das Serverobjekt jeden Client, der eine Funktion aufruft, eindeutig feststellen kann.
  • Solche Serverobjekte, die Clients eindeutig feststellen können, weisen einige Nachteile auf. Erstens sind die Kosten der Entwicklung solcher Serverobjekte auf Grund des zusätzlichen Codes, der zum Unterstützen der eindeutigen Kennungen von Clientobjekten erforderlich ist, erhöht. Zweitens muss jedes Clientobjekt dazu programmiert werden, seine eindeutige Kennung zu empfangen und bereitzustellen. Es wäre wünschenswert, eine Technik zu haben, bei der bestehende Serverobjekte so verwendet werden können, dass jedes Clientobjekt einzeln festgestellt werden kann, wenn es eine Funktion aufruft. Es wäre außerdem nützlich, wenn eine solche Technik keine Modifizierung an bestehenden Serverklassendefinitionen und Clientklassendefinitionen erfordern würde.
  • 2B stellt ein typisches Erben einer Serverklasse (d. h. Server) durch eine Ableitungs-Serverklasse (d. h. DServer) dar. Bei diesem Beispiel erbt eine Instanz der Serverklasse 2B01 das IUnknown-Interface und enthält Datenelemente 2B02 und Funktionselemente 2B03. Die Funktionselemente können die Funktionen der IUknown-Interface und verschiedene andere Funktionen (z. B. func1) enthalten. Die DServer-Klasse 2B04 erbt die Serverklasse und enthält Datenelemente 2B05 und Funktion 2B06. Die Datenelemente enthalten die geerbten Datenelemente von der Serverklasse und andere Datenelemente, die in die DServer-Klasse eingeführt werden können. Die Funktionen enthaften die geerbten Funktionen von der Serverklasse und andere Funktionen, die in die DServer-Klasse eingeführt werden können. Die DServer-Klasse stellt Implementierungen für jede eingeführte Funktion bereit und kann übergeordnete Implementierungen für die geerbten Funktionen bereitstellen.
  • WO 94/11810 beschreibt ein Computerverfahren und -system zum Weiterleiten eines Zeigers auf ein Interface von einem Serverprozess zu einem Clientprozess. Bei einer bevorzugten Ausführung instanziiert der Serverprozess ein Objekt, das mehrere Interfaces aufweist. Der Serverprozess stellt ein Interface zum Weiterleiten zu dem Clientprozess fest und erzeugt ein Stub-Objekt zum Empfangen einer Anforderung zum Aufrufen eines Funktionselements des Interfaces und zum Aufrufen des angeforderten Funktionselements bei Empfangen der Anforderung. Der Serverprozess sendet dann einen Identifier des Stub zu dem Clientprozess. Wenn der Clientprozess den Identifier des Stub empfängt, instanziiert er ein Proxy-Objekt zum Empfangen von Anforderungen zum Aufrufen eines Funktionselements des Interfaces und zum Senden der Anforderung zu dem festgestellten Stub. Der Clientprozess kann dann die Funktionselemente des Interfaces durch Aufrufen von Funktionselementen des Proxy-Objekts aufrufen. Das Proxy-Objekt sendet eine Anforderung zu dem festgestellten Stub. Der festgestellte Stub ruft dann das entsprechende Funktionselement des Interfaces auf.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und System zum Verfolgen von Zugriff auf ein Serverobjekt durch einen Client für jeden einzelnen Client bereitzustellen, wobei das Serverobjekt Referenzen für Clients über eine Abfragefunktion bereitstellt.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche erfüllt. Bevorzugte Ausführungen sind der Gegenstand der abhängigen Ansprüche.
  • Nach der vorliegenden Erfindung wird ein Verfahren und System zum Verfolgen von Zugriff auf ein Serverobjekt einer Serverklasse durch Clients bereitgestellt. Bei einer Ausführung stellt das Clientverfolgungssystem eine abgeleitete Clientverfolgungs-Serverklasse bereit, die eine übergeordnete Implementierung einer Abfragefunktion der Serverklasse einschließt. Die übergeordnete Implementierung instanziiert ein Phantom-Serverobjekt und sendet einen Zeiger auf das instanziierte Phantom-Serverobjekt zurück. Das Phantom-Serverobjekt weist Funktionen auf, die den Funktionen der Serverklasse entsprechen und diesen übergeordnet sind. Diese übergeordneten Funktionen führen spezifische Verarbeitung für jeden einzelnen Client durch und leiten ihren Aufruf zu den entsprechenden Funktionen des Serverobjekts weiter. Wenn ein Client die Abfragefunktion des Clientverfolgungs-Serverobjekts aufruft, wird ein Zeiger auf ein Phan tom-Serverobjekt zurückgesendet. Von da ab kann, wenn dieser Client eine Funktion des Phantom-Serverobjekts aufruft, spezifische Verarbeitung für diesen Client durchgeführt werden.
  • Bei einer Ausführung spezifiziert das Clientverfolgungssystem eine Phantom-Managerklasse zum Steuern der Instanziierung und Zerstörung der Phantom-Serverobjekte. Die Phantom-Managerklasse kann eine Erzeugungsfunktion bereitstellen, die, wenn sie von der Abfragefunktion des Clientverfolgungs-Serverobjekts aufgerufen wird, ein Phantom-Serverobjekt instanziiert und einen Zeiger auf das Phantom-Serverobjekt zurücksendet. Die Phantom-Managerklasse kann außerdem eine Phantom-Going-away-Funktion bereitstellen, die, wenn sie von einem Destruktor eines Phantom-Serverobjekts aufgerufen wird, spezifische Verarbeitung bei Zerstörung eines Phantom-Serverobjekts durchführt. Ein Entwickler, der Clientzugriffe auf eine bereits definierte Serverklasse verfolgen will, kann eine Ableitung der Serverklasse spezifizieren, die als eine „Clientverfolgungs-Serverklasse" bezeichnet wird. Der Entwickler kann eine übergeordnete Funktion der Abfragefunktion als Teil der Clientverfolgungs-Serverklasse bereitstellen. Der Entwickler kann außerdem eine Implementierung der Erzeugungsfunktion und der Phantom-Goingaway-Funktion der Phantom-Managerklasse bereitstellen, die auf die Serverklasse zugeschnitten sind. Zusätzlich kann der Entwickler Implementierungen der Funktionen der Serverklasse als Teil des Phantom-Serverobjekts bereitstellen. Diese Implementierungen von Funktionen des Phantom-Serverobjekts können die gewünschte spezifische Verarbeitung für jeden einzelnen Client durchführen.
  • 1 stellt eine Musterobjektgestaltung für ein Objekt der Shape-Klasse dar.
  • 2A ist ein Blockdiagramm, das herkömmliche Verbindungen zwischen einem Serverobjekt und seinen Clientobjekten darstellt.
  • 2B stellt ein typisches Erben einer Serverklasse (d. h. Server) durch eine Ableitungs-Serverklasse (d. h. DServer) dar.
  • 3 ist ein Blockdiagramm, das Komponenten des Clientverfolgungssystems bei einer Ausführung darstellt.
  • 4 ist ein Blockdiagramm, das Komponenten des Clientverfolgungssystems einer Ausführung ausführlicher darstellt.
  • 5 ist ein Blockdiagramm, das eine Beispielobjektgestaltung der Clientverfolgungs-Serverklasse darstellt.
  • 6 ist ein Blockdiagramm, das eine Beispielobjektgestaltung für die Phantom-Managerklasse darstellt.
  • 7 ist ein Blockdiagramm, das die Objektgestaltung der Phantom-Serverklasse darstellt.
  • 8 ist ein Diagramm, das die Verarbeitung darstellt, um einen Zeiger auf ein Phantom-Serverobjekt statt auf das Serverobjekt selbst zu einem Client zurückzusenden.
  • 9 ist ein Diagramm, das die Verarbeitung zum Ausgeben eines Zeigers auf ein Phantom-Serverobjekt darstellt.
  • 10 ist ein Diagramm, das das Weiterleiten eines Funktionsaufrufs von einer Phantom-Serverfunktion zu einer Clientverfolgungs-Serverfunktion darstellt.
  • 11 ist ein Flussdiagramm einer Beispielimplementierung der Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse.
  • 12 ist ein Flussdiagramm einer Beispielimplementierung des Konstruktors der Phantom-Managerklasse.
  • 13 ist ein Flussdiagramm einer Beispielimplementierung der Erzeugungsfunktion der Phantom-Managerklasse.
  • 14 ist ein Flussdiagramm einer Beispielimplementierung der Instanz-Erzeugungsfunktion der Phantom-Managerklasse.
  • 15 ist ein Flussdiagramm einer Beispielimplementierung der Phantom-Going-away-Funktion der Phantom-Managerklasse.
  • 16 ist ein Flussdiagramm einer Beispielimplementierung des Konstruktors der Phantom-Serverklasse.
  • 17 ist ein Flussdiagramm einer Beispielimplementierung des Destruktors der Phantom-Serverklasse.
  • 18 ist ein Flussdiagramm einer Beispielimplementierung der Abfrage-Interfacefunktion der Phantom-Serverklasse.
  • 19 ist ein Flussdiagramm einer Beispielimplementierung der Referenzhinzufügungsfunktion der Phantom-Serverklasse.
  • 20 ist ein Flussdiagramm einer Beispielimplementierung der Ausgabefunktion der Phantom-Serverklasse.
  • 21 ist ein Flussdiagramm einer Beispielimplementierung einer Funktion der Phantom-Serverklasse, die von dem Interface der Serverklasse geerbt wird.
  • Ein Verfahren und System zum Verfolgen von Zugriff auf ein Serverobjekt durch Clients wird bereitgestellt. Das Clientverfolgungssystem ermöglicht, dass der Zugriff auf ein Serverobjekt für jeden einzelnen Client verfolgt werden kann, wobei dies bei einer Ausführung ohne Modifizierung der Serverklassendefinition erfolgt. Das Clientverfolgungssystem stellt eine Clientverfolgungs-Serverklasse bereit, die eine Ableitung der Serverklasse ist. Die Clientverfolgungs-Serverklasse enthält eine Implementierung einer Abfrage-Interfacefunktion, die der Abfrage-Interfacefunktion der Serverklasse übergeordnet ist.
  • Wenn die Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse aufgerufen wird, instanziiert sie ein Phantom-Serverobjekt, das eine Implementierung desselben Interfaces, wie es von der Serverklasse bereitgestellt wird, bereitstellt (d. h. „IServer"). Die Abfrage-Interfacefunktion sendet einen Zeiger auf das Phantom-Serverobjekt zurück.
  • Wenn der Client eine Funktion des Phantom-Serverobjekts aufruft, kann diese Funktion spezifische Verarbeitung durchführen und den Aufruf zu der entsprechenden Funktion des Clientverfolgungs-Serverobjekts weiterleiten. Die spezifische Verarbeitung kann zum Beispiel ein Verfolgen, welcher Client eine bestimmte Funktion aufruft, und dann Durchführen eines anderen Verhaltens, wenn derselbe Client eine andere Funktion aufruft, einschließen. Die spezifische Verarbeitung kann jedoch eine Verarbeitung einschließen, die abhängt von dem Feststellen, ob ein bestimmter Client eine bestimmte Funktion der Serverklasse aufruft.
  • Bei einer Ausführung stellt das Clientverfolgungssystem eine Phantom-Serverklasse bereit, die Funktionen enthält, die den Funktionen der Serverklasse entsprechen und dieselbe Signatur wie diese aufweisen. Das Clientverfolgungssystem stellt außerdem eine Phantom-Managerklasse zum Instanziieren von Phantom-Serverobjekten, zum Verfolgen der Phantom-Serverobjekte und zum Zurücksenden von Zeigern auf die Phantom-Serverobjekte bereit. Die Phantom-Managerklasse kann eine Erzeugungsfunktion aufweisen, die, wenn sie von dem Clientverfolgungs-Serverobjekt aufgerufen wird, ein Phantom-Serverobjekt instanziiert. Die Phantom-Managerklasse kann außerdem ein Instanz-Going-away-Funktion aufweisen, die aufgerufen wird, wenn ein Phantom-Serverobjekt zerstört wird, so dass spezifische Verarbeitung durchgeführt werden kann, wenn ein Client eine Referenz auf ein Phantom-Serverobjekt ausgibt, die verursacht, dass die Referenzzählung auf 0 geht. Die Phantom-Managerklasse kann außerdem eine Instanz-Erzeugungsfunktion aufweisen, die spezifisch eingerichtet ist, um eine Instanz eines bestimmten Clientverfolgungs-Serverobjekts zu erzeugen. Wenn die Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts aufgerufen wird, ruft sie die Erzeugungsfunktion des Phantom-Managerobjekts auf, die wiederum die Instanz-Erzeugungsfunktion aufruft. Die Instanz-Erzeugungsfunktion des Phantom-Managerobjekts ist so zugeschnitten, dass sie eine Instanz des Phantom-Serverobjekts für das spezifische Clientverfolgungs-Serverobjekt erzeugt. Die Abfrage-Interfacefunktion sendet einen Zeiger auf dieses Phantom-Serverobjekt zurück. Wenn der Zeiger auf das Phantom-Serverobjekt ausgegeben wird und die Referenzzählung auf 0 geht, ruft der Destruktor des Phantom-Serverobjekts die Going-away-Funktion des Phantom-Managerobjekts auf. Die Phantom-Going-away-Funktion führt eine spezifische Verarbeitung durch, die bei Zerstörung eines Phantom-Serverobjekts benötigt wird.
  • 3 ist ein Blockdiagramm, das Komponenten des Clientverfolgungssystems bei einer Ausführung darstellt. Die Komponenten schließen ein Clientverfolgungs-Serverobjekt 301 und Phantom-Serverobjekte 302 bis 304, auf die durch die Clientobjekte 305 bis 307 zugegriffen wird, ein. Die Clientverfolgungs-Serverklasse erbt die Serverklasse und stellt die Clientverfolgungsfunktionalität bereit. Das Clientverfolgungs-Serverobjekt stellt sein Interface über die Phantom-Serverobjekte für Clientobjekte bereit. Das heißt, dass jedes Clientobjekt, wenn es ein Interface von dem Clientverfolgungs-Serverobjekt anfordert, mit einem Zeiger auf ein Interface eines Phantom-Serverobjekts statt auf das Interface des Clientverfolgungs-Serverobjekts versehen wird. Wann immer ein Clientobjekt die Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts oder eine Abfrage-Interfacefunktion eines Phantom-Serverobjekts aufruft, sendet die Funktion einen Zeiger auf ein Phantom-Serverobjekt zurück. Ein Phantom-Serverobjekt erbt ein IServer-Interface effektiv so, dass es Funktionen mit derselben Signatur und mit derselben Reihenfolge der Serverklasse enthält. Im Allgemeinen leiten die Funktionen der Phantom-Serverobjekte ihre Aufrufe zu dem Clientverfolgungs-Serverobjekt weiter. Die Funktionen eines Phantom-Serverobjekts können spezifische Verarbeitung durchführen, bevor oder nachdem sie die entsprechende Funktion des Clientverfolgungs-Serverobjekts aufrufen. Auf diese Weise können die Phantom-Serverfunktionen spezialisierte Verarbeitung für jedes Clientobjekt durchführen. Wenn ein Clientobjekt einen Zeiger dupliziert, dann würde das Clientverfolgungssystem in Betracht ziehen, dass beide Zeiger zu demselben Clientobjekt gehören, auch wenn das Clientobjekt den duplizierten Zeiger zu einem anderen Objekt sendet. Das Clientverfolgungssystem kann auf einem herkömmlichen Computersystem, das eine Zentraleinheit, einen Speicher und Ein-/Ausgabe-Vorrichtungen enthält, implementiert werden. Zusätzlich können die Clientobjekte und das Serverobjekt in demselben Prozess oder in unterschiedlichen Prozessen, die auf unterschiedlichen Computersystem ausführen können, instanziiert werden. Die Komponenten des Clientverfolgungssystems können auf einem computerlesbaren Medium, wie Speicher, Platte oder CD-ROM, gespeichert werden, und können über ein computerlesbares Datenübertragungsmedium übertragen werden. Da auf diese Datenstrukturen durch mehrere Ausführungs-Threads gleichzeitig zugegriffen werden kann, wird eine Gleichzeitigkeitsverwaltungstechnik beim Zugriff auf diese Datenstrukturen verwendet. Wenn zum Beispiel auf die Datenstrukturen zugegriffen wird, kann ein Thread die Datenstruktur sperren und sie entsperren, wenn der Zugriff abgeschlossen ist. Im Folgen den werden bei der Beschreibung der Funktionen, die auf diese Datenstrukturen zugreifen, diese wohlbekannten Gleichzeitigkeitsverwaltungstechniken weggelassen.
  • 4 ist ein Blockdiagramm, das Komponenten des Clientverfolgungssystems einer Ausführung ausführlicher darstellt. Die Komponenten enthalten ein Clientverfolgungs-Serverobjekt 401, ein Phantom-Managerobjekt 402 und Phantom-Serverobjekte 403. Die Serverklasse, bei denen der Zugriff durch Clientobjekte zu verfolgen ist, ist eine Basisklasse der Clientverfolgungs-Serverklasse. Die Clientverfolgungs-Serverklasse führt ein Datenelement ein, das ein Phantom-Managerobjekt ist. Zusätzlich ist die Clientverfolgungs-Serverklasse der Abfrage-Interfacefunktion der Serverklasse übergeordnet. Die Phantom-Managerklasse kann eine Basisimplementierung ihrer Funktionen aufweisen und kann eine übergeordnete Implementierung einer Instanz-Erzeugungsfunktion und einer Instanz-Going-away-Funktion bereitstellen. Die Instanz-Erzeugungsfunktion erzeugt das Phantom-Serverobjekt, das das Interface der Serverklasse erbt. Die Instanz-Going-away-Funktion wird aufgerufen, um spezifische Verarbeitung durchzuführen, wenn ein Clientobjekt alle seiner Zeiger auf das Phantom-Serverobjekt ausgegeben hat. Das Phantom-Managerobjekt ist dafür verantwortlich, die Phantom-Serverobjekte zu erzeugen, wenn es von dem Clientverfolgungs-Serverobjekt durch einen Aufruf einer Erzeugungsfunktion des Phantom-Managerobjekts benachrichtigt wird. Das Clientverfolgungs-Serverobjekt würde während des Aufrufs der Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts typischerweise die Erzeugungsfunktion aufrufen. Wenn ein Phantom-Serverobjekt erfasst, dass seine Referenzzählung auf 0 gegangen ist, ruft sie eine Going-away-Funktion des Phantom-Managerobjekts auf. Diese Going-away-Funktion ruft dann die Instanz-Going-away-Funktion auf, um spezifische Verarbeitung durchzuführen. Auf diese Weise kann das Clientverfolgungssystem Verarbeitung durch die Abfrage-Interfacefunktion, wenn ein Clientobjekt einen Zeiger erhält, und durch das Aufrufen der Instanz-Going-away-Funktion, wenn ein Clientobjekt einen Zeiger ausgibt und die Referenzzählung auf 0 geht, durchführen.
  • 5 ist ein Blockdiagramm, das eine Beispielobjektgestaltung der Clientverfolgungs-Serverklasse darstellt. Bei diesem Beispiel enthält das Clientverfolgungs-Serverobjekt das Phantom-Managerobjekt als ein Datenelement. Ein Entwickler, der Zugriffe auf das Serverobjekt für jeden einzelnen Client verfolgen will, würde eine Ableitung der Serverklasse bereitstellen, die ein Phantom-Managerobjekt enthält und eine Implementierung der Abfrage-Interfacefunktion, die der Abfrage-Interfacefunktion der Serverklasse übergeordnet ist, bereitstellt. Wenn alternativ die Abfrage-Interfacefunktion per Konvention eine andere Funktion aufruft, dann kann diese andere Funktion untergeordnet werden. Die Implementierung der Abfrage-Interfacefunktion ruft die Erzeugungsfunktion des Phantom-Managerobjekts auf und sendet, als den Zeiger auf das angeforderte Interface, den von der Erzeugungsfunktion zurückgesendeten Zeiger zurück. Der Entwickler würde eine übergeordnete Implementierung der Instanz-Erzeugungsfunktion bereitstellen, die spezifisch eingerichtet ist, um Phantom-Serverobjekte einer Klasse, die dasselbe Interface erbt (d. h. IServer), als die Serverklasse zu instanziieren. Wenn der Entwickler spezifische Verarbeitung bereitstellen möchte, wenn ein Clientobjekt seinen Zeiger ausgibt und die Referenzzählung auf 0 geht, dann kann der Entwickler eine übergeordnete Implementierung der Instanz-Going-away-Funktion der Phantom-Managerklasse bereitstellen. Der Entwickler könnte außerdem zusätzliche Datenelemente und Funktionen in die Clientverfolgungs-Serverklasse einführen, um die spezifische Verarbeitung zu unterstützen.
  • 6 ist ein Blockdiagramm, das eine Beispielobjektgestaltung für die Phantom-Managerklasse darstellt. Die Phantom-Managerklasse kann eine Basis-Phantom-Managerklasse erben, die die Datenelemente und Funktionen von Tabelle 1 enthält.
  • Figure 00130001
  • Figure 00140001
  • 7 ist ein Blockdiagramm, das die Objektgestaltung der Phantom-Serverklasse darstellt. Das Phantom-Serverobjekt erbt das Server-Interface der Serverklasse (z. B. IServer). Das Phantom-Serverobjekt stellt eine Implementierung jeder Funktion des Server-Interfaces bereit. Die Implementierungen können ihren Aufruf vor oder nach der Durchführung spezifischer Verarbeitung für jeden einzelnen Client zu der entsprechenden Funktion des Clientverfolgungs-Serverobjekts weiterleiten. Tabelle 2 beschreibt Datenelemente der Phantom-Serverklasse.
  • Figure 00140002
  • 8 ist ein Diagramm, das die Verarbeitung darstellt, um einen Zeiger auf ein Phantom-Serverobjekt statt auf das Serverobjekt selbst zu einem Clientobjekt zurückzusenden. Die Schritte 800 bis 803 stellen die Verarbeitung der Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse dar. Die Schritte 805 bis 808 stellen die Verarbeitung der Erzeugungsfunktion der Phantom-Managerklasse dar. Die Schritte 810 bis 812 stellen die Verarbeitung der Instanz-Erzeugungsfunktion der Phantom-Managerklasse dar. Die Schritte 815 bis 817 stellen die Verarbeitung des Konstruktors der Phantom-Serverklasse dar. Wenn die Abfrage-Interfacefunktion eines Clientverfolgungs-Serverob jekts aufgerufen wird, ruft die Funktion die Erzeugungsfunktion des Phantom-Managerobjekts auf, wie durch den Pfeil von Schritt 801 zu Schritt 805 gezeigt. Die Erzeugungsfunktion des Phantom-Managerobjekts ruft die Instanz-Erzeugungsfunktion desselben Phantom-Managerobjekts auf, wie durch den Pfeil von Schritt 806 zu Schritt 810 gezeigt. Die Instanz-Erzeugungsfunktion instanziiert in Schritt 811 ein Phantom-Serverobjekt, das den Konstruktor für das Phantom-Serverobjekt aufruft, wie durch den Pfeil von Schritt 811 zu Schritt 815 gezeigt. Der Konstruktor initialisiert in Schritt 816 das Phantom-Serverobjekt, wie dies der gewünschten spezifischen Verarbeitung entspricht, und kehrt dann zu der Instanz-Erzeugungsfunktion zurück, wie durch den Pfeil von Schritt 817 zu Schritt 812 gezeigt. Die Instanz-Erzeugungsfunktion kehrt dann zu der Erzeugungsfunktion zurück, wie durch den Pfeil von Schritt 812 zu Schritt 807 gezeigt. Die Erzeugungsfunktion verknüpft das instanziierte Phantom-Serverobjekt mit dem Phantom-Managerobjekt und kehrt dann zu der Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts zurück, wie durch den Pfeil von Schritt 808 zu Schritt 802 gezeigt. In Schritt 802 ruft die Abfrage-Interfacefunktion die Referenzhinzufügungsfunktion auf und kehrt dann mit dem Zeiger auf das Phantom-Serverobjekt zurück.
  • 9 ist ein Diagramm, das die Verarbeitung zum Ausgeben eines Zeigers auf ein Phantom-Serverobjekt darstellt. Die Schritte 900 bis 903 stellen die Verarbeitung der Ausgabefunktion des Phantom-Serverobjekts dar. Die Schritte 905 bis 907 stellen die Verarbeitung des Destruktors des Phantom-Serverobjekts dar. Die Schritte 910 bis 913 stellen die Verarbeitung der Phantom-Going-away-Funktion des Phantom-Managerobjekts dar. Die Schritte 915 bis 917 stellen die Verarbeitung der Instanz-Going-away-Funktion des Phantom-Managerobjekts dar. Wenn die Ausgabefunktion des Phantom-Serverobjekts aufgerufen wird und die Referenzzählung auf 0 geht, ruft die Funktion den Destruktor des Phantom-Serverobjekts auf, wie durch den Pfeil von Schritt 901 zu Schritt 905 gezeigt. Der Destruktor des Phantom-Serverobjekts ruft die Phantom-Goingaway-Funktion des Phantom-Managerobjekts auf, wie durch den Pfeil von Schritt 906 zu Schritt 910 gezeigt. Die Phantom-Going-away-Funktion trennt in Schritt 911 das Phantom-Serverobjekt von einer verknüpften Liste von Phantom-Serverobjekten und ruft in Schritt 912 die Instanz-Going-away-Funktion auf, wie durch den Pfeil von Schritt 912 zu Schritt 915 gezeigt. Die Instanz-Going-away-Funktion führt in Schritt 916 die spezifische Verarbeitung des Clientverfolgungssystems durch. Die Funktion kehrt dann zu der Phantom-Going-away-Funktion zurück, wie durch den Pfeil von Schritt 917 zu Schritt 913 gezeigt. Die Phantom-Going-away-Funktion kehrt dann zu dem Destruktor zurück, wie durch den Pfeil von Schritt 913 zu Schritt 907 gezeigt. Der Destruktor kehrt dann zu der Ausgabefunktion des Phantom-Serverobjekts zurück, wie durch den Pfeil von Schritt 907 zu Schritt 902 gezeigt. In Schritt 902 schließt die Ausgabefunktion die Zerstörung ab, wobei dies Aufrufen der Ausgabefunktion des Clientverfolgungs-Serverobjekts einschließen kann. Die Ausgabefunktion kehrt dann zurück.
  • 10 ist ein Diagramm, das das Weiterleiten eines Funktionsaufrufs von einer Phantom-Serverfunktion zu einer Clientverfolgungs-Serverfunktion darstellt. Ein solches Weiterleiten wäre für jede Funktion der Serverklasse. Die Schritte 1000 bis 1004 stellen die Verarbeitung einer Funktion eines Phantom-Serverobjekts dar. Die Schritte 1005 bis 1007 stellen die Verarbeitung der Funktion dieses Serverobjekts dar. Wenn die Funktion des Phantom-Serverobjekts aufgerufen wird, kann die Funktion spezifische Vorverarbeitung in Schritt 1001 durchführen. Die Funktion leitet dann den Aufruf zu der Funktion des Clientverfolgungs-Serverobjekts weiter, wie durch den Pfeil von Schritt 1002 zu Schritt 1005 angezeigt. Die Funktion des Clientverfolgungs-Serverobjekts führt ihre Verarbeitung in Schritt 1006 durch und kehrt dann zurück, wie durch den Pfeil von Schritt 1007 zu Schritt 1003 gezeigt. In Schritt 1003 führt die Funktion eine spezifische Nachverarbeitung durch und kehrt dann zurück.
  • Die 11 bis 21 sind Flussdiagramme von Beispielimplementierungen von Funktionen der Clientverfolgungs-Serverklasse, der Phantom-Managerklasse und der Phantom-Serverklasse. 11 ist ein Flussdiagramm der Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse. Diese Funktion entspricht der Abfrage-Interfacefunktion des IUknown-Interfaces. Dieser Funktion wird die Kennung eines Interfaces zugeleitet und sie sendet einen Zeiger auf das Interface zurück. Die Implementierung dieser Funktion in der Clientverfolgungs-Serverklasse, die die Serverklasse erbt, ist der Implementierung dieser Funktion in der Serverklasse übergeordnet. In Schritt 1101 wird, wenn der weitergeleitete Interface-Identifier für ein zu verfolgendes Interface ist, die Funktion dann bei Schritt 1102 fortgesetzt, andernfalls wird die Funktion bei Schritt 1103 fortgesetzt. In Schritt 1102 ruft die Funktion die Erzeugungsfunktion des Phantom-Managerobjekts auf, um ein Phantom-Serverobjekt zu erzeugen, und sendet dann den Zeiger auf das Phantom-Serverobjekt zurück. In Schritt 1103 führt die Funktion die normale Verarbeitung der Abfrage-Interfacefunktion der Serverklasse durch und kehrt dann zurück.
  • Die 12 bis 15 sind Flussdiagramme von Beispielimplementierungen von Funktionen der Phantom-Managerklasse. 12 ist ein Flussdiagramm des Konstruktors der Phantom-Managerklasse. Ein Phantom-Managerobjekt wird instanziiert, wenn die Instanz des Clientverfolgungs-Serverobjekts instanziiert wird. Alternativ könnte die Instanziierung verzögert werden, bis ein zu verfolgendes Interface von einem Client angefordert wird. Das Phantom-Managerobjekt kann als ein Datenelement des Clientverfolgungs-Serverobjekt instanziiert werden oder kann dynamisch instanziiert werden. Dem Konstruktor wird ein Zeiger auf das Clientverfolgungs-Serverobjekt zugeleitet. In Schritt 1201 stellt der Konstruktor ein Datenelement zum Zeigen auf das weitergeleitete Clientverfolgungs-Serverobjekt ein. In Schritt 1202 initialisiert der Konstruktor eine Zählung der instanziierten Phantom-Serverobjekte und kehrt dann zurück.
  • 13 ist ein Flussdiagramm der Erzeugungsfunktion der Phantom-Managerklasse. Diese Funktion instanziiert ein Phantom-Serverobjekt, verknüpft es mit einer Liste zum Verfolgen und sendet einen Zeiger darauf zurück. In Schritt 1301 ruft die Funktion die Instanz-Erzeugungsfunktion des Phantom-Managerobjekts auf und empfängt einen Zeiger auf das instanziierte Phantom-Serverobjekt. In Schritt 1302 fügt die Funktion das Phantom-Serverobjekt zu einer Liste von Phantom-Serverobjekten hinzu. In Schritt 1303 inkrementiert die Funktion die Zählung der instanziierten Phantom-Serverobjekte und sendet dann einen Zeiger auf das Phantom-Serverobjekt zurück.
  • 14 ist ein Flussdiagramm der Instanz-Erzeugungsfunktion der Phantom-Managerklasse. Eine Implementierung dieser Funktion wird für jeden Typ von Phantom-Serverobjekt bereitgestellt. Bei einer Ausführung kann ein Clientverfolgungs-Serverobjekt mehrere Phantom-Manager aufweisen, das heißt einen für jeden Typ von Interface, für das ein Zeiger zurückgesendet werden kann. Die Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts kann das geeignete Phantom-Managerobjekt auswählen. In Schritt 1401 instanziiert die Funktion ein Phantom-Serverobjekt, indem ein Zeiger auf das Clientverfolgungs-Serverobjekt und ein Zeiger auf das Phantom-Managerobjekt weitergeleitet werden. Die Funktion sendet dann einen Zeiger auf das instanziierte Phantom-Serverobjekt zurück.
  • 15 ist ein Flussdiagramm der Phantom-Going-away-Funktion der Phantom-Managerklasse. Diese Funktion wird aufgerufen, wenn ein Phantom-Serverobjekt zerstört wird. Dies entfernt das Phantom-Serverobjekt aus der Liste und ruft die Instanz-Goingaway-Funktion auf. Eine Implementierung der Instanz-Going-away-Funktion wird durch den Entwickler der Clientverfolgungs-Serverklasse bereitgestellt, um eine spezifische Verarbeitung durchzuführen, wenn ein Client einen Zeiger auf das Phantom-Serverobjekt ausgibt und seine Referenzzählung auf 0 geht. In Schritt 1501 entfernt die Funktion das Phantom-Serverobjekt aus der Liste. In Schritt 1502 dekrementiert die Funktion die Zählung von Phantom-Serverobjekten. In Schritt 1503 ruft die Funktion die Instanz-Going-away-Funktion auf und kehrt dann zurück.
  • Die 16 bis 21 sind Flussdiagramme von Beispielimplementierungen von Funktionen der Phantom-Serverklasse. 16 ist ein Flussdiagramm des Konstruktors der Phantom-Serverklasse. Diesem Konstruktor werden ein Zeiger auf das Clientverfolgungs-Serverobjekt und ein Zeiger auf das Phantom-Managerobjekt zugeleitet. In Schritt 1601 stellt der Konstruktor ein Datenelement ein, um auf das Clientverfolgungs-Serverobjekt zu zeigen. In Schritt 1602 stellt der Konstruktor ein Datenelement ein, um auf das Phantom-Managerobjekt zu zeigen. Dann kehrt die Funktion zurück.
  • 17 ist ein Flussdiagramm des Destruktors der Phantom-Serverklasse. In Schritt 1701 ruft der Destruktor die Phantom-Going-away-Funktion des Phantom-Managerobjekts auf, wobei ein Zeiger auf das Phantom-Serverobjekt weitergeleitet wird. Der Destruktor kehrt dann zurück.
  • 18 ist ein Flussdiagramm der Abfrage-Interfacefunktion der Phantom-Serverklasse. In Schritt 1801 leitet die Abfrage-Interfacefunktion ihren Aufruf zu der Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts weiter. Die Funktion kehrt dann zurück.
  • 19 ist ein Flussdiagramm der Referenzhinzufügungsfunktion der Phantom-Serverklasse. In Schritt 1901 inkrementiert die Funktion die Referenzzählung des Phantom-Serverobjekts. In Schritt 1902 leitet die Funktion ihren Aufruf zu dem Clientverfolgungs-Serverobjekt weiter und kehrt dann zurück.
  • 20 ist ein Flussdiagramm der Ausgabefunktion der Phantom-Serverklasse. In Schritt 2001 leitet die Funktion ihren Aufruf zu dem Clientverfolgungs-Serverobjekt wei ter. In Schritt 2002 dekrementiert die Funktion die Referenzzählung des Phantom-Serverobjekts. In Schritt 2003 setzt sich, wenn die Referenzzählung gleich 0 ist, die Funktion dann bei Schritt 2004 fort, andernfalls kehrt die Funktion zurück. In Schritt 2004 ruft die Funktion den Destruktor des Phantom-Serverobjekts auf und kehrt dann zurück.
  • 21 ist ein Flussdiagramm einer Beispielimplementierung einer Funktion der Phantom-Serverklasse, die von dem Interface der Serverklasse geerbt wird. In Schritt 2101 führt die Funktion spezifische Vorverarbeitung durch. In Schritt 2102 leitet die Funktion den Aufruf zu der entsprechenden Funktion des Clientverfolgungs-Serverobjekts weiter. In Schritt 2103 führt die Funktion spezifische Nachverarbeitung durch. Die Funktion kehrt dann zurück.
  • Auf Basis der obigen Beschreibung ist festzustellen, dass, auch wenn spezifische Ausführungen der Erfindung hierin zu Zwecken der Darstellung beschrieben wurden, verschiedene Modifizierungen durchgeführt werden können. Zum Beispiel umfasst der Begriff „Client" einen Typ von Softwarekomponente, wie Modul, Prozess oder Thread, und ist nicht auf ein Objekt in dem objektorientierten Sinn beschränkt. Zusätzlich könnte der Phantom-Manager kein getrenntes Objekt sein. Vielmehr kann sein Verhalten in die Implementierung der Abfragefunktion der Clientverfolgungs-Serverklasse integriert werden. Die Integrierung kann geeignet sein, wenn nicht gewünscht wird, spezifische Verarbeitung durchzuführen, wenn ein Phantom-Serverobjekt erzeugt oder zerstört wird. Außerdem kann eine Serverklasse anfänglich so definiert werden oder modifiziert werden, dass sie das Verhalten der Phantom-Managerklasse so einschließt, dass Objekte verfolgt werden können. Außerdem kann ein Phantom-Serverobjekt ein mit ihm assoziiertes Phantom-Phantom-Serverobjekt aufweisen, um verschiedene Sub-Clients eines Client zu verfolgen. Zum Beispiel könnte eine Ableitung der Phantom-Serverklasse Clientverfolgung an dem Phantom-Serverobjekt selbst implementieren. Die Prinzipien der vorliegenden Erfindung können in Umgebungen verwendet werden, in denen ein Server dynamisch umgewandelt werden kann. COM von Microsoft ist eine solche Umgebung und die Abfrage-Interfacefunktion des IUnknown-Interfaces stellt dynamisches Umwandeln bereit. Folglich ist die Erfindung, außer durch die angehängten Ansprüche, nicht beschränkt.

Claims (17)

  1. Verfahren zum Verfolgen von Clientzugriff auf ein Serverobjekt (403) für jeden einzelnen Client, ohne Serverklasse-Modifizierung, umfassend: Bereitstellen einer Clientverfolgungs-Serverklasse, abgeleitet von der Serverklasse, wobei die Clientverfolgungs-Serverklasse eine Implementierung einer Abfrage-Interfacefunktion enthält, die der Abfrage-Interfacefunktion der Serverklasse übergeordnet ist, Instanziieren eines Clientverfolgungs-Serverobjekts, Aufrufen der Abfrage-Interfacefunktion des Clientverfolgungs-Serverobjekts und, in Reaktion auf das Aufrufen, Instanziieren (1301) eines Phantom-Serverobjekts, das eine Implementierung eines Interfacees bereitstellt, das dasselbe Interface ist, wie das Interface, das durch die Serverklasse bereitgestellt wird.
  2. Verfahren nach Anspruch 1, das des Weiteren als Ergebnis des Aufrufens das Abrufen eines Zeigers auf das Phantom-Serverobjekt umfasst.
  3. Verfahren nach Anspruch 1, wobei, wenn ein Client eine Funktion des Phantom-Serverobjekts aufruft, die Funktion spezifische Verarbeitung durchführen kann und den Aufruf der Funktion zu der entsprechenden Funktion des Clientverfolgungs-Serverobjekts weiterleiten kann.
  4. Verfahren nach Anspruch 1, wobei die spezifische Verarbeitung ein Feststellen einschließt, ob ein bestimmter Client eine bestimmte Funktion der Serverklasse aufruft.
  5. Verfahren nach Anspruch 4, wobei die spezifische Verarbeitung ein Verfolgen, ob ein bestimmter Client eine erste Funktion aufruft, und danach das Ausüben eines anderen Verhaltens, wenn derselbe Client eine zweite Funktion aufruft, einschließt.
  6. Computerlesbares Medium, das computerausführbare Befehle zum Ausführen aller der Schritte des Verfahrens nach einem der Ansprüche 1 bis 5 umfasst, wenn es auf einem Computer betrieben wird.
  7. Clientverfolgungssystem, das enthält: ein Clientverfolgungs-Serverobjekt (401), wobei die Klasse des Clientverfolgungs-Serverobjekts von einer Serverklasse des Clientverfolgungssystems abgeleitet ist, und wobei eine Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse einer Abfrage-Interfacefunktion der Serverklasse übergeordnet ist, wenigstens ein Phantom-Serverobjekt (403), wobei ein Phantom-Serverobjekt instanziiert wird, wenn die Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse aufgerufen wird, und wobei die Klasse des wenigstens einen Phantom-Serverobjekts von der Serverklasse des Clientverfolgungssystems geerbt wird, und wenigstens ein Clientobjekt, wobei, wenn ein Clientobjekt eine Funktion eines Phantom-Serverobjekts von dem wenigstens einen Phantom-Serverobjekt aufruft, die Funktion durch das Phantom-Serverobjekt spezifisch verarbeitet wird, bevor der Aufruf der Funktion zu dem Clientverfolgungs-Serverobjekt weitergeleitet wird.
  8. Clientverfolgungssystem nach Anspruch 7, wobei die spezifische Verarbeitung der Funktion Feststellen, ob ein bestimmter Client eine bestimmte Funktion der Serverklasse aufruft, einschließt.
  9. Clientverfolgungssystem nach Anspruch 8, wobei die spezifische Verarbeitung der Funktion Verfolgen, ob ein bestimmter Client eine erste Funktion aufruft und anschließend das Ausüben eines anderen Verhaltens, wenn derselbe Client eine zweite Funktion aufruft, einschließt.
  10. Clientverfolgungssystem nach Anspruch 7, wobei, wenn die Abfrage-Interfacefunktion der Clientverfolgungs-Serverklasse aufgerufen wird und dadurch ein Phantom-Serverobjekt instanziiert, die Abruf-Interfacefunktion eine Referenz auf das Phantom-Serverobjekt zurücksendet.
  11. Clientverfolgungssystem nach Anspruch 10, wobei die Referenz auf das Phantom-Serverobjekt ein Zeiger ist.
  12. Clientverfolgungssystem nach Anspruch 7, das des Weiteren ein Phantom-Managerobjekt enthält, wobei die Klasse des Phantom-Managerobjekts eine Funktion zum Instanziieren eines Phantom-Serverobjekts, eine Funktion zur Verfolgung des Phantom-Serverobjekts und eine Funktion zum Zurücksenden von Referenzen auf Phantom-Serverobjekte enthält.
  13. Clientverfolgungssystem nach Anspruch 12, wobei das Phantom-Managerobjekt des Weiteren eine Instanz-Going-away-Funktion enthält, die aufgerufen wird, wenn ein Phantom-Serverobjekt zerstört ist.
  14. Clientverfolgungssystem nach Anspruch 13, wobei die spezifische Verarbeitung durch das Phantom-Managerobjekt durchgeführt wird, wenn ein Clientobjekt eine Referenz auf ein Phantom-Serverobjekt ausgibt, die verursacht, dass eine Referenzzählung von Phantom-Serverobjekten auf null geht.
  15. Clientverfolgungssystem nach Anspruch 12, wobei das Phantom-Managerobjekt ein Datenelement der Clientverfolgungs-Serverklasse ist.
  16. Clientverfolgungssystem nach Anspruch 7, wobei die Phantom-Managerklasse eine Basisimplementierung ihrer Funktionen hat und eine übergeordnete Implementierung einer Instanz-Erzeugungsfunktion und einer Instanz-Going-away-Funktion bereitstellt, wobei die Instanz-Erzeugungsfunktion ein Phantom-Serverobjekt erzeugt, das das Interface der Serverklasse erbt, und die Instanz- Going-away-Funktion aufgerufen wird, um eine spezifische Verarbeitung durchzuführen, wenn ein Clientobjekt alle seine Zeiger auf das Phantom-Serverobjekt freigegeben hat.
  17. Clientverfolgungssystem nach Anspruch 7, wobei die Datenelemente des wenigstens einen Phantom-Serverobjekts ein Mein-Objekt-Zeigerdatenelement, das ein Zeiger auf ein entsprechendes Clientverfolgungs-Serverobjekt ist, und ein Mein-Manager-Zeigerdatenelement, das ein Zeiger auf ein entsprechendes Phantom-Managerobjekt ist, enthalten.
DE60035677T 1999-02-03 2000-02-03 Verfahren und system zur klientenverfolgung Expired - Lifetime DE60035677T2 (de)

Applications Claiming Priority (21)

Application Number Priority Date Filing Date Title
US11866899P 1999-02-03 1999-02-03
US118668P 1999-02-03
US09/322,965 US6704924B1 (en) 1999-02-03 1999-05-28 Method and system for implementing virtual functions of an interface
US322457 1999-05-28
US09/322,455 US6721898B1 (en) 1999-02-03 1999-05-28 Method and system for tracking software components
US09/322,459 US6466234B1 (en) 1999-02-03 1999-05-28 Method and system for controlling environmental conditions
US322455 1999-05-28
US322643 1999-05-28
US09/322,964 US7617453B1 (en) 1999-02-03 1999-05-28 Method and system for generating a user interface for distributing devices
US322962 1999-05-28
US09/322,852 US6993771B1 (en) 1999-02-03 1999-05-28 Method and system for managing software components
US322964 1999-05-28
US09/322,962 US6684246B1 (en) 1999-02-03 1999-05-28 Method and system for tracking clients
US09/322,207 US6670934B1 (en) 1999-02-03 1999-05-28 Method and system for distributing art
US322459 1999-05-28
US322965 1999-05-28
US322852 1999-05-28
US09/322,457 US6970925B1 (en) 1999-02-03 1999-05-28 Method and system for property notification
US09/322,643 US7039943B1 (en) 1999-02-03 1999-05-28 Audio visual architecture
US322207 1999-05-28
PCT/US2000/002953 WO2000046673A1 (en) 1999-02-03 2000-02-03 Method and system for tracking clients

Publications (2)

Publication Number Publication Date
DE60035677D1 DE60035677D1 (de) 2007-09-06
DE60035677T2 true DE60035677T2 (de) 2007-12-06

Family

ID=27581023

Family Applications (5)

Application Number Title Priority Date Filing Date
DE60017369T Expired - Lifetime DE60017369T2 (de) 1999-02-03 2000-02-03 Verfahren und system zur beleuchtungskontrolle
DE60035677T Expired - Lifetime DE60035677T2 (de) 1999-02-03 2000-02-03 Verfahren und system zur klientenverfolgung
DE60040061T Expired - Lifetime DE60040061D1 (de) 1999-02-03 2000-02-03 Verfahren und system zur softwarekomponentenverfolgung
DE60034218T Expired - Lifetime DE60034218T2 (de) 1999-02-03 2000-02-03 Verfahren und system zur eigenschaftsbenachrichtigung
DE60037795T Expired - Lifetime DE60037795T2 (de) 1999-02-03 2000-02-03 Audiovisuelle architektur

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60017369T Expired - Lifetime DE60017369T2 (de) 1999-02-03 2000-02-03 Verfahren und system zur beleuchtungskontrolle

Family Applications After (3)

Application Number Title Priority Date Filing Date
DE60040061T Expired - Lifetime DE60040061D1 (de) 1999-02-03 2000-02-03 Verfahren und system zur softwarekomponentenverfolgung
DE60034218T Expired - Lifetime DE60034218T2 (de) 1999-02-03 2000-02-03 Verfahren und system zur eigenschaftsbenachrichtigung
DE60037795T Expired - Lifetime DE60037795T2 (de) 1999-02-03 2000-02-03 Audiovisuelle architektur

Country Status (6)

Country Link
EP (9) EP1159680B1 (de)
AT (5) ATE287104T1 (de)
AU (9) AU3591400A (de)
CA (9) CA2396104A1 (de)
DE (5) DE60017369T2 (de)
WO (9) WO2000046657A2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1483653B1 (de) * 2002-03-08 2006-05-31 Revelations in Design, LP Steuerkonsole für elektrische geräte
EP1717666A1 (de) * 2002-03-08 2006-11-02 Revelations in Design, LP Steuerkonsole für elektrische Geräte
TWM327001U (en) * 2006-12-28 2008-02-11 Pin Life Co Ltd Apparatus of creating atmosphere
JP2010519685A (ja) * 2007-02-16 2010-06-03 ジェネア エナジー パートナーズ, インコーポレイテッド ビルディング最適化システム及び照明スイッチ
US8190301B2 (en) 2008-02-19 2012-05-29 Genea Energy Partners, Inc. Building optimization system and lighting switch with adaptive blind, window and air quality controls
ES2449619T3 (es) 2007-05-09 2014-03-20 Koninklijke Philips N.V. Método y sistema para controlar un sistema de iluminación
DE102012204686B3 (de) * 2012-03-23 2013-05-23 Siemens Aktiengesellschaft Verfahren zur Konfiguration einer Beleuchtungsanlage
CN106133681A (zh) * 2014-03-21 2016-11-16 诺基亚技术有限公司 使用标准化用户接口描述符以拼贴用户接口控制智能对象的方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5086385A (en) 1989-01-31 1992-02-04 Custom Command Systems Expandable home automation system
US5390328A (en) * 1992-03-30 1995-02-14 International Business Machines Corporation Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage
EP0669020B1 (de) * 1992-11-13 1997-04-02 Microsoft Corporation Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
US5410326A (en) * 1992-12-04 1995-04-25 Goldstein; Steven W. Programmable remote control device for interacting with a plurality of remotely controlled devices
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5621662A (en) * 1994-02-15 1997-04-15 Intellinet, Inc. Home automation system
US5522077A (en) * 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
EP0767940B1 (de) * 1994-06-30 2000-03-08 Intel Corporation Vorgezogener datenzugriff für script-basierte multimediasysteme
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
DE19535519C2 (de) * 1995-09-25 1999-03-04 Ibm Verfahren zur Reduzierung des Umfanges von Computerprogrammen
US5726979A (en) * 1996-02-22 1998-03-10 Mci Corporation Network management system
JP3735942B2 (ja) * 1996-06-04 2006-01-18 ソニー株式会社 通信制御方法、通信システムおよびそれに用いる電子機器
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
EP0854607A1 (de) * 1997-01-20 1998-07-22 Siemens Schweiz AG Verfahren zum Planen und Konfigurieren eines Kommunikationsnetzwerkes
DE69806151T2 (de) * 1997-04-30 2002-10-02 The Foxboro Co., Foxboro Verfahren und vorrichtung zur synchronisierung von auf einem digitalen datenverarbeitungssystem laufenden prozessen
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
WO1998059478A1 (en) * 1997-06-25 1998-12-30 Samsung Electronics Co., Ltd. Programming tool for home networks
AU722579B2 (en) * 1997-06-30 2000-08-10 Fuji Photo Film Co., Ltd. Image communication system and method

Also Published As

Publication number Publication date
AU3484200A (en) 2000-08-25
CA2396118A1 (en) 2000-08-10
CA2396131A1 (en) 2000-08-10
AU3222500A (en) 2000-08-25
EP1171819A1 (de) 2002-01-16
AU3357300A (en) 2000-08-25
WO2000046670A9 (en) 2001-11-22
EP1159669A2 (de) 2001-12-05
AU3357100A (en) 2000-08-25
WO2000046675A1 (en) 2000-08-10
DE60035677D1 (de) 2007-09-06
WO2000046674A9 (en) 2002-05-02
WO2000046657A3 (en) 2000-12-28
ATE384371T1 (de) 2008-02-15
WO2000046671A1 (en) 2000-08-10
WO2000046675A9 (en) 2002-05-02
WO2000046660A9 (en) 2002-05-02
WO2000046674A1 (en) 2000-08-10
DE60040061D1 (de) 2008-10-09
EP1159676A1 (de) 2001-12-05
AU3998100A (en) 2000-08-25
DE60034218D1 (de) 2007-05-16
AU3357000A (en) 2000-08-25
EP1155534A1 (de) 2001-11-21
CA2396099A1 (en) 2000-08-10
WO2000046676A3 (en) 2000-11-30
WO2000046660A2 (en) 2000-08-10
WO2000046960A1 (en) 2000-08-10
EP1155534B1 (de) 2008-01-16
EP1159669B1 (de) 2014-12-17
AU2870800A (en) 2000-08-25
EP1159676B1 (de) 2005-01-12
WO2000046671A9 (en) 2002-05-02
ATE287104T1 (de) 2005-01-15
CA2396094A1 (en) 2000-08-10
EP1157330A1 (de) 2001-11-28
WO2000046676A9 (en) 2001-09-20
WO2000046673A9 (en) 2001-10-04
ATE368253T1 (de) 2007-08-15
EP1171819B1 (de) 2007-07-25
CA2396128A1 (en) 2000-08-10
EP1171815A2 (de) 2002-01-16
DE60037795T2 (de) 2009-01-22
DE60037795D1 (de) 2008-03-06
EP1159680A2 (de) 2001-12-05
EP1157334A1 (de) 2001-11-28
CA2398342A1 (en) 2000-08-10
WO2000046676A2 (en) 2000-08-10
WO2000046660A3 (en) 2001-10-04
WO2000046657A2 (en) 2000-08-10
DE60017369T2 (de) 2005-06-09
DE60017369D1 (de) 2005-02-17
EP1157333B1 (de) 2008-08-27
CA2396094C (en) 2013-06-25
CA2396109A1 (en) 2000-08-10
CA2396124A1 (en) 2000-08-10
AU3591400A (en) 2000-08-25
WO2000046670A1 (en) 2000-08-10
CA2396104A1 (en) 2000-08-10
WO2000046960A9 (en) 2002-05-02
EP1159680B1 (de) 2007-04-04
DE60034218T2 (de) 2007-12-20
EP1157333A1 (de) 2001-11-28
WO2000046673A1 (en) 2000-08-10
AU3484000A (en) 2000-08-25
ATE358846T1 (de) 2007-04-15
ATE406612T1 (de) 2008-09-15

Similar Documents

Publication Publication Date Title
DE69425318T2 (de) Verfahren und System für Fernausführung von Codes
DE69309485T2 (de) Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
DE69617509T2 (de) Vorrichtung und Verfahren zur Feststellung von Objekttypen in einem verteilten Objektsystem
DE69425470T2 (de) Verfahren zur Ereignismeldung in einem Betriebssystem
DE69533530T2 (de) Verfahren und System zur dynamischen Aggregation von Objekten
DE69621494T2 (de) Vorrichtung und Verfahren eines verteilten Fehlerbeseitigers zur Fehlerbeseitigung von verteilten Anwendungsprogrammen
DE69628965T2 (de) Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
DE69625633T2 (de) System und Verfahren zur Bestimmung und Behandlung von Server-Konfigurationsinformation in einer Umgebung mit verteilten Objekten
DE69425699T2 (de) Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell
DE69425548T2 (de) Verfahren und Vorrichtung zur dynamischen Objektverbindungserzeugung
DE69625636T2 (de) System und Verfahren zum Steuern und Verwalten von verteilten Objektservern unter Verwendung von erstklassigen verteilten Objekten
DE69810654T2 (de) Verfahren und gerät zum führen von transaktionen in einer zustandslosen web-umgebung, welche ein deklaratives paradigma unterstützt
DE69616449T2 (de) Vorrichtung zum Hinzufügen von Attributen zu einem Objekt während der Laufzeit in einer objektorientierten Rechnerumgebung
DE69429686T2 (de) Transaktionsverwaltung in objektorientiertem System
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69719620T2 (de) Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien
DE69420803T2 (de) Ereignis-qualifikation und -benachrichtigung.
DE69616839T2 (de) Web-server-mechanismus zur verarbeitung von funktionsaufrufen für dynamische datenabfragen in einer web-seite
DE69619071T2 (de) Fernprozeduraufruf unter Verwendung eines bereits bestehenden Beschreibungsmechanismus
DE69424744T2 (de) Verfahren und System zur Verwaltung von Komponentenverbindungen
DE69630329T2 (de) Verfahren zur Verwaltung des Deaktivierens und Ausschaltens eines Servers
DE69904190T2 (de) Verfahren und programm zum verarbeiten der verwaltungsanfragen einer verteilten netzwerkanwendung in einer gruppierten rechnerumgebung
DE69921474T2 (de) Methode-referenzierung in objektbasierter programmierung
DE69830285T2 (de) Auf Beans basiertes Verwaltungssystem
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition