Server 1 - “Simple Server” (use server1 codes)
The first POA-based server you need to develop is the “simple server”. This server should
perform the following tasks: 1. Start a timer.
2. Create 1,000 Count objects with names “My Count1” ... “My Count1000”, and activate each
object at the time of its creation.
3. Stop the timer and print out the average time to create and activate each counter
4. Register each Count object with the Naming Service (you do not need to time how long this
operation takes)
5. Wait for client requests
Note that this server does not use a servant manager.
The client for Server 1 should behave in the following way:
1. Create an array of 1,000 Count object references, binding to each one in the Naming Service
2. Start a timer
3. Invoke 1,000,000 increment calls on randomly selected counters from the set of 1,000
available counters. This means you make 1,000,000 TOTAL increments during each client run,
with the 1,000,000 increments being randomly distributed among the 1,000 available objects.
4. Stop the timer and print out the average time to perform each increment operation
5. After the calls to increment, calculate the average sum value of all the 1,000 counters and print
out the value.
Server 2a – Simple Server with Activator (use server2 codes)
The second POA-based server you need to develop is similar to the first server, but this one uses
a Servant Activator. This server should perform the following tasks:
1. Start a timer.
2. Create 1,000 Count objects with names “My Count1” ... “My Count1000”, but do not activate
each object at the time of its creation. Rather, only create a reference for the object.
3. Stop the timer and print out the average time to create each counter
4. Register each Count object with the Naming Service (you do not need to time how long this
operation takes)
5. Design a servant activator that stores/retrieves each count object's sum value in a disk file
called “My CountXXX.state” (for example, “My Count412.state” or “My Count900.state”). Use one
disk file for each counter created. Your servant manager should keep no more than 10 active
servants in memory at a time. When forced to deactivate a servant, select one from random from
your pool of servants.
6. Register your servant manager with the POA.
7. Wait for client requests