Choreography, in a Web services context, refers to specifications for how messages should flow among diverse, interconnected components and applications to ensure optimum interoperability. The term is borrowed from the dance world, in which choreography directs the movement and interactions of dancers.

Web services choreography can be categorized as abstract, portable or concrete:

  • In abstract choreography, exchanged messages are defined only according to the data type and transmission sequence.
  • Portable choreography defines the data type, transmission sequence, structure, control methods and technical parameters.
  • Concrete choreography is similar to portable choreography but includes, in addition, the source and destination URLs as well as security information such as digital certificates.