Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

IBM WebSphere Developer Technical Journal: End-to-end Mobile Enterprise Information Systems Solutions with IBM WebSphere Products

Ray Tan (mailto:raytan@us.ibm.com), Senior Solution Architect, IBM Pervasive Computing
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 .

Summary:  This article describes the mobile Enterprise Information Systems solution using IBM WebSphere Everyplace Access, WebSphere Everyplace Wireless Gateway, and WebSphere Edge Server products. This article also describes SAP Field Service Portlet development and how to use the SAP alert notification function.

Date:  11 Sep 2002
Level:  Introductory

Activity:  2450 views
Comments:  

Introduction

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.


Mobile solution architecture

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.

WebSphere Everyplace Access

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.

WebSphere Edge Server

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>&nbsp;<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

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.


Connectivity and security

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: Screen capture of 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.


Scalability and performance

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.


Mobile functions

Notification

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

PIM and e-mail

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

Device management service

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

Future functions

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.


Conclusion

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.


About the author

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 .

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=14215
ArticleTitle=IBM WebSphere Developer Technical Journal: End-to-end Mobile Enterprise Information Systems Solutions with IBM WebSphere Products
publish-date=09112002
author1-email=mailto:raytan@us.ibm.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers