[omniORB] OmniEvents Performance Question

Alex Tingle alex.omniorb at firetree.net
Sat Jan 29 18:26:06 GMT 2005


Hi Miguel,

> My question is whether I should create a different channel for each
> character or have one channel for all the characters plus a dispatcher
> that sends the event to the appropriate character.

You have not really described your application in enough detail. I'm assuming that you want to 'fan-out' messages from single suppliers to multiple consumers.

The Events Service allows you to 'broadcast' a single event to many event 'consumers' ('characters' in your case). You can think of an EventChannel as a set of consumers all listening for the same events.

If each event is only intended for a single consumer, then there is no point using the Event Service, you may as well make the call directly.

If each event is intended for more than one consumer but not all of them, then you should use one EventChannel for each message type. Consumers then subscribe to the EventChannel(s) that correspond to the events they want.

If your requirements are more complex, then you might be better off using the Notification Service (omniNotify). That allows you to describe which consumers receive which events using a constraint-based mini language.

To optimise the events/second, run omniEvents on the same machine as the consumers. That way, each event is only transmitted once across the network.

If you need to, you could further optimise by using omniORB's Unix transport for communication between omniEvents and your consumers. You would start your consumers with an option like:

 -ORBendPoint giop:unix:<filename>

If you give me more details of your application (how many suppliers/consumers? how many different sorts of messages?) I might be able to give you more specific advice.

regards,

-Alex Tingle

--
:: alex tingle
:: http://www.firetree.net/consulting/
:: alex.tingle AT firetree.net  +44-7901-552763


On Sat, 29 Jan 2005 12:36:06 +0100
"miguel " <miguel_200 at inicia.es> wrote:

> Hello, my name is Miguel, I come from Spain and I am currently using OmniOrb
> and OmniEvents for a virtual reality project at the École Politechnique
> Féderale de Lausanne.
>  
> I have a working draft of what would be the final application. I am now
> using a single OmniEvent Channel to communicate through events the Artifitial
> Intellegence with the Graphical part as both things run on different machines.
> I have just tested it controlling two different characters at the same time
> and it works great. 
>  
> I am bit worried though on how the system will behave when the number of
> character grows and how should I handle this growth. My question is whether
> I should create a different channel for each character or have one channel
> for all the characters plus a dispatcher that sends the event to the appropiate
> character. I am talking about having 200 characters on my scenario.
>  
> I have also read in this mail list about the importance of upgrading to
> omniORB 4.1 if I am using a reasonable number of threads. Will this be my
> case? (each channel creates a different thread as far as I know)
>  
>  
> Thank you very much for your help and kindest reagards. any suggestion will
> be welcomed.
>  
> Miguel
> 
> ADSL 640 Kbps + llamadas nacionales y locales 24h  por sólo 34,95 euros/mes
> 
> http://www.tiscali.es/acceso/adsl_dual.jsp
> 
> 
> 
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
> 



More information about the omniORB-list mailing list