DE19930160A1 - System for transferring information between programs running in digital computer system - Google Patents

System for transferring information between programs running in digital computer system

Info

Publication number
DE19930160A1
DE19930160A1 DE1999130160 DE19930160A DE19930160A1 DE 19930160 A1 DE19930160 A1 DE 19930160A1 DE 1999130160 DE1999130160 DE 1999130160 DE 19930160 A DE19930160 A DE 19930160A DE 19930160 A1 DE19930160 A1 DE 19930160A1
Authority
DE
Germany
Prior art keywords
native
information
bridging
virtual machine
execution environment
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.)
Withdrawn
Application number
DE1999130160
Other languages
German (de)
Inventor
Peter A Korn
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE19930160A1 publication Critical patent/DE19930160A1/en
Withdrawn 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

The system transfers information between programs running in virtual and native environments. This contains a bridging class object (30) that can be installed in the virtual machine environment (21) for exchanging information with the program in the virtual machine environment. There are also several native bridging agents (31,32), including one for exchanging information with the bridging class object and a second for exchanging information with the program running in the native environment. The native agents exchange information between them using a native communications mechanism (33). Independent claims are also included for a method of transferring information and a computer program product.

Description

Die Erfindung betrifft im allgemeinen das Gebiet digita­ ler Computersysteme, und insbesondere Anordnungen zum Vereinfachen der Kommunikation zwischen in einem digita­ len Computersystem verarbeiteten Programmen. Die Erfin­ dung schafft insbesondere eine Anordnung zum Vereinfachen der Informationsübertragung in einem digitalen Computer­ system zwischen einem Programm oder einem anderen Objekt, das in einer virtuellen Maschine in dem digitalen Compu­ tersystem verarbeitet wird, und einem Programm oder einem anderen Objekt, das in einer nativen Ausführungsumgebung in dem digitalen Computersystem verarbeitet wird.The invention relates generally to the field of digita computer systems, and in particular arrangements for Simplify communication between in one digita len computer system processed programs. The Erfin in particular creates an arrangement for simplification the transfer of information in a digital computer system between a program or another object, that in a virtual machine in the digital compu tersystem is processed, and a program or other object that is in a native execution environment is processed in the digital computer system.

Im allgemeinen verarbeiten Computer Programme unter der Steuerung eines Betriebssystems, das als "native Ausfüh­ rungsumgebung" bezeichnet werden kann. In einer solchen Umgebung kann das Programm, allgemein im nativen Befehls­ satz für den Computer, in einem Prozeßkontext ausgeführt werden. Andere Programme, die nicht in dem nativen Be­ fehlssatz für den Computer vorliegen müssen, können ande­ rerseits in einer Ausführungsumgebung der virtuellen Ma­ schine ausgeführt werden. Es gibt mehrere Vorteile beim Schreiben von Programmen für die Ausführung in einer Aus­ führungsumgebung der virtuellen Maschine. Beispielsweise können für die Ausführung in der Ausführungsumgebung der virtuellen Maschine geschriebene Programme, anders als für die native Ausführungsumgebung geschriebene Program­ me, oftmals unabhängig von dem speziellen Befehlssatz und Betriebssystem für den Computer, in dem das Programm ver­ arbeitet wird, erstellt werden.In general, computers process programs under the Control of an operating system that acts as a "native version environment ". In such a Environment can be the program, generally in native command set for the computer, executed in a process context become. Other programs that are not in the native Be other errors for the computer can exist on the one hand in an execution environment of the virtual Ma machine are executed. There are several advantages to using Writing programs for execution in an out management environment of the virtual machine. For example can be run in the execution environment of the programs written in virtual machine, other than Programs written for the native execution environment  me, often regardless of the specific instruction set and Operating system for the computer in which the program ver will be created.

Es tritt jedoch ein Problem auf, wenn Information zwi­ schen den in der nativen Ausführungsumgebung und den in der Ausführungsumgebung der virtuellen Maschine verarbei­ teten Programmen übertragen werden sollen. Es sind mehre­ re Mechanismen entwickelt worden, eine solche Übertragung durchzuführen, die sich im allgemeinen auf die Überset­ zung der Information zwischen der Ausführungsumgebung der virtuellen Maschine und der nativen Ausführungsumgebung beziehen.However, a problem arises when information between in the native execution environment and in the execution environment of the virtual machine programs to be transmitted. There are several re mechanisms have been developed such a transmission perform, which generally relates to the translation the information between the execution environment of the virtual machine and the native execution environment Respectively.

Der Erfindung liegt die Aufgabe zugrunde, die obigen Pro­ bleme wenigstens teilweise zu beheben.The invention has for its object the above Pro to fix bleme at least partially.

Die Erfindung löst diese Aufgabe jeweils mit den Merkma­ len der Ansprüche 1, 8 und 15. Bevorzugte Ausführungsbei­ spiele der Erfindung sind in den Unteransprüchen be­ schrieben.The invention solves this problem with the Merkma len of claims 1, 8 and 15. Preferred embodiments Games of the invention are in the dependent claims wrote.

Die Erfindung schafft eine neue und verbesserte Anordnung zum Vereinfachen der Informationsübertragung in einem di­ gitalen Computersystem zwischen einem Programm oder einem anderen Objekt, das in einer virtuellen Maschine in dem digitalen Computersystem verarbeitet wird, und einem Pro­ gramm oder einem anderen Objekt, das in einer nativen Ausführungsumgebung in dem digitalen Computersystem ver­ arbeitet wird.The invention creates a new and improved arrangement to simplify the transfer of information in a di gital computer system between a program or a other object that is in a virtual machine in the digital computer system is processed, and a pro gram or other object that is in a native Execution environment in the digital computer system ver will work.

Kurz zusammengefaßt, überträgt ein Informationsübertra­ gungs-Subsystem Information zwischen einem Programm, das in einer Ausführungsumgebung der virtuellen Maschine ver­ arbeitet wird, und einem Programm, das in einer nativen Ausführungsumgebung in einem digitalen Computersystem verarbeitet wird. Das Informationsübertragungs-Subsystem umfaßt ein Überbrückungsklassenobjekt ("bridge class ob­ ject") und mehrere native Überbrückungsagenten ("bridge agents"), wobei die nativen Überbrückungsagenten die In­ formation untereinander durch einen nativen Kommunikati­ onsmechanismus übertragen, der von der nativen Ausfüh­ rungsumgebung bereitgestellt wird. Das Überbrückungsklas­ senobjekt der virtuellen Maschine ist in der Ausführungs­ umgebung der virtuellen Maschine instantiierbar, um die Informationsübertragungen mit dem Programm in der Ausfüh­ rungsumgebung der virtuellen Maschine zu führen. Das Überbrückungsklassenobjekt der virtuellen kann seiner­ seits Information mit einem ersten der nativen Überbrüc­ kungsagenten übertragen. Ein zweiter der nativen Über­ brückungsagenten ist so ausgestaltet, Information mit dem in der nativen Ausführungsumgebung verarbeiteten Programm zu übertragen. Wie oben bemerkt, können der erste und der zweite native Überbrückungsagent die Information unter­ einander durch einen nativen Kommunikationsmechanismus übertragen, der von der nativen Ausführungsumgebung be­ reitgestellt wird, wodurch die Informationsübertragung zwischen Programmen in den beiden Umgebungen vereinfacht wird.Briefly summarized, transmits an information transfer subsystem information between a program that in a virtual machine execution environment is working, and a program that is in a native Execution environment in a digital computer system is processed. The information transfer subsystem includes a bridging class object ("bridge class ob ject ") and several native bridging agents (" bridge agents "), with the native bridging agents the In  formation with each other through native communication mechanism transferred from the native execution environment is provided. The bridging class The virtual machine object is in execution environment of the virtual machine can be instantiated in order to Information transfers with the program in execution environment of the virtual machine. The Bridging class object of the virtual can its on the part of information with a first of the native bridges transfer agent. A second of the native over bridging agent is designed to provide information with the Program processed in the native execution environment transferred to. As noted above, the first and the second native bridging agent the information below each other through a native communication mechanism transferred from the native execution environment is provided, whereby the information transfer simplified between programs in the two environments becomes.

Weitere Merkmale und Vorteile der Erfindung werden nun­ mehr mit Bezug auf die beigefügte Zeichnung näher erläu­ tert. In der Zeichnung zeigen:Further features and advantages of the invention will now more explained with reference to the accompanying drawing tert. The drawing shows:

Fig. 1 ein beispielhaftes digitales Computersystem mit einer erfindungsgemäß aufgebauten Anordnung zum Vereinfachen der Informationsübertragung zwi­ schen einem Programm und einem instantiierten Objekt, das in einer Ausführungsumgebung der virtuellen Maschine verarbeitet wird, und Pro­ grammen, die in einer nativen Ausführungsumge­ bung verarbeitet werden; Fig. 1 illustrates an exemplary digital computer system with an inventively constructed arrangement for facilitating the transfer of information Zvi rule a program and an instantiated object that is processed in an execution environment of the virtual machine, and programs Pro processed environment in a native execution of the other;

Fig. 2 ein Funktionsblockdiagramm einer Anordnung zum Vereinfachen der Informationsübertragung zwi­ schen einem Programm und einem instantiierten Objekt, das in einer Ausführungsumgebung der virtuellen Maschine verarbeitet wird, und Pro­ grammen, die in einer nativen Ausführungsumge­ bung ausgeführt werden, und Fig. 2 is a functional block diagram of an arrangement for simplifying the information transfer between a program and an instantiated object that is processed in a virtual machine execution environment and programs that are executed in a native execution environment, and

Fig. 3 ein Flußdiagramm, das die von der in Fig. 2 dargestellten Anordnung ausgeführten Operationen zeigt. FIG. 3 is a flow chart showing the operations performed by the arrangement shown in FIG. 2.

Fig. 1 zeigt ein beispielhaftes Computersystem 10 mit einer erfindungsgemäß aufgebauten Anordnung zum Vereinfa­ chen der Informationsübertragung zwischen einem Programm und einem instantiierten Objekt, das in einer Ausfüh­ rungsumgebung der virtuellen Maschine verarbeitet wird, und Programmen, die in einer nativen Ausführungsumgebung verarbeitet werden. Gemäß Fig. 1 weist das Computersy­ stem 10 in einem Ausführungsbeispiel ein Prozessormodul 11 und Bedienschnittstellenelemente auf, welche Bedien­ eingabekomponenten, wie eine Tastatur 12A und/oder eine Maus 12E (allgemein als Bedieneingabeelement(e) 12 be­ zeichnet) und Bedienausgabekomponenten umfassen, wie ein Bildschirmgerät 13 mit integrierten Lautsprechern 15. Das beispielhafte Computersystem 10 hat die herkömmliche Ar­ chitektur eines speicherprogrammierten Computers. Fig. 1 shows an exemplary computer system 10 with an inventively constructed arrangement for Vereinfa chen of information transfer between a program and an instantiated object that approximately environment in an exporting the virtual machine is processed, and programs that are processed in a native execution environment. Referring to FIG. 1, the Computersy stem 10 in one embodiment, a processor module 11 and operator interface elements, which operator input components such as a keyboard 12 A and / or a mouse 12 E (generally referred to as operation input member (s) 12 be distinguished), and include control output components, like a display device 13 with integrated loudspeakers 15 . The exemplary computer system 10 has the conventional architecture of a programmable logic computer.

Das Prozessormodul 11 weist beispielsweise einen Prozes­ sor, einen Speicher und Massenspeichergeräte, wie Plat­ ten- und/oder Band-Speicherelemente (nicht einzeln darge­ stellt) auf, welche die Verarbeitung und Speicheropera­ tionen im Zusammenhang mit dorthin übertragenen digitalen Daten durchführen. Die Massenspeicher-Subsysteme können solche Geräte, wie Platten- oder Band-Subsysteme, opti­ sche Plattenspeichergeräte und CD-ROM-Geräte aufweisen, in die Information gespeichert werden kann und/oder von denen Information wiedergewonnen werden kann. Ein oder mehrere Massenspeicher-Subsysteme können herausnehmbare Speichermedien verwenden, die von einem Bediener heraus­ genommen und installiert werden können, wodurch der Be­ diener Programme und Daten in das digitale Computersystem 10 laden und verarbeitete Daten von dort erhalten kann. Unter Steuerung der von dem Prozessor dorthin gelieferten Steuerungsinformation kann die in den Massenspeicher-Sub­ systemen gespeicherte Information für die Speicherung an den Speicher übertragen werden. Nachdem die Informati­ on in dem Speicher gespeichert ist, kann der Prozessor die Information zum Verarbeiten aus dem Speicher wieder­ gewinnen. Nachdem die verarbeiteten Daten erzeugt worden sind, kann der Prozessor die Massenspeicher-Subsysteme ebenfalls aktivieren, die verarbeiteten Daten für eine relativ langfristige Speicherung von dem Speicher wieder­ zugewinnen.The processor module 11 has, for example, a processor, a memory and mass storage devices, such as disk and / or tape storage elements (not shown individually), which perform the processing and storage operations in connection with digital data transmitted there. The mass storage subsystems may include such devices as disk or tape subsystems, optical disk storage devices and CD-ROM devices in which information can be stored and / or from which information can be retrieved. One or more mass storage subsystems can use removable storage media that can be removed and installed by an operator, allowing the operator to load programs and data into the digital computer system 10 and receive processed data therefrom. Under control of the control information supplied there by the processor, the information stored in the mass storage subsystems can be transferred to the memory for storage. After the information is stored in the memory, the processor can recover the information for processing from the memory. After the processed data has been generated, the processor can also activate the mass storage subsystems to retrieve the processed data from the memory for relatively long term storage.

