  Contract automata allow to formally define the behaviour of service contracts
in terms of service offers and requests, some of which are moreover optional
and some of which are necessary. A composition of contracts is said to be in
agreement if all service requests are matched by corresponding offers. Whenever
a composition of contracts is not in agreement, it can be refined to reach an
agreement using the orchestration synthesis algorithm. This algorithm is a
variant of the synthesis algorithm used in supervisory control theory and it is
based on the fact that optional transitions are controllable, whereas necessary
transitions are at most semi-controllable and cannot always be controlled. In
fact, the resulting orchestration is such that as much of the behaviour in
agreement is maintained. In this paper, we discuss recent developments of the
orchestration synthesis algorithm for contract automata. Notably, we present a
refined notion of semi-controllability and compare it with the original notion
by means of examples. We then discuss the current limits of the orchestration
synthesis algorithm and identify a number of research challenges together with
a research roadmap.
