Abhishek Malay Chatterjee

Subscribe to Abhishek Malay Chatterjee: eMailAlertsEmail Alerts
Get Abhishek Malay Chatterjee: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: SOA & WOA Magazine, BlackBerry Breaking News

SOA & WOA: Article

Adding Reliability to Occasionally Connected Computing in Mobile Devices

Leveraging Web Services Reliable Messaging for persistence

The user interface lets the user enter inputs into the system. The mobile client application will handle the events generated by the user's interaction. It will also make sure that the application works normally even if the device isn't connected (offline mode). This can require keeping the application state information and caching some content in the mobile device storage (depending on the scenario).

The application will call the Web Service residing in a remote server using the SOAP serializer and WSRM in Figure 3. The SOAP serializer will create a SOAP request message as required by the service and send the message to the WSRM component for reliable communication. The response is passed from the WSRM to the SOAP deserializer to convert the SOAP response to the application-specific format.

WSRM ensures that the reliability level (exactly once, at least once, etc.) of the communication during the Web Service invocation is attained. Depending on the requirements of the application the reliability level for the Web Service invocation can be set. In the case of a reliability level being set at 'at most once,' the application can switch over to offline mode if a response isn't available. It's also possible that the application may not have to have an offline execution mode. In that case the user is kept oblivious of the connection status of the device and the WSRM component will ensure that the Web service is called whenever the connection is available.

Figure 4 shows the flow of the request process for placing an order.

The first flowchart depicts the flow of placing an order with the server. Here two Web Services are used. The first one is the QueryInventory Web Service for checking the status of the inventory. This Web Service uses a "at most once" delivery assurance profile. So if the WSRM component tries to send it once and it fails, it informs the application. Depending on the whether the response has arrived from this Web Service, the application decides whether to use the inventory value or the quota. The second Web Service is for placing the order, i.e., the SubmitOrder Web Service. This Web Service uses the 'exactly once' delivery assurance profile. Once the application has created the request, the WSRM component tries to send it; if it fails, it tries twice more and then tries again after some specified period of time.

Implementation Details
In our current implementation we're using Microsoft's .NET Framework 2.0 running on IIS 5.1 to implement Web Services. To work with WSRM messages we're using Web Service Enhancements (WSE) 3.0. On the client side we're using a Symbian smartphone running J2ME and PocketPC running .NET Compact Framework. To persist the data on the client side, we're using files.

The WSRM component of the client application installed on these mobile devices creates the WSRM-compliant messages and stores them in files. The application resends messages in case of failure. The WSRM component takes care of the 'once and only once' and 'at most once' delivery assurance depending on the configuration file associated with each Web Service.

Conclusions and Future Work
We've shown that despite the inherent occasionally connected nature of mobile devices architectures can be devised to enable enterprise-level mobile applications. Two key contributing technologies to do so include at the core a Web Services-based framework that is predicated on the universal support of Web Services in most mobile platforms. Further, for reliability, we proposed a framework based on WSRM to handle the occasionally connected problem in mobile Web Services. We've used WSRM, which is not yet an Oasis standard. Alternatively, WS-Reliability can be used, which is an Oasis standard. We decided to go with WSRM because it's consistent with other WS-* standards.

Our framework stores data in files, which is not optimal in enterprise applications. Future work can include more optimal ways of storing data on the client side.

References

More Stories By Dr. Srinivas Padmanabhuni

Dr. Srinivas Padmanabhuni is a principal researcher with the Web Services Centre of Excellence in SETLabs, Infosys Technologies, and specializes in Web Services, service-oriented architecture, and grid technologies alongside pursuing interests in Semantic Web, intelligent agents, and enterprise architecture. He has authored several papers in international conferences. Dr. Padmanabhuni holds a PhD degree in computing science from University of Alberta, Edmonton, Canada.

More Stories By Abhishek Malay Chatterjee

Abhishek Malay Chatterjee is working as part of the Web Services COE (Center of Excellence) for Infosys Technologies Ltd., a global IT consulting firm, and has substantial experience in publishing papers, presenting papers at conferences, and defining standards for SOA and Web services.

More Stories By Terance Dias

The authors are interning and/or working as part of the Web Services COE (Center of Excellence) for Infosys Technologies, a global IT consulting firm, and have substantial experience in publishing papers, presenting papers at conferences, and defining standards for SOA and Web services. The Web Services COE specializes in SOA, Web services, and other related technologies.

More Stories By Geo Philips Kuravakal

Geo Philips Kuravakal currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. He is currently involved in the development of an enterprise Web service integration framework. His primary area of interest is the Semantic Web and its applicability to Web services, along with newer programming techniques such as AJAX.

More Stories By Varun Poddar

Varun Poddar is a member of the Web Services/SOA Centre of Excellence in SETLabs, the R & D unit of Infosys Technologies Limited, India. He is currently working on XML technologies using Java. His interests are Theoretical Computer Science, Semantic Web, Mobile Applications, AJAX and SOA.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
SYS-CON Australia News Desk 04/17/06 04:29:28 PM EDT

Mobile devices use wireless networks that have limited range. Therefore, they may not always be connected to a network. This kind of intermittent connectivity in mobile devices has been one of the factors inhibiting enterprise-level adoption of pervasive mobile applications. Occasionally Connected Computing (OCC) deals with this problem. The challenge that mobile application developers face today is to develop applications that will let users interact uniformly with the application regardless of the connection status.