I have been studying the WS-Coordination specification for some time now as I am supposed to implement it in the near future. In sooth, it is a trivial specification. But there is one thing that I am struggling to understand. To be honest, I see this as an erratum.
This diagram on page 11 of the specification shows the behavior of WS-Coordination. In other words, this really is the big picture.
I am totally OK with steps 1 through 3. But according to the explanation on page 10, step 4 and 5 is all about building links between Yb/App2 and Ya/Yb respectively. On page 10 it says,
4. App2 determines the coordination protocols supported by the coordination type Q and then Registers for a coordination protocol Y at CoordinatorB, exchanging Endpoint References for App2 and the protocol service Yb. This forms a logical connection between these Endpoint References that the protocol Y can use.
5. This registration causes CoordinatorB to decide to immediately forward the registration onto CoordinatorA's Registration service RSa, exchanging Endpoint References for Yb and the protocol service Ya. This forms a logical connection between these Endpoint References that the protocol Y can use.
So at the end of the day, Ya talks to Yb and that in turn talks to App2. If that is the case, then "Ya" on the arrow for step 4 should actually be "Yb".
After observing this, I sent a mail to the firstname.lastname@example.org list pointing out this. A few days back I got a reply from Ian Robinson, the WS-Tx co-chair, explaining that the figure is simply an illustration of one possible implementation in which step 4 calls step 5 and returns its result. So that means subsequent protocol level communication happens between Ya and App2?. I am a bit confused!.