scispace - formally typeset
Search or ask a question
Book ChapterDOI

Pervasive Services on the Move: Smart Service Diffusion on the OSGi Framework

23 Jun 2008-pp 46-60
TL;DR: In this paper, the authors explore live service mobility in pervasive computing environments as a way to mitigate the risk of disconnections during service provision in mobile ad hoc networks, focusing on context-aware service migration and diffusion to multiple hosts to increase accessibility and expedite human interaction with the service.
Abstract: The ubiquity of wireless ad hoc networks and the benefits of loosely coupled services have fostered a growing interest in service oriented architectures for mobile and pervasive computing. Many architectures have been proposed that implement context-sensitive service discovery, selection and composition, or that use a component-based software engineering methodology to facilitate runtime adaptation to changing circumstances. This paper explores live service mobility in pervasive computing environments as a way to mitigate the risk of disconnections during service provision in mobile ad hoc networks. It focuses on context-aware service migration and diffusion to multiple hosts to increase accessibility and expedite human interaction with the service. We analyze the basic requirements for service mobility and discuss an implementation on top of OSGi. Finally, we evaluate our approach to service mobility and illustrate its effectiveness by means of a real-life scenario.

Summary (4 min read)

1 Introduction

  • Ubiquitous computing will become the next logical step to mobile computing where people are already connected anytime and anywhere.
  • By breaking up an application into a configuration of independent services with well-defined interfaces, SOA enables the creation of new applications with the required flexibility to customize services to changing demands and different contexts.
  • As such, the authors say that the same service has diffused to multiple hosts.
  • It helps to select appropriate targets for service mobility and coordinate synchronization and access to services deployed on these devices, and learns for each service the devices the user will most likely interact with.

2 Requirements for service migration and diffusion

  • Pervasive services offer a certain functionality to nearby users.
  • They are accessed in an anytime-anywhere fashion and deployed on various kinds of mobile and stationary devices.
  • When users or devices become mobile, proactive live service mobility to multiple hosts can provide a solution to the increased risk of disconnecting remote services.
  • In this section the authors review several non-functional concerns and requirements that need to be fulfilled to ensure that the migration and diffusion of a service in a mobile and pervasive setting can be accomplished.

2.1 Device, service and resource awareness

  • In a pervasive services environment, the multi-user and multi-computer interaction causes a competition for resources on shared devices.
  • Therefore, knowledge about the presence, type and context of the devices (including resource-awareness about the maximum availability and current usage of processing power, memory, network bandwidth, battery lifetime, etc.) is a prerequisite to guarantee a minimum usability and quality of service.
  • Before relocating a service to another host, a service discovery protocol (SDP) can be used to verify if the service is not already available [6].

2.2 Explicit service state representation and safe check-pointing

  • Stateless services can be replaced with similar ones or redeployed on another host at runtime without further ado as long as the syntax and semantics of the interfaces remain the same such that the binding can be reestablished.
  • Stateful services require a state transfer after redeployment before they can continue their operations on a different host.
  • Furthermore, the service must be able to resume from the state it acquired.
  • Therefore, services should model the properties that characterize their state and make sure that check-points of their state are consistent [7, 8].

2.3 State synchronization and support for disconnected operation

  • Due to possible wireless network disruptions in the mobile setting of the user, complete network transparency of remote service invocations can have a detrimental effect on service availability and accessibility.
  • The service platform should provide support to deal with intermittent network connectivity in order to recover from temporary failures in network connectivity between two services.
  • With handover to replicated services whose states are synchronized, the effect of network disruptions can be reduced.
  • Moreover, with discrete state synchronization, the requirement for continuous network connectivity can be mitigated.

2.4 Enhanced service life cycle management

  • The service platform must provide functions to manage the life-cycle of services, such as deployment, withdrawal, starting, stopping and updating.
  • The service life cycle management should move services to new hosts and replicate the state if necessary.
  • This is the typical behavior of ‘follow-me’ applications that move along with the user.
  • New replicas acquire the service state and get activated.
  • As the effect of network disruptions cannot be mitigated completely, the authors must also clean up stale replicated services.

