1 BPS官方文档《Quick Start Guide》(WS_NumberAdderCarbon)

https://docs.wso2.com/display/BPS320/Quick+Start+Guide

本章将介绍如何设置和启动WSO2 BPS,在WSO2 BPS管理控制台创建、部署和测试一个BPEL流程发布包,该流程实现两个数的相加。

1.1 介绍

实现加法运算,不调用外部服务。

1.2 步骤

1.2.1 启动BPS

1、JDK 1.6.* 以上

2、从 http://wso2.com/products/business-process-server/下载wso2 BPS,解压

3、<PRODUCT_HOME>\bin 目录运行 wso2server.bat 启动BPS

1.2.2 创建BPEL工程

1、下载安装WSO2 Developer Studio.(http://wso2.com/products/developer-studio)

2、选择 Developer Studio > Open Dashboard。

3、点击Composite Application Project,Project Name输入WS_NumberAdderCarbon,点击finish。

4、选中工程WS_NumberAdderCarbon,点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

5、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

6、为BPEL流程输入相应的信息,例如输入以下信息,点击finish,将自动产生 AdderProcess1Artifacts.wsdl and AdderProcess1.bpel,工程结构如下图。

l Project name :BPELNumberAdder

l Process Name :AdderProcess

l Namespace :http://NumberAdder.com

l Template : Synchronous BPEL Process

1.2.3 流程设计

现在可以设计BPEL流程了,在本例中我们设计两个数据相加。

1、打开AdderProcessArtifacts.wsdl,点击“Adder Process Request”旁边的箭头。

点击后出现“Inline Schema of AdderProcess1Artifacts.wsdl”选项卡,如下界面。默认有一个String类型的input变量。

重命名为x,类型为int。

添加另一个元素。右击 "AdderProcessRequestType" ,点击 “add  element”, 命名为"y" ,类型为  "int". ,如下所示。

2、现在开始设计一个简单的业务流程,打开“AdderProcess.bpel”,删除“FIX_ME-Add_Business_Logic_Here”元素。右击元素/delete,删除后如下图所示。

3、现在需要在“receiveInput” 和“replyOutput” 活动间添加“Assign”活动,添加方法:从“Actions”中拖动“Assign”到“receiveInput” 和“replyOutput” 之间;另一种方法是右击“replyOutput”活动,在“insert before”选择“Assign”,结果如下。

4、配置“Assign”活动,点击BPEL流程中的“Assign”,点击“Property”窗口的“Details”,点击new,出现如下窗口。

我们使用Xpath表达式计算两个变量,并将结果分配给output变量。从“From”下拉列表选择“Expression”,从“To”下拉列表选择“Variable”。

“Xpath Expression”输入“ $input.payload/tns:x + $input.payload/tns:y ”,“To”选择“result:string”作为分配的变量。

当配置变量时,编辑器将发送一条消息请求初始化,点击yes。它将自动生成一个XML字符串完成变量初始化。

完成后如下图所示:

5、定义in和out接口,打开deploy.xml文件,从给定列表中选择“AdderProcessPort”为inbound地址端口,其他参数选择后将自动填充,outbound接口不需要提供端口因为在我们的业务流程中没有任何外部调用,填充完后如下图所示。

1.2.4 流程部署

现在完成BPEL流程的编排,需要部署到WSO2 BPS上。

1、将“BPELNumberAdder”工程的选定文件导出为“File System”,起名为“bpelContent”并打包成“.zip”文件准备部署到BPS系统中。zip文件需要的文件至少包括1)deploy.xml,2).bpel文件,3).wsdl文件。

2、上传。点击WSO2 BPS/Manage/processes/Add,选择上传文件,点击upload。

上传成功,点击processes/List,出现下图所示界面。注意:上传的流程的状态都是“active”,点击“manage”的“retire”按钮,状态变为“retired”,此时流程不能创建实例,active状态下,一个流程可以创建多个实例。

流程上传成功后,会作为一个BPEL服务发布到Service中,点击services/list可以查看,如下图所示。

1.2.5 流程测试

进入BPS的WEB端控制台,将bpelContent.zip上传至服务器后;进入“bpelContent”,点击相应流程的Process ID,如点击bpelContent-3的Process ID,结果如下。

点击WSDL Details部分的try it,即可测试刚刚创建好的“bpelContent”流程。出现如下,输入x的值为1,y的值为2,得到结果3。

2 Developer Studio开发WS-BPEL步骤(BPELProject1、BPELProject2)

http://wso2.com/library/tutorials/2011/04/using-carbon-studio-model-wsbpel-process-using-bpel-editor/

2.1 介绍

开发BPEL流程调用单个web服务。该web流程返回两个数字相加的和。BPEL调用一个web服务并从web服务获得结果。Web服务实现两个数相加。Web服务部署在Axis2服务器。

2.2 步骤

2.2.1 准备

l WSO2 BPS3.2.0

l Apache-Axis2 1.6

l WSO2 Developer Studio3.6.0

2.2.2 Step 1: 部署AdderService.aar

1、部署AdderService.aar文件到Apache Axis2 服务器。复制AdderService.aar文件到E:\test\axis2-1.6.2-bin\repository\services目录。

2、运行axis2Server。E:\test\wso2bps-3.2.0\samples\axis2Server目录下运行axis2server.bat。可以从http://localhost:8080/axis2/services/AdderService_0?wsdl查看AdderService.wsdl,保存AdderService_0.wsdl。

2.2.3 Step 2: 创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

4、点击Composite Application Project,Project Name输入WS_NumberAdderCarbon1,点击finish。

4、选中工程WS_NumberAdderCarbon1,点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

5、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

6、为BPEL流程输入相应的信息,例如输入以下信息,点击finish,将自动产生 AdderProcess1Artifacts.wsdl and AdderProcess1.bpel,工程结构如下图。

l Project name :BPELNumberAdder1

l Process Name :AdderProcess1

l Namespace :http://NumberAdder1.com

l Template : Synchronous BPEL Process

