软件工程1307班3901130721谭淇蔚SOA实验2.docx
《软件工程1307班3901130721谭淇蔚SOA实验2.docx》由会员分享,可在线阅读,更多相关《软件工程1307班3901130721谭淇蔚SOA实验2.docx(52页珍藏版)》请在冰豆网上搜索。
![软件工程1307班3901130721谭淇蔚SOA实验2.docx](https://file1.bdocx.com/fileroot1/2023-3/19/ab23d77e-503c-42ce-b035-6d5872378856/ab23d77e-503c-42ce-b035-6d58723788561.gif)
软件工程1307班3901130721谭淇蔚SOA实验2
《SOA原理与技术》
实验报告
项目名称实验2《WS-BPEL流程设计与执行》
专业班级软件工程1307班
学号3901130721
姓名谭淇蔚
实验成绩:
批阅教师:
邝砾
2015年12月13日
中南大学软件学院实验报告
课程名称SOA原理与技术
实验项目名称实验2《WS-BPEL流程设计与执行》
学生姓名专业班级学号
实验成绩日期
实验学时:
2
每组人数:
1
实验类型:
1(1:
基础性2:
综合性3:
设计性4:
研究性)
实验要求:
1(1:
必修2:
选修3:
其它)
实验类别:
2(1:
基础2:
专业基础3:
专业4:
其它)
一、实验目的
掌握利用EclipseBPELDesigner设计流程的方法,读懂BPEL流程文件的内容,最终编译作为Web服务发布该流程至ODE引擎中。
1.1、掌握ODE在Tomcat中的部署
1.2、掌握EclipseBPELDesigner设计流程的方法
1.3、掌握BPEL流程的编译、部署和监控
二、实验内容
2.1、实现乘除法运算
具体内容:
设计BPEL流程,实现乘除运算
2.2、服务调用的组合(开放命题)
具体内容:
利用现有的服务,如提供的服务,自行设计服务的组合,并实现BPEL流程定义和部署运行
三、实验要求:
要求每个学生独立完成实验任务。
四、实验报告
1.实验结果与分析
(1)实现乘除法运算
按照一个实验指导书,已经安装好了BPEL等基础环境。
现在开始便是实现步骤了。
(1)创建webServiceBEPL工程
启动Eclipse,选择File->New->Other->Web->Dynamic Web Project,新建一个web工程。
命名为webServiceProj,如下图所示
点击next
点击finish完成后,(有提示框消息给的),然后展开工程项目。
在src下增加两个包和两个类,用来实现加减法。
类似创建subService
下面是AddService的源码
packagews.example.add;
publicclassAddService{
publicdoubleadd(doublenum1,doublenum2){
System.out.println(num1+"+"+num2+"="+(num1+num2));
returnnum1+num2;
}
}
下面是SubService的源码
packagews.example.sub;
publicclassSubService{
publicdoublesub(doublenum1,doublenum2){
System.out.println(num1+"+"+num2+"="+((num1+num2)));
returnnum1+num2;
}
}
(2)生成加减法的Web Service WSDL
生成加减法的WebServiceWSDL描述文件,右键选择AddService.java,选择WebServices->CreateWebService,按照如下界面选择功能点:
同理发布sub的webservice服务。
完成后发现有两个wsdl文件
接下来是创建BPEL工程去调用这两个wsdl服务
右键点击AddService.wsdl的工程,然后选择BEPL服务工程。
如下所示
要创建一个
NewRunntime,然后创建后要记得寻找targetruntime
。
创建过程指导书给了,我就不重复累赘了。
然后创建流程
把生成的wsdl文件复制到项目中
把多余的删掉
增加两个伙伴链接
设置类型
接下来是设置
类型及角色
然后是选择角色名
选择addRole
选择箭头,改变输入参数类型和个数
如下所示
同理
增加四个变量
选择类型
添加if
添加elseif
然后添加if条件
设置参数
设置调用方法
下拉设置参数
加法相应结果传给输出
同理设置sub
然后把模块放在输入输出之间
然后生成部署文件,把相应的wsdl和deploy.xml打包。
然后在打开https:
//127.0.0.1:
9443/carbon/admin/login.jsp
登录后上传,接着点击tryit
然后结果如下:
(2)服务调用的组合
我采用了两个服务,一个是
另一个是
然后我的部署流程是
我的if条件句是
$input.payload/tns:
type='tr'
我的elseif条件句是
$input.payload/tns:
type='ai'
下面是我的调用结果
调用语句为:
TimeQueryRequestxmlns:
p="http:
//eclipse.org/bpel/sample">
--Exactly1occurrence-->
//eclipse.org/bpel/sample">北京
--Exactly1occurrence-->
//eclipse.org/bpel/sample">长沙
--Exactly1occurrence-->
//eclipse.org/bpel/sample">
--Exactly1occurrence-->
//eclipse.org/bpel/sample">2015-12-17
--Exactly1occurrence-->
//eclipse.org/bpel/sample">ai
TimeQueryRequest>
返回结果为:
//eclipse.org/bpel/sample">
resultxmlns:
tns="http:
//eclipse.org/bpel/sample">
//www.w3.org/2001/XMLSchema"xmlns:
msdata="urn:
schemas-microsoft-com:
xml-msdata"xmlns:
xs="http:
//www.w3.org/2001/XMLSchema"id="Airlines">
IsDataSet="true"msdata:
UseCurrentLocale="true"name="Airlines">
string"/>
string"/>
string"/>
string"/>
string"/>
string"/>
string"/>
string"/>
string"/>
schemas-microsoft-com:
xml-diffgram-v1"xmlns:
msdata="urn:
schemas-microsoft-com:
xml-msdata"xmlns:
diffgr="urn:
schemas-microsoft-com:
xml-diffgram-v1">
axis2ns47="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns47:
id="AirlinesTime1"msdata:
rowOrder="0">
南方航空
CZ5148
北京首都国际机场
长沙黄花国际机场
06:
50
09:
15
737
0
123456日
axis2ns48="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns48:
id="AirlinesTime2"msdata:
rowOrder="1">
厦门航空
MF8192
北京首都国际机场
长沙黄花国际机场
06:
50
09:
15
737
0
123456日
axis2ns49="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns49:
id="AirlinesTime3"msdata:
rowOrder="2">
山东航空
SC1343
北京首都国际机场
长沙黄花国际机场
07:
10
09:
30
32A
0
123456日
axis2ns50="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns50:
id="AirlinesTime4"msdata:
rowOrder="3">
深圳航空
ZH1343
北京首都国际机场
长沙黄花国际机场
07:
10
09:
30
32A
0
123456日
axis2ns51="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns51:
id="AirlinesTime5"msdata:
rowOrder="4">
中国国航
CA1343
北京首都国际机场
长沙黄花国际机场
07:
10
09:
30
32A
0
123456日
axis2ns52="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns52:
id="AirlinesTime6"msdata:
rowOrder="5">
南方航空
CZ3754
北京首都国际机场
长沙黄花国际机场
08:
10
10:
30
320
0
2456日
axis2ns53="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns53:
id="AirlinesTime7"msdata:
rowOrder="6">
厦门航空
MF1622
北京首都国际机场
长沙黄花国际机场
08:
10
10:
30
320
0
2456日
axis2ns54="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns54:
id="AirlinesTime8"msdata:
rowOrder="7">
海南航空
HU7635
北京首都国际机场
长沙黄花国际机场
08:
25
10:
45
738
0
123456日
axis2ns55="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns55:
id="AirlinesTime9"msdata:
rowOrder="8">
南方航空
CZ3124
北京首都国际机场
长沙黄花国际机场
11:
00
13:
20
321
0
123456日
axis2ns56="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns56:
id="AirlinesTime10"msdata:
rowOrder="9">
中国联航
KN5801
北京南苑机场
长沙黄花国际机场
11:
35
13:
40
737
0
123456日
axis2ns57="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns57:
id="AirlinesTime11"msdata:
rowOrder="10">
南方航空
CZ3146
北京首都国际机场
长沙黄花国际机场
12:
35
15:
00
321
0
123456日
axis2ns58="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns58:
id="AirlinesTime12"msdata:
rowOrder="11">
厦门航空
MF1046
北京首都国际机场
长沙黄花国际机场
12:
35
15:
00
321
0
123456日
axis2ns59="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns59:
id="AirlinesTime13"msdata:
rowOrder="12">
中国国航
CA1373
北京首都国际机场
长沙黄花国际机场
12:
35
15:
05
321
0
123456日
axis2ns60="urn:
schemas-microsoft-com:
xml-diffgram-v1"axis2ns60:
id="AirlinesTime14"msdata:
rowOrder="13">
海南航空
HU7835
北京首都国际机场
长沙黄花国际机场
13:
15
15:
45
738
0