1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
.TH CosEventChannelAdmin 3 "cosEvent 2.1.3" "Ericsson AB" "ERLANG MODULE DEFINITION"
.SH MODULE
CosEventChannelAdmin \- The CosEventChannelAdmin defines a set if event service interfaces that enables decoupled asynchronous communication between objects and implements generic (untyped) version of the OMG COSS standard event service\&.
.SH DESCRIPTION
.LP
The event service defines two roles for objects: the supplier role and the consumer role\&. Suppliers supply event data to the event channel and consumers receive event data from the channel\&. Suppliers do not need to know the identity of the consumers, and vice versa\&. Consumers and suppliers are connected to the event channel via proxies, which are managed by ConsumerAdmin and SupplierAdmin objects\&.
.LP
There are four general models of communication\&. These are:
.RS 2
.TP 2
*
The canonical push model\&. It allows the suppliers of events to initiate the transfer of event data to consumers\&. Event channels play the role of \fINotifier\fR\&. Active suppliers use event channel to push data to passive consumers registered with the event channel\&.
.TP 2
*
The canonical pull model\&. It allows consumers to request events from suppliers\&. Event channels play the role of \fIProcure\fR since they procure events on behalf of consumers\&. Active consumers can explicitly pull data from passive suppliers via the event channels\&.
.TP 2
*
The hybrid push/pull model\&. It allows consumers request events queued at a channel by suppliers\&. Event channels play the role of \fIQueue\fR\&. Active consumers explicitly pull data deposited by active suppliers via the event channels\&.
.TP 2
*
The hybrid pull/push model\&. It allows the channel to pull events from suppliers and push them to consumers\&. Event channels play the role of \fIIntelligent agent\fR\&. Active event channels can pull data from passive suppliers to push it to passive consumers\&.
.RE
.LP
To get access to all definitions, e\&.g\&., exceptions, include necessary \fIhrl\fR files by using:
.br
\fI-include_lib("cosEvent/include/*\&.hrl")\&.\fR
.LP
There are seven different interfaces supported in the service:
.RS 2
.TP 2
*
ProxyPushConsumer
.TP 2
*
ProxyPullSupplier
.TP 2
*
ProxyPullConsumer
.TP 2
*
ProxyPushSupplier
.TP 2
*
ConsumerAdmin
.TP 2
*
SupplierAdmin
.TP 2
*
EventChannel
.RE
.LP
IDL specification for CosEventChannelAdmin:
.nf
#ifndef _COSEVENTCHANELADMIN_IDL
#define _COSEVENTCHANELADMIN_IDL
#include "CosEventComm\&.idl"
#pragma prefix "omg\&.org"
module CosEventChannelAdmin
{
exception AlreadyConnected{};
exception TypeError{};
interface ProxyPushConsumer: CosEventComm::PushConsumer
{
void connect_push_supplier(in CosEventComm::
PushSupplier push_supplier)
raises (AlreadyConnected);
};
interface ProxyPullSupplier: CosEventComm::PullSupplier
{
void connect_pull_consumer(in CosEventComm::
PullConsumer pull_consumer)
raises (AlreadyConnected);
};
interface ProxyPullConsumer: CosEventComm::PullConsumer
{
void connect_pull_supplier(in CosEventComm::
PullSupplier pull_supplier)
raises (AlreadyConnected, TypeError);
};
interface ProxyPushSupplier: CosEventComm::PushSupplier
{
void connect_push_consumer(in CosEventComm::
PushConsumer push_consumer)
raises (AlreadyConnected, TypeError);
};
interface ConsumerAdmin
{
ProxyPushSupplier obtain_push_supplier();
ProxyPullSupplier obtain_pull_supplier();
};
interface SupplierAdmin
{
ProxyPushConsumer obtain_push_consumer();
ProxyPullConsumer obtain_pull_consumer();
};
interface EventChannel
{
ConsumerAdmin for_consumers();
SupplierAdmin for_suppliers();
void destroy();
};
};
#endif
.fi
|