Das (die) Bedieneingabeelement(e) 12 ist (sind) vorgesehen, damit ein Bediener Information zum Verarbeiten und/oder Information für die Steuerung des digitalen Computersy­ stems 10 eingeben kann. Das Bildschirmgerät 13 und die Lautsprecher 15 sind vorgesehen, um jeweils Ausgabeinfor­ mation in visueller Form auf einem Bildschirm 14 und Aus­ gabeinformation in Audioform darzustellen, die von dem Prozessormodul 11 erzeugt wird und die Daten, die der Be­ diener zum Verarbeiten eingeben kann, und Information, die der Bediener zum Steuern der Verarbeitung eingeben kann, sowie Information umfassen kann, die während der Verarbeitung erzeugt wird. Das Prozessormodul 11 erzeugt Information für die Anzeige durch das Bildschirmgerät 13, unter Verwendung einer sogenannten "graphischen Benutzer­ oberfläche" ("GUI"), in der Information für verschiedene Anwendungsprogramme unter Verwendung verschiedener "Fenster" angezeigt wird. Auch wenn das Computersystem 10 mit speziellen Komponenten gezeigt ist, wie der Tastatur 12A und der Maus 12B für den Empfang einer Eingabeinfor­ mation von einem Bediener und einem Bildschirmgerät 13 für die Anzeige von Ausgabeinformationen an den Bediener, ist es selbstverständlich, daß das Computersystem 10 zu­ sätzlich zu oder anstelle von den in Fig. 1 gezeigten Komponenten noch weitere Komponenten aufweisen kann. The operator input element (s) 12 are provided so that an operator can enter information for processing and / or information for the control of the digital computer system 10 . The display device 13 and the loudspeakers 15 are provided in order to display output information in visual form on a screen 14 and output information in audio form that is generated by the processor module 11 and the data that the operator can enter for processing and information that the operator can input to control processing, as well as include information generated during processing. The processor module 11 generates information for display by the display device 13 using a so-called "graphical user interface"("GUI") in which information for various application programs is displayed using different "windows". Although the computer system 10 is shown with special components, such as the keyboard 12 A and the mouse 12 B for receiving input information from an operator and a display device 13 for displaying output information to the operator, it is understood that the computer system 10 may have additional components in addition to or instead of the components shown in FIG. 1.

Das Prozessormodul 11 kann zusätzlich ein oder mehrere Netzwerk- oder Kommunikations-Ports aufweisen, die allge­ mein mit dem Bezugszeichen 15 bezeichnet sind, und die mit Kommunikations-Verbindungsleitungen verbunden werden können, um das Computersystem 10 an ein Computernetzwerk oder an andere Computersysteme (nicht gezeigt) über bei­ spielsweise das öffentliche Telefonsystem zu verbinden. Die Ports ermöglichen dem Computersystem 10, Information an andere Computersysteme und andere Geräte in dem Netz­ werk zu übertragen und von diesen zu empfangen.Processor module 11 may additionally include one or more network or communication ports, generally designated 15 , which may be connected to communication interconnect lines to connect computer system 10 to a computer network or other computer systems (not shown) ) to connect to the public telephone system, for example. The ports enable the computer system 10 to transmit and receive information from other computer systems and other devices in the network.

Die Erfindung schafft eine Anordnung, die nachstehend im Zusammenhang mit Fig. 2 beschrieben wird, zum Vereinfa­ chen der Kommunikation in einem digitalen Computersystem zwischen einem Programm oder einem anderen Objekt, die in einer virtuellen Maschine in dem digitalen Computersystem verarbeitet werden, und einem Programm oder einem anderen Objekt, die in einer nativen Ausführungsumgebung in dem digitalen Computersystem verarbeitet werden. In einem Ausführungsbeispiel sieht die virtuelle Maschine eine Ja­ va-Ausführungsumgebung für die Verarbeitung von Program­ men oder anderen Objekten vor, die in Form von beispiels­ weise instantiierten Klassen sein können, die in der Ja­ va-Programmiersprache geschrieben worden sind. Die native Ausführungsumgebung kann beispielsweise von dem Betriebs­ system geschaffen werden, welches das Computersystem steuert, wie beispielsweise Unix oder Unix-ähnliche Be­ triebssysteme, Microsoft Windows™ oder NT für einen Per­ sonalcomputer ("PC") oder einer Workstation, MacOS für einen Apple Macintosh Computer und dergleichen. Das/die Programm(e) in der nativen Ausführungsumgebung um­ faßt/umfassen im allgemeinen Programme, die in dem nati­ ven Befehlssatz des Computersystems vorliegen, auch wenn sie im Zusammenhang mit einem oder mehreren entsprechen­ den Verarbeitungen oder virtuellen Maschinen, die von dem Betriebssystem bereitgestellt werden, verarbeitet werden können. The invention provides an arrangement, described below in connection with FIG. 2, for simplifying communication in a digital computer system between a program or another object that is processed in a virtual machine in the digital computer system and a program or another object that is processed in a native execution environment in the digital computer system. In one embodiment, the virtual machine provides a Ja va execution environment for processing programs or other objects, which may be in the form of, for example, instantiated classes written in the Ja va programming language. The native execution environment can be created, for example, by the operating system that controls the computer system, such as Unix or Unix-like operating systems, Microsoft Windows ™ or NT for a personal computer ("PC") or a workstation, MacOS for an Apple Macintosh Computers and the like. The program (s) in the native execution environment generally includes programs that are present in the native instruction set of the computer system, even when associated with one or more of the processing or virtual machines provided by the operating system can be processed.

Gemäß Fig. 2 umfaßt die Kommunikationsanordnung eine Virtuelle-Maschine/Native-Zugriffsüberbrückungseinrich­ tung 20 ("virtual machine/native accessibility bridge") die zwischen einer Ausführungsumgebung 21 der virtuellen Maschine und einer nativen Ausführungsumgebung 22 über­ brückt und die Kommunikation zwischen Programmen und an­ deren Objekten vereinfacht, die in der jeweiligen Ausfüh­ rungsumgebung 21 und 22 verarbeitet werden. In der Aus­ führungsumgebung der virtuellen Maschine werden Programme 23, instantiierte Klassen 24 und andere Objekte (nicht einzeln dargestellt) unter Steuerung eines Steuerungsmo­ duls 25 der virtuellen Maschine verarbeitet. In einem Ausführungsbeispiel werden die Programme 23, die instan­ tiierten Klassen 24 und andere Objekte von in der Java­ programmiersprache geschriebenen Programmen erzeugt, die unter Steuerung des Steuerungsmoduls 25 der virtuellen Maschine verarbeitet werden. Andererseits umfassen die in der nativen Ausführungsumgebung verarbeiteten Programme 26 im allgemeinen diejenigen in dem nativen Befehlssatz des Computersystems 10.Referring to FIG. 2, the communication device comprises a virtual machine / Native-Zugriffsüberbrückungseinrich tung 20 ( "Virtual Machine / native accessibility bridge") between an execution environment 21 of the virtual machine and a native execution environment 22 via bridged and communication between programs and on the Simplifies objects that are processed in the respective execution environment 21 and 22 . In the execution environment of the virtual machine, programs 23 , instantiated classes 24 and other objects (not shown individually) are processed under the control of a control module 25 of the virtual machine. In one embodiment, programs 23 , instantiated classes 24, and other objects are created by programs written in the Java programming language that are processed under control of control module 25 of the virtual machine. On the other hand, the programs 26 processed in the native execution environment generally include those in the native instruction set of the computer system 10 .

Die Virtuelle-Maschine/Native-Zugriffsüberbrückungsein­ richtung 20 weist drei grundsätzliche Bauteile auf, näm­ lich ein Überbrückungsklassenobjekt 30 der virtuellen Ma­ schine ("virtual machine bridge class object"), dynami­ sche Verknüpfungsbibliotheken nativer Überbrückungen ("DLLs") 31 und 32 ("native bridge dynamic link libraries") und einen nativen Kommunikationsmechanismus 33. Der native Kommunikationsmechanismus 33 stellt im allgemeinen einen Kommunikationsmechanismus dar, der von dem Be­ triebssystem des Computersystems bereitgestellt wird, wie ein Mechanismus für einen gemeinsam geteilten Speicher ("shared memory mechanism"), ein Benachrichtigungsmecha­ nismus usw. Beispielsweise werden bei einem Kommunikati­ onsmechanismus für einen gemeinsam geteilten Speicher ein vorbestimmter Bereich des von der Ausführungsumgebung 21 der virtuellen Maschine verwendeten Adreßraums und ein vorbestimmter Bereich des Adreßraums, in dem die nativen Anwendungsprogramme 26 verarbeitet werden, gemeinsam ge­ teilt. Falls ein Programm 23 und eine instantiierte Klas­ se 24 in der Ausführungsumgebung 21 der virtuellen Ma­ schine Information an ein natives Anwendungsprogramm 26 in der nativen Ausführungsumgebung 22 übertragen muß, wird es (d. h., das Programm 23 oder die instantiierte Klasse 24 unter Steuerung des Steuerungsmoduls 25 der virtuellen Maschine 25) das Überbrückungsklassenobjekt 30 der virtuellen Maschine aktivieren, Information an die zugehörige DLL 31 nativer Überbrückungen zu übertragen, die Information in den gemeinsam geteilten Bereich des Adreßraums zu laden. Die DLL 32 nativer Überbrückungen kann ihrerseits die Information aus dem gemeinsam geteil­ ten Bereich des Adreßraums wiedergewinnen und diese an das native Anwendungsprogramm 26 liefern, das die Infor­ mation empfangen soll. Umgekehrt aktiviert ein natives Anwendungsprogramm 26 in der nativen Ausführungsumgebung 22 die DLL 32 nativer Überbrückungen, die Information in den gemeinsam geteilten Bereich des Adreßraums zu laden, falls es Information an ein Programm 23 oder eine instan­ tiierte Klasse in der Ausführungsumgebung 21 der virtuel­ len Maschine übertragen muß. Die DLL 31 nativer Überbrüc­ kungen gewinnt die Information aus dem gemeinsam geteil­ ten Bereich des Adreßraums wieder und liefert die Infor­ mation an das Überbrückungsklassenobjekt 30 der virtuel­ len Maschine, das unter Steuerung des Steuerungsmoduls 25 der virtuellen Maschine diese Information an das Programm 23 oder die instantiierte Klasse 24 der virtuellen Ma­ schine liefern kann, welche(s) die Information empfangen soll. Andererseits kann in einem Benachrichtigungsmecha­ nismus die DLL 31 nativer Überbrückungen und die DLL 32 nativer Überbrückungen, anstatt Information zu laden oder wiederzugewinnen, die in einen gemeinsam geteilten Be­ reich ihrer entsprechenden Adreßräume übertragen werden muß, eine Nachricht erzeugen, einschließlich der zu über­ tragenden Information, die an das andere Element adres­ siert ist, und die Information unter Verwendung eines von dem Betriebssystem bereitgestellten Nachrichtenübertra­ gungsmechanismusses übertragen. Im Zusammenhang mit ande­ ren Typen von Kommunikationsmechanismen durchgeführte Operationen sind dem Durchschnittsfachmann bekannt und werden hier nicht näher erläutert.The virtual machine / native access bridging device 20 has three basic components, namely a bridging class object 30 of the virtual machine ("virtual machine bridge class object"), dynamic linkage libraries of native bridging ("DLLs") 31 and 32 (" native bridge dynamic link libraries ") and a native communication mechanism 33 . The native communication mechanism 33 generally represents a communication mechanism provided by the operating system of the computer system, such as a shared memory mechanism, a notification mechanism, etc. For example, a communication mechanism for one shared memory shares a predetermined area of the address space used by the virtual machine execution environment 21 and a predetermined area of the address space in which the native application programs 26 are processed. If a program 23 and an instantiated class 24 in the execution environment 21 of the virtual machine have to transmit information to a native application program 26 in the native execution environment 22 , it will (ie, the program 23 or the instantiated class 24 under the control of the control module 25 of the virtual machine 25 ) activate the bridging class object 30 of the virtual machine to transmit information to the associated DLL 31 of native bridging, to load the information into the shared area of the address space. The DLL 32 native bridges can in turn retrieve the information from the shared area of the address space and deliver it to the native application program 26 that is to receive the information. Conversely, a native application program 26 in the native execution environment 22 enables the DLL 32 native bridges to load the information into the shared area of the address space if it transfers information to a program 23 or an instan tiated class in the execution environment 21 of the virtual machine got to. The DLL 31 native bridging regains the information from the shared area of the address space and delivers the information to the bridging class object 30 of the virtual machine, which, under the control of the control module 25 of the virtual machine, instantiates this information to the program 23 Class 24 of the virtual machine can supply which (s) should receive the information. On the other hand, in a notification mechanism, the DLL 31 native bridges and the DLL 32 native bridges, instead of loading or retrieving information to be transferred to a shared area of their corresponding address spaces, can generate a message including the information to be transmitted, which is addressed to the other element and transmit the information using a message transmission mechanism provided by the operating system. Operations performed in connection with other types of communication mechanisms are known to those of ordinary skill in the art and will not be discussed further here.

