[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsrf] Modelling sessions
First, it appears that a "session" and a "session service" seem to be
interchangeablly used in these replies(for the purposes of modellling them as resources), which is not accurate. Wiiliam's mail seems to suggest that a Session can be modeled as a WS-Resource, but then the session resource boils down to a WS-Context when interacting with another WS-Resource (e.g a database) in the the in the context of a "session", per the explanation. So this means that the session is not a WS-Resource. Now there is a suggestion that a "session service" can be modeled as a WS-Resource so it can get life cycle semantics etc. But there is already a context service that is defined as part of the WS-Context spec that allows life cycle management, so I don't see a reason why we would use WS-Context for sessions, but use a WS-Resource for a session service. In the 4th case that you quoted below, the session is not a WS-Resource. In general, I think the issue is that it is not clear (or undefined) what the interaction model is with a WS-Resource in the context of other resources. Modelleing everything as a WS-Resource can not be the answer. David Snelling wrote: Folks, I reply to Savas' mail, but this applies to William's and Jim's as well. First, I'd like to thank Savas for a beautiful little use case that helps to isolate the roles a WS-Resource can take in WS interactions and to highlight how WSRF interplays with other WS technologies. Savas you are not causing trouble I assure you. Keep it up. I fully concur with William's description and would have written it myself, but he got there first. To possible simplify it a bit we have the following: 1) A database of interest to us. 2) A WS providing functions on the database. 3) A context for controlling a logging function. Therefore to talk to the database and log it we need the WS address, the database's resource disambiguator, and the context. The first two form a WS-Resource and the latter may be a WS-Context thing for example. Therefore I like Savas' 4th case: <envelope> <header> <context> ... <sessionId>123</sessionId> </context> <databaseId>DatabaseA</databaseId> </header> <body> <drop-database /> </body> </envelope> Now let's add an *optional* Web service to manage the context, e.g. in William's example stop/start logging. Other operations might include extending the detail or lease on the context. Therefore we add a new thing to our list. 4) A WS for controlling a context. Some things to note: There is no requirement in the WSRF model that 3 and 4 be modelled as a WS-resource. The WSRF model does not require that every entity be a WS-Resource. The WS in 4 could simply take the old context as one of its arguments and return a new one meeting the new requirements. However, should I choose to model 3 and 4 as a WS-Resource, I get lifetime management and WSDM style process management for free. Note that this approach can be added to an existing context provider, since the id used in the context is independent of the ReferenceProperty used to disambiguate the context, i.e. <TheContextsResId>12opaque34</TheContextsResId> and <sessionId>123</sessionId> are different things, although they could be the same if their properties are similar enough with respect to uniqueness requirements etc. In specific answer to Jim's mail, I believe that the potential (but optional) interplay I describe above is nicely layered in the spirit of WS and quite elegant as well as functional. This kind of discussion is of course helpful in verifying that WSRF can layer well with other WS concepts, e.g. in this example WS-Context. Thanks again to Savas. On 25/5/04 21:30, "Savas Parastatidis" <Savas.Parastatidis@newcastle.ac.uk> wrote:Dear all, Sastry Malladi (Oracle), Simon Laws (IBM), and myself have been involved in some work for GGF's Data Access and Integration Services (DAIS) working group, where we attempted to compare different approaches for mapping DAIS-specific requirements to underlying technologies. We explored the use of a WS-I only approach, an approach that uses WS-Context, and one based on WS-RF. (link: http://forge.gridforum.org/projects/dais-wg/document/draft-ggf-dais-mapp ings-ggf11/en/1) One of the questions that were raised during this work was how to model session-based interactions using WS-RF. I am hoping the members of the mailing list could help since we didn't reach a concrete proposal on how this could be done... Here's the problem... WS-RF is used to model stateful interactions with resources. Each message carries some information that identifies the resource behind the service which should be the logical receiver of the message. I hope my understanding is correct. Now, imagine a scenario where we want to establish a stateful interaction with a service (not the resource) and we want to associate some quality of service characteristics to it. Let's say, for example, that we want all interactions within the scope of a particular "session" to be logged. This would happen irrespective of which resource we are accessing. The problem arises if we attempt to model the session as a WS-Resource and at the same time we want to access another WS-Resource within the scope of that session. Let's say that we want to drop a database, which is modelled as a WS-Resource, and we want to log that action. This causes a problem since it's not possible for both resources to be addressed within one message. How do people in this WG recommend we approach this? There was a suggestion during the discussion we had that WS-RF would be used to model the database as a resource but additional mechanisms would be used to model the session (e.g., WS-Context). However, why would another mechanism be used? Isn't the intention of WS-RF to model all "resources" that require lifetime management? Isn't a session such a resource? So, if the solution is to not use WS-RF, then I would say... what's the point in defining a common solution when we can't use it in all situations? If the solution is to use WS-RF to model the session, then we have the problem of needing to address two resources within on message. I'd be grateful for any recommendations from the group. Here are some pseudo-SOAP messages to help illustrate the problem and how it is addressed by the other two approaches I mentioned... WS-I only --------- <envelope> <body> <drop-database> <sessionId>123</sessionId> <databaseId>DatabaseA</databaseId> </drop-database> </body> </envelope> WS-Context ---------- <envelope> <header> <context> ... <sessionId>123</sessionId> </context> </header> <body> <drop-database> <databaseId>DatabaseA</databaseId> </drop-database> </body> </envelope> WS-RF ??? ----- <envelope> <header> <sessionId>123</sessionId> <databaseId>DatabaseA</databaseId> </header> <body> <drop-database /> </body> </envelope> Or <envelope> <header> <databaseId>DatabaseA</databaseId> </header> <body> <drop-database> <sessionId>123</sessionId> </drop-database> </body> </envelope> Or <envelope> <header> <sessionId>123</sessionId> </header> <body> <drop-database> <databaseId>DatabaseA</databaseId> </drop-database> </body> </envelope> Or <envelope> <header> <context> ... <sessionId>123</sessionId> </context> <databaseId>DatabaseA</databaseId> </header> <body> <drop-database /> </body> </envelope> Or <envelope> <header> <sessionId>123</sessionId> <databaseId>DatabaseA</databaseId> </header> <body> <drop-database /> </body> </envelope> Of course the last one seems to be completely wrong. However, I can't see which of the other ones would be the preferred approach. Is there another way I can't think of? The combination of ws-context and ws-rf comes close to be the preferred one but then the question arises on why isn't the session modelled as a WS-RF since it has lifetime-related requirements. We could probably come up with other situations where a similar situation arises and where WS-Context cannot provide us with a solution. Please note that it is not in my intention to try and cause problems. I am just trying to better understand the proposed approach while hoping that this would be a useful discussion to the members of this WG. Regards, -- Savas Parastatidis http://savas.parastatidis.name |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]