The major use for disconnected mobile applications currently is for email or contact management. Most companies want to move beyond and bring some of their business functionality from the enterprise to the mobile phone. Communication issues are a major consideration in such applications. Mobile devices have intermittent and unreliable connections especially web related. The applications need to work with data that is modified offline.
The most common approach followed in such cases is a disconnected client-server application, also called autonomous applications. The clients are usually developed in HTML and/or Javascript so that they become Mobile OS agnostic and can operate on any mobile device that has browser support and XHTML support. These applications contain a subset of the application’s data and the business rules.
Service Oriented Architecture (SOA) aims to solve the problem of distributed application development. A service can be described as an application that exposes an interface, a messaging protocol, defines its data types and manages atomic or complex transactions (service requests). Typically, Services following SOA are constructed in four tiers – Interface Layer or the Application layer, Business Process Façade or Layer, Business Rules Layer and the Data Access Layer (this could also comprise of legacy systems and integration layer). SOA applications also make use of “Agents”. Agents are smart proxies that serve as intermediaries between the services and the applications. These Agents can be smart proxies or full-fledged applications themselves. 
How does SOA relate to building of mobile applications? The characteristics of disconnected mobile applications map very closely to services and agents. The autonomous mobile applications have the proxies or the facades of the business data and business rules, just like the Agents of any SOA application. Most business applications or enterprise level applications provide a service like interface that maps to the Service layer. These interfaces are usually a Queuing system, web service interface or a file share. Different openings can be used to achieve different types of functionality.
The following is a sequence of steps that could be followed to build a mobile application using SOA:
• Identify the application that needs to be made available on mobile devices.
• Develop or Identify a Service interface that is compatible with the communication protocols of the mobile device.
• Build or ensure that the service interface can serve the application in a disconnected mode.
• Identify functions that work in a disconnected mode and prepare these as one-way calls or asynchronous calls. Similarly identify functions that need to work in a connected mode and prepare these as request-response type calls.
• For all the functions that are needed, build an agent by first identifying the subset of business rules, business data and reference data that is needed by the agent and then build a “wrapper” type interface into the agent that hides the service interface.
• Build some user interface into the agent as needed to run the business layer of the SOA.

How does SOA relate to building of mobile applications? The characteristics of disconnected mobile applications map very closely to services and agents. The autonomous mobile applications have the proxies or the facades of the business data and business rules, just like the Agents of any SOA application. Most business applications or enterprise level applications provide a service like interface that maps to the Service layer. These interfaces are usually a Queuing system, web service interface or a file share. Different openings can be used to achieve different types of functionality.
The following is a sequence of steps that could be followed to build a mobile application using SOA:
• Identify the application that needs to be made available on mobile devices.
• Develop or Identify a Service interface that is compatible with the communication protocols of the mobile device.
• Build or ensure that the service interface can serve the application in a disconnected mode.
• Identify functions that work in a disconnected mode and prepare these as one-way calls or asynchronous calls. Similarly identify functions that need to work in a connected mode and prepare these as request-response type calls.
• For all the functions that are needed, build an agent by first identifying the subset of business rules, business data and reference data that is needed by the agent and then build a “wrapper” type interface into the agent that hides the service interface.
• Build some user interface into the agent as needed to run the business layer of the SOA.

Some of the more common Mobile SOA models followed are: Native Client (this is more Mobile OS or device category specific), Mobile Java client (the agents are built on java which can work with most Mobile OS and provide richer functionality), Mobile Thin Client (provides for easy deployment, is not easily compatible with existing native applications) and P2P (peer-to-peer needs to have a strong integration with the provider network and nodes, usability is currently under review)
1 comments:
Fantastic info!
Some more on Mobile App Development and xtended mobility per say could be gained at the following resource:
http://impetus.com/webinar
Post a Comment