Heterogeneity of Device Platforms - Dynamics of Application
Environment
Context Awareness
Dynamisms of context awareness are defined as there are so many devices available and there are numerous ways to retrieve the information about the environment.
For example there are number of ways to get information about the location information where the user is using the device.
Also from the context and environment, it can be verified up to some extent that who is using that mobile.
If the GPS location is Office of the user and login information can be used for this purpose and also if the GPS location is Office and some word and excel or email application is being used so the user would be the owner of the phone. Similarly if the GPS location is Home and some game applications are running so the user might be the child or kid of the Owner.
Dynamics of Application Environments
We are well aware of the fact that the context data may be obtained from different sources, each source would have its own data format and representation of information. If we are looking for Location information using GPS so that information can be retrieved from the Satellite, Wi-Fi routers and might be possible that the Wi-Fi router has GPS coordinates and smart tags as well.
Heterogeneity of the Context Awareness and Environment information
Some applications would provide you the information in text format; few applications can provide information in binary format or numbers only. Others can provide information in Yes No only. So there is no unified format of retrieving information from various applications and platforms.
There is variety of information exchange methods, and think about that your application should know all about that. The application which we have to design must be capable of understanding the format of the incoming data and there is heterogeneity in contextual data.
The number of steps for the encryption and decryption of data is required by the application but when to apply how many steps. All this creating complexities for writing a pervasive application. How we can deal with these differences, the heterogeneity in context data and how we can bridge.
The solution and the idea of removing that complexity are to writing platform independent application. Instead of targeting one specific device and one specific operating system, why don’t we build software in such a way that it is not specific to a device or operating system but it should be capable of running in cross platform environment? The application should be written as platform independent.
Think about the concept of Object Oriented programming. We write a parent class and add all the capabilities to that parent class and while writing an application for client device the developer might inherit that features in its application from the parent class.
In some cases all the features are required to be used or sometime only few features are required. One important thing that must be kept in mind is that at server side there might be different type of programming tool is used, different methods for sending and receiving information from the client device is used, different database and database access methods are used.
Approaches for Developing Pervasive Applications
As we have discussed that there are lots of differences in getting information from the environment in which is mobile device is being used, that data is heterogeneous in nature, there can be multiple sources of information. For example if we want to get location information so GPS coordinates are required to get that location information. Is there any single way and single source to get that information or to process that information? Definitely the answer is no.
There is variety of ways to find that information. Sometime we are retrieving that information from the Wi-Fi router embedded with GPS device, sometimes that data is retrieved from the Satellite directly using some connectivity, sometimes there can be other sources, so how we can get that data available to the application which is required to use that data. How we can write an application which can understand the differences in the data formats and would be able to generate the response and result properly.
Very difficult for a programmer and a software company to build separate versions for each device.
The possible solution is to write platform independent component.
Instead of writing a specific
application for a specific device or platform, the platform independent
application would be a type of application that is written without targeting the
host machine and platform.
How
we can understand that concept or how we can do that, the answer is we can
understand it in terms of object oriented programming, as we write a generic
class and add all the functionalities and capabilities regardless of thinking
about whether they would be used or not.
We
derive these classes and write a code for using these functionalities into our
application using child class.
Model View Controller MVC
Model
View Controller is such an Object Oriented Software Development Architecture.
By using the advanced features of MVC an application developer creates one
object of Model, one object of view and one object of controller as well.
And we can write them
independent of each other, there would be no functional and architectural
dependency between these. This is such a feature which can only be attained
using MVC that classes and objects of Model View and Controller will be created
autonomous.
The
features and functions written for one component like Model will be used only
for that component and there will be some functions and classes for interacting
with other functions and classes. We can understand that for pervasive platform
how we can write an application using MVC.
Platform – Independent View Component
Presentation Transcoding
Writing
view is not simple for an application which is pervasive in nature. View is
something that has to be plotted on the device. That view would be
capable of using some features and components of the devices.
Think about writing a piece of code once and it can be executable
on multiple devices. This idea is not easy to understand.
One solution to that
problem is using Presentation Transcoding. The idea of application
transcoding is to write a piece of code for view component and push that code
on to the server as parent view class. The contents are sent to the client
device accessing the server and while sending data to the client device, the
transcoding proxies will sense that which type of device is requesting for
information. Which type of networking capabilities and connectivity is being
used by the client device?
For example you are going to access very heavy graphics and animated content; depending on the connectivity it would ask you whether you would like to load the flash page or you have limited connectivity so would you like to see the plan html content or old version and so on. Because rendering heavy graphics will take you longer time.
This is the concept of transcoding, that on the sever all the contents are placed and on which device using which type of connectivity and transcoding proxies modifies the contents according to the client device.
This makes the application independent view portion regardless of the contents stored on the server, only the required part of the contents will be sent back to the client device keeping in mind the device itself, the client device may be a laptop or a mobile device with smaller screen size so there would be different version for each device in terms of view only.
Secondly the connection if the client device has high bandwidth then a different version of the application and the contents of the webpage will be displayed as compared to the device with low bandwidth.
Platform – Independent Controller Component
As we know that controller moves the application’s data from one application to another or one device to another. How an application will transit from one place to another and make transition from one state to another.
This
is usually state transition diagram and control flow diagrams that if user
pushes that button then that action will be take place. If user pushes that
button this feature of the application will be invoked.
Why writing a platform independent controller is necessary
It
is assumed that the controller component is by default platform independent
because all it is defining that which route will be taken by the application
but there are number of ways to taking a specific route.
Which route would be the most suitable and most reliable.
For
example we are opening a large file which has heavy textual content; the
transcoding proxy will divide that large file into pages and displayed on the
screen.
While
displaying the content on the screen there would also differences in different
devices. On desktop or laptop there might be 24 pages and navigation buttons
will be appeared on the document to move forward and backward. But on mobile
device having smaller screen size there might be 48 pages to display data
properly on the screen and when user will click the forward and backward button
then it will display the different content and accordingly the transitions are
different.
Another example is using
the link of inbox in email system. How the inbox will be further divided into
number of pages, how many emails will be displayed on each page.
The Controller components will also be written in the same manner which is used for writing the View component. While the user is getting data by using the mobile device then the controller component will be intervened and manage the control flow of the application’s data. If the user is using desktop or laptop then the normal view of the data will be displayed. There would be no intervention of Controller.
44 Comments
💯
ReplyDeleteAppreciated
ReplyDeleteInformative
ReplyDeleteYes
DeleteVery nice
ReplyDeleteDo we have some latest information about 5 g?
ReplyDeletePerfect
ReplyDeleteVery informative 👏
ReplyDeleteGreat
ReplyDeleteExpert level
ReplyDeleteWell explained, very useful information
ReplyDeleteInformative article very well explained
ReplyDeleteAbsolutely outstanding
ReplyDeletePerfect data
ReplyDeleteWell explained
ReplyDeletebht acha technical material
ReplyDeleteAbsolutely perfect material for learners
ReplyDeletegood work done
ReplyDeleteoutclass very informative
ReplyDeletefull of knowledge
ReplyDeleteExclusive information about technology
ReplyDeletewonderful information
ReplyDeleteVery informative
ReplyDeletevery detailed information
ReplyDeletevery good
ReplyDeletefrom facebook to twitter
ReplyDeleteBest blog for readers
ReplyDeleteTechnical information
ReplyDeleteFantastic
ReplyDeleteBest knowledge
ReplyDeleteAwesome 👌
ReplyDeleteRealistic approach
ReplyDeleteSuperb work
ReplyDeletevery technical information
ReplyDeleteGood 👍
ReplyDeleteGood approach
ReplyDeleteBest article
ReplyDeleteGreat
ReplyDeleteSuperb article 👏
ReplyDeleteVery good information
ReplyDeleteImpressive work
ReplyDeleteCreative Designing
ReplyDeleteRemarkable data
ReplyDeleteSuperb work
ReplyDelete