Distributed Workflows: The OpenKnowledge Experience

Software systems are becoming ever more complex, and one source of complexity lies in integrating heterogeneous subsystems. Service Oriented Architectures are part of the answer: they decouple the components of the system. However normally SOA is used from a centralised perspective: a single process invokes remote services, unaware of being part of a workflow. We claim that the centralised, or orchestration-based, approach cannot scale well with increasing complexity and heterogeneity of the components, and we propose an alternative distributed, or choreography-based, approach, that forces developers to think in terms of actors, roles and interactions. We first present the OpenKnowledge framework, designed according to choreography-based principles and then show how a complex, distributed model for managing the triple assessment of patients suspected with breast cancer can be easily implemented using this framework.