RE: [AMG] : PPT of diagram

Scott,

Your pseudo code seems to catch most of it. The original message is sent to
Node V not Node VI. Node V is intended to be a business/application level
intermediary, say a broker or something like that.

The other pieces that's missing from the code is 'catching' the .confirms
that indicate that the message was at least sent ok (or not).

> 	M1.Destination("Application_NodeVI");  // Is this really the
destination?

No, Node V is the destination of the original operation.


> 	// How did M know to process M1 if the dest was Application_NodeVI?
> 	// Does is process all messages and let T decide to take action or
not?

If the message just shows up, either M has look for targeted blocks and pass
them up to the individual handlers, or we think of the handlers as be
encapsulated as a single 'application/layer client' with some internal
infrastructure for dispaching the message to targetted handlers.

> 	// Does T have a test to see if B1 is really there? If so it makes
> 	// B3, else it leaves it alone?

We don't really know what the function of T is, but drop B1 and insert B3
could be it.

> 	// How does O know to process M1 if the dest was Application_NodeVI?
Again it doesn't the inbound message was addressed to Node V. The
business/application intermediary starts a *new* operation with Node VI.


Well... at least that's how I'd read it!

Thanks,

regards

Stuart


> -----Original Message-----
> From: Scott Isaacson [mailto:SISAACSON@novell.com]
> Sent: 09 February 2001 17:37
> To: mark.baker@canada.sun.com; ksankar@cisco.com; moreau@crf.canon.fr;
> marting@develop.com; skw@hplb.hpl.hp.com; ohurley@iona.com;
> frystyk@microsoft.com; john_ibbotson@uk.ibm.com; 
> marc.hadley@uk.sun.com;
> Lynne.Thompson@unisys.com; nick.smilonich@unisys.com; ylafon@w3.org
> Cc: xml-dist-app@w3.org
> Subject: RE: [AMG] : PPT of diagram
> 
> 
> > I am somewhat confused about why we would want to describe this as a
> > request/response interaction?
> 
> The diagram does have arrows on both ends of the  horizontal 
> message lines! But, if it is request/response,  the diagram 
> does not have identifiers for the messages (M3, M4??) coming 
> back in response to M1 and M2 (where notation Mx = XML 
> Protocol message x).
> 
> Let's assume it is just one-way: "SendMessage".  Do I 
> understand the diagram correctly with the following psuedo-code:
> 
> ******************************************************
> 
> // XMLP Application Code for ApplicationNodeI
> DoWork(XMLPProtocolHandler R, XMLPProtocolHandler S)
> {
> 
> 	XMLPProtocolProcessor L;
> 	XMLPMessage M1 = new XMLPMessage();
> 	XMLPBlock B1, B2;
> 
> 	L = getSendingProcessor();
> 	B1 = S.DoWork();
> 	B2 = R.DoWork();
> 	M1.AddBlock(B1);
> 	M1.AddBlock(B2);
> 	M1.Destination("Application_NodeVI");  // Is this 
> really the destination?
> 
> 	L.SendMessage(M1);
> }
> 
> 
> // XMLPProtocolProcessor code for M
> ReceiveMessage(XMLPMessage M1)
> {
> 
> 	// How did M know to process M1 if the dest was 
> Application_NodeVI?
> 	// Does is process all messages and let T decide to 
> take action or not?
> 
> 	XMLPProtocolHandler T = getHandler();
> 	
> 	T.DoWork(M1);
> 
> 	SendMessage(M1);	
> 
> }
> 
> 
> // XMLPProtocolHandler code for T
> DoWork(XMLPMessage M1)
> {
> 
> 	XMLPBlock B1, B3;
> 
> 	B1 = M1.getFirstBlock();
> 
> 	// Does T have a test to see if B1 is really there? If 
> so it makes
> 	// B3, else it leaves it alone?
> 
> 	B3 = process(B1);
> 
> 	M1.DelBlock(B1);
> 	M1.AddBlock(B3);
> }
> 
> 
> // XMLPProtocolProcessor code for N
> ReceiveMessage(XMLPMessage M1)
> {
> 
> 	// The code in this instance of SendMessage binds to a new UP
> 
> 	SendMessage(M1);
> 
> }
> 	
> // XMLP Application Code for ApplicationNodeV
> DoWork(XMLMessage M1)
> {
> 
> 	XMLPProtocolProcessor P;
> 	XMLPMessage M2 = new XMLPMessage();
> 	XMLPBlock B2, B3, B4, B5;
> 	XMLPProtocolHandler U, V;
> 	
> 
> 	// How does O know to process M1 if the dest was 
> Application_NodeVI?
> 
> 	P = getSendingProcessor();
> 
> 
> 	B2 = M1.getFirstBlock();
> 	B3 = M1.getNextBlock();
> 
> 	U = getHandler(B2);
> 	V = getHandler(B3);
> 
> 	B5 = U.DoWork(B2);
> 	B4 = V.DoWork(B3);
> 
> 	M2.AddBlock(B4);
> 	M2.AddBlock(B5);
> 	M2.Destination("Application_NodeVI");
> 
> 	P.SendMessage(M2);
> 
> }
> 
> 
> // XMLP Application Code for ApplicationNodeVI
> DoWork(XMLMessage M2)
> {
> 
> 	XMLPBlock B4, B5;
> 	XMLPProtocolHandler W, X;
> 	
> 
> 	B4 = M1.getFirstBlock();
> 	B5 = M1.getNextBlock();
> 
> 	W = getHandler(B5);
> 	X = getHandler(B4);
> 
> 	W.DoWork(B5);
> 	X.DoWork(B4);
> 
> 
> }
> 
> 
> ******************************************************
> 
> Scott A. Isaacson
> 801.861.7366
> sisaacson@novell.com 
> 
> 

Received on Friday, 9 February 2001 13:09:42 UTC