Ken,
I agree with your thoughts that policies and contracts
are referenced from the Service Description and can be
fully defined elsewhere.� Many people in the industry
tend to think of the Service Description as a
contract.� The reasoning behind this is because it can
be said the consumer has to abide by the Service
Description and therefore it is a contract.� At the
implementation level, people often equate a WSDL to a
contract.� I see this view of a SOA contract as a
half-truth.� As stated in one of Michael�s previous
e-mails, WSDL does not capture the business meaning of
a service. The meaning of contract is rooted more in
the social structure than anything at the
implementation level.� In business a contract is a
legally binding agreement between two or more parties.
�It may or may not be personalized, it may be human
enforceable, it may be electronically enforceable.�
For electronically enforceable policies and contracts,
the computing mechanisms that enforce a policy or a
contract can be the same. �
One person's stated policy can be another person's
enforced contract.� Not abiding by stated policies can
have real world effects just like not abiding by a
contract.� Loss of a job for not following company
policy for example.� It is difficult for me to see a
clear distinction between a policy and a contract
other than what is stated in the OASIS SOA RM.� A
contract and a policy have a clear distinction at the
level of the social structure.� At the implementation
level, just tell me the rules that need to be
enforced, whether it is a policy or a contract doesn't
matter to me.
The Service Description encompasses more about the
social structure than the contracts so I do not put
contracts at the same level as Service Description.�
The contract is a subset of Service Description if the
contract is part of the Service Description.�
Discussions about contracts and policies and Service
Descriptions will tend to swirl around the following
three questions:� What is the distinction at the
business level between a policy and a contact?� What
is the distinction at the implementation level between
a policy and a contract?� Where do the various forms
of a contract fit in relation to the Service
Description? �
Danny
Michael,
I started to respond to this hours ago, then printed
out your paper, �
and finally make it past numerous distractions
(including a �
unexpected 3 inches of snow to shovel) to finally
collect my thoughts.
On your first point, I think of the service
description as being the �
executive summary and table of contents.� It gives
you the critical �
overview and tells you where to find more details.�
So while �
Interaction Policies & Contracts in the description
may explicitly �
lay out such things, these are more likely to be
fully defined �
elsewhere and referenced from the description.� Of
course, one �
benefit of this is that the policy, for example,
becomes reusable.
As for the personal nature of policy agreements, if
it is a one-time �
agreement,� I see it residing in the execution
context (whose �
concrete manifestation is still to be discussed).�
If the agreement �
is intended to be reused, it should be catalogued
somewhere.� The �
idea of a general purpose somewhere also needs to be
tackled, perhaps �
(definitely?) as part of the RA.
I then read your paper and if you went through the
TC emails, you �
could find discussions touching on but never
resolving many of these �
issues.� So here are some general questions and some
specifics ones �
relating to your paper.
- What is a service component?� If we have a
composite service, i.e. �
one that shows a single interface but is actually a
combination of �
other services, do you consider the constituent
services to be �
service components?� In the RM, we distinguish
between the capability �
and the service that provides access to the
capability.� Is an �
implementation of the capability also a service
component?� �
Personally, I think I'd say yes to both where
changes to either can �
affect the client experience.
- Are "service functions" the same as RM actions?
- One of my favorites: what belongs in a SLA?� Some
views have it so �
complete that it basically becomes the service
description, i.e. it �
describes functionality, constraints, interface
details, and the �
birthdays of anyone who ever used it.� Personally, I
take a more �
minimalist approach and think of SLA as being
strictly a set of well �
defined metrics against which compliance can be
measured.� I agree �
with with your line that "a SOA service ... is
invoked ... when the �
client is fully aware of the service behavior and
conditions."� (We �
could quibble over "fully".)� To accomplish this, I
rely on an �
adequate service description, of which a
metrics-laden SLA is a �
part.� However, another part is an indication of how
one can obtain �
metrics collected against the service.� It is then
up to the client �
to compare the collected metrics with the SLA and
determine fitness �
for use.� For example, if I have a service that says
I will relieve �
80% of world hunger and the metrics show me only
relieving 70%, does �
my service provide value?
Enough for now.
Ken
On Feb 25, 2007, at 10:00 AM,
Hi Ken,
�I have two notes to the update (actually, to the
doc as it is with �
the update):
1) There is an entity in the Service Description
diagram named �
"Interaction Policies & Contracts". I think that
Contract belongs �
to another area than service description because
it is �
'personalized' based on consumer/provider
agreement. Yes, �
logically, a Contract is a special type of
description but it would �
be more comprehensive if we put it into
Interacting with Services �
Model� section.
2) You have mentioned <A discussion of how version
designation/�
value should be impacted by change of version of
any of its �
components (or any descriptions?) still needs to
be discussed.> To �
me, a version of the service is one of very
important �
characteristics of the service description (and,
respectively, of �
the service contract). I would propose placing
version as an entity �
in the Service Description diagram either under
Identity or at the �
level of Service Description entity because
version affects Service �
Reachability, Service Functionality, Interaction
Policies, and �
Service Interface entities. I have published a few
thoughts about �
SOA service versioning in SOA-WebServices Journal
con.com/read/250503.htm ).
- Michael
------------------------------------------------------------------------
------------------
Ken Laskey
MITRE Corporation, M/S H305 � � phone:� 703-983-7934
7515 Colshire Drive� � � � � � � � � � � � fax:� � �
� 703-983-1379
McLean VA 22102-7508
____________________________________________________________________________________
8:00? 8:25? 8:40? Find a flick in no time�
with the Yahoo! Search movie showtime shortcut.