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

Reply via email to