[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [soa-rm-ra] service, capability, and concise description
Continuing the discussion ... :) On May 21, 2008, at 2:17 PM, Ken Laskey wrote: > Following today's animated discussions, I am making an attempt at > words that pull together a number of the pieces into a clear, > concise package. I am not advocating exactly where it goes but > submit it for your consideration and continued discussion. > > Ken > > ++++++ > > As defined in SOA-RM, > > A service is a mechanism to enable access to one or more > capabilities, where the access is provided using a prescribed > interface and is exercised consistent with constraints and policies > as specified by the service description. I think that from a methodological perspective, we may well wish to state that a service enables access to a single capability. Of course the realization of that capability is another matter. The reason for this is that it provides some guidance as to what constitutes a service. It is also justified from the perspective of loose coupling -- if one service offers more than one capability, then that sets up a unnecessary dependency between the capabilities being offered (they must be maintained together, upgraded together, described together etc. etc.) > > As shown in Figure 20, the service description provides information > on: > - what a service does (its functionality and the resulting real > world effects), > - how to reach the service (protocols and the endpoint of service > reachability), > - how to communicate with the service (the information and behavior > models that make up the service interface), > - what are the conditions of use (service policies and contracts), and > - what measurements of performance are available and how can these > be accessed (service metrics). I kind of see this. What occurred to me however, was that we might be better to focus on the purposes of a description: -- Supporting the decision whether or not to use/offer a service -- Supporting the task of using a service -- Supporting the engineering of realizing a service -- Supporting the management of services (note: not all management of services is done by 'management', some of it is done by customers as a way of managing their requirements) Then you can show how these uses are met by different aspects of the description. > > The capability the service is accessing may be a single resource or > a composite of multiple resources and/or other services, and the > specific service exposes some subset (possibly all) of the > capability's functions and corresponding real world effects. The > automated teller machine (ATM) example in SOA-RM discusses a service > exposing only certain aspects of an underlying capability. I think that talking about underlying capabilities is kind of a slippery slope. We have always understood that the realization of services was private. By implication, if a service exposes less than what could be exposed, that is a private choice of the provider of the service; and should remain private. The simple story of one service = one capability leaves open the choice of implementation (e.g., in terms of a larger more powerful capability). > > While the capability may be accessed by other means (or by other > services), the description of the capability is important only to > the extent that it is reflected in the service description. In > particular, it is not important what functionality or real world > effects can be realized from the underlying capability if those > effects are not accessible through this service. Similarly, > policies related to the capability but not involved with the > functionality being accessed by the service are not relevant. There is something of a gray area in here (notwithstanding comments above). I can see that different stakeholders will have different understanding of the capabilities on offer. A management policy, for example, may need a different understanding than a security policy. > > In designing a service, it is important to consider how > straightforward it is to provide a service description. Note the > description will have multiple users, including: > - developers who need to find functionality, decide whether the > conditions for use are acceptable, and code to service reachability > and the service interface; > - consumers who also need to consider functionality and conditions > or use, but are interested to know about service availability > (presence) and performance (metrics), and must also consider whether > they can provide information needed by the service interface; > - managers who are interested in service presence and other metrics > for service performance and use, and possibly service functionality > if they are engaged in service protfolio management. Agreed. > > The service description provides a common, consistent collection of > information for the multiple users for discovery, evaluation, and > use. Thus, if it is not possible to generate a clear, concise > description of a service, it is reasonable to ask whether the > combination of actions, effects, and policies, and other descriptive > elements would best be served by separate services that are more > focused and more straightforward to understand and use. The > aggregate of the information in the service description makes > effective use of the service possible. Well, also agreed. I think that the loose coupling principle applies here: the coupling between different elements of a service should not be stronger than those implied by the semantics of the service elements themselves. > > [Note, the last sentence could have a tie-in with something > providing the overall picture attempted by Figure 26.] > > ------------------------------------------------------------------------------------------ > Ken Laskey > MITRE Corporation, M/S H305 phone: 703-983-7934 > 7515 Colshire Drive fax: 703-983-1379 > McLean VA 22102-7508 >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]