Pervasive Application Development

    
Pervasive Application Development – Heterogeneity of Mobile Platform

Pervasive application development is very difficult task as lots of features are essentially required, which are not possible keeping in view the traditional software engineering models. These features are given as follows:-

       Application Portability

       Multi device application

            Networked applications

            Human Mental Mode or Implementation Model

            Distributed Software Platform

            Thick client and  thick client

      Portability is the key concept while designing a pervasive application. As we have large number of platforms so difficult to develop and maintain all these applications separately.

While designing an application, we usually depend on some APIs. These APIs are provided by the operating system. We use these APIs to design buttons, forms, windows, connection and network connection settings. DBMS connectivity ODBS, File system management

Mobile platform also provide us the facility of using APIs, but they vary from one platform to another platform. There is difference between the APIs provided by the Desktop OS as compared with mobile platform.

Mobile platform require multimodal application so the user is required to be facilitated with multiple type of input, which is usually not considered while designing a desktop application.

You have touch, voice recognition, keyboard, trackball as compared to desktop just keyboard and mouse.

In desktop environments we can use the processor requirements according to the application requirements, we can add multiple type of hardware to our computer to get some additional work done like printers, scanners, biometric devices and so on.

In contrast while using mobile platform we are restricted to do the same activity.  This additional hardware will definitely use the most of the battery and will affect the CPU performance.

In desktop environment we are using LAN Card and Wi-Fi hardware components, but in mobile technology we don’t have any LAN card. We are only limited with Wi-Fi and also facilitated with GPRS for connectivity.

In the same sense we have some additional hardware components embedded into our mobile device like GPS, and GPS is required to fetch information for the user. But that feature is not available in desktop environment.

This is termed as heterogeneity of mobile platform.  Those mobile platforms are very much different.

Heterogeneity of Mobile Platform

The user interface is the presentation of mobile application. The application which is installed on the mobile device will be capable of interacting with the user in a very reliable manner.

Some of the devices are coming with variety of features like applications have their own keyboard setting and layout that would be adjustable and required to be fit according to the screen size.

While we tilt our mobile the screen and the layout of the application will also be affected and required to be affected.

Some devices allow you to use on screen keyboard with touch capability, other devices may have just numeric pad for numeric input.

Interaction Modalities

While using some platforms there is voice recognition systems are available, in others there is orientation detection. Mobile is upside down, weather it upper side is moved to left and right.

And accelerometer is the sensor/device that will actually getting the position of the mobile device.

An accelerometer is a tool that measures proper acceleration. Proper acceleration is the acceleration of a body in its own instantaneous rest (eventually repose frame); this is different from coordinate acceleration, which is acceleration in a fixed coordinate system.

Here is another very important aspect of SDK, Software development kit. While writing software we don’t write code for everything from scratch. Most of the work is done by the vendors of Software Tool kits and vendors of compilers.

They provide us APIs and we write code for using these APIs in order to perform various tasks. It is traditional feature that we actually develop our own application on top of the framework provided by the organizations that are actually developing programming tools.

SDKs and APIs are different for different platforms. This is mainly because every platform has different way of getting input from the user and to present the information back to the user ‘s screen.

The view component and presentation component is required to be rewritten  so it may be reused again and again  when go from one device to another or one platform to another and we require that the application should be portable.  View is required to be very much helpful in order to make the application portable.

User interaction is also very important aspect for designing an application for mobile platform. User interaction is defined by view and controller architecture of MVC.

How the application will control the execution. Controller is the component that decides how the program will switch form one state to another state.

For example we are heavily dependent on GPS when our location changes our program state will also change.  The application will modify its behavior in accordance with the new information provided in response to the location change.

There might be GPS is not able to get that information for the application. Then how the application is able to respond. In an open space the position will be very clearly defined by the GPS and when we are in closed environment it would be little complex.

Platform Capabilities

