The easiest way to link orchestration with messaging endpoints is to create logical ports in orchestrations and bind them to physical ports at runtime. A developer using this technique will know for sure that an orchestration will exchange messages with the appropriate ports. However, this mechanism of orchestration communication is more point-to-point oriented than event driven. What if relevant messages for an orchestration could arrive via multiple receive ports? Or how about trying to anticipate all the possible parties interested in a message that your orchestration is sending out?
The tight coupling produced by binding orchestration ports to physical ports is not the most service-oriented way to design orchestration communication. Instead, MessageBox
direct binding is the cleanest way to sever the one-to-one relationship between the messaging and orchestration architectural layers. The way it works is that the "activating" receive shape that instantiates...