3 Context-aware service mobility on the OSGi framework

  • In this section the authors will discuss how the previous requirements have been implemented on top of the OSGi framework [5].
  • This lightweight service oriented platform has been chosen for its flexibility to build applications as services in a modularized form with Java technology.
  • OSGi already offers certain functionalities that are needed to implement the service migration and diffusion requirements.
  • OSGi is known for its service dependencies management facilities and the ability to deal with a dynamic availability of services.
  • Moreover, OSGi can be deployed on a wide range of devices, from sensor nodes, home appliances, vehicles to high-end servers, and allows the collaboration of many small components, called bundles, on local or remote computers.

3.1 Extending service descriptions with deployment constraints

  • These service properties are key-value pairs that help service requesters to differentiate between service providers that offer services with the same service interface.
  • Service providers and requesters are packaged into a OSGi bundle, i.e. a JAR file with a manifest file that contains information about the bundle, such as version numbers and service dependencies.
  • The above constraint declares that a device should have at least one Java virtual machine instance with a GUI rendering engine instance that belongs to the JavaAWT class.
  • The main advantage of their context ontologies [9] is that complex semantic relationships only need to be specified once and can be reused by every service descriptor.

3.2 Context-awareness as an OSGi distributed declarative service

  • In order to diffuse OSGi services in a way that takes into account the heterogeneity and dynamism of a ubiquitous computing environment, the authors need to be aware of what the characteristics and capabilities of these devices are, where they are located, what kind of services they offer and what resources are currently available.
  • The COGITO service will provide this information on each host.
  • These bundles monitor for context that is changing and gather information from resource sensors, device profiles and other repositories within the system itself or on the network.
  • Besides a rule and matching engine that exploits semantic relationships between concepts [11], it also provides adapters that transform context information into more suitable formats.
  • Upon joining a network, each other node in the network creates a remote proxy to the enabling service of the joining node, and the Declarative Services bundle will ensure lazy registration and activation of the proxy whenever remote context is acquired.

3.3 Service state representation, extraction and synchronization

  • In order to replicate stateful services on multiple hosts with support for state synchronization, the authors need to explicitly model the state variables of the service, extract them at runtime and send them to the replicated peers.
  • The approach is quite similar to the stateful session beans in the Enterprise JavaBeans specification [12].
  • In their approach however, a JavaBean is situated locally within each replicated service and does not involve remote method calls.
  • The authors current implementation tries to synchronize as soon as the state of an application has been changed.
  • When network failures arise, the state updates are put in a queue and another attempt is carried out later on.

3.4 Extending the life-cycle management to relocate services

  • In a ubiquitous computing environment where pervasive services are replicated, a user may switch from one replicated service to another.
  • The authors add a revision number that is increased after each write operation on the bean and use Vector Clocks [13] among all peers to order the state updating events.
  • Fig. 3 shows that an active service can not only be stopped, but that in another transition the state can be extracted from the service and synchronized, or that the service can continue to either migrate or replicate to a new host.
  • The authors use a lease timeout algorithm to garbage collect stale replicated services in order to recycle resources.
  • The timeouts are application dependent, but can be reconfigured by the user.

4 Experimental evaluation

  • The usefulness and feasibility of dealing with context-aware service migration and diffusion will be illustrated with three applications: (1) a grocery list application, (2) a Jabber instant messaging client, and (3) a Sudoku game.
  • The devices used in the experiment include two PDAs, a laptop and a desktop, all connected to a local WiFi network.
  • This setup will simulate the real-life scenario in the next section.

4.1 Scenario

  • The scenario goes as follows: Everybody at home uses the grocery list application to make up a shared grocery list.
  • They decided to split up the work and go shopping separately.
  • He takes his briefcase, turns on his laptop, the application migrates and he continues the conversation there.
  • “Back to the PDA but then without the picture”, dad decides.
  • In the meantime, mom has arrived and dad tells her about the picture.