We have decided to have some of the components at server side and some of them at client side.

      What functionality will go to the server side and which are to be restricted for client side.

      In some case we go to the thin client and something will require to be executed as think client.

      This methodology is primarily concerned with application architecture, when and which part of the application will be executed as thin client and when which part will be executed as think client. That is application dependent. Device platform dependent.

     In some scenario we want something to be executed on the device but device is not capable to doing so. Sometime the device is very much capable but it would be very suitable to execute on server.

ü    Google map application is very heavy application. A mobile device is not capable of storing and     executing the entire app configuration on mobile device.

    The application installed on mobile device is required to get the coordinates and then plot that    information on the server application to get the physical location. The required information will be     displayed on the user screen.

 Connectivity

As we are aware of the fact that the smartness of the spaces varies from location to location. It is infrastructure dependent so it can be optimized as required. Connectivity primarily dependable on smartness of the space.  

Disconnected operations are of very much importance when connectivity is not the similar in all the spaces.

The pervasive application should be built in such a way that it must have the capability that in some situation there will be degraded connectivity or there might be dead connectivity. It should have this provision what will happen then.

For example in desktop environment we are looking for input from the user like abc and user inputs 123 so in that case what would an application do. This is called the robustness of the application. In mobile domain what happens when connectivity is unexpended and downgraded to the lowest and how the application will be perform and if there is no connectivity. This issue is called disconnected operations.

Sometimes the use of Database with mobile application and there is degraded or no connectivity issue while the user is making a transaction. This issue is not considered as disconnected operations, they are related with inconsistency.

The objective of disconnected operation is to design pervasive application in such a way that if there is no connectivity and limited connectivity so the components of the application will be continued working and later on they will be synched.

On server side the server is getting data and information which is to be transmitted to another client device but that device is not properly connected or not capable of receiving that information then the server will keep that information in its local cache and as soon as the client device is ready to get that information the information will be sent to the client. This feature is called application synching.

Different components of an application will be residing on different places. Modal is placed and working on a different location, view is working on at different place and controlled is definitely at different place as per the underlying application logic.

They all are required to be synched. How they are designed that at what scenario the modal will be sitting at server side and view will be rendering at client screen and controller will be generating some actions.

So the concept of caching is very much important for both server device and the client device. The application should be designed in a way that whenever the server is get connected with client device the application should be aware of that which information is required to be fetched from the server and what data is to be transmitted atone while get connected. The application must continue trying again and again until the information is not available.  But the user would be surprised.

Dynamics of Application Environments

Context awareness – Heterogeneity in data sources

Context wared application will get data from different locations and different type format of data.

     Wi-Fi and satellite are programmed differently to provide information.

     Wi-Fi has different algorithms as compared to satellite. Multiple steps are required for Wi-Fi.

        Satellite definitely have different information processing scenario.

 ü  The application will required to be designed that the format of the information will be different, sources will be different, and number of steps required will be varied.

    Source and the target encryption and decryption mechanism will be different.

        Opening word document in different versions for example latest version, company is same software is same but one older version is not going to open another file with latest version. The purpose is to just disseminate the information as per the format.

        Because the version information is changed and different versions of Office saves information differently.

So different sources of information in terms of context awareness are not providing the same information, they are not designed to provide information for a standard single format.

The use of the information, transmitted by satellite or weather forecast station is up to the application.

For example weather forecast station will send information about the city which is probed by the application. The weather forecast station will provide you the weather information of London, while you are sitting at Lahore. It will provide you the information for next week and may be 2 week later on. 

Whatever the information is required by the application, the weather station will provide that information and application would be able to use that information where it may fit.

Post a Comment

35 Comments

  1. Very detailed information in simplified manner

    ReplyDelete
  2. Pervasive application development is explained very well

    ReplyDelete
  3. written in easy to understandable language

    ReplyDelete
  4. superb information, perfectly described

    ReplyDelete
  5. Much descriptive and well explained. 🙂

    ReplyDelete
  6. Very informative

    ReplyDelete