Dave Colasurdo wrote:
Jeff Genender wrote:
Geir Magnusson Jr. wrote:
What %age of users will be able to take advantage of this? 90%? :)
What other ways are you thinking of clustering?
JMS, EJB, Caching, etc.
Here are some of the characteristics of clustering that we should
consider:
JSP/Servlet Load Balancing
-HttpSession Sticky port/Affinity
-HttpSession failover
-File based persistence
-Database persistence
-Memory replication (all -> all)
-Memory replication (one -> designated server(s))
WADI should address all of these and more
Heartbeat/Health Check
I guess that this would be addressed by the underlying clustering
substrate (e.g. activecluster, jgroups etc) and used to notify
membership changes to code layered on top of it.
EJB Load Balancing (EJBHome stub or EJBObject stub)
-JNDI Lookup OR
-Smart Stub (Client) OR
-IIOP runtime (Client)OR
-Interceptor Proxy
EJB Failover
-Stateless Session Bean
-Stateful Session Bean (sticky)
-Entity Bean
-MDB??
Clustered EJBs have yet to be implemented, but conversations have been
going on - off the top of my head (and my EJB knowledge is pretty rusty) :
We need cluster-aware client-side stubs with pluggable load-balancing
policies for both Home and Bean instances.
SLSB - since they are stateless, an invocation can go to any node and be
processed by any "well written" bean.
MDB - same as SLSB - I think ?
SFSB - more complex, since state is involved. We hope to reuse WADI
technology here to manage the state in the same way as the web-tier.
SFSBs should be easier to handle than HttpSessions because we have
complete control over the load-balancer (assuming that it is a smart
stub that we have written), the EJB container only allows one thread
through them at one time (concurrent threads may coexist in an
HttpSession) and EJBs are a much more distribution-friendly architecture.
Entity - since they just map to a shared resource, should not present
state-related problems, migration of an entity is just dopping it from
the cache on one node and loading it on another.
JNDI clustering
-Shared global JNDI Tree OR
-Independent JNDI OR
-Centralized JNDI (on single server)
This is an area that I have not given much consideration and we really
need to get a group together to consider the options and start working
in this area - is anyone interested ?
Web Service Clustering
does this have any specific requirements over and above those provided
by basic web tier clustering - i.e. load-balancing/affinity and
httpsession management ? If so, lets discuss them and I will see how
they might be put into WADI.
Stateful, cross context dispatch between portlets complicates the
management of HttpSessions, so it is possible that there is something in
the web-services spec which will have a bearing.
JDBC Clustering
I haven't really considered this either - I tend to leave this tier to
the vendors... Do we need to do anything here other than offer decent
JCA integrations ?
JMS Clustering
activemq has this, so I am assuming that we have this covered.
Management Capability
-Adding to a cluster
-Manual addition
-Automatic discovery
we need a nice small piece of code so that e.g. ejb clients can
auto-discover a clustered geronimo web-tier.
-Deploying applications to a cluster
-Manual deployment to each each member OR
-Centralized deployment OR
-Farming (hot deployment across a cluster)
-Cluster Configuration Model
-Independent OR
-Shared File System OR
-Managed
Management and configuration are both very large topics that are being
addressed outside clustering as well. I haven't given these much thought
either, although I am sure that others have - I guess that we need a
thread on this too. I would be interested in discussing the requirements
and integration between the actual implementation of the clustering
stuff and its management tier.
Jules
-Dave-
--
"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.
**********************************/