[Ericsson AB]

4 Event Domain Service

4.1 Overview of the CosEventDomain Service

The Event Domain service allows programmers to manage a cluster of information channels.

4.1.1 Event Domain Service Components

There are two components in the OMG CosEventDomainAdmin service architecture:

4.1.2 A Tutorial on How to Create a Simple Service

To be able to use the cosEventDomain application, the cosNotification and, possibly, the cosTime application must be installed.

4.1.3 How to Run Everything

Below is a short transcript on how to run cosEventDomain.

 
%% Start Mnesia and Orber
mnesia:delete_schema([node()]),
mnesia:create_schema([node()]),
orber:install([node()]),
mnesia:start(),
orber:start(),
 
%% Install and start cosNotification.
cosNotificationApp:install(),
cosNotificationApp:start(),

%% Install and start cosEventDomain.
cosEventDomainApp:install(),
cosEventDomainApp:start(),

%% Start a CosEventDomainAdmin factory.
AdminFac = cosEventDomainApp:start_factory(),

%% Define the desired QoS settings:
QoS = 
   [#'CosNotification_Property'
    {name='CosEventDomainAdmin':'DiamondDetection'(), 
     value=any:create(orber_tc:short(),
     'CosEventDomainAdmin':'AuthorizeDiamonds'())},
    #'CosNotification_Property'
    {name='CosEventDomainAdmin':'CycleDetection'(), 
     value=any:create(orber_tc:short(),
     'CosEventDomainAdmin':'ForbidCycles'())}],

%% Create a new EventDomain:
{ED, EDId} = 'CosEventDomainAdmin_EventDomainFactory':
                        create_event_domain(Fac, QoS, []),

%% Now we can add Notification Channels to the Domain. How this
%% is done, see the cosNotification documentation. Let us assume
%% that we have gained access to two Channel Objects; add them to the
%% domain:
ID1 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch1),
ID2 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch2),

%% To connect them, we must first define a connection struct:
C1 = #'CosEventDomainAdmin_Connection'{supplier_id=ID1, 
                                       consumer_id=ID2,
                                       ctype='STRUCTURED_EVENT',
                                       notification_style='Pull'},

%% Connect them:
'CosEventDomainAdmin_EventDomain':add_connection(ED, C1),
      

cosEventDomain 1.1.1
Copyright © 1991-2007 Ericsson AB