Das Überbrückungsklassenobjekt 30 der virtuellen Maschine ist ein Objekt, das in der Ausführungsumgebung 21 der virtuellen Maschine instantiiert ist und ermöglicht, In­ formation zwischen der Ausführungsumgebung 21 der virtu­ ellen Maschine und der DLL 31 nativer Überbrückungen un­ ter Verwendung eines von der Ausführungsumgebung 21 der virtuellen Maschine bereitgestellten herkömmlichen Mecha­ nismus zu übertragen, um die Informationsübertragung zwi­ schen dieser und der nativen Ausführungsumgebung 22 zu vereinfachen. In einem Ausführungsbeispiel, in dem die Ausführungsumgebung 21 der virtuellen Maschine verwendet wird, um Programme in der Java-Programmiersprache zu ver­ arbeiten, kann der Mechanismus beispielsweise den JNI-Mechanismus (JNI = "Java/native interface", d. h. Ja­ va/Nativ-Interface) umfassen. Jeder der DLLs 31 und 32 nativer Überbrückungen umfaßt eine dynamische Verknüp­ fungsbibliothek, die von dem Betriebssystem auf die An­ frage von einem nativen Anwendungsprogramm 26 geladen und dorthin verknüpft werden kann, um dabei verwendet zu wer­ den, während es (d. h., das native Anwendungsprogramm 26) verarbeitet wird. Es kann entweder die dem Überbrückungs­ klassenobjekt 30 der virtuellen Maschine zugeordnete DLL 31 nativer Überbrückungen oder die dem nativen Anwen­ dungsprogramm 26 zugeordnete DLL 32 nativer Überbrückun­ gen initialisiert werden und zuerst zu arbeiten beginnen. Wenn die anderen ebenfalls zu arbeiten beginnen, wird je­ de die andere benachrichtigen, worauf diese Information durch den nativen Kommunikationsmechanismus 33 unter Ver­ wendung eines Rendezvous-Mechanismus übertragen können. Genauer gesagt, wenn entweder die DLL 31 nativer Über­ brückungen oder die DLL 32 nativer Überbrückungen geladen ist und den Betrieb aufnimmt, wird sie den Kommunikati­ onsmechanismus 33 befragen, zu bestimmen, ob eine Benach­ richtigung von der anderen bereitgestellt worden ist, daß diese (d. h., die andere) geladen worden und in Betrieb ist. Zusätzlich wird sie (d. h., die gerade geladene und laufende DLL 31 nativer Überbrückungen bzw. DLL 32 nati­ ver Überbrückungen) eine Benachrichtigung für die Über­ tragung an die andere durch den nativen Kommunikationsme­ chanismus 33 erzeugen. Wenn die andere (d. h., die andere DLL 32 nativer Überbrückungen bzw. DLL 31 nativer Über­ brückungen) geladen ist und den Betrieb aufnimmt, wird sie auch den nativen Kommunikationsmechanismus 33 befra­ gen und die zuvor dorthin geladene Benachrichtigung emp­ fangen, und zusätzlich eine Benachrichtigung für die Übertragung durch den nativen Kommunikationsmechanismus 33 an die andere DLL 31 nativer Überbrückungen bzw. DLL 32 nativer Überbrückungen erzeugen, daß sie geladen und in Betrieb genommen werden muß. Die erste wird dann die Benachrichtigung erhalten. Wenn sowohl die DLL 31 nativer Überbrückungen als auch die DLL 32 nativer Überbrückungen die Benachrichtigung von der anderen empfangen haben, be­ findet sie sich in dem Zustand, Information an die andere durch den nativen Kommunikationsmechanismus 33 zu über­ tragen, und kann so das Überbrückungsklassenobjekt 30 der virtuellen Maschine und das entsprechende native Anwen­ dungsprogramm 26 benachrichtigen.The virtual machine bridging class object 30 is an object that is instantiated in the virtual machine execution environment 21 and enables information between the virtual machine execution environment 21 and the DLL 31 native bridges using one of the virtual machine execution environment 21 provided conventional mechanism to simplify the information transfer between this and the native execution environment 22 . In an embodiment in which the execution environment 21 of the virtual machine is used to process programs in the Java programming language, the mechanism can, for example, the JNI mechanism (JNI = "Java / native interface", ie Ja va / Nativ- Interface) include. Each of the DLLs 31 and 32 native bridges includes a dynamic link library that can be loaded by the operating system upon request from a native application program 26 and linked there to be used while it (ie, the native application program 26 ) is processed. Either the DLL 31 native bridges assigned to the bridging class object 30 of the virtual machine or the DLL 32 native bridges assigned to the native application program 26 can be initialized and started to work first. If the others also start to work, each will notify the other of what this information can be transmitted through the native communication mechanism 33 using a rendezvous mechanism. More specifically, when either the DLL 31 native bridges or the DLL 32 native bridges are loaded and operational, it will ask the communication mechanism 33 to determine whether a notification has been provided by the other that this (i.e. , the other) has been loaded and is in operation. In addition, it (ie, the currently loaded and running DLL 31 native bridges or DLL 32 native bridges) will generate a notification for the transfer to the other through the native communication mechanism 33 . When the other (ie, the other DLL 32 native bridges or DLL 31 native bridges) is loaded and starts operating, it will also query the native communication mechanism 33 and receive the notification previously loaded there, and in addition a notification for the transmission through the native communication mechanism 33 to the other DLL 31 native bridges or DLL 32 native bridges cause it to be loaded and put into operation. The first one will then receive the notification. When both the native bridge DLL 31 and the native bridge DLL 32 received the notification from the other, it is in the state of communicating information to the other through the native communication mechanism 33 , and thus the bridging class object 30 can Notify virtual machine and the corresponding native application program 26 .

Somit kann das Steuerungsmodul 25 der virtuellen Maschine die Überbrückungsklasse der virtuellen Maschine als ein Objekt 30 in der Ausführungsumgebung 21 der virtuellen Maschine instantiieren und das Überbrückungsklassenobjekt 30 der virtuellen Maschine kann die DLL 31 nativer Über­ brückungen aktivieren, geladen und dorthin verknüpft zu werden, unabhängig davon, ob sich die DLL 32 nativer Überbrückungen im Betrieb befindet. Wenn beispielsweise das Steuerungsmodul 25 der virtuellen Maschine das Über­ brückungsklassenobjekt der virtuellen Maschine instanti­ iert und es aktiviert, den Betrieb aufzunehmen, aktiviert das Überbrückungsklassenobjekt 30 der virtuellen Maschine die DLL 31 nativer Überbrückungen, geladen zu werden und befragt den nativen Kommunikationsmechanismus 33, zu be­ stimmen, ob die DLL 32 nativer Überbrückungen eine Be­ nachrichtigung geliefert hat, und erzeugt zusätzlich eine Benachrichtigung für die Übertragung an den nativen Kom­ munikationsmechanismus 33. Falls die DLL 31 nativer Über­ brückungen in Antwort auf die Anfrage eine Benachrichti­ gung von dem nativen Kommunikationsmechanismus 33 emp­ fängt, bestimmt das Überbrückungsklassenobjekt 30, daß die DLL 32 nativer Überbrückungen bereits in Betrieb ist, und daß es (d. h., das Überbrückungsklassenobjekt der vir­ tuellen Maschine) Information von den Programmen 23 und instantiierten Klassen 24 zu jeweiligen nativen Anwen­ dungsprogrammen 26 in der nativen Ausführungsumgebung 22 übertragen kann. Falls die DLL 31 nativer Überbrückungen andererseits keine Benachrichtigung von dem nativen Kom­ munikationsmechanismus 33 in Antwort auf die Anfrage emp­ fängt, wartet das Überbrückungsklassenobjekt 30 der vir­ tuellen Maschine, bis es später eine Benachrichtigung von der DLL 32 nativer Überbrückungen durch den nativen Kom­ munikationsmechanismus 33 empfängt.Thus, the control module 25 of the virtual machine can instantiate the bridging class of virtual machine as an object 30 in the execution environment 21 of the virtual machine and the bridging class object 30 of the virtual machine may activate brückungen 31 native About the DLL loaded and to be connected thereto, regardless of whether the DLL 32 native bridges are in operation. For example, if the control module 25 of the virtual machine, the About brückungsklassenobjekt the virtual machine instanti ated and activated to start the operation, 30 activates the DLL 31 native jumpers to load the bridging class object of the virtual machine and questioned the native communication mechanism 33, agree to be whether the DLL 32 native bridges has provided a notification and additionally generates a notification for transmission to the native communication mechanism 33 . If the native bridging DLL 31 receives notification from the native communication mechanism 33 in response to the request, the bridging class object 30 determines that the native bridging DLL 32 is already in operation and that it (ie, the bridging class object of the virtual one) Machine) information from the programs 23 and instantiated classes 24 to respective native application programs 26 in the native execution environment 22 can be transmitted. On the other hand, if the native bridging DLL 31 does not receive notification from the native communication mechanism 33 in response to the request, the virtual machine bridging class object 30 waits until it later receives notification from the native communication mechanism 33 of the native bridging DLL 32 .

Entsprechende Operationen treten auf, wenn die DLL 32 na­ tiver Überbrückungen geladen wird und den Betrieb auf­ nimmt, bevor das Überbrückungsklassenobjekt 30 der virtu­ ellen Maschine instantiiert ist. Das heißt, wenn das Be­ triebssystem die DLL 32 nativer Überbrückungen lädt und es aktiviert, den Betrieb aufzunehmen, fragt sie (d. h., die DLL nativer Überbrückungen 32) den nativen Kommunika­ tionsmechanismus 33 an, zu bestimmen, ob das Überbrüc­ kungsklassenobjekt 30 der virtuellen Maschine eine Be­ nachrichtigung geliefert hat, und zusätzlich erzeugt es eine Benachrichtigung für die Übertragung an den nativen Kommunikationsmechanismus 33. Falls die DLL 32 nativer Überbrückungen in Antwort auf die Anfrage eine Benach­ richtigung von dem nativen Kommunikationsmechanismus 33 empfängt, bestimmt sie, daß das Überbrückungsklassenob­ jekt 30 der virtuellen Maschine bereits in Betrieb ist und daß sie (d. h., die DLL 32 nativer Überbrückungen) In­ formation von den nativen Anwendungsprogrammen 26 an je­ weilige Programme 23 und instantiierte Klassen 24 in der Ausführungsumgebung 21 der virtuellen Maschine übertragen kann. Falls die DLL 32 nativer Überbrückungen anderer­ seits keine Benachrichtigung von dem nativen Kommunikati­ onsmechanismus 33 in Antwort auf die Anfrage empfängt, wartet sie, bis sie später eine Benachrichtigung von dem Überbrückungsklassenobjekt 30 der virtuellen Maschine über den nativen Kommunikationsmechanismus 33 empfängt.Corresponding operations occur when the DLL 32 of native bridges is loaded and begins operating before the bridging class object 30 of the virtual machine is instantiated. That is, when the operating system loads the native bridge DLL 32 and enables it to start operating, it queries (ie, the native bridge DLL 32 ) the native communication mechanism 33 to determine whether the virtual machine bridging class object 30 has provided a notification and, in addition, generates a notification for transmission to the native communication mechanism 33 . If the DLL 32 native bridging receives a notification from the native communication mechanism 33 in response to the request, it determines that the virtual machine bridging class object 30 is already operational and that it (ie, the DLL 32 native bridging) is in information from the native application programs 26 to respective programs 23 and instantiated classes 24 in the execution environment 21 of the virtual machine. On the other hand, if the DLL 32 does not receive native bridging notifications from the native communication mechanism 33 in response to the request, it waits until it later receives notification from the virtual machine bridging class object 30 via the native communication mechanism 33 .

