On Fri, Aug 09, 2002 at 01:42:39PM +0200, [EMAIL PROTECTED] wrote: > On Fri, Aug 09, 2002 at 03:18:55AM -0400, Rocco Caputo wrote: > > > > This sounds like role-based addressing, which I seem to have omitted. > > The idea is for each component to advertise its role in the overall > > system. > > > > "I am a host resolver." > > "I am a web client." > > "I am a console interface." > > > > but in a way that is also readable by Perl. When a component needs a > > host resolved, it could post its request to the role of "host > > resolver" rather than any specific component. > > > > Comparing interfaces is not enough. In your example, you say "talks > > to 1-200 components that have the client interface". There may be > > many components that share a client interface, but each performing > > some variation on it. > > > > Perhaps a role is just a specific enough interface. "pop3 client" > > instead of simply "client". Or do you mean that the combination of an > > interface and some data within the component determines its role? For > > example: "pop3 client connected to pobox.com". > > What I meant was something different. A directory in which components can > publish their services can be helpful, like you said. > The interfaces I'm talking about are real roles that components claim to be > able to play. So "client" means it can play a client in the way that > client was declared before (the protocol, which events are sent, ..., see > below). Very similar to the interface that is spoken by the whole component, > as outlined by the Emit: or "> .." "< ..." statements in your examples. > > It's sufficient for our component that it knows that there will be > other components which understand the client interface. it can handle 1 to > 200 instances. It doesn't matter if these do more, our component just want's > to be understood. And that was all the component's designer had in mind.
So a component might accept MutexRequest messages and emit MutexResponse messages. It would be said to implement the MutexTransaction interface, and it would have the role of "mutex manager". Is this correct? -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net
