GB2342735A - Transferring information between computer programs - Google Patents

Transferring information between computer programs Download PDF

Info

Publication number
GB2342735A
GB2342735A GB9915173A GB9915173A GB2342735A GB 2342735 A GB2342735 A GB 2342735A GB 9915173 A GB9915173 A GB 9915173A GB 9915173 A GB9915173 A GB 9915173A GB 2342735 A GB2342735 A GB 2342735A
Authority
GB
United Kingdom
Prior art keywords
native
information
bridge
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.)
Granted
Application number
GB9915173A
Other versions
GB9915173D0 (en
GB2342735B (en
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 GB9915173D0 publication Critical patent/GB9915173D0/en
Publication of GB2342735A publication Critical patent/GB2342735A/en
Application granted granted Critical
Publication of GB2342735B publication Critical patent/GB2342735B/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An information transfer subsystem (20) for transferring information between a program (23) being processed in a virtual machine execution environment (21) and a program (26) being processed in a native execution environment (22) in a digital computer system, comprises a virtual machine bridge class object (30) and plurality of native bridge agents (31, 32). The virtual machine bridge class object (30) is instantiable in the virtual machine execution environment (21) to handle transfers of the information with the program (23) in said virtual machine execution environment (21). The virtual machine bridge class object (30), in turn, can transfer information with a first of the native bridge agents (31). A second of the native bridge agents (32) is configured to transfer the information with the program (26) being processed in said native execution environment (22). The first and second native bridge agents (31, 32) can transfer the information with each other through a native communication mechanism (33) provided by said native execution environment (22).

Description

2342735 SYSTEM AND METHOD FOR FACILITATING THE TRANSFER OF 0 INFORMATION
BETWEEN PROGRAMS PROCESSED IN A DIGITAL CrPUTER SYSTEM
The invention relates generally to the field of digital computer systems, and more particularly to arrangements for facilitating communications between programs processed in a digital computer system. The invention particularly provides a arrangement for facilitating transfer of information in a digital computer system between a program or other object being processed in a virtual machine in the digital computer system, and a program or other object being processed in a native executi
I ion environment in the digital computer system.
BACKGROUND OF THE INVENTION
Generally, computers process progTams, undercontrol of an operating system, in what is may be referred to as a "native execution environment. " In such an environment, the program, generally in the native instruction set for the computer, can be executed in a process context. Other progams, on the other hand, which need not be in the native instruction st for the computer, may be executed in a virtual machine execution environment. There are a number of benefits in writing programs for execution in a virtual machine execution environment. For example, unlike programs written for a computer's native execution environment, programs written f6r execution in the yirtual machine execution environment can often be made to be independent of the particular instruction set and operatincy s ystern f6r the computer in which the program is being processed.
However, a problem arises if one wishes to transfer information between the progams processed in the native execution environment and the virtual machine execution environment. Several mechanisms have been developed to accomplish such transfer, generally relating to translation of information between the virtual machine execution environment and the native execution environment.
SUM-MARY OF THE INVENTION The invention provides a new and 'improved arrangement for facilitating the transfer of information in a dialtal computer system between a program or other object being processed in a virtual machine in the dialtal computer system, and a program or other object being processed in a native execution environment in the digital computer system.
In brief summary, an information transfer subsystem transfers information between a program being processed in avirtual machine execution environment and aprograrn beingprocessed in a native execution environment in a digital computer system. The information transfer subsystem comprises a virtual machine bridge class object and plurality of native bridge agents, the native
1 0 bridge agent transferring the information with each other through a native communication mechanism provided by said native execution environment. The virtual machine bridge class object is instantiable in the virtual machine execution environment to handle transfers of the information with the program in said virtual machine execution environment. The virtual machine bridge class object, in turn, can transfer information with a first of the native bridge agents. A second of the native bridae agents is configured to transfer the information with the progarn being processed in sid native execution environment. As noted above, the first and second native bridge agents can al I n transfer the information with each other through a native co=unication mechankm provided by said native execution environment, thereby to facilitate transfer of the information between programs in the two environments.
BRIEF DESCRIPTION OF THE DRAWINGS
Jhis invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to the following CD description taken in conjunction with the accompanying drawings, in which:
FIG. 1 depicts an illustrative digital computer system includi gement for L ing an arran"., facilitating the transfer of information between a programs and instantiated object being processed in a virtual machine execution environment, and programs being processed in a native execution environment, constructed in accordance with the invention; FIG. 2 is a functional block diagram of an arrangement for facilitating the transfer of 0 ".1 information between a programs and instantiated object being, processed in a virtual machine execution environment, and programs being processed in a native execution environment, and FIGS. 3 and 3A to 3C are flowcharts depicting operations performed by the arrangement depicted in FIG. 2.
DETAILED DESCRIPTION OF AN ILLUSTRATivE EMBODIMENT
FIG. I depicts an illustrative computer system 10 including an arrangement for facilitating the transfer of information between a programs and instantiated object being processed in a virtual machine execution environment, and programs being processed in a native execution environment, constructed in accordance with the invention. With reference to FIG. 1, the computer system 10 in one embodiment includes a processor module I I and operator interface elements comprising operator input components such as a keyboard 12A and/or a mouse 12B (generally identified as operator input element(s) 12) and operator output components such as a video displaydevice 13 with integral speakers 15. The illustrative computer system 10 is of the conventional stored-program computer architecture.
The processor module 11 includes, forexample, processor, memory and mass storage devices such as disk and/or tape storage elements (not separately shown) which perform processing and storaae operations in connection with digital data provided thereto, The mass storage subsystems may include such devices as disk or tape subsystems, optical disk storage devices and CD-ROM devices in which information may be stored and/or from which information may be retrieved. One or more of the mass storage subsystems may utilize removable storage media which may be removed and installed by an operator, which may allow the operator to load programs and data into the digital computer system 10 and obtain processed data therefrom. Under control of control information ided thereto by the processor, information stored in the mass storage subsystems may be provi I transferred to the memory for storage. After the information is stored in the memory, the processor may retrieve it from the memory for processing. After the processed data is generated, the processor may also enable the mass storage subsystems to retrieve the processed data from the memory for relatively long-term storage.
The operator input element(s) 12 are provided to permit an operator to input information for processing, and/or control of the digital computer system 10. The video display device 13 and speakers 15 are provided to, respectively, display visual output information on a screen 14,andaudio output information, which are generated by the processor module 11, which may include data that the operator may input for processing, information that the operator may input to control processing, as well as information generated duTing processing. The processor module I I generates information for display by the video display device 13 using a so-called "graphical user interface" ("GUFI"), in which information for various applications programs is displayed using various "windows." Although the computer system 10 is shown as comprising particular components, such as the keyboard 12A and mouse 12B for receiving input information from an operator, and a video display device 13 for displaying output information to the operator, it will be appreciated tht the computer system 10 may include a variety of components in addition to or instead of those depicted in FIG.
In addition, the processor module I I may include one or more network or communication ports, generally identified by reference numeral 16, which can be connected to communication links to connect the computer system 10 in a computer network, or to other computer systems (not shown) over, for example, the public telephony system. The ports enable the computer system 10 to transmit information to, and receive information from, other computer systems and other devices in the network.
The invention provides an arrangement, which will be described below in connection with FIG. 2, for facilitating communication in a digital computer system between a program or other object being processed in a virtual machine in the digital computer system, and a program or other object being processed in a native execution environment in the digital computer system. In one embodiment, the virtual machine provides an Java execution environment for processing, programs and other objects, which may be in the form of, for example, instantiated classes, which were written in the Java programming language. The native execution environment may be provided by, for example, the operating system which is controlling the computer system, such as, for example, Unix or a Unix- like operating system, Microsoft WindowSTM or NT for a personal computer ("PC") or workstation, MacOS for an Apple Macintosh computer, and the like. The program(s) in the native execution environment generally comprise programs which are in the native instruction set of the computer system 10, although they may also be processed in connection with respective process(es) or virtual machines provided by the operating system.
With reference to FIG. 2, the communication arrangement comprises a virtual machine/native accessibility bridge 20 which bridges between a virtual machine execution environment 21 and a native execution environment 22 and facilitates communication between programs and other objects being I processed in each execution environment 21 and 22. In the virtual machine execution environment, programs 23, instantiated classes 24 and other objects (not separately shown) are processed under control of a virtual machine control module 25. In one embodimerih, the programs 23, instantiated classes 24 and other objects are generated from programs written in the Java programming language, which are processed under control of the virtual machine control module 25. On the other hand, programs 26 processed in the native execution environment generally comprise those in the native instruction set of the computer system 10.
The virtual machine/native accessibility bridge includes three primary components, namely, a virtual machine bridge class object 30, native bridge dynamic link libraries ("DLLs") 31 and 32 and a native communication mechanism 33. The native communication mechanism 33 generally 0 represents a communication mechanism that is provided by the computer system's operating system, 0 such as a shared memory mechanism, a messaging mechanism, and so forth. For example, in a M 1.7 shared memory communication mechanism, a predetermined portion of the address space used by the virtual machine execution envirorunent 21 and a predetermined portion of the address space in which the native application programs 26 are processed are shared. In that case, if a program 23 orinstantiated class 24 in the virtual machine execution environment 2 1 needs to transfer information to a native application program 26 in the native execution environment 22, it (that is, the program 23 or instantiated class 24, under control of the virtual machine control module 25) will enable the virtual machine bridge class object 30 to transfer the information to the native bridge DLL 31 associated therewith load the information into the shared portion of the address space. The native bridge DLL 32, in turn, can retrieve the information from the shared portion of the address space and provide it to the native application program. 26 that is to receive the information. Conversely, if a native application progam 26 in the native execution environment 22 needs to transfer information to a program 23 or instantiated class in the virtual machine execution environment 2 1, it will enable the native bridge DLL 32 to load the information into the shared portion of the address space. The native bridge DLL 31 will retrieve the information from the shared portion of the address space and provide the information to the virtual machine bridge class object 30, which, under control of the virtual machine control module 25, can provide it (that is, the information) to the virtual machine program 23 or instantiated class 24 that is to receive the information. On the other hand, in a messaging mechanism, the native briidge DLL 31 and native bridge DLL 32, instead of loading infort-nation to be transferred into, and retrieving information from, a shared portion of their respective address spaces, will generate a message, including the information to be transferred, that is addressed to the other element, and transfer the information using message transfer mechanisms provided by the operating system. Operations performed in connection with other types of communication mechanisms will be apparent to those skilled in the art.
The virtual machine bridge class object 30 is an object that is instantiated in the virtual machine execution environment 21 and allows information to be transferred between the virtual machine execution environment 21 and the native bndce DLL 31 usina a conventional mechanism 1D provided by the virtual machine execution environment 21 to facilitate transfer of information between it and the native execution environment 22. In one embodiment, in which the virtual machine execution environment 21 is used to process programs in the Java programming language, the mechanism can comprise, for example, the TINFI ("Java/native interface") mechanism. Each of the native bridge DLLs 31 and 32 comprises a dynamic link library that can be loaded by the operating system upon request &om a native application program 26 and linked thereto for use thereby while it (that is, the native application program 26) is being processed. Either the native bridge DLL 31 associated with the virtual machine bridge class object 30, or the native bridge DLL 32 associated with the native application program 26, can be initialized and begin operating first, and when the other begins operating, each will notify the other, after which they can transfer infori-nation throuch the native conununication mechanism 3_3) using a rendezvous mechanism. More specifically, when one of the native bridge DLL 3)1 or the native brid-e DLL 32 is loaded and begins operating, it will query the native communication mechanism 33 to deter-mine whether a notification has been provided by the other that it (that is, the other) has been loaded and is operating. In addition, it (that is, the just-loaded and operating native bridge DLL 31 or the native bridge DLL 32) will generate Z. 0 a notification for transfer to the other throuoh the native communication mechanism 33. When the other (that is, the other of the native bndae DLL 32 or the native bridge DLL 3) 1) is loaded and 0 begins operating it will also query the native communication mechanism 33 and receive the 0 nif "on previously loaded therein, and in addition, will generate a notification for transfer ot icati throuch the native communication mechanism 33 to the one of the native bridge DLL 31 or the native bridge DLL 32 to be loaded and operating. The first will then receive the notification. When each of the native bridge DLL 31 and the native bridge DLL 32 has received the notification from the other, it is in condition to transfer information to the other through the native communication mechanism 33, and can so notify the virtual machine briidge class object 30 and native application program 26 associated therewith.
Thus, the virtual machine control module 25 can instantiate the virtual machine bridge class as an ob. ect 30 in the virtual machine execution environment 21, and the virtual machine bridge 1 0 class object 30 can enable the native bridge DLL 31. to be loaded and linked thereto, regardless of whether the native bridge DLL 32 is operating. When, for example, the vir-tual machine control module 25 instantiates the virtual machine bridge class object 30 and enables it to begin operation, it (that is, the virtual machine bridge class object 30) will enable the native bridge DLL 3 1 to be loaded and query the native communication mechanism 33) to determine whether the native bridge DLL 32 has provided a notification, and in addition will generate a notification for transfer to the native communication mechanism 33. If the native bridge DLL 31, in response to the query, receives a notification from the native communication mechanism 33, the virtual machine bridge class object 30 it will determine that the native bridge DLL 32 is already operating and that it (that is., the virtual machine bridge class object 30) can transfer information from the programs 23 and instantiated classes 24 to respective native application programs 26 in the native execution environment 22. On the other hand, if the native bridge DLL 3 1 does not receive a notification from the native communication mechanism 33 in response to the query, the virtual machine bridge class object 30 will wait until it later receives a notification from the native bridge DLL 32 through the native communication mechanism 33.
Corresponding operations occur if the native bridge DLL 32 is loaded and begins operating before the virtual machine bridge class object 30 is instantiated. That is, when the operating system loads the native bridge DLL 32 and enables it to begin operation, it (that is, the native bridge DLL 32) will query the native communication mechanism 33 to determine whether the "Virtual machine bridge class object 30 has provided a notification, and in addition will generate a notification for transfer to the native cornmunication mechanism 33. If the native bridge DLL 32, in response to the query, receives a notification from the native communication mechanism 33, it will determine that the virtual machine bridge class object 30 is already operating and that it (that is, the native bridge DLL 32) can transfer information from the native application programs 26 to respective and programs 23 and instantiated classes 24 in the virtual machine execution environment 2 1. On the other hand, if the native bridge DLL 32 does not receive a notification from the native communication mechanism 33 in response to the query, it will wait until it later receives a nif 'on &om. the virtual machine b class object 30 through the native communicati ot icati 1 n ion mechanism 33.
In either case, after native bridge DLL 31 and the native bridge DLL 32 have established that 1 0 the other has been initialized and is operating, they can transfer information between the programs 23 and instantiated classes 24, on the one hand, and the native application programs 26, on the other hand, using the native communication mechanism 33.
A specific example would be helpful in understanding the outputs performed by the arrangement depicted in FIG. 2 in connection with the transfer of information between the programs 23 and instantiated classes 24, on the one hand, and the native application programs 26, on the other hand, using the native communication mechanism 33. In that example, one of the native application programs 26 is a screen reader program, which generates information which enables the speakers 15 of computersystem 10 to generate audio manifestations of information which would be displayed on the computer system's video display device 13. In addition, one or more of the programs 23 and/or instantiated classes 24 generates information WI-Lich would be displayed on the video display device 13. In that case, to enable the screen reader progam, to generate information for portions of the video display representing the display information that is generated by the programs 23 and/or instantiated classes 24, the display information generated by the programs 23 and/or instantiated classes 24 would need to be provided to the screen reader program.
To accomplish that, the screen readerprogram would enable the operating system to load the native bridge DLL 32 and link it (that is, the native bridge DLL 32) to the screen reader program.
In addition, one of the instantiated classes 24, as an "assistive technology" instantiated class, would be provided in the virtual machine execution environment 21 which can obtain display information from the programs 23 and ones of the other instantiated classes which are generating display information for provision, through the virtual machine/native accessibility bridge 20 and native bridge DLL 3) 1, to the screen reader program. If the virtual machine bridge class object 30 and native bridge DLL 31 are not already load and operating, the assistive technology instantiated class would enable the virtual machine control module 25 to load the virtual machine bridge class object 30 and enable it to operate. As part of that operation, the virtual machine bridge class object 30 will enable the native bridge DLL 31 to be loaded and linked thereto. Thereafter, the native bridge DLL 31 will generate a notification for transfer to the native bridge DLL through the native communication mechanism 33 as described above. In addition, since the native bridge DLL 32 Is already loaded and operating, the native bridge DLL 31 will receive a notification as generated by the native bridgeDLL 32 from the native communication mechanism 33 as described above, which, in turn, will provide a notification to the virtual machine bridge class object 30. After the screen reader program and the virtual machine bridge class 30 receive the respective notifications from the native communication mechanism 33, they will be able to transfer information therebetween. In addition, the native bridge DLL 32 will notify the native application program 26 to which it is linked, namely, the screen reader program that information can be transferred therethrough into the virtual machine execution environment 2 1, and, specifically to the assistive technology instantiated class, and the virtual machine bridge class object 30 may notify ones of the instantiated classes that information can be transferred therethrouah into the native execution environment 22.
0 Thereafter, the screen reader program and the assistive technology instantiated class can communicate to transfer information through the native communication mechanism 33. In that operation, the screen reader progam, can transfer, as information, to the assistive technology instantiate class a request for transmission to the assistive technology instantiated -class requesting 0 video display information generated by a program 23 and/or another instantiated class 24 in the virtual macliine execution environment 2 1. The screen reader program uses the native bridge DLL 32 to transfer the request to the native communication mechanism 33. The native communication mechanism 33 will transfer the request through the native bridge DLL 31 to the virtual machine native bridge class object 30, which, in turn, will transfer the request to the assistive technology L instantiated class.
When the assistive technology instantiated class receives the request from the virtual machine bridge class 3)0, if a program 23 and/or other instantiated class 24 has video display information to ide to the ass' stive technology instantiated class,' t (that is, the ass' ivetechnology instantiated provi I I I I istl class) will obtain the video display information from a program 23) and/or other instantiated class 24 in the virtual machine execution environment 21 and provide it to the virtual machine bndce class object 30. The virtual machine bridge class object 30 will then transfer the video display information through the native bridge DLL 31 to the native communication mechanism 33, which, 11 transfer the video display information to the native bridge DLL 32, which, in turn, will in turn, wi 'D provide it (that is, the video display information) to the screen reader application program. After the screen reader application program receives the video display information, it can use it in a conventional manner.
It will be appreciated that, if the assistive technology instantiated class determines that no program 23 and/or other instantiated class 24 has video display information to be provided thereto, it can generate information so indicating for provision to the screen reader program. The assistive technology instantiated class can provide such information to the screen reader program through the virtual machine briidge class object _3)0, native communication mechanism 33 and native bridge DLL 32 in th same manner as the video display information as described above.
Thereafter, the screen reader program may again request video display information, and the assistive technology instantiated class can provide video display information, or an indication that there is no video display information to provide, in a similar manner, in a series of iterations. Alternatively, the assistive technology instantiated class may, automatically in response to a single request from the screen reader program, iteratively or continually request video display information from the programs 23 and/or other instantiated classes for provision to the screen reader program in a manner similar to that described above.
With this background, the operations performed by the virtual machine bridge class object and native bridge DLL 32 will be described in connection with the flowchart depicted in FIGS. 3 and 3 A to 3C. With reference to FIG. 3, after the virtual machine control module 25 instantiates the virtual machine bridge class object 30 and enables it to operate (step 100), the virtual machine bridge class object generates a notification for transfer to the native bfid-e DLL 32 indicating that it is ready to transfer information therewith through the native communication mechanism 33) (step 101). The virtual machine bridge class object 30 may be instantiated by the virtual machine control module 25 automatically, or in response to a request therefor from a program 23 or instantiated class 24 operating, in the virtual machine execution environment 21. After the virtual machine bridge class is instantiated, it can enable the native bridge DLL 3 1 to be loaded and linked thereto (step 102). In addition, the native bridcye DLL 31 will query the native communication mechanism 33 to determine whether it contains a notification from the native bridge DLL 32 indicating that it is ready to transfer information with the virtual machine bridge class object 30 (step 103). If the native bridge DLL 31 makes a negative determination in step 103, it will repeat step 103 until it make a positive determination, after which it will notify the virtual machine bridge class object 30 (step 104). After the virtual machine bridge class object 30 has received a notification from the native bridge DLL 31 in step 104, it will be in a condition to transfer information with the native bridge DLL 32 through the native communication mechanism 33, and it (that is, the virtual machine bridge class object 30) can so notify the virtual machine control module 25 or respective programs 23 or instantiated classes 24.
Similarly, after the operating system loads the native bridge DLL and enables it to operate (step I 10), the native bridge DLL 3 2 generates a notification for transfer to the nati ve bridge DLL 31 indicating that it is ready to transfer information therewith through the native communication 0 ID mechanism 33 (step I 11). The native. bridge DLL 32 will generally be loaded by the operating system in response to a request therefor from a native application program 26 operating in the native execution environment 22. In addition, the native bridge DLL 32 will query the native communication mechanism 33 to determine whether it contains a notification from the native bridge DLL I indicating that it is ready to transfer information with the native bridge DLL 32 (step 112). If the native bridge DLL 32 makes a negative determination in step 112, it will repeat step 112 until it make a positive determination. After it (that is, the native bridge DLL 32) makes a positive determination in step 112, itwill be in a condition to transfer information with the vir-tual machine bridge class object 30 through the native communication mechanism 33 and native bridge DLL 3 1, 0 and it (that is, the native bridge DLL) can so notify the native application program 26 for which it was loaded.
After the virtual machine bn'dge class object 30 has received a notification from the native bridge DLL 32 (step 102), if it receives a request &om a program 23 or instantiated class 24 operating in the virtual machine execution environment to transfer information to a native application program 26 (step 120), it will transfer the information to the native bridge DLL 31 (step 12 1), which, in turn, will transfer to the native communication mechanism -3)3) (step 122). In that operation, if the native communication mechanism 33 is in the form of a shared portion of the address space, the native bridge DLL 31 can load the information into the shared portion of the address space. In addition, the native bridge DLL 31 may provide an indication which will enable the native bridge DLL 32 to be notified that the shared portion of the address space contains information that it can retrieve. Alternatively, the native bridge DLL 32 may peniodically examine the shared portion of the address space to determine whether the native bridge DLL 31 has loaded information for it therein (that is, in the shared portion of the address space). In any case, after the native bn'dce DLL 32 determines that the shared portion of the address space contains information for it to retrieve, it will retrieve the information (step 123) and provide it (that is, 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 g passing for transferring information between the virtual machine bridge class object 30 and the native bridge DLL 32.
Similarly, afterthe native bridge DLL 32 has received a notification from the virtual machine bn'dge class object 30 (step 102), if it receives a request from a native application program 26 to transfer information to a virtual machine bridge class object 30 virtual machine bridge class object 30 (step 130), it will transfer the information to the native communication mechanism 33 (step 13 1). In that operation, if the native communication mechanism 33 is in the form of a shared portion of the address space, the native bridge DLL 32 can load the information into the shared portion of the address space. In addition, the native bridge DLL 32 may provide an indication which will enable the native bridge DLL 31 to be notified that the shared portion of the address space contains information that it can retrieve. Alternatively, the native bridge DLL 31 may periodically examine t.he shared portion of the address space to determine whether the native bridge DLL has loaded information for it therein (that is, in the shared portion of the address space). In any case, after the native bridge DLL 31 determines that the shared portion of the address space contains information for it to retrieve, it will retrieve the information and provide it (that is, the information) to the virtual machine bridge class object 30 (step 132), which, in turn, will provide the information a program 23 and/or instantiated class 24 in the virtual machine execution environment 21 (step 133). Corresponding, operations can be performed if the native communication mechanism 33 uses other mechanisms, such as, for example, message passing for transferrina information between the virtual machine bridge class object 30 and the native bridge DLL 32- The invention provides a number of advantaaes. In particular, it provides a mechanism, i I ied as the virtual machine/native accessibility bridge 20, for transferring information between programs and instantiated classes processed in a virtual machine execution environment, such an execution environment that used to process program written in, for example, the Java programming language, and a native program that is processed in a process or other element in the native execution environment provided by the computer system's operating system. The components of the virtual machine/native accessibility bridge 20, in particular the virtual machine bridge class object 30 and the native bridge DLLs 31 and 32 transfer the information without requining translation, using a native communication mechanism 33 provided by the computer system's operating system. The native bridge DLLs 31 and 32 can be loaded and initialized separately ftom each other and utilize a rendezvous mechanism, as described above, to notify the other that they are in condition to transfer information therewith.
It will be appreciated that a number of modifications may be made to the invention as descri'bed above. For example, as indicated above, a number of types of mechanisms, provided by the operating system, may be used as the native communication mechanism 33. In addition, although the invention has been described in connection with a single virtual machine bridge class object 30, for a single virtual machine execution environment 2 1, and associated DLL 3 1, and a single instance ofa DLL 32, it will be appreciated that a number of such objects 30, for, for example, respective virtual machine execution environments 2 1, and a number of instances of such DLL's 31 and 32, can transfer information throuah the native communication mechanism 33.
0 It will be appreciated that a system in accordance with the invention can be constructed in whole or in part from special purpose hardware or a general purpose computer system, or any combination thereof, any portion of which may be controlled by a suitable program. Any program may in whole or in part comprise part of or be stored on the system in a conventional manner, or it may in whole or in part be provided in to the system over a network or other mechanism for transferring information in a conventional manner. In addition, it will be appreciated that the system may be operated and/or otherwise controlled by means of information provided by an operator using operator input elements (not shown) which may be connected directly to the system or which may transfer the information to the system over a network or other mechanism for transferring infon-nation in a conventional manner.
The foregoina description has been limited to a specific embodiment of this invention. It will
0 be apparent, however, that various variations and modifications may be made to the invention, with the attainment of some or all of the advantages of the invention. It is the object Q.f the appended claims to cover these and such other variations and modifications as come within the true spirit and scope of the invention.

Claims (1)

  1. -16CLAIMS
    1. An information transfer subsystem for transferring information between a program being 0 processed in a virtual machine execution environment and a program being processed in a native execution environment in a digital computer system, the information transfer subsystem comprisin- I Z> A. a virtual machine bridge class object instantiable in said virtual machine execution environment for transferring said information with said program in said virtual machine execution environment; B. a plurality of native bridge agents in said native execution environment, including a first native bridge agent configured to transfer said information with said virtual machine bridge class object and a second native bridge agent configured to transfer the information with said ..' 0 0 program processed in said native execution environment, the first and second native bridge I agent transferring the information with each other through a native communication mechanism provided by said native execution environment.
    2. An information transfer subsystem as defined in claim 1 in which said native communication mechanism comprises a shared address space arrangement in which said first and second native bridge agents transfer the information through a portion of their respective address spaces shared therebetween.
    3. An information transfer subsystem as defined in claim I in which said native communication mechanism comprises a message passing arrangement.
    4. An information transfer system as defined in claim I in which the first native bridge agent comprises a dynamic link library configured to be loaded and linked for communications with the virtual machine bnidge class object in response to a request therefor from the virtual machine bridge class object.
    5. An information transfer system as defined in claim 4 in which the first native bridge agent, after it is loaded and linked, determines whether the second native bridge agent is also operating, and, if Z> so, provides a notification to the virtual machine bridge class object that information can be transferred therethrough.
    1 6. An information transfer system as defined in claim I in which the second native bridge agent comprises a dynamic link library configured to be loaded and linked for communications with the Z) program processed in the native execution environment in response to a request therefor from the 0 program processed in the native execution environment.
    7. An information transfer system as defined in claim 6 in which the second native bridge agent, after it is loaded and linked, determines whether the first native bridge agent is also operating, and, if so, provides a notification the program executed in the native execution environment that information can be transferred therethrough.
    8. An information transfer method for transferring information between a program being processed in a virtual machine execution environment and a program being processed in a native execution environment in a digital computer system, the method comprising the steps of:
    A. instantiating a virtual machine bridge class object in said virtual machine executi I I ion environment for handling transfer of said information with said program in said virtual machine execution environnient; B. providing a plurality of native bridge agents in said native execution environment, including 0 0 a first native bridge agent configured to transfer said information with said virtual machine bridge class object and a second native bridge agent configured to transfer the information with said program processed in said native execution environment, the first and second native bridge agent transferring the information with each other through a native communication mechanism provided by said native execution environment.
    9. An information transfer method as defined in claim 8 in which said native communication mechanism comprises a shared address space arrangement in which said first and second native 0 b ridge agents transfer the infori-nation through a portion of their respective address spaces shared therebetween.
    10. An information transfer method as defined in claim 8 in which said native communication mechanism comprises a message passing arrangement.
    11. An information transfer method as defined in claim 8 in which the First native bridge agent comprises a dynamic link library configured to be loaded and linked for communications with the virtual machine bridge class object in response to a request therefor from the virtual machine bridge class object.
    12. An information transfer method as defined in claim I I in which the first native bridge agent, after it is loaded and linked, determines whether the second native bn'd-e agent is also operating and, if so, provides a notification the virtual machine bridge class object that information can be transferred therethrough.
    13. An information transfer method as defined in claim 8 in which the second native bridge agent comprises a dynamic link library configured to be loaded and linked for communications with the program processed in the native execution environment in response to a request therefor from the program processed in the native execution environment.
    14. An infon-nation transfer method as defined in claim 13 in which the second native bridge agent, after it is loaded and linked, determines whether the first native bridge agent is also operating, and, if so, provides a notification to the program executed in the native execution environment that information can be transferred therethrough.
    15. A computer program product for use in connection with a computer to provide information transfer subsystem for transferring information between a program beincy in a virtual , processed machine execution environment and a program being, processed in a native execution environment in'a digital computer system, the computer program product comprising a computer-readable medium having encoded thereon:
    A. a virtual machine bridge class object module instantiable by said computer in said virtual machine execution environment for enabling the computer to transfer said information with said program in said virtual machine execution environment; B. a native bridge agent module for enabling the computer to provide in said native execution environment, including a first native bridge agent configured to enable the computer to transfer said information with said virtual machine bridge class object and a second native bridge agent configured enable the computer to transfer the information with said program processed in said native execution environment, the first and second native bnidge agents enabling the computer to transfer the information with each other through a native communication mechanism provided by said native execution environment.
    16. A computer program product as defined in claim 15 in which said native communication mechanism compnises a shared address space ar- rancement in which said first and second native 0 bridge agents enable the computer to transfer the information through a portion of their respective 0 Z) address spaces shared therebetween.
    17. A computer progam. product as defined in claim 15 in which said native communication mechanism comprises a message passing arrancrement.
    18. A computer program product as defined in claim 15 in which the first nativ:e bridge agent comprises a dynamic link library configured to be loaded and linked for communications with the virtual machine bn'dge class object in response to a request therefor from the virtual machine bridge class object.
    19. A computer program product as defined in claim 18 in which the first native bridge agent, after it is loaded and linked, enables the computer to determine whether the second native bridge agent is also operating, and, if so, provide a notification to the virtual machine bridge class object that information can be transferred therethiough.
    M. A computer program. product as defined in claim 15 in which the second native bridge agent 0 comprises a dynamic link library configured to be loaded and linked for communications with the proggam processed in the native execution environment in response to a request therefor from the program processed in the native execution environment.
    I I n 2 1. A computer program product as defined in claim 20 in which the second native b idoge agent, after it is loaded and linked, enables the computer to determine whether the first native bridge agent D is also operating, and, if so, provide a notification the progarn executed in the native execution environment that information can be transferred therethrough.
    1"D 22. An information transfer subsystem substantially as herein before described with reference to and/or substantially as illustrated in any one of or any combination of Figs. I to 3C of the accompanying drawings.
    23. An information transfer method substantially as described herein with reference to and/or substantially as illustrated in any one of or any combination of Figs. I to 3C of the accompanying drawings.
    24. A computer program product substantially as described herein with reference to and/or substantially as illustrated in any one of or any combination of Figs. I to 3)C of the accompanying drawings.
