|
Introduction - Mobile has become a powerful mass medium, with a greater reach and faster growth than any other known media type [1]. However, not only penetration rates are starting to outnumber PCs, mobile technology itself is also catching up fast. Today, even devices from the low-end segment start to have internet access capabilities and support for browsing, e-mails, etc. The growing diversity of devices with internet connectivity has resulted in a boosted need for applications being available at any time, anywhere and on any device.
Current technologies for the creation and delivery of mobile applications are however insufficiently prepared for this level of change. Without the appropriate platform or tool support, the adaptivity requirements remains the developer's responsibility to handle, which inevitably drives up costs and narrows the target market. This unbalance situation has led to the general believe that the development of platform-dependent mobile applications does not represent the future for the mobile industry.
The evolution towards the web as an application platform is gaining momentum. Standardized Web technologies try to overcome most of the restrictions plaguing native applications development and introduces browser technology as a universal client through which all interaction with the device is handled.
This blog entry summarizes the research from my master thesis, in which I tried to demonstrate the feasibility of the web as an application platform. An architecture and the necessary algorithms are proposed in support of adaptive Web-based application development. Architecture - The architecture aims at extending web application frameworks with a portable library for component-based development. Components can be requested, whilst it is the library's responsibility to provide the necessary degree of adaptivity and autonomously select the optimal rendering. The decomposition shown in Slide 29 of the presentation below is at the heart of the proposed system. Given the client-device's capabilities, an optimal candidate is selected by pushing all available components through a filtering pipeline. This process is elaborated in the following section. Algorithm - The suggested component selection algorithm will evaluate the suitability of the available components and autonomously select the most appropriate candidate. It encompasses the following four consecutive steps. Step 1: Resource fetching A preliminary step collects all available components and their metadata. The metadata specifies the component type, priority settings and the device capabilities it requires for an optimal rendering. This will be the selection process's initial set of candidates. Step 2: Type filtering A coarse filtering is performed on the fetched candidates. Their defined types are matched to the requested component type. Only the matching candidates are passed to the following filter. This action aims at minimizing the next filter's execution time, as it is computationally the most complex part of the algorithm. Step 3: Suitability filtering The remaining candidates are evaluated and scored by matching their capability requirements to the requesting device. A naive tactic would be to apply simple Boolean logic, in which a component can only be accepted or rejected. This is an almost infeasible approach, as it would require the availability of perfectly matching components for each possible device configuration. Instead, the use of fuzzy logic is proposed to express a degree of similarity in terms of "maybe- ness". This enables the system to objectively evaluate all candidates and even take less-than-perfect matches into account if no better solution is available.
The suitability filtering relies on the Logic Scoring of Preference (LSP) method [2] with specific adaptations to fit the mobile context. LSP is a general quantitative decision method, initially designed for the evaluation, comparison and selection of complex hardware and software systems. Using predefined fuzzy distance functions, each of the candidate's required device capabilities are matched to the actual device characteristics. These functions express a percentage degree of similarity in which the device's capabilities match that certain requirement.
For each candidate, the individual degrees of similarity for the required device capabilities are combined into one objective overall score. This aggregated score is used to determine the best-matching candidate. The basic aggregator mechanisms in LSP are based on the superposition of fundamental Generalized Conjunction/Disjunctions (GCD) [3], enabling the specification of aggregations in terms of 17 graded combinations of conjunction and disjunction. The equation below shows the GCD's Weighted Power Mean (WPM) implementation [4], with variables Wi representing the relative weight for each individual score xi. The exponent r expresses the degrees of conjunction and disjunction. Step 4: Conflict resolution Conflict resolution is the algorithm's final step. The possibility exists that multiple candidates are evaluated with the same degree of overall similarity regarding the device’s characteristics. These conflicts are handled by upholding a priority-based selection policy. The component's priorities are predefined in their metadata and ensure that the final candidate selection will only contain one component. Data structure - Each component consists of a metadata descriptor and a container for its markup, styling and scripting resources. For portability considerations, XML is used to specify the component's descriptor. The metadata contains an overview of the name, type and device capability requirements. No specific naming conventions are imposed for the resources in the container, as the required associations are specified in the metadata descriptor. Proof of concept - In order to demonstrate the feasibility of this system, a proof of concept implementation was made for Joomla! [5]. This version mainly focusses on the previously identified technical and algorithmic challenges. In a second implementation phase, portability was explicitly verified by porting the system to Drupal [6], a technologically similar framework. Results - A proof of concept for the Joomla! 1.5 framework was successfully implemented, providing the required means to cope with mobile platform fragmentation. It supports the creation of adaptive Web-based applications and offers developers the necessary flexibility to create and instantly deploy new components.
Various types of components were implemented, targeting a wide range of devices. Support was confirmed for low-end devices, feature-phones and smartphones such as Android and iPhone devices.
In terms of portability, the use of encapsulation and restricted communication paths in the architectural design have clearly separated the framework-dependent parts from the rest of the system. Providing a port to Drupal 6 only required the adaptation of the resource storage, caching service and device capability detection. The process of transferring actual components does not require any modifications, as they are completely independent from the underlying framework. Conclusion - The proposed architecture provides a means for developers to cope with mobile platform fragmentation. We have developed an approach for the creation and delivery of adaptive mobile web-based applications. This system extends web application frameworks with component-based development capabilities and applies a mobile adaptation of the LSP method for performing multi-valued candidate evaluations. References [1] T. Ahonen, Mobile As 7th of the Mass Media: Cellphone, Cameraphone, Iphone, Smartphone. Futuretext, 2008. [2] J.J. Dujmovic, A method for evaluation and selection of complex hardware and software systems. In: Proceedings of the International Conference for the Resource Management and Performance Evaluation of Enterprise Computing Systems (CMG96), San Diego, CA, USA, Vol. 1, pages 368-378, Dec 1996. [3] J.J. Dujmovic, Preferential Neural Networks. Chapter 7 in "Neural Networks - Concepts, Applications and Implementations." Vol. II. Prentice - Hall Advanced Reference Series, Prentice Hall, pages 155-206, 1991. [4] I. Batyrshin, O. Kaynak, I. Rudas, Generalized conjunction and disjunction operations for fuzzy control. In: Proceedings of EUFIT98, Vol. 1, pages 7-10, Sep 1998. [5] Anonymous, Joomla!. http://www.joomla.org [Online]. [6] Anonymous, Drupal. http://www.drupal.org [Online]. |