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.
**********************************/

Reply via email to