4.2 Experiments

  • In the experiment all the applications are launched on the desktop PC.
  • Later on, the instant messaging application migrates from one PDA to the laptop and back (while synchronizing with the desktop PC).
  • The bindings to the remote services are used to test handover to a replicated service after network disruptions.
  • The authors let the setup run for 30 minutes, in which the following actions are simulated: – Each 30 seconds the grocery list is modified and synchronized.
  • The authors measured the overhead of state transfer and synchronization and compare that to the resources that the applications required.

4.3 Discussion of the results

  • The test results show there is only a small overhead for the state transfer.
  • Other tests in multi-hop networks showed longer but still acceptable state synchronization delays (at most 5 times longer).
  • Of course, this assumes the required bandwidth is available.
  • Interesting to note for the handover to the replicated services (in their experiment, the stateless audio service and stateful log service), is that handover to another log service takes a bit longer on average.
  • In their experiment, the remote services were only available on two hosts (the laptop and the desktop).

Did you find this useful? Give us your feedback

Content maybe subject to copyright    Report

Pervasive Services on the Move: Smart Service
Diffusion on the OSGi Framework
Davy Preuveneers and Yolande Berbers
Department of Computer Science, K.U.Leuven
Celestijnenlaan 200A, B-3001 Leuven, Belgium,
{davy.preuveneers, yolande.berbers}@cs.kuleuven.be,
http://www.cs.kuleuven.be
Abstract. The ubiquity of wireless ad hoc networks and the benefits
of loosely coupled services have fostered a growing interest in service
oriented architectures for mobile and pervasive computing. Many ar-
chitectures have been proposed that implement context-sensitive service
discovery, selection and composition, or that use a component-based soft-
ware engineering methodology to facilitate runtime adaptation to chang-
ing circumstances. This paper explores live service mobility in pervasive
computing environments as a way to mitigate the risk of disconnections
during service provision in mobile ad hoc networks. It focuses on context-
aware service migration and diffusion to multiple hosts to increase acces-
sibility and expedite human interaction with the service. We analyze the
basic requirements for service mobility and discuss an implementation
on top of OSGi. Finally, we evaluate our approach to service mobility
and illustrate its effectiveness by means of a real-life scenario.
1 Introduction
The late Mark Weiser [1] predicted that the next wave in the era of comput-
ing would be outside the realm of the traditional desktop. Everything of value
would be on the network in one form or another with smart interacting objects
adapting to the current situation without any human involvement. Ubiquitous
computing will become the next logical step to mobile computing where people
are already connected anytime and anywhere. The growing presence of WiFi
and 3G wireless Internet access and sensor network technologies will give rise
to this new paradigm, in which information and intelligent services are invisibly
embedded in the environment around us.
Service-oriented computing (SOC) [2] is a key enabler of Weiser’s vision. It
represents the current state of the art in software architecture [3] that utilizes ser-
vices as fundamental building blocks for the rapid development and deployment
of applications. It relies on a service-oriented architecture (SOA) to organize
loosely coupled services with functions to bind them and manage their life-cycle,
such as the deployment and updating of services. These key features are cru-
cial for service interaction in a ubiquitous computing environment. By breaking
up an application into a configuration of independent services with well-defined

