Okay, this might be a little more accurate and informative: +-------+ | Front | +-------+ | /|\ | | LOCAL | | LOCAL | | \|/ | +--------+ | Middle | +--------+ | /|\ | | INTERNET | | INTERNET | | \|/ | +--------+ | Middle |/______________ +--------+\ | / \ | LOCAL / \ LOCAL | LOCAL / \ | +-----+/_/ \_\+-----+____| | |\ /| | | Back|_______________\|Back |_________\ | | ANY PROTOCOL /| | ETC. / +-----+ +-----+ Note that if the backs and fronts are on the same computer, the middle loops back to itself via Internet connection. The 'LOCAL' connection between Front and Middle is the streaming XML dialog we've been talking about. It can be standard, _local_ IPC (inter-process communication; my preference) or an Internet connection/RPC (remote procedure call; Gary's preference). The 'INTERNET' connection is something we haven't discussed at all. It involves 2 middles talking to each other. Of course it can be via standard Internet socket. Some may argue for CORBA...I wouldn't ;-) There are also the 'LOCAL' connections between the middle and backs. I think those should definitely be through ordinary, _local_ IPC. But the same argument for having front-to-middle communication go through the Internet, can be made for a middle-to-back connection. Plea: Guys, for the sake of simplicity (and security!) can we just deal with _one_ Internet connection (between middles)? At least until we've got this stuff down to a science. What do you say? Brad, the Python 'Expect' modules I sent you should be helpful for figuring out local IPC. Cheers. Jeff -- +----------------------------------+ | J.W. Bizzaro | | | | http://bioinformatics.org/~jeff/ | | | | BIOINFORMATICS.ORG | | The Open Lab | | | | http://bioinformatics.org/ | +----------------------------------+