ebxml-tp message


OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

Subject: Re: no synch vs asynch indicator in CPP/CPA


Dale,

While it is quite true that in some cases, a synchronous
request/response can be faster because the overhead
of establishing new TCP connections. One must also
factor in the uncertain nature of the Internet
and distributed network computing into the equation. 

The fact is that a LOT can happen in that millisecond
and this then has implications on how each endpoint
needs to be prepared to deal with the inevitable
failure of a request or response to be received by
either endpoint.

Since the network can fail at any point, from the
sender's perspective, not receiving a response could
mean:
	- the request never made it to the requestee
	and was not processed
	- the request DID make it to the requestee 
	but due to a failure, was not processed
	- the request DID make it to the requestee
	and was processed, but the response was lost
	or never sent

The sender CANNOT know the nature of the
failure, as they are all perceived identically from the
sender's perspective. 

Thus, from either perspective, the request needs to
be treated as if it never happened. This is quite 
difficult when dealing with resources that are
outside of the control of a single authority. Even
two and three phase commit falls apart in this regard.

In the context of a synchronous exchange, the request
needs to have the property of idempotence. The same
request results in the same response with no side-effects
that are different than those which would have ensued
had there been only one request processed.

Of course, your point of "all things being equal"
needs to come into play as well. The fact is that 
very rarely are "all things equal". Efficiency is 
may be predicated on how many messages can be processed
in a given period rather than on how quickly
ONE message can be processed. Some messages may take 
far longer than others. Allowing for aynchronous messaging 
can provide for the possiblity that MORE messages can be 
processed over time by multithreading the processing
of the messages.

Note also that asynchronous does not necessarily
imply connection overhead. Certainly, some protocols
would suffer from overhead of establishing a response
session. However, a connection can be made to
support full-duplex asynchronous exchanges just 
about as easily as it is to make it half-duplex.

Cheers,

Chris

"Moberg, Dale" wrote:
> 
> Though I agree with most of what has been said
> about synch, RPC-ike TCP transports, there is a
> reason behind people talking about real-time and
> fast that is worth mentioning. I agree that "real"
> real-time has to do with hard deadlines for completion
> and has more to do with OS scheduling than transports.
> And perfomance evaluation always has the phrase
> "all other things being equal" hanging in the background.
> But suppose that servicing a request is on the order
> of 1 millisecond average response and we are comparing
> a synchronous with an asynchronous transport in the
> sense of one using one as opposed to more than one
> TCP connection. And finally suppose that the
> request setup time is equal in both cases (no good
> reason why it would not be). Then synchronous will
> be faster because the RTTs (round trip transits)
> needed for connection setup (maybe 2 or 3 times
> approx 100 to 200 milliseconds) will make a difference.
> In other words, when we are looking at subsecond
> response issues and examining the components
> of latency, then the TCP connection overhead
> becomes a relevant factor.
> 
> Normally this factor is totally dominated by
> backend latency of response (multisecond to hours)
> and so it becomse silly to worry about it for
> many b2b integration environments. However,
> if humans are waiting for confirmation before
> moving on, then subsecond latency issues may
> become relevant. My $.02.
> 
> > -----Original Message-----
> > From: christopher ferris [mailto:chris.ferris@east.sun.com]
> > Sent: Monday, January 29, 2001 10:08 AM
> > To: ebxml-tp@lists.ebxml.org
> > Subject: Re: no synch vs asynch indicator in CPP/CPA
> >
> >
> > Stefano,
> >
> > I think you've captured this issue quite well below
> > when you say:
> > > I am not sure completely, but I am tempted to think that
> > the issue of
> > > sync/async is just an "accident" of implementation, i.e. it
> > is something
> > > that gets into the picture at the time the CPP is actually created.
> > > Something like:
> > >         - do you have a browser? Well, you should use this
> > and that...
> > >         - do you have something different? Well, in this
> > case you can use something
> > > else.
> > > But always to carry out the same business exchanges.
> >
> > Of course, it is rarely an "accident" as typically, someone
> > asks for the synchronicity inj the application, but usually
> > for all the wrong reasons;-)
> >
> > As Marty points out in his response to this issue, synchronous
> > exchanges are neither "real-time" nor are they necessarily fast.
> >
> > In the B2B space, synchronous exchanges can actually lead to
> > significant problems due to the uncertain nature of the
> > Internet and distributed network computing in general.
> >
> > As for a Business Process description/model incorporating
> > a notion of synchronous vs asynchronous in the MODEL, I think
> > that clearly this is a mistake. What is synchronous or asynchronous
> > is an implementation detail that should be described
> > at the level of the CPP/CPA in describing the technical
> > details of how the messages can be exchanged for a given business
> > process that is based on the implementation capabilities
> > of the partners, NOT on the description of the business
> > process model.
> >
> > To Marty's point that it is the BP that cares, in truth,
> > it is the implementation of the software that effects the
> > business process that cares. The BP itself is just a desription
> > of the messages that are exchanged, and the constraints
> > that are enforced as regards to ordering, pre and post
> > conditions, etc.
> >
> > Cheers,
> >
> > Chris
> >
begin:vcard 
n:Ferris;Christopher 
tel;work:781-442-3063
x-mozilla-html:FALSE
org:Sun Microsystems, Inc;XML Technology Development
adr:;;One Network Drive;Burlington;Ma;01824-0903;USA
version:2.1
email;internet:chris.ferris@east.Sun.COM
title:Sr. Staff Engineer
x-mozilla-cpt:;0
fn:Christopher Ferris
end:vcard


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Search: Match: Sort by:
Words: | Help

Powered by eList eXpress LLC