In jedem Fall können die DLL 31 und die DLL 32 nativer Überbrückungen, nachdem sie festgestellt haben, daß die jeweilige andere initialisiert worden ist und in Betrieb ist, Information zwischen den Programmen 23 und instanti­ ierten Kasten 24 einerseits und den nativen Anwendungs­ programmen 26 andererseits unter Verwendung des nativen Kommunikationsmechanismusses 33 übertragen.In any case, the DLL 31 and the DLL 32 native bridging, after they have determined that the other has been initialized and is in operation, information between the programs 23 and instantiated box 24 on the one hand and the native application programs 26 on the other Transfer using the native communication mechanism 33 .

Ein spezielles Beispiel ist für das Verständnis der Aus­ gaben hilfreich, die von der in Fig. 2 gezeigten Anord­ nung im Zusammenhang mit der Informationsübertragung zwi­ schen den Programmen 23 und instantiierten Klasse 24 ei­ nerseits und den nativen Anwendungsprogrammen 26 anderer­ seits unter Verwendung des nativen Kommunikationsmecha­ nismusses 33 durchgeführten werden. In diesem Beispiel ist eines der nativen Anwendungsprogramme 26 ein Bild­ schirmleseprogramm, das Information erzeugt, welche die Lautsprecher 15 des Computersystems aktiviert, Audio-Dar­ bietungen der Information zu erzeugen, die auf dem Bildschirmgerät 13 des Computersystems angezeigt werden würde. Zusätzlich erzeugen ein oder mehrere Programme 23 und/oder instantiierte Klassen 24 Informationen, die auf dem Bildschirmgerät 13 angezeigt würden. Zum Aktivieren des Bildschirmleseprogramms, Information für Bildschirm­ bereiche zu erzeugen, welche die Bildinformation darstel­ len, die von den Programmen 23 und/oder instantiierten Klassen 24 erzeugt werden, müßte in diesem Fall die von den Programmen 23 und/oder instantiierten Klassen 24 er­ zeugte Bildinformation dem Bildschirmleseprogramm bereit­ gestellt werden.A specific example is helpful for understanding the outputs from the arrangement shown in FIG. 2 in connection with the information transfer between the programs 23 and instantiated class 24 on the one hand and the native application programs 26 on the other using the native communication mecha 33 must be carried out. In this example, one of the native application programs 26 is a screen reader program that generates information that activates the speakers 15 of the computer system to produce audio presentations of the information that would be displayed on the display device 13 of the computer system. In addition, one or more programs 23 and / or instantiated classes 24 generate information that would be displayed on the screen device 13 . To create ranges for the screen to enable the screen reader, information, which len the image information depicting which of the programs 23 and / or instantiated classes 24 are created by the programs 23 and / or instantiated class would in this case 24, he testified image information be made available to the screen reader.

Um dies durchzuführen, müßte das Bildschirmleseprogramm das Betriebssystem aktivieren, die DLL 32 nativer Über­ brückungen zu laden und sie (d. h., die DLL 32 nativer Überbrückungen) mit dem Bildschirmleseprogramm zu ver­ knüpfen. Zusätzlich müßte eine der instantiierten Klassen 24 als eine von einer "Unterstützungstechnologie" instan­ tiierte Klasse ("assistive technology instantiated class") in der Ausführungsumgebung 21 der virtuellen Ma­ schine bereitgestellt werden, die Bildinformation von den Programmen 23 und einer Auswahl der anderen instantiier­ ten Klassen erhalten kann, die Bildinformation für die Bereitstellung über die Virtuelle-Maschine/Native-Zu­ griffsüberbrückungseinrichtung 20 und die DLL 31 nativer Überbrückungen an das Bildschirmleseprogramm erzeugen. Falls das Überbrückungsklassenobjekt 30 der virtuellen Maschine und die DLL 31 nativer Überbrückungen nicht be­ reits geladen und in Betrieb sind, müßte die von einer Unterstützungstechnologie instantiierte Klasse das Steue­ rungsmodul 25 der virtuellen Maschine aktivieren, das Überbrückungsklassenobjekt 30 der virtuellen Maschine zu laden und es in Betrieb zu versetzen. Als Teil dieser Operation aktiviert das Überbrückungsklassenobjekt 30 der virtuellen Maschine die DLL 31 nativer Überbrückungen, damit diese geladen und dorthin verknüpft wird. Danach erzeugt die DLL 31 nativer Überbrückungen eine Benach­ richtigung für die Übertragung an die DLL nativer Über­ brückungen durch den nativen Kommunikationsmechanismus 33, wie oben beschrieben. Zusätzlich empfängt die DLL 31 nativer Überbrückungen, da die DLL 32 nativer Überbrüc­ kungen bereits geladen und in Betrieb ist, eine Benach­ richtigung, wie sie von der DLL 32 nativer Überbrückungen von dem nativen Kommunikationsmechanismus 33 erzeugt wird, wie oben beschrieben, die ihrerseits eine Benach­ richtigung an das Überbrückungsklassenobjekt 30 der vir­ tuellen Maschine liefert. Nachdem das Bildschirmlesepro­ gramm und das Überbrückungsklassenobjekt 30 der virtuel­ len Maschine die jeweiligen Benachrichtigungen von dem nativen Kommunikationsmechanismus 33 empfangen haben, können sie Information untereinander übertragen. Zusätz­ lich benachrichtigt die DLL 32 nativer Überbrückungen das native Anwendungsprogramm 26, mit dem es verknüpft ist, nämlich das Bildschirmleseprogramm, das Information dort hindurch in die Ausführungsumgebung 21 der virtuellen Ma­ schine übertragen werden kann, genauer gesagt, in die in­ stantiierte Klasse zu der von der Unterstützungstechnolo­ gie instantiierten Klasse, und das Überbrückungsklassen­ objekt 30 der virtuellen Maschine kann eine Auswahl der instantiierten Klassen benachrichtigen, daß Information dort hindurch in die native Ausführungsumgebung 22 über­ tragen werden kann.To do this, the screen reader would have to activate the operating system to load the DLL 32 native jumpers and link them (ie, the DLL 32 native jumpers) to the screen reader. In addition, one of the instantiated classes 24 would have to be provided as a "assistive technology instantiated class" in the execution environment 21 of the virtual machine, the image information from the programs 23 and a selection of the other instantiated classes can obtain the image information for the provision via the virtual machine / native access bridging device 20 and the DLL 31 to generate native bridges to the screen reader program. If the virtual machine bridging class object 30 and the native bridging DLL 31 are not already loaded and in operation, the class instantiated by an assistive technology would have to activate the virtual machine control module 25, load the virtual machine bridging class object 30 , and operate it to move. As part of this operation, the bridging class object 30 of the virtual machine activates the native bridging DLL 31 so that it is loaded and linked there. Thereafter, the native bridging DLL 31 generates a notification for transmission to the native bridging DLL by the native communication mechanism 33 as described above. In addition, since the DLL 32 native bridges are already loaded and operating, the DLL 31 native bridges receives a notification as generated by the DLL 32 native bridges from the native communication mechanism 33 , as described above, which in turn is a notification provides direction to the bridging class object 30 of the virtual machine. After the screen reader program and the bridging class object 30 of the virtual machine have received the respective notifications from the native communication mechanism 33 , they can transmit information to one another. In addition, the DLL 32 notifies native bridges of the native application program 26 to which it is associated, namely the screen reader, which information can be transferred therethrough into the execution environment 21 of the virtual machine, more specifically, into the stagnant class to that of the support technology instantiated class, and the virtual machine bridging class object 30 may notify a selection of the instantiated classes that information can be transmitted therethrough to the native execution environment 22 .

Danach können das Bildschirmleseprogramm und die von ei­ ner Unterstützungstechnologie instantiierte Klasse mit­ einander kommunizieren, um Information durch den nativen Kommunikationsmechanismus 33 zu übertragen. Bei dieser Operation kann das Bildschirmleseprogramm, als Informati­ on, der von einer Unterstützungstechnologie instantiier­ ten Klasse eine Anfrage für die Übertragung an die von einer Unterstützungstechnologie instantiierten Klasse übertragen, wobei um eine Bildschirminformation angefragt wird, die von einem Programm 23 und/oder einer anderen instantiierten Klasse 24 in der Ausführungsumgebung 21 der virtuellen Maschine erzeugt wird. Das Bildschirmlese­ programm verwendet die DLL 32 nativer Überbrückungen, um die Anfrage an den nativen Kommunikationsmechanismus 33 zu übertragen. Der native Kommunikationsmechanismus 33 überträgt die Anfrage durch die DLL 31 nativer Überbrüc­ kungen an das Überbrückungsklassenobjekt 30 der virtuel­ len Maschine, das seinerseits die Anfrage an die von ei­ ner Unterstützungstechnologie instantiierte Klasse über­ trägt.Thereafter, the screen reader and the class instantiated by an assistive technology can communicate with each other to transmit information through the native communication mechanism 33 . In this operation, the screen reader, as information, can transmit a request for transmission to a class instantiated by a support technology from a support technology to the class instantiated by a support technology, requesting screen information that is instantiated by a program 23 and / or another Class 24 is created in the execution environment 21 of the virtual machine. The screen reader program uses the DLL 32 native bridges to transmit the request to the native communication mechanism 33 . The native communication mechanism 33 transmits the request through the native bridging DLL 31 to the bridging class object 30 of the virtual machine, which in turn transmits the request to the class instantiated by a support technology.

Wenn die von einer Unterstützungstechnologie instantiier­ te Klasse die Anfrage von dem Überbrückungsklassenobjekt 30 der virtuellen Maschine empfängt, falls ein Programm 23 und/oder eine andere instantiierte Klasse 24 Bild­ schirminformationen für die Bereitstellung an die von ei­ ner Unterstützungstechnologie instantiierte Klasse hat, erhält sie (d. h., die von einer Unterstützungstechnologie instantiierte Klasse) die Bildschirminformation von einem Programm 23 und/oder einer anderen instantiierten Klasse 24 in der Ausführungsumgebung 21 der virtuellen Maschine und liefert sie an das Überbrückungsklassenobjekt 30 der virtuellen Maschine. Das Überbrückungsklassenobjekt 30 der virtuellen Maschine überträgt dann die Bildschirmin­ formation durch die DLL 31 nativer Überbrückungen an den nativen Kommunikationsmechanismus 33, der seinerseits die Bildschirminformation an die DLL 32 nativer Überbrückun­ gen überträgt, die ihrerseits die Bildschirminformation an das Bildschirmleseanwendungsprogramm liefert. Nachdem das Bildschirmleseanwendungsprogramm die Bildschirminfor­ mation empfangen hat, kann es diese auf eine herkömmliche Weise verwenden.When the class instantiated by an assistive technology receives the request from the bridging class object 30 of the virtual machine, if a program 23 and / or another instantiated class 24 has screen information for delivery to the class instantiated by an assistive technology, it receives (i.e. , the class instantiated by a support technology) and delivers the screen information from a program 23 and / or another instantiated class 24 in the execution environment 21 of the virtual machine and to the bridging class object 30 of the virtual machine. The bridging class object 30 of the virtual machine then transmits the screen information through the DLL 31 native bridges to the native communication mechanism 33 , which in turn transmits the screen information to the DLL 32 native bridges, which in turn provides the screen information to the screen reader application program. After the screen reader application has received the screen information, it can use it in a conventional manner.

Es ist selbstverständlich, daß, falls die von einer Un­ terstützungstechnologie instantiierte Klasse bestimmt, daß kein Programm 23 und/oder andere instantiierte Klasse 24 eine dorthin zu liefernde Bildschirminformation hat, sie Information so erzeugen kann, welche eine Bereitstel­ lung an das Bildschirmleseprogramm anzeigt. Die von einer Unterstützungstechnologie instantiierte Klasse kann sol­ che Information an das Bildschirmleseprogramm durch das Überbrückungsklassenobjekt 30 der virtuellen Maschine, den nativen Kommunikationsmechanismus 33 und die DLL 32 nativer Überbrückungen auf dieselbe Weise wie die oben beschriebene Bildschirminformation übertragen.It goes without saying that if the class instantiated by a support technology determines that no program 23 and / or other instantiated class 24 has screen information to be delivered there, it can generate information indicating provision to the screen reader. The class instantiated by an assistive technology can transmit such information to the screen reader through the virtual machine lockup class object 30 , the native communication mechanism 33, and the native bridge DLL 32 in the same manner as the screen information described above.

