Primary Presentation

Informal Notation

OPCRuntimeRefinementView_PP.png

Visio file

UML

OPCRuntimeRefinementView_PP2.png

soapatterns.org notation

OPCRuntimeRefinementView_PP3.pngOPCRuntimeRefinementView_PP3.png

Element Catalog

PoEndPointBean

This stateless session bean implements the SOAP web services interface called OpcPurchaseOrderService. When a purchase order request arrives, it simply validates the order and, if OK, sends the order to the WorkFlowMgrQueue using JMS.

OtEndPointBean

This stateless session bean implements the SOAP web services interface called OpcOrderTrackingService. Requests for information about an order are handled by interacting with ProcessManagerBean. Order information is retrieved usintg the PurchaseOrderBean entity bean.

WorkFlowManagerBean

This message-driven bean is activated when there is a message in the WorkFlowMgrQueue. It processes two kinds of messages:

WorkFlowManagerBean also sets a timer with the EJB container so that it is activated periodically to check the status of all pending orders.

WofkFlowManagerBean is one of the two components in the Adventure Builder system that act as service user of external services (the other is BrokerRequestorBean).
The life cycle of a purchase order can be summarized by the following UML state machine diagram.

OPCRuntimeRefinementView_OrderStateDiagram.png
PurchaseOrderBean

This entity bean persists the details of a purchase order (user who placed the order, date of the order, total price, head count, departure and arrival dates, departure city, etc.). The status of the order as it's processed is not stored within this entity bean; it's ManagerBean that keeps the order status.

ActivityBean

This entity bean persists the details of an activity reservation (activity id, location, price, date/time, head count).

TransportationBean

This entity bean persists the details of a flight reservation (e.g., origin, destination, carrier, flight id, departure time, arrival time, travel class, fare)

LodgingBean

This entity bean persists the details of a hotel reservation (hotel id, start date, number of nights, rate per night, number of rooms).

CreditCardBean

This entity bean persists the credit card information (credit card number, type, expiration date, etc.) of a user.

ProcessManagerBean

This session bean provides operations to retrieve and update the overall status of a purchase order and the status of the individual supplier orders.

ManagerBean

This entity bean is used by WorkFlowManagerBean to persist the status of the purchase order containing order id, order overall status, and the status of each separate supplier order.

OrderFillerBean

This component is used to process the purchaseorder. It reads the purchaseorder and splits it into smaller purcahseorders, one each for activities, transportation and lodging. It then sends each of these smaller purchaseorders to the webservicebroker that in turn sends them to external suppliers.

BrokerRequestorBean

This message driven bean makes requests to external suppliers. It requires the following interfaces:

BrokerServiceBean

This component is the OPC's window to external suppliers for activities, lodging and transportation. It provides the following interfaces:

CRMBean

This component is used for customer relationship management. For this application it is only used to communicate with the user. It reads messages from a queue, creates the corresponding email messages according to templates and I18N requirements, and sent them to users.

WorkFlowMgrQueue

TODO

OrderFillerQueue

TODO

WebServiceBrokerQueue

TODO

CRMQueue

TODO

Context Diagram

See OPC Module Uses View - Context Diagram

Variability Guide

EJB configuration

For each EJb, a pool of bean instances is provided by the application server. There are three parameters that can be configured separately for each EJB via deployment descriptor:

Rationale

''TODO: Describe here the rationale for any significant design decisions whose scope is limited to this view. Also describe any significant rejected alternatives. This section may also indicate assumptions, constraints, results of analysis and experiments, and architecturally significant requirements that affect the view. ''

Related Views

Parent view: Top Level SOA View