在SOA开发中使用WBSF动态调用业务服务,第1部分

引言

在面向服务的体系结构(SOA)中,业务服务(Business Service)代表了一组业务功能,其业务行为能够根据创建的策略和运行时上下文自适应调整,以更好地满足服务使用者的需求。

业务服务具有以下特点:

1.从业务层面对业务功能进行设计

2.通过业务策略和元数据来实现灵活,自适应的业务行为

3.通过参照行业模型以简化各个系统之间的互操作

4.基于web service 和行业标准构建

因此,通过业务服务构建IT 应用使得 IT 实现与业务需求吻合,非常好地体现了如下SOA理念:低成本,灵活自适应的的解决方案;最大化 IT 资产的可重用性;通过增量的解决方案降低了开发风险。

IBM WebSphere Business Services Fabric(WBSF)是对业务服务进行建模,组装,部署,管理和监控的软件平台。其产品包由三个部分组成:

IBM WebSphere Business Services Foundation Pack:基于WebSphere Process Server 构建的业务服务管理和运行时环境。

IBM WebSphere Business Services Tool Pack:基于WID(WebSphere Integration Developer)的Eclipse 插件,提供业务服务的设计和组装工具。

Industry Content Packs( 可选 ):一组基于行业标准和行业经验的SOA 资产,例如行业模型,规则,通用服务等,可以加速行业 SOA 解决方案的开发。

具体来说,WBSF 能够根据服务的上下文 (Context) 信息动态地调用在其服务模型库 (Service Repository) 登记的业务服务,如图 1 所示 .。在运行时刻,WBSF 通过服务上下文信息对与之相关的策略 (Policy) 进行计算与检查,得到一组业务服务应该满足的断言 (Assertion),以选择调用最佳的物理服务来满足业务服务请求。

图 1 WBSF 动态服务选取工作原理


在6.02 版本中,WBSF 最重要的增强在于在业务服务的设计和组装中引入了SCA 编程模型的支持。WBSF 引入了新的SCA组件用于对业务服务进行建模和组装。在WID中对业务服务进行组装时,可以通过Dynamic Assembler(DA) 对业务服务进行组装;对于业务服务的动态组合,WBSF提供了5 种 SCA扩展方便开发者对业务服务的调用进行定制。我们在后续部分介绍这 5 类 SCA扩展。

什么是Context

Context 即上下文信息,是运行时与服务相关的一组元数据。在WBSF中,服务的上下文信息主要包括如下内容:

Service Interface( 必需 ):服务接口名称的URI,WBSF 将在运行时选择与此接口匹配的endpoint作为候选。

Subscription ID( 可选 ):用户对业务服务登记的ID。该 ID 将用户与服务的一组上下文信息 ( 服务所属的Application Suite,Application, Business Service, service Interface, Channel,Role,User 等 ) 关联起来。在WBSF中,应用程序套件 (Application Suite) 是最广泛的概念,包括一个或者多个应用程序 (Application),应用程序包括一个或多个特定业务功能相关的业务服务(Business Service), 业务服务代则是表示特定的业务功能,包括一组特定的服务。通道 (Channel) 是用户使用业务服务的通道,Role 和 User 则是通过特定通道使用业务服务的用户组和用户。WBSF 在运行时根据 Subscription ID 获与此调用者相对应的从上至下一组上下文信息。

Additional Properties( 可选 ):所有基于服务内容 (Content)的属性,用于基于内容的断言 (Content based Assertion)扩展。例如,在申请贷款的业务服务中,用户的信用值属于服务内容 ( 服务参数 ),同时也可以作为业务服务的上下文信息,用于选择不同级别的服务。

所有 Context 属性均以“名字 - 值”对的形式表示。

Context 属性有两种类型,一种是基于上下文的属性,主要包括 Service Interface, 以及与Subscription ID相关的一组与服务内容无关的非功能属性,可以为任何服务拥有。另一类为基于服务内容的属性,这种属性只为特定类型的服务拥有,一般与服务功能或者内容相关。例如,用户信用值属性是贷款申请相关类型的服务所特有的。

时间: 2016-04-11

在SOA开发中使用WBSF动态调用业务服务,第1部分的相关文章

在SOA开发中使用WBSF动态调用业务服务,第2部分(上)

