In our model we have three credit card companies: Visa, Master and Discover. Furthermore there are some stores, e.g. Safeway, K- Mart and Sears. The stores send requests for credit card authorization to the credit card companies. Such a request can look like this:
Visa Shende 123-45-6789 K-Mart $59 3-12-95In the reply the credit card company sends back whether the card has been accepted or not. In this scenario the stores are the clients and the credit card companies are the servers. The whole communication goes over our network based message queue. Our message queue provides heterogeneous service. Servers asking for different types of messages can offer their service over the same message queue. It is also possible to have multiple servers of the same type on one queue. The controllers are in charge of the loadbalancing of the message queue. There is a separate controller for the different message types, i.e. services offered by the queue. If there too many messages of a particular type for the group of servers answering them then the controller forks out new servers to keep up with the load. Once the load drops below a certain limit then some servers are getting deleted. In the UNIX message queue system it is not possible to find out how many messages of a particular type are on the queue. This ability is a special feature of our network based message queue.