summaryrefslogtreecommitdiff
path: root/CIAO/docs/schema/CIAOEvents.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/docs/schema/CIAOEvents.txt')
-rw-r--r--CIAO/docs/schema/CIAOEvents.txt339
1 files changed, 0 insertions, 339 deletions
diff --git a/CIAO/docs/schema/CIAOEvents.txt b/CIAO/docs/schema/CIAOEvents.txt
deleted file mode 100644
index d5aae8b8bc3..00000000000
--- a/CIAO/docs/schema/CIAOEvents.txt
+++ /dev/null
@@ -1,339 +0,0 @@
- How to integrate TAO Real-Time Event Service into CIAO deployments
-
-To integrate the TAO Real-Time Event Service into a CIAO application, you
-need to use a CIAO-specific extension type of XML descriptor to "describe"
-how your Real-Time Event Service should be configured.
-
-An XML file with the ending extension called .ced (CIAO Events Descriptor)
-which contains information about the configurations of EventService is
-used for such a purpose. Once the .ced file defines the details of
-the event service configurations, this file can be referenced within a
-deployment plan descriptor (.cdp), which defines how CCM components
-can use such services.
-
-1. A Simple Example
-
-Below "ciao-events-example.ced" file shows a simple example, which can
-be found at $CIAO_ROOT/examples/Hello/descriptor_events/ciao-events-example.ced
-
- <CIAO:CIAOEvents
- xmlns:CIAO="http://www.dre.vanderbilt.edu/CIAOEvents"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.dre.vanderbilt.edu/CIAOEvents CIAOEvents.xsd">
-
- <eventServiceConfiguration id="es_configuration-01">
- <name>ES_01</name>
- <node>SenderNode</node>
- <type>RTEC</type>
- <svc_cfg_file>svc.conf</svc_cfg_file>
- </eventServiceConfiguration>
- </CIAO:CIAOEvents>
-
-The fields of the <eventServiceConfiguration> element are described below:
-
-- <name> identifier for this real-time event service, which can be later
- referenced in a deployment plan.
-- <node> node name of the node in the deloyment plan, where the
- EventService is running on. The node name should correspond
- to one of the node names given in the deployment plan descriptor.
-
-- <type> type of the event channel, possible values are:
- EC - CORBA Event Service
- RTEC - TAO Real-Time Event Service
- NOTIFY - CORBA Notification Service
- RTNOTIFY - TAO Real-Time Notification Service
-
- Currently only the RTEC type is implemented.
-
-- <svc_cfg_file> path to the service configuration file, which configures the Event Service.
-
-To integrate this information into the deployemnt plan, you have to
-add the following XML description to the end of the deployment plan.
-An example of this can be found at
-$CIAO_ROOT/examples/Hello/descriptor_events/flattened_deploymentplan_events.cdp
-
- <infoProperty>
- <name>CIAOEvents</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ciao-events-example.ced</string>
- </value>
- </value>
-
- </infoProperty>
-
-The string value has to contain the concrete filename of the.ced file.
-A conventional connection between two event ports looks like the following
-in the deployment plan:
-
- <connection>
- <name>click_out_click_in</name>
- <internalEndpoint>
- <portName>click_out</portName>
- <kind>EventPublisher</kind>
- <instance>Hello-Sender-idd</instance>
- </internalEndpoint>
- <internalEndpoint>
- <portName>click_in</portName>
- <kind>EventConsumer</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- </connection>
-
-This has to be changed to achieve a connection through an EventService.
-Assuming there should be an event connection between the port
-"click_out" of the component "Hello-Sender" and the port
-"click_in" of the component "Hello-Receiver". Two connections
-have to be declared in the deployment plan:
-One from the "click_out" port to the external EventService and
-one from the "click_in" port to the same event EventService.
-
-The following example shows how this looks like in practice:
-
- <connection>
- <name>hello_event_ec_publisher_connection</name>
- <internalEndpoint>
- <portName>click_out</portName>
- <kind>EventPublisher</kind>
- <instance>Hello-Sender-idd</instance>
- </internalEndpoint>
- <externalReference>
- <location>ES_01</location>
- </externalReference>
- </connection>
-
- <connection>
- <name>hello_event_ec_consumer_connection</name>
- <internalEndpoint>
- <portName>click_in</portName>
- <kind>EventConsumer</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- <externalReference>
- <location>ES_01</location>
- </externalReference>
- </connection>
-
-Note that the value of the <location> elemnt of the <externalReference>
-corresponds to the <name> element in the .ced file.
-
-At deployment time, you can use the plan_launcher utility to specify
-the .cdp file, and DAnCE will automatically find the .ced file, parse it
-and then do all the event service installation and configuration for you.
-
-2. More Complex Examples
-
-This example will show some additional QoS configurations, including
-event filtering and event channel federation.
-
-2.1 Event Filtering Configuration
-
-CIAO event service allows event filtering based on event source id, i.e.,
-one can configure that one event sink is only receiving events
-published from particular event sources.
-
-An example of such a configuration can be found at:
-
-$CIAO_ROOT/examples/Hello/descriptors_events/ciao-events-example-with-filters.ced
-
-For example, below configuration illustrates that an event filter named
-<my_filter_01> is a DISJUNCTION type of filter, and it refereces to two
-event ports: <Hello-Sender-idd_click_out> and <Hello-Sender-idd-02_click_out>.
-The <Hello-Sender-idd_click_out> port means an event source port is on the
-<Hello-Sender-idd> component instance with port name <click_out>. Likewise,
-the <Hello-Sender-idd-02_click_out> port means an event source port on the
-<Hello-Sender-idd-02> component with port name <click_out>.
-
-The general way, <source> names are put together is, to use the elements
-<instance id="INSTANCE-ID"> and the
-<connection><internalEndpoint><portName>PORT-NAME</...>
-of the .cdp file and combine them by a "_" character, like this:
-<source>INSTANCE-ID_PORT-NAME</source>. This assures, that every source is
-identified by a unique name.
-
- <filter>
- <name>my_filter_01</name>
- <type>DISJUNCTION</type>
- <source>Hello-Sender-idd_click_out</source>
- <source>Hello-Sender-idd-02_click_out</source>
- </filter>
-
-DISJUNCTION filter type can also reference to one event source, which means
-the filter will accept events published from this particular event source only.
-An example of such a configuration is shown below:
-
- <filter>
- <name>my_filter_02</name>
- <type>DISJUNCTION</type>
- <source>Hello-Sender-idd_click_out</source>
- </filter>
-
-Similarly, in constrast fo the DISJUNCTION type of filter,
-one can also configure CONJUNCTION type of filers, as shown below:
-
- <filter>
- <name>my_filter_03</name>
- <type>CONJUNCTION</type>
- <source>Hello-Sender-idd_click_out</source>
- <source>Hello-Sender-idd-02_click_out</source>
- </filter>
-
-Currently CONJUNCTION and DISJUNCTION filters are implemented.
-NEGATION filters can be added in the future.
-The "Logical AND" filter does not apply to the CIAO event service,
-because the bit-mask mechanism does not conform to the level of abstraction
-of the CCM.
-
-Of course, once you define event filters, these filters can be referenced
-in a deployment plan descriptor (.cdp). For example, in below deployment
-plan descriptor:
-
-$CIAO_ROOT/examples/Hello/descriptor_events/flattened_deploymentplan_with_filters.cdp
-
-One can define an event filtering mechanism like this:
-
- <connection>
- <name>hello_event_ec_consumer_connection</name>
-
- <!-- The position of the below "deployRequirement" element matters -->
- <deployRequirement>
- <resourceType>EventFilter</resourceType>
- <name>my_filter_01</name>
- <property>
- <name>EventFilter</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>my_filter_01</string>
- </value>
- </value>
- </property>
- </deployRequirement>
-
- <internalEndpoint>
- <portName>click_in</portName>
- <kind>EventConsumer</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- <externalReference>
- <location>ES_01</location>
- </externalReference>
- </connection>
-
-As we can see, the <deployRequirement> XML tag can refer a named event
-filter defined in the .ced file.
-
-2.2 Event Channel Federation Configuration
-
-CIAO event service allows event channels to be federated through
-event channel gateways. An example of this can be found at:
-
-$CIAO_ROOT/examples/Hello/descriptors_events/ciao-events-federation-mcast.ced
-
-In this example, two real-time event channels are defined, ES_01 and ES_02.
-ES_01 is associated with a UDP Sender gateway object, and ES_02 is associated
-with a UDP Receiver gatway object. Once ES_01 receives an event, it will
-try to forward this event to other event channels through its UDP Sender gatway
-object.
-
-When defining a UDP Sender gatway object, the remote event channel's host name
-and port name must be defined, which is through an XML tag called <addr_serv>.
-In our example, we use the multicast address 224.9.9.2.
-
- <eventServiceConfiguration id="es_configuration-01">
- <name>ES_01</name>
- <node>SenderNode</node>
- <type>RTEC</type>
- <svc_cfg_file>dummy.conf</svc_cfg_file>
-
- <!-- The remote EC's host name and port # -->
- <addr_serv>
- <name>addr_serv_0</name>
- <port>1234</port>
- <address>224.9.9.2</address>
- </addr_serv>
-
- <udp_sender>
- <name>upd_sender_1</name>
- <addr_serv_id>addr_serv_0</addr_serv_id>
- </udp_sender>
- </eventServiceConfiguration>
-
-Likewise, when defining a UDP Receiver gatway object, we need to define
-the actual address server, which has an IP address and port number, which
-is illustrated in the below <addr_serv> XML element. Once this XML element
-is defined, it can be referenced in the <udp_receiver> element as shown
-below. The <udp_receiver> element also defines whether this is a muticast
-or not through the <is_multicast> XML tag, and defines a <listen_port>
-for its event handler. In practice, this <listen_port> is redundant to the
-the <port> defined in the <addr_serv>.
-The port number is only necessary for unicast connections. For multicast
-connections, no port number needs to be given (neither in the <addr_serv>
-field nor in the <listen_port> field).
-
- <eventServiceConfiguration id="es_configuration-02">
- <name>ES_02</name>
- <node>SenderNode</node>
- <type>RTEC</type>
- <svc_cfg_file>dummy.conf</svc_cfg_file>
-
- <addr_serv>
- <name>addr_serv_1</name>
- <port>1234</port>
- <address>224.9.9.2</address>
- </addr_serv>
- <udp_receiver>
- <name>upd_receiver_1</name>
- <addr_serv_id>addr_serv_1</addr_serv_id>
- <is_multicast>true</is_multicast>
-
- <!-- Listen port for this EC's event handler -->
- <listen_port>1234</listen_port>
- </udp_receiver>
- </eventServiceConfiguration>
-
-Note that for now, only UDP federation (either unicast or multicast) is supported.
-CORBA gateway federation is not implemented for CIAO.
-
-Once the event channel federation configuration is defined in the .ced
-file, the majority of the configuration effort is done. The rest of the
-thing is quite simple, as shown in the below deployment plan descriptor:
-
-$CIAO_ROOT/examples/Hello/descriptor_events/flattened_deploymentplan_federation_mcast.cdp
-
-Basically, you only need to describe which event channels you want to
-connect to (e.g., ES_01 or ES_02), as illustrated below, and that's it.
-
- <connection>
- <name>hello_event_ec_publisher_connection</name>
- <internalEndpoint>
- <portName>click_out</portName>
- <kind>EventPublisher</kind>
- <instance>Hello-Sender-idd</instance>
- </internalEndpoint>
- <externalReference>
- <location>ES_01</location>
- </externalReference>
- </connection>
-
- <connection>
- <name>hello_event_ec_consumer_connection</name>
- <internalEndpoint>
- <portName>click_in</portName>
- <kind>EventConsumer</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- <externalReference>
- <location>ES_02</location>
- </externalReference>
- </connection>
-
-The connection between the two event channels is set up, by only using the
-addresses in the .ced file. It is transparent for the .cdp file, how the
-event channels are federated.