Survival guide

Survival guide

GAS: Gadgetware Architectural Style constitutes a generic framework shared by both artefact designers and users for consistently describing, using and reasoning about eGadgetWorlds. GAS defines the concepts and mechanisms that will allow people (eGadget users) to define and create eGadgetWorlds (using eGadgets as building blocks) and use them in a consistent and intuitive way.

GAS-OS: the software that implements GAS. It can be considered as a component framework, a collection of software components and architectural styles that determines the interfaces that components may have and the rules governing their composition. GAS-OS manages resources shared by eGadgets, and provides the underlying mechanisms that enable communication (interaction) among eGadgets. Thus, it can be considered as a mini-operating system. In this analogy, eGadgets are to GAS-OS what processes are to operating systems.

eGadgets: everyday objects, augmented with a digital self, which may be embedded in the tangible object or detached from it (but tightly associated with it). They combine properties and affordances of physical objects (like form, shape, location etc) with properties that characterize their digital self (like ID, computational services and functions etc). They are manufactured mainly by adding to the object a tiny computer board having processor, memory, sensors / actuators and wireless communication module. Each eGadget is an independent entity, capable of locally managing its resources (like power), of performing the tasks it has been designed for and of communicating (directly or indirectly) with other eGadgets (in order to form Synapses). In performing these tasks, an eGadget may display smart or intelligent behaviour; it may also learn from its usage and store past experience in a context-sensitive way.

Plugs: comprehensible abstractions of an eGadget's capabilities (including affordances, properties, functions and services), which are offered for other eGadgets to use. In the digital domain, a Plug is implemented with a software class, which encapsulates its description, type, state and communication protocol. It may also have a physical counterpart, which can be a visible part of the object. An eGadget may possess one Tangible Plug, which visualizes its affordances and physical properties, and one or more Service Plugs, each of which visualizes a service or function.

Synapse: an association between two Plugs. The establishment of a Synapse depends on the degree of type and protocol compatibility between the participating Plugs. An established Synapse implements a set of message-based transactions between the eGadgets that possess the respective Plugs, based on a commonly agreed communication protocol. A Synapse is always established and configured by an actor, in most cases by a person.

eGadgetWorld: a distributed system composed of eGadgets associated with Synapses, which appears as a unified entity (it has an ID and an internal state different than those of the participating eGadgets). A eGadgetWorld is a dynamic functional configuration of objects assembled purposefully by an actor (in most cases by a person) in order to realize a collective function. It can be regarded as the equivalent of a software application consisting of interacting components.

Emerging behaviour: Within the e-Gadgets project, this issue is approached from two perspectives:

  • From the people's perspective: people are considered to be active shapers of their environment (which consists of eGadgets), not as simple consumers of technology. In the terms of the project, this means that people may form unexpected collections of Synapses by:
    • Associating compatible plugs in an ad-hoc way in order to perform a not predefined function.
    • Associating seemingly incompatible or partially incompatible plugs.
    • Using parts of eGadgets via their Plugs in order to form virtual eGadgets.
  • From the technology perspective: GAS technology supports the above actions (thus facilitating emerging behaviour) by:
    • Regarding eGadgets as «black-box» building blocks of eGadgetWorlds.
    • Defining Plugs as plain eGadget abilities, independently of their possible uses.
    • Offering an «open» association mechanism.
    • Augmenting an eGadgetworld with services found in the environment.
    • Maintaining the state of a Gadgetworld.
    • Learning context-sensitive functionality by monitoring people behaviour.