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] Agenda for the demo application


Title: Message
Peter, I think we're about to start going round in circles here. What your example does show is one of the benefits of WS-Context: the fact that because context is standardised (I'm assuming it is), all users of it (end-users, other specifications, whatever), have a well defined way to scope (namespace) their contexts into their messages. Currently some context information in apps. goes in the body of a message, which makes it more difficult (slower) to locate.
 
Fairly obviously the users of ServiceContexts (e.g., the OTS) had to do some work to use them, but the fact that they came along facilitated interoperability for contexts. SOAP headers don't just contain context information at the moment, and as I said above, don't even have to contain context information. Addressing that is part of what we're looking at. And then there's the composite nature of the context augmentation that I mentioned previously.
 
But like I said at the start, I think we're not going to agree on this (again). As Eric pointed out, of course you can do context today with what's around, and what we're trying to do in WS-Context isn't necessarily rocket science or re-inventing the wheel; it's agreeing on a standard format for contexts that can be used by all specifications and applications. From a purely syntactic perspective, I'd like to have my SOAP documents with a well defined context element that's the same whether it's conveying transaction, security or session-oriented data.
 
Mark.
 
----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.
 
www.arjuna.com
----- Original Message -----
Sent: Friday, February 13, 2004 12:12 PM
Subject: RE: [ws-caf] Agenda for the demo application

 
 
Ok, maybe I have misunderstood. Let's try a little example (related to one of the example scenarios), of what looks like a light-weight context-using requirement and show what I meant about wrapping:
 
Users initiate web-service using tasks that may involve indeterminate numbers of systems. To help with error tracking etc, each system is to be told the users identity and some task-identification chosen by them (or their initiating software). It's a benign environment and masquerading won't benefit the attacker, so its just an assertion  Supporting systems can put this information in access and error logs, printers could include it on a banner page etc. Sort of thing that might be useful in academic computer services.
 
So the fields we need are, say,  username, a string; an identifier for the task (could be string or uri); and  to allow username assignment to be unambiguous and decentralised, identification of the naming authority - a URI, given by the institution, company or isp. (There are various other ways you could partition the information here)
 
But, to allow a receiver of this information to know what it supposed to be, we need to have an identifier to say what it is - some unambiguous value assigned by whoever defined this use -(a fictitious entity called Webservices Things, who call this their "User Labelling" facility)
 
Now, if WS Things has bought into WS-Context, that last identification is the "type", the task identifier will be the "context-identifier" and username and authority-identifier will be additional elements, and messages that are to be user-labelled will be like this:
 
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soapenvelope">
<soap:Header>
 <ctx:Context xmlns:ctx=”http://www.webservicestransactions.org/schemas/wsctx/2003/03”>
  <ctx:context-identifier>http://pluto.ulcc.ac.uk/task/EJ4439kjsf9/prf</ctx:context-identifier>
  <ul:Label xmlns:ul="http://webservicethings.org/util/userlabelling/2004/02">
   <ul:user>cziwprf</ul:user>
   <ul:authority>http://ulcc.ac.uk</ul:authority>
  </ul:Label>
 </ctx:Context>
 ... other headers ...
</soap:Header>
<soap:Body>
 ... message body ...
</soap:Body>
</soap:Envelope>
 
(using my identity from when I was in that world :-)
 
Whereas if Webservices Things had decided not to go with WS-Context, the user-labelled soap messages would be like
 
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soapenvelope">
<soap:Header>
 <ul:Label xmlns:ul="http://webservicethings.org/util/userlabelling/2004/02">
       <ul:task-identifier>http://pluto.ulcc.ac.uk/task/EJ4439kjsf9/prf</ul:task-identifier>
      <ul:user>cziwprf</ul:user>
      <ul:authority>http://ulcc.ac.uk</ul:authority>
  </ul:Label>
 ... other headers ...
</soap:Header>
<soap:Body>
 ... message body ...
</soap:Body>
</soap:Envelope>
 
