summaryrefslogtreecommitdiff
path: root/apps/Gateway/README
diff options
context:
space:
mode:
Diffstat (limited to 'apps/Gateway/README')
-rw-r--r--apps/Gateway/README126
1 files changed, 0 insertions, 126 deletions
diff --git a/apps/Gateway/README b/apps/Gateway/README
deleted file mode 100644
index 7c087e2d25c..00000000000
--- a/apps/Gateway/README
+++ /dev/null
@@ -1,126 +0,0 @@
-OVERVIEW
-
-This directory contains source code for an application-level
-Communication Gateway implemented with ACE. This prototype was
-developed in my cs422 OS class at Washington University in 1994. The
-Gateway has recently been updated to illustrate the use of ACE Event
-Channels, which forward events from Suppliers to Consumers in a
-distributed system.
-
-You can get a paper that explains the patterns used in this
-implementation at the following WWW URL:
-
-http://www.cs.wustl.edu/~schmidt/TAPOS-95.ps.gz
-
-DIRECTORY STRUCTURE
-
-There are 2 directories:
-
-Gateway
-
- -- The application Gateway, which generally should be started
- after all the Peers described below. This process reads the
- proxy_config and consumer_config files:
-
- 1. The proxy_config file is used to establish the "physical
- configuration" of the Consumer and Supplier proxies. It
- tells the Gateway what connections to establish with
- particular hosts using particular ports.
-
- 2. The consumer_config file is used to establish the "logical
- configuration." It tells the Gateway how to forward
- data coming from Suppliers to the appropriate
- Consumers.
-Peer
-
- -- The test driver programs, which generally should be started
- before the Gateway process. To do anything interesting you'll
- need at least two Peers: one to supply events and one to consume
- events. In the configuration files, these two types of Peers
- are designated as follows:
-
- 1. Supplier Peers (designated by an 'S' in the Gateway's
- proxy_config configuration file). These Peers are
- "suppliers" of events to the Gateway.
-
- 2. Consumer Peers (designated by an 'C' in the Gateway's
- proxy_config file). These Peers are "consumers" of
- events forwarded by the Gateway (forwarding is based on
- the settings in the consumer_config configuration file).
-
- Note that in the current implementation, the same Peer
- process (peerd) cannot serve as both a Consumer and
- Supplier of Events. Naturally, multiple peerd processes
- can work together to play these different roles.
-
-RUNNING THE TESTS
-
-To run the tests do the following:
-
-1. Compile everything (i.e., first compile the ACE libraries, then
- compile the the Gateway directories).
-
-2. Edit the consumer_config and proxy_config files as discussed
- above to indicate the desired physical and logical mappings
- for Consumers and Suppliers.
-
-3. Start up the Peers (peerd). You can start up as many as you
- like, as per the proxy_config file, but you'll need at least
- two (i.e., one Supplier and Consumer). I typically start up each
- Peer in a different window on a different machine. The Peers
- will print out some diagnostic info and then block awaiting
- connections from the Gateway.
-
- If you want to set the port numbers of the Peers from
- the command-line do the following:
-
- a. Change the svc.conf file in the ./Peer/ directory to
- another name (e.g., foo.conf). This will keep the
- program from starting up with the svc.conf file
- (which dynamically links in the Peers).
-
- b. Then run the peers in different windows as
-
- # Window 1
- % peerd -p 10003
-
- # Window 2
- % peerd -p 10004
-
- etc.
-
-4. Start up the Gateway (gatewayd). This will print out a bunch of
- messages as it reads the config files and connects to all the Peers.
- By default, the Gateway is purely reactive, i.e., it handles
- Consumers and Suppliers in the same thread of control. However,
- if you give the '-t OUTPUT_MT' option the Gateway will handle all
- Consumers in separate threads. If you give the '-t INPUT_MT' option
- the Gateway will handle all Suppliers in separate threads. If you
- give the '-t INPUT_MT|OUTPUT_MT' option both Consumers and Suppliers
- will be handled in the separate threads.
-
- Assuming everything works, then all the Peers will be connected.
- If some of the Peers aren't set up correctly then the Gateway will
- use an exponential backoff algorithm to attempt to reestablish
- those connections.
-
-5. Once the Gateway has connected with all the Peers you can send
- events from Supplier Peers by typing commands in the Peer window.
- This Supplier will be sent to the Gateway, which will forward the
- event to all Consumer Peers that have "subscribed" to receive these
- events.
-
- Note that if you type ^C in a Peer window the Peer will shutdown
- its handlers and exit. The Gateway will detect this and will start
- trying to reestablish the connection using the same exponential
- backoff algorithm it used for the initial connection establishment.
-
-7. When you want to terminate a Gateway, just type ^C or type any
- characters in the ./gatewayd window and the process will shut down
- gracefully.
-
-Please let me know if there are any questions.
-
- Doug
-
- schmidt@cs.wustl.edu