Tigase XMPP/Jabber Server 4.0.0-b1212

Submitted by kobit on Wed, 2008-11-12 15:21.
::
First released: Wed, 2008-11-12 15:21

I am happy to announce that the: Tigase XMPP (Jabber) Server 4.0.0, SVN revision: 1212 is now available for download.

The jar file contains the cross-platform installer and can be run on any Java capable system. It allows you to install, configure and prepare the database for the Tigase server. For MS Windows users convenience exe file is also available for download. This is basically the same JAR file wrapped inside the windows executable format. For those who don't like installers or can't use them on terminal only systems tar.gz file and zip file are available as well.

Taking the opportunity I would like to thank you all for the support you provided to the Tigase project over the time. Many people helped me in many ways, from writing patches, sending me suggestions, discussing new, better ways for doing things to simply spreading the good word.

The release was delayed several times as it is really hard to resist users' request to add "just one more change, improvement, fix, feature....".

And indeed the number of changes, new features, improvements and fixes fully justify long time waiting from previous release. There are additions specific to large installations and companies needing a scalable server supporting hundreds of thousands or millions user accounts can appreciate those changes. There are also changes and improvements specifically added for small installations and less advanced users. Please have a look at the brief list below for the major changes and additions:

  1. Full Clustering support with HA and LB.
  2. Cross-platform Installer with the server configuration and database setup functionality.
  3. Supported databases for user data: MySQL, PostgreSQL and Derby, for the user authentication - any JDBC database.
  4. New MUC and Pubsub components.
  5. New user Roster Storage.
  6. New Database Schema for users data.
  7. Improved integration with Yate Server.
  8. New Authentication Connectors for easier integration with third party systems.
  9. Anonymous user accounts and anonymous authentication added.
  10. Rewritten s2s connection manager.
  11. Many new automatic tests added to improve quality of the code.
  12. Tens or maybe hundreds of small changes, fixes and improvements...

Please note.

I have put a lot of effort to ensure the server works well. Many automatic tests have been added to check the server behavior in different scenarios. The server code seems to be stable and performs very well.

The installer however is a completely new thing. Even though I have spent a lot of time testing it on different platforms with different databases it might behave in unexpected way. Therefore I strongly advice to caution especially when upgrading the server from the previous version. Backup all old server files and also backup existing database. The installer should be able to upgrade the database schema without any data loss.

Any comments or thought are as always very welcomed....

Below is the detailed description for the list above:

  1. Full clustering support offering both HA (High Availability) and LB (Load Balancing) - the change requested many times. This is the most important addition also because it required rewriting some parts of the existing code. This is one of the changes which can be appreciated by companies aiming at large deployment with hundreds of thousands or maybe millions of user accounts.
  2. New Tigase Server Installer with configuration and database setup functionality - probably the most often requested element. It does not affect any server code. It seems this addition is most likely interesting to less advanced people who want to setup small installation for own needs or for small companies installation. It allows not only to install the server but also allows reconfiguration of the server at any time. This installer help you with the database setup as well therefore there is no need for any manual schema loading or setting user permissions in the database.
  3. MySQL and PostgreSQL were always supported by the Tigase server. For simple installation was also available XML based user data repository. This database was quite unstable created mainly to make development easier. Therefore in version 4.0.0 it has been replaced with Apache Derby database. This is embedded database and doesn't require to install anything by the user. This is a perfect choice for small installations or for development purpose.
  4. The MUC component has been rewritten and Pubsub component has been added to the Tigase server. While the MUC component is widely known and used the Pubsub component is much less used, probably because most clients doesn't support it yet.
  5. A new Roster storage has been implemented which significantly speeds roster loading up. The user roster is now cached in the user session as this is one of those data frequently accessed during packets processing.
  6. Database schema for storing user data has been changed. There was no significant change however. The data structure is still the same. Mainly fields size has been increased to allow storing more data. I think the Tigase server is now the only XMPP server which allows for full length Jabber ID usage which is 2047 characters long according to the RFC. Normally JIDs are not that long but on some systems with automatically generated JIDs they can be quite big. The user password is now kept in the main users table and can be encoded in many ways.
  7. We work very closely with Yate developers to ensure good integration between XMPP and internet telephony systems which are deployed using the Tigase and Yate servers.
  8. New authentication connectors allow for easy and straightforward integration with any third-party system using SQL database for storing user authentication data. If you use TigaseAuth connector you need to write a set of stored procedures for the database. At minimum you need stored procedure for performing user login, user logout. A few other procedures are used for changing user password and accessing other user data which are optional. TigaseCustomAuth connector allows you to connect to any SQL database. You can put SQL queries in the Tigase server configuration file which are used for a user authentication. With those 2 connectors you should never need to change the Tigase server code for using it with other systems.
  9. Anonymous user accounts and anonymous authentication has been added to the server. This is especially useful for deploying systems with online support functionality. Have a look at the Tigase website and the Minichat client. This is it!