=Paper= {{Paper |id=None |storemode=property |title=A Manifest for Application Generators: Helping Developers with the Serenoa Framework |pdfUrl=https://ceur-ws.org/Vol-970/paper7.pdf |volume=Vol-970 |dblpUrl=https://dblp.org/rec/conf/casfe/EscolarCM12 }} ==A Manifest for Application Generators: Helping Developers with the Serenoa Framework== https://ceur-ws.org/Vol-970/paper7.pdf
 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