Development system providing extensible remoting architecture
First Claim
1. A computer-implemented method for a client to make a remote method call on a service, the method comprising:
- obtaining an interface definition of a particular service available to remote clients, said interface definition including runtime type information;
casting a generic interface class to said particular service for dynamically generating a proxy at runtime based on said generic interface class and said interface definition of said particular service for making a remote method call on said particular service; and
when a call is made by a client on said particular service, said proxy automatically making a remote method call on said particular service by performing the substeps of;
converting said call made by said client into a converted call in a wire format specified in said interface definition;
sending said converted call to said particular service using a method of transport specified in said interface definition;
in response to receipt of said remote method call in said particular service, deserializing said remote method call into native format;
invoking said particular service by making a native call on said particular service in native format; and
reserializing results of said native call on said particular service and returning said reserialized results in response to said remote method call.
8 Assignments
0 Petitions
Accused Products
Abstract
A system providing improved methods for remote method invocation of a service is described. The system includes methodology for a client to cast, at design time, a generic interface class to a remote service having a defined interface. The generic interface class dynamically generates a proxy for making a remote method call on the remote service at runtime, while also providing for runtime type checking. The generic interface class is subclassed to provide support for particular wire formats and methods of transport. The dynamically generated proxy converts a remote method call by the client into a wire format specified in the remote service'"'"'s interface definition and calls the remote service using the method of transport specified in the interface definition. The system also supports making a service available to remote clients and includes modules for converting remote method calls on a service into native format.
-
Citations
50 Claims
-
1. A computer-implemented method for a client to make a remote method call on a service, the method comprising:
-
obtaining an interface definition of a particular service available to remote clients, said interface definition including runtime type information; casting a generic interface class to said particular service for dynamically generating a proxy at runtime based on said generic interface class and said interface definition of said particular service for making a remote method call on said particular service; and when a call is made by a client on said particular service, said proxy automatically making a remote method call on said particular service by performing the substeps of; converting said call made by said client into a converted call in a wire format specified in said interface definition; sending said converted call to said particular service using a method of transport specified in said interface definition; in response to receipt of said remote method call in said particular service, deserializing said remote method call into native format; invoking said particular service by making a native call on said particular service in native format; and reserializing results of said native call on said particular service and returning said reserialized results in response to said remote method call. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method for making a service available to remote clients, the method comprising:
-
creating an interface definition for a particular service, said interface definition including runtime type information; implementing said interface definition as part of said particular service; in response to a request received from a remote client on said particular service, using a dynamically generated proxy generated at runtime based on a generic interface class and said interface definition of said particular service for sending said request to said particular service in a format specified in said interface definition and automatically converting said request into a native call on said particular service;
wherein the dynamically generated proxy converts said request into a particular wire format specified in said interface definition of said particular service and sends said request to said particular service using a method of transport specified in said interface definition of said particular service;in response to receipt of said request in said particular service, deserializing said request into native format; invoking said particular service by making a native call on said particular service in native format; converting return values resulting from said native call on said particular service into a format appropriate for return to said remote client and sending said return values to said remote client. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer system for making a service available to remote clients, said system comprising:
-
an interface definition for a particular service to be made available to remote clients, said interface definition including runtime type information; a dynamically generated proxy generated at runtime based on a generic interface class and said interface definition of said particular service for sending remote method invocations in a predetermined wire and transport format specified in said interface definition;
wherein the dynamically generated proxy converts said remote method invocations into a wire format specified in said interface definition of said particular service and sends said remote method invocations in a transport format specified in said interface definition of said particular service;a dispatcher module for listening for remote method invocations on said particular service, receiving said remote method invocations in said predetermined wire and transport format, deserializing said remote method invocations into native format, reserializing returned result values from native format into said predetermined wire and transport format, and returning said reserialized return values; and an invoker module for making a native call on said particular service and returning result values from said native call. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A computer-implemented method for making a service available to remote clients, said method comprising:
-
developing an interface definition to a service to be made available to remote clients, said interface definition including runtime type information; implementing said interface definition to create an implemented interface to said service, said implemented interface listening for requests on said service; dynamically generating a proxy at runtime based on a generic interface class and said interface definition of said service for sending a remote method call to said service in a format specified in said interface definition;
wherein said dynamically generated proxy converts said remote method call into a particular wire format specified in said interface definition of said service and sends said remote method call to said service using a method of transport specified in said interface definition of said service;in response to receipt of said remote method call in said service, deserializing said remote method call into native format; invoking said service by making a native call on said service in native format; and reserializing results of said native call on said service and returning said reserialized results in response to said remote method call. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50)
-
Specification