Danach kann das Bildschirmleseprogramm wiederum Bild­ schirminformation anfragen, und die von einer Unterstüt­ zungstechnologie instantiierte Klasse kann Bildschirmin­ formation bereitstellen, oder eine Anzeige, daß keine Bildschirminformation bereitgestellt wird, auf ähnliche Weise, in einer Iterationsabfolge. Alternativ kann die von einer Unterstützungstechnologie instantiierte Klasse automatisch in Antwort auf eine einzelne Anfrage von dem Bildschirmleseprogramm iterativ oder kontinuierlich Bild­ schirminformation von dem Programm 23 und/oder anderen instantiierten Klassen für die Bereitstellung an das Bildschirmleseprogramm aufähnliche Weise, wie oben be­ schrieben, anfragen.Thereafter, the screen reader may again request screen information, and the class instantiated by a support technology may provide screen information, or an indication that screen information is not provided, in a similar manner, in an iteration sequence. Alternatively, the class instantiated by support technology may automatically iteratively or continuously request screen information from program 23 and / or other instantiated classes for delivery to the screen reader in a manner similar to that described above in response to a single request from the screen reader.

Mit diesem Hintergrund werden die von dem Überbrückungs­ klassenobjekt 30 der virtuellen Maschine und der DLL 32 nativer Überbrückungen durchgeführten Operationen im Zu­ sammenhang mit dem in Fig. 3 dargestellten Flußdiagramm beschrieben. Gemäß Fig. 3 erzeugt, nachdem das Steue­ rungsmodul 25 der virtuellen Maschine das Überbrückungs­ klassenobjekt 30 der virtuellen Maschine instantiiert und es zum Laufen bringt (Schritt 100), das Überbrückungs­ klassenobjekt 30 der virtuellen Maschine eine Benachrich­ tigung für die Übertragung an die DLL 32 nativer Über­ brückungen, die anzeigt, daß sie für die Informati­ onsübertragung mit dieser durch den nativen Kommunikati­ onsmechanismus 33 bereit ist (Schritt 101). Das Überbrüc­ kungsklassenobjekt 30 der virtuellen Maschine kann von dem Steuerungsmodul 25 der virtuellen Maschine automa­ tisch oder in Antwort auf eine Anfrage danach von einem Programm 23 oder einer instantiierten Klasse 24 instanti­ iert werden, die in der Ausführungsumgebung 21 der virtu­ ellen Maschine arbeiten. Nachdem das Überbrückungsklas­ senobjekt der virtuellen Maschine instantiiert ist, kann es die DLL 31 nativer Überbrückungen aktivieren, geladen und dorthin verknüpft zu werden (Schritt 102). Zusätzlich fragt die DLL 31 nativer Überbrückungen den nativen Kom­ munikationsmechanismus 33 an, zu bestimmen, ob er eine Benachrichtigung von der DLL 32 nativer Überbrückungen enthält, die anzeigt, daß diese für die Informationsüber­ tragung mit dem Überbrückungsklassenobjekt 30 der virtu­ ellen Maschine bereit ist (Schritt 103) Falls die Be­ stimmung der DLL 31 nativer Überbrückungen im Schritt 103 negativ ist, wiederholt diese den Schritt 103, bis ihre Bestimmung positiv ist, worauf sie das Überbrückungsklas­ senobjekt 30 der virtuellen Maschine benachrichtigt (Schritt 104). Nachdem das Überbrückungsklassenobjekt 30 der virtuellen Maschine eine Benachrichtigung von der DLL 31 nativer Überbrückungen in Schritt 104 empfangen hat, ist es in dem Zustand, Information mit der DLL 32 nativer Überbrückungen durch den nativen Kommunikationsmechanis­ mus 33 zu übertragen, und es (d. h., das Überbrückungs­ klassenobjekt 30 der virtuellen Maschine) kann das Steue­ rungsmodul 25 der virtuellen Maschine oder entsprechende Programme 23 oder instanstiierte Klassen 24 dementspre­ chend benachrichtigen.With this background, the operations performed by the bridging class object 30 of the virtual machine and the DLL 32 native bridging are described in connection with the flowchart shown in FIG. 3. Generated according to Fig. 3, after the Steue extension module 25 of the virtual machine, the bypass class object 30 instantiated in the virtual machine it to work brings (step 100), the bridging class object 30 of the virtual machine a Notify your actuation for transmission to the DLL 32 of native Via bridges that indicate that it is ready to transfer information therewith through the native communication mechanism 33 (step 101 ). The bridging class object 30 of the virtual machine can be instantiated automatically by the control module 25 of the virtual machine or in response to a request for it by a program 23 or an instantiated class 24 that operate in the execution environment 21 of the virtual machine. After the virtual machine bridging class object is instantiated, it can activate the native bridging DLL 31 , load it, and link it there (step 102 ). In addition, the native bridging DLL 31 queries the native communication mechanism 33 to determine whether it contains a notification from the native bridging DLL 32 indicating that it is ready to transmit information with the bridging class object 30 of the virtual machine (step 103 ) If the determination of the DLL 31 native bridging in step 103 is negative, it repeats step 103 until its determination is positive, whereupon it notifies the bridging class object 30 of the virtual machine (step 104 ). After the virtual machine bridging class object 30 receives a notification from the native bridging DLL 31 in step 104 , it is in the state of transmitting information with the native bridging DLL 32 through the native communication mechanism 33 and it (ie, the bridging class object 30 of the virtual machine) can accordingly inform the control module 25 of the virtual machine or corresponding programs 23 or instanced classes 24 .

Auf ähnliche Weise erzeugt, nachdem das Betriebssystem die DLL nativer Überbrückungen geladen und sie in Betrieb gesetzt hat (Schritt 110), die DLL 32 nativer Überbrüc­ kungen eine Benachrichtigung für die Übertragung an die DLL 31 nativer Überbrückungen, die anzeigt, daß sie für die Übertragung von Information mit dieser durch den na­ tiven Kommunikationsmechanismus 33 bereit ist (Schritt 111). Die DLL 32 nativer Überbrückungen wird im allgemei­ nen von dem Betriebssystem in Antwort auf eine Anfrage danach von einem nativen Anwendungsprogramm 26 geladen, das in der nativen Ausführungsumgebung 22 arbeitet. Zu­ sätzlich fragt die DLL 32 nativer Überbrückungen den na­ tiven Kommunikationsmechanismus 33 an, zu bestimmen, ob er eine Benachrichtigung von der DLL 31 nativer Überbrüc­ kungen enthält, die anzeigt, daß diese für die Übertra­ gung von Information mit der DLL 32 nativer Überbrückun­ gen bereit ist (Schritt 112). Falls die Bestimmung der DLL 32 nativer Überbrückungen im Schritt 112 negativ ist, wird sie den Schritt 112 wiederholen, bis ihre Bestimmung positiv ist. Nachdem ihre (d. h., der DLL 32 nativer Über­ brückungen) Bestimmungen im Schritt 112 positiv ist, ist sie in dem Zustand, Information mit dem Überbrückungs­ klassenobjekt 30 der virtuellen Maschine durch den nati­ ven Kommunikationsmechanismus 33 und die DLL 31 nativer Überbrückungen zu übertragen, und sie (d. h., die DLL na­ tiver Überbrückungen) kann dementsprechend das native An­ wendungsprogramm 26 benachrichtigen, für das es geladen worden ist.Similarly, after the operating system loads the native bridging DLL and starts it up (step 110 ), the native bridging DLL 32 generates a notification for transmission to the native bridging DLL 31 indicating that it is ready for transmission of information with it through the native communication mechanism 33 is ready (step 111 ). The DLL 32 native bridges is generally loaded by the operating system in response to a request for it from a native application program 26 operating in the native execution environment 22 . In addition, the DLL 32 native bridges requests the native communication mechanism 33 to determine whether it contains a notification from the DLL 31 native bridges indicating that it is ready to transmit information with the DLL 32 native bridges is (step 112 ). If the determination of the DLL 32 native bridges in step 112 is negative, it will repeat step 112 until its determination is positive. After its (ie, the DLL 32 native bridging) determination in step 112 is positive, it is in the state to transmit information with the virtual machine bridging class object 30 through the native communication mechanism 33 and the native bridging DLL 31 , and accordingly (ie, the native bridging DLL) can notify the native application program 26 for which it was loaded.

Nachdem das Überbrückungsklassenobjekt 30 der virtuellen Maschine eine Benachrichtigung von der DLL 32 nativer Überbrückungen empfangen hat (Schritt 102), falls es eine Anfrage von einem Programm 23 oder einer instantiierten Klasse 24 empfängt, welche in der Ausführungsumgebung der virtuellen Maschine arbeiten, Information an ein natives Anwendungsprogramm 26 zu übertragen (Schritt 120), über­ trägt es die Information an die DLL 31 nativer Überbrüc­ kungen (Schritt 121), die ihrerseits an den nativen Kom­ munikationsmechanismus 33 überträgt (Schritt 122). Mit dieser Operation kann, falls der native Kommunikationsme­ chanismus 33 in Form eines gemeinsam geteilten Bereichs des Adreßraums ist, die DLL 31 nativer Überbrückungen die Information in den gemeinsam geteilten Bereich des Adreß­ raums laden. Zusätzlich kann die DLL 31 nativer Überbrüc­ kungen eine Anzeige liefern, welche es der DLL 32 nativer Überbrückungen ermöglicht, benachrichtigt zu werden, daß der gemeinsam geteilte Bereich des Adreßraums Information enthält, den sie wiedergewinnen kann. Alternativ kann die DLL 32 nativer Überbrückungen periodisch den gemeinsam geteilten Bereich des Adreßraums untersuchen, um zu be­ stimmen, ob die DLL 31 nativer Überbrückungen Information für sie dorthin geladen hat (d. h., in den gemeinsam ge­ teilten Bereich des Adreßraums). In jedem Fall wird die DLL 32 nativer Überbrückungen, nachdem sie bestimmt hat, daß der gemeinsam geteilte Bereich des Adreßraums Infor­ mation für sie zur Wiedergewinnung hat, die Information wiedergewinnen (Schritt 123) und diese (d. h., die Infor­ mation) an das native Anwendungsprogramm 26 liefern, für das sie geladen worden ist. Entsprechende Operationen können durchgeführt werden, falls der native Kommunikati­ onsmechanismus 33 andere Mechanismen benutzt, wie bei­ spielsweise eine Meldungsweitergabe für die Informati­ onsübertragung zwischen dem Überbrückungsklassenobjekt 30 der virtuellen Maschine und der DLL 32 nativer Überbrüc­ kungen.After the virtual machine bridging class object 30 has received a notification from the native bridging DLL 32 (step 102 ), if it receives a request from a program 23 or an instantiated class 24 operating in the virtual machine execution environment, information to a native one Transfer application program 26 (step 120 ), it transmits the information to the DLL 31 native bridging (step 121 ), which in turn transmits to the native communication mechanism 33 (step 122 ). With this operation, if the native communication mechanism 33 is in the form of a shared area of the address space, the DLL 31 native bridges can load the information into the shared area of the address space. In addition, the DLL 31 native bridges can provide an indication that enables the DLL 32 native bridges to be notified that the shared area of the address space contains information that it can retrieve. Alternatively, the DLL 32 native bridges can periodically examine the shared area of the address space to determine whether the DLL 31 native bridges loaded information thereon for them (ie, the shared area of the address space). In any event, after determining that the shared area of the address space has information for it to retrieve, the DLL 32 native bridges will retrieve the information (step 123 ) and pass it (ie, the information) to the native application program 26 for which it was loaded. Corresponding operations can be performed if the native communication mechanism 33 uses other mechanisms, such as, for example, message passing for information transfer between the bridging class object 30 of the virtual machine and the DLL 32 native bridging.