注意: AdderProcess1Artifacts.wsdl 是用来暴露BPEL流程作为一个服务,它只定义端口类型、消息,为部署BPEL流程到WSO2 BPS,我们需要定义一个绑定(binding)和一个服务(Service),下一部分介绍如何创建BPEL流程的一个绑定和一个服务。

2.2.4 Step 3: 创建AdderProcess1Artifacts.wsdl的绑定和服务

l 先添加一个绑定到AdderProcess1Artifacts.wsdl。

1、Developer Studio默认已经为我们创建binding,点击可以看到Properties选项卡提示的binding相关信息。

2、点击Generate Binding Content,出现如下所示界面,protocal 选择“SOAP” 然后点击Finish。

注意有三种SOAP绑定选项:Document Literal , rpc literal and rpc encoded,WSO2 BPS使用Axis2集成层,Axis2不支持rpc encoded 的SOAP绑定。所以不要选择rpc encoded 的SOAP绑定。

l 添加一个服务。

1、Developer Studio默认已经为我们创建服务,也可以删除原有AdderProcesser1服务,新建服务。右击编辑空白处,选择“Add Service ”,服务重命名为“NumberAdderService1”。选择port,在property 窗口重命名port名字为“ NumberAdderServicePort”,从下拉菜单选择刚才创建的绑定,完成后AdderProcessArtifacts.wsdl 如下所示。

现在我们完成了为我们的BPEL流程定义绑定和和服务。

变量在BPEL流程中表示流程的中间状态,也用作服务调用时的输入参数以及接收服务返回的结果。BPEL中的变量既可以是WSDL消息类型变量也可以是XML Schema所定义的复杂类型或元素。在我们的例子中,变量需要存储发送到伙伴服务或者从伙伴服务接收的消息,所以我们需要初始化变量来调用外部服务,这里使用的是WSDL消息类型变量。WSDL消息类型变量对应于WSDL文件中定义的web服务消息类型。下面看一下如何定义BPEL流程的输入输出变量,首先我们需要修改BPEL流程的服务描述文件。

2.2.5 Step 4: 修改服务描述文件AdderProcessArtifacts.wsdl

现在我们开始定义输入输出参数,在本例中我们设计两个数的相加,BPEL编辑器自动帮我们创建好了输入输出参数,但是我们需要修改参数符合我们的服务。

1、打开AdderProcessArtifacts.wsdl,首先设置输入参数。点击“Adder Process Request”旁边的箭头。

2、点击后出现“Inline Schema of AdderProcess1Artifacts.wsdl ”选项卡,如下界面。默认有一个String类型的input变量。

重命名为x,类型为int。

3、添加另一个元素。右击 "AdderProcessRequestType" ,点击 “add  element”, 命名为"y" ,类型为  "int" ,如下所示。

4、现在完成了输入参数的配置,同样的流程配置输出参数,命名为"result" ,类型为  "int" 。

提示:我们也可以通过Outline窗口添加元素,AdderProcessRequest → local type → sequence,可以看到我们创建的元素。

现在完成了WSDL的配置,开始设计BPEL流程。

2.2.6 Step 5: BPEL流程设计

1、打开“AdderProcess.bpel”,可以看到业务流程的模板,BPEL编辑器自动生成了“receiveInput”“replyOutput”活动,而且也产生了在这两个变量中使用的partnerLink 和variables ,删除“FIX_ME-Add_Business_Logic_Here”元素。右击元素/delete,删除后如下图所示。

注意:我们的BPEL流程需要调用外部服务(Adder Service),为调用服务我们需要分配input变量到外部服务的input,分配外部服务的响应到我们的BPEL流程的output,所以我们的场景需要两个assign活动和一个invoke活动。

2、在“receiveInput” 和“replyOutput” 活动间添加“Assign”活动,添加方法:从“Actions”中拖动“Assign”到“receiveInput” 和“replyOutput” 之间;另一种方法是右击“replyOutput”活动,在“insert before”选择“Assign”,结果如下。

3、添加“invoke”活动。添加invoke活动前需要添加一个Sequence。添加方法:从“Control2”中拖动“Sequence”到“assign”和“replyOutput”之间。

4、在Sequence,添加“invoke”活动,从action窗口拖动invoke到Sequence。

5、添加另一个“Assign”匹配外部服务响应与我们流程响应的变量。

2.2.7 Step 6: 为invoke活动设置伙伴链接

1、导入“AdderService.wsdl”到我们的BPEL工程文件夹。右击BPEL工程选择Import,选择General ->“File System” .

完成后,点击finish。

2、点击“invoke”活动,点击“Property”窗口的“Details”。在“Partner Link” 下拉框选择“Create Global Partner Link” 起名为AdderServricePL.

3、然后弹出Partner-link类型对话框,类型来自于AdderService.wsdl。为添加伙伴链接类型,点击“Add WSDL”从Import Source部分选择Resources ,从项目文件夹选择AdderService.wsdl ,点击Ok。

4、然后点击“choose partner link type”的“ok”,提示输入伙伴类型名称,输入“AddPLT ”,点击“next”,输入角色1名称“AdderRole”,点击“finish”。

从quick pick选择add操作。

现在已经为invoke活动创建了一个伙伴链接,下一步为活动分配变量。

2.2.8 Step 7: 分配变量

1、点击“AssignInputVaraiabes”,点击properties选显卡的的Details。初始化Input变量,点击New,从“from”列表选择“Input”->“payload:adderPorcessRequest” ,“to”列表选择“AdderServicePLRequest”->“parameters: add”

当配置变量时,编辑器将发送一条消息请求初始化,点击yes。它将自动生成一个XML字符串代码完成变量初始化。

完成后如下图所示:

现在我们的设计中有两个assign活动,一个““Fixed Value to Variable ”一个“variable to variable ”,现在配置它们。

2、点击 “Variable to Variable”,“From ”列表的“payload of the input” 设置为“x: int”,“To”列表的 “parameters: add of the AdderServicePLRequest”设置为“args0: int” 。

3、再添加一个“Variable to Variable”,From ”列表的“payload of the input” 设置为“y: int”,“To”列表的 “parameters: add of the AdderServicePLRequest”设置为“args1: int” 。

4、然后点击“Fixed Value to Variable”,检查Input变量
args0和 args1是否初始化,未初始化进行初始化。

