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 12:37:50 UTC