interfaces, SOA enables the creation of new applications with the required flex-
ibility to customize services to changing demands and different contexts.
The focus of this paper is on how we can improve the availability and accessi-
bility of services in a highly dynamic ad hoc network where intermittent network
connectivity can disrupt an application when multiple services on mobile and
stationary devices are temporarily coupled to behave as one single application.
We propose to replicate the same service and its state at runtime (i.e. live mo-
bility of services) on multiple devices near to the user that can provide a guaran-
teed quality of service (QoS) with support for state synchronization between the
replicated services. This way, we increase the number of opportunities a user can
interact with a service and we can better deal with volatile network connections
by handing over to a replica if the connection between two services breaks down.
As such, we say that the same service has diffused to multiple hosts. In order
to keep this diffusion approach scalable, the targets selected for diffusion need
to be well-chosen. That is why context-awareness [4] is a necessity for service
migration and diffusion in the ubiquitous computing paradigm. It addresses the
inner characteristics of the services by collecting relevant information about the
service requirements and the devices in the vicinity. It helps to select appro-
priate targets for service mobility and coordinate synchronization and access to
services deployed on these devices, and learns for each service the devices the
user will most likely interact with. The applicability of smart service diffusion
in a distributed setting will be illustrated on top of the OSGi framework [5].
The paper is structured as follows. In section 2 we list the requirements to
enable seamless service migration and diffusion. Section 3 provides details on
how we realized these requirements on top of the OSGi framework. In section 4
we conduct experiments that illustrate the effectiveness of service diffusion in a
real-life scenario. We measure the overhead of state transfer and synchronization
as well as any benefit in improved availability and accessibility. Section 5 provides
an overview of related work on distribution and mobility of services. We end with
conclusions and future work in section 6.
2 Requirements for service migration and diffusion
Pervasive services offer a certain functionality to nearby users. They are accessed
in an anytime-anywhere fashion and deployed on various kinds of mobile and
stationary devices. When users or devices become mobile, proactive live ser-
vice mobility to multiple hosts can provide a solution to the increased risk of
disconnecting remote services. In this section we review several non-functional
concerns and requirements that need to be fulfilled to ensure that the migration
and diffusion of a service in a mobile and pervasive setting can be accomplished.
2.1 Device, service and resource awareness
In a pervasive services environment, the multi-user and multi-computer interac-
tion causes a competition for resources on shared devices. Therefore, knowledge

SERVICE MIGRATION
SERVICE DIFFUSION
SERVICE MOBILITY AND STATE SYNCHRONIZATION
STATE
SYNCHRONIZATION
SERVICE
STATE
Fig. 1. Live migration and diffusion of services. Service migration completely relocates
the service to another host, while service diffusion redeploys the same service on other
hosts and ensures service state replication and synchronization.
about the presence, type and context of the devices (including resource-awareness
about the maximum availability and current usage of processing power, mem-
ory, network bandwidth, battery lifetime, etc.) is a prerequisite to guarantee a
minimum usability and quality of service. Before relocating a service to another
host, a service discovery protocol (SDP) can be used to verify if the service is
not already available [6].
2.2 Explicit service state representation and safe check-pointing
Stateless services can be replaced with similar ones or redeployed on another
host at runtime without further ado as long as the syntax and semantics of the
interfaces remain the same such that the binding can be reestablished. State-
ful services require a state transfer after redeployment before they can continue
their operations on a different host. Furthermore, the service must be able to re-
sume from the state it acquired. Therefore, services should model the properties
that characterize their state and make sure that check-points of their state are
consistent [7, 8].
2.3 State synchronization and support for disconnected operation
Due to possible wireless network disruptions in the mobile setting of the user,
complete network transparency of remote service invocations can have a detri-
mental effect on service availability and accessibility. The service platform should
provide support to deal with intermittent network connectivity in order to re-
cover from temporary failures in network connectivity between two services.
With handover to replicated services whose states are synchronized, the effect of
network disruptions can be reduced. Moreover, with discrete state synchroniza-
tion, the requirement for continuous network connectivity can be mitigated.

