如何使用Java、WS-BPEL和SOA交付复合应用程序
本文演示了 NetBeans 如何提供真正集成的开发环境,该环境允许用户扩展现有的 Java 服务、创建新的 Java 服务以及组合 Java 服务与业务流程。本文还介绍了如何使用 NetBeans 进行无缝地交互式开发、构建、部署以及测试复合应用程序,从而减少交付复合应用程序所需的总周转时间和精力。
复合服务
可以使用 NetBeans Enterprise Pack 5.5 中的 Business Process Editor 来复合服务。Business Process Editor 使用户能够在可视的环境中对业务流程采用图形的方式建立模型,并且会自动生成与可视模型相对应的 WS-BPEL 代码。但是,用户可以选择直接在生成的 WS-BPEL 代码中进行更改,然后将可视模型自动同步到图形视图。这些由业务流程调用的服务定义为 WSDL(参见图 5)。用户可以在 NetBeans 中直接使用 WSDL 编辑器和 XSD 编辑器创建新的 WSDL。但是,用户还可以导入现有的 WSDL 和 XSD,然后使用编辑器编辑它们。
创建一个 BPEL 项目 CreditApplicationProcessorBusinessProcessor 一小服务的 WSDL 和 XSD 包括:1) Applicant Evaluator,2) Vehicle Information Server,3) Financial Index Server,4) Loan Approval Processor Service。导入 WSDL 之后,将为要从业务流程中调用的端口类型创建 Partner Link Types。请记住,信用申请流程也将显示为一种 Web 服务,因此,将创建另一个 WSDL 即 CreditProcessor.wsdl,它表示到该业务流程的接口。
Partner Link Types 指定在端口类型中定义的服务将发挥的作用。例如,下面的 Partner Link Type CustomerDataServicesPartners 指定当调用 getCustomerReport 函数时该服务发挥 CustomerReportProvider 的作用。
portType="getCustomerReport"/>
在 WSDL 中为 PortTypes 创建了 Partner Links Types 之后,就可以从业务流程中调用它们了。用户只需将 WSDL 拖放到 Business Process Editor 画布上,Business Process Editor 就会自动识别可用的 Partner Link Types 并且显示为业务流程配置 Partner Links 的向导。该向导允许用户确定此业务流程将是 Partner Link Type 中定义的服务的消费合作伙伴还是提供合作伙伴。
WS-BPEL 2.0 规范提供对复杂真实的业务流程建模的各种类型的活动。业务流程可以接收和回复消息,也可以只接收消息而不响应。业务流程还可以从外部源异步接收消息。WS-BPEL 规范中所支持的主要结构包括能够调用外部服务、处理异常、处理补偿和错误条件逻辑。它还允许对活动的并发执行和条件执行进行建模。本文中使用的示例仅使用几个结构,它们是 Receive、Reply、Invoke 和 Assign 活动。Invoke 活动用于使用服务,Assign 活动用于设置所调用服务的输出和输入消息中的值并从中获得值。Assign 活动打开一个映射程序,该映射程序允许用户查看业务流程中的所有变量并且以图形方式获得和设置它们之间的值。该映射程序还提供数据处理和数据转换功能,可以与指定结合使用。Receive 活动用于接收在运行时创建业务流程实例的传入消息。Reply 活动用于将响应消息发送回调用方,然后丢弃业务流程实例。
用户通过对活动进行布局,然后一次配置一个活动,开始创建一个模板业务流程。用户拖放 CreditProcess WSDL 并作为该服务的提供合作伙伴配置该业务流程。用户配置 Receive 和 Reply 活动以实现 CreditProcess WSDL 中指定的 PortType。然后用户拖动所有其他 WSDL 并作为这些服务的使用合作伙伴配置该业务流程。用户对每个使用的服务使用一个 Invoke 活动并配置此 Invoke 活动以将其与相应的 Partner Link 链接。配置完成之后,该业务流程应该类似于图 6 所示。
创建和部署复合应用程序
NetBeans 可以将不同项目下多个可用的业务流程组合成一个复合应用程序。这将允许您组合多个逻辑业务流程并在部署期间将它们作为一个逻辑单元进行管理。NetBeans 还提供用于部署复合应用程序所需的运行时组件。这些运行时组件包括 Java Application Server 9.1、WS-BPEL 服务引擎和 HTTP/SOAP 绑定组件。可以通过在环境中的不同项目中选择和添加组件轻松创建复合应用程序。NetBeans 还允许用户通过一次单击构建和部署复合应用程序。
在本文中使用的示例中,用户将项目 CreditApplicationProcessorBusinessProcess 中的业务流程模块添加到 Composite Application 项目中。然后在运行时部署该复合应用程序。
测试
需要编写客户端应用程序只是为了测试新部署的复合应用程序,这让人感到很沮丧。NetBeans 通过提供强大的测试工具避免了这个需要。该工具会自动添加到 Composite Application 项目下。用户可以创建任意数量的测试用例来测试所部署的复合应用程序的各种功能并指定这些测试的成功条件。当用户选择与要测试的业务流程相对应的 WSDL 时,还会自动生成测试用例的输入和输出消息。然后用户可以根据需要在编辑器中自定义消息。该测试工具还保留所有测试结果的日志。如果系统出现故障,可以从 NetBeans 中查看服务器和应用程序日志。该工具允许用户立即测试刚刚部署的复合应用程序。
用户为本文中所讨论的应用程序添加测试用例。第一次运行之前,可以自定义输出消息,也可以将第一次运行测试用例中的输出消息用作期望的输出消息。
一切完毕,那么下一步该做什么呢?
Java EE 5 SDK 提供使用 WS-BPEL 组合服务所需的一整套工具和环境。调用所有服务作为 SOAP/HTTP Web 服务可能会引起对性能的密切关注。可以使用 WS-BPEL 直接调用 Enterprise JavaBeans 以组合 Java EE 应用程序中的功能。可以使用 Java EE 5 SDK 对业务流程进行建模,它可以直接调用内部和外部的 Web 服务以及 Enterprise JavaBeans。
业务过程可以调用这些技术中可用的服务,包括 REST Style Web 服务。如果您有兴趣查找可用于组合服务和处理业务事件的其他选项,请检查以下开放源码项目。
| NetBeans:http://netbeans.org/ GlassFish:http://glassfish.dev.java.net/ Open ESB:http://open-esb.dev.java.net/ |
本文中所使用的示例项目的源代码可以从 http://jdj.sys-con.com 上的本文的联机版本中下载。
小结
本文讨论并介绍了在 Java EE 5 SDK Tools Bundle 中使用 Java、WS-BPEL 和 SOA 交付复合应用程序的很多功能。
首先,本文讨论了这两种技术的优势以及它们如何共同工作以支持开发下一代应用程序。
其次,本文演示了 NetBeans 如何提供真正集成的开发环境,该环境允许用户扩展现有的 Java 服务、创建新的 Java 服务以及组合 Java 服务与业务流程。本文还介绍了如何使用 NetBeans 进行无缝地交互式开发、构建、部署以及测试复合应用程序,从而减少交付复合应用程序所需的总周转时间和精力。
- 本文关键词:

