Jeff Genender wrote:
Jules,
Thanks for the update. I like whats been done. Do you think WADI is
ready begin becoming a part of Geronimo? (i.e ready for prime time)
I have lots more to do, but I would certainly be interesting in starting
integration work with Geronimo. I always had Geronimo in mind whilst
working on WADI, it has just been that, until certification, simply
implementing specs correctly has been foremost on the G agenda. Now that
we have reached this goal, the next one becomes enterprise-readiness. I
hope that WADI can help with this. Would you, or anyone else on the
list, be interested in taking a look at it and getting involved in the
integration ?
Jules
Jeff
Jules Gosnell wrote:
Jeff Genender wrote:
Now that we have achieved the covetted J2EE Certification, we need
to start thinking about some of the things we will need to have in
Geronimo in order to be mass adopted by the Enterprise.
IMHO, I think one of the huge holes is clustering. This is a heavy
need by many companies and I believe that until we get a powerful
clustering solution into G, it will not be taken as a serious J2EE
contender.
So, with that said, I wanted to start a discussion thread on
clustering and what we need to do to get this into Geronimo. I
personally would like to be involved in this (thus the reason for me
starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
I was going over the lists and emails and had some great discussion
with Jules on the WADI project he has built. This seems compelling
to me. I also noticed Active Cluster as a possibility.
So lets start from the top. Do we use an already available
clusering engine or do we roll our own? Here is a small list of
choices I have reviewed and it is by no means complete...
1) WADI
2) Active Cluster
3) Leverage the Tomcat Clustering engine
So here are some of my questions...
How complete is WADI and Active Cluster? Both look interesting to
me. My only concern with Active Cluster is it seems to be JMS based,
which I think may be slow for high performance clustering (am I
incorrect on this?). How mature is WADI?
Here is a status report on WADI.
I'm developing it full time.
A snapshot is available at wadi.codehaus.org - documentation is in
the wiki - at the moment the documentation (rather minimalist) is
more up to date than the snapshot, but I will try to get a fresh one
out next week.
WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5
and Jetty-5.1/60 (it can actually migrate sessions between all four
in the same cluster).
It comprises a vertical stack of pluggable caches/stores (memory,
local disc, db etc) through which sessions are demoted as they age
and promoted as and when required to service a request.
This stack may be connected horizontally to a cluster by inserting a
clustered store, which uses a distributed hash table (currently
un-replicated, but I am working on it) to share state around the
clusters members in a scalable manner. WADI has a working mod_jk
integration.
WADI currently sits on top of ActiveCluster, which it uses for
membership notification and ActiveMQ which is used for transport by
both layers. ActiveMQ has pluggable protocols, including a peer://
protocol which allows peers to talk directly to one another (this
should put to bed fears of a JMS based solution not scaling -
remember, JMS is just an API). So you do not need to choose between
WADI and ActiveCluster - they are complimentary. ActiveCluster can
also (I believe) use JGroups as a transport - I haven't tried it.
ActiveSpace is another technology in this area (distributed caching)
and it looks as if WADI and ActiveSpace will become more closely
aligned. So this may also be considered a complimentary technology.
Both Tomcat and Jetty currently have existing clustering solutions. I
looked closely at the Tomcat solutions before starting out on WADI
and knew all about the Jetty solution, because I wrote it :-). WADI
is my answer to what I see as shortcomings in all of the existing
open source approaches to this problem-space.
Some parts of WADI should soon (December) be undergoing some serious
testing. When they pass we will be able to consider them production
ready. Others, notably the distributed hash table are still under
development (although a fairly functional version is available in the
SNAPSHOT).
I think that, in the same way Tomcat clustering could be enabled
easily in Geronimo, WADI could also be added by virtue of its
integration with Tomcat/Jetty, but I have been concentrating on my
distributed hash table too hard. If anyone is interested in talking
further about WADI, perhaps trying to plug it into Geronimo (It is
spring-wired and uses spring to register its components with JMX. I
guess it should be simple to hook it into the Geronimo kernel in the
same way, I just haven't had the time), or helping out in any way at
all, I would be delighted to hear from them.
I have broached the subject of a common session clustering framework
with members of the OpenEJB team and we have discussed things such as
the colocation of HttpSessions and SFSBs. I believe OpenEJB has been
moving towards JCache to facilitate the plugging in of a clustering
substrate. My distributed hash table is also moving in the same
direction.
I hope that gives you all a little more information to go on. If you
have any questions, just fire away,
Jules
Thoughts and opinions are welcomed.
Jeff
--
"Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it."
/**********************************
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
* www.coredevelopers.net
*
* Open Source Training & Support.
**********************************/