3、应用实例分析
通过上面的描述,基于BPEL进行Web服务合成能够降低业务流程的复杂性。下面以开放实验的项目审批为例,如图2所示,学生申请开放实验项目发起流程,移动信息平台通过短消息发送给负责教师审批,如同意,则报送实验室相关人员,同时将结果发送给申请学生。于是归纳出各个阶段的节点类型,如初始节点、审批节点和结束节点等,流程包括了多种角色人员的参与,通过移动短消息的模式驱动流程的流转。
图2 开放实验项目申请流程
在工作流平台,通过可视化的流程定制界面,对图2中的连线定义了相关的流程流转规则,例如申请时间限制、教师审批逻辑检验等。相应的BPEL描述如图3所示,其中含有消息方框对应所调用的服务。当启动工作流引擎后,等待客户端通过发送消息实例化生成BPEL流程。在整个移动工作流的流程中,包含了对Request Apply,CancelApply以及FinalApply等服务的调用。这些服务之间的调用关系如图2所示。开始时,学生通过移动手机终端发送SMS/MMS短信息,在服务端按照通信协议对接收到的数据解析,调用Request Apply服务,通过BPEL的接收申请消息,从而启动远程服务器的流程实例化。值得注意的是,由于基于移动短信息发送请求,系统通过回复短信息的方式给予响应,响应延迟一般在3~5s。因此不能通过产生操作的同步响应,服务提供异步发送响应的方式。在申请处理过程中,流程节点所定义的时间规则和期限内教师发送的消息逻辑规则,通过和所定义的时间规则和教师发送的消息触发流程执行。
图3 开放实验申请流程的BPEL描述
从提交申请在规定的期限内,如果没有教师给予批准,则该申请自动作废。在信息平台上的服务器调用CancelApply服务来执行相应的操作。相应的代码片段如下所示:
相应地,如果在规定的时间内,教师将审批的消息通过改变流程的执行状态;同时在ProjecApply-CallbackPortType端口提供了学生异步回调申请结果。相应的代码片段如下:
最后,通过调用FinalApply服务向客户端申请的学生发送开放实验项目结果,同时报送给实验室相关人员。主要的代码片段如下:
调用FinalApply服务后,关键的处理是将返回数据结果进行SOAP封装,转变为XML数据以异步的方式发送给移动终端。
4、结语
可以看出,移动工作流中服务之间的交互性,表现在流程的状态、协调逻辑以及在异常处理方式等方面。以Sun NetBeans为开发平台设计了移动开放实验室管理平台,通过SMS/MMS的信息传递实现智能手机终端和平台服务器之间web服务的信息交互,有效地实现了对实验教学信息、学生选课以及实验项目开设等教学环节的管理。利用BPEL描述移动工作流中web服务之间的协同规则,能够简化移动信息平台服务集成,降低开发周期和成本。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
购买应用集成工具可以采取平衡做法
购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。