= List of pending tasks =
Implement additional examples using common communication patterns
Server distribution and failover?
   http://www.xs4all.nl/~irmen/pyro3/manual/5-nameserver.html#paired
switch client ID to int? visible in log and likely in future monitor tools 

XFuncs local and global functions (xfuncs dict with 'global' and 'local')
   to support e.g. local encryption/decryption
   hierarchical XFuncs can be implemented by inheritance
MiG integration
   ps server at MiG server
   use session ID + flag as unique and safe element id
   replacement/alternative to live IO
   security impact of global Xfuctions makes it a no-go on the MiG server
Pyro replacement?
   not important now but maybe as student project
PS monitor tools (like e.g. PVM)
   use client registration of fqdn and specs into __clients element at start up
   dill pickle alternative, includes process serialization support (students?)
   use pyro-ns like lookups to find the information
psclient loop pulls as many spawn apps as it can without waiting
   maybe add optional max_spawn option to prevent clients from overloading?
   multi core nodes should be able to multi-spawn but maybe not grab all
   only a real issue when decreasing PSWAITPROCS below PSPROCS, now
Name server sharing to allow reuse of running pyro name server when
   available. This will make concurrent runs easier without pyro port
   mangling. It requires name space separation and some kind of ref
   counting in relation to start and shutdown of name servers. 
Local-only mode to allow easy testing without ssh setup
   Especially important on Windows where ssh setup is a pain. We introduced
   ssh even for local actions because it made consistent environment passing
   easier but it should be possible to switch off. Popen(bla, shell=True) may
   be required to support our PSXYZ=bla pypsX style calls. 
