Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Primary Presentation

Informal Notation

OPCRuntimeRefinementView_PP.png

Visio file

UML

OPCRuntimeRefinementView_PP2.png OPCRuntimeRefinementView_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:

  • purchase order message. When processing such messages, this component interacts with ProcessManagerBean to insert the order in the database in the Pending state. Then it interacts synchronously with the Bank external service provider to validate and charge the customer's credit card. If the credit card is OK, it sends a message to the OrderFillerQueue JMS queue to be processed by OrderFillerBean. Finally, it sends another message to CRMQueue, which will be processed by CrmBean (send email to the customer informing the order is being processed).
  • invoice message. This is a message that came from one of the external suppliers in response for a booking order. When an invoice message is received, this component basically interacts with ProcessManagerBean to update the status of the corresponding order. If the message confirms the last invoice that is part of a travel package order, WorkFlowManagerBean sends a JMS message to CrmBean to notify the customer via email.

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.

  • It provides an interface called sendPO that is used by the workflowmanager to send purchaseorders.
  • It requies an interface sendRequest that it uses to send purchaseorders to each individual supplier.
BrokerRequestorBean

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

  • AirlinePOService - This is used to send purchaseorders to external airline suppliers.
  • ActivityPOService - This is used to send purchaseorders to external activity suppliers.
  • LodgingPOService - This is used to send purchaseorders to external lodging suppliers.
BrokerServiceBean

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

  • WebServiceBroker - This is a web service that is used by the external suppliers to submit invoices back to the OPC.
  • getInvoice - This interface can provide the invoices that are sent by external suppliers.
  • sendRequest - This interface can be used to contact external suppliers and place orders with them.
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:

  • minimum (and initial) number of bean instances in the pool
  • maximum number of bean instances in the pool
  • timeout for an idle instance to be passivated or deleted

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

  • No labels