5、相同的步骤设置“AssignOutputVaraiabes”。“from”列表的“parameter of AdderServicePLResponse”中的“return:int” 到“to”列表的“payload of the output”中的“result : int ” 。

注意:这里只使用了一种方式定义变量,实际上可以用不同方式初始化变量。从from和to列表可以选择。

2.2.9 Step 8: 创建Deploy.xml

1、打开deploy.xml文件,在这里可以设置BPEL流程的选项,如1)可以指定流程部署后的状态(activated,deactivated,retired),2)可以设置流程只在内存中运行,3) Inbound Interfaces (Service) and Outbound Interfaces (Invokes) 。 Inbound Interfaces (Service) 代表流程提供的服务,对每一个伙伴链接必须指定你想使用的服务、端口和绑定。Outbound Interfaces (Invokes)代表流程调用的接口。

2、定义Inbound 接口。Client伙伴链接对应于我们的BPEL流程,点击“Associate Port”,选择“NumberAdderServicePort1”,其他参数选择后将自动填充。

3、定义Outbound接口。在我们的例子中只有一个外部调用,所以需要指定AdderServicePL伙伴链接的服务、端口和绑定。填充完后如下图所示。

现在我们完成了BPEL流程的实现,下一步需要部署到WSO2 BPS上运行。

2.2.10 Step 9: 部署到WSO2 BPS

首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,如下图所示。

然后将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,如下图所示。

结果如下:

3 Eclipse平台BPEL开发(加法运算)

3.1 介绍

开发BPEL流程调用单个web服务。该web流程返回两个数字相加的和。BPEL调用一个web服务并从web服务获得结果。Web服务实现两个数相加。Web服务部署在tomcat服务器。

3.2 步骤

3.2.1 准备

l WSO2 BPS3.2.0

l Tomcat7.0

l WSO2 Developer Studio3.6.0

3.2.2 Step 1:web服务开发部署

1、启动Eclipse,建立一个动态web Project。file->new->other,查找Dynamic web Project。起名为dynamicwebproject。

工程下面建立两个包ws.example.add和ws.example.sub,建完后如下图所示。

部署。选择 AddService.java,右键WebService选项,选择 Create WebService。如图所示。

点击finish 就会生成java类对应的wsdl和配置文件,并发布到tomcat中,同时会生成调用服务的客户端。这里的WebService是为BPEL调用WebService实现流程做准备。

要想把生成的服务放到Tomcat目录下,把这个工程Export成一个war包即可。File->Export Web WAR File,选择保存位置,则会生成war包,把生成的war包复制到Tomcat_Home/webapps目录下,重启Tomcat,则完成服务的发布。

6、测试服务是否发布成功。在浏览器里输入http://localhost:8080/dynamicwebproject/services/AddService?wsdl 则能打开加法服务对应的wsdl.这也意味着服务发布成功了。

3.2.3 Step 2:创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

2、点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

3、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

4、为BPEL流程输入相应的信息,例如输入以下信息,点击finish,工程结构如下图。

l Project name :CaculatorProj

l Process Name :CaculatorProcess

l Namespace :http://www.pku.edu.cn/bpel/sample

l Template : Synchronous BPEL Process

3.2.4 Step 3:导入服务的WSDL文件

很简单,就是把AddService.wsdl复制到工程目录里。如下图所示,导入addService.wsdl.

3.2.5 Step 4:设置伙伴链接

Bpel把涉及其中的所有服务都称之为伙伴链接。Bpel对应的wsdl本身也是一个伙伴链接。系统已经自动生成了。对于流程中要用到的加法服务,减法服务,应该生成对应的伙伴链接。

在最右边的Partner Links中,增加两个链接:addPL,subPL,分别对应加法服务和减法服务。下面具体讲下addPL的配置。

1)点选上addPL,在属性视图中Details页面中点Browser..按钮,打开一个对话框。

2)点Add WSDL把用到的两个WSDL即AddService.wsdl加进来,这样会在CaculatorProcessArtifacts.wsdl文件中生成两条对应的<import>语句。加完后这个对话框也会把这两个wsdl文件中的接口都显示出来。

一定要记住,所谓的伙伴链接一定是针对某个wsdl文件的某个接口而言的。选上AddService接口,点Ok,弹出伙伴链接类型定义,把名字取为addPLT,点Next。要求输入Role Name,这里输入“addProvider”,点Finish完成。同时在属性视图中把ParterRole选为addProvider

3.2.6 Step 5:修改文件CaculatorProcessArtifacts.wsdl

主要是改输入输出,使之符合我们的要求。

1、打开AdderProcessArtifacts.wsdl,可以看到,默认生成的WSDL很简单,只有一个操作process,该操作有输入input,输出output. 如下图所示。首先设置输入参数。点击“Adder Process Request”旁边的箭头。

2、点击后出现如下界面。默认有一个String类型的input变量。

重命名为x,类型为int。

3、现在完成了输入参数的配置,同样的流程配置输出参数,命名为"result" ,类型为  "int" 。

3.2.7 Step 6:创建调用服务时需要的变量

每次invoke一个服务时都要有对应的变量,同时要进行赋值。我们这里要调用加法服务。因此需要额外加入addRequest,addResponse。加完后的效果如下:

Input,output变量都自动配置好了,对应CaculatorProcessArtifacts.wsdl定义的消息。下面以addRequest为例讲解配置过程。

1)点上addRequest变量,属性视图中切换到Details页,点右上角的Browse..按钮,打开类型选择对话框。addRequest是加法服务的输入,因此把它的类型设为加法服务里的输入定义就可以了。一个变量的类型可以是简单类型,也可以是复杂类型,还可以是wsdl中的Message定义。简单起见,我们这里就把addRequest的类型设为AddService服务中的addRequest Message。

点ok即完成变量的定义,同样的方式定义其它变量。至此,准备工作就算是做好了。下一步开始真正的bpel流程设计。

3.2.8 Step 7:BPEL流程设计

l Assign语句的设置

两个Assign语句的配置过程都一样,这里讲解下第一个Assign的配置。

