There are two types of solutions The first: have the original client application add a parameter with the address of web service A, and use this address for calling the service. The second: pass a more abstract user identifier from the client (actually, there's a good chance you have such a field in the service). And use a translation service to retrieve the physical address corresponding to this id.To allow such translation, the desktop application that acts as a server needs to "register" with the translation service when starting up.
If you are using an ESB, or other SOA infrastructure (like a service directory, message queuing service) it will include much of the functionality you need to build the translation service. Regarding the actual hosting of the service in the client machine. The simplest solution is to use a different process from the actual application, and just access the files or DB the application uses.
In this case you can use any infrastructure you like to develop the service. A more complex scenario is when you need the actual application to supply the service.In this case you will need to have a thread in the application that listens to service requests. If you are using WCF see Hosting Services about how to host a web service in your application.
EDIT some additions regarding you clarification.As I understand, the desktop application exposes a C\C++ API that is available for external processes on the same machine. You can either write a web service that will use this API. Googling "C++ Web Services Windows" will give yo several relevant pointers on implementing those.
Another good option is to use a messaging infrastructure. Most JMS providers provide API's in languages other then Java - including C++. Your application will be a C++ windows service that listens and sends messages to you JMS provider.
Thank you for your input. I updated my question to make it more clear. I am interested in the ESB based solution.
Can you give more detail how can I use ESB to solve this kind of problem? To me it looks I have to develop a small windows client that hooks to the desktop application via the API provided and get those information and somehow gives it web service A. Normally web services get their information from databases on the network but this situation is different.
– ace May 8 at 19:00 The scenario is this: Human actor logs into a website and clicks a button which requests the service provided by web service B sending his ID. Web service B sends request to web service A with this ID. Web service A uses this ID and knows what the address is to talk to the that specific windows client to get the information.
How does this part work? – ace May 8 at 19:32.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.