2 December 2009
San Micheletto - Via S. Micheletto 3 (Classroom 6 )
In service oriented computing, different instances of the same service may be available at a particular moment. Usually, a particular client is aimed at interacting with just one specific instance at a time. Consequently, clients need to be able to identify service instances. Correlation sets are a programming primitive that allows instance identification in orchestration languages. A correlation set is a set of properties (i.e., values carried on by messages) that are used to associate each received message with ``a unique'' process instance: every time a service receives a message, it inspects its content and determines a unique service instance that should handle the received message. If this is not possible (no instance or several instances are candidate), then the service raises an exception. In this talk we will present a formal model for correlation sets that accounts also for correlation exceptions. We also characterise a class of correlation exceptions, called avoidable, that can be prevented during service design. We also propose a type system that guarantees that orchestrators are free from avoidable exceptions.