Today, many enterprises are evaluating and selecting middleware vendors to provide mobile solutions for their existing Enterprise Information Systems (EIS) applications. IBM ® understands enterprise requirements, and has developed products to provide secure and scalable, end-to-end enterprise mobile solutions.
Enterprise mobile solutions start with applications that enable mobile employees to access the back-end EIS applications from wireless devices. Extending EIS applications to wireless devices should not add significant costs to the enterprises. Mobile applications should be easy to develop, with minimal new skills required. Mobile applications should also provide familiar application navigation and look-and-feel for employees, whether they are using the devices or desktop computers.
It is important to note the many functions specific to wireless devices. These include: alert notifications, mobile Personal Information Management (PIM) applications, mobile e-mail, device management, and location-based services that, when integrated with the applications, are vital functions for mobile employees. Last, but not the least, enterprise mobile solutions require a highly secure connection from wireless networks to the enterprises, along with highly scalable infrastructures for performance and future growth.
IBM WebSphere products address all of these requirements. This paper describes the mobile EIS solution using IBM WebSphere® EveryplaceTM Access, WebSphere Everyplace Wireless Gateway, and WebSphere Edge Server products. An SAP mobile solution for Pocket PC devices is described as an example throughout the article. This article also describes SAP Field Service Portlet development and how to use the SAP alert notification function, among others. The solution architecture is generally applicable to many EIS applications, including Siebel, PeopleSoft, Oracle, JD Edwards, and many others.
Figure 1 below depicts a generic mobile EIS solution architecture. This EIS solution architecture allows EIS applications to be accessible from mobile devices, providing important mobile functions, secure connection, and highly scalable infrastructure. In general, it supports any type of back-end server and multiple types of mobile devices, including PDA, WAP (Wireless Application Protocol) phone, and laptop computers.
Figure 1. Generic mobile EIS solution architecture

We will now look into each of the components in detail.
IBM WebSphere Everyplace Access delivers the technology needed to give mobile employees access to productivity data and enterprise applications from virtually anywhere, at any time. It is designed to allow enterprises to start small, and expand over time to a richer set of wireless application functions; lays the foundation of a scalable infrastructure that will meet the enterprise's future needs for mobile computing. Everyplace Access is built on the WebSphere Portal framework and WebSphere Application Server.
Because Everyplace Access takes advantage of existing WebSphere Application Server technology, it gives the enterprise a reliable infrastructure that will scale to meet future needs as the enterprise expands its wireless initiatives. As a J2EE application server, WebSphere Application Server supports the J2EE Connector Architecture (JCA). WebSphere JCA adapters for various EIS are available today; for details, refer to the WebSphere Adapters page. In future releases, additional and richer JCA adapters will be integrated into WebSphere Application Server, and can be leveraged by future releases of Everyplace Access to access EIS applications.
The IBM WebSphere Portal framework gives enterprises great flexibility for customization by using portlets and the portlet-programming model to deliver content to browser-enabled devices. The WebSphere Studio Workbench Integrated Development Environment streamlines the development process.
For more information about WebSphere Everyplace Access, please visit the IBM Pervasive computing software Web site.
WebSphere Everyplace Wireless Gateway
IBM WebSphere Everyplace Wireless Gateway for Multiplatforms enables the enterprises to extend their existing applications to mobile employees over many different wireless networks. It supports secure data access over a wide range of international wireless network technologies, as well as local area (LAN) and wide area (WAN) wireline networks. Everyplace Wireless Gateway can provide VPN tunnels from the devices directly into the enterprise network, and it supports many encryption algorithms.
Everyplace Wireless Gateway provides messaging gateway functions and supports multiple message delivery channels, including SMS (Short Message Service), WAP Push, and SMTP (Simple Mail Transfer Protocol). The Messaging Services & Push Toolkit enables the integration of messaging functions with any application. IBM has developed adapters that have seamlessly integrated the messaging functions to SAP and Siebel applications, allowing employees to initiate alert notification messages directly from the back-end SAP and Siebel applications to mobile devices.
Everyplace Wireless Gateway also supports dynamic roaming across physical networks without breaking the application's end-to-end TCP sessions. This gives mobile users uninterrupted connectivity to critical applications. For example, if a user is in the office using an 802.11b adapter to connect to the network to download applications, and then has to jump into a taxi to head to the airport, then the switch from the 802.11b network to the GPRS network is automatically detected, without interrupting the download.
For more information about WebSphere Everyplace Wireless Gateway, please visit the IBM Pervasive computing software Web site.
IBM WebSphere Edge Server for Multiplatforms brings application software to the edge of the network. It provides functions for application offload, content distribution, transactional quality of service, caching, and load balancing.
WebSphere Edge Server Load Balancer helps to improve application performance, scalability, and availability by transparently clustering edge, Web, and application servers. It also provides site selection, workload management, session affinity, and transparent fail-over. Custom advisors enable load balancing based on unique application and platform criteria.
For more information about WebSphere Edge Server, please visit the IBM WebSphere Edge Server product Web site.
SAP mobile application development
WebSphere Application Server implements the connection, transaction, and security services for the J2EE Connector Architecture, with WebSphere Adapters providing access to EIS applications. Portlets provide the user interfaces for the mobile applications to process, view, and update EIS application data, and can be easily developed and deployed.
Figure 2 below depicts the JCA, and how IBM products fit and address each of the JCA functional areas:
Figure 2. IBM products implementing the J2EE Connector Architecture