第一个Assign的作用是把输入变量input中的前两个参数传给addRequest变量。需要注意的是,BEPL中的变量赋值只能是一个一个的赋,不能直接把input赋给addRequest(当然这里也不匹配,即使匹配也不行),而只能把input下的参数挨个赋给addRequest.

意思应该很明了,把input下的x赋给addRequest下的x. 然后会弹出一个对话框,问是否需要初始化addRequest,你点Yes就是了。再次点New,把input下的y赋给addRequest下的y。

l Assign1语句的设置

对于Assign1,它的作用是把addResponse的值传给流程的输出变量output.如图:

l Invoke语句的设置

Invoke的作用是调用伙伴链接对应接口下的对应操作,还需要指定输入输出变量。选上Invoke,同样在属性视图的Details页面中进行如下配置:

3.2.9 Step 8:流程发布

BPEL流程最终的目的也是发布成一个web service,只不过这个web服务自己基本上不实现功能,主要是通过调用别人的功能来完成任务。因此,最后也要把流程对应的WSDL发布出去。默认生成的WSDL只有类型定义,消息定义,和操作定义,缺少绑定信息和服务定义。

CaculatorProcessArtifacts.wsdl文件如下:

从图中可以看到,import进来的wsdl也会显示在图形视图中。

现在我们完成了BPEL流程的实现,下一步需要部署到WSO2 BPS上运行。

3.2.10 Step 9:BPEL运行与测试

首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,如下图所示。

然后将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,如下图所示。

结果如下:

4 Eclipse平台BPEL开发(加减法CaculatorProj3)

4.1 介绍

开发BPEL流程调用两个web服务,分别实现两个数字相加相减。BPEL调用一个web服务并从web服务获得结果。Web服务部署在tomcat服务器。

4.2 步骤

4.2.1 准备

l WSO2 BPS3.2.0

l Tomcat7.0

l WSO2 Developer Studio3.6.0

4.2.2 Step 1:web服务开发部署

1、启动Eclipse,建立一个动态web Project。file->new->other,查找Dynamic web Project。起名为dynamicwebproject。

工程下面建立两个包ws.example.add和ws.example.sub,建完后如下图所示。

部署。选择 AddService.java,右键WebService选项,选择 Create WebService。如图所示。

点击finish 就会生成java类对应的wsdl和配置文件,并发布到tomcat中,同时会生成调用服务的客户端。这里的WebService是为BPEL调用WebService实现流程做准备。

要想把生成的服务放到Tomcat目录下,把这个工程Export成一个war包即可。File->Export Web WAR File,选择保存位置,则会生成war包,把生成的war包复制到Tomcat_Home/webapps目录下,重启Tomcat,则完成服务的发布。

6、测试服务是否发布成功。在浏览器里输入http://localhost:8080/dynamicwebproject/services/AddService?wsdl 则能打开加法服务对应的wsdl.这也意味着服务发布成功了。

4.2.3 Step 2:创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

2、点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

3、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

4、为BPEL流程输入相应的信息,例如输入以下信息,点击finish,工程结构如下图。

l Project name :CaculatorProj3

l Process Name :CaculatorProc3

l Namespace :http://www.pku.edu.cn/bpel/sample

l Template : Synchronous BPEL Process

4.2.4 Step 3:导入服务的WSDL文件

很简单,就是把AddService.wsdl复制到工程目录里。如下图所示,导入addService.wsdl.

4.2.5 Step 4:设置伙伴链接

Bpel把涉及其中的所有服务都称之为伙伴链接。Bpel对应的wsdl本身也是一个伙伴链接。系统已经自动生成了。对于流程中要用到的加法服务,减法服务,应该生成对应的伙伴链接。

在最右边的Partner Links中,增加两个链接:addPL,subPL,分别对应加法服务和减法服务。下面具体讲下addPL的配置。

1)点选上addPL,在属性视图中Details页面中点Browser..按钮,打开一个对话框。

2)点Add WSDL把用到的两个WSDL即AddService.wsdl加进来,这样会在CaculatorProcessArtifacts.wsdl文件中生成两条对应的<import>语句。加完后这个对话框也会把这两个wsdl文件中的接口都显示出来。

一定要记住,所谓的伙伴链接一定是针对某个wsdl文件的某个接口而言的。选上AddService接口,点Ok,弹出伙伴链接类型定义,把名字取为addPLT,点Next。要求输入Role Name,这里输入“addProvider”,点Finish完成。同时在属性视图中把ParterRole选为addProvider

4.2.6 Step 5:修改文件CaculatorProcessArtifacts.wsdl

主要是改输入输出,使之符合我们的要求。

1、打开AdderProcessArtifacts.wsdl,可以看到,默认生成的WSDL很简单,只有一个操作process,该操作有输入input,输出output. 如下图所示。首先设置输入参数。点击“Adder Process Request”旁边的箭头。

2、点击后出现如下界面。默认有一个String类型的input变量。

可以看到该输入消息只有一个元素input,和我们的要求是不符合的,点击右下角的Open In New Editor,打开一个新的Editor对输入消息进行配置。进去后选中类型,右键,就可以增加元素,并设置元素的类型,结果如下。

咱们要做的流程是接受三个参数,前两个是int型数据,第三个表示是调用加法服务还是减法服务,当type=’add’,时,调用加法服务,当type=’sub’时调用减法服务。同样的方法,改一下输出,把类型改为double。

3、现在完成了输入参数的配置,同样的流程配置输出参数,命名为"result" ,类型为  "int" 。

4.2.7 Step 6:创建调用服务时需要的变量

每次invoke一个服务时都要有对应的变量,同时要进行赋值。我们这里要调用加法服务。因此需要额外加入addRequest,addResponse。加完后的效果如下:

Input,output变量都自动配置好了,对应CaculatorProc3Artifacts.wsdl定义的消息。下面以addRequest为例讲解配置过程。

1)点上addRequest变量,属性视图中切换到Details页,点右上角的Browse..按钮,打开类型选择对话框。addRequest是加法服务的输入,因此把它的类型设为加法服务里的输入定义就可以了。一个变量的类型可以是简单类型,也可以是复杂类型,还可以是wsdl中的Message定义。简单起见,我们这里就把addRequest的类型设为AddService服务中的addRequest Message。

