Ignite Realtime Blog

Previous Next
23

We're in the process of making the Openfire Enterprise module Open Source (see Matt's blog). The Enterprise module provided several areas of functionality that were available as a single plugin. A quick list:

Reporting - a dashboard with statistics about server load, user sessions, chats, groupchats, etc. and support for executing reports.
Chat archiving - support for tracking conversations taking place on the server. Both one-to-one and groupchat conversations can be archived.
SparkWeb client - the web-based version of the successful Spark client.
Clustering - support for running several machines hosting the same domain. Thus adding fail-over and better scalability of the server.
Client control - controls whether certain features are available or not in the Spark client (e.g. file transfer, broadcast, groupchat, etc.). Moreover, it is also possible to specify which clients can connect to the server, push new versions of the Spark client and populate rosters with groupchat bookmarks.
Fastpath - provides rich web-based click-to-chat functionality with support for requests to the best available operator in queues. It's ideal for web-based realtime helpdesks.

Turning a commercial product into an open source product implies more effort that one would initially estimate. Therefore, we are going to break this process in two stages. During the first stage we will offer several plugins that will include the features listed above (with the exception of clustering). Our clustering solution relies on a commercial product and will not be made Open Source. The output of the first phase will be:

  • Reporting and Chat transcripts plugin - this plugin will include the reporting and chat transcript functionalities
  • SparkWeb - SparkWeb will be available as a separate project and not as an Openfire plugin
  • Client Control plugin - the ability to manage clients will be available as an Openfire plugin
  • Fastpath plugin - the Fastpath application will be composed of an Openfire plugin and the WebChat plugin. The webchat.war plugin can be deployed to Openfire as a plugin or can be deployed to your application server (e.g. Tomcat) of choice.

The second stage of this process will include:

  • Reporting and chat archiving - This functionality was available as a plugin in stage one. For stage two we will evaluate making it part of the server itself.

Stage one is planned for April 27th, 2008. That means that two weeks from now we will have most of the functionality included in the enterprise edition available as open source plugins. No clear date has been assigned to stage two but it should take place a few months after stage one.



Apr 7, 2008 4:23 PM Click to view BenV's profile BenV

So, if clustering is not to be made open source, and the commercial product is discontinued, is clustering also discontinued? Is there a way we can purchase something to enable clustering? This was the most exciting feature of the enterprise plugin for us (frankly, it is the only enterprise feature we care about)

Apr 7, 2008 4:28 PM Click to view srt's profile srt in response to: BenV

If the main reason not to open source the clustering support is the license of coherence it should be quite easy to replace it by terracotta. The modular design of the caches in openfire won't make this too hard.
Depending on the Jive guy's thoughts on this topic I could imagine this to be done by the community if there is enough interest/sponsering.

Apr 7, 2008 4:38 PM Click to view dombiak_gaston's profile dombiak_gaston in response to: BenV

Hey BenV,

We are still discussing what we can do with the clustering feature. If you had an Enterprise license then you can continue using it and get support from Jive. Stay tuned for more news.

Thanks,

-- Gato

Apr 7, 2008 4:39 PM Click to view DallasG's profile DallasG in response to: dombiak_gaston

What about additional licenses, how will that work?

Apr 7, 2008 4:41 PM Click to view dombiak_gaston's profile dombiak_gaston in response to: srt

Hey srt,

I'm not sure about the quite easy part ;) but for sure we would love to help the community in this initiative. When we implemented clustering we put special focus on decoupling it from Coherence so in theory it should be possible to use other clustering solutions. Having said that, it is possible that subtle architecture dependencies are hidden in the current design so I wouldn't underestimate surprises that you may find while doing your own clustering solution.

Regards,

-- Gato

Apr 7, 2008 4:44 PM Click to view dombiak_gaston's profile dombiak_gaston in response to: DallasG

Hey Dallas,

Contact your sales rep. I think that you can use your Coherence license with more nodes.

Regards,

-- Gato

Apr 7, 2008 5:54 PM Click to view sanderd's profile sanderd

"Client control - <snip> Moreover, it is also possible to specify which clients can connect to the server,"

Nice, then I can test one of Coccinella's features and blog about how to exploit this feature to bypass this useless security through obscurity misfeature. The feature is that you can add a line to Coccinella's configuration file to define the client name. So, you can call it "Dombiak Gaston Mesenger", "Psi", "Spark", "AOL Instant Messenger", or whatever you prefer or need to bypass the server restrictions. All you need to do is to restart Coccinella, no recompilation or whatever is required.

Apr 7, 2008 6:01 PM Click to view jadestorm's profile jadestorm in response to: sanderd

There's always -something- you can do to get around such things. None-the-less, if your company is not a pack of wild animals and behaves themselves, a simple ability to stop the company members from "trying out something unapproved" is a good thing. In other words, if you are going to circumvent the rules, you can find a number of ways to do that. If it's primarily there as a way of catching the case of joe blow downloading a random client like Coccinella that you did not approve on your network, where joe blow may simply have not thought about not being able to use it, it prevents that case.

