A possible Service Engineering (SE) approach to build service-based systems is to compose together distributed services by considering a global specification of their interactions, namely a choreography. BPMN2 (Business Process Modeling Notation v2.0) provides a dedicated notation, called Choreography Diagrams, to define the global expected behavior between interacting participants. An interesting problem worth considering concerns choreography realizability enforcement, while ensuring a resilient evolution upon facing changes. The strategy that we adopt to solve this problem is twofold: given a BPMN2 choreography specification and a set of existing services discovered as possible participants, (i)
their interaction protocol to the choreography roles and (ii)
their (adapted) interaction so to fulfill the global collaboration prescribed by the choreography. This paper proposes a synthesis approach able to automatically generate, out of a BPMN2 choreography specification, the needed adaptation and coordination logic, and distribute it between the participants so to enforce the choreography. Our approach supports choreography evolution through adaptation to possible changes in the discovered services, while still keeping the prescribed coordination.