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.
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.
35 Comments
👍👍
ReplyDeleteAppreciated
ReplyDeleteVery nice
ReplyDeleteReally
DeleteVery interesting
ReplyDeleteVery informative
ReplyDeleteVery practical approach
ReplyDeleteVery detailed information in simplified manner
ReplyDeletePervasive application development is explained very well
ReplyDeleteHighly recommend to learners
ReplyDeleteDefinitely perfect
ReplyDeletewritten in easy to understandable language
ReplyDeleteSo well
ReplyDeletesuperb information, perfectly described
ReplyDeleteNice article.
ReplyDeleteVery nice
ReplyDeleteVery informative
ReplyDeleteexcellent work done
ReplyDeleteVery informative
ReplyDeleteMuch descriptive and well explained. 🙂
ReplyDeleteVery informative
ReplyDeleteOne of my favourite topic
ReplyDeleteBest explained
ReplyDeleteHighly recommended
ReplyDeleteKamal ha
ReplyDeletethe information is perfect
ReplyDeleteFabulous
ReplyDeleteGood one
ReplyDeleteEver best
ReplyDeleteAgreed
ReplyDeleteSuperb
ReplyDeleteGood information
ReplyDeleteSuperb data
ReplyDeleteIncredible tutorial
ReplyDeleteIncredible information shown
ReplyDelete