在Oracle SOA Suite 11g环境下创建OrderBookingComposite组合的过程包含了构建企业级应用程序的关键知识点,其中涉及到组合编辑器(SOA Composite Editor)的使用、服务组件的定义、BPEL流程的创建以及事件订阅和调解器的应用等,下面将对这些知识点进行详细说明。
关于OrderBookingComposite组合的介绍,它是一个集成多个服务组件的复合应用程序,旨在处理订单的预订流程。在这个组合中,暴露给外部的服务端口是前端应用系统与OrderBookingComposite组合交互的主要方式。SOA组合编辑器中的泳道显示了组合的结构,它包含了两个服务端口,分别是orderprocessor_client_ep和UpdateOrderStatus_ep。orderprocessor_client_ep服务端口提供了一个主要的入口点,以通向处理电子订单的OrderProcessorBPEL流程。而UpdateOrderStatus_ep服务端口则允许访问用于更新订单状态的调解器。
接下来,创建OrderBookingComposite工程中包含了以下几个关键任务。任务1是创建OrderBookingComposite工程,它是整个组合的容器,用于组织和管理相关的服务组件和流程。任务2是创建InternalWarehouse.xsd模式文件,这个模式文件定义了在订单处理过程中需要用到的内部仓库的XML结构。任务3是创建OrderProcessorBPEL流程,这个流程是处理订单的核心业务逻辑,涉及到订单的接收、处理和状态更新等操作。任务4是添加ADF(Application Development Framework)业务组件服务运行时库,ADF是Oracle提供的一套用于构建企业级Java EE应用程序的框架,添加此运行时库可以使得SOA组合能够利用ADF服务。
在服务组件方面,组合中使用了多种服务组件类型。其中人工任务(ApprovalHumanTask)组件用于实现订单审批流程,这是由领导或相关部门完成的人工步骤。决策服务(EvaluatePreferredSupplierRule)是用于根据价格或其它业务规则选择合适的供应商。FulfillOrder调解器用于将订单信息转发到发货适配器,完成实际的发货动作。BPEL流程组件(OrderProcessorBPEL)是处理业务逻辑的核心,它能够调用异步流程,并通过事件订阅和分发的方式与其他组件通信。内部仓库服务(InternalWarehouseService)为订单处理提供必要的仓储信息。订单挂起事件(BPELOrderPendingEvent)和订单更新事件(OrderProcessorBPELOrderUpdateEvent)调解器用于处理与订单相关的事件。PartnerSupplierMediator调解器负责获取外部供应商的报价信息,并决定使用哪个供应商。
在BPEL流程中,通过创建订单提交事件(NewOrderSubmitted)订阅,可以捕获来自StoreFrontService的ADF业务组件发出的事件,并将事件中的订单ID信息传输到OrderProcessorBPEL流程中。在处理订单的过程中,OrderProcessorBPEL流程还会订阅另一个来自UpdateOrderStatus调解器的OrderUpdateEvent事件,将处理结果(订单ID)发送回StoreFrontService。
这些步骤和组件的设置是Oracle SOA Suite 11g入门实例的核心,它展示了如何在Oracle SOA Suite平台上,通过服务组件的组合、事件的订阅与分发以及业务流程的编排,构建出灵活、可扩展的企业级业务流程解决方案。通过这些实例的详细步骤学习,开发者能够掌握Oracle SOA Suite 11g在实际开发中的应用技巧,为构建复杂的业务应用打下坚实的基础。