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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-caf message

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


Subject: RE: [ws-caf] Nested contexts ( was RE: [ws-caf] Mt Everest and WS-CF)


The use of contaxt in distributed systems is much broader than transaction context propagation, although transaction context tends to be the "top of the food chain" or top-level concept.

However, as we've said many times in F2F and email discussions, many types of context exist in the execution environments of distributed systems.  Since Web services can be mapped to any execution environment, and are useful for a very broad range of applications, it seems appropriate to similarly broaden the concept and useful scope of shared context.

The debate over context-by-value vs context-by-reference is entirely a red herring.  Preserving both options is sensible for broad implementation applicability since in Web services we are not trying to constrain specifications to any particular execution environment, and preserving these options is helpful rather than detrimental.  Despite what we continually hear as concerns from the representatives of one of these potential execution environments, representatives of every other exeuction environment involved in the TC are in favor of preserving both options, which to me simply proves the point that preserving the options is necessary.

The debate here about "consuming specifications" seems to me to represent another concern of fairly limited scope, or I should say a concern around limiting the scope of the specification to a single execution environment or set of concepts.  The business of Web services specifications is to open up possibilities not constrain them.

We could assume, for example, that every Web service invocation is expressible using the Doc/literal style, which allows the loosest possible interpretation of a Web services message, very similar to REST principles in fact.  I think we need to be sure we can support this interaction style equally well, if not better, than the RPC-oriented style.

The need to manage context therefore has a similarly very wide scope.  The more abstract the interaction -- and doc/literal is more abstract than rpc/literal for example -- the greater the need to set up and manage execution environment context.  In a mixed world of doc/literal and rpc/literal implementions it should be very clear that one size cannot fit all and we need the inherent flexibility of an extensible context structure.

Eric

-----Original Message-----
From: Doug Bunting [mailto:Doug.Bunting@Sun.COM]
Sent: Friday, May 28, 2004 4:48 PM
To: ws-caf
Subject: Re: [ws-caf] Nested contexts ( was RE: [ws-caf] Mt Everest and
WS-CF)


Peter,

I  have  a slightly  different  perspective  that  only sometimes  involves
transactions in  the "shared outcome decision and  distributed knowledge of
that outcome" sense.  When I  think of linked contexts, I consider multiple
activities that coincide  with a particular message to  form a nested stack
of contexts applicable to that  message.  I guess nesting and interposition
of  transactions  (with varying  time  spans I  would  assume)  might be  a
derivative case.

The (generic?) use case I am thinking of involves a message
- sent securely (referring to an earlier authentication event),
- within a transaction  (lasting longer  than the  secure session  in this
case),
- as part  of an identified instance of  a known choreography (effectively,
two activities  with the instance having  a much shorter  lifetime than the
description of the choreography),
-  driven  by  SLA terms  and  other  machine  and  / or  humanly  readable
information about the larger contract between the enterprises involved (and
legal documents are not small ;),
- sent by / to / about a specific enterprise whose physical characteristics
(shipping locations, for example) and other information is available to all
parties,
- et cetera (until the context describes the universe).

The list above is not intended to be at all exhaustive or to imply that all
messages require  everything listed.  It  must remain an  implementation or
overall  distributed application  choice  how much  of  the hierarchy  gets
mentioned (transitively in some cases) when sending a particular message.

How  I   represent  this   stack  of  related   contexts  is   probably  an
implementation choice  at the moment.  If  I am correct (and  using the old
draft as a guide), the current specification makes no recommendations about
how often to use the  child pointers or whether multiple WS-Context headers
should  appear in  the  same message.   Contexts  with different  lifetimes
(including multiple  contexts with varying senses of  an infinite lifetime)
could reasonably  be all  linked into one  (nested, hierarchical,  at least
unified)  list, could  be  sent  as multiple  WS-Context  headers (one  per
context) or everything in between.   Are you making a recommendation on way
or the other or asking for this type of clarification in the documentation?
Alternatively,  are  you  suggesting   that  everything  except  nested  or
interposed transactions must be handled using separate WS-Context headers?

Should mention  that my  leaning is toward  a single WS-Context  header per
message.  This might  imply a receiver need understand  only WS-Context and
the  semantics  of  the  top  level  (outermost,  shortest  lived)  context
mentioned  in that  message.   The WS-Context  and dependent  specification
propagation rules should mean anything above the level they understand gets
carried along for the ride.

Does this align with your thinking?  From what I have seen (and, no, I have
not  seen the  soon-to-be-available-we-all-hope editors  draft), WS-Context
supports either type of linking  (syntactic nesting or carrying in parallel
with  overlapping  lifetimes)  directly.    The  main  issue  seems  to  be
clarifying  the  choices mentioned  above  so  that  all of  the  dependent
specifications  do not  need to  describe how  they relate  to  every other
context type.

thanx,
	doug

On 28-May-04 06:08, Furniss, Peter wrote:
...

> The most-known use case for nested contexts is, I believe, the nesting
> and interposition in transactions. Does that use really want to
> propagate the entire ancestral (and colateral ?) tree ? Other
> transaction protocols tend only to propagate the identifiers of the
> immediate line. The present WS-Context nesting capabilities don't seem
> to be well-aligned with that need.  
> 
> Peter



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