Thursday, June 12, 2008

IBM i5 exposed

Following the post on web services interoperability, we've now deployed in production our first web service based on a legacy software written in rpgle and resident on an IBM i5. I will review the principal passages of the procedure.

First, we used WDSC to generate a Java class which extends com.ibm.connector.as400.ProgramCallBean, which is basically a class that wraps a call to the rpgle program. The class comes with a .pcml file, which defines the name of the rpgle program and the parameters to be used, and a .config file, which describes the properties used to connect to the i5 system.

Then we created a new project on NetBeans IDE in which we imported everything; we created some domain classes, defined an interface for the new service, created a fake and a real implementation and kindly asked the IDE to generate a Web Service for us (yes, if you're wondering it was all test driven).

We deployed the application on an Apache Tomcat, created (always with NetBeans IDE) a client for the service and tested it. Everything worked all right.

To expose the service to our customers, we deployed the application in the DMZ and opened the correct ports on the firewall:
  • 449 for the port mapper
  • 8475 for remote command
  • 8476 for sign on
We kept all the other ports suggested by IBM closed as we don't need them open... yet.

2 comments:

M@Ru said...

Hi, how are you?

Excuse me, but I talk and write very little English.

However, I need to help me, because I'm working in a As400 interface with java and I use com.ibm.connector.as400.ProgramCallBean for connection with As400 using method setConnectionData(myi5); cx013.invoke();

But I don't know if The connection to this is working, because The console return following:
______Thread 0 = main
350943:5:13.798 0 > Running iSeries host command : CHGJOB INQMSGRPY(*DFT)
In Addition, I don't have result of As400.

Thank you for your attetion.

.MOz said...

The message you posted states that you're changing the default behaviour of the message queue for the job you are launching. That said, you should provide me with some more info...