Documente Academic
Documente Profesional
Documente Cultură
DOI 10.1007/s00779-016-0904-1
ORIGINAL ARTICLE
Received: 6 April 2015 / Accepted: 5 January 2016 / Published online: 3 February 2016
Springer-Verlag London 2016
Abstract The pervasiveness of electronic devices coupled with increasing resources within these devices has
aided the explosion of available software services. While
reusable software services have become more accessible
and the cost of using these services has become cheaper,
the increased number of services and access methods also
increases the complexity for the user of these services,
demanding too much attention from the user. On the other
hand, automation can alleviate some of the complexity
issues but at the expense of user control. We propose a
balance between smart reusable integration, automation
and user controllability, through a dynamically adaptive
user-centric approach that utilizes goal-oriented intent
modeling. This work leverages the convergence of services
and providers for the user through reuse, autonomic
adaptation of services to relieve the users of laborious and
tedious tasks, while ensuring that the users end-goal
remains central at all times. We applied our approach to the
domains of collaborative communication as demonstration
of the feasibility of the approach.
1 Introduction
The pervasiveness of electronic devices, especially mobile
electronic devices, coupled with increasing resources
within these devices has aided the explosion of communication services. Services previously limited to wired
networks are transitioning to wireless devices, while
bandwidth intensive services such as video conferencing
are becoming more common place as the available bandwidth grows. This convergence of infrastructure, devices
and services presents opportunities to create elaborate
collaborative applications [8]. While communication services have become more accessible and the cost of using
these services has become cheaper, the increased number
of services and access methods also increases the complexity for the users of these services. Weiser et al. [50]
noted that traditional computing has become too complex,
too hard to use and too demanding of attention from the
user.
Ubiquitous computing was the paradigm envisioned by
Weiser et al. [50] as a solution to the aforementioned
problem. However, one of the research challenges with this
paradigm is how to maintain user control and provide
simplicity simultaneously. We propose an approach to this
challenge, a dynamically adaptive user-centric approach
that utilizes goal-oriented intent modeling. The work presented in this paper is grounded in the following: (1)
reusability, leveraging the convergence of services and
providers for the user through reuse; (2) simplicity, autonomic adaptation of services to relieve the user of laborious
123
210
123
communication frameworks at the lower level, provideragnostic integration of communication services at the user
level and an autonomic concepts to bridge the two levels.
We leverage this approach in the Network Communication
Broker (NCB) layer of the Communication Virtual
Machine (CVM), a model-driven paradigm for realizing
collaborative communication.
The CVM, developed by Deng et al. [10], interprets
user-defined communication models created using the
Communication Modeling Language (CML) [51], a
domain-specific modeling language. The NCB layer of the
CVM has been extended to support self-* properties and is
the main area of focus in this paper. The approach is
supported by a goal-oriented methodology for the allocation and self-configuration of communication resources.
The approach supports the convergence of multiple communication frameworks as well as methodologies for
selecting the most appropriate services as requested by the
users communication models. Models defined by the users
as their intent are executed on the CVM platform and
provide services that are guided by user-defined policies. In
this paper, we extend the work of Allen et al. [3] with the
following major contributions:
1.
2.
3.
4.
Development of methodologies for selection of services based on user intent and automated reconfiguration of services and communication frameworks.
Development of the definition and evaluation techniques for user-centric communication (UCC) policies,
useful for describing user intent in the domain.
Design an extensible architecture that supports seamless integration of communication frameworks.
Results of evaluation of the proposed approach.
2 Background
2.1 Autonomic computing
Autonomic computing (AC) [16, 21] refers to computing
systems characterized by one or more of the self-
211
http://www.cis.fiu.edu/cml/.
123
212
Fig. 1 Layered architecture of
the CVM
CVM
CVM
User
Communication
Communication
Management
User-Centric Comm.
Middleware (UCM)
User-Centric Comm.
Middleware (UCM)
Realization of
Comm. Services
Communication Networks
Communication Networks
Legend
Control and Data Flow
are loaded and executed either synchronously or asynchronously. Managing the delivery of media requires the
UCM to store data in temporary locations, retrieve data
from remote UCMs on-demand, enforce security policies
associated with media, among other tasks. Additional
details of the UCM implementation are provided by Morris
et al. [30].
Network Communication Broker (NCB) provides a
network-independent API to the UCM that masks the
heterogeneity and complexities of the underlying network
to support the realization of the communication services.
The NCB interacts with the underlying communication
frameworks to ensure that the requests from the UCM are
realized, including request negotiation between participants, delivery of media and the enforcement of low-level
policies. Additional details of the NCBs functionality will
be provided in subsequent sections.
2.4 Network Communication broker
The initial design of Network Communication Broker
(NCB) as proposed by Zhang et al. [52] is a user-centric
middleware that encapsulates the networking complexity
123
Virtual Communication
3 Overview of approach
In this section, we present our approach for the development of a user-centric self-configuring system of reusable
communication services.
3.1 Proposed solution
The purpose of the NCB is to provide a network-independent API for services to the upper layers of CVM,
where the upper layers of CVM simply describe the services needed. It was hypothesized that the integration of
multiple communication frameworks would be a feasible
solution for expanding the services. However, utilizing this
method in isolation raises the complexity for users and
application developers of CVM who will now have to
become fully aware of each communication frameworks
service listings and limitations. The redesigned NCB must
therefore provides the upper layers with the set of available
communication services without burdening the user with
the complexity of deciphering which framework has what
services. Our new design tries to address the following
questions:
1.
2.
3.
213
123
214
Applications
Middleware API
Mapping Layer
Knowledge
Repository
Selection Layer
Convergence Layer
Skype
Smack
SIP
ooVoo
GVoice
TCP/IP Stack
1. User
request
11. Response
12. Reactive Events
Touchpoint AC
Manager
UCI
4. Issue AC
re-configuration
SE
UCM
5. Prepare
framework for use
6. Update
knowledge
OAM
NCB Manager
Queue
2. Prioritized
request
Evaluation
3. Evaluate against
policies
Shared Knowledge
8. Get connection to
framework mapping
7. Issue connection
command
10. Communication
events and exception
Communication
Frameworks
9. Enable
communication
Communication
Manager
Fig. 3 NCB control flow diagram. OAM orchestrating autonomic manager; AC autonomic computing
123
framework for the connection in the framework-to-connection mapping table, step 8, and executes the command
on the specific framework (step 9).
Any resulting events or exceptions are passed to the
NCB Manager, step 10. Any out-of-band or reactive
events that cannot be handled by the TPM are encapsulated and forwarded to the OAM (see step 12). The OAM
processes this event and directs the TPM appropriately.
This effectively provides a stacked approach for the
autonomic design with the OAM performing the role of
manager for the TPM. The details of this design are
provided in Sect. 5.
4 UCC policies
The interfacing of multiple communication frameworks
expands the available communication services, thus requiring a way to express high-level business goals to simplify
the management of the system. Separating the rules from the
implementation facilitates dynamic modification of these
rules, yielding flexibility to change the management strategy
of the system and hence modify its behavior without
changing its underlying implementation [44]. In this section,
we define user-centric communication policies and present a
structural design for representing these policies.
4.1 Policy definition
Policies are rules that define the choices in the behavior of
a system [29]. Agrawal et al. [1] define a systems behavior
to be a continuous ordered set of states where the order is
imposed by time. Let B(S) be the set of all possible
behaviors that the system S can exhibit. There should exist
some set of constraints C such that when C is applied to
B(S), it maps to a subset of desired behaviors Bdesired S.
Then for goal function g,
g : C; BS ! Bdesired S
The goal function g is effected as a policy P, where
policy P characterizes conditions and actions that reduces
B(S) to some subset Bdesired S; that is, it defines a subset of
B(S) of acceptable behaviors for S.
Policies can be defined using only a small number of
attributes of system state and do not require the determination of the complete state a priori [1]. In the case of
collaborative communication, we define policy P as a
4-tuple hPS ; PC ; PV ; PA i where:
215
123
216
Policy
Management
Tool
Policy
Repository
Request
Event
Policy
Designer
Supported
Policies
(i) Scope
Analysis
Policy
Repository
Components
@
Runtime
Environment
Policy
Decision
Point
Policy
Enforcement
Point
(a)
Monitored
State
Events
(ii) Condition
Analysis
Manage /
Enforce
State
(iii) Decision
Analysis
Relavant
Policies
(b)
123
217
123
218
Policy
Authoring
NCB API
API Calls
NCB Manager
events / exceptions
policies
Reactive Calls
Call Queue
Communication Services
Manager
CSM
Commands
Request
Decomposition
Get
State
Request
Evaluation
OAM
Policy
Repository
Knowledge
Source
Framework
Select
Policy Evaluation
Touchpoint Autonomic
Manager
AC
Commands
Management Interface
NCBNative
Skype
Smack
Android
New
Communication
Framework
Comms Interface
Fig. 7 NCB architecture showing how various communication frameworks are coordinated using an autonomic framework
123
signal
ACSignal
in NCBCall
interface
KSInterface
+setFeatureList()
+getFeatureList()
+setMapTable()
+getMapTable()
+...()
219
edu.fiu.cvm.ncb.cs
OrchestrationManager
csManager
interface
ComObject
+createConnection()
+addParty()
+enableMedium()
+...()
PolicyEvalManager
ComObjectMgr
*
1
edu.fiu.cvm.ncb.tpm
Touchpoint
GenericManager
CommFWTouch
edu.fiu.cvm.ncb.adpt
CommTPManager
1
CommFWTouch
CommFWResource
1
signal
ACSignal
out NCBCall
NCBBridge
interface
ACManagement
+hasFailed()
+resetFramework()
+...()
SkypeAdapter
SmackAdapter
NCBNative
ComObjectMgr maintains the set of available communication frameworks, while the csManager handles the highlevel coordination to effect the communication.
Package edu.fiu.cvm.ncb.adpt at the bottom right in
Fig. 8 includes the adapter classes for the communication
frameworks. For black-box communication frameworks,
such as Skype, the adapter classes function as managed
resource wrappers. SmackAdapter is the managed resource
wrapper that reuses the open source Smack libraries, and
NCBNative is the original NCB as proposed by Zhang
et al. Each adapter class implements the common sensor,
effector and communication methods of the NCBBridge
interface. The NCBBridge is an amalgamation of the
functional and control ports defined by the ComObject
interface of the edu.fiu.cvm.ncb.cs package and the
ACManagement interface of the edu.cvm.ncb.tpm package.
The OrchestrationManager, shown at top center of
Fig. 8, coordinates the use of the shared resources by
autonomic (TPM) and non-autonomic (CSM) components.
Additionally, the use of the knowledge source by the two
components (specifically the limits on the access to the
MappingTable as a reader-writer lock pattern) adds to the
safeness. CSM uses the MappingTable (getMapTable
method of the KSInterface, at the top left of Fig. 8) as readonly via indirection through the OAM, allowing the OAM
to monitor and queue when necessary the access to the
shared resource. Tthe TPM is responsible for updating the
table using locks when writing to the table. The PolicyEvalManager, below the OrchestrationManager in Fig. 8, is
the high-level policy decision point. Implementations of
the algorithms described in Sect. 4.2 are utilized in the
PolicyEvalManager to produce a candidate communication
framework.
5.3 Implementation
The architecture and designs for the autonomic NCB
described in the previous sections have been implemented. A
subset of the API2 for the autonomic NCB is presented in
Table 1 representing the interface available to the upper
layers of the CVM. The login method returns an object
(UserObject) containing profile information such as user
roles, saved schemas and contact lists. The profile information is reused by the upper layers of CVM including the
population of the displayed user interface. The createSession method creates a connection-to-session
object, providing a mapping to the high-level concept of a
connection to one or more communication framework sessions. The addParty method adds persons from the users
contact list to a previously created session. Streaming media
or non-streaming data are sent to members of a session by the
enableMedium method, while policies are introduced by
the applyPolicy method. Each method invocation is
added internally to a priority call queue and applied to a
specific connection object during the evaluation process to
produce a best-fit selection of communication framework.
Table 2 shows some of the static metrics from the
implementation which was collected using the Eclipse
Metrics 1.3.8 plugin. As discussed in Sect. 5.2, the autonomic NCB exploits the reusable autonomic manager of
King et al. [23] (referred to as ACSTF in Table 2). The
reusing of ACSTF meant NCB needed only 4 additional
classes to support self-configuration, the collection of
communication frameworks (CommFWResource) that
2
123
220
Method summary
void
void
void
createSession(String? sessionID)
This function creates a session with the specific session ID
void
destroySession(String? sessionID)
This function destroys the specified session ID
void
void
UserObject
void
logout(String? userName)
?Logs the user out
void
resetNCB()
Resets the ncb instance
VOid
applyPolicy(String? policy)
Add and apply specified policy to the NCB
NCB
ACSTF
Total
9461
1091
10,552
27
32
156
17
173
6 Evaluation
We have implemented the autonomic NCB as a demonstration of the feasibility of the approach and incorporated
the designs discussed in the previous sections. The
123
evaluation of the implementation was based on the following hypotheses (1) the autonomic NCB has a sufficiently small overhead over baseline communication
frameworks and (2) at a maximum, the selection algorithm
employed scales linearly. The implementation was evaluated with respect to its efficiency (compared to previous
versions of CVM) and the scalability of the selection
mechanism. The policy shown in Fig. 4 was used in all
experiments.
We used three implementations of the NCB during the
experimental runs, where each run was composed of ten
iterations of the specific scenario. Two implementations
were based on a single-framework NCB without self-configuring behavior: One implementation was configured to
only use the Skype version 5.10 communication framework
API, and the other was configured to only use the Smack
version 3.0.4 communication framework API. The third
implementation was the new autonomic NCB with Skype
5.10 API and Smack 3.0.4 API as the supporting communication frameworks. A common driver application was
used to simulate CVM-type requests for all experimental
sets.
All computers used during the experiments met the
following specifications: Pentium 4 3 GHz, 1 GB RAM,
web camera and microphone with 100 Mb Ethernet
Adapters. Windows XP SP3, Java 1.6.0_18 and Eclipse
Version 3.5.2 were installed on all computers. TPTP version 4.6 [13], a Java profiling tool, was the data gathering
tool used during the evaluation process.
221
140
120
100
80
without AC Framework
with AC Framework
60
40
20
0
2 way
3 way
4 way
123
222
40
35
AC NCB
Asterisk
Smack
140
Skype
Asterisk
Smack
Skype
100
25
Seconds
Seconds
AC NCB
120
30
20
15
80
60
10
40
20
0
2 way
3 way
4 way
5 way
2 ->3 way
3 -> 4 way
4 -> 5 way
(a)
(b)
100%
Fig. 11 Breakdown of
autonomic components versus
frameworks
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
2 way
4 way
5 way
Average %
AC Components
3.723
4.657
5.511
5.446
26.463
Frameworks
11.138
12.894
13.700
16.748
73.537
implementation in the N 1-way conferences. Asteriskonly was the framework candidate selected to be used by
the AC NCB based on the policies used in these scenarios.
The Smack-only and Skype-only were linear with respect
to the number of parties involved in the conversation as
these implementations incrementally added the parties.
The results were further analyzed to see what was the
impact of the autonomic components in the time analysis.
Figure 11 indicates the proportion of time dedicated to the
autonomic processes as compared to the communication
framework processes. This is on average 26 % of the
processing time consumed by autonomic processes. A
detailed inspection of the results showed the monitor
threads responsible for a significant portion of the consumed time. The current implementation of the monitor
threads poll at specified intervals. Optimized alternatives to
the naive polling implementation can further reduce the
time consumed by the autonomic components.
6.3 Analysis of candidate selection algorithm
We evaluated the technique for selecting the candidate
communication framework using the new autonomic NCB.
123
3 way
223
0.6
0.5
0.4
0
3
0.3
0.2
0.1
0
2
10
11
12
13
14
15
16
the sampling period can influence the application performance. In our evaluation process, Eclipse Test and Performance Tools Platform was used for monitoring and
profiling the implementation. This introduced additional
memory and computation overhead, which in turn introduced delays in the participants negotiation process. We
compensated for this overhead by reducing the sampling
period and focused the profiling and monitoring based on
the criteria of the specific experiment.
6.5 Future directions
The design of the broker layer presented in this paper is
specific to the user-centric communication, hence the
Network Communication Broker (NCB). Recent work
done on the CVM involves the transformation to a more
generic virtual machine for interpreting i-DSMLs, this
class of virtual machines are referred to as a DomainSpecific Virtual Machine (DSVM) [9]. The idea is to
separate the generic model of execution (GMoE) from the
domain-specific knowledge (DSK). Combining the GMoE
and the DSK produces a DSVM for the specific domain;
e.g., the CVM would be instantiated using the GMoE
and the domain-specific knowledge for user-centric
communications.
To date there has been work on transforming the upper
layers of the CVM into GMoE and DSK in order to easily
instantiate DSVMs for new domains. Alison et al. [4]
describe an approach that instantiates the synthesis engine
(SE) for energy management in smart microgrids from the
GMoE and the DSK to produce the Microgrid Virtual
Machine (MGridVM). Morris et al. describe an approach
that instantiates the middleware from the GMoE and DSK
for the user-centric communication middleware (UCM)
[30].
123
224
7 Related work
The diversity of media capacity, service provider and user
preference and the increasing demand for collaborative
work requires multimedia middleware to provide seamless
integration of various system components. Proposals such
as the Next-Generation Network (NGN) as envisioned by
the International Telecommunication Union Standardization Sector (ITU-T) [18] aims to provide the infrastructure
necessary for meeting these challenges. The challenges of
such middleware include: the independence of specific
communication systems, the interoperability between different devices and media, the support for QoS-aware
adaptation during runtime and the common and easy
interface to configure, navigate and monitor the
environment.
7.1 Communication APIs
Many of the APIs that support communication over the
Internet use the H.323 [19], SIP [39] and RTP [41] protocols. Other protocols have since been created based on
the aforementioned protocols such as JAIN SIP [35] and
Java Media Framework (JMF) [36], among others. Stiller
et al. [47] developed the Da CaPo?? system, a framework
embracing both low-level communication subsystems and
high-level APIs to support distributed multimedia applications based on a formal description of protocol graphs to
configure, validate and execute different media flows at
each participating peer system. The OSA/Parlay by Open
API Solutions [34] is a suite of open, standard, APIs
designed to facilitate easier access to core network capabilities from outside of the network. The OSA/Paraly APIs
support the creation of telecommunications services by
developers. The communication API we provide in our
implementation of the NCB is at a higher level of
abstraction than the APIs previously mentioned. The NCB
123
API to the User-Centric Middleware (UCM) was previously described in Sect. 5.3.
7.2 User-centric communication services
There has been an upsurge in research in the area of usercentric communication service creation and use. Lasserre
and Kan [24] reported on the fragmented customer and
employee experience when people try to contact each other
using the myriad of available technologies. As a result of
the study Alcatel developed an enterprise communication
architecture with the following key principles: user-centricfocusing on the benefits to the user and offering
operating simplicity to mask the complexity of the underlying technology; opennessis the basis for choice, which
extends from the users choice of device, to product
components, to the deployment model; and unifiedunifying voice and data, fixed and wireless, and applications,
enables services to be delivered seamlessly across different
media.
More recently there has been a major initiative to mix
traditional telecommunication services and web capabilities to provide so-called web ? telco mash-ups. Sienel et al.
[42] describes the Open Platform for User-centric service
Creation and Execution (OPUCE) service architecture that
supports the interoperation of telecommunications (telco)
and information technology (IT) applications. The OPUCE
platform integrates the following: a service creation environment, a service life-cycle manager and a service execution environment (SEE). The SEE seamlessly integrates
the orchestration of services running on top of several
technologies, including Java 2 Enterprise Edition (J2EE),
Java API for integrated networks service logic execution
environment (JAIN SLEE), SIP servlets [39], .NET or
client-side widgets. The approach presented in this paper is
more lightweight since we do not employ a server during
the realization of the communication applications, instead,
we indirectly use the servers provided by the communication frameworks.
7.3 Autonomic communication services
There is a plethora of research in the area of autonomic
communications. Dobson et al. [12] provide a comprehensive survey of the current state of autonomic communications research and identify significant emerging trends
and techniques. Most of the research in the autonomic
communication area focuses on applying autonomic capabilities to the network infrastructure including self-management of the topology, load, task, physical and logical
characteristics of the networks. In our work we instead
focus on the layer of the middleware that interacts with the
network infrastructure, more specifically the communication frameworks that interact with the network layer.
Gu et al. [15] describes the Architecture of Network
Autonomy (ANA) system, where high-level abstractions
are achieved through the interface of a policy-based management to provide autonomic multimedia communication
with minimum human administration. We use a conceptual
approach similar to Gu et al. when applying policies to the
self-management of the communication frameworks in
NCB. Sousa et al. [46] described a task-aware system
where users explicitly specified goals and quality attributes
through a set of user interfaces. Based on that, the underlying self-managing system dynamically queried the task to
trigger reconfiguration if needed. Our policy application
mechanism combines the approaches used by Gu et al. [15]
and Sousa et al. [46]. That is, the user defines the high-level
policies based on the communication tasks to be performed
at runtime and the gap between business (high-level)
policies and their technical counterparts are bridged
through the collaboration between the autonomic managers
and the policy refinement system.
7.4 Dynamic adaptation
Rasche et al. [38] presents a framework for dynamic component configuration and reconfiguration based on Microsoft.NET. Their work is similar to ours in that an XML-based
configuration description language is designed and used to
instantiate the component, or generate reconfiguration
actions such as the addition, removal or modification of a
component, if necessary. However, their reconfiguration
algorithm, once chosen, remains fixed at runtime while our
design is inherently more flexible since reconfiguration
algorithms could be wrapped as internal policies. Lewis et al.
[26] present an approach for the management of user-centric
adaptive services. This work shares some similar traits with
our autonomic framework in its adaptive service composition and policy-based management of adaptive system
behavior. However, a centralized system is used to compose
the services needed. Our approach is based on a peer-to-peer
model, with the flexibility to change this model.
Another approach for dynamic reconfiguration of distributed multimedia middleware and applications is proposed in [37], where models are used at runtime as a means
to structure the reflection mechanisms used for adaptation.
Similarly to our work, Provensi et al. [37] proposes the use
of an autonomic loop and policies for the monitoring of
applications and their environment and for directing the
reflection mechanisms. In our work, however, we emphasize the user-centric aspect and provide a comprehensive
solution for policy definition and interpretation, which are
not considered in [37].
225
123
226
8 Conclusion
In this paper, we presented a new design of the NCB that
supports the use of multiple communication frameworks
and an approach for dynamic adaptation of communication
services to reduce the complexity of reusing multiple
communication frameworks. To support this dynamic
adaptation, we defined user-centric communication policies
and outlined the technique for their interpretation, which
was one of the several enhancements made with respect to
previous work. Details of the design of our autonomic
framework were discussed and evaluation of the autonomic
framework presented.
We plan in the future to further extend the NCB to
include self-healing properties to provide recovery options
for a collaborative communication session. We will also be
investigating extending NCB to other domains through the
separation of domain knowledge and development of a
generic model of execution. Additionally, we will be
investigating the use of models to further improve the
performance of the evaluation and generation of new
configurations at runtime.
References
1. Agrawal D, Calo S, Lee KW, Lobo J, Verma D (2008) Policy
technologies for self-managing systems. IBM Press, Indianapolis
2. Allen AA, Leslie S, Wu Y, Clarke PJ, Tirado R (2008) Selfconfiguring user-centric communication services. In: ICONS
2008. IEEE, pp 253259
3. Allen AA, Wu Y, Clarke PJ, King TM, Deng Y (2009) An
autonomic framework for user-centric communication services.
In: CASCON 2009. ACM, New York pp 203215
4. Allison M (2014) A generic model of execution for synthesizing
domain-specific models. Ph.D. thesis, Florida International
University, FIU Electronic Theses and Dissertations (2014).
http://digitalcommons.fiu.edu/etd/1563
5. Allison M, Morris KA, Costa FM, Clarke PJ (2014) Synthesizing
interpreted domain-specific models to manage smart microgrids.
J Syst Softw 96:172193
6. Boettner P, Gupta M, Wu Y, Allen AA (2009) Towards policy
driven self-configuration of user-centric communication. In:
ACM-SE 47. ACM, New York, pp 35:135:6
7. Charalambides M, Flegkas P, Pavlou G, Rubio-Loyola J, Bandara
A, Lupu E, Russo A, Sloman M, Dulay N (2006) Dynamic policy
analysis and conflict resolution for diffserv quality of service
management. In: Network Operations and Management Symposium, 2006. NOMS 2006. 10th IEEE/IFIP, pp 294304 (2006).
doi:10.1109/NOMS.2006.1687560
8. Chung KY (2014) Recent trends on convergence and ubiquitous
computing. Pers Ubiquitous Comput 18(6):12911293. doi:10.
1007/s00779-013-0743-2
9. Clarke PJ, Wu Y, Allen AA, Hernandez F, Allison M, France R
(2012) Towards dynamic semantics for synthesizing domainspecific models. In: Mernik M (ed) Formal and practical aspects
of domain-specific languages: recent developments., Chap. 9. IGI
Global, pp 242269
123
227
43. Skype Limited: Skype (2010). http://www.skype.com/intl/en-us/
home
44. Sloman M (1994) Policy driven management for distributed
systems. J Netw Syst Manag 2:333360
45. Sousa GCM, Costa FM, Clarke PJ, Allen AA (2012) Modeldriven development of DSML execution engines. In: Proceedings
of the 7th Workshop on Models@Run.Time, MRT 12, pp 1015.
ACM, New York (2012). doi:10.1145/2422518.2422521
46. Sousa J, Poladian V, Garlan D, Schmerl B, Shaw M (2006) Taskbased adaptation for ubiquitous computing. IEEE Trans Syst Man
Cybern Part C Appl Rev 36(3):328340. doi:10.1109/TSMCC.
2006.871588
47. Stiller B, Class C, Waldvogel M, Caronni G, Bauer D (1999) A
flexible middleware for multimedia communication: design,
implementation, and experience. IEEE J Sel Areas Commun
17(9):15801598. doi:10.1109/49.790483
48. van der Meer Stephan Steglich SAS (2001) User-centric communications. In: IEEE international conference on telecommunications, pp 425444. Special Sessions
49. Wang H, Morlang A, Katz R (2001) A personal communication
service creation model for internet-based unified communication
systems. In: Proceedings of IEEE international conference on
communications, pp 13251329. doi:10.1109/ICC.2001.936919
50. Weiser M, Gold R, Brown JS (1999) The origins of ubiquitous
computing research at parc in the late 1980s. IBM Syst J
38(4):693696. doi:10.1147/sj.384.0693
51. Wu Y, Allen AA, Hernandez F, France R, Clarke PJ (2012) A
domain-specific modeling approach to realizing user-centric
communication. Softw Pract Exp 42(3):357390
52. Zhang C, Sadjadi M, Sun W, Rangaswami R, Deng Y (2006) A
user-centric network communication broker for multimedia collaborative computing. In: International conference on collaborative computing: networking, applications and worksharing, 2006.
CollaborateCom 2006, pp 15 (2006)
123