Hello. We are looking for an option to post a request to a SOAP server from a mainframe. We want to make a Remote Procedure Call (RPC) from a CICS program to a SOAP server, which should process the request and give the error or success response back. Earlier we thought of implementing this using TCP/IP protocol, but, as a SOAP analyst told us, SOAP servers can not accept and will not process requests using TCP/IP. He also said the only option is to develop a SOAP client on a mainframe using Java and call that from a CICS COBOL program with the required information. The SOAP client will communicate with the SOAP server using a URL.
We have never done Java programming on our Z/OS-based mainframe environment, and we're not sure if our mainframe is configured for the Java.
Is there an option other than using a SOAP client? Also do you think it is possible to call a Java program from a CICS COBOL program? If yes, what are requirements? If you know of any Web site where I can get this information, it will help me to understand this concept.
I must start by admitting you're "outside my comfort zone" in a number ways here. That's as close to an "I don't know" with a violent shrugging of shoulders you'll get from a consultant most of the time. With that disclaimer, however, let me launch into some suggestions anyway.
The first thing I see is a definite attempt to merge otherwise incomparable fruit (mix apples and oranges). SOAP (or SOAP-XML) is a description schema. It's a supposedly standardized way for one system to send a request to another that contains complex data and parameters and to then get back a potentially complex result even if those systems are very different and have no common library. TCP/IP is a networking protocol (technically a pair of protocols), which allows communication to take place between two applications.
Both Java and COBOL are programming languages. They relate to each other like this: A program, which is written in a programming language like Java or COBOL, may send a request to another program -- written in the same language or an entirely different one -- if they are connected by a networking protocol like TCP/IP. Since neither program has much knowledge of the other, they may both have been written to speak to each other using SOAP-XML. With SOAP-XML, one can say to the other "I'm calling a method called 'tellMeTheTime,' and I am passing you a string of text encoded in US-ASCII, which is a parameter to that method identified as the name of a city." The response that comes back may be "In response to your call to my method called 'tellMeTheTime,' I am sending you three numeric values encoded in US-ASCII. They are hours, minutes and seconds, in that order."
The second thing I see is that you are being told "only option" -- something that makes the hair on my neck stand up. Beware of people who throw the word "only" around too freely.