summaryrefslogtreecommitdiff
path: root/lib/cosEventDomain/doc/src/ch_event_domain_service.xml
diff options
context:
space:
mode:
authorErlang/OTP <otp@erlang.org>2009-11-20 14:54:40 +0000
committerErlang/OTP <otp@erlang.org>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/cosEventDomain/doc/src/ch_event_domain_service.xml
downloaderlang-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
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.xml110
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>
+