Multidevice Application Development

Pervasive Application Development 

           The process of pervasive application development is very sensitive task. Latest software development paradigms will required to be incorporated, latest tools for multi device applications is also a big question, human computer interaction keeping in view the usability engineering and user experience is also a constraint, context awareness and location sensing, the concept of mobility in terms of application mobility and user mobility are also required for pervasive application development.
          
         The pervasive application development is inherently different from traditional software development. The tools and techniques are also very different in terms of features, flexibility and workability.
            Two major elements are required to be considered, while thinking of pervasive application development and these two aspects are mobility and context awareness.
Mobility effects our applications in 3 different ways, Mobility in terms of multi device, Application Mobility and User Mobility.

Multi Device Applications
            The pervasive application is required to be designed in such a way that it can be installed on variety of devices. They are capable of get themselves installed on a wide variety of devices, including the devices which are embedded in various environments and devices which are used by the users while they are on the go. The application is required to be compatible with heterogeneity of mobile platform.

Connection Management
            Connection Management feature comes into scene when the user is moving or in terms of user mobility. The location of the user is going to be changed. There will be no advance information about the change in the location of the user and connection will definitely be changed accordingly.
            
            The smartness of various locations varies in terms of connection, some spaces have very good connectivity and others have limited or degraded connectivity. In some spaces there might be dead connectivity. In these scenarios how disconnected operations will be performed. As devices are to be transported to high bandwidth network connections as well as high bandwidth is not available. The applications must work (degraded mode) with low bandwidth network connections or even without connectivity.

Location Sensing
            The pervasive application must be capable of getting awareness of user location. As the location of the user can be changed without any prior notice. The application should be designed that it should know the user location will be changed at any time. The pervasive application should have the active enabled feature of context awareness. This type of application would be capable of making decisions, according to the changes in the location of the user.
            
            For example the user can be connected to a very high speed connection (50 mbps) and later on as the location is changing, the user can be moved to a place where connectivity is very poor (114-140 kbps). The operations which are carried out at the same moment when the location is changed, they are to be managed in a graceful manner by the application.

Context Awareness
             The context aware application is required to be capable of managing sensitive information, they should be sensitive to the environment in which the user is moving or the application is being used.
           
            Context aware applications are those applications that can modify their behavior according to the environment in which they are being used. The environment of the application can be categorized on 2 major bases, the first one includes temperature, location, and people around you and 2nd one is the objective of using this information. These two define the context awareness.
           
            For which purpose the information about the environment is being collected, to be used by the application itself or the same information is to be shared by other application which will perform some actions. The application which is designed for context awareness to use this environment information to modify its behavior according to the location or the user.
            
            How would be a programmer able to accessing the location or context information? From GPS, from the server of the telecom operator, cell phone tower. How I would be able to use that information in your application and other applications.
            
            GPS location is collected but it is to be passed to some map applications to plot the information about longitude and latitude so that map application would be able to locate yourself. Simply collecting information about long and latitude is of no use. The benefit of information is that how actually it is useful. Just to get the longitude and latitude or to get the physical location.
            
           This information actually requires encryption and decryption algorithms to actually identify your location. Which takes some extra CPU cycles, additional memory and of course a good connectivity so the process would be completed.
          
         The map application would be able to correspond the longitude and  latitude information to the physical location.
          
          The location of the city and the location of the user. This is the use of information between the applications.
        
        Air pressure of the tire is low. Sensors and actuator raising an alarm, indication some light. So sensing and actuating are passing information to each other. Between intra application.

Traditional Software engineering vs Engineering Principles for Pervasive Application
            The development of software for pervasive applications must always keep in mind 2 different features, mobility and context awareness.
  •     Why software development is different and difficult as compared to traditional.
  •       Mobility of 2 types. User mobility and device mobility and application mobility.
  •     A multi device application is one that is able to execute on devices with different capabilities.
  •    They can move from one device to another device with different resources. Meeting example        from desktop computer to mobile and others.
  •     A multi modal application is one that supports multiple user interface modalities such as GUI,      voice, and combination of the two.
  •     It allows the user to input using touch screen, voice and gesture, and both methods can be used      simultaneously.
Network application
Connectivity element is required in almost every pervasive application; connectivity will be required between the client device and the server.

Device Platform
      Communication aware application is the most important feature required is device platform.
      Distributed computing defines that there are two or more communicating elements.
      A device platform is the distributed software platform to which a pervasive application is targeted.

Disconnected operations
       The disconnected operations are those they continue processing even if they are provided with limited    or degraded connectivity.
     
      We have to consider thin client and thick client from the desktop environment.
        
     A thin client application is a networked application in which the user interface rendering component is executing on the user’s device, whereas the rest of the application is executing on a networked     computer.
      
      They only have user interface on the client computer. It provides user interaction UI on client device.
    
     In desktop we use a term dumb terminal. While booting they contact the server and for running any     application they contact the server and get the application work on.
        
          Minimal hardware is available with thin clients. No software application will be required to install.

   The dumb terminal is a thin client it don’t have the capabilities to show the output without the intervention of the server computer. Dumb terminal is a hardware concept is desktop environment.

      But a thin client is a software concept which represent that this application will be running minimal on that device. 
    
         Thick client is a concept that the most of the work is being done of the client device, but it doesn’t mean that the server computer will not be get involved. The server will be considered as external entity, but if we try to remove the server it means that we are removing the element of communication.

Post a Comment

10 Comments