The thing is, not only is that exactly the same information, but WS Things specification in the first case is no simpler or shorter.
 
You seem to be saying in "is the format of that element and how it can be located in the header" that it is harder to locate the information in the second case. But it's already in the header, and identified by the top-element of the header and its namespace. It isn't scattered at some random point in the message as a whole, because soap headers define where to look.
 
 
 
Touching the IIOP ServiceContext comparison - ServiceContext alone didn't make for interoperable transactions (say)- there also needed to be the work of the OTS group to specify what went in a transaction context. Their deliberations on how to transmit that context were simplified because they could just say "its a Service Context" - if they'ed done it earlier, they'ed have had to invent something of their own.  But with the SOAP world, we started off with SOAP Headers (perhaps in the knowledge of what was needed for IIOP) and there isn't a need for another layer of the same.
 
The only virtue for WS-Context is if the other things it brings are useful for many cases, and I've not seen evidence of that - those extra features nearly all seem to be specific to particular uses.
 
Peter
 
 
-----Original Message-----
From: Mark Little [mailto:mark.little@arjuna.com]
Sent: 13 February 2004 10:41
To: Furniss, Peter; ws-caf@lists.oasis-open.org
Subject: Re: [ws-caf] Agenda for the demo application

 
 
CORBA ServiceContext corresponds more or less exactly to SOAP Header - it is an opportunity to information to the main data message to support a supporting or adjunct protocol. The particular adjunct protocol in question is identified by a value of the ServiceContext or Header that is unambiguous among the set of possible adjuncts - one of the neat things about the XML world is that registration is devolved, so unlike CORBA, there is no need for a central registry of header identifications.
There is no difference between a propagated IIOP CORBA ServiceContext that contains security and transaction information, from a propagated XML WS-Context that contains security and transaction elements. The point I was originally making was that prior to ServiceContext, you had companies like Visigenic, Iona, IBM, HP, Nortel etc. propagating context information in a proprietary manner and format simply because they had no choice. Then ServiceContext came along and made interoperability a possibility because it standardised that format and manner. As Eric has pointed out already, that's pretty much what we're trying to do.  
But I don't think there were suggestions of a hyper-service-context in CORBA - a wrapper ServiceContext whose real meaning was determined by the contained information. Each context travelled naked. (In fact, given the registration requirement, a wrapper conceivably could have been useful in CORBA allowing devolved registration, but that isn't needed with SOAP and XML).
Maybe you've got a slight misunderstanding of what the WS-Context will look like, or maybe I just can't see what your wrapper is all about. If we consider pass-by-value for the context, then there'll be a context element in the header for each context type (security, transactions, replication, etc.) What we're defining is the format of that element and how it can be located in the header. Seems like the same as locating the ServiceContext in IIOP.
 
Once you've got the basic means of passing identified information, the real fun is in the specification of the the adjunct protocol of course, but that wouldn't be WS-Context but it's user - or a SOAP Header user, or in the old world, a ServiceContext user, with its own interfaces and methods, using the information received in the header/servicecontext.
 
WS-CF and WS-TXM fall into this category, I'd presume.
 
Mark.
 
----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.
 
www.arjuna.com
 
Peter
-----Original Message-----
From: Mark Little [mailto:mark.little@arjuna.com]
Sent: 12 February 2004 16:37
To: Furniss, Peter; ws-caf@lists.oasis-open.org
Subject: Re: [ws-caf] Agenda for the demo application

Peter, interesting discussion, but I think it comes down to utility, ease of use and extensibility. If you look at CORBA for example, you could probably make the same arguments for why ServiceContext shouldn't have been added to the architecture and why existing schemes at that time (vendor/specification specific) were fine. Only time will tell, of course, but I believe that context is a basic requirement for all distributed systems and WS-Context is definining a pretty good model for Web services on which to build.
 
Mark.
 
----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.
 
www.arjuna.com
----- Original Message -----
Sent: Thursday, February 12, 2004 3:26 PM
Subject: RE: [ws-caf] Agenda for the demo application

