I'm not sure if I understood all of your questions, but some answers:
Traditionally you have a server and clients who connect to the server. I'm not sure what you mean by "session", but if you have a chess like game I don't think it's a problem having a server with multiple clients connected managing different game boards.
Server-Server communication can be done with sockets.