引言 在上一篇文章中,我们介绍了WBSF动态调用业务服务的基本概念和工作原理.WBSF让我们在SOA 开发中能够根据服务策略动态调用业务服务.WBSF V6.02 提供了SCA 编程模型,让开发业务服务更加灵活,方便.本文通过一个具体的例子,介绍如何通过 WBSF V6.02 的 SCA 编程模型动态调用业务服务.我们将基于上下文属性制定服务策略:在ResponseListener 扩展中设置基于服务内容的断言:通过 ContextExtractor 扩展更新事务中的上下文属性: 业务场景与建模

在SOA开发中使用WBSF动态调用业务服务,第2部分(下)

WBSF(WebSphere Business Services Fabric)让我们在 SOA 开发中能够根据服务策略动态调用业务服务.本文通过一个具体的例子,介绍如何通过 WBSF V6.02 的 SCA 编程模型动态调用业务服务. 组装服务流程 创建 AccountQueryProcess 业务流程: 将 WID 切换至"Business Integration" perspective,在 AccountQueryModule 项目中新建 AccountQueryProc 接口

C#中使用HttpWebRequest类调用WEB服务的示例

上一篇文章是关于 CMPP3.0 的 C# 实现,我为了测试其中的 PROVISION 接口,利用了 System.Net.HttpWebRequest 类将<MISC系统短信SP接入指南-接口改造分册>文档中的示例 xml 发送到了 WEB 服务,并从 WEB 服务返回了对应的 Resp 包(也是一段 xml),下面就将代码贴出来: 1.SyncOrderRelationReq 包的 xml 内容: <SOAP-ENV:Envelope xmlns:xsi="http://w

php中动态调用函数的方法

 这篇文章主要介绍了php中动态调用函数的方法,实例分析了php动态函数的实现原理与具体实现步骤,需要的朋友可以参考下     本文实例讲述了php中动态调用函数的方法.分享给大家供大家参考.具体分析如下: php中你可以动态调用函数,分为以下步骤: 1. 定义一个函数 2. 将函数名(字符串)赋值给一个变量 3. 使用变量名代替函数名动态调用函数 详细代码如下所示: ? 1 2 3 4 5 6 7 <?php function addition ($a, $b){ echo ($a + $b)

C# .Net动态调用webService实现思路及代码_实用技巧

复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Net; using System.IO; using System.Web.Services.Description; using System.CodeDom; using Microsoft.CSharp; using System.CodeDom.Compiler; usi

构建SOA组合业务服务,第5部分: 使用IBM WebSphere Business Modeler

本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第五篇文章.组合业务 服务组件符合服务组件体系结构的要求,是使用集成工具集开发的,此集成工具集包括 IBM WebSphere Business Modeler (WBM) 和 IBM WebSphere Integration Developer (WID).这些工具生成的构件的运行时是 IBM WebSphere Process Server.本文将说明有关 使用 WBM V6 进行业务流程的建模.组装和部署的最佳实践.另外,本文还将

构建SOA组合业务服务,第3部分

第3部分: 在WebSphere中使用REST体系结构样式构建可使用的Web服务 本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第三篇文章.本文的重 点是代表性状态传输(Representational State Transfer,REST)体系结构样式.通过使用 Facade 组件作为 REST 样式的接口,现有的 SOAP 样式的 Web 服务支持可自定义的 URL. 多资源格式表示.浏览器响应缓存.大型附件的流化以及使用 HTTP 方法来操作资源. 引言 代表性状态 (RES

构建SOA组合业务服务,第4部分

第4部分: 使用公共事件基础设施开发可测量的组合应用程序 本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第 4 部分.为了确定 组合应用程序是否满足所确定业务目标,应用程序需要为可测量的.本文讨论如何在基于公 共事件基础设施的三个可重用构件的帮助下开发可测量的组合应用程序.我们将从中了解为 什么需要构件,以及如何使用其对组合应用程序进行测量. 引言 WebSphere Integration Developer 和 WebSphere Process Server 将公共事件基 础设

请问web开发中,js调用DLL动态库,同一台pc机调用了不同的动态库,有的动态库调不到,怎么办?

问题描述 请问web开发中,js调用DLL动态库,同一台pc机调用了不同的动态库,有的动态库调不到,怎么办? 两个动态库,一个医保刷卡的,一个刷POS的,单独使用POS机,能正常使用,但是如果之前使用过医保刷卡机,就不能进入POS的动态库了,感觉像是冲突了一样,哪个大神能帮忙解决一下. 解决方案 两个动态库,一个医保刷卡的,一个刷POS的,单独使用POS机,能正常使用,但是如果之前使用过医保刷卡机,就不能进入POS的动态库了,感觉像是冲突了一样,哪个大神能帮忙解决一下.