2.4 Enhanced service life cycle management
The service platform must provide functions to manage the life-cycle of services,
such as deployment, withdrawal, starting, stopping and updating. If a service
cannot be run locally because of a lack of resources, the service needs to be
moved to a remote and more powerful device in the vicinity of the user. The
service life cycle management should move services to new hosts and replicate
the state if necessary. We propose two kinds of service mobility (see Fig. 1):
Service Migration: Once the replicated service has moved to a new host,
the original one is stopped and uninstalled. This is the typical behavior of
‘follow-me’ applications that move along with the user.
Service Diffusion: In this adaptation, the original service becomes active
again once the state has been extracted. New replicas acquire the service
state and get activated. After activation, service states are synchronized.
Of course, a combination where a service is replicated on multiple hosts, but
where the original is uninstalled is also possible. Also note that plain service
migration does not require any state synchronization at all, but handing over to a
service replica is no longer possible when trying to recover from a network failure.
As the effect of network disruptions cannot be mitigated completely, we must also
clean up stale replicated services. This problem is similar to distributed garbage
collection where heartbeats or lease timeouts are used to detect disconnections
and recycle memory. Similar algorithms can be reused to clean up these services.
3 Context-aware service mobility on the OSGi framework
In this section we will discuss how the previous requirements have been im-
plemented on top of the OSGi framework [5]. This lightweight service oriented
platform has been chosen for its flexibility to build applications as services in a
modularized form with Java technology. OSGi already offers certain functional-
ities that are needed to implement the service migration and diffusion require-
ments. OSGi is known for its service dependencies management facilities and
the ability to deal with a dynamic availability of services. Moreover, OSGi can
be deployed on a wide range of devices, from sensor nodes, home appliances,
vehicles to high-end servers, and allows the collaboration of many small compo-
nents, called bundles, on local or remote computers. As such, OSGi is a viable
platform for service orientation in a ubiquitous computing environment.
3.1 Extending service descriptions with deployment constraints
Services in the frame of OSGi are published as a Java class or interface along
with a set of service properties. These service properties are key-value pairs
that help service requesters to differentiate between service providers that offer
services with the same service interface. Service providers and requesters are
packaged into a OSGi bundle, i.e. a JAR file with a manifest file that contains

information about the bundle, such as version numbers and service dependencies.
Service descriptions are stored in the service registry of OSGi. Service requesters
can discover and bind to a service implementation by actively querying for the
service or by subscribing to a notification mechanism in order to receive events
when changes in the service registry occur.
A recent addition to the OSGi R4 framework that simplifies the register-
ing of POJOs (plain old Java objects) as services and the handling of service
dependencies is the Declarative Services (DS) specification [5]. Dependency in-
formation that is currently not mentioned in the service descriptor deals with
non-functional properties such as hardware, software and resource constraints.
For example, one OSGi bundle could be successfully deployed on a J2ME CDC
Foundation Profile, while another could need at least a J2ME CDC Personal
Profile or a J2SE virtual machine because it uses AWT for a graphical user in-
terface. Moreover, resource (memory, processing power, storage) and hardware
(screen, audio, keyboard) dependencies need to specified as well. The current
key-value pair format for service properties is too limited to describe these com-
plex constraints. As discussed in our previous work [9–11], ontologies provide a
convenient richer specification format to describe and discover pervasive services
with support for QoS and context-awareness. We therefore opted to add a ‘de-
ployment’ entry into the Declarative Service descriptor in which we refer to an
ontology that is included in the JAR file of the OSGi bundle:
<?xml version=”1.0”?>
<component name=”jabber”>
<implementation class=”communication.impl.JabberChatClient” />
<service>
<provide interface=”communication.ChatClient” />
</service>
<deployment>
<require name=”resources1” class=”descriptor.owl#MemoryDependency” />
<require name=”software1” class=”descriptor.owl#JavaVMDependency” />
<require name=”hardware1” class=”descriptor.owl#DisplayDependency” />
<require name=”hardware2” class=”descriptor.owl#KeyboardDependency” />
</deployment>
</component>
It models the above dependencies as class restrictions on concepts defined in our
context ontologies
1
. A device should comply with these constraints if the service
is to be deployed successfully. For example:
<owl:Class rdf:about=”#MemoryDependency”>
<rdfs:subClassOf rdf:resource=”http://www.cs.kuleuven.be/˜davy/ontologies/2008/01/
Hardware.owl#RAM” />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource=”http://www.cs.kuleuven.be/˜davy/ontologies/2008/01/
Hardware.owl#currAvailable” />
<owl:someValuesFrom rdf:resource=>= 98304” />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
1
See http://www.cs.kuleuven.be/
~
davy/ontologies/2008/01/ for the latest revi-
sion of our context ontologies.

