| Include Page | ||||
|---|---|---|---|---|
|
Contents
| Anchor | ||||
|---|---|---|---|---|
|
| Anchor | ||||
|---|---|---|---|---|
|
Consumer Website
The web-based user interface of the Adventure Builder is implemented in this module. The user interface lets the user browse the catalog of travel packages, place a new purchase order, and track the status of existing orders. This module creates the purchase orders based on user input and passes them to OpcApp for processing. It uses an implementation of the Model View Controller pattern called the Web Application Framework (waf). The model is implemented using Entity beans, the controller is implemented using servlets, and the view is a collection of JSPs and static HTML pages. Part of the client-facing code is implemented using the GWT framework.
OpcApp
OpcApp stands for Order Processing Center Application. The business logic of the Adventure Builder is implemented in this module. It provides the following functionality:
- Accepting purchase order requests from the ConsumerWebsite for processing by hosting the Purchase Order Web Service
- Provide a mechanism for the Consumer Website to query the current status of a purchase order by hosting the Order Tracking Web Service
- Communicate with external suppliers to process and maintain the status of a purchase order.
- Upon completion of processing a purchase order, send an email to the customer of its success or failure.
A module decomposition refined view and a module uses refined view of OpcApp are available.
utils
This module contains utilities used by the Adventure Builder system.
dao
This module contains Data Access Object (DAO) utilities, such as a DAO factory. It does not contain the actual DAO classes that access the database--these classes are inside the ConsumerWebsite module.
logger
This module contains tracing and debugging utilities. The original name was tracer.
servicelocator
This module is an implementation of the ServiceLocator design pattern.
gwt
Google Web Toolkit (gwt) is an open source framework for development of rich internet applications based on Ajax.
waf
Waf stands for Web Application Framework. It is a Model View Controller framework similar to Struts. It allows you to specify in configuration files the web screens and action that are associated to user clicks on specific elements of the screen. The configuration file has the mapping of screens and actions to Java classes. The framework provides the engine to display the proper screens and invoke the proper actions.
Bank credit card service
This module represents an external service provided by a partner bank to validate credit card transactions.
Airline booking service
This module represents an external service provided by an airline partner company to book air travel.
Lodging booking service
This module represents an external service provided by a lodging partner company to book hotel rooms.
Activity booking service
This module represents an external service provided by an activity supplier company to book different activities.
| Anchor | ||||
|---|---|---|---|---|
|
N/A
| Anchor | ||||
|---|---|---|---|---|
|
See OPC Module Uses View - Variability Guide.
See Top Level SOA View - Variability Guide.
See Consumer Website Multi-tier View - Variability Guide.
| Anchor | ||||
|---|---|---|---|---|
|
WAF
The WAF framework was chosen because it facilitates the implementation of the Consumer Website code by providing template classes for using the MVC pattern. For a given user operation, the developer implements an action class (controller) and JSP pages that correspond to the user screens (view). The developer also uses configuration files to provide a configurable mapping between actions, action classes, events and screens. The WAF infrastructure can then automatically take http requests and invoke the action classes and JSP screens. WAF also provides support for event-based communication and internationalization.
WAF also provides support for event-based communication and internationalization.
An alternative to WAF was to use the Spring framework. Spring was a more robust and rich solution from a technical standpoint, but it was rejected because the development team is not familiar with Spring and very familiar with WAF.
GWT
The GWT framework was chosen for the following reasons:
...
*All performance tests were executed on the same hardware: Pentium M 1.7GHz, 2GB RAM, Win XP Pro SP2
| Anchor | ||||
|---|---|---|---|---|
|
- Refinement of OpcApp showing decomposition: OPC Module Decomposition View
- Refinement of OpcApp showing use dependencies: OPC Module Uses View
