| [news.eclipse.technology.ecf] Four types of chat use cases |
|
Based on the conversation so far, I am inclined to think that we have
at least four distinct types of chat use cases depending on whether
GroupIDs and chat SharedObject IDs are well-known or not. I have
giiven each of the types a name suggested by the manner in which it
would be used. This name is not really the important thing. What's
important is the combination of well-known and individualized IDs. ChatRoom -- GroupID well-known, Chat SharedObject ID well-known This is the simple approach that Scott outlined in response to Li-Te's appraoch. In this case everyone knows a common familiar GroupID, e.g., "server.com" and joins that container. They also create a SharedObject with the well-known ID, "chat". This is a big space that anyone with permission to use "server.com" may enter. IM -- GroupID well-known, Chat SharedObject ID individualized I'm not sure this is the best way to do IM, but it feels kind of like IM. We all join a well-known container for some purpose. It doesn't have to be to chat. We might have joined the container for the purpose of learning about people's online status. Then, I decide I would like to chat with someone, but don't want to go to the trouble of creating a new container for that purpose. So, instead, I create a ChatSharedObject, but give it a unique ID. Then, I direct some other group member to create that ChatSharedObject as well. Now, we can use the chat, but others are not aware of our chat and cannot participate. Note: The privacy afforded by this approach depends somewhat on whether getSharedObjectIDs returns all the IDs known at the container or only the ones created by any user. Chat Meeting -- GroupID individualized, Chat SharedObject ID well-known I think this is the approach that Li-Te was trying to outline. It requires two containers: one for the actual chat and one to communicate the individualized GroupID of that chat.
Whisper -- GroupID individualized, Chat SharedObject ID individualized Let's imagine that the ChatMeeting identified above has been joined by many people and we now want to support a private conversation among a subset of the participants. Assuming we are too lazy to create a new container for the purpose, one user might create a new chat object with an individualized ID, then, as in the IM case, they would instruct another user to create the object as well. Note: The privacy afforded by this approach depends somewhat on whether getSharedObjectIDs returns all the IDs known at the container or only the ones created by any user. |