Complete.Org: Mailing Lists: Archives: freeciv-dev: June 2002:
[Freeciv-Dev] Re: Chat Functionality with Jabber
Home

[Freeciv-Dev] Re: Chat Functionality with Jabber

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Reinier Post <rp@xxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Chat Functionality with Jabber
From: Adam Theo <theo@xxxxxxxxxxxxx>
Date: Fri, 07 Jun 2002 11:36:51 -0400



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."



[Prev in Thread] Current Thread [Next in Thread]