The invention relates to a system and a method for communication between remote objects whose methods can be accessed as XML web services—in this case also referred to for short as web services—and their local proxy objects, whose methods implement transparent access to the remote methods. Communication methods such as these are described, for example, in http://www.w3c.org/2002/ws/, (Date: Jan. 27, 2004).
XML web services represent a standardized and widely used basis for communication in loosely coupled, distributed systems, such as the Internet, in particular for calling remote procedures and methods. XML web services can be used to access remote objects in object-oriented systems.
The known procedure for a remote service call in an environment such as this is shown in
By the use of SOAP (Simple Object Access Protocol), as described in http://www.w3.org/TR/soap12-part1/, linked to http (Hypertext Transfer Protocol), as described in ftp://ftp.isi.edu/in-notes/rfc2616.txt, as a-method for interchanging structured and type-based data, services can be made accessible to widely different applications within the so-called WWW beyond platform boundaries. In principle, the known method as well as the method described below are, however, independent of the protocol being used.
One major disadvantage of a generic implementation of remote method calls such as this is that these calls are many times more time-consuming and computation-intense than local function calls, or function calls in more closely coupled systems.
The invention is based on the object of specifying a system and a method for communication between remote objects, by means of which it is possible to reduce the communication complexity.
This object is achieved by a communications system which has the features specified in claim 1. An associated communication method and advantageous refinements are specified in further claims.
The invention accordingly proposes that the required communication complexity be reduced by arranging an optimization layer and a general proxy at the client end, and by introducing a general service at the service provider. These measures make it possible to achieve optimizations, for example by the grouping of calls.
The system or method allows the use of caches, alternative data formats and transmission protocols, as well as application-specific optimizations.
In environments which, for example, only loosely couple individual components beyond the boundaries of a local area network, it may be particularly desirable to group service calls when the fixed costs for a so-called round robin from the client to the service provider and back are very high in comparison to the costs of the transmission and processing of the actual service request and response. These costs are caused by the necessity to set up (often several) connections, the creation and transmission of protocol-specific message headers, and the initialization of components which process messages (for example of SOAP/XML-Parser, authentication and authorization) or transmit messages (for example HTTP connection or data compression). The invention results in an improvement in this situation since it allows optimizations to be introduced into the communication procedure independently of the creation of the services (web services) and proxies. In this case, there are no additional requirements on the procedure environment either of the service or of the client and proxy components, and the generic service and proxy components, in particular their interfaces, are not modified, thus advantageously achieving reusability and easy configurability.
The method according to the invention allows:
The method can be used in all environments in which generic service provider components and proxy components are available which encapsulate the formalities for formatting and transmission of a remote service call, and the corresponding response. For example, components such as these are offered by the Framework Class Library (FCL) of Microsoft.NET Platform, see J. Richter, Applied Microsoft.NET Framework Programming, Microsoft Press 2001, pages 21 to 24.
A further description of the invention and of its advantages is provided in the following text with reference to one exemplary embodiment, which is illustrated in the drawing figures, in which:
A generic proxy for this additional web service is installed in a corresponding manner in the remote procedure environment, at the client 1, and is referred to as a general proxy 7. In addition, the client 1 contains an optimization layer 6, as an additional component. This offers communication and data formatting functions which are required for communication with the proxies 3, and to this extent replaces functions of the communication layer 4, but also with the addition of optimization capabilities. The optimization layer 6 may itself use the functionality of the communication layer 4, or some other implementation of the required functionality, by means of the general proxy 7.
Further information relating to the operation of the already mentioned components can be found in the following description of a communication procedure on the basis of
Step S1: The client 1 or the client application 2, calls a local procedure which is made available by a proxy 3.
Step S2: The proxy 3 uses the functionality implemented in the optimization layer 6 for transmission of procedure calls. The optimization layer 6 offers the proxy 3 an interface which is identical to the original communication layer, for this purpose.
Step S3: Provided that it has not been delayed and cannot be answered by a result in a cache in the optimization layer 6, the service call has service calls which are already available but have been delayed or else which have been sensible to handle in advance added to it in the optimization layer 6 (grouping of calls).
Step S4: This group of calls is transferred by a local call of the general proxy 7 to the generic communication layer 4 of the client 1, and is transmitted to the communication layer 4 of the service provider 10.
Step S5: The group is transferred to the general service 8 by a local call to the general service procedure.
Step S6: The general service procedure processes the service calls and produces their results. The general service 8 finds the required services 5 for this purpose in the step 6.
Step S7: Method call by the general service 8.
Step S8: Result return from the services 5 to the general service 8.
Step S9: Combination of the results by the general service 8 to form groups.
Step S10: Return of the result group to the communication layer 4. The group can have information to be transmitted additionally from the service provider to the optimization layer 6 of the client added to it.
Step S11: Transmission to the remote communication layer 4 and return from there to the general proxy 7, which produces the result as a local procedure return to the optimization layer 6.
Step S12: Evaluation of the results in the optimization layer 6.
Step S13: The information which has been supplied to the initial service request in addition to the response is evaluated and used in the optimization layer 6.
Step S14: The response to the initial request is transmitted via the generic proxy 3 to the client application 2, thus completing this example of a procedure.
In one specific implementation of the system, for example as a component within the .NET framework, the extension to an existing system by the addition of generic proxies and service providers can be provided by replacement of the client-end communication layer by the optimization layer 6 according to the invention with a communication layer 4 and the installation of the additional general proxy in parallel with the existing proxies. Optimizations which are independent of the application, such as the use of caches and the delaying of service calls, can thus be made available in a configurable form, without any implementation effort. Application-dependent optimizations can be introduced as modules at a defined interface of the optimization layer 6.
The general service 8 is implemented in a corresponding manner in parallel with the available services at the service provider end. The general service 8 includes a, cache of service-providing service instances, whose service methods are carried out by so-called reflection, that is to say on the basis of information about the destination, the name and the signature of the method. XML document instances in accordance with the SOAP specification or more bandwidth-efficient binary coding can be used for serialization and deserialization of the parameter and return objects relating to the method calls. In the case of SOAP (de)serialization, client-end types are associated with service-provider-end types on the basis of type attributes declared in the given proxy service pairs, and in the case of binary coding, a link is implemented between serialization and the type to be instantiated, on the basis of the requirements of the already found deserialization component.
The optimization and monitoring of the communication is transparent both for the user of the offered services and for their provider.
Number | Date | Country | Kind |
---|---|---|---|
10 2004 004 345.0 | Jan 2004 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP05/00862 | 1/28/2005 | WO | 3/16/2007 |