W3C home > Mailing lists > Public > public-ws-chor@w3.org > April 2003

RE: Internal processes and/or external choreographies (was RE: Ev ents and States ...

From: Martin Chapman <martin.chapman@oracle.com>
Date: Fri, 11 Apr 2003 10:45:43 -0700
To: "'Jean-Jacques Dubray'" <jjd@eigner.com>, <steve@enigmatec.net>, "'Cummins, Fred A'" <fred.cummins@eds.com>, "'Burdett, David'" <david.burdett@commerceone.com>, "'Assaf Arkin'" <arkin@intalio.com>
Cc: <jdart@tibco.com>, <public-ws-chor@w3.org>
Message-ID: <002701c30052$2d5a3270$6501a8c0@us.oracle.com>

is this the glue I alluded to or something slightly different?

Martin.

> -----Original Message-----
> From: public-ws-chor-request@w3.org 
> [mailto:public-ws-chor-request@w3.org] On Behalf Of 
> Jean-Jacques Dubray
> Sent: Friday, April 11, 2003 9:18 AM
> To: steve@enigmatec.net; 'Cummins, Fred A'; 'Burdett, David'; 
> 'Assaf Arkin'
> Cc: jdart@tibco.com; public-ws-chor@w3.org
> Subject: RE: Internal processes and/or external 
> choreographies (was RE: Ev ents and States ...
> 
> 
> 
> Has anyone given some consideration about the 3 levels (2 
> levels of choreography and one of orchestration) I have 
> proposed during my presentation at the f2f meeting? Jon had 
> initiated some discussion on the list that seemed to be positive.
> 
> IMHO, ws-chor could easily address the first two levels 
> (which are in no way addressed by BPEL or BPML). One big 
> requirement I see for ws-chor is firewall transparency, in 
> other words, I can define a choreography between services and 
> then decide where I put the firewall (over time, I could also 
> move the firewall by outsourcing some services, or even 
> better based on the parties that are implementing a given 
> role in the ws-chor it could be either invoking an external 
> service or an internal service). Those situations are very 
> common in the PLM space where some design teams are located 
> at suppliers, but other than that these teams act exactly 
> like the internal design teams. I am sure that there are 
> cases outside the PLM space that can benefit from that. In 
> particular, I contend that implementing these two levels are 
> necessary for multi-party choreographies.
> 
> Now to respond specifically to Assaf on how hard it is to 
> create an implementation of an external choreography, I have 
> written in the past an algorithm that takes a choreography 
> specification (defined in ebXML
> BPSS) and creates an orchestration definition that can 
> complies with it. At this point, you can add internal 
> activities in between the activities that are external touch 
> points. This was very easy to do, and I'd be happy to open 
> source such algorithm once the ws-chor specification is 
> stable. However, and ultimately you may never be guaranteed 
> that the internal unit of work will perform as intended from 
> a timing and timeout perspective (your system could be slow 
> or down). This is why one need a special component managing 
> the ws-choreography instances to make sure they comply with 
> the specification (you really don't want to spread that code 
> in the service implementations since you would need to change 
> that code each time the choreography definition changes or 
> spread the choreography instance management across all the 
> services that participate in this choreography).
> 
> Cheers,
> 
> Jean-Jacques 
>  
>  
> 
> >>-----Original Message-----
> >>From: public-ws-chor-request@w3.org
> [mailto:public-ws-chor-request@w3.org]
> >>On Behalf Of Steve Ross-Talbot
> >>Sent: Friday, April 11, 2003 4:51 AM
> >>To: 'Cummins, Fred A'; 'Burdett, David'; 'Assaf Arkin'
> >>Cc: jdart@tibco.com; public-ws-chor@w3.org
> >>Subject: RE: Internal processes and/or external choreographies (was
> RE: Ev
> >>ents and States ...
> >>
> >>
> >>I'd like to echo Fred's comments. I think external is the way to go
> and
> >>if we can provide "compatibility" as a minimum and 
> "verifiablity" as a 
> >>nice to have we would have done a great job.
> >>
> >>The notion of "observable behaviour" and the associated
> "bi-simulation"
> >>are in essence how we should approach the issue of verfiability. We
> want
> >>to ensure that "contracually" the external behaviour defined
> (allowable
> >>message patterns over given states) is the observably equivalent to
> any
> >>implementation. It doesn't matter if the implemetation is done over 
> >>BPML, Java, BPEL or even by people. If we can observe it as 
> equivalent 
> >>then we can say it bi-simulates the externally defined behaviour and
> so
> >>meets the contract.
> >>
> >>One issue I am less sure on is the issue of time. If observable 
> >>behaviour is allowable message patterns over given states, 
> what role 
> >>does time play in all of this? Does it have a role? Thoughts .....
> >>
> >>Cheers
> >>
> >>Steve T
> >>
> >>-----Original Message-----
> >>From: public-ws-chor-request@w3.org 
> >>[mailto:public-ws-chor-request@w3.org] On Behalf Of Cummins, Fred A
> >>Sent: 11 April 2003 03:43
> >>To: Burdett, David; Cummins, Fred A; Assaf Arkin
> >>Cc: 'jdart@tibco.com'; public-ws-chor@w3.org
> >>Subject: RE: Internal processes and/or external choreographies (was
> RE:
> >>Ev ents and States ...
> >>
> >>
> >>
> >>David,
> >>
> >>My view is that the scope should be external only, but for now that 
> >>should be the same as external first.  There may be many
> implementations
> >>of a choreography with diverse processes as appropriate to the 
> >>particular processes.  Consequently, there must be a clear 
> separation 
> >>between external and internal, and the same choreography should be 
> >>suitable for designing the various internal implementations 
> that marry 
> >>to it.
> >>
> >>I will be useful for tools to be able to validate the 
> compatibility of 
> >>an internal process with a choreography (but not necessary). In any 
> >>event, the choreography should be specified such that this
> compatibility
> >>can be determined, hopefully in a straightforward manner.
> >>
> >>Essentially, a participant must send a message when in an external 
> >>state that calls for it to send a message, and the message
> must
> >>be such that it will cause the recipient to transition to the state 
> >>desired by the sender based on the choreography.  A 
> participant has no 
> >>control over the other participant(s) except through sending an 
> >>appropriate message--it cannot control what the other participant
> sends,
> >>when it is sent, or if it is sent at all.
> >>
> >>I suggest that the proper actions of a participant can be defined by
> its
> >>public state machine.  Typically, each state will have two or more
> exit
> >>transitions that depend on what is sent or received. The 
> selection of 
> >>the exit transitions is made by the message sender (unless 
> there is an 
> >>error or time-out which may be viewed as a third message/transition 
> >>type).
> >>
> >>So an internal process can be validated against the participant's
> public
> >>state machine specification.
> >>
> >>Fred
> >>
> >>> -----Original Message-----
> >>> From: Burdett, David [mailto:david.burdett@commerceone.com]
> >>> Sent: Thursday, April 10, 2003 9:42 PM
> >>> To: 'Cummins, Fred A'; Assaf Arkin; Burdett, David
> >>> Cc: 'jdart@tibco.com'; public-ws-chor@w3.org
> >>> Subject: Internal processes and/or external 
> choreographies (was RE: 
> >>> Events and States ...
> >>>
> >>>
> >>> Thanks ... but one thing we haven't nailed down yet is 
> the extent to 
> >>> which the scope of this group covers definition of languages to
> >>> define internal
> >>> process definitions (as in WSCI and BPEL4WS) as well as external
> >>> choreographies. I have been focusing on the latter but we
> >>> need to be clear
> >>> what we are doing about the former.
> >>>
> >>> For example we could have the following as requirements 
> for internal 
> >>> process definitions ...
> >>>
> >>> "An internal process definition MUST be capable of defining the 
> >>> sequence and rules by which software is executed within a 
> 'Control 
> >>> Domain' " ... Control
> >>> domain has been defined/described/discussed earlier.
> >>>
> >>> "An internal process definition MUST be capable of 
> identifying the 
> >>> relationships and dependencies it has on an external choreography 
> >>> definition."
> >>>
> >>> ... I am sure there are more, like internal process definitions 
> >>> being Turing complete ...
> >>>
> >>> Any thoughts chairs?
> >>>
> >>> David
> >>>
> >>> -----Original Message-----
> >>> From: Cummins, Fred A [mailto:fred.cummins@eds.com]
> >>> Sent: Thursday, April 10, 2003 5:38 PM
> >>> To: Assaf Arkin; Burdett, David
> >>> Cc: 'jdart@tibco.com'; public-ws-chor@w3.org
> >>> Subject: RE: Events and States (was: timeouts & states (was:
> Abstract
> >>> Bind able Choreography))
> >>>
> >>>
> >>> David,
> >>>
> >>> I'm not sure why I haven't received your message directly, but I
> like
> >>> your linkage of state machine to process functionality. This
> provides
> >>> a clean separation of the external choreography from the internal 
> >>> process.  We can then focus on how messages are exchanged between 
> >>> participants according to the state transitions of their public
> state
> >>> machines.
> >>>
> >>> Fred
> >>>
> >>> > -----Original Message-----
> >>> > From: Assaf Arkin [mailto:arkin@intalio.com]
> >>> > Sent: Thursday, April 10, 2003 7:17 PM
> >>> > To: Burdett, David
> >>> > Cc: 'jdart@tibco.com'; Cummins, Fred A; public-ws-chor@w3.org
> >>> > Subject: Re: Events and States (was: timeouts & states
> >>> (was: Abstract
> >>> > Bind able Choreography))
> >>> >
> >>> >
> >>> > +1
> >>> >
> >>> > arkin
> >>> >
> >>> > Burdett, David wrote:
> >>> >
> >>> > > >>>Very good questions. But what do you want (or perhaps more
> >>> > > importantly,
> >>> > > need) it to do? As you say, a state machine is really a
> >>> > mechanism. What
> >>> > > is the functional requirement?<<<
> >>> > >
> >>> > > I would put the functional requirements for which state
> >>> > machines are a
> >>> > > possible answer as follows:
> >>> > >
> >>> > > "An implementation of a process that is following a
> >>> > choreography MUST
> >>> > > be able to verify that the choreography is being followed
> >>> > correctly as
> >>> > > specified in the choreography definition."
> >>> > >
> >>> > > I would then have two further more closely defined 
> but related 
> >>> > > requirements of the products of this group ...
> >>> > >
> >>> > > "A choreography definition should be usable at Design Time
> >>> > to validate
> >>> > > that a process should be capable of carrying out a 
> choreography 
> >>> > > correctly as specified."
> >>> > >
> >>> > > "A choreography definition shoule be usable at Run Time
> >>> to validate
> >>> > > that a process is executing a choreography correctly as
> >>> specified".
> >>> > >
> >>> > > ... and finally one more ...
> >>> > >
> >>> > > "If a process detects that a choreography is not 
> being followed 
> >>> > > correctly, then the process SHOULD be able to use the
> >>> choreography
> >>> > > definition to identify exactly what went wrong."
> >>> > >
> >>> > > This last one means that you stand a better chance of
> >>> being able to
> >>> > > fix the problem when it occurs.
> >>> > >
> >>> > > Thoughts?
> >>> > >
> >>> > > David
> >>> > >
> >>> > >
> >>> > > -----Original Message-----
> >>> > > From: Jon Dart [mailto:jdart@tibco.com]
> >>> > > Sent: Thursday, April 10, 2003 2:56 PM
> >>> > > To: Cummins Fred A
> >>> > > Cc: public-ws-chor@w3.org
> >>> > > Subject: Re: Events and States (was: timeouts & states
> >>> > (was: Abstract
> >>> > > Bindable Choreography))
> >>> > >
> >>> > >
> >>> > >
> >>> > > Cummins, Fred A wrote:
> >>> > > > This raises questions about the scope of a choreography.
> >>> > When does
> >>> > > > it end?  When a disconnect occurs?  When a 
> particular business 
> >>> > > > transaction is completed?  When a relationship is 
> terminated? 
> >>> > > > Maybe any of the above?
> >>> > > >
> >>> > > > Do the state machines provide the mechanism for nesting
> >>> > of component
> >>> > > > choreographies?
> >>> > >
> >>> > > Very good questions. But what do you want (or perhaps more
> >>> > importantly,
> >>> > > need) it to do? As you say, a state machine is really a
> >>> > mechanism. What
> >>> > > is the functional requirement?
> >>> > >
> >>> > > At minimum, I would guess it is the ability to transition
> >>> > to a distinct
> >>> > > state when a timeout occurs. This state could be the
> >>> > termination of the
> >>> > > choreography (implying no more processing will occur). Or
> >>> > it could be an
> >>> > > error state (implying there might be some warning 
> given, or some 
> >>> > > recovery effort made, e.g. a retry - this assumes you are
> >>> > doing this at
> >>> > > the application level and not in some lower-level
> >>> reliable messaging
> >>> > > protocol). Certainly I can think of real-world examples
> >>> > where you'd need
> >>> > > this functionality. This is something of a simplification
> >>> of earlier
> >>> > > proposals. If we need something more complex, I'd like to see
> some
> >>
> >>> > > rationale behind it.
> >>> > >
> >>> > > --Jon
> >>> > >
> >>> >
> >>> >
> >>> > --
> >>> > "Those who can, do; those who can't, make screenshots"
> >>> >
> >>> >
> >>>
> ----------------------------------------------------------------------
> >>> > Assaf Arkin
> >>> arkin@intalio.com
> >>> > Intalio Inc.
> >>> www.intalio.com
> >>> > The Business Process Management Company
> >>> (650) 577 4700
> >>> >
> >>> >
> >>> > This message is intended only for the use of the 
> Addressee and may 
> >>> > contain information that is PRIVILEGED and CONFIDENTIAL. If you
> are
> >>> > not the intended recipient, dissemination of this 
> communication is 
> >>> > prohibited. If you have received this communication in error,
> please
> >>
> >>> > erase all copies of the message and its attachments and 
> notify us 
> >>> > immediately.
> >>> >
> >>> >
> >>>
> >>
> >>This email is confidential and may be protected by legal 
> privilege. If 
> >>you are not the intended recipient,  please do not copy or disclose
> its
> >>content but  delete the email and contact the sender immediately.
> Whilst
> >>we run antivirus software on all internet emails we are not 
> liable for 
> >>any loss or damage. The recipient is advised to run their own
> antivirus
> >>software.
> >>
> >>
> >>
> >>This email is confidential and may be protected by legal 
> privilege. If
> you
> >>are not the intended recipient,  please do not copy or disclose its 
> >>content but  delete the email and contact the sender immediately.
> Whilst
> >>we run antivirus software on all internet emails we are not 
> liable for
> any
> >>loss or damage. The recipient is advised to run their own antivirus 
> >>software.
> 
> 
> 
Received on Friday, 11 April 2003 13:45:46 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:00:58 UTC