Vivek Agarwal’s Portal/Java Blog

An IBM Gold Consultant’s weblog about IBM, Lotus, WebSphere, J2EE, IT Processes, and other IT technologies

Disconnected application architecture musings – I

Posted by Vivek Agarwal on July 5, 2006


Recently I have been researching options for building offline (disconnected) business applications that can provide end-users with associated functionality at acceptable performance levels in poor internet connectivity situations and/or if no connectivity is available to the central application repository. This offline application would need to synchronize data back and forth with the master site. One article that discussed some of the issues involved in building such an application was Architecting Disconnected Mobile Applications Using a Service Oriented Architecture. However, I have been unable to find much else on the web that might provide related best practices or suggested architectural strategies.

To give you some context, the application that we need to enable for offline usage, is a fairly complex web-based business application that enables procurement and connects buyers with suppliers.

At this point, the approach we have cobbled together (shown above) utilizes the following key ideas –

  • We will build this application as a web-based application that mirrors the master site functionality.
  • This application will employ an embedded database such as HyperSonic or Apache Derby for relational data storage.
  • This application will have an embedded Java web application server such as Jetty to provide the JSP/servlet execution capability.
  • Key actions such as order submission in the offline application will take place (will be transmitted to the master site) synchronously in the initial phase for simplicity.
  • There will be a background task in the offline application that will communicate back to a thin services layer on the master site for synchronizing relevant data updates from the master site to the offline application. The offline application will provide a client certificate for authentication and identification purposes that will enable the master site to only send data changes since the last successful data sync.
  • Versioning will be applied to the offline application, the offline database schema, and the data packages (such as an order or customer) transmitted between the offline application and the master site.
  • Java Web Start will be utilized to ensure that all instances of the offline application remain up-to-date with the latest version.
  • Security considerations are critical and pose their own requirements.

In case you are wondering, database replication for data synchronization between the offline and master sites is not feasible in this situation because it is critical to go through the “Central Application Business Logic” for any data operations to ensure business rule enforcement.

I would appreciate any comments/insights/real world experiences that you can share on building such disconnected applications.

Advertisements

4 Responses to “Disconnected application architecture musings – I”

  1. Cagatay said

    An example describing a web application that can work “offline”;

    http://www.jroller.com/page/cenkcivici?entry=offline_web_apps_with_dojo

  2. If you have the money. Lotus Notes might be easier. It comes with disconnected support built right in.

  3. Jim Minihan said

    I am very interested in this subject. I have a project for a Government Ethics Commission for campaign finance reporting. I would like to be able to accumulate basic data in a form that I could do some simple manipulations with off line and then when it is time to do the mandatory filing the user can go online and send the data. I would like to discuss this with you. Could we talk by phone?

  4. Alexwebmaster said

    Hello webmaster
    I would like to share with you a link to your site
    write me here preonrelt@mail.ru

Sorry, the comment form is closed at this time.

 
%d bloggers like this: