Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Include Page
Search
Search

Contents

Primary Presentation

Element Catalog

Context Diagram

Variability Guide

Rationale

Related Views

Anchor
primary
primary
Primary Presentation


Image Modified

Visio file

Anchor
element
element
Element Catalog

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
context
context
Context Diagram

N/A

Anchor
variability
variability
Variability Guide

See OPC Module Uses View - Variability Guide.
See Top Level SOA View - Variability Guide.
See Consumer Website Multi-tier View - Variability Guide.

Anchor
rationale
rationale
Rationale

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
related
related
Related Views