[JDEV] Just an idea...
Rob Brown
rob at hypermatch.com
Thu Aug 31 14:14:07 CDT 2000
Please forgive me if this is a rehashing of things that have already been
discussed.
I am curious if anyone has considered having an "extended" protocol for
clients, where clients can reduce load on the server and provide extended
functionality, by becoming "listening" servers themselves. The idea being
that clients do not have to support this, but ones that do will identify
themselves as such and the server (which also doesn't have to support it)
can use it if it wants to.
The two things this might be useful for are:
1. allows the client and/or server to close the connection while still
maintaining "presense", probably allowing the server to scale better
because it doesn't need a persistent connection for every person. If an
event happens, the server knows how to contact the client because it
maintains its address. This would be transparent to the users: from their
point of view, they never have to know when a connection is open or not,
they simply have enabled a setting which allows the server (or the client)
to decide when it is appropriate to close the connection. Presumably it
would close the connection if it's inactive for a period of time.
2. allow trusted members of your buddy-list to connect directly to your
machine. The user could allow some or all of the people on his list to
directly communicate peer-to-peer if they also support the extended
protocol. If they don't support it, or they don't wish to connect peer to
peer with you, it falls back on the current behavior.
I would imagine that if you can connect peer to peer with another client,
there are things you could do that would otherwise put too much load on the
server...sending files/voice chat/etc. I always liked ICQ's "continuous"
chat mode (where characters show up as you type them), but even that might
put a lot of strain on the server since it is so inefficient. If you are
connected peer-to-peer, who cares?
This seems to address most if not all of the reasons I have seen given for
the Jabber approach of "everything goes through the server". Messages to
people on other systems (ICQ etc) would still go through the server of
course, and the client can still be ultra-simple if it doesn't want to
bother supporting this protocol.
Has anything like this been discussed? Already been soundly rejected? :)
-rob
More information about the JDev
mailing list