Programming / Development Tools
Want a fast, easy way to deploy Web applications on IBM i? Does WebSphere Application Server seem too daunting? IBM Integrated Web Application Server for i is the solution!
IBM Integrated Web Application Server for i (IAS) is a lightweight Java-based Web application server. Although released as a PTF in IBM i 5.4, if you're running IBM i 6.1 or 7.1, the product is as an integrated component of the operating environment.
What does this offer you? Well, if you have a workload you want to quickly deploy on IBM i via the Web, it means that you don't have to spend time and system resources configuring, deploying, and maintaining a WebSphere Application Server instance to do the job. So instead of using a WebSphere backhoe to dig your fence post holes, you get to use a gas-powered IAS auger.
It's an easy-to-deploy solution, and I'll show you how from start to finish.
A Little Prep Work
In preparation, I'll show you few things that you'll want to consider.
The first is an absolute must: get up to date on Program Temporary Fixes (PTFs). Whenever I've spoken to people who say that the IBM i Web interfaces are slow, it's usually due to the fact that they don't have relevant HTTP or Java Group PTFs loaded. It's imperative that you are up to date with Cumulative, Group, and HIPER PTFs before doing anything on the Web.
Second, you should have a fully qualified DNS hostname (i.e., ibmi.mydomain.com) in your IBM i host table. Access any IBM i Web interfaces using that address, rather than an IP address. IBM Web Administration for i and IBM Systems Director Navigator for i both run under WebSphere Application Server, which is quite partial to DNS lookups. If you run recent releases of IBM Sametime on IBM i, then you probably already know how important DNS resolution is.
Third, on my server, I make sure all different Web applications running on IBM i are bound to specific IP addresses. I run six different IBM Lotus servers (Domino, Quickr, Sametime Community Server, Sametime System Console, Sametime Proxy Server, Sametime Meeting Manager) on one IBM i partition, and every one of them is accessed via the Web in a number of ways, so I want to make sure that any other Web work I do won't affect those. Binding simplifies things by ensuring I don't have to worry about what ports are available and I won't get caught with two servers fighting over one port. If we don't do this, every port would be listening on all available IP addresses on the server and default ports like 80 (HTTP) and 443 (HTTPS) are usually already taken, so your Web server startup will fail.
You'll need to log into the IBM Web Administration for i interface via a Web browser. Once logged in, click the Manage tab and look at all of the HTTP servers and application servers. You'll see whether each is bound to a specific IP address via the Address:Port column. Anything with an asterisk could be a problem. For instance, if you have servers defined with *:80, *:5080, or other combinations, then you should really define them to use specific IP addresses like 192.168.3.4:80 or 192.168.3.5:5080. Take care when changing these if they are production Web applications; you may not want to restart them during business hours. Later, during setup of an IAS instance, you'll instruct it to specifically use port 80 on a dedicated IP address (192.168.3.13). Keep this browser tab open; we'll go back to it in a minute.
Create a new TCP/IP interface and domain name entry for this new Web server. Of course, you can do the traditional "green-screen" method, but where's the fun in that? Nowhere! We're all in a green-screen, AS/400-style rut until we force ourselves to use the modern IBM i tools! Also, we're prepping our system for the Web (think modern), so let's use the Web!
Open up a new tab in your Web browser, log into IBM Systems Director Navigator for i, expand IBM i Management, and click on Network. Click the Create IPv4 Object, choose Local Area Network Interface, and click Next to start the wizard. For the purposes of example, I've added the address 192.168.3.13. Once that's created, I can see the new IP address in my list of interfaces (see Figure 1). I'll also add a DNS entry in Active Directory pointing to that IP address.
Figure 1: The new IP addresses are in the list of interfaces.
Setting Up an IAS Instance
To configure an IAS instance, you need to go back to IBM Web Administration for i. Click on the Setup tab and then simply click on Create a New Application Server to start the process (see Figure 2).
Figure 2: Start by clicking on Create a New Application Server.
Click the Next button.
When prompted to choose what type of application server to create, select IBM Integrated Web Application Server for i. Depending on the OS level, you will have version 7.1 or version 8.1 (see Figure 3).
Figure 3: Choose IBM Integrated Web Application Server for i.
You will then be prompted for a little information about this new server. First, you have to confirm the name of the application server. You can either leave this as the default INTAPPSVR or pick a new name. Click the Next button.
You're now prompted with the First Point in Range field. IAS needs 10 ports and asks you to choose which port in a range you want to use. Keep the default value. Click the Next button.
The last screen confirms the selections from the previous steps. Change the IP address field to 192.168.3.13 (the new interface) and the port field to 80 (see Figure 4).
Figure 4: Change the IP address.
Pick the default user ID that this server will run under. The default is QLWISVR. You can leave it as is. Click Next.
The next screen explains that a sample application called Eclipse Help will be installed to show that the server is actually up and running once the installation completes. Click Next.
The server will be created in the background. Once you get the confirmation page, you can go to http://helppage.mydomain.com/help and see it in action.
This is very simple. But is it useful for deploying real applications? Absolutely.
IAS is based on the Open Services Gateway initiative (OSGi) framework and requires a Web Application Bundle (.WAB) that provides classes to a Web application. You can upload your own .WAB or construct a Rational-exported .WAR file into a .WAB file using a utility that IAS provides.
Deploying an application can be as easy as clicking Install New Application, browsing for a .WAR file (which will be converted to an IAS-friendly .WAB), and following a small upload wizard. Once the .WAR file is converted, the application is deployed and started for you automatically.
There's also support for adding database connections for JDBC access. How hard is it to integrate it? It's not. Like deploying an application, it's as simple as clicking the Create Database Connection link and supplying a couple of parameters to a local or remote DB2 database or a local Derby database. That's awesome!
You can manage your IAS instances via the IBM Web Administration for i, and if you're on IBM i 7.1, you can manage it via IBM Systems Director Navigator for i via Server Jobs underneath the Work Management link. Managing IBM i via the Web is easy!
I remember creating very basic Web applications using WebSphere Application Server 10 years ago, and it was definitely not this pretty, fast, simple, or effective. Please check out the product page for more information and some example .WAR files to get you going.
More to Come
Stay tuned for a two-part TechTip from me for more on IBM Systems Director Navigator for i and also IBM i Access for Web. I'll be showing you how to set up and customize IBM i Access for Web and also how to integrate both products into Lotus Notes as widgets. With this combination of tools, I'll never touch a green-screen again.
It's a brave new World Wide Web.