On 15 Jun 02, at 14:12, Robert Sanderson wrote:
>
> > > The folks who want the session id seem to be happy
> > > if it's optional. Nobody seems to object to an
> > > *optional* session id. There is at least one
> > > implementor who claims not to support result set
> > > ids (Ralph). Is it fair to say, though, that if
> > > you do support result set ids then you support
> > > session ids?
> > No. We support resultset ids but not session ids. A resultset is an
> > existing set of records. Sessions we just do not know what it is.
>
> And you just accept that unless you assign long randomly generated names
> to the result sets, that they could be misappropriated?
We currently use a datestamp and a sequence number. I do not
see a problem here.
>
> And that these long randomly generated names will have to be returned in
> the CQL. So if I wanted to do a search using 3 different result sets, I
> would have to send some ridiculously long query string. I assume that you
> don't also want to have to escape the CQL in a URL, which limits you to
> A-Za-z0-9 in constructing resultset names.
>
> Say 20 characters of result set name. 60 out of 256 characters devoted to
> just the names of result sets, which could be accomplished much more
> easily using a session identifier and shorter result set names.
>
Currently we do support either queries or requesting records from
single resultsets. We do not support resultsets in a query. In that
case the client have to create a new query. When we have to
support resultsets in queries (which I don't like), we'll do. When
SRW/SRU specify that servers may return session id's we will
support it. And when session ids are the ONLY solution to to solve
url-length problems, we are even going to link resultsets to
sessions. But currently we do not have any of such problems with
our SRU-portal and SRU-server.
> I assume that you don't expect the user to retype all of those result sets
> into their query? But then you need more power in constucting the CQL than
> a web browser is likely to offer, so perhaps you do?
>
I think it is a misunderstanding that users type in URL's in SRU.
The URL's are generated using javascript.
>
> > > So if a client sends a session id, if the server
> > > supports it, he echoes it in the response and if
> > > not, ignores it (so if it is not echoed the client
> > > knows that the server doesn't support it). And if
> > > the server doesn't support it, then it also
> > > doesn't support result set ids (and signifies this
> > > by not echoing it).
> > >
> > > Will this work?
> >
> > No.
> >
> > Lets keep it simple and just treat things as they are. What is a
> > session? Especially in a web environment the context of a request
> > is not the same as the session context. When u user goes back a
> > few pages in his history what is his session context? His current
> > page or the last page he requested? Sessions were nice when a
> > user had a connection with a telnet client and only the server was
> > aware of the sequence of actions.
>
> I for one won't be implementing such a specification, as it would be a
> complete waste of my time. I implemented a Google client because it was
> literally 10 minutes work. If I have to write a parser for CQL, but I
> can't do anything interesting with the result (due to lack of state) I'm
> not going to bother starting.
>
I do not really understand the point, but I think we have a different
opinion on how to treat "state". I want each request should be "self-
containing" and you want servers to remember the sequence of
requests. I do not have an immediate solution for this difference in
approach.
> Either drop CQL and go to a fully XML based query language to reduce
> implementation overhead, or make it worthwhile implementing CQL by having
> a non crippled protocol.
>
> Matthew has said that this is a marketing exercise ... Fine, then make a
> product worth marketing either in terms of ease of implementation or its
> capabilities. But with CQL and without sessions you have neither.
>
>
> > Currrently we may recognize resultsets and we may recognize
> > users but I do not know what a session is. The only thing that
> > looks a liitle bit like the sessions from the old days is the use of
> > cookies in a browser session: cookies that are stored as long as
> > you do not stop your browser. But I see that more as an alternative
> > to time out the validity of a user authentication.
>
> Most clients will not be web browsers. Cookies are a nasty hack to get
> around the very fact that there is no persistent connection.
> Cookies can also persist past a single invocation of a browser. They are
> used for much much more than just user authentication.
>
I was not suggesting the use of cookies.
> Go and look at the list of soap implementations. Count how many are based
> on web browsers. Yes SRU will probably be used via a web browser, but
> that too is not a given. Any slightly sophisticated script that needs to
> reference more than one SRU request at once will need server side code or
> some ridiculous hacks such as loading the results into one pixel frames.
>
I have to admit that I am not very familiar with SOAP. I wanted to
have a search and retrieve protocol available to a large user
population with minimal demands on their local configuration. Most
users have a webbrowser and I do not see any reason to make the
barrier for using a search and retrieve protocol higher by demanding
more than a webbrowser. With SRU and Internet Explorer we do
simiulteneous searching in more than one database without
ridiculous hacks and without special server code. What would be
the motivation to do it differently?
> > BUT: when a server wants to specify some kind of property that it
> > wants to have returned at a next request, lets call it <sessionid>
> > and let it be sibling to <resultsetname>. BUT: for the client both
> > sessionid and resultsetid and "authorisation ticket" are different
> > things.
> > Question: when there is a "authorisation ticket" as parameter, who
> > still needs a sessionid and what for?
>
> Where did this authorisation ticket appear from? It sounds like just
> another name for session id. If you mean, on the other hand, that you do
> not need session ids if you have user authentication, then I disagree
> entirely and have already pointed out the various scenarios in which
> sessions and user authentication are different.
>
> Rob
I think I introduced "authorisation ticket" in another mail. For me a
resultset, a session and a user are different things. Within a
session there may be different resultsets and a user may have
several sessions. I do not mind supporting sessions and user ids
when it is required by servers, but I strongly advise not to mix up
resultsets, sessions and users.
Theo
|