Of course Coccinella should probably be online the list available in the actual plugin if it's not already. ;)

Apr 7, 2008 6:15 PM Click to view mipe's profile mipe in response to: jadestorm

It is really nice to open source commercial plugins. I have downloaded openfire 3.5.0 and the enterprise plugin, however as above mentioned, this time it is still commercial and requires to enter license. The problem is that the 30-day evaluation license cannot be found. I remember I saw on jivesoftware web site former, now it is gone. Does anybody know where I can request the evaluation license?

Thanks,
-peter

Apr 7, 2008 6:18 PM Click to view jadestorm's profile jadestorm in response to: mipe

Howdy Peter! =) I will be discussing that in a post I'll be making shortly. Please stay tuned!

Apr 8, 2008 2:05 AM Click to view olivier2831's profile olivier2831

Could you elaborate "SparkWeb will be available as a separate project and not as an Openfire plugin" ?
"Not an Openfire plugin" means it will be marketed as an XMPP-Jabber client usable with any XMPP-Jabber server ?
Will it become Open Source ?

Thanks

Apr 8, 2008 2:17 AM Click to view DavidSmith's profile DavidSmith in response to: olivier2831

Yes, yes.

Apr 8, 2008 3:18 AM Click to view cstar's profile cstar

About clustering, I did try to implement a clustering solution with OpenFire. I worked two libraries, Shoal and Terracotta.
My requirements where quite stringent, as I did not want to touch the OpenFire codebase.
I did get the best results with Shoal (https://shoal.dev.java.net/). I could get MUC and stats running over a cluster of two node using Shoal. (Only MUC, because that's the only component with all cluster features right into the code). It did work quite nicely.

Though the distributed cache is way too simple in its current incarnation in Shoal. No TTL on values and such things. But that could be added :)

I also tried terracotta, but to no avail. Too many objects used within OpenFire are not "instrumentable" over Terracota because of Dom4J objects (presence for sessions etc). And I did not want to touch the codebase.

Regarding Shoal, I am pretty confident that if I could get the code for the current clustering based on Coherence, getting it running on Shoal could be a week's work for a proof of concept :)

If you are interested I could get the code cleaned up and available.

Apr 8, 2008 4:49 AM Click to view gaizka's profile gaizka in response to: cstar

cstar :

I am also interested in implementing a clustering solution with Openfire.

It'd be great if you make your code available.

Thanks!!

Apr 8, 2008 5:56 AM Click to view wroot's profile wroot

i like the plan, so far :)

Apr 8, 2008 8:19 AM Click to view cstar's profile cstar in response to: gaizka

I will in the course of the week.
I need to make sure it is still in a working state first !

Apr 8, 2008 10:56 AM Click to view shreedhar's profile shreedhar in response to: cstar

Its great to know that Shoal is working out for you. Do send us any RFE's or any issues you find to our users mailing list

usersatshoaldotdevdotjavadotnet

Please let us know how we can help.

Shreedhar
Shoal co-author

Apr 8, 2008 4:23 PM Click to view cstar's profile cstar in response to: gaizka

http://www.cestari.info/assets/2008/4/8/shoal-enterprise.zip

There you are.
It is far from anything remotely usable, but I hope it can give inspiration to someone.

You can however check that the cluster events work. The stats work, and MUC should be usable (though the message is duplicated on the sender's client).

Apr 13, 2008 2:18 PM Click to view seaq's profile seaq in response to: jadestorm

Hi, I've got some problem here, i've got an evaluation license that it's due to end by tomorrow. Now as openfire is going OSS i cannot find how can i extend the evaluation time in order to update to the OSS version when it gets out on 27th... what should i do?

thanks!

Apr 14, 2008 9:19 AM Click to view jadestorm's profile jadestorm in response to: seaq

Gato posted an eval license for everyone to use for the time being here:
http://www.igniterealtime.org/community/docs/DOC-1496

Apr 16, 2008 7:07 PM Click to view dapatrick's profile dapatrick in response to: jadestorm

jadestorm,

I posted a note at the URL referenced in your post but I also am noting here that the posted license does not allow evaluation of clustering. Could you provide a license that will allow at least 2 cluster members? Thanks.

Apr 16, 2008 7:18 PM Click to view shreedhar's profile shreedhar in response to: cstar

ctar, others
For any contributions you make towards GlassFish community projects (Shoal is part of GF community), there are monetary awards being given for top bug reports, contributions, etc. under the GlassFish Awards Program
http://wiki.glassfish.java.net/Wiki.jsp?page=GapTop

Given your effort to get clustering for OpenFire using Shoal, contributions from you either through bug reports or through improvements to the Shoal Distributed State Cache will be eligible for consideration into this program. Just wanted to share this bit of info in this community.

Apr 16, 2008 9:11 PM Click to view jadestorm's profile jadestorm in response to: dapatrick

I kinda doubt it. We are charged for clustering licenses as I understand it. You'd have to contact sales to see if it's even possible to get such a thing.