Oracle SOA Suite11g入门实例(一)一个端到端的SOA组合实例
Author:maolin.chen
Creation Date:June17,2010
Last Updated:August20,2010
Document Ref:
Version: 1.1
文档控制更改记录
内容目录
文档控制 (ii)
1.准备篇 (2)
1.1.简介 (2)
1.2.环境搭建 (2)
1.3.学习目标 (2)
2.实战篇 (3)
2.1.设计SOA组合 (3)
2.2.部署SOA组合 (12)
2.3.测试&监控SOA组合 (19)
3.未结与已结问题 (25)
未结问题 (25)
已结问题 (25)
1.准备篇
1.1.简介
本文主要介绍一个端到端(End2End)的覆盖完整的生命周期的SOA组合(Composite)
实例(非常简单,不执行任何有用的任务),包含设计开发,部署,测试,监控等阶段。
1.2.环境搭建
环境搭建请参考《Oracle SOA Suite11g环境搭建手册for linux》
本系列文档所使用的环境与《Oracle SOA Suite11g环境搭建手册for linux》中使用的
环境略有差异,但基本不影响操作。本系列文档使用如下环境:
服务器OS:Solaris10SPARC
应用服务器:WebLogic10.3.2
数据库:Oracle XE for Windows
SOA版本:Oracle SOA Suite11g11.1.1.2
RCU版本:11.1.1.2
Jdeveloper:11.1.1.2
服务器主机名:sp-eump-cms
服务器AdminServer端口:7801
服务器soa_server1端口:8801
服务器bam_server1端口:9801
1.3.学习目标
在学习完本文内容之后,你将掌握以下过程的基本操作步骤和工具使用方法:
——设计一个简单的SOA组合
——部署一个基本的SOA组合
——测试和监控SOA组合
2.实战篇
本章将为大家手把手讲解如何构建一个SOA组合应用,这个极其简单的SOA组合应用由
一个SOAP绑定(SOAP binding),一个调解器(Mediator),一个BPEL流程组成。
我们还将测试和监控这个组合应用。
2.1.设计SOA组合
2.1.1打开JDEVLOPER,点击New Application,
Application Name:SOA-first-composite
Application Template:SOA Application
NEXT,
Empty Composite,
接下来,界面应该会像下图一样。
接下来,我们给组合应用添加一个SOAP绑定,暴露给外界,这样外界就能像访问普通Web Services一样访问这个SOA组合。
拖动Web service到Exposed Services区域,
Name:receive(可以自定义名称)
Type:Service
WSDL URL:点击右边的小齿轮,生成一个WSDL文件
下面是定义WSDL的消息模式,这里我们使用默认的单个字符串模式,全部输入框都保持默认即可。
小提示:当jdevloper向你展示了一个对话框,而你不知道如何选择或填写的时候,不妨
点击对话框左下角的Help按钮,通常情况下,在弹出的帮助文件里会有详细的指导。
确定之后,在Port Type中就出现了默认的execute_ptt端口。
这样我们就完成了SOAP绑定的设计。接下来我们来设计一个调解器(Mediator),从功能角度讲,Mediator就是10g里面的ESB,都是实现消息过滤,转换,路由的功能,仅仅是换了个名字而已,据说是ORACLE整合BEA的相关产品后的作品。
这里我们仅仅使用Mediator作为一个通道,不涉及详细的功能,我在后续文档中会有专题介绍。
拖动Mediator到Components区域,
Name:SOAP2BPEL
Template:Define Interface Later(选择此项,可以让我们稍后再定义调解器的细节配
置)
接下来,我们创建一个bpel流程,简单起见,我们也只是做一个空的BPEL流程,不包含任何内容。
拖动BPEL Process到Components区域,
Name:emptyBPEL
Template:One Way Bpel Process(单向流程,即仅接受调用,不返回任何信息)Expose as a SOAP service:不选择.(如果勾选此项,那么这个BPEL流程就拥有一个独立的SOAP访问地址,可以像普通WEB SERVICE一样被外部程序调用,这里,我们
不想他暴露给外界,仅仅希望在本SOA组合内被调用)
点击OK。
接下来我们来组装我们设计的3个组件,SOAP绑定,调解器(Mediator),BPEL流程方法很简单,就点住一个图标的小三角,拖到另一个图标的小三角上。
先拖动Receive的小三角到SOAP2BPEL的左边小三角上
再拖动SOAP2BPEL的小三角到emptyBPEL的小三角上。如下图所示
至此,你的组合应用看上去应该像下图这个样子:
最后我们要做的是确保我们的输入净荷数据(imcoming payload data)顺利的从Mediator到BPEL PROCESS,因此我们需要在Mediator里做输入/输出映射(mapping),双击SOAP2BEPL组件,打开Mediator详细定义页面,
点击Using Transformation后的“映射”按钮
拖动receive.wsdl里的inp1:input到emptyBPEL.wsdl里的的client:input。
这里我们就实现将receive SOAP绑定的参数传递给emptyBEPL流程,这里还有很多函
数可以对参数进行转换和调整,后面的文章我们会介绍到。
最后,点击Save All,一个简单SOA组合应用就设计完成了。
2.2.部署SOA组合
下面我们介绍如何部署我们刚刚设计的SOA组合应用。
点击View,Application Server Navigator,
右键Application Servers,New Application Server
在下图中选择默认的Standalone Server,除非你在Jdeveloper集成的Weblogic里搭建的SOA域(一般不建议这么做),
在下图中给连接取一个名字,例如soa11g.
输入Weblogic的用户名和密码(安装域时指定的),
指定SOA服务器的主机名或域名或IP,管理服务器(AdminServer)的端口号,如果你没有修改过,默认应为7001,指定SOA所在域的名称(在安装SOA域时指定的),我的为soa_domain。
下一步,点击Test Connection,8项全部成功后方可完成,否则,检查前几步指定的信息是否有误。
右键MyFirstComposite,Deploy,MyFirstComposite,
下图中,第一项是直接部署到应用服务器,第二项是打包成SAR包(文件后缀仍然是.jar),然后人工部署到应用服务器。经笔者测试,直接部署到应用服务器不一定能成功,经常会报一些莫名其妙的错误,估计为开发工具不成熟所致。但由于直接部署到应用服务器操作方便,因此这里我们选择直接部署到应用服务器,后文我们会提到如何人工部署SAR到应用服务器。
New Revision ID:指定本次发布的程序的版本号。
Mark composite revision as default:指定本次版本为默认版本。因为SOA组合应用支持同一组合的多个版本共存于当前运行环境,客户端在调用本组合时,可指定版本号,也可不指定,当不指定版本号的时候,系统就使用默认的版本。
Overwrite any existing composites with the same revision ID:覆盖服务器上相同版本号的组合。