May 11, 2007, 9:35 a.m.
posted by max
Overview of Adventure BuilderWe begin with an examination of the adventure builder application from a high-level, business perspective. Once we have outlined the application's functions, we shift to examining the architecture and design of the application itself. Recall that the adventure builder enterprise provides customers with a catalog of adventure packages, accommodations, and transportation options. From a browser, customers select from these options to build a vacation, such as an Adventure on Mt Kilimanjaro. Building a vacation includes selecting accommodations, mode of transport, and adventure activities, such as mountaineering, mountain biking to a hidden waterfall, and hiking the mountain. After assembling the vacation package, the customer clicks the submit order option. The customer Web site builds a purchase order and sends it to the order processing center (OPC). The order processing center, which is responsible for fulfilling the order, interacts with its internal departments and the external partners and suppliers to complete the order. In essence, the adventure builder enterprise consists of a front-end customer Web site, which provides a face to its customers, and a back-end order processing center, which handles the order fulfillment processing. See Figure. 1. Adventure Builder Enterprise and Its Environment
As you can see from this diagram, there are four types of participants in adventure builder's business process:
The business problem for adventure builder is to ensure that these participants interact successfully so that it can sell and fulfill adventure packages. To solve this problem, the enterprise must architect, design, and build appropriate J2EE applications that provide the needed business functionality and tie the application modules together. Since the order processing center is the core module of the application, let's look at it in more detail, starting with its responsibilities for coordinating and communicating with other business units to fulfill orders. (Since this book is about Web services, we do not cover the design of the customer Web site in detail. Other books, particularly Designing Enterprise Applications with the J2EE Platform, Second Edition, address this area. See "References and Resources" on page xx.) The order processing center module needs to perform the following functions:
1 Order Processing Center Sub-Modules and InteractionsFirst, let's examine the order processing center by decomposing it into its logical sub-modules. Figure shows the main sub-modules of the order processing center and their relationships to the other participants.
2. Order Processing Center Sub-Modules![]() Keeping the picture of the various sub-modules in mind, let's map out the processing flow that occurs when a customer places an order. In particular, it is important to trace the messages and documents exchanged among participants.
Figure shows the order fulfillment workflow. When it receives an order for an adventure package from a customer, the order processing center persists a purchase order. Before proceeding, it verifies that the customer has the available funds or credit for the purchase. If not, the order processing center cancels the order, notifies the customer, and updates the order status. Otherwise, it proceeds to fulfill the order, which entails breaking the entire adventure package order into sub-orders (such as a sub-order for a hotel room, another sub-order for airline reservations, and so forth). It sends the sub-orders to the appropriate suppliers, who fulfill these portions of the order and return invoices. The order processing center then joins these invoices for sub-orders so that the entire order is invoiced. The order processing center also updates the status of the order and notifies the customer. 3. Order Fulfillment Workflow![]() |
- Comment


