I think we should write a blog post sketching an example how this could be done in a layered approach using messages and/or annotations, providing the full set of features that you would like to have but without adding complexity to Blink itself (to the Blink core). I think some of the existing protocols have missed out on making the separation and are therefore less generic than what is ideal.
We have not had a service definition focus ourselves but I agree that it makes perfect sense to use Blink to do services and SOA. We as in Pantor will likely do work in that area too, when we have a need to, but other people may be in a better position to propose a standardized service definition language/layer.
I have been spending time prototyping a new logical session layer for trading applications called XMIT (and a concept paper on XMIT is one of the inputs to the FPL HPWG session layer subgroup). XMIT is defined in terms of Blink but is independent and can be used without Blink. It would be interesting to have a discussion on the relationship between Blink, a service definition layer, and one or more such session layers (that takes care of idempotence, recovery, logical sessions etc). XMIT defines asynchronous flows, allowing other models such as synchronous RPC to be an application layer concept.
Anders