[Freeciv-Dev] Re: Chat Functionality with Jabber
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Reinier Post wrote:
The reason being my other hobby is Jabber [www.jabber.org], an open and
free (as in freedom) XML protocol for instant communications. It began
as an open Instant Messaging platform that could easily be converted to
other protocols (such as AIM, ICQ, HTTP, SMTP, etc...), but is now being
used in many places as a middleware protocol to exchange data between
different legacy systems (precisely because it's easy to convert to
legacy protocols).
It looks as if Jabber could bring some real improvements to Freeciv.
But bringing in complex technology like that conflicts with the Freeciv
goals of being very portable and lightweight. To give you an idea:
+ Freeciv compiles on 10 year old Unix installations
+ Freeciv is popular on Amiga
+ I used to host 6 player Freeciv games over a 28k8 modem connection
+ Freeciv has features to improve playing over high-latency connections
(asynchronous mode, server+side goto)
Yes, a very good goal. Jabber is very powerful, yet remains lightweight.
It can do this because the protocol is very modular. Only the features
and functionality being used at the time for the situation at hand is
included in the messages. If you are not using presence, it is not in
your messages. If you don't need to set expiration dates, that is not
included. This results in no to little makrup bulk.
Jabber is designed to be very easy to impliment, too. One of the core
architecture designs is to have the server do as much of the processing
work as possible and keep the clients light and thin.
One result of this is Jabber can easily run on very old or restrictive
hardware. Not only can many Jabber conversations go on at once on 10
year old computers over a 28k modem line, but Jabber can also run on
PDAs and cellphones.
Yes, but does Freeciv want to be a chat client? How portable is this
Jabber software? How expensive is it in size and bandwidth?
Jabber is the XML protocol. It is very modular and lightweight since you
choose what features and functionality to include in the protocol as you
use it. The only bloat it has is from the simple fact it is XML, which
is not the most streamlined of computer languages. Even with that,
Jabber is a fast, stable, and resource-easy platform. The post popular
server, JabberD (also called JOSS) [http://jabberd.jabberstudio.org],
can easily handle up to 100 users online at once over a ISDN line and on
regular desktop computer hardware. The jabber.org server handles an
average of 500+ users at once on decent server hardware (and I think the
website also runs on it, too). I can try to get hard stats, but this
should show that Jabber is more than able to keep up with FreeCiv's
small scale.
It is simple and easy to impliment, there are
many tools in many languages and under many licenses already out there,
and the developer community is large and eager to help. I would also
like to see Jabber used in other areas of FreeCiv, such as possibly
adding a "presence" mechanism (like Instant Messaging presence) and a
user/server directory for search & discovery features.
All of these would be very nice to have for Freeciv. But it seems
more logical to think of it in the opposite direction: Freeciv
as a plug-in to a chat system. Some chatters would get
together, agree on the settings, and start a Freeciv game,
at which point everybody would get a Freeciv client and the
Freeciv server would start the game. Does Jabber support this?
With a bit of programming work this can be done. The Jabber protocol
doesn't forbid it in any way, and is in fact extensible for reasons just
as this. The only work needed would be to get a couple of existing
Jabber clients to "recognize FreeCiv" and send, receive, and act on
commands it gets through chats.
* It was originally modeled after the e-mail system, and its
architecture is still very similar, with many different Jabber servers
in the world, each with its own set of users, and all able to talk to
each other in a distributed client/server system (again, like e-mail).
You mean IRC?
No, not like IRC. With IRC you cannot be in one server and send messages
to chatters on another server, only those in the same chatroom as you.
IRC is a bunch of autonomous servers that share a common protocol. Email
(and Jabber) is a network-agnostic federation of servers who share a
common protocol and frequently communicate between each other, using
other servers to route messages between destinations and down the line
to users.
* Jabber is an open and free protocol, like SMTP (e-mail), that
fully uses XML and XML Namespaces [http://www.w3.org/XML/]. Anyone can
code up their own Jabber server or client, and distribute/use it how
they want. You don't have to pay any royalty fees or ask permission to
make something that uses the Jabber protocol.
Like IRC?
Yes, like IRC. But IRC is very limited and too fractured. Jabber is a
cohesive, very extensible, modular protocol that can be used in many
different situations.
* Jabber is an Instant Messaging platform in its own right. As
mentioned above, its protocol is entirely XML, and as mentioned below,
it communicates with other IM systems. Jabber does not exist soley to
communicate with other systems. It exists to ensure that Instant
Messaging ends up like e-mail: Open and Free.
Like IRC?
IRC is open and free, yes, but it is not easily extensible and has
little united leadership.
* Jabber users are able to "talk" to users on other systems (AIM,
ICQ, MSN, Y!, IRC, E-mail) by using the server-side Jabber Transports.
Each server has its own set of Transports (although it doesn't have to),
and if you don't like the transports on your host server, you can
"browse" on over to another Jabber server and use its Transports, all
without creating a new Jabber account on that other server.
This is very nice, and another argument to think of Jabber as something
that should stay outside of Freeciv, and interface with it.
Jabber could be restricted to being a meta-router for the current
protocol to other systems and servers, yes. But why do that when Jabber
could be the native protocol as well, and have all of that built in and
ready to go whenever it is needed? One great thing about Jabber is it is
quite future-proof. There is no re-visioning of the base protocol when
something needs to be changed. an extension is simply specified and
client and server developers impliment it when they can, without having
to dig deep into the inner workings of the code to revise something.
Well, do you have any specific propositions?
Do you want a list of wish items for Freeciv that may or may not
be delegated to Jabber?
I would love such a list, yes please. And my specific proposition is for
FreeCiv clients and servers to adopt Jabber as their chat and possibly
presence (online, busy, available, etc) protocol instead of the current
home-grown one.
--
/\ Adam Theo, Age 22, Tallahassee FL USA
//\\ Email & Jabber: theo@xxxxxxxxxxxxx
// \\ (Boycotting AOL, therefore no AIM or ICQ)
=//====\\= Theoretic Solutions: http://www.theoretic.com
// || \\ "Bringing Ideas Together"
|| Jabber Protocol: http://www.jabber.org
|| "The Coolest IM on the Planet"
|| "A Free-Market Socialist Patriotic American
|| Buddhist Political Philosopher."
|
|