The wireless Internet is here. In fact, you may already have the ability to use the wireless Internet today and not even know it. Many cellular phones and personal digital assistants (PDAs) already have the ability to connect to the Internet today, and major cell phone makers (including Nokia, Ericsson, Motorola and Palm) all have plans to add Internet access to their devices. Strategy Analytics has reported that 95 percent of all the handsets shipped in the United States and Western Europe will include Wireless Application Protocol (WAP) support in 2003, and, according to META Group, so-called pervasive devices (e.g., pagers, cell phones, and PDAs) will outnumber traditional PCs by 2003. More and more AS/400 customers conduct electronic commerce over the Internet. Your shop may not be doing it yet, but perhaps you’re wondering what’s involved in it. If you want to learn how to extend the reach of the AS/400 from electronic commerce to mobile commerce with practical examples, then read on.
The figures in this article demonstrate general access between your cell phone and your AS/400. I’ve also created some sample CGI programs that are written in ILE C as well as some written in RPG IV. Both samples are stored in an AS/400 save file. They can be downloaded from Midrange Computing’s Web site at www.midrangecomputing.com/mc. These objects and source demonstrate an actual data transaction between the AS/400 and the wireless device.
The samples shown in this article are real-time Web browsing applications based on WAP and the Handheld Device Transfer Protocol (HDTP). Wireless Markup Language (WML), defined in WAP, and handheld device markup language (HDML), defined in HDTP, will be covered, too. There are other standards, such as AvantGo (a “sync and go” application) and Palm Web Clipping technology (currently works only on Palm devices), but I won’t be covering those.
How It Works
The theory for the wireless Internet is quite simple: Think of the cell phone or PDA as a very small computer equipped with a Web browser. The wireless carrier could own the WAP gateway, which, in essence, is a bridge between the wireless network and the Internet. The AS/400 just serves the HTTP or Hypertext Transfer Protocol Secure (HTTPS) request. All you have to do is deliver the right content and follow the right
protocols. If you already serve HTML pages from your AS/400, chances are that you don’t need to buy extra software or hardware to deliver contents to pervasive devices.
Look at Figure 1. As you can see, there are three major components in the architecture: the mobile devices, the WAP gateway, and the HTTP Server. I’ll take a look at how to work with each component.
The Mobile Devices
The price for Web-enabled cell phones and PDAs has come down dramatically. You can buy a Web-enabled cellular phone for less than $100 now. These cell phones have a builtin HDML or WAP browser. For PDAs, you can buy a Palm VII with built-in wireless access or a Palm III or Palm V with a wireless modem. Palm does not have a built-in WAP browser. However, you can download a WAP browser for the Palm from AU-System (www.ausys.com) or The Wireless Edge (www.thewirelessedge.com).
There are many handheld simulators and phone simulators available for you to download. I found the simulator very useful for development, but you should make sure to test your applications on a real device before deploying them. There are some situations in which the application works on the simulator but not on the cell phone or PDA. You can download the phone simulator from Phone.com (www.phone.com). Note that you’ll need to download the entire UP.SDK development kit to get the phone simulator. The Phone.com phone simulator comes with a browser. For Palm devices, you have to download the Palm simulator from www.palm.com and then download the WAP browser for Palm. The examples provided in this article use the Palm simulator with the AU-System WAP browser and Phone.com’s phone simulator and browser.
The WAP Gateway
You can use the WAP gateway provided by Phone.com (for cell phone testing) or The Wireless Edge or AU-System (for Palm testing) for free. The major wireless carriers, including AT&T, Sprint, and Nextel, all have WAP gateways in production. You can also use these latter gateways to do testing as long as you subscribe to their services.
The HTTP Server
Serving an HDML or WML page is similar to serving HTML pages. You just need to load certain licensed programs on your AS/400 and configure your AS/400 HTTP Server properly. The licensed program you will need is the IBM HTTP Server for AS/400 (5769- DG1). If you want to secure your transaction, you will need two additional licensed programs: IBM Cryptographic Access Provider (5769-AC1, -AC2, or -AC3) and Digital Certificate Manager (5769-SS1 option 34). I’ll talk more about wireless security later on in this article.
Figure 2 shows a sample HTTP Server configuration you can use to try out the examples in this article. To use these examples, you’ll need to create a new HTTP Server configuration named WIRELESS, as well as a library named WIRELESS on your AS/400. In the HTTP configuration shown in Figure 2, statements 10 and 20 enable the HTTP GET and HTTP POST methods, respectively. Statement 30 passes the URL request for /wireless to the /home/wireless directory in the AS/400 Integrated File System (AS/400 IFS). Statement 40 executes the URL request for /cgi-bin with programs in the library
“WIRELESS.” Statements 50 through 80 define the proper content type for HDML, WML, BMP, and WBMP.
You may be wondering what the BMP and WBMP directive are used for. Some mobile devices can display images. The Phone.com browser, for example, supports the BMP format. Other WAP browsers for Palm devices support the WBMP format. Therefore, the BMP and WBMP formats are specified in the HTTP directive to allow for these devices.
You can also use the example code available for download from www.midrangecomputing.com/mc that contains a *SAVF of a library named WIRELESS with example code and data in it. If you choose this route, create a *SAVF named WIRELESS on your AS/400 and then, using a binary transfer, FTP the WIRELESS.SAVF you downloaded from the Web site to your AS/400. Now all you need to do is restore the library using the RSTLIB command and run the example code.
The Security Model
Now that you know the three main architecture components, I’ll cover the other features of the wireless Internet, the first being the security model. WAP 1.1 includes the Wireless Transport Layer Security (WTLS). WTLS does for the wireless Internet what Secure Sockets Layer (SSL) did for the Internet: It provides a standard means to secure the transaction. WTLS and the subscriber ID help the wireless carrier secure the transaction between the mobile devices and the WAP gateway.
To secure the transaction between the WAP gateway and the HTTP Server, you can use a virtual private network (VPN) or a private lease line. Or you can use firewalls, digital certificates, and HTTPS to secure the transaction over the Internet. Refer to the HTTP Server for AS/400 Webmaster’s Guide V4R4 for details. You must ensure that the digital certificate you purchased is trusted by the WAP gateway. Unlike Internet Explorer or Netscape Navigator, the WAP browser does not allow you to configure which certificate authority (CA) to trust. The WAP gateway acts like a proxy for the mobile devices and has a list of trusted certificate authorities. So be sure to buy a certificate from a well-trusted CA.
The Markup Language
HDML, a WML predecessor, was developed by Phone.com (formerly Unwired Planet) in 1996 and is currently the most widely used markup language in wireless Internet browsers in the United States and Canada. Several leading applications, including OracleMobile by Oracle, and Mobile Services for Domino by Lotus, and wireless carriers, including AT&T, Sprint, and Nextel, support HDML. In fact, both AT&T and Sprint recommend that application developers use HDML instead of WML to deploy their applications.
Just like HTML, HDML is a tagged markup language. Figure 3 shows the code for a very simple HDML page. To test this page, make sure you created the HTTP configuration named WIRELESS and have started it. Now save the code shown in Figure 3 as start.hdml, create your own logo (named logo.bmp), and FTP both to the /home/wireless directory on your AS/400. If you haven’t already created a directory named WIRELESS, you can easily do so by using the command CRTDIR DIR(‘/home/wireless’). Next, start the phone simulator you downloaded and open the URL http://YourAS400/wireless/start.hdml.
The biggest problem with HDML is that it’s not a standard. HDML is supported only by Phone.com’s micro-browser. The WAP Forum, founded by Phone.com, Nokia, Ericsson, and Motorola, published the WAP standard, which is the de facto standard that allows mobile devices (cell phones, PDAs, pagers, or auto PCs) to connect to the Internet using advanced telephony services. WML is the markup language used in WAP, and it’s quite similar to HDML. (One interesting factor about WML is that it is based on Extensible Markup Language [XML].)
Figure 4 shows the code to display a very simple WML page. To test this page, save it as startwml.wml, create your own logo (named logo.wbmp), and FTP it to the /home/wireless directory on your AS/400. Start the handheld simulator and open the URL http://YourAS400/wireless/startwml.wml.
Generating Dynamic Contents
To generate the dynamic contents, you can use a “translator” (e.g., Cocoon by The Apache Software Foundation) to translate the HTML page to HDML or WML page, or you can
generate the dynamic HDML/WML content directly from the AS/400. You can also use Common Gateway Interface (CGI), servlets, JavaServer Pages (JSPs), or other tools to generate the content.
Using Advanced Telephony Features
One of the great features in HDTP and WAP is that they can tightly integrate the voice call and data access. Both HDTP and WAP define an interface to interact with the voice call feature. This feature currently works only on cellular phones and not on PDAs. This feature allows you to embed the phone number in your HDML or WML pages. Users just push a button to initiate the phone call. Figure 5 (page 49) shows the HDML and WML examples for making a voice call.
While it seems easy to implement a voice call, there are pitfalls. This functionality depends on the carrier, the area, and the cell phone. Supplying the area code as part of the phone number might work in many areas but causes users to pay unnecessary long- distance charges in the home area. Some carriers (for example, AT&T) accept 10-digit- number calls (area code plus phone number) and will charge users appropriately based on the current location. I believe that, eventually, all carriers will have the same ability. For now, the best way to handle the voice call is to supply both the area code and the phone number without the leading 1. Usually the cell phone default setting handles the 10-digit- number with a list of choices (seven digits, 10 digits, or 11 digits) and allows the user to choose the proper number to call. If you supply the 11-digit number (1 plus area code plus phone number), the cell phone will usually just dial the number, which might cause a user to pay unnecessary long distance charges.
Push Technology
According to Pekka Salonoja, head of Nokia, the most relevant service for WAP is push technology. Both WAP and HDTP define a way for pushing information to mobile devices. WAP Push is different from the traditional paging system, which pushes both the alert title and the content to the device. With WAP Push, you actually push an alert title and a URL. When the alert arrives, the user will see only the title. The device will open and display the content from the embedded URL when the user tries to view the alert.
Phone.com provides a software development kit for WAP Push. Unfortunately the kit works only on the Windows or Sun Solaris platform, not the AS/400. You will have to either write your own WAP Push or run the development kit on Windows and establish a communication between the AS/400 and the Windows platform.
There are a few problems with WAP Push. First of all, although there are WAP browsers running on mobile devices and they might support WAP Push, users won’t actually receive the alert unless the palm device is on and the connection has been established. In other words, users have to check for the alerts manually, which sort of makes the concept of an alert pointless. Not all wireless carriers support the push technology. For example, Sprint PCS currently does not support Phone.com’s Push/Alert API. (Sprint is planning to support push sometime in 2000.) Even with carriers that support the push technology, you could still run into problems.
Usually, the Web-enabled phone has two modes: the voice mode and the data mode. But some cell phones or carriers did not tightly integrate the voice mode and the data mode, so users will not be able to receive alerts when they are on the voice mode, even though the phone is not in use. In other words, users have to switch the phone manually to “data mode” to check the alert. Unfortunately, the wireless carriers generally do not publish this “undocumented” feature. You really have to work with the carrier to find out the details.
A Bright Future
The wireless Internet has received considerable attention and promises a bright future. With the industry standard and the AS/400 support for the Internet, extending the reach of the AS/400 to the wireless Internet is much easier than many people might think.
REFERENCES AND RELATED MATERIALS
• AS/400 Handheld/Wireless Web page: www.as400. ibm.com/developer/ebiz/handheld/index.html
• AT&T Data Developer Program Web page: www.attws.com/business/gov/explore/wireless_ip/ developers/index.shtml
• AU-System Web site: www.ausys.com
• HTTP Server for AS/400 Webmaster’s Guide V4R4 (GC41-5434, CD-ROM QB3AEO04)
• Nextel Developer Web site: developer.nextel.com
• Phone.com Developer Program Web site: developer.phone.com
• Sprint PCS Wireless Web Developer’s Program Web site: www.developer.sprintpcs.com
• The Wireless Edge Web site: www.virtuacom.com
• WAP Forum Web site: www.wapforum.org
What Are Your Wireless Development Choices?
In the accompanying article, you’ve learned just how easy it is to push data to a wireless device. What you may not be clear on is just what wireless development software choices are available to you. If you don’t want to reinvent the wheel every time and do all the development work yourself, you’re probably going to need to use one of the existing wireless development tools. For more information on these and other vendor’s products, visit the Online YellowPages at www.midrangecomputing.com/yellowpages.
ResQ/ME, or Mobile Express, from ResQNet.com (www.resqnet.com) offers its users a powerful and fully customizable drag-and-drop interface that allows developers the ability to rapidly reengineer host screens from the AS/400 and present the host data on wireless devices such as PalmPilots and Pocket PCs. No reengineering of host apps is required either. Users will discover that their personal digital assistant (PDA) now has access to any piece of AS/400 information you decide to give them. And don’t worry about an information bottleneck because there are too many people online. ResQNet ME allows up to 1000 simultaneous data connections. Other features include state-of-the-art security, real-time connectivity, and complete coverage of all wireless devices.
Jacada Inc. (www.jacada.com) offers AS/400 developers a wireless development tool set called Jacada for Palm. Using Jacada for Palm, developers can quickly develop wireless applications that will run on your Palm VII device. Using a rules-based development environment, Jacada for Palm lets developers create thin-HTML extensions to your AS/400 data that can run on the Palm VII. You can then extend your user’s access using standard HTML. Jacada for Palm applications deliver a persistent, secure, high-performance connection for your AS/400 and mainframe data from the Jacada for Palm server running on your AS/400, Windows NT, or mainframe. Jacada is also fully integrated with all Jacada products such as Jacada for Visual Basic, Jacada for HTML, and Jacada for Java.
WaveLink Corp. (www.wavelink.com) offers a variety of tools that are designed to meet all of your wireless needs. WaveLink Studio is a powerful development tool consisting of Active X libraries that support OLE- compliant languages such as Visual Basic, Visual C++, and Visual Delphi. That means you can leverage your existing toolset to take advantage of the WaveLink Studio methods and objects to build wireless applications that can access your PC server-based data. For Telnet and 5250 host emulation methods, you’ll want to check out the WaveLink ACTIVEBridge host plug-in. Using ACTIVEBridge, your wireless users can access their host data, such as that on the AS/400, with no redevelopment effort from your IT staff. In fact, ACTIVEBridge remaps 5250 screens for display on wireless devices on the fly. Of course, you also have the option of performing the screen mapping on your own for tighter integration. WaveLink TelnetCE is the client-side software that lets your AS/400 data run on your Windows CE devices. This integrated suite of tools combines to give you a powerful wireless development and client environment.
Advanced Business Link’s (www.advancedbusinesslink.com) Strategi middleware software is an AS/400 native package that rapidly turns your legacy green-screen applications into Wireless Markup Language (WML)-based or handheld device markup language (HDML)-based forms that can then be displayed on a variety of PDAs, such as the Sprint PCS digital phone. Strategi has an installation time of under 15 minutes on your AS/400. Building on the strengths of traditional AS/400 programmer’s skills in RPG, CL, Java, C, and even COBOL, Strategi allows your current staff to extend your legacy applications to the Web. In just a few days, using their current programming knowledge, your developers can take a traditional green-screen application and format it to fit the smaller PDA screen. Strategi has positioned itself to lead the market in WML-enabled applications.
— Shannon O’Donnell
Figure 1: The wireless Internet architecture includes three components.
Figure 2: To serve an HDML or WML page, you need to load and configure the http Server for AS/400.
HealthBand
"http://www.wapforum.org/DTD/wml_1.1.xml">
HealthBand
Call Support
"http://www.wapforum.org/DTD/wml_1.1.xml">
Call Support
Figure 3: HDML, like HTML, is a tagged markup language.
Figure 4: WML is similar to HDML and is based on XML.
Figure 5: The voice call feature of HDTP and WAP allows you to embed a cell phone in your HDML or WML pages.
LATEST COMMENTS
MC Press Online