近日项目需要通过BPEL与BAM的集成对系统和各个业务接口进行监控,以便实时监控业务接口的运行状态。BAM与BPEL的集成通过Sensor实现,实现起来比较简单,主要有以下步骤:
1、定义了给BAM Data Object传递数据的XSD,该XSD的结构与BAM的数据对象结构相似;
2、在BPEL流程中创建变量,变量的定义选择为步骤1中的XSD;
3、在BPEL里的Monitor中定义交互用的Sensors和Sensors Action;
具体实现如下:
1、定义Test.XSD文件,后面需要用来给BAM Object传值的;
2、在Bpel流程中创建变量bamInstanceInfo,并在恰当的位置给该变量赋值
给bamInstanceInfo赋值,后面Sensor会将bamInstanceInfo作为参数的值传入到BAM的数据对象中,因此bam的参数在BPEL中赋值。
3、将视图面切换到Monitor。定义Sensors与Oracle BAM通讯。
4、在选择恰当的Activity中定义Sensor,此处选择replyOutput,右键replyOutput,创建Sensor
5、在弹出来的ActivitySensor界面中,定义了执行的时间和Activity Variable Sensor,此处变量即选择步骤2中定义好的bamInstanceInfo,并点击确定
6、在BPEL的Struct视图中,右键Sensor Action,创建BAM Sensor Action
7、在弹出来的界面中,填入相关信息,Sensor的下来框中选择上一步骤创建的ActivitySensor,并选择相应的DataObject,对于Operation此处选择Insert
8、点击OK后,会弹出SensorAction.xsl的映射文件,只需把相应的字段进行映射即可,程序运行时,会将bamInstanceInfo的值传递到Data Object中。
至此,BAM与BPEL的简单集成的开发就完成了,只需要将程序发布即可。