diff options
author | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1996-10-21 21:41:34 +0000 |
---|---|---|
committer | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1996-10-21 21:41:34 +0000 |
commit | a5fdebc5f6375078ec1763850a4ca23ec7fe6458 (patch) | |
tree | bcf0a25c3d45a209a6e3ac37b233a4812f29c732 /apps/Orbix-Examples/Event_Comm/README | |
download | ATCD-a5fdebc5f6375078ec1763850a4ca23ec7fe6458.tar.gz |
Initial revision
Diffstat (limited to 'apps/Orbix-Examples/Event_Comm/README')
-rw-r--r-- | apps/Orbix-Examples/Event_Comm/README | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/apps/Orbix-Examples/Event_Comm/README b/apps/Orbix-Examples/Event_Comm/README new file mode 100644 index 00000000000..1bd7b5d8c45 --- /dev/null +++ b/apps/Orbix-Examples/Event_Comm/README @@ -0,0 +1,109 @@ +OVERVIEW + +This directory contains source code for a prototype CORBA-based +distributed notification mechanism. This mechanism implements a +"publish/subscribe" communication protocol. It allows Suppliers to +pass messages containing object references to a dynamically managed +group of Consumers. This is similar to the OMG COSS Event Service, +though not as sophisticated. + +This example also illustrates how to integrate Orbix with the ACE +libraries. + +DIRECTORY STRUCTURE + +There are 4 directories: + +Supplier + + -- The supplier test driver, which must be started + first. It has an instance of an IDL Notifier + object. This object accepts subscriptions from Consumers + and forwards events sent to it either via Consumers or + via its standard input. + + The Supplier must be registered with the ORB using the + following command: + + % putit Event_Comm_Notifier <pathname>/supplier + +Consumer + + -- The consumer test driver, which must be started + after the Supplier. It has an instance of an + IDL Notification_Receiver object. This object is + used to receive notifications from the Notifier object + residing in the Supplier. When the Consumer starts up it + gets an object reference to the Supplier's Notifier. + It then subscribes its Notification_Receiver object with + the Supplier's Notifier by passing an object reference. + + In addition to passing an object reference to a + Notification_Receiver, the Consumer also may specify a + filtering criteria, which is a regular expression. If + the filtering criteria is the string "" then the Notifier + will send all Notifications to the Consumer (i.e., "" is + treated as a "wildcard"). Otherwise, the filtering + criteria is considered to be a regular expression, + and only those Notification tags that match the regular + expression will be forwarded to the Consumer. The regular + expressions are those used by ed(1) (see the regexp(5) + manual page for more info). + + The Consumer must be registered with the ORB + using the following command: + + % putit Event_Comm_Notification_Receiver <pathname>/consumer + +include + + -- This contains links to the appropriate header + files. + +libsrc + + -- This contains the IDL files and IDL implementation + classes that support the distributed notification scheme. + These are shared by the Consumer and Supplier. + +RUNNING THE TESTS + +To run the tests do the following: + +1. Compile everything. + +2. Start up the Orbix daemon (orbixd) if it's not already + running. + +3. Register the Consumer (i.e., Notification_Receiver) and Supplier + (i.e., Notifier) with the Orbix daemon (orbixd), as described + above. + +4. Start the Supplier/supplier executable. + +5. Start up as many copies of the Consumer/consumer as you'd like. + Typically, I run each one in its own window. If you'd like to use + different machines make sure that you start up the Orbix daemon on + each one and register the Consumer. + +6. Once the Consumers have subscribed you can send them info by typing + commands in the Supplier window. These will be sent to all the + Consumers who have subscribed. Likewise, you can send messages + from a Consumer to all other Consumers by typing messages in a + Consumer window. + + Note that if you type "quit", ^D, or ^C in a Consumer window the + Consumer will unsubscribe and shutdown its handlers and exit. + Likewise, if you type "quit", ^D, or ^C in the Supplier window + the Supplier will disconnect all of its Consumers and exit. + When a Consumer is disconnected from its Supplier it automatically + shuts itself down. + +7. When you want to terminate a Consumer or a Supplier, just type ^C + and the process will shut down gracefully. + +Please let me know if there are any questions. + + Doug + +schmidt@cs.wustl.edu |