Mark,
 
I've had a look and I still don't see a clear added-value of WS-Context itself, or statement of what is deficient in using headers directly. There are assertions, as in your first paragraph that WS-Context could be used for various things, but I don't see what features it adds that aren't there already or which have to be specified in some other document known to the various parties.
 
 
The problem is that the additional specification (it is not necessarily an ALS, it may just be specification - the GAF proposal is an example of the sort of thing) has to define the interpretation and purpose of the attributes and elements in the context. You could write virtually the same specification text saying "this value is put in a SOAP header with top-element qname" instead of "this value is put in a context with type uri".
 
That would certainly seem to be the case for pass-by-bulk. Pass-by-reference, once it's sorted out, comes down to the general-purpose semantics of "here is a soap header with an element that is a URI that can be dereferenced to give you more information." Everything else is left to the addtional specification.
 
Undoubtedly the various specs that have context-like behaviour *could* function with WS-Context, but I don't see what they would gain other than "namespace paint" .
 
 
Peter
 
-----Original Message-----
From: Mark Little [mailto:mark.little@arjuna.com]
Sent: 12 February 2004 14:16
To: Furniss, Peter; malik saheb; ws-caf@lists.oasis-open.org
Subject: Re: [ws-caf] Agenda for the demo application

Peter, I think you missed the point. I realise you weren't at the first face-to-face, (and I've no idea if you'll be at the next one where I'm sure the demo app will be described), but this kind of discussion came up in Boston. It was also one of the original FAQ questions (can't say for sure if it's on the current TC FAQ though). One of the intentions of WS-Context is to try to provide a standard way of approaching context, rather than the ad hoc mechanisms that currently exist. For example, it would be great if WS-Security adopted WS-Context, for example; though whether that actually happens is a different issue entirely. WS-RF as another example may be able to utilise WS-Context.
 
An aim would be to provide a standard that allows existing and new uses of context to be more easily created and to work collectively. I find it strange to be going back over what the aims of this TC is, since we're 4+ (?) months into it, but: we'll define a standard context representation that all users will agree upon and can augment if required; the location of context will also be precisely defined such that it is no longer a hit-and-miss thing to be able to identify pertinent "context" information in a header or body. I don't think this is a waste of time and effort, and just looking outside of this TC neither do the various companies that we have talked to.
 
And with regard to my comments on the demo. application: as I said, I can see how context could be used in the way currently described, I just think that an alternative approach may well be easier to describe and understand.
 
Oh, and WS-Context can be used entirely by itself, i.e., without any ALS-es. It was designed to. Check out http://www.arjuna.com/library/reports/2003-08-12-GAF-v1_0.pdf for example.
 
All the best,
 
Mark.
 
P.S. If we're going to discuss the demo. specifically then let's take it to the separate working group.
 
----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.
 
www.arjuna.com
----- Original Message -----
Sent: Thursday, February 12, 2004 1:46 PM
Subject: RE: [ws-caf] Agenda for the demo application

WS-CAFites,
 
The proposed demo application, and Mark's comments on it are very interesting as showing two different approaches by the author companies (who are to be congratulated on having such discussions in the open, rather than huddling away in a corner :-). But they raise a query I've had in my mind about WS-Context.
 
By design WS-Context can't be used completely alone - there has to be some additional specification known to the various parties - so in the demo application, the client and the retailers all know of the shopping cart application. Exactly what behaviour is required of them differs slightly between the demo as written and Mark's suggestions - but the client has at least to know that it has to put the context on the messages to the retailers, and the retailers to know they must make their supplying part of the cart.
 
The problem I have is that I can't quite work out what WS-Context adds that isn't already available in SOAP headers. The WS-Context-using shopping cart specification will be identified by a URI (the "type" in the context -this is probably the same as, or related to, the ALS-context identifier). A service receiving a context with that uri (or finding it after dereferencing a pass-by-reference context) will thus know what it has to do, as specified by the shopping cart spec: but that's all part of the shopping cart spec, and not WS-Context (especially if, as Mark suggests the shopping cart ALS offers its own service, with addToCart, removeFromCart).
 
