In the final project we will enhance the Servants that
are ultimately responsible for fetching and distributing news so that thet are more useful.
In the previous project, it was not required that the Servant be very elaborate.
Old news was not neccessarily sent to NewsCallbacks that registered after that news was detected;
and some news may have been sent several times. In this part of the project we will use
an Enterprise Java Bean (EJB) to create a Servant that will keep track of what news has been
detected so that old news can be sent to new clients and so that news is not repeated.
A diagram of the system is shown below. This shows where EJBs fit into the archetecture we have built over the duration of this course.

There are two types of EJBs, stateful-beans and stateless-beans. Since you will need to persist some information, stateful-beans, also called session beans, will be used. To learn more about Enterprise Java Beans work through Suns tutorial. A copy of the J2EE software will be placed in the /projects/bina directory for you to run on a workstation (not a fileserver like yeager or hadar). You may also download a copy for your own computer if you wish. You are responsible for creating a descriptor, writing and packaging the bean for use with the J2EE EJB server. The design and implementation of this bean are completely at your discretion, so long as the Servant you implement can work with it as described below.
This implementation will be slightly different from the last one; you must implement the following behavior:
Your code will be tested in the following configurations. In each configuration, several instances of the NewsCallback will be started, and several Servants will be started and how the news is distributed will be observed. The NewsService will be used in both round robin and in random selection modes.
There will be absolutely NO extensions for this assignment. Late submissions will earn ZERO points. The end of the semester is approaching so extra time simply does not exist. It is your responsibility to give yourself enough time to work on this project, if you put it off and run out of time nothing can be done. Start early and ask questions early.