Let’s go deeper into common object environment. The environment manages interface objects of multiple different languages and provides interface to these languages to define object’s attributes, functions and events. It holds all information and parameters about the objects. Therefore, it can act as a proxy to other applications outside to complete some functions or function calls.
Web service is a popular method of remote call, which uses SOAP as interface standard. Common object environment can implement SOAP interface, and thus become a proxy for web service. This will simply the development of web service. The applications, components or libraries developed based on the environment may not aware of web service call. There are no difference between web service calls and normal calls. Let’s use a diagram to further illustrate.
In above figure, a class object defined in java language has a function “Add”. For its c/c++ instance, application can call “Add” function through environment as previously talked about. The “Add” function of c/c++ instance can also be used as web service. In this case, the WSDL file can be generated automatically by environment proxy. Other application can get WSDL of the instance by http post request. Then, they can initiate web service call, and the proxy routing the call to the function of the class object. The class object does not know whether the call is web service call or normal function call. It only needs to implement the “Add” function body using java. Is it simple?
Common object environment holds all information of interface. Thus, it can act as a proxy and generate WSDL file to provide web service function to outside applications, which will simply the development of web services.