Please note that the FpML website will be down for maintenance from 6-8pm, New York time, on December 7, 2023. For further information email info@fpml.org
FpML Issues Tracker
339: Add a definition of ConversationId in fpml-msg.xsd
March 16, 2007
closed
Minor
Always
Architecture
Admin
mgratacos
Summary
Add a definition of ConversationId in fpml-msg.xsd
Notes:
matthew
06/07/07 1:14 pm
Agreed at AWG 2007-06-07 that Marc Gratacos will make a proposal.
Based on the ebXML definition, I propose to add the following documentation:
A unique identifier assigned by the initiator of the conversation that links together an exchange of a series of related messages between parties. A ConversationId is designed to enable the sender or receiver of a message
to identify the instance of a service that it is executing. Frequently a
service is synonymous with the execution of a Business Process.
—–Original Message—–
From: awg@ On Behalf Of Matthew Rawlings
Sent: 08 June 2007 16:14
To: awg@
Subject: RE: FpML-AWG conversation Id: response from Steve
Marc – this explains it for me. My point was you can’t define a conversation
identifier if you can’t define a conversation. Now we have a definition of
conversation by adding this to the definition I regard this as solved.
I propose something like:
“The unique identifier (name) for the conversation (session), this message
is within. A conversation identifier is usually assigned by the initiator of
a conversation. Conversations may only be initiated and terminated. Joining
conversations has the effect of initiating new conversations. Conversations
cannot be split; this instead has the effect of parallel activities on the
same conversation or the initiation of a new conversation. Each message
belongs to only one conversation. Conversation scopes are defined in the
business process definition.
NB The extra property I added is each message belongs to only one
conversation.
Matthew Rawlings
—–Original Message—–
From: awg@ On Behalf Of Marc Gratacos
Sent: 08 June 2007 10:39
To: awg@
Subject: FpML-AWG conversation Id: response from Steve
Response from Steve. The email address he used is not in the list so his
email was blocked:
From a behavioral typing perspective we can assert the following:
Conversation Id determines membership of a session.
Sessions (and therefore membership) are the principle mechanism
for
ensuring correct behavior.
If all participants start with the same Conversation Id then
splitting and joining
has no impact on session typing and so no impact on observing
membership and
consequent behavior.
If two participants, say PartyA and PartyB, start with different
Conversation Id’s and
interact with a third party (say a Confirmer) then there are two
independent session
that only join when something makes the association between
PartyA
and PartyB
and their associated Conversation Id’s. At that point the two
session (e.g. PartyA_Session
and PartyB_Session) are joined and become a new session.
In short if you start from the same common base there are not
problems. But when you start from
different points you cannot determine if they will join in advance
and so they are separate until
they do join. Thereafter session typing applies.
What does Session Typing give you? Freedom from livelock, deadlock
and race conditions or at
least the ability to show where they are statically. It also gives
you robust monitoring of sessions
as they unfold.
Hope I’m not off base on this.
Cheers
Steve T
On 8 Jun 2007, at 10:26, Marc Gratacos wrote:
> Has the theory on integration patterns solved this issue?
>
>
>
> From: awg@ On Behalf Of
> Matthew Rawlings
> Sent: Thursday, June 07, 2007 12:28 PM
> To: awg@
> Subject: Re: FpML-AWG Add a definition of ConversationId in fpml-
> msg.xsd
>
>
>
>
> What happens when you join or split conversations?
>
> Matthew Rawlings
Notes:
matthew
06/07/07 1:14 pm
Agreed at AWG 2007-06-07 that Marc Gratacos will make a proposal.
mgratacos
06/07/07 3:02 pm
Based on the ebXML definition, I propose to add the following documentation:
A unique identifier assigned by the initiator of the conversation that links together an exchange of a series of related messages between parties. A ConversationId is designed to enable the sender or receiver of a message
to identify the instance of a service that it is executing. Frequently a
service is synonymous with the execution of a Business Process.
matthew
06/08/07 5:22 pm
—–Original Message—–
From: awg@ On Behalf Of Matthew Rawlings
Sent: 08 June 2007 16:14
To: awg@
Subject: RE: FpML-AWG conversation Id: response from Steve
Marc – this explains it for me. My point was you can’t define a conversation
identifier if you can’t define a conversation. Now we have a definition of
conversation by adding this to the definition I regard this as solved.
I propose something like:
“The unique identifier (name) for the conversation (session), this message
is within. A conversation identifier is usually assigned by the initiator of
a conversation. Conversations may only be initiated and terminated. Joining
conversations has the effect of initiating new conversations. Conversations
cannot be split; this instead has the effect of parallel activities on the
same conversation or the initiation of a new conversation. Each message
belongs to only one conversation. Conversation scopes are defined in the
business process definition.
NB The extra property I added is each message belongs to only one
conversation.
Matthew Rawlings
—–Original Message—–
From: awg@ On Behalf Of Marc Gratacos
Sent: 08 June 2007 10:39
To: awg@
Subject: FpML-AWG conversation Id: response from Steve
Response from Steve. The email address he used is not in the list so his
email was blocked:
From a behavioral typing perspective we can assert the following:
Conversation Id determines membership of a session.
Sessions (and therefore membership) are the principle mechanism
for
ensuring correct behavior.
If all participants start with the same Conversation Id then
splitting and joining
has no impact on session typing and so no impact on observing
membership and
consequent behavior.
If two participants, say PartyA and PartyB, start with different
Conversation Id’s and
interact with a third party (say a Confirmer) then there are two
independent session
that only join when something makes the association between
PartyA
and PartyB
and their associated Conversation Id’s. At that point the two
session (e.g. PartyA_Session
and PartyB_Session) are joined and become a new session.
In short if you start from the same common base there are not
problems. But when you start from
different points you cannot determine if they will join in advance
and so they are separate until
they do join. Thereafter session typing applies.
What does Session Typing give you? Freedom from livelock, deadlock
and race conditions or at
least the ability to show where they are statically. It also gives
you robust monitoring of sessions
as they unfold.
Hope I’m not off base on this.
Cheers
Steve T
On 8 Jun 2007, at 10:26, Marc Gratacos wrote:
> Has the theory on integration patterns solved this issue?
>
>
>
> From: awg@ On Behalf Of
> Matthew Rawlings
> Sent: Thursday, June 07, 2007 12:28 PM
> To: awg@
> Subject: Re: FpML-AWG Add a definition of ConversationId in fpml-
> msg.xsd
>
>
>
>
> What happens when you join or split conversations?
>
> Matthew Rawlings
mgratacos
06/08/07 9:19 pm
I committed your suggested definition into the trunk.