
WebBrowser
This component represents the user interface that is presented to end users of the system. A prospective customer of the Adventure Builder would open the web site, browse through the existing catalog of adventure packages and place an order.
ConsumerWebsite
The ConsumerWebsite is a J2EE application that is the client facing part of the application. It is implemented using a number of Java Server Pages, Java Servlets and html pages and provides the Adventure Builders user interface. Its primary responsibility is to securely capture the needs of the end user in the form of a purchase order and relay it across to the OPC application for processing. It requires the following interfaces:
- Purchase Order Web Service- This is used to place a purchase order.
- Order Tracking Web Service- This is used to track the status of a purchase order.
- Read/Write - The ConsumerWebsite component uses a data source to access the catalog and also to create user accounts. The Read/Write interfaces are not explicitly provided by the database component, but the OPC implicitly uses them via its Enterprise Java Beans.
OPC
OPCstands for Order Processing Center Application. The core functionality of the Adventure Builder is implemented in this module. Its major functions are:
- Accepting purchase order requests from the ConsumerWebsite for processing.
- Provide a mechanism for the Consumer Website to query the current status of a purchase order.
- Communicate with external suppliers to process and maintain the status of a purchase order.
- Upon completion of processing a purchase order, send an e-mail to the customer of its success or failure.
It provides the following interfaces:
- Purchase Order Web Service- This is an exposed web service, and is used by the ComsumerWebsite to place a purchase order.
- Order Tracking Web Service- This is an exposed web service, and is used by the ComsumerWebsite to track the status of a purchase order.
- WebServiceBroker - This is a web service that is used by the external suppliers to submit invoices back to the OPC.
It requires the following interfaces:
- AirlinePOService - This is used to send purchase orders to external airline suppliers.
- ActivityPOService - This is used to send purchase orders to external activity suppliers.
- LodgingPOService - This is used to send purchase orders to external lodging suppliers.
- CreditCardService - This is used to verify the bank account of a user.
- Read/Write - The OPC component creates a new purchase order record in the database as soon as it receives one. It also updates the status of the purchase order as and when it receives invoices from external suppliers. The Read/Write interfaces are not explicitly provided by the database component, but the OPC implicitly uses them via its Enterprise Java Beans.
A Refinement View of the OpcApp is available.
This activity diagram shows the processing of a purchase order.
AdventureCatalogDB
This is a relational database that stores the adventure builder catalog containing various adventure packages. It also stores information about users for user authentication and authorization.
Adventure OPC DB
This is another relational database that stores the purchase orders, invoices coming from the external suppliers and related information.
Bank
This component represents an external application hosted by a bank or credit card administrator. The application provides a SOAP web service to verify customers' credit card information.
Airline Provider
This component represents an external application hosted by an airline partner company. The application provides a SOAP web service to book air travel.
Lodging Provider
This component represents an external application hosted by lodging partner company. The application provides a SOAP web service to book hotel rooms.
Activity Provider
This component represents an external application hosted by an activity provider partner company. The application provides a SOAP web service to book adventure activities, such as hot air ballooning, surf class, and mountain climbing.
service registry
Data repository that works as basic registry of the external services used by OPC. More specifically, it has name, location and metadata about all the SOAP web services offered by the banks, airline, lodging, and activity external partners.