From b76399028aad8212795047ce4600a7c82206786b Mon Sep 17 00:00:00 2001 From: schmidt Date: Wed, 24 Jun 1998 07:18:38 +0000 Subject: *** empty log message *** --- examples/ASX/Event_Server/README | 42 ++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) (limited to 'examples') diff --git a/examples/ASX/Event_Server/README b/examples/ASX/Event_Server/README index f54d724e1fe..262b7ee9633 100644 --- a/examples/ASX/Event_Server/README +++ b/examples/ASX/Event_Server/README @@ -1,8 +1,10 @@ -The subdirectory illustrates a number of the ACE ASX framework +This subdirectory illustrates a number of the ACE ASX framework features using an ACE_Stream application called the Event Server. For more information on the design and use of the ACE ASX framework please see http://www.cs.wustl.edu/~schmidt/C++-USENIX-94.ps.gz and -http://www.cs.wustl.edu/~schmidt/DSEJ-94.ps.gz +http://www.cs.wustl.edu/~schmidt/ACE-concurrency.ps.gz. For more +information on the Event Server, please see +http://www.cs.wustl.edu/~schmidt/DSEJ-94.ps.gz. The Event Server example works as follows: @@ -11,7 +13,7 @@ The Event Server example works as follows: connections from Consumers and Suppliers. 2. The ./Event_Server/Transceiver/transceiver application plays - the role of either a Consumer or a Supplier (but with the current + the role of either a Consumer or a Supplier (with the current implementation it can only play one role at a time). The transceiver process can be started multiple times. Each call should be either: @@ -38,16 +40,40 @@ The Event Server example works as follows: forwarded to the Consumer(s). Since the transceivers are full-duplex you can also send messages - from the Consumer(s) to Supplier(s), but the Event Server will warn - you about this since it's not really kosher to have Consumers - sending to Suppliers ;-) + from the Consumer(s) to Supplier(s). However, the Event Server will + warn you about this since it's not really kosher to have Consumers + sending to Suppliers... 4. When you want to shut down the tranceivers or event server just type ^C (which generates a SIGINT) or type any input in the - window running the Event Server. + window running the Event Server application. What makes this example particularly interesting is that once you've got the hang of the ASX Streams architecture, you can "push" new filtering Modules onto the event_server Stream and modify the -application's behavior transparently. +application's behavior transparently to the other components. + +There are a bunch of features that aren't implemented in this +prototype that you'd probably want to do for a "real" application. +Some of the more interesting things to add would be: + +0. Complete "full-duplex" support, i.e., Peers could play the + role of Suppliers and Consumers simultaneously. + +1. Support for "commands", which would change the behavior + of the Event_Server based on messages it got from Suppliers + (or Consumers). + +3. Support for "pull" operations, as well as "push" operations. + This would basically involve adding a "MIB Module" to get/set + the "values" associated with "names" passed in by Peers. This + could probably replace the Event_Analysis Module. + +4. Filtering and correlation (this should probably be done + via a separate Module that handles filtering and correlation). + +5. More flexible concurrency model(s), e.g., "Active Object per-Consumer". + This would enable the Event Server process to handle flow control + more gracefully than it does not (it currently "hangs," which isn't + desirable). -- cgit v1.2.1