Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 28558 invoked from network); 27 Jan 2006 16:03:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 27 Jan 2006 16:03:29 -0000 Received: (qmail 39834 invoked by uid 500); 27 Jan 2006 16:03:18 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 39751 invoked by uid 500); 27 Jan 2006 16:03:18 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 39703 invoked by uid 99); 27 Jan 2006 16:03:17 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Jan 2006 08:03:17 -0800 X-ASF-Spam-Status: No, hits=0.9 required=10.0 tests=HTML_10_20,HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of paulmcmahan@gmail.com designates 66.249.92.206 as permitted sender) Received: from [66.249.92.206] (HELO uproxy.gmail.com) (66.249.92.206) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Jan 2006 08:03:15 -0800 Received: by uproxy.gmail.com with SMTP id o2so632371uge for ; Fri, 27 Jan 2006 08:02:50 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=Y80+mqKWSp6R1GHPMK93eCJYj1iq6gKSuic8Z9HPiyHkLK/zeu5Pxdj0vRZtvEnyWyn+w6mVnf/2RATwzyfTSmb7UpbTCGVYuYdJeV+PwdddgTjC+jcwjNPbxvGaGm98BjO4zfTwUg8mobKO85ZrIB8dhBt7HgrKdm1jeIY+aig= Received: by 10.49.88.16 with SMTP id q16mr350263nfl; Fri, 27 Jan 2006 08:02:50 -0800 (PST) Received: by 10.48.231.4 with HTTP; Fri, 27 Jan 2006 08:02:50 -0800 (PST) Message-ID: <21df75940601270802w1d09ab9r4fab1e2af395d56b@mail.gmail.com> Date: Fri, 27 Jan 2006 11:02:50 -0500 From: Paul McMahan To: dev@geronimo.apache.org Subject: Re: web clustering componentization In-Reply-To: <9C84CFA6-689D-4C35-A664-E86F54179F08@yahoo.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1013_2566642.1138377770514" References: <9C84CFA6-689D-4C35-A664-E86F54179F08@yahoo.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_Part_1013_2566642.1138377770514 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Thanks for initiating this important conversation. As part of the clustering effort I would like to work on a new admin portlet that can be used to visualize the cluster topology and do things like set properties fo= r the session managers, deploy/undeploy applications, etc. I think that making this aspect of Geronimo intuitive and easy to use will be a big differentiator in our favor. I would love to hear everyone's feedback abou= t this idea. E.g. given our current direction does this idea make sense? and what should it look like? If we are generally in favor of this idea then before proceeding I would need help understanding certain fundamental concepts of our approach, such as: -- Will G have explicit knowledge and control over clustering or will it just be "embedded" within the applications' logic/configuration? -- Will G follow a deployment manager paradigm where a certain node is in charge of managing the entire config and pushing it to the worker nodes? O= r will each node be responsible for its own configuration? -- What component(s) of G will provide an interface to the clustering metadata and config? Would it be possible to provide a single point of control in G that can take as input a clustering "plan" and handle the resulting deployments and node configuration? -- Is each member of a cluster assumed to be using an identical configuration? -- Will G be able to participate in heterogeneous clusters with other types of app servers and/or versions of G? Looking forward to your feedback and advice. Best wishes, Paul On 1/26/06, 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 > > ------=_Part_1013_2566642.1138377770514 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Thanks for initiating this important conversation.  As part of the clustering effort I would like to work on a new admin portlet that can be used to visualize the cluster topology and do things like set properties for the session managers, deploy/undeploy applications, etc.  I think that making this aspect of Geronimo intuitive and easy to use will be a big differentiator in our favor.  I would love to hear everyone's feedback about this idea.  E.g. given our current direction does this idea make sense? and what should it look like?

If we are generally in favor of this idea then before proceeding I would need help understanding certain fundamental concepts of our approach, such as:

-- Will G have explicit knowledge and control over clustering or will it just be "embedded" within the applications' logic/configuratio= n?
-- Will G follow a deployment manager paradigm where a certain node is in charge of managing the entire config and pushing it to the worker nodes?  Or will each node be responsible for its own configuration? -- What component(s) of G will provide an interface to the clustering metadata and config?  Would it be possible to provide a single point of control in G that can take as input a clustering "plan" = and handle the resulting deployments and node configuration?
-- Is each member of a cluster assumed to be using an identical configurati= on?
-- Will G be able to participate in heterogeneous clusters with other types= of app servers and/or versions of G?

Looking forward to your feedback and advice.

Best wishes,
Paul



On 1/26/06, David Jencks <davi= d_jencks@yahoo.com > wrote:
I have some ideas about how to set up web clustering in terms of
geronim= o 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 s= ession module James and Dain wrote and how it
might relate to the web cl= ustering stuff.  We have to start somewhere.

For me, one of the most important factors is that the clusteringsolution be pluggable, in particular that you be able to run geronimo
w= ithout any clustering classes.  This means that each clusteringsolution needs to be packaged in one or more Configurations or
modules and that communication to the clustering module be done
thro= ugh interfaces defined in a more core geronimo module.  It alsoimplies that the all the web containers should communicate with the
cl= ustering implementation through the same interface(s).

I'm proposing that the interfaces be SessionManagerFactory and
S= essionManager, the factory being able to provide SessionManager
instance= s.  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 prop= ose
giving each web app context a reference to the session manager
fa= ctory gbean.  At an appropriate lifecycle point it can get the
session manager it needs.  In Tomcat IIUC a host or engine ca= n also
be where a session manager is configured.  We don't rea= lly need to
support that directly since we can in our deployer push a re= ference
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.  IIU= C there is a lot of
configuration possible for at least WADI, and we sho= uld be able to
support running multiple session manager configurations at once, as
= follows:

- there can be a default session manager (say WADI) configu= ration,
and the name of its session manager factory gbean can be configu= red
in the web app builder(s).  This will be used for distributab= le web
apps that don't specify in their plan a different session manager=
factory gbean.

- a web app plan can contain an explicit referenc= e to a specific
session manager factory or an entire session manager factory/WADI
co= nfiguration.

- we can use a namespace driven xml-reference builder t= o 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<= br>for non distributable apps or in the absence of clustering.  I= don't
know if we'd want 2 "default" session manager factory gbeans<= br>available, one for cluster and one not, or if there is a better
solut= ion. 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-
s= pecific clustering, and it is unlikely this can be coerced
effectively i= nto the proposed geronimo SMF and SM interfaces.  We
could sup= port this with another gbean and interface, but at the
moment I'm leaning towards giving the web app context either a
separ= ate gbean reference to the tomcat specific clustering or
directly instal= ling the tomcat solution into the web app context.

Comments? &n= bsp;Flames?

thanks
david jencks


------=_Part_1013_2566642.1138377770514--