- From: Hugo Haas <hugo@w3.org>
- Date: Fri, 23 Mar 2001 20:26:40 -0500
- To: xml-dist-app@w3.org
HTTP ==== The current HTTP sample mapping on the initiator side is: Initiator Binding Primitive Binding Action OP.start-req Confirm address validity OP.start-conf MSG.req Send POST data Receive POST results MSG.ind OP.end-req Close connection OP.end-conf 1) What does "Confirm address validity" mean? Is that a syntax checking on the URI of the destination? 2) There is a "Close connection" option but no "Open connection" which looks assymetric to me. Moreover, I was wondering what the boundary between OP.start-req and MSG.req was. I see the following steps to do in order to do an XMLP request via HTTP: 1) establish a connection to the server or reuse an existing connection. 2) send the request line (e.g. "POST /my_xml_service HTTP/1.1"). 3) send a few miscellaneous headers (Host, User-Agent headers, etc). 4) send some XMLP specific headers (in the spirit of SOAPAction). 5) send the message body (XMLP message = POST data). 6) receive the HTTP response. 7) close the connection or keep the connection alive. 1 requires the knowledge of a host name and a port number. 2 and 3 require knowledge of the URI of the request. 4 and 5 require knowledge of the message. I think that step 1 is in OP.start-req, and steps 2, 3, 4 and 5 in MSG.req's scope, and step 7 in OP.end-req. I would therefore, not including for now the address validity check which is obscure to me, do the following: Initiator Binding Primitive Binding Action OP.start-req Open connection OP.start-conf MSG.req Send POST request Receive POST results MSG.ind OP.end-req Close connection OP.end-conf Responder Binding Primitive Binding Action Accept new connection Receive POST request OP.start-ind OP.start-resp MSG.ind MSG.req Send POST results Receive connection close OP.end-ind OP.end-resp I replaced "POST data" by "POST request" because in my model MSG.req is really an HTTP request, whereas "POST data" makes me think of the message body of the HTTP request. SMTP ==== Let's consider the SMTP binding now, comparing it to the HTTP one. It does not have this address validation step, that I am going to leave out. An SMTP request would be modelled that way: 1) open a connection to a server or reuse an open connection. 2) send a HELO command (not required if the connection is already open, but let's keep it simple). 3) initiate message delivery (e.g. "MAIL FROM:<whatever@example.org>"). 4) specify recipient (e.g. "RCPT TO:<my_xmlp_stuff@example.com>"). 5) start data transder with DATA command. 6) send XMLP message. 7) finish transaction (with a "."). 8) disconnection (QUIT command) or keep the connection open. 1 requires a host name and a port number. 4 requires knowledge of the URI (a mailto: URI) of the destination. 6 requires knowledge of the XMLP message. I see the steps organized like this: OP.start-req: steps 1 and 2. (opening of the SMTP session) MSG.req: steps 3 to 7. OP.end-req: step 8. (termination of the SMTP session) I would therefore use, for SMTP: Initiator Binding Primitive Binding Action OP.start-req Open SMTP session OP.start-conf MSG.req Send message OP.end-req Terminate SMTP session OP.end-conf Responder Binding Primitive Binding Action Begin SMTP transaction Receive mail message End SMTP transaction OP.start-ind OP.start-resp MSG.ind OP.end-ind OP.end-resp -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092
Received on Friday, 23 March 2001 20:26:43 UTC