WebSphere JCA Adapter for mySAP.com
IBM WebSphere Adapter for mySAP.com can be used by portlets to access SAP systems. The Adapter needs to be installed onto WebSphere Application Server as a resource adapter. A Connection Factory needs to be created with a JNDI binding path assigned. The JNDI binding path will be used by the portlets to select the correct connection path to SAP systems. Also, connection parameters need to be specified to the connection factory, in order to provide information regarding the back-end SAP system. See Figures 3 and 4 below.
Figure 3. Configuring WebSphere Adapter for mySAP.com JNDI binding path

Figure 4. Configuring WebSphere Adapter for mySAP.com Connections

Using the SAP tag library to create portlets
Significant development work has been done on the WebSphere Portal framework to ease the efforts of developing SAP portlets. Several SAP portlets are available at the Portlet catalog site, and can be used or referenced by portlet developers as examples.
An SAP Portlet tag library is developed to implement the many common functions, such as SAP RFC transactions. With the tag library, only JSP skills are required to develop portlets in many cases. Knowledge of SAP functional modules is also desirable in designing and developing SAP portlets.
The following code snippet is from the SAP Portlet
tag library descriptor file, sapportlet.tld; it defines
a request tag and a parameter tag used by the SAP Portlet JSP to
invoke RFC requests to access SAP function modules.
Listing 1. Code snippet from SAP Portlet tag library descriptor file,
sapportlet.tld<taglib>
...
<tag>
<name>request</name>
<tagclass>com.ibm.wps.portlets.sap.taglib.RfcRequestTag</tagclass>
<teiclass>com.ibm.wps.portlets.sap.taglib.RfcRequestTEI</teiclass>
<bodycontent>JSP</bodycontent>
<info>Create an SAP Rfc Request</info>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>output</name>
<required>false</required>
</attribute>
<attribute>
<name>config</name>
<required>false</required>
</attribute>
</tag>
<tag>
<name>parameter</name>
<tagclass>com.ibm.wps.portlets.sap.taglib.RfcParameterTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>Create a request parameter</info>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
...
</taglib> |
The following JSP code snippet shows that in using
the request and parameter tags to invoke the SAP IWWO_SERVORDER_OPERATION_LIST
function module, the SAP Field Service Portlet accesses the list
of the service orders that have been assigned to the employee with
employee number, employeeno.
Listing 2. Using the request and parameter tags to invoke the SAP IWWO_SERVORDER_OPERATION_LIST function module
<% String employee = (String)session.getAttribute("employeeno");
if(request.getAttribute("sapcfg") == null)
return;
if(employeeno == null)
return; %>
<% if(session.getAttribute("orderlist") == null { %>
<sap:request name="IWWO_SERVORDER_OPERATION_LIST" id="orderlist"
config="sapcfg">
<sap:parameter name="EMPLOYEENO">
<sap:simple><%=employeeno%></sap:simple>
</sap:parameter>
</sap:request>
<%session.setAttribute("orderlist",
pageContext.getAttribute("orderlist")); } %>
...
<table width="500px" border="0" cellpadding="4" cellspacing="0">
<sap:result id="order list">
<sap:tableparam name="OPERATIONLIST">
<% cnt++; %>
<sap:simplefield name="ORDERID" id="orderid" visible="no" />
<% if(orderid !=null) {
hasResult = true; %>
<tr>
<sap:simplefield name="STREET" id="street" visible="no"/>
<sap:simplefield name="CITY" id="city" visible="no"/>
<sap:simplefield name="TEL 1_NUMBR" id="tel1_numbr" visible="no"/>
<% StringBuffer servorderDesc = new StringBuffer();
if(!orderid.trim().equals(""))
servorderDesc.append("order # " + orderid.trim() + " ");
if(!street.trim()Equals("") && !servorderDesc.equals("")) {
servorderDesc.append(", "); }
servorderDesc.append(street.trim());
if(!city.trim()Equals("") && !servorderDesc.equals("")) {
servorderDesc.append(", "); }
servorderDesc.append(city.trim());
if(!tel1_numbr.trim()Equals("") && !servorderDesc.equals("")) {
servorderDesc.append(", "); }
servorderDesc.append(tel1_numbr.trim()); %>
<td>
<a href="<portlet:createURI><portlet:URIAction name="enter_detail"/>
<portlet:URIParameter name="seqno" value='<%="" + cnt%>'/>
</portlet:createURI>"><util:HTMLEncode><sap:simplefield name="ORDERID" />
</util:HTMLEncode></a> <util:HTMLEncode>
<%=servorderDesc %>
</util:HTMLEncode>
</td>
</tr>
<% } %>
</table> |
Developers should be aware that Pocket Internet Explore does not support Cascading Style Sheet (CSS), and has only limited JavaScript support. Therefore, CSS and JavaScript should be avoided in the portlet JSPs. For details on how to develop device-specific portlet applications, please refer to the article, WebSphere Portal Programming: Pervasive Portlet Development by Michael Wanderski, published in the July 2002 issue of the WebSphere Developer Technical Journal.
Once completed, the Field Service Portlet can be deployed to WebSphere Everyplace Access. The flexible design of the WebSphere Portal framework allows a portlet to be deployed and activated without having to restart the application server. Figures 5 and 6 below show what the Field Service Portlet looks like on a Pocket Internet Explore browser. The list of assigned customer service orders is displayed with the order number, the customer addresses, and phone numbers.
Figure 5. SAP field service application

Figure 6. The service order list

When the hyperlink of order number 500233 is clicked, the service order details are displayed as follows:
Figure 7. SAP field service application

Figure 8. Details for service order #500233

Credential vault and SAP user mapping
To access the back-end SAP applications and obtain the correct data for the respective employee, the portlets need to provide information for user authentication. To access applications outside of the portal's realm, the WebSphere Portal framework provides a credential vault service that portlets can use to store user IDs and passwords (or other credentials) to log in to an application. Mobile users can edit the SAP Portlet, select a predefined credential vault, and specify the SAP user name and password (see Figure 9 below). The portlets will access to the back-end SAP system on behalf of that SAP user.
Figure 9. Mapping to SAP user in portlet

Offline access to SAP application data
WebSphere Everyplace Access supports offline browsing of application data. Mobile employees can bring the application content offline, and access important application data when the device is not connected. No additional programming is required. Mobile employees simply need to add the specific SAP Portlet to the offline Portlet page, and synchronize with the mobile device.
Figure 10 and Figure 11. Offline portlet synchronization and browsing


WebSphere Everyplace Client for Pocket PC provides offline portal browsing, and can be used to synchronize application portlets for offline viewing. Figures 10 and 11 show Everyplace Client completing the synchronization of offline portlets, and browsing the offline portlet page.
Figures 12 and 13 show what the Field Service Portlet looks like offline. Once again, mobile employees can access the list of service orders assigned, as well as the detailed description of each of the orders.
Figure 12. Offline browsing service order list

Figure 13. Details of order #500233

Offline form completion capability is planned for the next release of WebSphere Everyplace Access. It extends the offline browsing function by allowing mobile employees to not only browse static content offline, but also submit POST-action forms while disconnected. The forms are then posted to the appropriate portlet with the next synchronization.
With Everyplace Access, no additional device-specific development work is necessary to provide disconnected offline mobile applications. The integrated framework of Everyplace Access, from the device to the server, allows enterprises to move into the mobile space much faster, with minimal costs.
Ensuring secure connections between mobile devices and the enterprise network is very important. Today's technology is advanced enough that enterprises do not need to sacrifice security for mobile access. WebSphere Everyplace Wireless Gateway is ideal for addressing mobile connectivity and security issues.
Pocket PC users, for example, can have the IBM Wireless Client installed. Together with the Wireless Gateway Server, Wireless Client provides full connectivity and security supports. It provides strong authentication and supports RSA Secure ID. Enterprises can choose from an extensive cryptographic library that includes DES, Triple DES, RC5, and eventually AES, to provide end-to-end encryption of all data from the Wireless Gateway server, over the wireless networks, to the mobile device. Everyplace Wireless Gateway is undergoing the FIPS (Federal Information Processing Standards) 140 certification to meet the most stringent United States government security standards.
This is the Wireless Client icon on a Pocket PC
device:
Mobile employees can select the encryption algorithm that matches
the server configuration, and can log on to the Wireless Gateway
by supplying the user ID and password, as shown below in Figures
14 and 15.
Figure 14 and Figure 15. Wireless Gateway client configuration


Mobile employees can configure the Pocket PC to automatically log on to Wireless Gateway server with power on, or manually initiate the connection.
WebSphere Edge Server Load Balancer
WebSphere Edge Server Load Balancer distributes work loads across multiple application instances; it enhances performance, and supports fault tolerance. A unique custom advisor is provided to load-balance WebSphere Application Servers where Everyplace Access servers are running. With Edge Server Load Balancer, multiple servers appear to the network as though they are a single server. As workloads increase, the work is spread across the available servers in the cluster. If a server should fail, the workloads can be distributed to other servers while the failed server is taken offline for maintenance. The following diagram shows a configuration of using Edge Server to balance the traffic to multiple WebSphere Application Server servers. An early release of WebSphere Everyplace Access is tested on a single server configuration, and more scalable configurations will be supported in future releases.
Figure 16. Using Edge Server load balancing

Early releases of WebSphere Everyplace Access encourage enterprise customers to start small and quickly by supporting single server configuration and limited multiple servers configuration for certain components. It is expected that more scalable configurations will be supported in future releases to take full advantage of the WebSphere Edge Server and WebSphere Application Server framework.
Everyplace Wireless Gateway clustering
Everyplace Wireless Gateway supports the clustering of configuration for scalability and performance. A cluster manager performs dynamic load balancing and improves availability among several Wireless Gateway installations. The Wireless Gateway can be distributed across multiple sites to scale with enterprise mobile needs. In addition, the Wireless Gateway supports High Availability Cluster Multiprocessing (HACMP) to provide 24x7 reliability, and can support a million mobile users while achieving 99.999% up time.
Figure 17 is an example of a fault tolerant configuration of Wireless Gateway.
Figure 17. Wireless Gateway high-availability clustering

Wireless Gateway also reduces data transmission costs over wireless networks. It provides efficient data compression and connectivity management, and optimizes session transport for IP-based wireless networks, including 2.5G and 3G. It also enables optimized IP transport over non-IP wireless packet networks, and improves speed, reliability, and mobile user experience.
The IBM SAP Notification Adapter provides an integrated solution to deliver alert notification messages from SAP applications to pervasive devices. Using Everyplace Wireless Gateway as the messaging gateway, the Notification Adapter enables SAP applications, such as customer service order application, field maintenance record application, etc., to send notification messages to the mobile employees' pervasive devices. The following diagram shows an architecture view of the Notification Adapter:
Figure 18. SAP notification through IBM Adapter and Wireless Gateway

For example, a service representative can create a service order from SAPGUI that directly accesses the back-end SAP system. From the service order creation screen, the service representative can press the paging button to send a notification message to a field engineer's mobile device. The message is automatically generated by the SAP application, and the field engineer's mobile device number can be predefined and selected during this process.
Figure 19. Creating the service order

Figure 20. Initiating the alert notification

The mobile employee receives the message on his Pocket PC devices (see Figure 21), and can process the urgent service order promptly.
Figure 21. Receiving the service order notification

WebSphere Everyplace Access provides PIM and e-mail support. It is fully integrated with Domino Server and Microsoft Exchange Server. This function increases mobile employees' productivity. Mobile employees can synchronize e-mail, contacts, calendars, to-do lists, and memos using enterprise back-end Domino or Microsoft Exchange Server, as shown in Figure 22.
Figure 22. WebSphere Everyplace Client e-mail and PIM applications

Complete Device Management Service support is planned for the next release of WebSphere Everyplace Access. Device Management Service offers software distribution, software inventory, and device configuration capabilities. For example, the enterprise IT administrator can automatically push a software update to the mobile employees' Pocket PC devices. Mobile employees can be presented with options to install or reject the package, or be given only the option to install it. Figure 23 below shows a Pocket PC receiving a software update from Device Management server.
Figure 23. Receiving a software update on Pocket PC

Voice and multi-modal functions let mobile employees interact with mobile applications using multiple methods, including voice, keypad, or stylus. Future releases of WebSphere Everyplace Access and other IBM WebSphere pervasive products will provide these capabilities.
Location-based services can enable mobile applications to intelligently select the correct contents, based on the mobile employees' physical location. Future releases of Everyplace Access will enable the development of location-based applications.
IBM WebSphere pervasive products are designed to extend EIS applications to mobile spaces. They provide a development framework for easy development and deployment of mobile applications, while addressing both connected and disconnected modes of operation. They also provide connectivity to various types of wireless and wireline networks, improve security with VPN tunnel and data encryption, and improve performance through data compression and clustering. They offer alert notification capabilities to EIS applications, PIM and e-mail, and many other functions that are valuable to the mobile employee.
IBM WebSphere pervasive products, as the middleware, truly provide the end-to-end EIS mobile solution.
Ray Tan is a Senior Solution Architect with the IBM Pervasive Computing division in Austin, Texas. He has worked as Software Engineer, Architect, and Consultant with different IBM divisions, the including WebSphere Application Server development lab and IBM Global Services. Ray is an SAP-certified technical consultant. He has a Master's degree in Physics from the University of Southern Mississippi, and a Master's degree in Computer Science from the University of Houston. Ray is currently studying at the University of Texas in Austin's Executive MBA Option II program. You can contact Ray Tan at raytan@us.ibm.com .




