W3C home > Mailing lists > Public > xml-dist-app@w3.org > February 2001

RE: [AMG]: Revised Abstract Model draft document.

From: Williams, Stuart <skw@hplb.hpl.hp.com>
Date: Fri, 16 Feb 2001 15:49:47 -0000
Message-ID: <5E13A1874524D411A876006008CD059F192225@0-mail-1.hpl.hp.com>
To: "'rden@loc.gov'" <rden@loc.gov>, "Williams, Stuart" <skw@hplb.hpl.hp.com>
Cc: "'xml-dist-app@w3.org'" <xml-dist-app@w3.org>
Ray,

> -----Original Message-----
> From: Ray Denenberg [mailto:rden@loc.gov]
> Sent: 15 February 2001 21:55
> To: Williams, Stuart
> Cc: 'rden@loc.gov'; 'xml-dist-app@w3.org'
> Subject: Re: [AMG]: Revised Abstract Model draft document.
> 
> 
> Stuart -- thanks much for your thoughtful treatment of my comments.
> 
> "Williams, Stuart" wrote:
> 
> > Alternatively, .request and .indication could be relabelled as .send and
> > .receive for both Data and UnitData operations
> >
> 
> Have you considered relabelling .response and .confirm (rather than
.request and
> .indication) as .send and .receive for both Data and UnitData.  (I.e. get
rid of
> .response and .confirm altogether).  That would take care of the 
> too-many-primitives problem.  It would also solve the problem of .confirm
> semantics (though I think the suggestion to use .status also would solve
that
> problem and I think the .status primitive  is fine).   This is a somewhat
> radical suggestion, but consider this: we view UnitData as essentially
half of a
> Data operation;  by the conventional view, it's the first half (so one
would
> think, from the abstract model). I think it more resembles the second
half. Put
> another way: a Data operation is (first half) a request for information,
> followed by (second half) delivery of information; a UnitData operation
could be
> viewed as just the delivery, without the request.

I think I'd get myself confused if I relabeled the Data .response and
.confirm as .send and .receive. It would get the direction messed up (for
me). I'm inlined to confine the relabeling just to the Unitdata primitives.

As regards the radical suggestion, I'm almost to the point where we'd
ideally want just UnitData. However, I think our commitment to an HTTP
binding means that we *have* to have a expose the request/reponse nature of
HTTP through the expression of the services provided by the XMLP layer. Your
'radical' suggestion suggests going the other way and suggestion that
verything is two-way, except that the response may be 'null'. Which is kind
of ok, and we could do that... in that circumstance you would expect a
.confirm with a 'null' message and some delivery status.

Where things come a little adrift for me is if you consider an XMLP/HTTP to
XMLP/SMTP gateway... that just repackages to message for transport over
SMTP. How is it to know whether to hold open the HTTP/TCP connection back to
the initiating device in anticipation of an actual response returned via
email to the gateway, or whether to close off the HTTP/TCP connection with a
'null' XMLP response.

The other concern that I have is that UnitData only implies a sense of
symmetry (anyone can sent to anyone whenever they like) which isn't there
when layered over HTTP unless you implement HTTP clients and HTTP servers at
both ends. An HTTP server can not arbitrarily send a message to an HTTP
client - it also can't send more responses than it receives requests - which
was one of scenarios you offered around Z39.50. Certainly, we can go for a
nice uniform UnitData world if we make the assumption that all nodes
implement an HTTP server and an HTTP client.

> > I guess I'm heavily influenced by the primitive style from the IEEE 802
LAN
> > specs which (for me) is where  .request, .indication, .response and
.confirm
> > come from
> >
> 
> My memory of the history of this isn't entirely clear (it's been about 20
years)
> but I think that 802 spec simply adopted the OSI service conventions (I
may be
> wrong, it may be that the OSI conventions followed the LAN conventions).

I only meant to imply thats where I first came across them... not that the
originated with the 802 community.

> The
> LAN standards are among very few OSI protocols that have survived.  And
along
> those lines let me relate personal experience. Z39.50 (which I'm the
editor of)
> was originally an OSI standard, and continues to employ these conventions,
which
> have confused people so much (for many years now) that they are almost
certain
> to be refined along the lines I'm suggesting, in the next major release.

I'd be interested to chat with you about this. I've always found them an
appealing way of modeling the fact that you have to  'poke' protocol
machinary with some sort of events. Something happens, packets flow...

> Regarding my first concern,  the revised definitions 
> certainly address them very
> well; thanks.

Good.

>  One  comment:
> 
> >
> > XMLP_Data.indication: Invoked by the responding XML protocol  processor
and
> > directed at a local responding XML protocol application to deliver the
> > outbound XML protocol message.
> >
> > This primitive is invoked as a result of the arrival of a XML protocol
message
> > from the underlying protocol layers.
> 
> I suggest "...arrival of an XML protocol message from the 
> initiating XML protocol  processor (via the underlying protocol layers)"  
> because I think that modeling protocol exchange as peer-to-peer
communication, in 
> my experience, is a useful tool towards explaining these abstractions.
> 
> Similar comment for XMLP_Data.confirm.
> 
> >
> > For section 3.2 I have tried the following relabeling of the primitives
(in
> > relation to observation 2):
> > XMLP_UnitData.request      -> XMLP_UnitData.send
> >
> > XMLP_UnitData.indication   -> XMLP_UnitData.receive
> >
> > XMLP_UnitData.confirm      -> XMLP_UnitData.status
> >
> > On the UnitData.confirm I felt that both .acknowledge and .deliver also
have
> > the potential to mislead, .status seems more in tune with what I think
> > happens.
> 
> The .status primitive seems fine to me.  If you were to adopt my
suggestion
> above about dropping request and confirm altogether for the Data operation
(and
> Ill grant, it's a radical suggestion), then .Confirm would be fine too.

I'm going to stick at where we got to. The radical is certainly up for
discussion, but for now I need to freeze a version for the F2F to consider.

BTW... given your contributions I would be very happy to credit you as
contributor to the document provided that you feel it would be appropriate.

> 
> Thanks again, for considering my suggestions.
> 
> --Ray

Best regards

Stuart
Received on Friday, 16 February 2001 10:50:47 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:58 GMT