2)点ok即完成变量的定义,同样的方式定义其它变量。至此,准备工作就算是做好了。下一步开始真正的bpel流程设计。

4.2.8 Step 7:BPEL流程设计

思路应该比较清晰,如果type=’add’,则调用加法服务,如果type=’sub’则调用减法服务。进一步完善后,如下。

l if语句的设置

选择If,在属性视图中点开Details页,做如下配置: 输入条件语句:

$input.payload/tns:type='add'

同样,选择Else If

l Assign语句的设置

两个Assign语句的配置过程都一样,这里讲解下第一个Assign的配置。

第一个Assign的作用是把输入变量input中的前两个参数传给addRequest变量。需要注意的是,BEPL中的变量赋值只能是一个一个的赋,不能直接把input赋给addRequest(当然这里也不匹配,即使匹配也不行),而只能把input下的参数挨个赋给addRequest.

意思应该很明了,把input下的x赋给addRequest下的x. 然后会弹出一个对话框,问是否需要初始化addRequest,你点Yes就是了。再次点New,把input下的y赋给addRequest下的y。

l Assign1语句的设置

对于Assign1,它的作用是把addResponse的值传给流程的输出变量output.如图:

l Invoke语句的设置

Invoke的作用是调用伙伴链接对应接口下的对应操作,还需要指定输入输出变量。选上Invoke,同样在属性视图的Details页面中进行如下配置:

4.2.9 Step 8:流程发布

BPEL流程最终的目的也是发布成一个web service,只不过这个web服务自己基本上不实现功能,主要是通过调用别人的功能来完成任务。因此,最后也要把流程对应的WSDL发布出去。默认生成的WSDL只有类型定义,消息定义,和操作定义,缺少绑定信息和服务定义。

CaculatorProcessArtifacts.wsdl文件如下:

从图中可以看到,import进来的wsdl也会显示在图形视图中。

现在我们完成了BPEL流程的实现,下一步需要部署到WSO2 BPS上运行。

4.2.10 Step 9:BPEL运行与测试

首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,如下图所示。

然后将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,如下图所示。

结果如下:

5 [(x+y)*(x*y)]2(FunctionProcess3)

http://wso2.com/library/articles/writing-simple-ws-bpel-process-wso2-bps-apache-ode/

5.1 介绍

开发BPEL流程调用3个web服务,实现汽车许可证的更新。Web服务部署在tomcat服务器。

5.1.1 Services

5.1.1.1 AddService

l 输入:x、y

l 输出:相加结果addResponse

5.1.1.2 MultipleService

l 输入:x、y

l 输出:相乘结果mulResponse

5.1.1.3 SquareService

l 输入:相乘结果mulResponse1

l 输出:平方结果

5.1.2 BPEL流程

5.2 步骤

5.2.1 准备

l WSO2 BPS3.2.0

l Tomcat7.0

l WSO2 Developer Studio3.6.0

5.2.2 Step 1:web服务开发部署

1、启动Eclipse,建立一个动态web Project。file->new->other,查找Dynamic web Project。起名为dynamicwebproject。

2、工程下面建立3个包,建完后如下图所示。

3、部署。选择 AddService.java,右键WebService选项,选择 Create WebService。如图所示。

4、点击finish 就会生成java类对应的wsdl和配置文件,并发布到tomcat中,同时会生成调用服务的客户端。这里的WebService是为BPEL调用WebService实现流程做准备。

5、要想把生成的服务放到Tomcat目录下,把这个工程Export成一个war包即可。File->Export Web WAR File,选择保存位置,则会生成war包,把生成的war包复制到Tomcat_Home/webapps目录下,重启Tomcat,则完成服务的发布。

6、测试服务是否发布成功。在浏览器里输入http://localhost:8080/dynamicwebproject/services/AddService?wsdl 能打开也意味着服务发布成功了。

5.2.3 Step 2:创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

2、点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

3、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

4、为BPEL流程输入相应的信息,例如输入以下信息,点击finish。

l Project name :FunctionProcess3

l Process Name :FunctionProcess3

l Namespace :http://wso2.org/bps/FunctionProcess3

l Template : Synchronous BPEL Process

5.2.4 Step 3:导入服务的WSDL文件

很简单,就是把3个wsdl文件复制到工程目录里。如下图所示:

5.2.5 Step 4:设置伙伴链接

Bpel把涉及其中的所有服务都称之为伙伴链接。Bpel对应的wsdl本身也是一个伙伴链接。系统已经自动生成了。对于流程中要用到的3个服务,应该生成对应的伙伴链接。

在最右边的Partner Links中,增加3个链接,分别对应3个服务。

5.2.6 Step 5:修改WSDL文件FunctionProcess3Artifacts.wsdl

主要是改输入输出,使之符合我们的要求。打开FunctionProcess3Artifacts.wsdl,可以看到,默认生成的WSDL很简单,只有一个操作process,该操作有输入input,输出output. 如下图所示。

1、首先设置输入参数。点击“BPELCar1Request”旁边的箭头。

2、点击后出现如下界面。默认有一个String类型的input变量。

3、点击FunctionProcess3Response旁边的箭头。

5.2.7 Step 6:创建调用服务时需要的变量

每次invoke一个服务时都要有对应的变量,同时要进行赋值。

Input,output变量都自动配置好了,对应FunctionProcess3Artifacts.wsdl定义的消息。

5.2.8 Step 7:BPEL流程设计

l Assign语句的设置

l addInvoke1语句的设置

l mulInvoke 语句的设置

l Assign1语句的设置

l Mul1Invoke2语句的设置

l Assign2语句的设置

l squInvoke3语句的设置

l Assign3语句的设置

5.2.9 Step 8:流程发布

5.2.10 Step 9:BPEL运行与测试

1、首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

2、启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

3、通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,结果如下:[(1+2)*(1*2)]2=36

6 汽车许可证更新(BPELCar1)

http://wso2.com/library/articles/2014/02/service-orchestration-with-wso2-esb/

6.1 介绍