Citations
More filters
Proceedings ArticleDOI
13 Jul 2009
TL;DR: This article proposes a novel way to integrate services considering only their availability, the functionalities they propose and their non functional QoS properties rather than the users direct requests, called MySIM, a spontaneous service integration middleware.
Abstract: A computing infrastructure where "everything is a service" offers many new system and application possibilities. Among the main challenges, however, is the issue of service integration for the application development in such heterogeneous environments. Service integration has been considered by major middleware as a user centric approach as it responds to user requests and needs. In this article, we propose a novel way to integrate services considering only their availability, the functionalities they propose and their non functional QoS properties rather than the users direct requests. We define MySIM, a spontaneous service integration middleware. MySIM integrates services spontaneously on an event based mechanism and transparently for users and applications, extending by that the environment with functionalities. We developed a prototype as a proof of concept and evaluated its efficiency over a real use case.

47 citations

Journal ArticleDOI
TL;DR: The OSGi-based platform TaskShadow supports seamless task migration across smart environments using a task-to-service mapping algorithm to semantically search for suitable low-level services that achieve high-level tasks.
Abstract: The OSGi-based platform TaskShadow supports seamless task migration across smart environments using a task-to-service mapping algorithm to semantically search for suitable low-level services that achieve high-level tasks.

21 citations

Journal ArticleDOI
TL;DR: An elaborate and exploratory discussion of the problem and solution spaces along with a multidisciplinary meta-review and identification of complementary efforts in literature required to realise a merged approach to model driven development and ontologies are provided.
Abstract: Increasing demand for large scale and highly complex systems and applications, particularly with the emergence of pervasive computing and the impact of adaptive systems, introduces significant challenges for software development, as well as for user-machine interaction. Therefore, a perspective shift on software development and user-machine interaction is required. An amalgamation of model driven development and ontologies has been envisaged as a promising direction in recent literature. In this paper, we investigate this merged approach and conclude that a merger of both approaches, from formal modelling and knowledge representation perspective, on the one hand enables use of ontologies at run-time together with rules, prominently in terms of run-time reasoning, dynamic adaptations, software intelligibility, self-expressiveness, user involvement, and user situation awareness; and on the other hand at development time, prominently in terms of automated and incremental code generation, requirement adaptability, preservation of application knowledge, and validation and verification of structural and behavioural properties of the software. The core contribution of this paper lies in providing an elaborate and exploratory discussion of the problem and solution spaces along with a multidisciplinary meta-review and identification of complementary efforts in literature required to realise a merged approach.

14 citations

Journal ArticleDOI
TL;DR: This article defines a generic service model and describes the equivalence relations between services considering the functionalities they propose and their non functional QoS properties and proposes semantic substitution mechanisms upon the appearance and disappearance of services that fits the application needs.
Abstract: A computing infrastructure where everything is a service offers many new system and application possibilities. Among the main challenges, however, is the issue of service substitution for the application execution in such heterogeneous environments. An application would like to continue to execute even when a service disappears, or it would like to benefit from the environment by using better services with better QoS when possible. In this article, we define a generic service model and describe the equivalence relations between services considering the functionalities they propose and their non functional QoS properties. We define semantic equivalence relations between services and equivalence degree between non functional QoS properties. Using these relations we propose semantic substitution mechanisms upon the appearance and disappearance of services that fits the application needs. We developed a prototype as a proof of concept and evaluated its efficiency over a real use case.

8 citations

