Dynamics of Application Environments

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.

Post a Comment

44 Comments

  1. Do we have some latest information about 5 g?

    ReplyDelete
  2. Very informative 👏

    ReplyDelete
  3. Well explained, very useful information

    ReplyDelete
  4. Informative article very well explained

    ReplyDelete
  5. Absolutely perfect material for learners

    ReplyDelete
  6. Exclusive information about technology

    ReplyDelete
  7. Very informative

    ReplyDelete
  8. Realistic approach

    ReplyDelete