diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/cosEventDomain/doc/src/ch_event_domain_service.xml | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/cosEventDomain/doc/src/ch_event_domain_service.xml')
-rw-r--r-- | lib/cosEventDomain/doc/src/ch_event_domain_service.xml | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/lib/cosEventDomain/doc/src/ch_event_domain_service.xml b/lib/cosEventDomain/doc/src/ch_event_domain_service.xml new file mode 100644 index 0000000000..62378cac91 --- /dev/null +++ b/lib/cosEventDomain/doc/src/ch_event_domain_service.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="latin1" ?> +<!DOCTYPE chapter SYSTEM "chapter.dtd"> + +<chapter> + <header> + <copyright> + <year>2001</year><year>2009</year> + <holder>Ericsson AB. All Rights Reserved.</holder> + </copyright> + <legalnotice> + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + </legalnotice> + + <title>Event Domain Service</title> + <prepared>Niclas Eklund</prepared> + <docno></docno> + <date>2001-08-20</date> + <rev>A</rev> + <file>ch_event_domain_service.xml</file> + </header> + + <section> + <title>Overview of the CosEventDomain Service</title> + <p>The Event Domain service allows programmers to manage a cluster + of information channels.</p> + + <section> + <title>Event Domain Service Components</title> + <p>There are two components in the OMG CosEventDomainAdmin service architecture:</p> + <list type="bulleted"> + <item><em>EventDomainFactory:</em> a factory for creating EventDomains.</item> + <item><em>EventDomain:</em> supplies a tool, which makes it easy to create + topologies of interconnected channels (i.e. a directed graph).</item> + </list> + </section> + + <section> + <title>A Tutorial on How to Create a Simple Service</title> + <p>To be able to use the cosEventDomain application, the cosNotification + and, possibly, the cosTime application must be installed.</p> + </section> + + <section> + <title>How to Run Everything</title> + <p>Below is a short transcript on how to run cosEventDomain. </p> + <code type="none"><![CDATA[ + +%% 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, +\011\011\011\011 consumer_id=ID2, +\011\011\011\011 ctype='STRUCTURED_EVENT', +\011\011\011\011 notification_style='Pull'}, + +%% Connect them: +'CosEventDomainAdmin_EventDomain':add_connection(ED, C1), + ]]></code> + </section> + </section> +</chapter> + |