在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相关的一组与服务内容无关的非功能属性,可以为任何服务拥有。另一类为基于服务内容的属性,这种属性只为特定类型的服务拥有,一般与服务功能或者内容相关。例如,用户信用值属性是贷款申请相关类型的服务所特有的。

时间: 2024-08-09 12:55:47

在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 接口

动态调用dll-在wpf中如何实现动态调用一个用c#编写的dll?

问题描述 在wpf中如何实现动态调用一个用c#编写的dll? 在wpf中如何实现动态调用一个用c#编写的dll?dll是一个winform窗体.如何在wpf中调用?以wpf为主窗口 解决方案 不知道你说的动态调用是什么意思?是运行时加载么?那么用Assembly.LoadFrom加载dll,用Assemby.CreateInstance反射创建对象,然后用GetType得到类型,用GetMethod得到方法,最后Invoke调用. 解决方案二: 按照我说的关键字google下或者看msdn. 解

动态调用web服务

    通常我们在程序中需要调用WebService时,都是通过"添加Web引用",让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名.参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制.如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译.在某些情况下,这可能是不能忍受的,我们需要动态调用WebService的能力.比如我们可以把Web服务的URL保存在配置

C#怎么样动态调用rest服务求思路

问题描述 c#怎样去动态调用rest类型的服务?rest服务可以在.net上动态实例化吗?该怎样做?还是通过其他方式? 解决方案 解决方案二:rest风格的就是模拟http请求就可以了啊,然后返回的结果可能是json,可能是xml,可能是其它服务支持的类型访问方式就跟正常的http模拟请求一样,可以是webrequest,也可以是httpclient(个人推荐这个,不过这个要4.0以上版本才支持)解决方案三:这个是httpclient模拟文件+数据提交的解决方案四:你先解释问题中的动态调用是什么

动态调用WCF服务

本文转载:http://www.cnblogs.com/wiseant/archive/2010/07/29/1787599.html 原文地址:http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx   客户端调用wcf ,有时需要动态的调用服务端的WCF中的方法,本方法,反射wcf 的接口,动态调用接口中的方法. 主要为,动态绑定,反射动态调用.   public static object ExecuteMethod<T>

WMB中HTTP Request 节点 调用WebService服务报错

问题描述 家好,小弟在配置WMB的SSL中,碰到了个问题,搞了好久,都搞不定,因此在此向大家求助,希望各位高手指点一下,谢谢了!我的WMB消息流中,有个HTTPRequest节点,该节点需要调用WebService服务,而该WebService服务已经配置成了https的访问方式,HTTPRequest节点调用该服务的时候报了错,错误内容如下:ExceptionListRecoverableExceptionFile:CHARACTER:F:buildslot1S800_PsrcDataFlow

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

SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施

一.讨论主题与观点       写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论.       大家的讨论观点主要集成在:对于ESB的定义也有类观点,一类观点是把ESB定位于SOA架构之中的基础服务设施(书上都这么讲),还有一类观点就是ESB做为异构系统之间的集成和整合之间,其实ESB本身都能实现两种观点的功能,只是觉得在时下,应该更偏重于那一方面,两者的本质上最大的区别是,同一系统