Today's universities are recognizing the desirability of providing many staff functions for their students through a Web interface. Self-service applications allow students to enroll in courses, manage their personal information and examine their class schedules -and save the university time and expense for staff that would otherwise perform these tasks. In April 1999 New York State's Syracuse University went online to accomplish these activities over the Internet with a self-service application based on Enterprise JavaBeans technology. Here's how it was done.
Syracuse University had bought a new online student information system (SIS) from a leading software vendor. Unfortunately, the system didn't provide an adequate Web interface, and it was built from the point of view of administrators, not students, complicating how a Web-based solution could be developed.
The university sought a Web-based student self-service interface for its new system and had an extensive list of requirements for the application. The interface had to be easy to use and responsive over modem connections, and it had to work with all popular browsers. The application had to be platform independent and use distributed, scalable technology. It also had to be highly reliable as it would be running 24/7. Further, the application had to be implemented using standards-based technology such as EJB. Most important, the Web interface had to be capable of reliably enrolling all of Syracuse University's 15,000 students during its open enrollment period.
Syracuse also required an application vendor that would provide first-rate technical support.
It became clear that development of an application that adapted the SIS to the Web would require a substantial effort. A clear separation between the business logic and presentation layer would be needed to enable customizations without affecting the application logic. EJB promotes this separation. In addition, standard Java-based technologies such as Java Servlets and Java Server Pages (JSP) would be needed to write the presentation layer. As Java is platform independent (particularly on the server) and largely vendor independent, an application based on standard Java technologies would be the best fit for this distributed Web application.
In September 1998 Syracuse selected Student Affairs, a Web application from Interactive Business Solutions (IBS), to fulfill their requirements. This application provides a scalable Web-based solution through the use of servers that are specialized in communicating with the SIS used at Syracuse. Scalability is achieved through its multilayer architecture, where each layer fulfills a specific responsibility.
Online student information environment
Student Affairs' Application Architecture
The application architecture developed by IBS can be used to develop new applications and to adapt, as Student Affairs does, to third-party applications. The outermost layer is the application user interface. For simplicity, the user interface is a commonly available browser (Internet Explorer 3.0 or later and Netscape 3.0 or later). The presentation layer consists of servlets running on a servlet-enabled Web server. This architecture also supports the use of JSP and HTML/Java (JHTML). Applets can also be used. (Student Affairs uses one small applet to facilitate the enrollment process.)
Student Affairs' servlets constitute a very thin presentation layer for the SIS data, which allows the user interface designer to focus on designing displays that communicate SIS content to the students. The resulting presentation layer can be a rich user interface that guides students seamlessly through the enrollment process yet is not overly concerned with how the enrollment is accomplished.
The EJB Application Server is responsible for executing all the business logic of an application. In the case of this application, however, the SIS contains the business logic; the application's EJB is a thin layer that makes calls to the SIS via the SIS Interface Manager with parameters it receives from the application servlets. In some cases EJB makes direct read-only SQL calls to the SIS's database, either to increase performance or simply to access data that may not be available through the SIS interfaces. The results are returned to the servlet, which then formats and displays the results.
The EJB Application Server communicates with the SIS through two additional layers. EJB communicates directly with the SIS Interface Manager, which load-balances calls from the EJBs to multiple SIS Interface Servers that perform the actual API calls to the SIS.
With the exception of the user interface layer, which is an Internet browser, a specific server manages each layer in the application. For instance, the presentation layer runs on a Web server, and the business logic is in EJBs on the EJB Application Server. These servers can operate on separate computers, and there can be multiple servers for each layer. This obviously increases performance and reliability. Because the servers don't have to run on the same kind of computer (thanks to Java), a university can choose the equipment that's best for each server.
Syracuse and Student Affairs
Student Affairs was installed in October 1998. Syracuse chose to install the Web server, EJB Application Server, SIS Interface Manager and SIS Interface Servers on separate multiprocessor NT servers. While the Web server and EJB Application Server could be installed on any computer that supports Java, the SIS Interface Manager and SIS Interface Servers required installation on NT servers due to the SIS API server requirements.
During the six months before Syracuse did its first online registration, the university spent its time customizing the appearance of the application and testing the application components.
Because Student Affairs is designed to function at any university using the student information system, it has a large set of items that are customizable, including color preferences for pages, links, text and tables. The banner title and logo are also customizable, and a university can readily customize the footer of each page in the application. Each item can be modified without changing any source code.
Syracuse University modified the appearance of the Web application extensively, supplying the university's logo, using school colors for the menu buttons and providing thorough informational text for the customized footers on each page. The university also produced a companion Web site that provided online instruction on how to use the new application.
The university's tests were in two general arenas: functional testing of the application and performance testing. During the former they sought to determine whether the application worked (a validation test); during the latter, whether it worked in a desirable manner (a usability test). Any bugs were reported to IBS.
Usability issues were also reported. Items judged useful for any university were performed at no charge; items deemed unique to Syracuse were considered chargeable and were performed with the university's approval. All work items - bug fixes and usability items - were then scheduled for repair according to how critical the defect was.
Syracuse also spent several months doing performance testing of the application components, which demonstrated that testing in a production-like environment is essential. The SIS was the first to be tested. The rationale was that if there was a bottleneck in the back end, testing from the Web server could hide or exacerbate the problem. Back-end testing exercises the SIS, the database server and the IBS SIS Interface Servers.
Back-end testing simulated thousands of concurrent enrollments per hour. The system was severely overtaxed and performed poorly. Initially, the SIS Interface Servers weren't running in a full production environment. Additional computers were installed, and the tests were repeated. No further problems were discovered with the SIS Interface Servers during these tests. However, intermittent communication problems between the SIS Interface Server and the SIS Interface Manager were discovered independently by IBS, and the servers were updated at Syracuse.
The SIS and the database servers were still underperforming during these tests. Syracuse spent two months testing and fine-tuning these servers to achieve adequate performance. Once sufficient performance began to be achieved by the back end, front-end testing of the Web server and EJB Application Server was started. Several problems were discovered and remedied at this time.
- The heap size of the Web server and EJB Application Server needed to be expanded. The default maximum heap size, 16MB, was expanded to 128MB.
- Following one update of the EJB Application Server, the server was found to be leaking memory, which it had not been doing before. A seemingly minor change in the server uncovered a memory problem in which circular references between different EJB components prevented garbage collection of EJBs and many resource classes. The server logic was corrected and a new update was quickly made.
- Two deadlocks were discovered between threads competing for server or EJB resources.
- Unlimited users would saturate the Web and EJB servers. Configurable limits were added to control the number of users accessing the system.
The Syracuse University experience successfully demonstrates that distributed applications written in Java using the Enterprise JavaBeans model can build reliable and scalable systems. The multilayer EJB architecture was essential in enabling the university to go online on time. In addition, the cooperative spirit between the university and IBS accelerated the testing process and significantly improved the product.
Frank Gates, a software developer for 20 years, currently works for Interactive Business Solutions. The senior
consultant on the team that developed the IBS Enterprise Application Server and the Student Affairs application on which this article is based, he is also on the team developing the next
version of the EAS.
He can be reached at: [email protected]