开发BPEL流程调用四个web服务,实现汽车许可证的更新。Web服务部署在tomcat服务器。

6.1.1 Services

6.1.1.1 InsuranceService

l 输入:carID汽车牌号

l 输出:policyID保单号

Request format

?

1

2

3

4

5

6

7

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://sample.esb.org">

<soapenv:body>

<sam:getpolicyid>

<sam:vehiclenumber>SPKP-6531</sam:vehiclenumber>

</sam:getpolicyid>

</soapenv:body>

</soapenv:envelope>

Response format

?

1

2

3

4

5

6

7

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

<soapenv:body>

<ns:getpolicyidresponse xmlns:ns="http://sample.esb.org">

<ns:return>869864462</ns:return>

</ns:getpolicyidresponse>

</soapenv:body>

</soapenv:envelope>

6.1.1.2 EmissionTestService

l 输入:carID汽车牌号

l 输出:emiID汽车废气排放证书号

Request format

?

1

2

3

4

5

6

7

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://sample.esb.org">

<soapenv:body>

<sam:getcertificateid>

<sam:vehiclenumber>SPKP-6531</sam:vehiclenumber>

</sam:getcertificateid>

</soapenv:body>

</soapenv:envelope>

Response format

?

1

2

3

4

5

6

7

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

<soapenv:body>

<ns:getcertificateidresponse xmlns:ns="http://sample.esb.org">

<ns:return>1250719063</ns:return>

</ns:getcertificateidresponse>

</soapenv:body>

</soapenv:envelope>

6.1.1.3 LicenseService

l 输入:carID汽车牌号、policyID保单号、emiID汽车废气排放证书号

l 输出:fee付款金额、flowID流水号、时间戳

Request format

?

1

2

3

4

5

6

7

8

9

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="http://sample.esb.org">

<soapenv:body>

<sam:renewlicense>

<sam:vehiclenumber>SPKP-6531</sam:vehiclenumber>

<sam:insurancepolicy>869864462</sam:insurancepolicy>

<sam:ecocert>1250719063</sam:ecocert>

</sam:renewlicense>

</soapenv:body>

</soapenv:envelope>

Response format

?

1

2

3

4

5

6

7

8

9

10

11

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

<soapenv:body>

<ns:renewlicenseresponse xmlns:ns="http://sample.esb.org">

<ns:return xsi:type="ax2461:LicenseServiceResponse" xmlns:ax2461="http://sample.esb.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<ax2461:fee>30</ax2461:fee>

<ax2461:referenceno>f0a6c76d-87dc-4d8e-8168-b99a46a9ee50</ax2461:referenceno>

<ax2461:timestamp>Sun Feb 09 23:38:58 IST 2014</ax2461:timestamp>

</ns:return>

</ns:renewlicenseresponse>

</soapenv:body>

</soapenv:envelope>

6.1.1.4 PaymentService

l 输入:creditID信用卡号、fee付款金额、flowID流水号

l 输出:完成与否

Request format

?

1

2

3

4

5

6

7

8

9

<soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sam="http://sample.esb.org">

<soap:body>

<sam:dopayment>

<sam:cardno>xxxx-xxxx-xxxx-xxxx</sam:cardno>

<sam:referenceno>f0a6c76d-87dc-4d8e-8168-b99a46a9ee50</sam:referenceno>

<sam:amount>30</sam:amount>

</sam:dopayment>

</soap:body>

</soap:envelope>

Response format

?

1

2

3

4

5

6

7

<soapenv:envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">

<soapenv:body>

<ns:dopaymentresponse xmlns:ns="http://sample.esb.org">

<ns:return>Transaction Completed</ns:return>

</ns:dopaymentresponse>

</soapenv:body>

</soapenv:envelope>

6.1.2 BPEL流程

6.2 步骤

6.2.1 准备

l WSO2 BPS3.2.0

l Tomcat7.0

l WSO2 Developer Studio3.6.0

6.2.2 Step 1:web服务开发部署

1、启动Eclipse,建立一个动态web Project。file->new->other,查找Dynamic web Project。起名为dynamicwebproject。

2、工程下面建立四个包,建完后如下图所示。

3、部署。选择 Insurance.java,右键WebService选项,选择 Create WebService。如图所示。

4、点击finish 就会生成java类对应的wsdl和配置文件,并发布到tomcat中,同时会生成调用服务的客户端。这里的WebService是为BPEL调用WebService实现流程做准备。

5、要想把生成的服务放到Tomcat目录下,把这个工程Export成一个war包即可。File->Export Web WAR File,选择保存位置,则会生成war包,把生成的war包复制到Tomcat_Home/webapps目录下,重启Tomcat,则完成服务的发布。

6、测试服务是否发布成功。在浏览器里输入http://localhost:8080/dynamicwebproject/services/Insurance?wsdl 能打开也意味着服务发布成功了。

6.2.3 Step 2:创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

2、点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

3、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

4、为BPEL流程输入相应的信息,例如输入以下信息,点击finish。

l Project name :BPELCar1

l Process Name :BPELCar1

l Namespace :http://wso2.org/bps/BPELCar1

l Template : Synchronous BPEL Process

6.2.4 Step 3:导入服务的WSDL文件

很简单,就是把4个wsdl文件复制到工程目录里。如下图所示:

6.2.5 Step 4:设置伙伴链接

Bpel把涉及其中的所有服务都称之为伙伴链接。Bpel对应的wsdl本身也是一个伙伴链接。系统已经自动生成了。对于流程中要用到的4个服务,应该生成对应的伙伴链接。

在最右边的Partner Links中,增加4个链接,分别对应4个服务。

6.2.6 Step 5:修改WSDL文件BPELCar1Artifacts.wsdl

主要是改输入输出,使之符合我们的要求。打开BPELCar1Artifacts.wsdl,可以看到,默认生成的WSDL很简单,只有一个操作process,该操作有输入input,输出output. 如下图所示。

1、首先设置输入参数。点击“BPELCar1Request”旁边的箭头。

2、点击后出现如下界面。默认有一个String类型的input变量。

4、点击BPELCar1Response旁边的箭头。

6.2.7 Step 6:创建调用服务时需要的变量