GB9915173A 1998-06-30 1999-06-29 System and method for facilitating the transfer of information between programs processed in a digital computer system Expired - Fee Related GB2342735B (en)

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
GB9915173D0 GB9915173D0 (en) 1999-09-01
GB2342735A true GB2342735A (en) 2000-04-19
GB2342735B GB2342735B (en) 2002-11-20

Family

ID=22314397

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9915173A Expired - Fee Related GB2342735B (en) 1998-06-30 1999-06-29 System and method for facilitating the transfer of information between programs processed in a digital computer system

Country Status (3)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007005924A1 (en) * 2005-06-30 2007-01-11 Intel Corporation Method, apparatus and system for bi-directional communication between a virtual machine monitor and an acpi-compliant guest-operating system
EP1840741A1 (en) * 2006-03-29 2007-10-03 Nokia Corporation Device, method, and computer program product for accessing a non-native application executing in a virtual machine environment
EP2395429A1 (en) * 2010-06-09 2011-12-14 Siemens Aktiengesellschaft Assembly and method for operating a memory-programmable control device

Families Citing this family (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
CN116700834B (en) * 2023-08-07 2023-10-24 天津华来科技股份有限公司 App modularized loading method and system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007005924A1 (en) * 2005-06-30 2007-01-11 Intel Corporation Method, apparatus and system for bi-directional communication between a virtual machine monitor and an acpi-compliant guest-operating system
US7937701B2 (en) 2005-06-30 2011-05-03 Intel Corporation ACPI communication between virtual machine monitor and policy virtual machine via mailbox
EP1840741A1 (en) * 2006-03-29 2007-10-03 Nokia Corporation Device, method, and computer program product for accessing a non-native application executing in a virtual machine environment
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
GB9915173D0 (en) 1999-09-01
DE19930160A1 (en) 2000-01-05
CA2276640A1 (en) 1999-12-30
GB2342735B (en) 2002-11-20

Similar Documents

Publication Publication Date Title
US8132191B2 (en) Method and apparatus for adapting and hosting legacy user interface controls
JP5042454B2 (en) Method and computer program for receiving computing system and computing system
US5848246A (en) Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6519605B1 (en) Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
US6038590A (en) Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5999972A (en) System, method and article of manufacture for a distributed computer system framework
USRE39486E1 (en) Extensible, replaceable network component system
JP3484049B2 (en) Delay coded data transmission
EP0822490A2 (en) Object-oriented system, method and article of manufacture for a client-server communication framework
US6182154B1 (en) Universal object request broker encapsulater
US8332459B2 (en) Federation of composite applications
CN100547545C (en) The method and system that is used for the application fractionation of network edge calculating
CN101133381A (en) Method and apparatus for application window grouping and management
JP2015529878A (en) Providing access to remote applications via a web client
JPH1138958A (en) Remote control method, sever, and storage medium
KR20060047710A (en) Auxiliary display system architecture
WO1998038573A1 (en) Asynchronous-event opening component of a network component system
US6332218B1 (en) System and method for automatically instantiating classes in a virtual machine
US6233620B1 (en) Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system
KR20010086202A (en) Application wrapper methods and systems
US8495664B2 (en) System, method and program product for invoking a remote method
US6490520B2 (en) Vehicle-mounted information processing device and storage medium
CN113626095A (en) Switching method and switching system of configuration center, electronic equipment and storage medium
GB2342735A (en) Transferring information between computer programs
US8260944B2 (en) Using a state machine embedded within a session initiation protocol (SIP) servlet to implement an application programming interface (API)

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20050629