On Monday 15 March 2004 14:55, [EMAIL PROTECTED] wrote: > I started working on a prototype yesterday of a server I am developing. > > I successfully got the "login" component working, and am thinking about how > the login server will forward on successful logons to the "main" server, > which controls the main business logic.
Good progress... :o) > I suspect that I will need to put the login application on a different > machine from the "main" server, for scalability. > How would you go about doing this with merlin? (i.e. has anyone created a > distributed merlin system with different components on different servers ?) Ok... Straight to over-drive ;o) Merlin has no explicit support of distribution of components, but you can use traditionally approaches. What _I_ would do; 1. Create an AuthenticationService interface with method taking Credentials as input and returning a Principal. 2. Create a LoginService interface, with a method that takes user/password and returns a Credential object. 3. Create the implementations for both of these services. 4. Create a proxy component, which implements the AuthenticationService, but delegates (via RMI or JINI for instance) to another network node. The purpose is that in your development environment, you can drop in the AuthenticationService implementation in the same server, but as you scale up, you can put that component elsewhere, and add in the proxy instead, without any other changes in your system. There is also the Keel framework, which has solutions in the same problem domain, but is not based on Merlin as far as I know. http://keelframework.org/ The other choice is to coordinate with the Avalon developers, to make a complete and secure distributed add-on for Merlin... just kidding, it is not around the corner yet... Is this pointing you in the right direction? Niclas -- +---------//-------------------+ | http://www.bali.ac | | http://niclas.hedhman.org | +------//----------------------+ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