Compare that with exactly the same shopping cart service specified using SOAP header, and able to generate a unique shopping cart identifier. The shopping cart specification defines a soap header, using the namespace uri to identify it's headers among all the other that exist. The header includes the URI of the shopping cart service and any other identifiers - in fact exactly the same information that it would need to specify as being contained in the context had it used WS-Context. A service receiving a shopping cart header does exactly the same things as one receiving a shopping cart context.
 
The demo app as described does have the Context Service doing more, but that seems to be what can be done with http anyway - the context identification URI labels a resource that can be fetched (get) or changed (put) (but no equivalent of post at ctx level).
 
The shopping-cart service is using the Context-service to generate the unique identifier, but that isn't difficult to do itself (and might well be counter-productive to take one in from the Ctx service, since if the shopping cart chose its own URI's it could put locally-meaningful (but externally opaque) information in them, whereas if the URI is given to it by a Context Service the cart service must indirect through a hash or whatever.)
 
To summarise:
 
What gain does a WS-Context-using specification gain from WS-Context that it could not have got from the combination of:
 
    - SOAP Headers, which identify, by the namespace URI which specification they refer to and can contain elements and attributes of use to that specification
 
    - HTTP Get, Put and Post which can fetch, set and modify a remotely-held body of information unambiguously identified by a URI
 
Good grief, I've turned into a RESTafarian !  
  
 
This isn't to say there might not be something in the higher levels of WS-CAF (I have thoughts on that too :-), but I have a suspicion that by the time you've generalised the context-layer sufficiently to make it general (i.e. to justify ws-context as a separate spec), there isn't anything left worth specifying. Yes, several things need to pass around identifications, and associated information and there are some protocol design issues that are worthy of summarising (e.g. rules about unambiguity must be precise, implications of id exchange) but there isn't anything worth making into a distinct protocol.
 
Peter
 
------------------------------------------
Peter Furniss
Chief Scientist, Choreology Ltd
web: http://www.choreology.com
email: peter.furniss@choreology.com
phone: +44 870 739 0066
mobile: +44 7951 536168
 
-----Original Message-----
From: Mark Little [mailto:mark.little@arjuna.com]
Sent: 11 February 2004 11:53
To: malik saheb; ws-caf@lists.oasis-open.org
Subject: Re: [ws-caf] Agenda for the demo application

I've attached comments to the document. As far as I can see, this still needs work. The architecture of the application seems to be a very strange use of context in general, and WS-Context specifically. Maybe this is a carry-over from the WS-I demo?
 
Mark.
 
----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.
 
www.arjuna.com
----- Original Message -----
Sent: Monday, February 09, 2004 7:00 PM
Subject: [ws-caf] Agenda for the demo application

Hi All

 

I have attached the document explaining how the demo application can use the WS-Context.

The way the demo will use the other specifications will be provided later according to the schedule described below and that follow the following steps.

 

- Before a meeting we will produce a document describing the demo application using a particular specification (deadline 1 week before the meeting)

- During a meeting the document made previously available will be discussed

- Show a demo application with a particular specification (no demo for the Paris meeting)

 

In other words:

2nd meeting - Paris

- Before the meeting – we provide the demo application with the WS-CTX.

- During the meeting – Discuss the demo application with WS-CTX

 

3rd meeting New Orleans

- Before the meeting – produce a document of the demo application with WS-CF

- Discuss of the application with WS-CF

- Show the Demo Application with the WS-Context (described in the previous meeting)

 

4th F2F meeting (date to be determined) –

- Before the meeting – produce a document of the demo application with WS-TXM

- Discuss of the application with WS-TXM

- Show the Demo Application with the WS-CF (described in the previous meeting)

 

5th F2F meeting (date to be determined) –

- Show the Demo Application with the WS-TXM (described in the previous meeting)

 

Malik

 



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