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.