EP-4002121-B1 - MIDDLEWARE INTERFACE AND MIDDLEWARE INTERFACE GENERATOR
Inventors
- YIM, KEUN SOO
- MALCHEV, Iliyan
Dates
- Publication Date
- 20260506
- Application Date
- 20170816
Claims (10)
- A method for accessing hardware of a computing device, the method comprising: accessing a file (310) describing an interface definition; generating a server stub (140), based on the interface definition, for communicating with a hardware access library (260) of an operating platform, the hardware access library providing access to the hardware (135) of the computing device executing the operating platform; generating, based on the interface definition, a client proxy (150) for communicating with the server stub (140); generating a middleware interface specification (350) based on the interface definition, the middleware interface specification including one or more control flows, the one or more control flows including function operation descriptions for allowing a process to access the hardware of the computing device; and, generating, using the middleware interface specification, a middleware driver (145) for communicating with the client proxy, the middleware driver also in communication with an agent (125) for receiving communications from a plurality of processes, in response to at least one of the plurality of processes being executed by a remote computer system different from the computing device: launching an agent process for receiving a request from a remote process; receiving the request from the remote process for accessing the hardware; invoking a first call to the middleware driver responsive to the receiving of the request from the remote process; invoking, by the middleware driver, a second call to the client proxy to implement one or more operations required to satisfy a remote call responsive to the invocation of the first call; invoking, by the client proxy, a third call to the server stub responsive to receiving the invocation of the second call; accessing, by the server stub, the hardware responsive to receiving the invocation of the third call; and in response to at least one of the plurality of processes being executed on the computing device: receiving a request from an application layer of the computing device for accessing the hardware; invoking, by an application framework layer of the computing device, a fourth call to the client proxy to implement one or more operations required to satisfy the request from the application layer of the computing device; invoking, by the client proxy, a fifth call to the server stub responsive to receiving the invocation of the fourth call; accessing, by the server stub, the hardware responsive to receiving the invocation of the fifth call.
- The method of claim 1 wherein the operating platform includes the agent (125).
- The method of any one of the preceding claims wherein a first compiler (113) performs generating the server stub (140), generating the client proxy (150) and generating the middleware interface specification (310).
- The method of claim 3 wherein a second compiler (118) performs the generating the middleware driver (145).
- The method of any one of the preceding claims further comprising deploying the server stub (140), the client proxy(150), and the middleware driver (145) to the computing device executing the operating platform.
- The method of any one of the preceding claims wherein the operating platform is an open source platform.
- The method of any one of the preceding claims wherein the hardware is an input/output device.
- A computer program product comprising instructions which, when the program is executed by one or more processors, cause the one or more processors to carry out the method of any one of the preceding claims.
- A system comprising: a first processor; hardware; and, a memory storing instructions that when executed by the first processor cause the first processor to carry out the method of any one of claims 1 to 7.
- The system of claim 9, wherein, when the at least one of the plurality of processes are executed by a remote computer system different from the computing device, the instructions further cause the first processor to perform operations of: invoking a sixth call on the server stub (140) responsive to a request transmitted from the input/output device to the hardware access library (260); invoking a seventh call on the client proxy (150) responsive to the invocation of the sixth call; invoking an eighth call on the middleware proxy (145) responsive to the invocation of the seventh call; and communicating, via the agent process (125), a message to the remote process responsive to the invocation of the eighth call.
Description
TECHNICAL FIELD The following disclosure relates to the technical field of operating platforms and/or operating systems. BACKGROUND An operating platform for a computing device can include two layers: a system layer and a framework layer. The system layer can include an operating system kernel, libraries for accessing functionality of the operating system kernel, and an abstraction layer for interfacing with hardware. The framework layer can include services that can be used by applications executing on the operating platform and the applications. In some applications, the operations performed by the system layer and the framework layer are split among computing systems. For example, the system layer's operations may be performed by a mobile device, while the framework layer operations are performed by a server in a cloud computing configuration. When the system and framework layers execute on separate computing devices, components of the framework layer may communicate with components of the system layer via custom streaming channels implemented in the framework layer. International patent application WO 2013/143121 A1 discloses a method that may include hosting, by a virtual machine manager of a local machine, a virtual machine having a device driver. The method may include obtaining, by the virtual machine manager, from a stub driver on the remote machine, information about the I/O device on the remote machine. The I/O device on the remote machine may be bound to the stub driver on the remote machine. The method may include instantiating, by the virtual machine manager, a virtual I/O device on the local machine corresponding to the I/O device on the remote machine. The method may include collaborating, by the virtual machine manager, with the stub driver on the remote machine to effectuate a real access to the I/O device on the remote machine for an access to the virtual I/O device by the device driver on behalf of a program on the local machine. SUMMARY In one aspect, a method for accessing hardware of a computing device is defined by independent claim 1. Various implementations of this aspect may include one or more of the following features. In some implementations, the operating platform includes the agent. In some implementations, at least one of the plurality of processes are executed on the computing device, and in some implementations at least one of the plurality of processes are executed by a remote computer system different from the computer system. In some implementations, the first complier performs generating the server stub, generating the client proxy and generating the middleware interface specification, and a second complier performs the generating the middleware driver. In some implementations, the method also includes deploying the server stub, the client proxy, and the middleware driver to the computing device executing the operating platform. The operating platform may be an open source platform. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the operations of the method summarized above. In another aspect, a system for accessing hardware of a computing device is defined by independent claim 9. Various implementations of this aspect can include, for example, the first processor executing the remote process or a second processor of a remote computer system executing the remote process. In some implementations, the client proxy, the server stub, and a middleware interface specification are generated based on an interface definition, and the middleware driver is generated based on middleware interface specification. In some implementations, the instructions stored in the memory further cause the first processor to perform operations including invoking a fourth call on the server stub responsive to a request transmitted from the input/output device to the hardware access library, invoking a fifth call on the client proxy responsive to the invocation of the fourth call, and invoking a sixth call on the middleware proxy responsive to the invocation of the fifth call. The operations may also include communicating, via the agent process, a message to the remote process responsive the invocation of the sixth call. Other embodiments of this aspect include corresponding methods configured to perform the operations of the processor of the regression testing system according to the instructions stored in the regression testing system's memory. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the operations of the method summarized above. The details of one or more implementations are set forth in the accompa-nying drawings and the description below. Other features will be apparent from the description and drawings, and from the cl