Each room can contain multiple users. Each user should be in only one room at any one time. Every user's name is unique across the entire JavaSpace. Users can post a message to the current room. Users can change rooms.
Clients can get a list of all current chat rooms in existence.
Clients can get a list of all users in a particular chat room. Clients should have some way of finding out when a new user arrives in the current room, or a user already in the current room leaves the room. Users that disappear from the network should eventually be automatically removed from their current room. Messages should be automatically removed from the space after a period of time. What you will be doing here is basically data model design, not object-oriented design.