ponents to check compatibility against system prop-
erties. In (Barringer et al., 2007) it is described
a mechanisms for combining programs from sepa-
rate components and an operational semantics for
programmed evolvable systems. In (Goldsby et al.,
2007) a run-time monitoring and verification tech-
nique is proposed, which can check whether dynami-
cally adaptive software satisfies its requirements. In
(Filieri et al., 2012) KAMI is proposed to support
fault detection. It shares similar goals with Cassan-
dra, even if we focus on functional failures and them
on non functional properties. The work in (Ghezzi
et al., 2012) shares with Cassandra monitor functional
properties in dynamically evolving systems for infer-
ring a run-time model of it. without failure prediction.
7 CONCLUSIONS AND FUTURE
WORK
This paper has proposed a concrete architecture to re-
alize dynamic WS compositions, capable of support-
ing run-time failure prediction with the Cassandra ap-
proach. This approach captures the current state of
a service-based system through monitoring its exe-
cution to check potential protocol mismatches in the
near future. The proposed architecture, based on an
ESB and an Integration Framework, allows services
to be dynamically composed, exchanging messages
following choreography rules. The whole system can
be monitored at run-time, without modifying the par-
ticipating services. Our demo, although tested on a
light scenario, demonstrates a concrete implementa-
tion to make use of the Cassandra algorithm. We
are confident that the approach is quite promising,
even if technical and theoretical problems must be
still solved.
As future work, we want to investigate a tech-
nique to automatically derive role-bundle and static
routes from a choreography specification. Moreover,
we want to use our architecture with monitoring ca-
pabilities to automatic repair at run-time unrealiz-
able choreographies. As we allow the a-priori inte-
gration of services, we want to optimistically realize
choreographies, even if they may be not-realizable.
Our idea is to provide role-bundles with automatic
choreography-repair techniques, activated if possible
interoperability errors are predicted.
ACKNOWLEDGEMENTS
This work has been partially supported by:
• ”Open City Platform” - funded by MIUR (SCN
00467);
• ”CHOReOS” - EU FP7 Project (IP 257178).
REFERENCES
Autili, M., Inverardi, P., and Tivoli, M. (2015). Automated
synthesis of service choreographies. Software, IEEE,
32(1):50–57.
Baresi, L., Nitto, E. D., and Ghezzi, C. (2006). Towards
open-world software: Issue and challenges. In SEW-
30 2006, 25-28 April 2006, Columbia, MD, USA,
pages 249–252.
Barringer, H., Gabbay, D. M., and Rydeheard, D. E. (2007).
From runtime verification to evolvable systems. In
RV, pages 97–110.
Basu, S., Bultan, T., and Ouederni, M. (2012). Deciding
choreography realizability. In ACM SIGPLAN No-
tices, volume 47, pages 191–202. ACM.
Bourne, S., Szabo, C., and Sheng, Q. Z. (2012). Ensuring
well-formed conversations between control and oper-
ational behaviors of web services. Service-Oriented
Computing, pages 507–515.
Chatley, R., Eisenbach, S., Kramer, J., Magee, J., and Uchi-
tel, S. (2004). Predictable dynamic plugin systems. In
FASE, pages 129–143.
de Alfaro, L. and Henzinger, T. A. (2001). Interface au-
tomata. In ESEC/SIGSOFT FSE, pages 109–120.
De Angelis, F., Di Berardini, M. R., Muccini, H., and Polini,
A. (2014). Cassandra: An online failure prediction
strategy for dynamically evolving systems. In Formal
Methods and Software Engineering, pages 107–122.
Springer.
De Angelis, F., Fan
`
ı, D., and Polini, A. (2013). Partes: A
test generation strategy for choreography participants.
In Automation of Software Test (AST), 2013 8th Inter-
national Workshop on, pages 26–32. IEEE.
Elia, I. A., Laranjeiro, N., and Vieira, M. (2014). Itws:
An extensible tool for interoperability testing of web
services. In Web Services (ICWS), 2014 IEEE Inter-
national Conference on, pages 409–416. IEEE.
Filieri, A., Ghezzi, C., and Tamburrelli, G. (2012). A for-
mal approach to adaptive software: continuous assur-
ance of non-functional requirements. Formal Aspects
of Computing, 24:163–186.
Ghezzi, C., Mocci, A., and Sangiorgio, M. (2012). Runtime
monitoring of component changes with spy@runtime.
In ICSE 2012, pages 1403 –1406.
Goldsby, H., Cheng, B. H. C., and Zhang, J. (2007).
Amoeba-rt: Run-time verification of adaptive soft-
ware. In MoDELS Workshops, pages 212–224.
Hanumantharayappa, A. K. (2014). Enabling horizontal
scalability in an open source enterprise services bus.
Morin, B., Barais, O., J
´
ez
´
equel, J.-M., Fleurey, F., and Sol-
berg, A. (2009). Models@ run.time to support dy-
namic adaptation. IEEE Computer, 42(10):44–51.
AFlexibleArchitecturetoMonitorDynamicWebServicesComposition
71