More About Visibility

The 'interaction' phase and 'real-world result' phase have well-established correlates in conventional, pre-SOA web service architectures, however the visibility phase ( service discovery ) is unique to SOA and to various intelligent software agent paradigms that have been kicking around for the last 15 years.

The subphases of visibility are awareness, willingness and reachability, which roughly correspond to:

  • Locating the service
  • Getting its attention and initiating interaction about the policies and preconditions for the service
  • Determining the feasibility of achieving the desired result.

The outcome of the visibility steps is an agreement on the service to be provided, what is called a 'service contract'.

The following diagrams provide a very simplified picture of visibility, almost the equivalent of, say, someone trying to find a plumber to install a new component in the kitchen.

Step 1 - Awareness - Locating the service

Diagram SOA Awareness

Step 2 - Willingness - Initiating a Dialog with the Service Provider

A key ingredient in the Willingness subphase is getting the provider's attention and getting the ball rolling. The document states: "the extent of a service participant’s willingness to engage in service interactions may be the subject of policies. Those policies may be documented in the service description".

Diagram SOA Willingness

Step 3 - Reachability

The step to determine reachability of the result can be quite complex and may even be open-ended to some extent. Many conflicting policies and pragmatic constraints might be introduced in the deliberation between the two agents.

Diagram SOA Reachability

The next balloon for the Service Consumer might well be "It's a deal" or words to that effect. Clearly some sort of agreement between the consumer and provider is concluded at the end of the visibility phase.

There is a bit of confusion in the definition of" reachability" in the document. It states: " ... if the service is not reachable, for example if there is not a communication path between the consumer and provider, then, effectively, the service is not visible to the consumer".

Clearly, if the service were not reachable in the network sense, there could be no interaction about the reachability of the result. There might be issues about network capacity, for example if a comsumer was trying to access a video file that would take 20 hours to download. What may ( or may not ) be reachable at this point is the "real-world result" according to the needs and policies of the consumer and provider.