- Support limited devices.
- Handle the interaction details between applications and resources.
- Support platform heterogeneity.
This way the DSOA provides a model for the smart space. SOA suggests that all capabilities are available by applications and must be accessed through services. In an ubicomp environment the entities involved have more intrinsic relations between capabilities and how to provide them. In order to address this, DSOA presents an extension of SOA concepts for modeling a smart space in a more cohesive way. Besides, SOA does not address how interactions must occur, but ubicomp environments have some specific interaction details that must be handled. DSOA shows a set of strategies to deal with these situations.
Basic Concepts
Smart Space: “The smart space is a neither empty nor unitary set of devices provided with computing power and interconnected by a communication network in a collaborative way.”
Devices: “A device is a computing equipment with communication capabilities, which must host applications or make resources available in the smart space.”
Resources: “A resource is a group of functionalities logically related. These functionalities must be accessible in the environment through pre-defined interfaces.”
Services: “A service is the implementation of a functionality made available in the smart space through a resource with a known public interface.”
Application: “An application consists of the implementation of a set of rules and behaviors related to the resources and users in the smart space.”
A representation of the concepts of a DSOA Smart Space
The above figure shows a representation fo such concepts but a example can better illustrate how they bind together:
- A smart space is defined as a living room. Its available devices are Dell PC (5), a Nexus One cell phone (6), a Sony LCD 52” TV (2) and a WebCam (3) connected to the PC, an air conditioner (1) and a motion sensor (4).
- The cell phone can turn available to the smart space its resources like camera, keyboard, microphone, speaker. Besides that the cellphone can host an application which allows the owner to interact with available resources.
- The camera resource can provide services like snapshot and video stream.
Roles: Following the definitions of the SOA, on the DSOA devices can perform according to three possible roles:
- A device act as a consumer when its accessing a resource provided by another device.
- Analogously, a device act as a provider when it is providing a resource to others.
- A device act as a register when it turns available for others its knowledge about the neighbor devices.
Communication Strategies: Focusing on how data is transported and how interaction occurs we group our strategies into two categories.
First we have the Data Transport strategies regarding on how data is exchanged between a consumer and a provider. On this group we find:
- Discrete messages are defined as the ones which carry information with known size. They are characterized by mutual knowledge of the beginning and the end of data in the communication. This strategy is used for small scale and discrete information, like requests for actions or queries.
- Continuum data are characterized by an information flow with no previous knowledge of its ending. The common usage of this type of communication is in data streams transmissions, like audio/video, or large scale data transfers.
- There is only one control channel where discrete messages are exchanged. This channel always exists between devices since its through it that service requests (control messages) are communicated.
- Data channels are responsible for managing continuum data. There can be as many data channels as needed, since each of them enclosures a different kind of data stream that applications and resources must deal with.
- A synchronous interaction occurs when a consumer starts its service request and a provider responds in a request-response manner. Common uses of this type of interaction strategy can be found in command requests (like lowering the air-conditioner temperature) or in a simple information query (like asking for the current room temperature).
- Some interactions don’t start immediately after the client request. This type of interaction is defined as asynchronous and has the following steps. (i) A client asks a provider to be informed about the occurrence of an event. (ii) The provider receives the request and waits for the event to happen. (iii) In an arbitrary moment (which may never happen) the provider notifies the client of the occurrence of the event. This type of interaction is commonly used to identify changes on the environment like user actions or temperature changes.