Proceedings ArticleDOI
30 Nov 2010
TL;DR: A preliminary event middleware architecture is presented along with the objectives (and research methods used) with relation to the COSTT project, and some preliminary results and further work are concluded.
Abstract: In this paper, we describe event processing in the medical domain, a domain which poses a number of extra challenges to event processing. A preliminary event middleware architecture is presented along with the objectives (and research methods used) with relation to the COSTT project. We conclude with some preliminary results and further work.

8 citations

References
More filters
Journal ArticleDOI
TL;DR: Consider writing, perhaps the first information technology: The ability to capture a symbolic representation of spoken language for long-term storage freed information from the limits of individual memory.
Abstract: Specialized elements of hardware and software, connected by wires, radio waves and infrared, will soon be so ubiquitous that no-one will notice their presence.

9,073 citations

Journal ArticleDOI
02 Jan 2001
TL;DR: An operational definition of context is provided and the different ways in which context can be used by context-aware applications are discussed, including the features and abstractions in the toolkit that make the task of building applications easier.
Abstract: Context is a poorly used source of information in our computing environments. As a result, we have an impoverished understanding of what context is and how it can be used. In this paper, we provide an operational definition of context and discuss the different ways in which context can be used by context-aware applications. We also present the Context Toolkit, an architecture that supports the building of these context-aware applications. We discuss the features and abstractions in the toolkit that make the task of building applications easier. Finally, we introduce a new abstraction, a situation which we believe will provide additional support to application designers.

5,083 citations

Book
01 Apr 1996
TL;DR: 1. architectural Styles, 2. Shared Information Systems, 3. Education of Software Architects, 4. Architectural Design Guidance.
Abstract: 1. Introduction. 2. Architectural Styles. 3. Case Studies. 4. Shared Information Systems. 5. Architectural Design Guidance. 6. Formal Models and Specifications. 7. Linguistic Issues. 8. Tools for Architectural Design. 9. Education of Software Architects. Bibliography. Index.

3,208 citations

01 Jan 2002
TL;DR: This work argues that a linearly ordered structure of time is not (always) adequate for distributed systems and proposes a generalized non-standard model of time which consists of vectors of clocks which are partially ordered and form a lattice.
Abstract: A distributed system can be characterized by the fact that the global state is distributed and that a common time base does not exist. However, the notion of time is an important concept in every day life of our decentralized \real world" and helps to solve problems like getting a consistent population census or determining the potential causality between events. We argue that a linearly ordered structure of time is not (always) adequate for distributed systems and propose a generalized non-standard model of time which consists of vectors of clocks. These clock-vectors are partially ordered and form a lattice. By using timestamps and a simple clock update mechanism the structure of causality is represented in an isomorphic way. The new model of time has a close analogy to Minkowski's relativistic spacetime and leads among others to an interesting characterization of the global state problem. Finally, we present a new algorithm to compute a consistent global snapshot of a distributed system where messages may be received out of order.

1,450 citations

Journal Article
TL;DR: This keynote argues that there is in fact even more profound change that the authors are facing – the programmability aspect that is intimately associated with all IoT systems.

1,171 citations

Frequently Asked Questions (2)
Q1. What contributions have the authors mentioned in the paper "Pervasive services on the move: smart service diffusion on the osgi framework" ?

This paper explores live service mobility in pervasive computing environments as a way to mitigate the risk of disconnections during service provision in mobile ad hoc networks. The authors analyze the basic requirements for service mobility and discuss an implementation on top of OSGi. Finally, the authors evaluate their approach to service mobility and illustrate its effectiveness by means of a real-life scenario. 

Future work will focus on a better handling of state synchronization conflicts and improving the state encapsulation approach to deal with incremental state transfers for data intensive applications. The outcome of this future work could result in a better policy with respect to on how many remote devices a service should be replicated and under which circumstances service migration would be a better approach compared to service diffusion. However, their main concern will always be to keep the supporting infrastructure flexible and lightweight enough for lowend devices with room left to actually run applications.