Methods and apparatus for building, customizing and using software abstractions of external entities
First Claim
1. A compile-time environment comprising:
- a processor; and
a compiler coupled to and operated by the processor, the compiler to parse a software application in source form, including parsing logic to discern and comprehend a proxy object declaration, and in response, gather (1) one or more declarative annotations from the software application, the declarative annotations including proxy object settings of a proxy object, and (2) a proxy object definition defining the proxy object, the proxy object abstracting an external entity, and the proxy object is to be generated to assist the software application in interacting with the entity, the proxy object definition identifying at least an implementation of the proxy object to be generated and the implementation of the proxy object having one or more functions to assist the software application in programmatically interacting with the entity, and generate the software application in executable form and the proxy object, based at least in part on the result of said parsing and said gathering, the proxy object settings, the proxy object definition, and the implementation of the proxy object, wherein the compiler generates a first interface function for the proxy object for each added non-built-in function of the implementation of the proxy object, with each first interface function invoking an invoke function to effectuate interaction with the entity for the corresponding added non-built-in function and includes with the generated proxy object one or more interface callback functions to receive reporting of asynchronous events from an asynchronous event router for the entity.
2 Assignments
0 Petitions
Accused Products
Abstract
An entity is abstracted through implementation of a proxy object of the present invention, including functions for a software application to programmatically interact with the entity at runtime, as well as optional compile and design time implementation classes to support the development and customization of declarative proxy object definitions. In one embodiment, builder and resource interfaces are provided to assist in the creation of the implementation classes. In one embodiment, an extension interface is also provided to facilitate extension of an implementation of the proxy object. Software applications including programmatic usage of proxy object functions are compiled into object codes with proxy objects and meta data files. The compiled object codes are executed using a runtime engine, which includes proxy context objects to facilitate interaction on an instance basis, and an asynchronous event router to route asynchronous events for the entity.
-
Citations
37 Claims
-
1. A compile-time environment comprising:
a processor; and
a compiler coupled to and operated by the processor, the compiler to parse a software application in source form, including parsing logic to discern and comprehend a proxy object declaration, and in response, gather (1) one or more declarative annotations from the software application, the declarative annotations including proxy object settings of a proxy object, and (2) a proxy object definition defining the proxy object, the proxy object abstracting an external entity, and the proxy object is to be generated to assist the software application in interacting with the entity, the proxy object definition identifying at least an implementation of the proxy object to be generated and the implementation of the proxy object having one or more functions to assist the software application in programmatically interacting with the entity, and generate the software application in executable form and the proxy object, based at least in part on the result of said parsing and said gathering, the proxy object settings, the proxy object definition, and the implementation of the proxy object, wherein the compiler generates a first interface function for the proxy object for each added non-built-in function of the implementation of the proxy object, with each first interface function invoking an invoke function to effectuate interaction with the entity for the corresponding added non-built-in function and includes with the generated proxy object one or more interface callback functions to receive reporting of asynchronous events from an asynchronous event router for the entity.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A runtime environment comprising:
-
a processor; a loader operated by the processor and to load a software application in executable form for execution, the software application including proxy initialization codes that are included to generate instantiation of a proxy object, the proxy object abstracting an external entity, and wherein an implementation of the proxy object includes one or more functions the software application programmatically employ to interact with the entity and an invoke function to effectuate interaction with the entity through added one or more non-built-in functions of the implementation of the proxy object; and
an asynchronous event router operated by the processor and to report asynchronous events to the software application for the entity, through the proxy object, wherein the asynchronous event router is equipped to listen for the asynchronous events generated by the entity and to report detected asynchronous events by the entity to selected ones of interface callback functions of the proxy object. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A software compilation method comprising:
-
parsing, by a compiler, a software application in source form, including discerning and comprehending a proxy object declaration;
gathering, by the compiler, (1) one or more declarative annotations from the software application, the declarative annotations including proxy object settings of a proxy object, and (2) a proxy object definition defining the proxy object, the proxy object abstracting an external entity, and the proxy object is to be generated to assist the software application in interacting with the entity, the proxy object definition identifying at least an implementation of a proxy object to be generated and the implementation of the proxy object having one or more functions to assist the software application in programmatically interacting with the entity; andgenerating, by the compiler, the software application in executable form and the proxy object, based at least in part on the result of said parsing and said gathering, the proxy object settings, the proxy object definition, and an implementation of the proxy object, wherein said generating comprises generating a first interface function for the proxy object for each added non-built-in function of the implementation of the proxy object, with each first interface function invoking an invoke function to effectuate interaction with the entity for the corresponding added non-built-in function and inclusion with the generated proxy object one or more interface callback functions to receive reporting of asynchronous events generated by the entity from an asynchronous event router for the entity. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An execution method comprising:
loading a software application in executable form for execution, including execution of the software application at an included proxy initialization code of the software application in the executable form to instantiate a proxy object, the proxy object abstracting an external entity, and wherein an implementation of the proxy object has one or more functions to assist the software application to programmatically employ to interact with the entity and an invoke function to effectuate interaction with the entity through each added non-built-in function of the implementation of the proxy object; and
reporting asynchronous events to the software application for the entity, through the proxy object, wherein an asynchronous event router listens for the asynchronous events generated by the entity and reports detected asynchronous events by the entity to selected ones of interface callback functions of the proxy object.- View Dependent Claims (33, 34, 35, 36, 37)
Specification