基于轻量级语义注释的可扩展服务延迟绑定
在传统的工作流和业务流程中,执行依赖于语法指定且僵化的流程模型,这些模型与一组固定且预先定义的合作伙伴服务进行交互。这种僵化性阻碍了一些理想特性的实现,例如根据服务的当前状态替换服务、选择更适合特定上下文的服务等。常见的解决方法是用人为的分支来修改流程模型,这些分支仅仅是为了解决实现层面的困难而存在。但不幸的是,采用这种方法得到的模型会更复杂,并且为了适应不断变化的条件而对其进行维护或扩展也变得更加困难。
1. 解决方案概述
我们针对这个问题的解决方案基于语义 Web 服务,即对服务进行语义注释,以支持应用自动化机制来推理服务的功能和非功能特性。具体来说,当需要在服务选择上具备灵活性时,我们主张工作流定义使用服务模板作为内部活动,而非具体的、预先确定的服务。在运行时,这些服务模板可以绑定到根据现有条件并结合上下文知识(可能包括监控数据、用户位置或其他可能影响服务选择的因素)所选择的特定服务。由于服务模板是通过语义进行描述的,所需的功能和非功能属性都具有明确的语义。这不仅增强了人类对服务的理解,更重要的是,它允许在运行时解决服务选择和数据不匹配的问题,这就是所谓的“延迟绑定”,由语义 Web 服务中间件(如语义执行环境)支持。
用服务模板替换服务,从流程执行的角度来看,带来了以下好处:
- 流程模型相对独立于所使用的服务 :如果某个特定服务不可用,中间件可以选择另一个功能等效的服务,而无需更改流程模型。例如,如果由于服务客户端的位置(如用户目前在国外)导致某个服务不合适,中间件可以自动将客户端请求重定向到合适的服务,这对客户来说是完全透明的,并且不需要对客户端终端(如我们案例中的手机)进行调整。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



