University of Pennsylvania
Core Administrative Systems
Architecture Recommendations


Last updated 13 December 2002

 

Summary

This document evaluates architectural alternatives for future core administrative systems. It argues that we need a clearly documented, preferred architectural framework for future enterprise applications, and a simpler alternative for "quick-hit" applications. Our recommended framework is J2EE (Java 2, Enterprise Edition), which provides the most promising combination of immediate usefulness, multiple-vendor support, and built-in support for emerging technologies like Web Services. As a first step in that direction, we recommend developing new enterprise applications using the Servlet/JSP technology of J2EE. (This has already been done for BenDeposits, which provides a working application structure that can be adapted to other situations.) The Servlet/JSP approach provides a consistent and logical upgrade path to a more robust J2EE implementation. For simpler implementations, where no cross-platform connections are needed, we recommend using an object-oriented PSP (PL/SQL Server Pages) approach. Architecturally, this is similar to JSP and will allow us to capitalize on the existing expertise of our staff.

Intro

In the last five years, technology has taken several sharp turns. We have moved irreversibly from a world where a single mainframe handles the bulk of application processing to a world where processing is shared across many platforms, operating systems, and database management systems. More recently the Web has become the focus of tremendous innovation. This is not a theoretical issue; it affects ISC in specific, concrete ways. To give a sense of the dimensions of the change, here is a list of some of the application environments we are currently supporting (in addition to the more traditional CICS and Natural environments):

We support applications that run on a number of different web servers, including:

There are a number of database management systems involved as well. In addition to Adabas and Oracle, we have applications that use:

One consequence of this proliferation is that we have a number of smaller applications with incompatible technology. Another is that our ability to support our applications is being spread thinner and thinner. To best serve our clients, we need expertise that is both broad and deep; the alternative is to hire expensive support on a temporary basis. We believe that the only way to maintain the necessary level of internal expertise is to choose a specific direction from the many paths that have become available to us. Focusing more intensively on a smaller tool set will reduce our training costs and increase our staffing flexibility.

We also believe that in order to continue to serve our clients effectively, we need to choose a direction that brings us closer to several emerging trends in Web technology. Those trends include:

It is time to leave behind the stage of experimenting with each new tool as it comes along, and move to a mature and well-documented architecture. The goal is not to create a rigid framework that every application must fit into; the goal is to create a set of guidelines that lead us, at a pace that is sustainable, to a more robust, more flexible, and more consistent environment.

Criteria for choosing an architectural framework

The following criteria are crucial in evaluating a new development environment:

Making the choice

At present there are two viable alternatives for an architectural framework that meet the criteria outlined above: J2EE from Sun Microsystems and .NET from Microsoft. They are often portrayed as being in opposition, but the choice is not necessarily either/or. In fact, the likelihood is that, because of the requirements of different vendor packages, we will need to support both. The question is rather which one should become the standard for applications that are developed in-house.

Both frameworks meet most of the criteria. Both provide the necessary components and services for developing Web-based enterprise applications. Both are modular and scalable and provide support for XML and web services. Both provide access to a wide variety of database management systems. Both are backed by strong vendor support and third-party offerings. (On the down side, both have a steep learning curve and will require a significant investment in training.)

For several reasons, however, we believe that J2EE offers decisive advantages in our current environment.

Recommendations

Our overall recommendation consists of two approaches.

For enterprise applications, we recommend moving toward a full-scale J2EE architecture, using a Servlet/JSP approach. We recommend using the architecture developed for BenDeposits as a model for future development.

For smaller applications, where data resides exclusively in Oracle databases on a single platform, we recommend adopting the PL/SQL Server Pages approach. The single-vendor disadvantage in this case is outweighed by the ability to use our existing expertise. It would reduce the immediate training requirement and allow staff to make the transition to a different architectural model, while still using a familiar set of tools.

A final recommendation concerns middleware. Messaging is at the heart of this new architecture. Effective middleware would make it possible to incorporate established mainframe applications into this environment — further separating the specific form of data from the other layers of the architecture. We recommend an investigation of current middleware offerings, with an intent to purchase and integrate one of them into this proposed architecture.

Making the transition

Making the transition to this new architecture will not happen overnight. We recognize that, among other things, this approach will require a significant commitment in training costs, both on the part of management and on the part of individual programmers. We are moving toward an object-oriented, web-based environment that is conceptually foreign to many of our existing staff. We do not feel, in today’s environment — technical, marketing, and political — that we have a viable alternative.

We recommend the following steps:


Appendix: Evaluation of existing approaches

Oracle Tools

Almost by definition, the Oracle-related tools meet three of the criteria

All possess one significant disadvantage as well:

Forms and Reports

Pros:

Cons:

Recommendation:

WebDB

Pros:

Cons:

Recommendation:

Web Agent

Oracle Web Agent is included here, even though it is no longer a supported product, because we already have several applications that run in this environment. Examples include Position Inventory and the graduate school ExpressApp (although ExpressApp is being rewritten to run on Oracle’s IAS server with the PL/SQL toolkit). Oracle Web Agent is no longer supported by Oracle. Among the other disadvantages:

Recommendation:

PL/SQL Server Pages

Pros:

Cons:

Recommendation:

PHP

We have one application (GRAM) that was written in the PHP environment, and another one — the Student Portal — that is currently in development. PHP is an open-source product, supported by a large and active community; it is one of the most widely-used web application environments in the world. The syntax is fairly simple, there is built-in support for Oracle, and it is tightly integrated with HTML. PHP applications running on the Apache webserver perform well in stress tests; they are highly portable and are likely to be highly scalable as well.

There are significant disadvantages, however.

Recommendation: