Infusion - The Desktop Communications Revolution
Copyright (c) 2000-01, SCCG/Flaming Sword Productions
All Rights Reserved!
http://infusion.sourceforge.net/
Introduction
Greetings! Infusion is intended to be a powerful corporate communications platform, the likes of which you can only find in Microsoft Outlook. The goal of this project is to provide end users with a product that is identical to Outlook, but is capable of running across many UNIX platforms. It is my intention to keep this project in the open-source, to benefit from (and to provide benefits to) the expertise of others, and also to ensure that this client is able to remain useful to your business in the rapidly changing world.
Infusion is capable of providing group-scheduling and e-mail communications through the Citadel/UX Communications Server. Because the Citadel/UX server provides such powerful interoperation with standard internet protocols, there is no real need to write this functionality into Infusion. That being said, don't be surprised if you notice that Infusion doesn't speak SMTP or POP3.
In the future, I will be working on creating a way for Infusion to connect to standard Internet (SMTP/POP3/IMAP/LDAP) services. This will not happen until all of the core functionality of the Infusion client is written and working, so don't hold your breath! :)
(If you don't like to get involved in UI/OS flame wars, you may want to skip over the next section...)
Philosophy
Ok, I've read people's complaints online about how eerily (remarkably?) similar Infusion is to Microsoft Outlook. Fortunately, to date, Microsoft hasn't taken issue with this, and I don't believe that they should (as, unlike Apple, they generally take the view that imitation really is flattery, in some cases). I have chosen to make this software look, feel, and behave identically (or as close as I can, anyway) to Outlook because Microsoft Outlook is the e-mail client which is running on darn near 80% of the world's computers, and chances are, most office desk jockeys already know how it works. This makes switching from a proprietary (AND incredibly expensive!) Outlook/Exchange network to a completely free Infusion/Citadel network much easier for IT/IS managers to handle, since there will be at least one less user training issue.
I have chosen to use the KDE development interface for this project because it provides the user with the most coherent, consistent, and friendly interface available for UNIX. Period. Nothing else created to date (and ESPECIALLY not GNOME) can provide such an intelligent (or is that intuitive?) interface to the user as the KDE 2.x software can, and end-users really are able to adjust every piece of it to fit their needs, without having to hack it up.
Enough, Already!
Ok, that's probably the extent of my soap-box time. My apologies to all of my fellow geeks that I have just offended. No offense was intended. I'm simply bull-headed! :)
Architecture
The Infusion client is made up of 2 parts, a desktop client, and a communications daemon. In this sense, Infusion is a 3-tiered application, since the desktop client will (eventually) not make any connections at all to the backend communications server, but will communicate through the Infusion Daemon instead. This is not exactly the way it works right now, but I'm much closer to this model now than I've been so far. :)
+----------------+ +-----------+ +------------+ | Desktop Client |<----->| infusiond |<+------<>| Citadel/UX |
+----------------+ +-----------+ | +------------+
| +-----------+
+------->| SMTP host |
| +-----------+
| +-----------+
+-------<| POP3 host |
| +-----------+
| +-----------+
+-------<| LDAP host |
+-----------+
Fig. 1: Overall System Architecture
Both the Desktop Client (Infusion) and the Daemon (infusiond) are programs which execute on the end-user's desktop. The user interacts directly with Infusion, and occasionally with the Daemon, which appears in the KDE System Tray. The Daemon contains a rudimentary connection parallelization layer (under construction) which will allow it to talk to many communications servers. This functionality hasn't been written yet, but it's being planned in the back of my mind.
The user normally interacts with the Infusion desktop client, which is the part which behaves exactly like Microsoft Outlook. The client will make the necessary calls to infusiond to retrieve the data which it requires to fulfill the user's request. In order to make the process more efficient, infusiond actively caches the information that it retrieves, greatly improving Infusion's response time. I am still working on developing a cache maintenance algorithm that will allow for the most efficient caching of data, without filling up all of the system's memory. This will be one of the areas of improvement that should come to the infusiond subsystem before too long.
Future Plans
At this point, I am working as hard as I can to stabilize the features which currently exist in Infusion. Unfortunately, this hasn't progressed as rapidly as I had hoped, so the codebase is still shifting subtly from release to release. (It would probably be less sever would I release code more often, I suppose...) Unfortunately, this adds to my headaches as I try to keep new bugs from appearing in the code. :)
That being said, I think I am getting to the point where drastic changes (ok, drastic changes which affect the entire codebase!) will start becoming more infrequent, and I can begin concentrating on making each of the individual components more solid. I am still currently trying to finish adding some last-minute features which I had never fully been able to implement (Contacts List, Calendar, etc) until now.
All I can ask is that you, the consumer, bear with me (1 person! I'm only 1 person! I don't have a team of Bulgarians working on this, it's just me!) as I try to make this the best communications product that the world has ever used. If Infusion doesn't work for you today, try it again next release! I promise you that it will keep getting better!
Compiling Infusion
Please refer to the INSTALL file for details.
See-Also
Please obtain more information about Citadel/UX Communication System at its home, on the web at:
http://www.citadel.org/
http://uncensored.citadel.org/citadel/
Request-For-Comments
How were your build experiences now? Does 0.61-RELEASE compile for you considerably better than 0.60-RELEASE? I am interested in hearing all comments that you have regarding this project! Please feel free to send me your comments, so I know what you think! I may not be able to respond immediately, but I should get around to writing back to you! (Just don't be offended if I don't get back to you within a "reasonable" amount of time. I'm not ignoring you, I'm just swamped! :)
- Brian Ledbetter <brian@shadowcom.net> ShadowCom Consulting Group (Flaming Sword Productions) http://www.shadowcom.net/
$Id: README,v 1.3 2001/09/08 02:48:40 brian Exp $