每次invoke一个服务时都要有对应的变量,同时要进行赋值。

Input,output变量都自动配置好了,对应CaculatorProc3Artifacts.wsdl定义的消息。

6.2.8 Step 7:BPEL流程设计

l Assign语句的设置

l insInvoke语句的设置

l emiInvoke1语句的设置

l Assign1语句的设置

l licInvoke2语句的设置

l licInvoke3语句的设置

l Assign2语句的设置

l payInvoke4语句的设置

l Assign3语句的设置

6.2.9 Step 8:流程发布

6.2.10 Step 9:BPEL运行与测试

1、首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

2、启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

3、通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,结果如下:

7 根据经纬度找医院信息(BPELHospital1)

http://wso2.com/library/articles/2012/11/enterprise-service-integration-wso2-esb/

7.1 介绍

开发BPEL流程调用3个web服务,根据经纬度找到医院信息。Web服务部署在axis2服务器。这里只调用了前两个服务,后两个服务的namespace相同,无法在BPEL中同时加载。

7.1.1 Services

7.1.1.1 GeoService

l 输入:longitude经度、latitude维度

l 输出:zipcode邮政编码

Request format

1

2

3

4

5

6

7

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"                          xmlns:geo="http://geo.wso2">            <soapenv:Header/>            <soapenv:Body>                <geo:getZipCode>                    <geo:longitude>1.0</geo:longitude>                    <geo:latitude>2.0</geo:latitude>                </geo:getZipCode>            </soapenv:Body>        </soapenv:Envelope>

Response format

1

2

3

4

5

6

7

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">            <soapenv:Body>                <ns:getZipCodeResponse xmlns:ns="http://geo.wso2">                    <ns:return>32746</ns:return>                </ns:getZipCodeResponse>            </soapenv:Body>        </soapenv:Envelope>

7.1.1.2 HCFacilityLocatorService

l 输入:zipcode邮政编码

l 输出:health care center code医院代号

Request format

1

2

3

4

5

6

7

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"                          xmlns:heal="http://healthcare.wso2">            <soapenv:Header/>            <soapenv:Body>                <heal:getHCCenters>                    <heal:postalCode>32746</heal:postalCode>                </heal:getHCCenters>            </soapenv:Body>        </soapenv:Envelope>

Response format

1

2

3

4

5

6

7

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">            <soapenv:Body>                <ns:getHCCentersResponse xmlns:ns="http://healthcare.wso2">                    <ns:return>2583</ns:return>                    <ns:return>5201</ns:return>                    <ns:return>5575</ns:return>                    <ns:return>805</ns:return>                    <ns:return>2285</ns:return>                </ns:getHCCentersResponse>            </soapenv:Body>        </soapenv:Envelope>

7.1.1.3 Healthcare Center Information Service

l 输入:health care center code医院代号

l 输出:info医院详细信息

Request format

1

2

3

4

5

6

7

8

9

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"                          xmlns:heal="http://healthcare.wso2">            <soapenv:Header/>            <soapenv:Body>                <heal:getHCCenterInfo>                    <heal:hcCenterCode>2583</heal:hcCenterCode>                </heal:getHCCenterInfo>            </soapenv:Body>        </soapenv:Envelope>

Response format

1

2

3

4

5

6

7

8

9

10

11

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">            <soapenv:Body>                <ns:getHCCenterInfoResponse xmlns:ns="http://healthcare.wso2">                    <ns:return xsi:type="ax2494:HCInfo" xmlns:ax2494="http://healthcare.wso2/xsd"                               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">                        <ax2494:address>2583 South Volusia Ave (17-92), Suite 300</ax2494:address>                        <ax2494:approxDistance>13.1</ax2494:approxDistance>                        <ax2494:city>Orange City,  FL</ax2494:city>                        <ax2494:hcCenterName>Orange City CBOC</ax2494:hcCenterName>                        <ax2494:phone>386-456-2080 Or 386-456-2082</ax2494:phone>                    </ns:return>                </ns:getHCCenterInfoResponse>            </soapenv:Body>        </soapenv:Envelope>

7.1.2 BPEL流程

7.2 步骤

7.2.1 准备

l WSO2 BPS3.2.0

l Axis21.6.0

l WSO2 Developer Studio3.6.0

7.2.2 Step 1:web服务开发部署

http://wso2.com/library/articles/2012/11/enterprise-service-integration-wso2-esb/下载Service_Integration_Artifacts.zip,解压后将geows-SNAPSHOT.aar 等三个aar文件放到E:\test\axis2-1.6.2-bin\repository\services目录下,启动axis2服务器。

在浏览器里输入http://localhost:8080/axis2/services/GeoService?wsdl 能打开也意味着服务发布成功了。

7.2.3 Step 2:创建BPEL工程和流程

1、选择 Developer Studio > Open Dashboard。

2、点击Developer Studio Dashboard中的BPEL workflow。

点击BPEL workflow出现如下界面

3、在“Create New BPEL Project” ,选择Create New BPEL workflow ,点击 Next 。

4、为BPEL流程输入相应的信息,例如输入以下信息,点击finish。

l Project name :BPELHospital1

l Process Name :BPELHospital1

l Namespace :http://wso2.org/bps/BPELHospital1

l Template : Synchronous BPEL Process

7.2.4 Step 3:导入服务的WSDL文件

很简单,就是把3个wsdl文件复制到工程目录里。如下图所示:

7.2.5 Step 4:设置伙伴链接

Bpel把涉及其中的所有服务都称之为伙伴链接。Bpel对应的wsdl本身也是一个伙伴链接。系统已经自动生成了。对于流程中要用到的3个服务,应该生成对应的伙伴链接。

在最右边的Partner Links中,增加3个链接,分别对应3个服务,这里只添加了两个服务,三个服务也是一样的。

7.2.6 Step 5:修改WSDL文件BPELCar1Artifacts.wsdl

主要是改输入输出,使之符合我们的要求。打开BPELHospital1Artifacts.wsdl,可以看到,默认生成的WSDL很简单,只有一个操作process,该操作有输入input,输出output. 如下图所示。

