Technology Stack Map for SIS Applications
- Technology Stack Map for SIS Applications
- Typical Student-Oriented SIS Web Application
- Typical Staff-Oriented SIS Web Application
- Typical Public-Oriented SIS Web Application
- Web Services - Unsecured
- Web Services - Secured
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
- 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.
Web Services - Unsecured
Technology stack to be proposed by Randy Ballew
Web Services - Secured
Technology stack to be proposed by Randy Ballew


