=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==
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