This document presents SOFIA, an open innovation platform and application development kit (ADK) for ambient intelligence applications. The ADK aims to simplify the development process for smart applications from modeling to implementation. It uses an ontology-driven development approach with three phases: design, implementation, and testing/deployment. The ADK provides tools to guide developers in choosing ontologies, platforms, and languages and generates the necessary middleware. The SOFIA architecture includes a Semantic Information Broker to enable interoperability between smart applications and devices.
SOFIA - A unified smart city environment based on SOFIA’s Interoperability Op...
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
1. SOFIA: Smart Objects for Intelligent Applications – ADK
Jesús Fernández Gómez- Raúl Otaolea
Pimpollo ESI Tecnalia,
Área Innovación Tecnológica Parque Tecnológico de Zamudio 204
(Soluciones Tecnológicas) 48170, Zamudio
Indra Sistemas, Anabel Segura nº7 Bizkaia, Spain
28108, Alcobendas raul.otaolea@esi.es
Madrid, Spain
jfgpimpollo@indra.es
Abstract
SOFIA (Artemis project: http://www.sofia-
project.eu/) focuses on answering the challenge of
creating smart environments and its goal is to
make information that resides in the physical
world available to current software services. This
paper presents an open innovation platform for
ambient intelligence applications including
architecture, software engineering as well as an
application development kit. Both, processing and
implementation technologies have matured to
such a level that using embedded technologies is
beginning to make sense. It is therefore possible to
begin to develop the concept of smart spaces,
which have been investigated so extensively in the
areas of Ubiquitous Computing, Ambient
Intelligence and the Internet of the Future. This Figure 1. SOFIA development life cycle
paper´s core is based on how SOFIA has modeled
its different domains and how software 2. Design
engineering together with the development
environment will solve the development cycle of The Wizard plug-in centralizes the programmer
an intelligent application, starting from its decisions about the Knowledge Processor (KP).
semantic model to its implementation in a The wizard guides the developer to choose in
concrete programming language. between ontology concepts to use and their profile
(producers and/or consumers), platform and
1. Introduction programming language, communication protocol
and project details like name, package names, etc.
The ADK is a set of tools that provides several A new SOFIA project is created in the last
functionalities to the whole development life wizard´s step where all necessary middleware (all
cycle. The Ontology Driven Development (ODD) layers in the proper language, an editor for that
[1] based on Ontology Driven Software language) is added and finally all the connectors
Engineering approach has three phases: design, selected, SSAP or communication protocol
implementation, testing and deployment. knowledge is not needed to start coding the logic
of a KP. The plug-in selects a proper editor for the
programming language chosen by the KP
developer, and assigns it to the SOFIA project
generated.
Connectors are already coded for a variety of
languages (partially programmed for Java) and
2. will be stored in a centralized server where the enables the knowledge processing, sharing and
ADK connects to and downloads locally. reuse between applications.
Openness and scalability are major factors, The SIB OSGi Bundle exposes a set of
therefore connectors for different communication services using the public interfaces ISIB (shows
protocols and different languages are feasible. The all the methods to interact with the SIB using
Smart Application Wizard includes the SSAP Message type communication), which
OWL2Classes facility, which translates several controls the communication between
ontologies into programming languages classes in Gateways/KP and SIB, and IViewer (exposes
order to be used with the SOFIA middleware. methods to observe the content and to register
When this class is used, all its interactions are sent changes within the SIB).
to the SIB; therefore programmers do not need to The Semantic Model is based on Jena
have expertise knowledge about ontologies. (Semantic Web Framework), which provides an
API to allow the storage of ontologies, classes,
3. Implementation individuals, properties and all data related to
ontologies. It is assumed that languages can be
A KP is divided in four layers: 1. Logic. A used for the interaction with the model are OWL
developer is only responsible for programming (or RDF-XML) and N3. Decisions are based on
this layer and it represents the functionalities a the definition of the SSAP Message Protocol
final user or a company wants to create. 2. defined in Description of XML encoding of SSAP
Semantic model. This layer is automatically document (internal Wiki). This model maintains a
generated by the OWL2Classes tool of the ADK. full class hierarchy of already connected nodes
It is an API with the classes in a specific and the individuals (instances or triples) that has
programming language representing ontologies joined the SIB. All KPs must send in their first
selected in the wizard tool. Thus, they are the ontology model connection to the SIB, so that, all
concepts to exchange with the smart space. 3. individuals defined in that KP can be understood
SSAP. This layer gathers all APIs dedicated to by the SIB and other KPs in the Smart Space.
deal with the SIB. The upper layer knows how to When a KP is removed from the Smart Space all
invoke the appropriate methods of this API.[2] the information about this KP is also removed
Connection. The different connectors are plugged from the SIB Semantic Model, including all the
in this layer to connect with the SIB. It is also inserted individuals.
responsible for Semantic Information Broker The ADK Subscription Manager is
(SIB) discovery. responsible for maintaining the information about
Hence, the complexity related with ontologies the subscribed KPs and Session Manager manages
and communication protocols are totally the KPs connected to the SIB at a given moment.
encapsulated in a very easy API formed by plain Only connected KP-nodes are allowed to perform
classes (model layer). Developers only have to the SSAP operations in the SIB. The SIB into a
instantiate them and use their getters/setters in Sofia smart space needs to interoperate with the
order to interact with the smart space. KPs of several smart applications that are running
into the smart space, which enables the KP to
change information into the SIB and the SIB
4. Testing and Deployment communicates those change to several KPs
subscribed to them. KP can be executed in any
The SIB is the responsible for the interoperability physical device with communication capabilities
between heterogeneous smart applications and to interoperate with a SIB of the smart space. The
devices. Its core is differentiated in three parts; use of Gateways is a solution to avoid problems
1.Sessions. Refers to the KP connected to the SIB when having devices with different
at a given moment. 2. Subscriptions. Subscribed communication protocols.
nodes are notified when certain conditions in the A modular and extendible architecture is
semantic model are produced. 3. Semantic Model achieved by having the OSGI platform as a
provides the interoperability level needed to module container, where the SIB or the Gateways
connect different devices, platforms, sensors or are OSGI bundles and SIB bundle changes will
data using the SOFIA Smart Space context. It also
3. not affect any Gateway bundle. This architecture to design easy applications visually linking the
will be enhanced with new Gateways supporting different parts semantically [2], [3]. This approach
new communication protocols and increasing the will gain high dynamicity and composability
amount of devices where smart applications can inside a smart space, as the dependencies are not
be deployed, freeing new Gateway developers of established statically but semantically and could
any responsibility regarding opened sessions be solved at runtime based on semantics. This
(KPs-SIB) as the fragment bundle will be feature will be ready with the second version of
extended by the Gateway. the ADK.
Moreover, two specific Gateway OSGI
Bundles are been looked at the moment to support References
TCP/IP and Bluetooth connections. The platform
is also open to develop new Gateways supporting [1] W3C, Ontology Driven Architectures and
more connection protocols. Potential Uses of the Semantic Web in
SIB includes a server to represent any server Systems and Software Eng.
visually, which main functions are start and stop online:http://www.w3.org/2001/sw/BestPracti
the SIB and a viewer to visualize the content of ces/SE/ODA/, 2006
the embedded SIB and has three tabs: Sessions, [2] Vanden Bossche, M., Ross, P., MacLarty, I.,
Subscriptions and Semantic model (to check Van Nuffelen, B., Pelov, N.: “Ontology driven
insertions and removals among connected KPs software engineering for real life
and the SIB, key tool to test KP). applications,” in Proc. 3rd Intl. Workshop on
Semantic Web Enabled Software Engineering,
5. Conclusion 2007
[3] de Oliveira, K. M., Villela, K., Rocha, A. R.,
The ADK has already achieved its main goal, to Travassos, G. H.: “Use of ontologies in
aid developers programming high quality smart software development environments,” in
applications; nevertheless SOFIA aims to push Calero, C., Ruiz, F., Piattini, M. (eds)
this concept to the limit allowing final users to Ontologies for Software Engineering and
build their own applications. To do so, we are now Software, 2006
defining a smart application model (within ODD)