Auf ähnliche Weise wird, nachdem die DLL 32 nativer Über­ brückungen eine Benachrichtigung von dem Überbrückungs­ klassenobjekt 30 der virtuellen Maschine erhalten hat (Schritt 102), falls sie eine Anfrage von einem nativen Anwendungsprogramm 26 für die Übertragung von Information an ein Überbrückungsklassenobjekt 30 der virtuellen Ma­ schine empfangen hat (Schritt 130), sie die Information an den nativen Kommunikationsmechanismus 33 übertragen (Schritt 131). Bei dieser Operation kann, falls der nati­ ve Kommunikationsmechanismus 33 in Form eines gemeinsam geteilten Bereichs des Adreßraums ist, die DLL 32 nativer Überbrückungen die Information in den gemeinsam geteilten Bereich des Adreßraums laden. Zusätzlich kann die DLL 32 nativer Überbrückungen eine Anzeige liefern, welche es der DLL 31 nativer Überbrückungen ermöglicht, benachrich­ tigt zu werden, daß der gemeinsam geteilte Bereich des Adreßraums Information enthält, die sie wiedergewinnen kann. Alternativ kann die DLL 31 nativer Überbrückungen den gemeinsam geteilten Bereich des Adreßraums periodisch untersuchen, um zu bestimmen, ob die DLL 32 nativer Über­ brückungen Information für sie dorthin geladen hat (d. h., in den gemeinsam geteilten Bereich des Adreßraums). In jedem Fall kann die DLL 31 nativer Überbrückungen, nach­ dem sie bestimmt hat, daß der gemeinsam geteilte Bereich des Adreßraums Information für sie zur Wiedergewinnung enthält, die Information wiedergewinnen (Schritt 132) und diese (d. h., die Information) an das Überbrückungsklas­ senobjekt der virtuellen Maschine liefern (Schritt 133), das seinerseits die Information an ein Programm 23 und/oder eine instantiierten Klasse 24 in der Ausfüh­ rungsumgebung 21 der virtuellen Maschine liefert (Schritt 134). Entsprechende Operationen können durchgeführt wer­ den, falls der native Kommunikationsmechanismus 33 andere Mechanismen verwendet, wie beispielsweise eine Meldungs­ weitergabe für die Informationsübertragung zwischen dem Überbrückungsklassenobjekt 30 der virtuellen Maschine und der DLL 32 nativer Überbrückungen.In a similar manner, after the DLL brückungen 32 native via a notification from the bypass class object 30 of the virtual machine has received (step 102), if a request from a native application program 26 for the transmission of information to a bridging class object 30 of the virtual Ma received (step 130 ), they transmit the information to the native communication mechanism 33 (step 131 ). In this operation, if the native communication mechanism 33 is in the form of a shared area of the address space, the DLL 32 native bridges can load the information into the shared area of the address space. In addition, the DLL 32 native bridges can provide an indication which enables the DLL 31 native bridges to be notified that the shared area of the address space contains information that it can retrieve. Alternatively, the DLL 31 native bridges can periodically examine the shared area of the address space to determine whether the DLL 32 native bridges have loaded information there for it (ie, the shared area of the address space). In any case, the DLL 31 native bridging, after determining that the shared area of the address space contains information for it to retrieve, can retrieve the information (step 132 ) and pass it (ie, the information) to the bridging class object deliver virtual machine (step 133 ), which in turn delivers the information to a program 23 and / or an instantiated class 24 in the execution environment 21 of the virtual machine (step 134 ). Corresponding operations can be carried out if the native communication mechanism 33 uses other mechanisms, such as, for example, a message forwarding for the information transfer between the bridging class object 30 of the virtual machine and the DLL 32 of native bridging.

Die Erfindung hat mehrere Vorteile. Insbesondere schafft sie einen Mechanismus, der als Virtuelle-Maschine/Native-Zugriffs­ überbrückungseinrichtung 20 bezeichnet ist, zum Übertragen von Information zwischen Programmen und in­ stantiierten Klassen, die in einer Ausführungsumgebung der virtuellen Maschine verarbeitet werden, wie einer Ausführungsumgebung, die zum Verarbeiten von beispiels­ weise in der Java-Programmiersprache geschriebenen Pro­ grammen verwendet wird, und einem in einer Verarbeitung verarbeitete nativen Programm oder einem anderen Element in der nativen Ausführungsumgebung, die von dem Betriebs­ system das Computersystem bereitgestellt wird. Die Kompo­ nenten der Virtuelle-Maschine/Native-Zugriffsüberbrüc­ kungseinrichtung 20, insbesondere das Überbrückungsklas­ senobjekt 30 der virtuellen Maschine und die DLLs 31 und 32 nativer Überbrückungen übertragen die Information, oh­ ne daß eine Übersetzung benötigt wird, unter Verwendung eines nativen Kommunikationsmechanismus 33, der von dem Betriebssystem des Computersystems bereitgestellt wird. Die DLLs 31 und 32 nativer Überbrückungen könnten ge­ trennt voneinander geladen und initialisiert werden und einen Rendezvous-Mechanismus benutzen, wie oben beschrie­ ben, um der anderen anzuzeigen, daß sie in dem Zustand sind, Information mit dieser zu übertragen.The invention has several advantages. In particular, it provides a mechanism, referred to as a virtual machine / native access bridging device 20 , for transferring information between programs and in stanti classes that are processed in a virtual machine execution environment, such as an execution environment for processing, for example programs written in the Java programming language are used, and a native program processed in processing or another element in the native execution environment provided by the operating system of the computer system. The components of the virtual machine / native access bridging device 20 , in particular the bridging class object 30 of the virtual machine and the DLLs 31 and 32 native bridging transmit the information without the need for translation using a native communication mechanism 33 which is provided by the operating system of the computer system. The DLLs 31 and 32 native bridges could be loaded and initialized separately and used a rendezvous mechanism as described above to indicate to the other that they are in a state to transmit information with them.

Es ist selbstverständlich, daß zahlreiche Modifikationen an der oben beschriebenen Erfindung vorgenommen werden können. Beispielsweise können, wie oben angedeutet, meh­ rere Typen an Mechanismen, die von dem Betriebssystem be­ reitgestellt werden, als der native Kommunikationsmecha­ nismus 33 verwendet werden. Auch wenn die Erfindung im Zusammenhang mit einem einzelnen Überbrückungsklassenob­ jekt 30 der virtuellen Maschine für eine einzelne Ausfüh­ rungsumgebung 21 der virtuellen Maschine zugeordneter DLL 31 und einem einzelnen Exemplar einer DLL 32 beschrieben worden ist, ist es selbstverständlich, daß mehrerer sol­ cher Objekte 30 für beispielsweise entsprechende Ausfüh­ rungsumgebungen 21 der virtuellen Maschine und mehrere Exemplare solcher DLLs 31 und 32 Information durch den nativen Kommunikationsmechanismus 33 übertragen können.It goes without saying that numerous modifications can be made to the invention described above. For example, as indicated above, several types of mechanisms provided by the operating system can be used than the native communication mechanism 33 . Although the invention has been described in connection with a single bridging class object 30 of the virtual machine for a single execution environment 21 of the virtual machine associated DLL 31 and a single instance of a DLL 32 , it is understood that several such objects 30 for example corresponding execution environments 21 of the virtual machine and multiple copies of such DLLs 31 and 32 can transmit information through the native communication mechanism 33 .

Es ist selbstverständlich, daß das erfindungsgemäße Sy­ stem als ganzes oder teilweise aus einer Spezial-Hardware oder einem Universal-Computersystem aufgebaut sein kann, oder irgendeiner Kombination aus diesen beiden, von denen jeder Teil von einem geeigneten Programm gesteuert werden kann. Jedes Programm kann im Ganzen oder teilweise von einem Teil des Systems auf bekannte Weise umfaßt sein oder auf dem System in bekannter Weise gespeichert sein, oder es kann für das System im Ganzen oder teilweise über ein Netzwerk oder einen anderen Mechanismus zum Übertra­ gen von Information auf bekannte Weise bereitgestellt werden. Außerdem ist es selbstverständlich, daß das Sy­ stem mittels Information bedient und/oder anderweitig ge­ steuert werden kann, die von einem Bediener geliefert wird, der Bedieneingabeelemente (nicht dargestellt) ver­ wendet, die direkt mit dem System verbunden sein können oder die Information an das System über ein Netzwerk oder einen anderen Mechanismus zum Übertragen von Information auf bekannte Weise übertragen können. It goes without saying that the Sy stem as a whole or in part from special hardware or a universal computer system, or any combination of these two, one of which each part can be controlled by a suitable program can. Each program can be in whole or in part by part of the system may be included in a known manner or stored on the system in a known manner, or it can be used for the system in whole or in part a network or other mechanism for transmission information provided in a known manner become. In addition, it goes without saying that the Sy stem operated by means of information and / or otherwise can be controlled by an operator is, the control input elements (not shown) ver uses that can be directly connected to the system or the information to the system over a network or another mechanism for transmitting information can transmit in a known manner.  

FIGUR 3FIGURE 3

100: Steuerungsmodul der virtuellen Maschinen instanti­ iert das Überbrückungskastenobjekt 30 der virtuellen Ma­ schine und setzt es in Betrieb.100: Control module of the virtual machines instantiates the junction box object 30 of the virtual machine and puts it into operation.

101: Überbrückungskastenobjekt 30 der virtuellen Maschine erzeugt eine Benachrichtigung an die DLL 32 nativer Über­ brückungen, die anzeigt, daß sie für die Informati­ onsübertragung mit dieser durch den nativen Kommunikati­ onsmechanismus 32 bereit ist.101: Virtual machine jumper box object 30 generates a notification to the DLL 32 native jumper indicating that it is ready for information transfer therewith through the native communication mechanism 32 .

102: Überbrückungskastenobjekt der virtuellen Maschine aktiviert die DLL 31 nativer Überbrückungen, dorthin ge­ laden und verknüpft zu werden.102: Bridging box object of the virtual machine activates the DLL 31 native bridges to be loaded and linked there.

103: DLL 31 nativer Überbrückungen fragt den nativen Kom­ munikationsmechanismus 32 an, zu bestimmen, ob er eine Benachrichtigung von der DLL 32 nativer Überbrückungen enthält, die anzeigt, daß sie für die Informationsüber­ tragung an das Überbrückungsklassenobjekt 30 der virtuel­ len Maschine bereit ist.103: DLL 31 native bridges requests the native communication mechanism 32 to determine whether it contains a notification from the DLL 32 native bridges indicating that it is ready to transfer information to the bridging class object 30 of the virtual machine.

Ja/Nein.Yes No.

104: DLL 31 nativer Überbrückungen benachrichtigt das Überbrückungsklassenobjekt 30 der virtuellen Maschine, daß es die Benachrichtigung von der DLL 32 nativer Über­ brückungen empfangen hat. 104: DLL 31 native bridges notifies the virtual machine bridging class object 30 that it has received the notification from the DLL 32 native bridges.

FIGUR 3AFIGURE 3A

110: Betriebssystem lädt die DLL 31 nativer Überbrückun­ gen und setzt sie in Betrieb.110: Operating system loads the DLL 31 native jumpers and puts them into operation.

111: DLL 31 nativer Überbrückungen erzeugt eine Benach­ richtigung für die Übertragung an das Überbrückungsklas­ senobjekt 30 der virtuellen Maschine, die anzeigt, daß sie für die Informationsübertragung mit dieser durch den nativen Kommunikationsmechanismus 33 bereit ist.111: DLL 31 native bridges generates a notification for transmission to the bridging class object 30 of the virtual machine, which indicates that it is ready for the information transfer therewith through the native communication mechanism 33 .

112: DLL 31 nativer Überbrückungen fragt den nativen Kom­ munikationsmechanismus 33 an, zu bestimmen, ob er eine Benachrichtigung von dem Überbrückungsklassenobjekt 30 der virtuellen Maschine enthält, das anzeigt, daß dieses für die Informationsübertragung an die DLL 31 nativer Überbrückungen bereit ist.112: DLL 31 native bridges requests the native communication mechanism 33 to determine whether it contains a notification from the virtual machine bridging class object 30 indicating that it is ready to transfer information to the native bridging DLL 31 .

Nein. No.  

FIGUR 3BFIGURE 3B

120: Überbrückungsklassenobjekt 30 der virtuellen Maschi­ ne empfängt eine Anfrage von einem Programm 23 oder einer instantiierten Klasse 24, die in der Ausführungsumgebung der virtuellen Maschine arbeiten, Information an ein na­ tives Anwendungsprogramm 26 zu übertragen.120: bridging class object 30 of the virtual Maschi ne receives a request from one program 23 or an instantiated class 24 that operate in the execution environment of the virtual machine to transfer information to an application program na tive 26th

121: Überbrückungsklassenobjekt 30 der virtuellen Maschi­ ne überträgt die Information an die DLL 31 nativer Über­ brückungen.121: Bridging class object 30 of the virtual machine transmits the information to the DLL 31 of native bridges.

122: DLL 31 nativer Überbrückungen überträgt Information an den nativen Kommunikationsmechanismus 33.122: DLL 31 native bridges transfers information to native communication mechanism 33 .

123: DLL 32 nativer Überbrückungen empfängt, nachdem sie bestimmt hat, daß der native Kommunikationsmechanismus 33 eine Information für diese hat und liefert diese an das native Anwendungsprogramm 26, für das es geladen worden ist. 123: DLL 32 receives native jumpers after determining that the native communication mechanism 33 has information for it and delivers it to the native application program 26 for which it was loaded.

FIGUR 3CFIGURE 3C

130: DLL 32 nativer Überbrückungen empfängt eine Anfrage von dem nativen Anwendungsprogramm 26, Information an das Überbrückungsklassenobjekt 30 der virtuellen Maschine zu übertragen.130: DLL 32 native bridges receives a request from native application program 26 to transfer information to virtual machine bridging class object 30 .

