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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: RE: FW: T2,Proposed solution for ... Re: SyncReplyandReliableMessagingMethod inQualityOfServiceInfo


Chris Ferris states:
"Again, I disagree here. I think of an MSH as being unaware of the fact
that
it is anything but a MSH. The IM-ness of a node is captured in
application
logic as we have discussed, not as an aspect of the MSH itself. IMO,
the fact that intermediary functionality is being applied by the
"routing app"
is no different than if the "application" were a responding application
of a true endpoint.

I suppose that the MSH node could detect that the ToParty is not itself
and apply a different set of logic, but again, this seems to be a bit
more
complexity than might be needed otherwise.

	   RoutingApp
	   ^	    |
	   |	    V
	MSH-in   MSH-out
"


I do not strongly like this solution.

While it retains some architectural simplicity
for the MSH layer,
it drives many unresolved 
strains and tensions into other areas.

If the RoutingApp is an application, 
then it should be modelled in a BPSS.
So modelled, it is a multi-role, multi-party BP. 
As such, it is not within the scope of the 1.1 CPPA.
So we would not be in a good position to support
the 1.1 MSG in the 1.1 CPPA. 

If the RoutingApp
is part of "middleware" 
between the MSH and not
within the purview of BPSS, then it is a feature
of the extended DeliveryChannel 
that is not currently modelled
in the CPPA. It would certainly require
significant changes in the area of the Transport
element, much beyond putting the intermediary
in as a URL for the To and From party endpoints.
Again, we could add this into CPPA
if the requirements are clear, but we have over 20
months experience with this, and the exact functionality
of this Intermediary based middleware is still too
fluid to have been captured. For example, gatewaying
functionality (involving transforms of payloads, wholesale
changes in security properties, etc) tends to creep
into discussions and these _greatly_ complicate the agreement
model. In general, the "free floating middleware" 
gambit creates more headaches
for CPPA, and leaves BPSS off the hook.
In particular, the bilateral
deomposition strategy favored 
in BPSS would possibly
not continue within CPPA, 
because we would have CPAs between
ToMSH, FromMSH, and IMSH(es) that may not decompose
into pairs of CPAs (ToMSH/IMSH),(IMSH/FromMSH), 
and (ToMSH/FromMSH). (Again this is because 
there is no BP ServiceBinding for the IMSH capability).


Basically, the reality is that 
there _are_ two flavors of IMSH.
I think this becomes particulary 
evident when the quite reasonable
constraint on IMSHes is announced 
that a (forwarding) IMSH should never ack back
before it has been acked. 

For the Ferris solution, the IMSHes ack
when they hand off to the RoutingApp. 
So when there is a downstream
failure in the remaining MSH RM agents, 
our IMSH is in the embarassing situation
of having to somehow withdraw its ack. 
No matter how we twist and
turn here there are problems: 
if we use a DFN message, we have a
danger it does not get back, 
violating Marty's basic principle that
the From app SHALL be notified 
of failure. If we use some other
rollback compensation trick, 
we still may have problems arising from
the optimistic pre-commit that 
the IMSH ack represents. Maybe it is
a small probability event, but 
it must be treated for this to count
as a RM specification. I think the 
way to go here is to never allow an
IM optimistic ack and, by so doing, never get 
involved in rollback/compensation maneuvers
in those cases where there is unrecoverable, 
timed out, downstream failure. 
This will mean that the Retry situation
and timing probably needs much 
more careful sanity checking when IMS.
And that price is trivial compared 
to the mess we get into with
optimistic acks.

Now from the Ferris perspective, the
IMSH ack is not optimistic. It is just
the required Ack for the point to point
RM process. There are only point to
point RM segments in his view. If failure
occurs, it is like an application failure,
so the forwarding IMSH, sends back an 
"application" level response (a DFN ?),
that is a compensating "transaction".
This means that while successful RM
occurs at the MSH level, failure
handling is in part pushed (conceptually)
up to the application layer. Is that
really a RM solution, with different
protocol stack layers handling
different statuses? I think this is
bordering on exploiting (systematically) a
layering confusion for the ebXML 
treatment of RM. IMO, it would be better to just
leave RM undefined in the 1.1 spec. 
when forwarding IMSHes are involved and
wait until a BPSS schem for adding forwarding 
processes to BPSSes is worked
out and added to the ebXML specification suite.





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC