The following discussion deals only with planning/deployment on the “server side” using “EntireX/XML RPC Server” (no soap/wsdl related stuff) as intermediary between the Natural clients and the services they want to consume using a remote application gateway.
Facts on the application server side:
- Consist of a front end servers (based on Tomcat) that directs input request to several servers doing the actual processing work and also invokes plenty of service providers
- Existing client applications used to send requests to the above mentioned front end (the gateway) using HTTP protocol either directly or via java or dot-net proxy code.
- One of the existing service providers which existing clients applications consume, are remote Natural programs via EntireX Broker residing on the remote mainframe side.
- An Example of URL which represents client applications request to the gateway is: http://?service=<name1>&<app=<name2>&data=&other_params=
design time prep, configuration of XML RPC server & deployment
- For each service to be consumed by the Natural client, get or produce the service data definition XSD files (one for input request parameters and the other for reply related parameters, the output).
- For each XSD pairs use the ‘IDL Extractor for XML Schema’ to create an .IDL and a .XMM files.
- Convey the .IDL & .XMM file pairs to the Natural client side developers.
- Deploy the resulted XMM file to an existing (if this is not the first deployment) or new XML RPC server (1’st time deployment)
4.1 Do I have to also establish a “local” broker? - see fact 3 above
4.2 I saw pictures regrading deployment configration like: localhost:1971@RPC/XMLRPCSERVER01/CALLNAT. I understand that localhost:1971 is a broker listener but the exact meaning of each of the server-name parts (separated by "slash’) following the ‘@’ is not clear to me. What should I choose for them assuming that the XML RPC would run on my premise and not on remote mainframe?
4.3 The XSD files contains only data information (as opposed to WSDL which contains detailed service invocation information (URL, methods etc.):
4.3.1 So, how do I convey ‘wsdl - like’ equivalent operational information to the XML RPC server?
4.3.2 When I create the IDL from my XSD file, I deliberately force the IDL to contain two metadata needed for proper HTTP invocation by reflecting them in the Library & Program clauses. How can these two pieces of information can be reflected in the HTTP request that suppose to be emitted from the XML RPC Server? (see name1 & name2 in the above sample URL)
4.3.3 The deployment dialog box from the document indeed shows that I have to fill a URL. But If I want to fill it with the URL of my gateway I must add the above Library & Program names into the URL but I don’t see how. (see ‘name1’ & ‘name2’ in the sample URL above). - Those metadata values are not constant, each IDL contain different Library Program names.
4.4 I have mentioned above that clients of our gateway may use a java or dot-net proxy to access the gateway. So in order to solve the problem of the two metadata pieces hidden in the Library and Program clauses of the IDL, can I use instead a non-Http Url but some jar activation URL syntax that will be call by the XML RPC server with the XML runtime data that Natural clients has sent it?
Assuming the answer to this question is ‘yes you can’ I want the XML RPC server to call my proxy jar instead of posting URL directly to the gateway:
4.4.1 Is there any protocol I have to implement (in my proxy jar) in order to pass data from the XML RPC to the jar proxy executable? Is there any support in the XML RPC proxy to avoid loading this jar file on each request and doing it only once?
4.4.2 Alternatively, can I add my stub to the XML RPC server so that I will be able to control how to invoke my proxy jar file and transfer the XML data, the Library & Program names?
4.4.3 Are there significant disadvantages of using external jar activation in comparison to posting Http request directly to my gateway?
- If there is a way for the XML RPC server to call my gateway directly (including passing the Library & Program information for each Natural request), Is there something I have to deploy on my gateway side (remember - its Tomcat)?
If the answer is yes
5.1 What do I have to deploy in the gateway?
5.2 Does it mean that XML RPC server calls must be directed to a specialized servlet that you are providing its source code and I have to complete it by forwarding the call after some processing to my regular servlet?