A manifest for application generators: helping developers with the Serenoa framework Javier R. Escolar, Cristina G. Cachón, Ignacio Marín Fundación CTIC C/ Ada Byron, 39 – 33207 – Gijón, Asturias (Spain) {javier.rodriguez,cristina.cachon,ignacio.marin@fundacionctic.org} +34 984291212 ABSTRACT interfaces and presentation (e.g., HCI): Miscellaneous. The Serenoa framework proposes an open platform for General Terms developing context-aware application Service Front-Ends. Human Factors; Design; Languages. It is based on a set of languages to define user interfaces (UIs) in an abstract manner and rules to guide application INTRODUCTION adaptation. After these languages, various software modules The Serenoa framework [1] is an open platform, which (Runtime UI Generation Engine sub-modules) may intends to provide software developers with a set of transform the abstract application definition to final user software tools which collaborate among them in order to interfaces to be rendered by actual devices for end-users to facilitate the development of context-aware Service Front- interact with it. As each of the available RUIGE sub- Ends. A Service Front-End is the type of application that modules may be dedicated to the generation for specific the Serenoa framework can generate: a user interface which application domains, support different types and provides access to local or remote service whose logic is technologies of adaptation and target different software defined aside. Serenoa applications support a wide concept platforms, we consider that a mechanism to help Serenoa of context by adapting to its different aspects, such as developers to decide which sub-modules best suits their device capabilities, user preferences and the various needs. The proposed mechanism is a manifest file to be conditions of the environment [2]. provided by the developer of a specific RUIGE sub- module, which must describe the application domains that it In order to achieve the previous goals, the Serenoa covers, the interaction modalities supported, the hardware framework is based on a modular architecture, as depicted and software platforms targeted, the adaptation types in Figure 1. considered (and which resources are adapted and to what other type of resource they are transformed) and any other piece of relevant information for developers to guess how good each RUIGE sub-module is for them. Additionally, a search engine (RUIGE Assistant for developers) is suggested for developers to have an entry point and, thus, be able to specify requirements and obtain a list of RUIGE sub-modules to cover their needs. Author Keywords Context awareness; service front-end; adaptation; user interface; search engine. ACM Classification Keywords Figure 1. Serenoa architecture (as depicted in Serenoa D.2.2. Software engineering: Design tools and techniques. deliverable D.X.X) D.2.6. Software engineering: Programming environments. The main idea on which the framework is based is the D.2.13. Software engineering: Reusable software. D.3.4. definition of applications at a high abstraction level by Programming languages: Processors. H.5.m. Information means of a language called AAL-DL (UI Design module of the diagram in Figure 1), and a language named ASFE-DL to express adaptation rules under the Event-Condition- Permission to make digital or hard copies of all or part of this work for Action paradigm (used in the Design-time Adaptation personal or classroom use is granted without fee provided that copies are engine). Afterwards, the abstract application definition is not made or distributed for profit or commercial advantage and that copies processed by the RUIGE (Runtime User Interface bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior Generation Engine) module, which corresponds to the specific permission and/or a fee. Runtime Engine module in Figure 1. This module is actually composed of different sub-modules, each of them in charge of the generation of the an abstract application these sub-modules facilitate the creation of the application definition for different target platforms, domain that they want to implement. applications, audiences, or supporting different types of The following paragraphs discuss the idea previously adaptation or interaction modalities, for instance. It is not proposed in the different sections of this document. After necessary that all the RUIGE sub-module have to be this introduction, Section “Manifest file definition” operated at the same time for a single application by a proposes the initial ideas for a definition of the manifest developer. Actually, a typical situation may be that a file. Section “RUIGE assistant for developers” suggests the developer decides to work with only one or two RUIGE fundamental concepts on which the search engine assistive sub-modules. tool, which matches application requirements and RUIGE In order to facilitate the use of the framework by the sub-module features, would be based. Finally, Section developer community, a set of assistive tools is provided. “Conclusion and future work” states the conclusion of this The first available set of tools is focused on application work and advises new ideas for consideration in order to design by means of a web IDE to create and refine both the refine the initial idea in this document. specification of user interfaces (AAL-DL language) and of adaptation rules (ASFE-DL language). We consider that MANIFEST FILE DEFINITION more work needs to be done in the creation of assistive The different concepts to be expressed in the manifest file, tools for developers using the Serenoa framework. At this as a means to describe the distinct RUIGE sub-modules moment, there are several RUIGE sub-modules, such as may be found in the Context-Aware Design Space (CADS) MARIAE (for desktop and mobile platforms and supporting and Context-Aware Reference Framework (CARF), defined multimodal interaction), UsiXML (also focused on in [2] as part of the work of the Serenoa project. multimodal multi-device applications) or MyMobileWeb The CADS is a theoretical method that provides (for mobile web browsers), an avatar-based module (in stakeholders a tool to support them in the phases of which the user interface is an avatar of a human being, implementation, analysis and evaluation of adaptive and supporting voice and gesture interaction), LEONARDI adaptable applications. The goal of CADS is helping (specialized in business applications for native and web developers before implementing their applications to be clients on desktop and mobile platforms, in which the UI aware of possible dimensions and granularity levels for must adapt to changes in the data model), and the performing adaptation, and after the implementation to warehouse module (focused on multimodal interaction in a analyse, evaluate and compare these dimensions regarding specific scenario: operators in a warehouse). The number of their respective coverage levels. As such the CADS RUIGE sub-modules created so far already suggests the supports the analysis and the comparison of different need to present their characteristics in an organized manner applications that execute adaptation and during their for application developers evaluating the Serenoa complete development lifecycle. The concepts in CADS are framework. For example, there are RUIGE sub-modules categorized in Meta-UI support level, level of adaptation, specialized in specific application domains (LEONARDI, UI component granularity, state recovery granularity, UI for business applications; or the warehouse module, for the deployment and technological space coverage. interaction of warehouse operators with their environment). Some of them support resource (images, video, audio) The CARF is defined as a reference framework that transcoding, but there is no formal specification about specifies the most relevant concepts to implement and which source and target formats are supported. These are perform context-aware adaptation. This reference clear examples of information that developers intending to framework has a graphical representation composed by use the Serenoa framework will need to know, with the seven branches that contains potential instances for only chance to read an important amount of documents or implementing, performing and also analysing context-aware even having to contact the developer of the different adaptation. It may be represented by means of a mind-map, RUIGE sub-modules. This problem will become with seven branches indicating the seven abstract concepts increasingly relevant as new sub-modules are added to the involved in context-aware adaptation: framework over time. • Why, defining the main goals for the adaptation process. Therefore, we propose that each RUIGE sub-module is For instance, adaptation may be performed to save annotated with a manifest file that indicates all the battery consumption at client-side. information that may be relevant for application developers • What, which describes the type of resources that may be in order to decide whether each sub-module is sufficiently adapted, including presentation elements, media good for their purpose. In addition, we consider that resources such as audio or video, and navigation flow. gathering the manifest descriptions of all the RUIGE sub- modules in a repository, and allowing queries to this • Who, referring to the actor who triggers, manages or repository after the application requirements provided by executes an adaptation process. developers, is an interesting assistive tools. In this way, developers may know in advance whether one or more of • When, which represents the state when adaptation takes available on the Internet. They are widely used in Internet place (e.g., design time, run time, or compilation time). protocols, such as SMTP, POP3, IMAP, HTTP, RTSP, RTP or SIP. It does not only cover content, such as audio, • Where, which indicates the virtual location where the video, text, images, animations, etc. (thus allowing, adaptation happens. Some examples of virtual location supported formats by a RUIGE sub-module –for instance, are client side, server side or an intermediate proxy. as source and target formats of an adaptation process), • To what, reflecting context information that justifies and but also messages and application formats. The latter is defines the adaptation process. For example, colour very interesting in order to express, for example, the adaptation to improve the contrast for users with low- format in which an application is generated by a RUIGE contrast vision. sub-module –namely, “application/x-apple-diskimage” • How, defines how the adaptation process is performed, for a Mac OSX disk image, or “application/x-winexe” for including the methods, strategies and techniques used. a Windows binary executable. • UAProf vocabulary [5], which allows the description of software and hardware platforms, as required (for example), in the “to what” branch of the CARF. Under a more fine-grained CARF description, it also allows the reference to hardware parts or software modules of an operating system, including for example Bluetooth profiles, radio communication technologies (such as GPRS, EDGE, UMTS, HSDPA, and LTE). • W3C Ontology for Media Resources [6], which defines a core vocabulary for description of media resources, and their mapping to elements from a set of existing metadata formats. For instance, it supports the definition of the author, creation/edition date and location, description, keywords, genre, rating, relation with other resources, copyright and policy information, fragment identification, compression, format, and other metadata about each resource. This opens more powerful expressivity in the “what” branch, for instance. • Ontologies for user description, with a large amount of research efforts devoted to this topic in the last decade, Figure 2. Example of CARF instance with the most relevant such as “Creating an Ontology for the User Profile: concepts for context-aware, as shown in [2] Methods and Application” [7], FOAF [8] or SIOC [9]. The proposal in [3] to reflect CARF as a mind map has These and other vocabularies, identified after a more been considered by the authors of this article as a good rigorous analysis of the state-of-the-art may provide support starting point in order to represent the manifest file. This to a great part of the complete vocabulary required to conceptual model may be easily translated as an XML file express CARF and CADS properties. It must be also taken representing the tree structure associated to a mind map, or into account that some other vocabularies would be simple even as a JSON file. More information required, in order to enough so a set of values would be sufficient for each add information from the CADS, would be added following element in the vocabulary, as it can be seen for the “when” a tree structure by adding a root node, ancestor to the or “where” branches in Figure 2 –at least for a non fine- adaptation root node in the CARF mind map, and then grained first approach. As commented before, a vocabulary adding CADS elements. describing application domains would be required in order to express business limitations for some RUIGE sub- Leaving aside the manner in which the file (or an modules, such as “applicable only to warehouse picking alternative physical representation for the logical tree scenario” or “applicable only to business applications”, or structure) is formatted, the main problem to develop the technological limitations, such as “targeted at mobile web manifest file is the large amount of vocabularies required in browsers”. order to express all the information. This may be minimized after an analysis of existing vocabularies. For instance: RUIGE ASSISTANT FOR DEVELOPERS • Internet Media Types [3], also known as MIME Media After each RUIGE sub-module is described by means of a Types [4], are the elements included in the listing curated manifest file, a possible extension for Serenoa would be the by the IANA (Internet Assigned Numbers Authority). inclusion at the main page of the project of a link to what These elements are a two-part identifier for resources we have called the “RUIGE assistant for developers”. The idea behind this assistant is that a developer facing the the manifest description would highly improve the challenge of creating context-aware applications with functionality of the RUIGE assistant for developers. For Serenoa can easily discover the best RUIGE sub-modules. instance, modelling the CARF and CADS in the CARFO ontology would allow that the manifest was expressed by This assistant would be a web application in which means of RDF triples which would refer the entities developers would set the main features of the applications expressed in CARFO. By defining the appropriate that they want to implement with Serenoa, checking them relationships, and perhaps adding a rule set to implement against the information contained in the manifest file for the corresponding decisions, expressivity problems deriving each RUIGE sub-module existing in the framework. from the simplest syntactic search approach to implement Developers would be advised for each feature with their the assistant would be solved –for instance, to balance accepted values by means of a combo box or text auto- different criteria as in the conflict expressed at the end of completion. the previous section. • Application domain/business domain, so the results returned by the assistant would recommend RUIGE sub- ACKNOWLEDGEMENT modules for that specific domain. Alternatively, it would This work received funding from the European also recommend those with no specific Commission’s Seventh Framework Program under grant application/business domain declared, considering that agreement number 258030 (FP7-ICT-2009-5). those are generators of any type of application –but The authors wish to thank the participants in the Serenoa sorting them later in the list of matching RUIGE sub- project for the cession of material for this article. modules. • Resource adaptation formats desired would be, in its REFERENCES simplest form, two lists including the Internet media 1. Serenoa project. http://serenoa-fp7.eu. types accepted as source and target for adaptation 2. Motti, V. G. D2.1.2. CARF and CADS. Public process. More advanced options would support different deliverable of the FP7 Serenoa project. 2012. source/target pairs, one per resource type: audio, images, video, etc. 3. Bray, T. Internet Media Type registration, consistency of use. World Wide Web Consortium. • Audience, so developers could express the set of users http://www.w3.org/2001/tag/2002/0129-mime. targeted. For instance, colour-blind users. 4. Internet Assigned Numbers Authority. MIME Media • Target devices, in order to express software and Types. http://www.iana.org/assignments/media- hardware platforms to be covered, including the types/index.html. distribution format for the application –for instance, a 5. The Open Mobile Alliance. WAG UAProf (2001). Flash application or an executable binary. http://www.openmobilealliance.org/tech/affiliates/wap/ In general, developers should be able to query which CARF wap-248-uaprof-20011020-a.pdf and CADS features are supported by each RUIGE sub- 6. Champin, P. et al. Ontology for Media Resources 1.0. module and thus decide whether they match the W3C Recommendation. 2012. requirements for the application in scope. http://www.w3.org/TR/2012/REC-mediaont-10- Several questions may arise from this simple first approach 20120209/. based on syntactic search, such as what to do when a 7. Golemati, M. et al. Creating an Ontology for the User RUIGE sub-module matches the business domain required Profile: Methods and Applications. In Proceedings of by a developer, but another RUIGE sub-module (not the First International Conference on Research specialized in a single business domain) targets all the Challenges in Information Science. 2007. devices desired by the developer. 8. The Friend Of a Friend project. http://www.foaf- CONCLUSION AND FUTURE WORK project.org. The authors believe that an entry point clarifying the 9. The Semantically-Interlinked Online Communities possibilities of all the available RUIGE sub-modules to the initiative. http://sioc-project.org. developer community is an interesting issue that needs to be covered in some way by the Serenoa consortium. The application of more complex information models to express