131: DLL 32 nativer Überbrückungen überträgt die Informa­ tion an den nativen Kommunikationsmechanismus 32.131: DLL 32 native bridges transfers the information to the native communication mechanism 32 .

132: DLL 31 nativer Überbrückungen empfängt, nachdem sie bestimmt, daß der native Kommunikationsmechanismus 33 ei­ ne Information für sie hat, die Information und liefert sie an das Überbrückungsklassenobjekt 30 der virtuellen Maschine.132: DLL 31, native bridging, after determining that native communication mechanism 33 has information for it, receives the information and delivers it to bridging class object 30 of the virtual machine.

132: Überbrückungsklassenobjekt 30 der virtuellen Maschi­ ne empfängt, nachdem es bestimmt hat, daß der native Kom­ munikationsmechanismus 32 eine Information für sie hat, die Information und liefert diese ein Programm 23 und/oder eine instantiierte Klasse 24 in der Ausführungs­ umgebung 21 der virtuellen Maschine. 132: Virtual machine bypass class object 30 , after determining that native communication mechanism 32 has information for it, receives the information and provides a program 23 and / or an instantiated class 24 in virtual machine execution environment 21 .

FIGUR 2aFIGURE 2a

Ausführungsumgebung Execution environment

2121

der virtuellen Maschine
Programme
the virtual machine
Programs

2323

der virtuellen Maschine
Steuerung
the virtual machine
control

2525th

der virtuellen Maschine
Instantiierte Klassen
the virtual machine
Instantiated classes

2424th

Überbrückungsklasse Bridging class

3030th

der virtuellen Maschine
native Ausführungsumgebung
the virtual machine
native execution environment

2222

natives Anwendungsprogramm native application program

2626

DLL DLL

3232

nativer Überbrückungen
nativer Kommunikationsmechanismus
native bridges
native communication mechanism

3333

DLL DLL

3131

nativer Überbrückungen
Zugänglichkeitsbrücke
native bridges
Accessibility bridge

2020th

zwischen der virtuellen Maschine und der nativen Umgebungbetween the virtual machine and the native environment

Claims (21)

1. Informationsübertragungs-Subsystem zum Übertragen von Information zwischen einem Programm (23), das in einer Ausführungsumgebung (21) einer virtuellen Ma­ schine verarbeitet wird, und einem Programm (26), das in einer nativen Ausführungsumgebung (22) verar­ beitet wird, in einem digitalen Computersystem, wo­ bei das Informationsübertragungs-Subsystem umfaßt:
  • A. ein in der Ausführungsumgebung (21) der virtuel­ len Maschine instantiierbares Überbrückungsklas­ senobjekt (30) der virtuellen Maschine zum Über­ tragen der Information mit dem Programm (23) in der Ausführungsumgebung (21) der virtuellen Ma­ schine;
  • B. mehrere native Überbrückungsagenten in der nati­ ven Ausführungsumgebung (22), einschließlich ei­ nem ersten nativen Überbrückungsagent (31), der so ausgestaltet ist, die Information mit dem Überbrückungsklassenobjekt (30) der virtuellen Maschine zu übertragen, und einem zweiten nati­ ven Überbrückungsagent (32), der so ausgestaltet ist, die Information mit dem Programm (26) zu übertragen, das in der nativen Ausführungsumge­ bung (22) verarbeitet wird, wobei der erste und der zweite native Überbrückungsagent (31; 32) die Information untereinander durch einen nativen Kommunikationsmechanismus (33) übertragen, der von der nativen Ausführungsumgebung (22) bereit­ gestellt wird.
1. Information transfer subsystem for transferring information between a program ( 23 ), which is processed in an execution environment ( 21 ) of a virtual machine, and a program ( 26 ), which is processed in a native execution environment ( 22 ), in a digital computer system where the information transmission subsystem comprises:
  • A. a bridging class object ( 30 ) of the virtual machine that can be instantiated in the execution environment ( 21 ) of the virtual machine for transmitting the information with the program ( 23 ) in the execution environment ( 21 ) of the virtual machine;
  • B. multiple native bridging agents in the native execution environment ( 22 ), including a first native bridging agent ( 31 ) configured to transmit the information with the bridging class object ( 30 ) of the virtual machine, and a second native bridging agent ( 32 ), which is designed to transmit the information with the program ( 26 ) which is processed in the native execution environment ( 22 ), the first and the second native bridging agent ( 31 ; 32 ) communicating the information with one another by a native one Communication mechanism ( 33 ) transmitted, which is provided by the native execution environment ( 22 ).
2. Informationsübertragungs-Subsystem nach Anspruch 1, bei welchem der native Kommunikationsmechanismus (33) eine Anordnung mit einem gemeinsam geteilten Adreßraums aufweist, in den der erste und der zweite native Überbrückungsagent (31; 32) die Information durch einen Bereich ihrer jeweiligen gemeinsam ge­ teilten Adreßräume übertragen.2. Information transmission subsystem according to claim 1, wherein the native communication mechanism ( 33 ) has an arrangement with a shared address space, in which the first and the second native bridging agent ( 31 ; 32 ) shared the information by a range of their respective ge together Transfer address spaces. 3. Informationsübertragungs-Subsystem nach Anspruch 1 oder 2, bei welchem der native Kommunikationsmecha­ nismus (33) eine Meldungsweitergabeanordnung auf­ weist.3. Information transmission subsystem according to claim 1 or 2, wherein the native communication mechanism ( 33 ) has a message relaying arrangement. 4. Informationsübertragungs-Subsystem nach einem der vorhergehenden Ansprüche, bei welchem der erste na­ tive Überbrückungsagent (31) eine dynamische Ver­ knüpfungsbibliothek aufweist, die so ausgestaltet ist, daß sie für Kommunikationen mit dem Überbrüc­ kungsklassenobjekt (30) der virtuellen Maschine in Antwort auf eine Anfrage danach von dem Überbrüc­ kungsklassenobjekt (30) der virtuellen Maschine ge­ laden und verknüpft wird.The information transfer subsystem according to any one of the preceding claims, wherein the first naive bridging agent ( 31 ) has a dynamic link library designed to be for communications with the bridging class object ( 30 ) of the virtual machine in response to one Request is then loaded and linked from the bridging class object ( 30 ) of the virtual machine. 5. Informationsübertragungs-Subsystem nach Anspruch 4, bei welchem der erste native Überbrückungsagent (31), nachdem er geladen und verknüpft ist, be­ stimmt, ob der zweite native Überbrückungsagent (32) ebenfalls in Betrieb ist, und falls dies so ist, ei­ ne Benachrichtigung an das Überbrückungsklassenob­ jekt (30) der virtuellen Maschine liefert, daß In­ formation dort hindurch übertragen werden kann.The information transfer subsystem of claim 4, wherein the first native bridging agent ( 31 ), after loaded and linked, determines whether the second native bridging agent ( 32 ) is also operating, and if so, egg ne Notification to the bridging class object ( 30 ) of the virtual machine provides that information can be transmitted therethrough. 6. Informationsübertragungs-Subsystem nach einem der vorhergehenden Ansprüche, bei welchem der zweite na­ tive Überbrückungsagent (32) eine dynamische Ver­ knüpfungsbibliothek aufweist, die so ausgestaltet ist, daß sie für Kommunikationen mit dem Programm (26), das in der nativen Ausführungsumgebung (22) verarbeitet wird, in Antwort auf eine Anfrage danach von dem Programm (26) geladen und verknüpft wird, das in der nativen Ausführungsumgebung (22) verar­ beitet wird.6. The information transmission subsystem according to claim 1, wherein the second native bridging agent ( 32 ) has a dynamic link library that is designed to be used for communications with the program ( 26 ) that is in the native execution environment ( 22 ) is processed, in response to a request thereafter loaded and linked by the program ( 26 ) which is processed in the native execution environment ( 22 ). 7. Informationsübertragungs-Subsystem nach Anspruch 6, bei welchem der zweite native Überbrückungsagent (32), nachdem er geladen und verknüpft ist, be­ stimmt, ob der erste native Überbrückungsagent (32) ebenfalls in Betrieb ist, und falls dies so ist, ei­ ne Benachrichtigung an das in der nativen Ausfüh­ rungsumgebung (22) ausgeführte Programm (26) lie­ fert, das Information dort hindurch übertragen wer­ den kann.The information transfer subsystem of claim 6, wherein the second native bypass agent ( 32 ), after it is loaded and linked, determines whether the first native bypass agent ( 32 ) is also operating, and if so, egg ne Notification to the program ( 26 ) executed in the native execution environment ( 22 ) provides the information which can be transmitted therethrough. 8. Informationsübertragungsverfahren zum Übertragen von Information zwischen einem Programm (23), das in ei­ ner Ausführungsumgebung (21) der virtuellen Maschine verarbeitet wird, und einem Programm (26), das in einer nativen Ausführungsumgebung (22) verarbeitet wird, in einem digitalen Computersystem, wobei das Verfahren folgende Schritt umfaßt:
  • A. Instantiieren eines Überbrückungsklassenobjektes (30) der virtuellen Maschine in der Ausführungs­ umgebung (21) der virtuellen Maschine zum Handha­ ben der Übertragung der Information mit dem Pro­ gramm (23) in der Ausführungsumgebung (21) der virtuellen Maschine;
  • B. Bereitstellen mehrere nativer Überbrückungsagen­ ten in der nativen Ausführungsumgebung (22), ein­ schließlich einem ersten nativen Überbrückungsa­ genten (31), der so ausgestaltet ist, die Infor­ mation mit dem Überbrückungsklassenobjekt (30) der virtuellen Maschine zu übertragen, und einem zweiten nativen Überbrückungsagenten (32), der so ausgestaltet ist, die Information mit dem Pro­ gramm (26) zu übertragen, das in der nativen Aus­ führungsumgebung (22) verarbeitet wird, wobei der erste und der zweite native Überbrückungsagent (31; 32) die Information untereinander durch ei­ nen nativen Kommunikationsmechanismus (33) über­ tragen, der von der nativen Ausführungsumgebung (22) bereitgestellt wird.
8. An information transfer method for transferring information between a program ( 23 ) processed in an execution environment ( 21 ) of the virtual machine and a program ( 26 ) processed in a native execution environment ( 22 ) in a digital computer system the method comprising the step of:
  • A. Instantiating a bridging class object ( 30 ) of the virtual machine in the execution environment ( 21 ) of the virtual machine for handling the transmission of the information with the program ( 23 ) in the execution environment ( 21 ) of the virtual machine;
  • B. Deploy multiple native bridging agents in the native execution environment ( 22 ), including a first native bridging agent ( 31 ) configured to transmit the information with the bridging class object ( 30 ) of the virtual machine, and a second native Bridging agent ( 32 ), which is designed to transmit the information with the program ( 26 ) that is processed in the native execution environment ( 22 ), the first and the second native bridging agent ( 31 ; 32 ) communicating the information with one another through a native communication mechanism ( 33 ) provided by the native execution environment ( 22 ).
