Hi Alex I took a fast look at the interfaces and the implementation of EventRouter, Subscriber, ....
1. Pretty interesting. The way they have handled it is very similar to the way we have done it in a customer project. Basically, there is a Hub(here a Router) and a set of Spokes (nodes) around the Hub. Each spoke may be Subscriber and/or Publisher of events. I guess the guys have made a simplification where each Publisher is also a Subscriber, that is exactly the same experience we got in our customer project. This model offers these benefits: a. scalability: you can almost add infinite number of Spokes to a Hub b.loose coupling: there is a loose coupling among Spokes in constrast to Observer and Observable pattern where observers must know about know a specific observable c. fire and forget: events are fired into the Hub. Publishers does not care that which Subscribers are going to receive the event d. type of event: Subscribers are notified about certain type of events that they are interested in d. filtering: additional filtering.... e. Hubs can connect to other Hubs (like network hubs). f. Container wide Hubs: such Hubs can be created to handle events within a container g. Local Hubs: can handle events for a cluster of related objects, e.g. a panels within a Wizard may be interested in send events to each other in an isolated environment h. Security: it is possible to enforce security on all or certain event types. This is very highly interesting where the communication among various objects must be secured. E.g. consider a menu item that publishes an event into the Hub which in turn is received by CommandManager. Here Menu and CommandManager are Spokes. Now, CommandManager may call a Command that makes a server call. Suppose the user were not allowed to use such an event. Well, either Hub could simply filter this event, or CommandManager could ignore this event for this user. 2. I did not spend much time to really dig into their interfaces and implementation. At this moment, I am Newbie to Merlin and trying to understand how to write a simple application with it.... 3. By the way, a Router is a more appropriate word than Hub because of the filtering capability. Best Regards -- Nader Aeinehchi Aasenhagen 66 E 2020 Skedsmokorset NORWAY Direct and Mobile +47 41 44 29 57 Tel (private): +47 64 83 09 08 Fax +47 64 83 08 07 www.aeinehchi.com ----- Original Message ----- From: "Alex Karasulu" <[EMAIL PROTECTED]> To: "'Avalon Developers List'" <[EMAIL PROTECTED]> Sent: Friday, April 09, 2004 4:11 PM Subject: RE: Event mechanism in Merlin > Nader check this out: > > http://cvs.apache.org/viewcvs.cgi/incubator/directory/eve/trunk/frontend/eve > nt/?root=Apache-SVN > > namely look at the SPI for the service interfaces then the pojo impl. > The merlin-impl is just a POJO wrapper for Merlin. > > What do you think about creating a custom lifecycle for the subscribe > Operation on this event router/bus concept. BTW Berin has already done > this with GUIApp but I'd like to see this sort of thing make its way > into Merlin. > > Cheers, > Alex > > > -----Original Message----- > > From: Nader Aeinehchi [mailto:[EMAIL PROTECTED] > > Sent: Friday, April 09, 2004 5:00 AM > > To: Avalon Developers List > > Subject: Event mechanism in Merlin > > > > Hi > > > > - I wonder if any special approach has been taken in Merlin to handle > > events? > > - Are events handled based on usual Java event mechanism? > > - Observer and Observable pattern? > > - Are alternative even mechanisms been discussed/used like Hub and Spoke > > or Event Bus? > > > > Thanks. > > > > > > Best Regards > > > > -- > > Nader Aeinehchi > > Aasenhagen 66 E > > 2020 Skedsmokorset > > NORWAY > > Direct and Mobile +47 41 44 29 57 > > Tel (private): +47 64 83 09 08 > > Fax +47 64 83 08 07 > > www.aeinehchi.com > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]