HomeStreek ResourcesClient AppsDeveloper ResourcesTalksHowTo Docs
 

Technology Stack Map for SIS Applications

Technology Stack Map for SIS Applications

* * * DRAFT * * *

This document describes application types and technology stacks deemed appropriate to each described type.

This document is under development by the SIS Java Team.

LAST UPDATE: 8 June 2005

Typical Student-Oriented SIS Web Application

Typical Student-Oriented SIS Web Application Profile

This "typical" profile is compiled from responses provided to questions listed in the Making Design Decisions section of the companion document to this one, Object Oriented Development Methodology. This profile is not meant to describe the universe of SIS applications; it does describe a subset that makes up a large fraction of SIS projects. Other sections (to be completed) in this document will address other categories of SIS applications.

For "typical" student-oriented web applications implemented by SIS:

  • A browser-based UI is preferred and appropriate
  • Functionality includes retreival, insertion, and update of persistent data within constraints of business rules.
  • The universe of potential users is about 40,000; high concurrent usage occurs for a small but critical subset of these applications
  • A workflow component, high-usage periods, and/or time-window restrictions are common
  • Application is inward-facing (access intended for UCB community members of varying roles)
  • Role-based security and finely-grained permissions often apply
  • Application is mission-critical
  • Application is expected to have a long lifespan (15-30 years)

Technology Stack

The technology stack summarized in the chart below, and described in the following sub-sections is appropriate to the application profile described above.

Layer Technology Other Technologies Considered Future Directions
Deployment Environment
View
Web-App MVC Spring Struts Beehive
Business Logic EJB session & message-driven beans (JMS)
Persistence Hibernate EJB entity beans
Workflow Message-driven Beans (JMS)

Deployment Environment

Technology
JBoss, Apache HTTP Server
Comments
  • JBoss includes an embedded Apache-Tomcat servlet container. It is selected in order to provide configurable (via the JMX micro-kernel) container services (e.g., connection pooling, transaction management, JMS, JNDI, web-services, etc.).
  • Apache is deployed in front of the application server to:
    • handle SSL (https) more elegantly than the application server;
    • serve static content without engaging the application server (for better appliation performance); and,
    • to relieve the user of the need to use a port number in the application URL
Other Technologies Considered
Future Directions

View Layer

Technology
CSS, JSP, JSTL, XSLT, & JSF
Comments
  • CSS - efficient, object-oriented HTML styling (UI look & feel)
  • JSP - integration of HTML markup with back-end data & business logic functionality
  • JSTL - JSP Standard Tag Library encapsulates common web application functionality as a set of simple tags.
  • XSLT - where multiple output-targets or rendering modes are required
  • JSF - A technology to move toward for its event-driven callback architecture, which more closely and elegantly mimics desktop GUI programming within a web-browser context; and because excellent visual-programming tools for this technology are being implemented.
Other Technologies Considered
Future Directions

Web Application MVC Layer

Technology
Spring
Comments
This is choice of the Sakai project, toward which SIS is aiming new development projects.
Other Technologies Considered
Struts - used successfully in SIS, but not Sakai choice
Future Directions
Beehive is a new Apache project that is likely to evolve into a more robust MVC framework for web applications and web services.

Business Logic Layer

Technology
  • EJB session & message-driven beans
  • POJOs ("plain old Java objects") - business logic implemented in easily repurposable classes
Comments
A thin EJB session-bean facade to leverage container services (pooling, etc.); while business logic itself is delegated to POJO ("plain old Java objects") that can be repurposed easily behind alternate facades as need dictates. Message-driven beans for asyncronous functionality.
Other Technologies Considered
Future Directions

Persistence Layer

Technology
Hibernate
Comments
  • This is choice of the Sakai project, toward which SIS is aiming new development projects.
  • EJB 3.0 entity beans will converge with Hibernate
Other Technologies Considered
EJB entity beans - used successfully by SIS, but not a good technology in which to invest at this time given Sakai choice and future direction of EJB specification (v. 3.0 is expected to look much like Hibernate).
Future Directions

Workflow Layer

Technology
Message-driven Beans (JMS)
Comments
Loosely coupled, reliable, and asynchronous communication between message-driven EJBs (cf. this definition of message-driven beans).
Other Technologies Considered
Future Directions

Typical Staff-Oriented SIS Web Application

To be defined by George Suennen in consultation with Randy Ballew. Following completion of definition, a technology stack appropriate to the definition will be described.

Typical Public-Oriented SIS Web Application

This "typical" profile is compiled from responses provided to questions listed in the Making Design Decisions section of the companion document to this one, Object Oriented Development Methodology. Like other such profiles in this document, this one also is not meant to describe the universe of SIS applications; it does describe a subset that makes up a small number of SIS projects that are used. by large user populations. Other sections in this document address other categories of SIS applications.

For "typical" public-oriented web applications implemented by SIS:

  • A browser-based UI is preferred and appropriate
  • Functionality includes retreival of one or a set of data within constraints of business rules.
  • The data retrieved is informational in nature and requires no or minimal security (where "minimal security" means "user has Calnet ID"), and does not require role security.
  • The universe of potential users is anyone, but is, in practical terms, about 100,000 persons; high concurrent usage occurs for a critical set of these applications, such as the General Catalog, used by UCB students and potential students.
  • These applications are always available. There are no workflow components.
  • No time-window restrictions apply, but currency of data may depend on time-of-year.
  • High-usage periods may occur (e.g., the online Schedule of Classes, OSOC).
  • Applications may be inward- or outward-facing (access intended for UCB community members or for general public), but access is unrestricted.
  • Application is mission-critical.
  • Application is expected to have a long lifespan (10-20 years).
  • Key applications in this category include OSOC (online schedule of classes), General Catalog, and Final Exam Schedule. The Nutrition Science Survey is an example of this type of application that is technically public, but access is quasi-controlled by the obscurity of its URL.

Note

Technology stack to be proposed by Randy Ballew

Web Services - Unsecured

Technology stack to be proposed by Randy Ballew

Web Services - Secured

Technology stack to be proposed by Randy Ballew