9. Informationsübertragungsverfahren nach Anspruch 8, bei welchem der native Kommunikationsmechanismus (33) eine Anordnung mit einem gemeinsam geteilten Adreßraums aufweist, in den der erste und der zweite native Überbrückungsagent (31; 32) die Information durch einen Bereich ihrer jeweiligen gemeinsam ge­ teilten Adreßräume übertragen.9. The information transmission method according to claim 8, wherein the native communication mechanism ( 33 ) has a shared address space arrangement in which the first and second native bridging agents ( 31 ; 32 ) transmit the information through a range of their respective shared address spaces . 10. Informationsübertragungsverfahren nach Anspruch 8 oder 9, bei welchem der native Kommunikationsmecha­ nismus (33) eine Meldungsweitergabeanordnung auf­ weist.10. The information transmission method as claimed in claim 8 or 9, in which the native communication mechanism ( 33 ) has a message forwarding arrangement. 11. Informationsübertragungsverfahren nach einem der An­ sprüche 8 bis 10, bei welchem der erste native Über­ brückungsagent (31) eine dynamische Verknüpfungsbi­ bliothek aufweist, die so ausgestaltet, daß sie für Kommunikationen mit dem Überbrückungsklassenobjekt (30) der virtuellen Maschine in Antwort auf eine An­ frage danach von dem Überbrückungsklassenobjekt (30) der virtuellen Maschine geladen und verknüpft wird.11. Information transmission method according to one of claims 8 to 10, in which the first native bridging agent ( 31 ) has a dynamic link library which is designed to be used for communications with the bridging class object ( 30 ) of the virtual machine in response to an on then ask from the bridging class object ( 30 ) of the virtual machine to be loaded and linked. 12. Informationsübertragungsverfahren nach Anspruch 11, bei welchem der erste native Überbrückungsagent (31), nachdem er geladen und verknüpft ist, be­ stimmt, ob der zweite native Überbrückungsagent (32) ebenfalls in Betrieb ist, und falls dies so ist, ei­ ne Benachrichtigung an das Überbrückungsklassenob­ jekt (30) der virtuellen Maschine liefert, das In­ formation dort hindurch übertragen werden kann. 12. The information transfer method of claim 11, wherein the first native bridging agent ( 31 ), after it is loaded and linked, determines whether the second native bridging agent ( 32 ) is also in operation and, if so, sends a notification provides the bridging class object ( 30 ) of the virtual machine, which information can be transmitted therethrough. 13. Informationsübertragungsverfahren nach einem der An­ sprüche 8 bis 12, bei welchem der zweite native Überbrückungsagent (32) eine dynamische Verknüp­ fungsbibliothek aufweist, die so ausgestaltet, daß sie für Kommunikationen mit dem Programm, das in der nativen Ausführungsumgebung (22) verarbeitet wird, in Antwort auf eine Anfrage danach von dem Programm (26) geladen und verknüpft wird, das in der nativen Ausführungsumgebung (22) verarbeitet wird.13. The information transmission method according to one of claims 8 to 12, in which the second native bridging agent ( 32 ) has a dynamic link library which is designed in such a way that it is used for communications with the program which is processed in the native execution environment ( 22 ), in response to a request thereafter, loaded and linked by the program ( 26 ) that is processed in the native execution environment ( 22 ). 14. Informationsübertragungsverfahren nach Anspruch 13, bei welchem der zweite native Überbrückungsagent (32), nachdem er geladen und verknüpft ist, be­ stimmt, ob der erste native Überbrückungsagent (31) ebenfalls in Betrieb ist, und falls dies so ist, ei­ ne Benachrichtigung an das in der nativen Ausfüh­ rungsumgebung (22) ausgeführte Programm (26) lie­ fert, das Information dort hindurch übertragen wer­ den kann.14. The information transfer method of claim 13, wherein the second native bridging agent ( 32 ), after it is loaded and linked, determines whether the first native bridging agent ( 31 ) is also in operation and, if so, sends a notification the program ( 26 ) that is executed in the native execution environment ( 22 ) delivers information that can be transmitted through it. 15. Computerprogrammprodukt für die Verwendung im Zusam­ menhang mit einem Computer zum Bereitstellen eines Informationsübertragungs-Subsystem zum Übertragen von Information zwischen einem Programm (23), das in einer Ausführungsumgebung (21) der virtuellen Ma­ schine verarbeitet wird, und einem Programm (26), das in einer nativen Ausführungsumgebung (22) verar­ beitet wird, in einem digitalen Computersystem, wo­ bei das Computerprogrammprodukt ein computerlesbares Medium umfaßt, worauf kodiert ist:
  • A. ein durch den Computer in der Ausführungsumge­ bung (21) der virtuellen Maschine instantiierba­ res Überbrückungsklassenobjekt (30) der virtuel­ len Maschine, mit dem der Computer aktiviert wird, die Information mit dem Programm (23) in der Ausführungsumgebung (21) der virtuellen Ma­ schine zu übertragen;
  • B. einem Modul nativer Überbrückungsagenten, mit dem der Computer aktiviert wird, es in der nati­ ven Ausführungsumgebung (22) bereitzustellen, einschließlich einem ersten nativen Überbrüc­ kungsagent (31), der so ausgestaltet ist, den Computer zu aktivieren, die Information mit dem Überbrückungsklassenobjekt (30) der virtuellen Maschine zu übertragen, und einem zweiten nati­ ven Überbrückungsagent (32), der so ausgestaltet ist, den Computer zu aktivieren, die Information mit dem Programm (26) zu übertragen, das in der nativen Ausführungsumgebung (22) verarbeitet wird, wobei der erste und der zweite native Überbrückungsagent (31; 32) den Computer aktivie­ ren, die Information untereinander durch einen nativen Kommunikationsmechanismus (33) übertra­ gen, der von der nativen Ausführungsumgebung (22) bereitgestellt wird.
15. A computer program product for use in connection with a computer for providing an information transmission subsystem for transmitting information between a program ( 23 ) which is processed in an execution environment ( 21 ) of the virtual machine and a program ( 26 ), which is processed in a native execution environment ( 22 ), in a digital computer system, in which the computer program product comprises a computer-readable medium, on which is encoded:
  • A. a by the computer in the execution environment ( 21 ) of the virtual machine instantiierba res bridging class object ( 30 ) of the virtual machine with which the computer is activated, the information with the program ( 23 ) in the execution environment ( 21 ) of the virtual Transfer machine;
  • A native bridging agent module that enables the computer to be provided in the native execution environment ( 22 ), including a first native bridging agent ( 31 ) configured to activate the computer to provide the information with the bridging class object ( 30 ) the virtual machine and a second native bridging agent ( 32 ) configured to activate the computer to transmit the information with the program ( 26 ) that is processed in the native execution environment ( 22 ) , wherein the first and second native bridging agents ( 31 ; 32 ) activate the computer to transmit the information to one another through a native communication mechanism ( 33 ) provided by the native execution environment ( 22 ).
16. Computerprogrammprodukt nach Anspruch 15, bei wel­ chem der native Kommunikationsmechanismus (33) eine Anordnung eines gemeinsam geteilten Adreßraumes um­ faßt, in dem der erste und der zweite native Über­ brückungsagent (31; 32) den Computer aktivieren, die Information durch einen Bereich ihrer jeweiligen ge­ meinsam geteilten Adreßräume zu übertragen.16. The computer program product of claim 15, wherein the chem native communication mechanism ( 33 ) includes an arrangement of a shared address space in which the first and second native bridging agents ( 31 ; 32 ) activate the computer, the information through a portion of their to transfer respective ge shared address spaces. 17. Computerprogrammprodukt nach Anspruch 15 oder 16, bei welchem der native Kommunikationsmechanismus (33) eine Meldungsweitergabeanordnung aufweist.17. The computer program product according to claim 15 or 16, wherein the native communication mechanism ( 33 ) comprises a message relay arrangement. 18. Computerprogrammprodukt nach einem der Ansprüche 15 bis 17, bei welchem der erste native Überbrückungsa­ gent (31) eine dynamische Verknüpfungsbibliothek aufweist, die so ausgestaltet ist, daß sie für Kom­ munikationen mit dem Überbrückungsklassenobjekt (30) der virtuellen Maschine in Antwort auf eine Anfrage danach von dem Überbrückungsklassenobjekt (30) der virtuellen Maschine geladen und verknüpft wird. 18. A computer program product according to any one of claims 15 to 17, wherein the first native bridging agent ( 31 ) has a dynamic link library configured to communicate with the bridging class object ( 30 ) of the virtual machine in response to a request is then loaded and linked by the bridging class object ( 30 ) of the virtual machine. 19. Computerprogrammprodukt nach Anspruch 18, bei wel­ chem der erste native Überbrückungsagent (31), nach­ dem er geladen und verknüpft ist, den Computer akti­ viert, zu bestimmen, ob der zweite native Überbrüc­ kungsagent (32) ebenfalls in Betrieb ist, und falls dies so ist, eine Benachrichtigung an das Überbrüc­ kungsklassenobjekt (33) der virtuelle Maschine lie­ fert, das Information dort hindurch übertragen wer­ den kann.19. The computer program product of claim 18, wherein the first native bridging agent ( 31 ) upon which it is loaded and linked activates the computer to determine whether the second native bridging agent ( 32 ) is also operating, and if so this is so, a notification is delivered to the bridging class object ( 33 ) of the virtual machine, which can transmit information through it. 20. Computerprogrammprodukt nach einem der Ansprüche 15 bis 19, bei welchem der zweite native Überbrüc­ kungsagent (32) eine dynamische Verknüpfungsbiblio­ thek aufweist, die so ausgestaltet ist, daß sie für Kommunikationen mit dem Programm (26), das in der nativen Ausführungsumgebung (22) verarbeitet wird, in Antwort auf eine Anfrage danach von dem Programm (26) geladen und verknüpft wird, das in der nativen Ausführungsumgebung (22) verarbeitet wird.20. Computer program product according to one of claims 15 to 19, wherein the second native bridging agent ( 32 ) has a dynamic link library, which is designed such that it is for communications with the program ( 26 ) that is in the native execution environment ( 22 ) is processed, in response to a request thereafter, loaded and linked by the program ( 26 ) that is processed in the native execution environment ( 22 ). 21. Computerprogrammprodukt nach Anspruch 20, bei wel­ chem der zweite native Überbrückungsagent (32), nachdem er geladen und verknüpft ist, den Computer aktiviert, zu bestimmen, ob der erste native Über­ brückungsagent (31) ebenfalls in Betrieb ist, und falls dies so ist, eine Benachrichtigung an das in der nativen Ausführungsumgebung (22) ausgeführte Programm (26), das Information dort hindurch über­ tragen werden kann.21. The computer program product of claim 20, wherein the second native bridging agent ( 32 ), after loaded and linked, enables the computer to determine whether the first native bridging agent ( 31 ) is also operating, and if so is a notification to the program ( 26 ) executed in the native execution environment ( 22 ) that can carry information therethrough.
DE1999130160 1998-06-30 1999-06-30 System for transferring information between programs running in digital computer system Withdrawn DE19930160A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10701398A 1998-06-30 1998-06-30

Publications (1)

Publication Number Publication Date
DE19930160A1 true DE19930160A1 (en) 2000-01-05

Family

ID=22314397

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999130160 Withdrawn DE19930160A1 (en) 1998-06-30 1999-06-30 System for transferring information between programs running in digital computer system

Country Status (3)

Country Link
CA (1) CA2276640A1 (en)
DE (1) DE19930160A1 (en)
GB (1) GB2342735B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1365322A1 (en) * 2002-05-23 2003-11-26 Hewlett-Packard Company Improvements relating to computer programs
EP2395429A1 (en) * 2010-06-09 2011-12-14 Siemens Aktiengesellschaft Assembly and method for operating a memory-programmable control device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937701B2 (en) * 2005-06-30 2011-05-03 Intel Corporation ACPI communication between virtual machine monitor and policy virtual machine via mailbox
US20070240171A1 (en) * 2006-03-29 2007-10-11 Nokia Corporation Device, Method, And Computer Program Product For Accessing A Non-Native Application Executing In Virtual Machine Environment
CN116700834B (en) * 2023-08-07 2023-10-24 天津华来科技股份有限公司 App modularized loading method and system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1365322A1 (en) * 2002-05-23 2003-11-26 Hewlett-Packard Company Improvements relating to computer programs
EP2395429A1 (en) * 2010-06-09 2011-12-14 Siemens Aktiengesellschaft Assembly and method for operating a memory-programmable control device

Also Published As

Publication number Publication date
CA2276640A1 (en) 1999-12-30
GB9915173D0 (en) 1999-09-01
GB2342735A (en) 2000-04-19
GB2342735B (en) 2002-11-20

Similar Documents

Publication Publication Date Title
DE60010011T2 (en) Method and device for testing a computer system by software error injection
DE60212922T2 (en) Reversal of a communication path between storage devices
DE69730690T2 (en) METHOD AND APPARATUS FOR THE DYNAMIC EXCHANGE OF OBJECT NEWS BETWEEN OBJECT MODELS
DE69938218T2 (en) Apparatus and method for loading a Java application program
DE69815946T2 (en) Information processing apparatus
DE3908459C2 (en) Network server
DE69734432T2 (en) Method and apparatus for sending client method calls in a server computer system
DE10121671A1 (en) Provision of a generic interface between machine specific operating systems and service components of applications written in a chosen computer language running via the operating system
EP0462691A2 (en) Data processing apparatus having a user inquiry facility
EP0817034A2 (en) Filtering an object interface definition to determine services needed and provided
JPH09185538A (en) Method and device for front end navigator and network architecture
DE69637142T2 (en) Network management with capture of formatted deduction data from a remote process
DE2243956A1 (en) MEMORY-PROGRAMMED DATA PROCESSING SYSTEM
DE10128883A1 (en) Distribution of application data in distributed data base that use different formats
DE102009018261A1 (en) Information processing system and method for controlling task execution
DE69930695T2 (en) Method and device for an application distributor for a server application
DE4437272C2 (en) Automatically operated data processing system
DE10340416B4 (en) System and method for terminating processes in a distributed computing system
DE10212634A1 (en) Page description language that is designed for direct printing of multi-file formats
DE60002455T2 (en) METHOD AND DEVICE FOR AUTOMATIC SOFTWARE TESTING
DE10059475B4 (en) On-vehicle information processing device and storage device
DE19930160A1 (en) System for transferring information between programs running in digital computer system
DE102004048666A1 (en) Expandable network agent - process, system and architecture
DE69936744T2 (en) Data processing methods
DE69535478T2 (en) Information processing system

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee