A CoordinationLanguage is a language defined specifically to allow two or more parties (components) to communicate for the purpose of coordinating operations to accomplish some shared goal. Cf. KindsOfCoordination. (4M)
Is a CoordinationLanguage necessarily an ApplicationProtocol? Is an ApplicationProtocol necessarily a CoordinationLanguage? Answer; no to the former, yes to the latter. TCP is a coordination language, with "methods" (SYN, FIN, RST, etc..), it just coordinates a lower layer task; a point-to-point full duplex bytestream connection. (4N)
How would one use REST in the style of a CoordinationLanguage? REST, as embodied in HTTP, is a CoordinationLanguage, right? (4O)
JB: While there may be coordination languages that do not depend on manipulating external resources in a shared space, many (including the prototypical one, Linda) do. It is in this sense that REST is a coordination language; the space of resources available through URI is a shared, external space and objects of interest in the problem domain are explicitly represented in this space and interacted with via the coordination primitives of HTTP: GET, PUT, POST, etc. (4P)
MB: Note that REST is an architectural style. It's REST's uniform interface which comprises the (extensible) coordination language. (4Q)
CoordinationLanguage examples; (4R)
- Linda (4S)
- Xerox's CLF (STITCH) (4T)
- etc.. see Google search results (4U)
See also StateMachineAsHypertext. (4V)