The semantic data models and ontologies have shown themselves as very useful technologies for the environments where heterogeneous devices need to share information, to utilize services of each other, and to participate as components in different applications. The work in this chapter extends this approach so that the software development process for such environments is also ontology-driven. The objective is i) to support the incremental development, ii) to partially automate the development in order to make it easier and faster, and iii) to raise the level of abstraction of the application development high enough so that even people without a software engineering background would be able to develop simple applications. This chapter describes an incremental development process for the smart space application development. For this process, a supporting tool called Smart Modeler is introduced, which provides i) a visual modeling environment for smart space applications and ii) a framework and core interfaces for extensions supporting both the model and the ontology-driven development. These extensions are capable of creating model elements from ontology-based information, discovering and reusing both the software components and the partial models through a repository mechanism supported by semantic metadata, and generating executable program code from the models.
TopIntroduction
The work reported in this chapter is performed in the framework of the SOFIA project (Liuha et al., 2009) which contributes to the development of devices and applications capable of interacting across vendor and industry domain boundaries. Consider, for example, a car environment. Typically, a board computer and possibly an entertainment system exist in a modern car. In addition, one or more smart-phones can be brought in by the driver and the passengers. The listed devices will possess some pieces of information about the physical world, for example, location and speed of the car, the current activities and context of the passengers, and so on. Unfortunately, although many applications on the intersection of these datasets are imaginable, information sharing between applications running on different kinds of computing devices is not easy at present. For example, it would be useful to have a simple application that automatically mutes the sound system of the car when one of the smart-phones inside the car is receiving a call. However, it is a very difficult task to compose this kind of applications at present. There is a need both for the methods that provide an easy access to the information and services available in physical environments and for the development methods that facilitate the composition of applications that are based on information and services available in various kinds of physical environments.
The ubiquitous computing paradigm aims at providing information and services that are accessible anywhere, at any time and via any device (Weiser, 1991). The SOFIA project contributes to this idea and develops a solution to overcome the barriers of heterogeneity and lack of interoperability and to enable devices to share information, to utilize services of each other, and to participate as components in different kinds of smart space applications. Additionally, the solution is targeted for distributed applications that consist both of the local components and of the components residing in the network. The idea behind the GLObal Smart Space (GLOSS) is to provide support for interaction amongst people, artifacts and places while taking account of both context and movement on a global scale (Dearle et al., 2003). Furthermore, in the Web of Things vision, the physical world becomes integrated with computer networks so that the embedded computers or visual markers on everyday objects allow things and information about them to be accessible in the digital world (Guinard & Trifa, 2009). The SOFIA project pursues the target of making information in the physical world universally available to various smart services and applications, regardless of their location, which aligns well with the GLOSS and with the Web of Things vision, too. As concrete results, the aim of the SOFIA project is to develop both the InterOperability Platform (IOP) and the supporting Application Development Kit (ADK) toolset for the IOP in order to facilitate the smart space application development. This chapter relates to the latter effort.
The IOP is based on an architecture (depicted in Figure 1) consisting of three layers (Lappeteläinen et al., 2008). Firstly, the devices connected through networks and gateways form the Device World that is the lowest layer in the architecture. Secondly, the middle layer, the Service World, consists of applications, services, and other software-based entities. Thirdly, an information-level world, the Smart World, is the highest layer in the architecture. In the IOP, it is assumed that most of the interaction between devices is based on information sharing rather than on service invocations. The following lists the most important elements of the IOP:
Figure 1. The layers of the IOP architecture