Exploring Web Service generation and runtime - an overview
JoeVincens 100000GUD5 Visits (5360)
As the lead for RBD service development, the question I dread the most is "which is better SOAP or REST services?". That question is similar to asking what color is the sky. If you ask 10 people and you will get 12 different answers, and the answers vary depending on the direction the wind is blowing that day.
The main factors you need to keep in the forefront are: what is the application I'm developing, what is the production environment, and what are the controlling corporate standards that the application must be deployed into. This blog is the beginning of a series I'll write on the topic of how we implement SOAP and REST in RBD. My goal is not to explain the technology, there are plenty of web sites that can explain JAX-RPC, JAX-WS, REST and compare and contrast. My goal is to explain how we implement the technologies in RBD. With this information you can make a better decision to the "SOAP or REST?" question.
As of RBD 8011 the following are supported, the newest being JAX-WS WSDL SOAP (added in 8011):
Each of the above WSDL SOAP implementations use a runtime component that is not developed by the RBD team.
JAX-RPC WSDL SOAP:
With all of the variations there is a lot to talk about! Today's topic will be a basic web service and web service invocation overview. First, we'll look at the heart of all EGL web services -- an EGL service part. An EGL service part contains the business logic you write which gets generated to the generation target language just like any other part like programs, libraries etc.
Tomcat uses Apache Axis 1.X.
WebSphere uses the WebSphere JAX-RPC runtime.
CICS uses the IBM CICS Web Service runtime.
Java uses the Apache Axis 1.X runtime
IBM i COBOL services use the application server runtime it's deployed to and the jt400 tool box to connect from Java to IBM i COBOL.JAX-WS WSDL SOAP:
Invocations use the classes that ship with the 1.6 JRE.
Tomcat services use Apache Axis 2.X.
WebSphere uses the WebSphere JAX-WS runtime.
This diagram shows the anatomy of a deployed EGL web service.
This diagram provides the anatomy of an EGL service invocation request.
In the EGL code:
The runtime request:
In up-coming blogs, I'll discuss JAX-RPC SOAP for Java, Tomcat and WebSphere, EGL REST RPC service, and JAX-WS SOAP for Java, Tomcat and WebSphere. Let me know what service topics you'd like to hear about!