Dear Steve
 
Thanks for your comments. I take your point about the importance of having a basis for defining the semantics of a service, and ensuring that you are not trying to plug things together that do make sense at a business level.
 
However, I think it is possible to make a distinction between:
 
A) Business Interoperability: Does plugging x and y together make sense from a business semantics/business policy point of view?
 
B) Technical interoperability: Can x and y work successfully together under all message sequencing possibilities to meet their shared business objective?
 
I readily agree that a completely dynamic approach cannot address A. Trying to make it do so will lead to the situations like your anomalous join between "first name" and "street name". Some kind of shared global view of the semantics and "terms and conditions" of a service is needed to ensure that this does not happen.
 
However, I think that a dynamic approach has potential value in the context of B, as it means that A can focus on those aspects of the interaction that have business significance without having to address the full range of behavioural possibilities, which may be very large.
 
If it is possible and sensible to make this distinction, then it may be that different solution approaches can be applied to A and B. If you take the case of a human interacting with a service, saying buying insurance over the web, I think you can see this as follows:
 
-    A is handled informally by the user reading the rubric on the web page to determine whether or not the service meets his or her needs. This may include examination of the "terms and conditions" of the service, for instance: under what circumstances it is possible to cancel and get a refund.
 
-    B is handled dynamically.  The service prompts the user on how to enter information to request the service. If the user revisits the site later and logs onto the service again, prompts show what it is currently possible to do (cancel the cover and get a refund, cancel with penalty, amend details of coverage, etc).
 
All sorts of interaction possibilities may be allowed in B that are not covered in any explicit way by A.
 
The questions I have are:
 
-    Is this distinction generally possible and useful in defining services?
 
-    If so, is a dynamic approach to B always possible and useful, or only when the service client is a human?
 
Regards
Ashley
 
 
----- Original Message -----
Sent: Sunday, October 02, 2005 8:30 PM
Subject: [service-orientated-architecture] Global behavioral models and why they are useful

Dear Jan and Ashley,

A "global behavioral contract" is not a silver bullet but it does have
wide spread applicability. I think that the arguments that Ashley makes
miss some important areas in enterprise computing. It is fair to say
that a dynamic solution in which we can construct relationships on the
fly is useful but it is not what many enterprise users of technology do
or what they need to do. So to focus on this alone without looking
deeper is perhaps missing where the revenue opportunities really are.

I build many large scale distributed systems, mainly for investment
banks. Amongst the problems they have in a world of increasing
componetization (through SOA-like principles) is governance and
interoperability. The systems they have are not and do not need to be
dynamic to the extent of forging new links at the drop of hat. Rather
they need to be able to work very quickly. The move towards SOA is
largely to do with flexibility of implementation of services. They can
change the implementation fairly readily without the need to re-plumb
the whole thing.

What a global behavioral contract does is act as the unambiguous
sequence diagrams that we often see that describe how the services
interact. Alas sequences diagrams are not a good way of describing this
interaction and this is why using them results it systems that have to
be tested for long periods to ensure that when they are introduced
things still work as expected. In financial services a lot of time has
been spent designing message formats (it's why FpML - www.fpml.org - is
so popular along with FIXML and many others). These "on-the-wire"
protocols do not describe behavior they simply describe the message
content. So naturally behavior becomes the next thing to look at. What
they need is an overall model of behavior that guarantees
interoperability by design. What they do not need is new services being
provisioned that use services in a way that they were not intended to
be used. It is similar to a relation join between street name and first
name. It means nothing and has no business value. Links are forged
between services with specific meaning. The challenge has been to
capture that meaning. And meaning here is largely governed by or
determined by an overall behavior. You can think of it as a description
of a distributed workflow or business process.

The benefits of doing this are that we can reduce testing time, remove
deadlocks and livelocks and race conditions. We can provide behavioral
governance. Services can belong to many behavioral contracts. They do
not have to belong to one. But we do need to be able to understand the
role they play in whatever contract they participate in.

I would be happy to entertain further discussion if it is required.

Best regards

Steve Ross-Talbot


>> -----Original Message-----
>> From: [email protected]
>> [mailto:[EMAIL PROTECTED] Behalf Of
>> Ashley at Metamaxim
>> Sent: 30 September 2005 23:27
>> To: [email protected]
>> Subject: Re: [service-orientated-architecture] Is the WS- vision
>> achievable?
>>
>> Jan Algermissen wrote:
>>  
>> > But the question rally is: does the client have to know
>> > about the sequence of state operations in order to enable
>> > those complex business processes - I just cannot see why.
>> >
>> > All that happens is that the application logic gets
>> > hard-coded in the client and if the process changes,
>> > one needs to update the client. If the client determines
>> > the sequnce of operations at runtime, changes to the
>> > process do not affect the client *at all*.
>>  
>> Jan
>>  
>> I agree with you completely. Current ideas on how to manage service
>> choreography are based on the idea of a "global behavioural contract"
>> to which both service and client have to conform. This means, as I
>> understand it, that the choreography is hard coded into the client. A
>> possible alternative, as you point out, is that the client is able to
>> determine the allowable operations at run time. For the same reasons
>> as you, I think this would be much better.
>>  
>> The REST approach that you described in an earlier post, where a
>> service publishes a dynamically generated "menu" of available
>> operations based on its current state, is one that I have used a lot.
>> I have been involved in the development of a behavioural modelling
>> tool (ModelScope) that is based on this paradigm. ModelScope assumes
>> that the client of a service is a human (rather than a client
>> process), so that the menu of possible next operations (events) is
>> displayed on a graphical user interface.
>>  
>> In ModelScope, the behaviour of services is modelled using state
>> transition diagrams, and the list of "what you can do next" displayed
>> to the user is generated on-the-fly by interrogation of the service
>> metadata (simply a coded representation the state transition diagram
>> of the service) and the current service state. Neither the user
>> interface nor the end user need to see or know the whole state
>> transition diagram, which is effectively private to the service.
>> There is no global contract to which a user of the service must
>> conform -- the user just selects the appropriate next operation from
>> the generated menu.
>>  
>> This paradigm works well, and seems to me to be scalable to
>> arbitrarily complex interactions. I do not know why many in the SOA
>> industry seem so keen on "global behavioural contracts", given the
>> apparent advantages of this kind of dynamic approach.
>>  
>> You might be interested in
>> http://www.metamaxim.com/download/documents/DynChor.pdf which
>> discusses some ideas in this area.
>>  
>> Rgds
>> Ashley
>>  
>>  
>>
>> YAHOO! GROUPS LINKS
>>
>>
>>       ▪        Visit your group "service-orientated-architecture" on the web.
>>  
>>       ▪        To unsubscribe from this group, send an email to:
>>  [EMAIL PROTECTED]
>>  
>>       ▪        Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>> Service.
>>
>>





SPONSORED LINKS
Service-oriented architecture Computer monitoring software Computer and internet software
Free computer monitoring software


YAHOO! GROUPS LINKS




Reply via email to