1、首先设置输入参数。点击“BPELHospital1Request”旁边的箭头。

2、点击后出现如下界面。默认有一个String类型的input变量。

5、点击BPELHospital1Response旁边的箭头。

7.2.7 Step 6:创建调用服务时需要的变量

每次invoke一个服务时都要有对应的变量,同时要进行赋值。

Input,output变量都自动配置好了,对应BPELHospital1Artifacts.wsdl定义的消息。

7.2.8 Step 7:BPEL流程设计

l Assign语句的设置

l geoInvoke语句的设置

l Assign1语句的设置

l locatorInvoke1语句的设置

l Assign2语句的设置

7.2.9 Step 8:流程发布

7.2.10 Step 9:BPEL运行与测试

1、首先将BPEL工程打包为zip文件。打包方法:右击工程名->export->file system,将工程打包成zip文件,至少包含wsdl文件、BPEL文件、deploy.xml文件。

2、启动WSO2 BPS,Processes->Add,选择文件,点击upload,即可将工程上传到BPS。

3、通过Processes->List列表可以查看部署的流程。

点击相应流程Process ID,出现流程详细信息相关界面,点击WSDL details部分的try it,可测试流程,结果如下:

具体信息参考文档 http://download.csdn.net/detail/szh1124/8448133

WSO2 ——(10)ESB功能:服务编排相关推荐

  1. RestCloud API服务编排平台,相比ESB产品性能提升数十倍

    RestCloud API服务编排平台,更轻量.更高性能的API可视化编排平台,基于微服务架构.快速构建企业服务总线.全面提升敏捷集成能力.每日调度API流程超过100W+. 一.真正的高性能服务编排 ...

  2. esb 服务编排_在ESB中进行路由和编排之间的选择

    esb 服务编排 介绍 如今,企业服务总线确实是有用的解决方案,它结合了一系列工具,可以解决应用程序和服务集成领域中的实际问题. 但是,它们给工具箱带来了轻微的不便,给工具箱用户带来了不便,后者知道解 ...

  3. 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代

    Linkerd 提供了许多功能,如:自动 mTLS.自动代理注入.分布式追踪.故障注入.高可用性.HTTP/2 和 gRPC 代理.负载均衡.多集群通信.重试和超时.遥测和监控.流量拆分(金丝雀.蓝/ ...

  4. RestCloud服务编排平台,API可视化编排

    RestCloud服务编排平台通过无代码化来统一编排和调度API服务,通过可视化的拖.拉.拽对API进行编排并实现分布式事务控制.故障自动转移.断点续跑等功能可大幅提升API服务的敏捷化交付能力.AP ...

  5. SOA ESB 微服务 浅析

    SOA架构解析 SOA 全称是: Service Oriented Architecture,中文释义为 "面向服务的架构",它是一种设计理念,其中包含多个服务, 服务之间通过相互 ...

  6. ajax请求是宏任务还是微任务_微服务编排引擎Cadence简介

    原文来源:https://cadenceworkflow.io/ 1.概述(Overview)2.使用案例(Use cases)2.1.定时轮询(aka Distributed Cron)2.2.微服 ...

  7. Docker 安装 命令 数据卷 应用部署 网络优化 Dockerfile 服务编排Compose 私有仓库

    Docker 1. 初识docker 1.1 Docker是什么 了解Docker的前生LXC LXC与docker的关系 Docker 的特点 1.2 为什么使用Docker Docker的优势 缺 ...

  8. docker swarm 集群服务编排部署指南(docker stack)

    Docker Swarm 集群管理 概述 Docker Swarm 是 Docker 的集群管理工具.它将 Docker 主机池转变为单个虚拟 Docker 主机,使得容器可以组成跨主机的子网网络.D ...

  9. 来自京东、唯品会对微服务编排、API网关、持续集成的实践分享(上)

    架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第三期:微服务.微服务架构以其高度的弹性.灵活性和效率的巨大提升,快速受到各领域架构师和技术决策者的关注.它的基本理念是将一个肥大的 ...

  10. 微服务编排引擎Cadence简介

    原文来源:https://cadenceworkflow.io/ 1.概述(Overview) 大量的用例跨越了单一的请求-应答,需要跟踪复杂的状态,响应异步事件,并与外部不可靠的依赖项通信.构建此类 ...

最新文章

  1. Server Too Busy
  2. 异步任务AsyncTask
  3. javascript中创建对象的几种方式
  4. java derby连接_JAVA-Derby连接
  5. Mysql存储级别_mysql 存储引擎分类和事务隔离级别
  6. 微机原理换行代码_微机原理实验保留最长行输入字符的程序
  7. 天翼云从业认证(4.8)高性能计算解决方案
  8. iOS中常见的内存问题
  9. Log4J入门教程(三) maven构建
  10. 利用SqlBuikCopy实现数据批量写入
  11. C++线程安全单例类最全总结
  12. 小牛叔讲Python第1章: 编程界的瑞士军刀Python
  13. 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?
  14. 0xFFFF的Debug
  15. ipad协议最新版本
  16. Ios王者微信抢先服务器,王者荣耀:iOS微信用户抢先体验!国服出装铭文,点击一键查看!...
  17. 知识图谱的经典知识库总结
  18. 建长三角智慧城市群,华为给出平台级方案
  19. 神秘“鬼影”病毒袭击Winxp系统,重装也无法消灭
  20. m.soudashi.cn 地图_网站百度排名推广的基本操作是什么

热门文章

  1. 在Android中Unity3D透明背景的实现
  2. 刷机后IMEI丢失如何能刷回来
  3. Struts2拦截器Filter
  4. lucene-使用htmlparser解析有编码页面
  5. sis最新ip地址2020入口一_最新天猫双十一2020淘宝双十一红包活动加码揭秘 京东双11玩法攻略_互联网...
  6. 手把手教你清除WIN7的C盘垃圾
  7. 给力大辞典v3.0 免费安装版【包含18部字典词典】
  8. c++采集声卡输出_使用Core Audio实现对声卡输出的捕捉
  9. 基于同义词词林扩展版的词语相似度计算
  10. 咸鱼ZTMR实例—PS2手柄控制板载LED