geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jules Gosnell <ju...@coredevelopers.net>
Subject Re: web clustering componentization
Date Fri, 27 Jan 2006 18:20:43 GMT
Dain,

David is talking about how SessionManagers (effectively extended 
SessionFactories) should be plumbed into Geronimo (i.e. GBeans), not 
about the API's describing Sessions themselves.

I've looked at the stuff in modules/session - it looks very similar to 
some WADI internals - there is loads of overlap here.  I have some 
serious plans for converging WADI with ActiveSpace and would be happy to 
consider further changes to reuse or contribute to your sessions module. 
We should talk.

I'll jot my ideas down and post them shortly.

cheers,


Jules



Dain Sundstrom wrote:

> Are you proposing a new API?  I think the session management API  
> James and I wrote will satisfy these needs.  I suggest you take a  
> look at:
>
> modules/session/src/java/org/apache/geronimo/session/Locator.java
> modules/session/src/java/org/apache/geronimo/session/ 
> SessionLocation.java
> modules/session/src/java/org/apache/geronimo/session/Session.java
>
> I believe that these APIs capture all the needs of a component that  
> requires client session data storage.
>
> -dain
>
> On Jan 26, 2006, at 4:36 PM, David Jencks wrote:
>
>> I have some ideas about how to set up web clustering in terms of  
>> geronimo modules and configurations and connections between  gbeans.  
>> I've talked with Jules and Jeff about this and think that  they agree 
>> that this is a good starting point so I'll try to  describe it and 
>> possibly even help implement parts of it.
>>
>> There are quite a few questions I'm going to ignore, such as EJB  
>> SFSB clustering and the new session module James and Dain wrote and  
>> how it might relate to the web clustering stuff.  We have to start  
>> somewhere.
>>
>> For me, one of the most important factors is that the clustering  
>> solution be pluggable, in particular that you be able to run  
>> geronimo without any clustering classes.  This means that each  
>> clustering solution needs to be packaged in one or more  
>> Configurations or modules and that communication to the clustering  
>> module be done through interfaces defined in a more core geronimo  
>> module.  It also implies that the all the web containers should  
>> communicate with the clustering implementation through the same  
>> interface(s).
>>
>> I'm proposing that the interfaces be SessionManagerFactory and  
>> SessionManager, the factory being able to provide SessionManager  
>> instances.  I see the SessionManagerFactory being deployed as a  
>> GBean and made available to web containers through a gbean reference.
>>
>> My understanding is that for both jetty and tomcat, the web app  
>> context needs an instance of a session manager.  Therefore I  propose 
>> giving each web app context a reference to the session  manager 
>> factory gbean.  At an appropriate lifecycle point it can  get the 
>> session manager it needs.  In Tomcat IIUC a host or engine  can also 
>> be where a session manager is configured.  We don't really  need to 
>> support that directly since we can in our deployer push a  reference 
>> to whatever "global" session manager may be configured  down into 
>> each web app context.
>>
>> I see the jetty and tomcat builders installing references to  
>> appropriate session manager factory gbeans.  IIUC there is a lot of  
>> configuration possible for at least WADI, and we should be able to  
>> support running multiple session manager configurations at once, as  
>> follows:
>>
>> - there can be a default session manager (say WADI) configuration,  
>> and the name of its session manager factory gbean can be configured  
>> in the web app builder(s).  This will be used for distributable web  
>> apps that don't specify in their plan a different session manager  
>> factory gbean.
>>
>> - a web app plan can contain an explicit reference to a specific  
>> session manager factory or an entire session manager factory/WADI  
>> configuration.
>>
>> - we can use a namespace driven xml-reference builder to construct  a 
>> wadi configuration inside a SMF reference (maybe :-)
>>
>> There are a couple loose ends I can see and probably lots more I  can't:
>>
>> -- I imagine we want to be able to have pluggable session managers  
>> for non distributable apps or in the absence of clustering.  I  don't 
>> know if we'd want 2 "default" session manager factory gbeans  
>> available, one for cluster and one not, or if there is a better  
>> solution. Having 2 and having the builder decide which you get  seems 
>> simplest at the moment.
>>
>> -- We need to be able to support the non-wadi existing tomcat- 
>> specific clustering, and it is unlikely this can be coerced  
>> effectively into the proposed geronimo SMF and SM interfaces.  We  
>> could support this with another gbean and interface, but at the  
>> moment I'm leaning towards giving the web app context either a  
>> separate gbean reference to the tomcat specific clustering or  
>> directly installing the tomcat solution into the web app context.
>>
>> Comments?  Flames?
>>
>> thanks
>> david jencks
>


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


Mime
View raw message