So, typically the model that I'm familiar with is that if you want to have some way for multiple users on different terminals to interact with the same process, you would write client programs that interact with a single server process. 

My question is: Is it possible/reasonable for each client to somehow attach directly to that single process rather than having to write a client/server program? My goal is to avoid the complexity of serialization over a sockets layer, and just have all the terminals communicate using shared datastructures in memory. 

I'm guessing that it would be pretty tricky, and perhaps impossible under unix, but I'd like to hear if anyone has ever done or seen anything like this, and what the requirements might be, and whether or not the decrease in serialization complexity was outweighed by other disadvantages of this approach.