Hi All, I have ideas actually, I we have put it to work. The basic is that within a certain context a block could "extend" the service provided by another block hosted by another application. Let's say we have such things as a communication bus, a naming service, a connection manager, a thread manager and so on, that will be deployed by a "core-service" application. Then other application blocks will declare in the assembly file that they extend a "core-service" application block by giving its name. This implies adding an attribute to the <block/> tag in the assembly.xml and provisionning for it in the BlockMetaData class.
Then we need a mechanism that will work along the lines of the blocks dependencies processing to process the various applications in the right order, i.e. the one that provide services to other applications first. This is done by having the bunch of applications made available to check together to the Deployer that will order the applications for processing. This implies the adjunct of a batch process interface for the Deployer where an array of names and an array of locations is provided instead of a single name/location pair. Obviously, the Embeddor has to be modified accordingly. Lastly, we need a mechanism to allow an application to provide references to block proxies from other applications. This is performed in the ApplicationContext that is modified to hold a reference to the Kernel and allow a new getBlock that takes an application name and a block name as parameters. Obviously, the Application getBlock is modified accordingly to look in the context when necessary. Impact falls on the ApplicationContext, DefaultApplication, DefaultKernel and LifeCycleHelper. I have attached the modified classes so that you can look at it. For the time being it serves our purpose, i.e. we work in a trusted environment and I have not extended fully all the security management issues. And as I mentioned, it is only working in a single JVM environment. I am sure you guys will have ideas on the subject to extend it further :) Cheers Jean-Louis P.S. As we do not want to mess up original Phoenix sources, the modified classes are in the com.antepo.accept code base. ----- Original Message ----- From: "Peter Donald" <[EMAIL PROTECTED]> To: "Jean Louis Seguineau" <[EMAIL PROTECTED]> Cc: "Avalon Development" <[email protected]> Sent: Saturday, February 09, 2002 8:24 AM Subject: Re: Phoenix Server Resource Pooling > On Fri, 8 Feb 2002 01:11, Jean Louis Seguineau wrote: > > Hi Peter, > > > > Extend my thanks to the whole team for putting up such a great framework! > > thanks! > > > I was wondering if anybody has already started thinking/working on a way to > > have several applications(servers) in Phoenix share Blocks(services) that > > would be considered "core" services and that would only be instantiated > > once for the whole framework. Starting with this feature on a single > > instance of Phoenix would do :) > > We have talked about doing this a few times and a few different ways however > as yet none of the mechanisms are in place. So the only way you can do this > currently is merge all the different applications into one .sar file. > > Almost all the infrastructure is currently in place for such a move - however > we have to decide on how we would describe inter-application dependencies - > any ideas? > > -- > Cheers, > > Pete > > "Artists can color the sky red because they know it's blue. Those of us who > aren't artists must color things the way they really are or people might > think we're stupid." -- Jules Feiffer > >
<<attachment: Phoenix.zip>>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
