your family site
your site here
面向服务的集成
your family site
your site here
背景
企业面临的问题
各种各样不同的平台
新系统的引入
信息孤岛……
集成技术的发展
点对点集成
消息总线
企业应用程序集成(EAI)
企业服务总线(ESB)
your family site
your site here
以服务为中心的集成
面向服务的集成
your family site
your site here
以服务为中心的集成
集成
将小粒度服务集成为大粒度服务
将硬编码的集成变为动态可配置的集成
以服务为中心的集成(SOI):在"以服务为中心的体系
架构"(SOA)中,通过服务的交互来集成各企业的 IT
资源,如分布的应用或者数据,帮助企业 IT 部门将已有
但老旧而不灵活的系统集成起来,释放其中功能或数据为
可重用的服务与业务流程。
your family site
your site here
资源集成
有效灵活地组合资源可以优化企业内部及外部的运营
人员 流程 信息
+ +
信息
价值
数据
时间
=
实现…….
your family site
your site here
转型
业务流程外包
购并与剥离
随需应变的运行环境
需要
可编排
服务
(SOA)
可编排
流程
开发 基础设施 管理
面向服务架构 (SOA)
软件
开发
整合 基础
设施
S
O
M
A
灵活的业务
灵活的IT
技术集成
your family site
your site here
SOI的推动因素:商务方面
从商务的角度,今天企业要在全球化的经济环
境中求生存和发展,就必须随需应变的进行灵
活转型。
在一个企业的业务模型变得灵活的转型过程中,
需要将业务流程不断地自动化,然后跨部门横
向集成它们,并且管理和优化它们。
your family site
your site here
例子:当铺
旧时代,谁会走进当铺呢?——当铺的角色:剥削
渡不过难关的穷人;
为翻回老本的赌徒;
穷奢极欲的败家子;
…
your family site
your site here
当今,谁会走进当铺呢? ——当铺的角色:救急
头脑灵活的人上典当行:外出不便携带的东西放在
当铺里,有人负责保管,交点钱买个踏实;
有赚钱机会的人上典当行:资金周转不过来,先拿
一些已有资产变现,资金回笼后再回收已有资产;
会理财的人上典当行:进货没有仓库,把当铺当自
己的仓库,交点托管费;
…
your family site
your site here
SOI的推动因素:技术方面
在技术方面,IT 部门面临着业务部门越来越高的期
望值,就是用更少的钱做更多的事情,但要做得更
快、更好,这迫使 IT 部门考虑如何最大程度地重
用已有应用的功能和数据资源,来支持新应用的开
发。
your family site
your site here
例子:假设要构建一个高性能,高稳定的服务器,是花钱
购买更好的服务器还是重新组织已有的普通服务器?
假设一台普通的服务器(或者PC)出故障的概率是每
100天当机一次
那么用两台或者三台这样的普通的服务器(或者PC)
搭建的虚拟服务器出现故障的概率是多少呢?
your family site
your site here
SOI的好处
定义良好而又基于标准的接口
实现技术和位置的透明
灵活性
重用能力和渐进式集成
your family site
your site here
SOI的例子:高等教育信息系统
高校面临的挑战
your family site
your site here
呼唤高等教育信息系统
your family site
your site here
成功有效的设计和有效的管理
your family site
your site here
大学的一体化方案
your family site
your site here
学校的运营和决策分析
your family site
your site here
基于SOA的架构设计
your family site
your site here
与校园Portal的无缝集成
your family site
your site here
服务集成的相关操作
面向服务的集成
your family site
your site here
服务标识和定义
服务集成很少是在全新的项目中开始的,解决方案几乎总
需要涉及集成现有的遗留系统,方法是将它们分解成服务、
操作、业务流程和业务规则
将现有的应用程序和厂商软件包分解成表示相关操作
组的离散服务集。
从应用程序中将业务流程和规则抽象为单独的业务编
排模型。
your family site
your site here
ServiceService
ConsumersConsumers
Service Service
ProducersProducers
服务通信
通过接口,采用位置透明的、可互操作的协议进
行调用,与客户端以“松散耦合” 的方式绑定在
一起。
SOA中所有协议均是基于XML的文本文件
your family site
your site here
服务组合
服务组合是将已有服务组合为一个新服务的过程,
以增加服务的可复用性、功能和性能。
独立存在的服务具有较低的价值,只有多方提
供的多个服务集成在一起,通过协同来完成共
同的业务目标,服务和SOA才能体现出其优势。
your family site
your site here
服务组合案例:“开设银行账户”
your family site
your site here
服务组合的两大概念
服务编排:将小粒度的服务按照特定的流程聚合为大
粒度的服务;
服务编舞:在多方的业务流程之间通过服务实现协同
的动作编排。
your family site
your site here
SOA中的服务组合
your family site
your site here
服务协调
多个Web服务组合在一起并被客户端所调用时,它们之
间存在着复杂的交互过程,每个服务不是独立与客户端发
生交互,各服务之间需要相互协调。
your family site
your site here
SOA中的服务协调
your family site
your site here
服务协调的实例:在实现分布式事务时,就需要由事务管
理器在各个资源管理器之间相互协调,并且由“两阶段提
交协议”规定了具体的协调过程。
your family site
your site here
面向服务的集成
服务集成的模式
your family site
your site here
点对点模式
从集成和业务交互方式的角度来看,最早的集成方式是点
对点集成
如下图,当两个系统之间需要相互协作时,为这两个系统
开发相应的连接组件。
your family site
your site here
点对点集成的缺点:
这种架构中,应用系统之间藕合性非常高,任何一个
系统的升级或改动都将影响到其他与之相关的应用系
统的修改;
同时当一个新的应用系统需要纳入整个应用集成体系
时将非常复杂;
要想按照统一的方式进行日志、监控和系统管理也非
常难。
your family site
your site here
集线器模式
对于大规模的集成,在EAI时代,逐渐发展出“集线器”
模式
如下图,所有的系统都连接到中央交换中心,应用之间不
再直接连接,从而大大减少了连接的数量。
your family site
your site here
集线器模式的缺点:
Hub的负担会很重
Hub出问题的话将造成整个通信的瘫痪
your family site
your site here
消息总线模式
多个Hub联合在一起可以形成总线,它在逻辑上是一个单
一的实体、能进行单点控制,但物理上是多个分布式组件。
your family site
your site here
企业应用程序集成(EAI)模式
将进程、软件、标准和硬件联合起来,在两个或更多的企
业系统之间实现无缝集成,使它们就像一个整体一样。
your family site
your site here
EAI模式的缺点:EAI要求专有的开发接口,集成逻辑
(进程,转换规则,工作流服务等)不能被移植到EAI解
决方案中 。
your family site
your site here
服务总线(Service Bus)模式
服务总线提供服务中介的能力,使得服务使用者能够以技
术透明和位置透明的方式来访问服务
your family site
your site here
服务总线中的服务代理
支持多种协议格式
Web Services 的处理
多种通讯方式
your family site
your site here
面向服务的集成
企业服务总线(ESB)
your family site
your site here
ESB的定义
IDC将ESB定义为:基于开放的标准消息总线,用于通过
标准的适配器和接口,来提供各程序和组件之间的互操作
功能。它支持相互独立的异构环境中的服务、消息及基于
事件的交互,并且具有适当的服务级别和可管理性。
your family site
your site here
企业服务总线(ESB)
ESB作为SOA架构的信息传输龙骨,为SOA提供了一种
连通性的基础架构,用以连接SOA中的服务。
ESB是一根聪明的管子,用来连接各个愚笨的节点。
第三方的程序组件能够以标准的方式“插入”到该平台上
运行,组件之间能够以标准的消息通信方式进行交互。
your family site
your site here
ESB的作用
ESB在请求者和服务间起如下作
用
路由消息
转换协议
转换消息格式
处理业务事件
your family site
your site here
ESB的作用
ESB在服务请求者和服务提供者间扮演中介的角色
your family site
your site here
ESB产品例子: Microsoft ESB
your family site
your site here
ESB产品例子:Fiorano ESB
your family site
your site here
ESB产品例子:IBM WebSphere ESB
your family site
your site here
ESB产品例子:Oracle ESB
your family site
your site here
ESB涉及到的基本元素
服务请求者:发出服务请求
入站端口:定义总线可以接受的接口配置
中介:对消息的路由和格式转换
出站端口:连接服务提供者的端口
服务提供者:完成具体的服务
your family site
your site here
ESB产品的内部架构
your family site
your site here
一个ESB运行的例子
功能:查询某个学生的数据
前提:假设使用标准的学生ID (SSIM) 来查找某个学生
结果:返回查到的学生的数据
your family site
your site here
ESB 的任务
ESB 最简单的形式是负责获得从一个节点A到另一个
节点B传输的消息
your family site
your site here
得到总线上的消息
一个绑定的组件使用服务的协议,比如基于JMS的
SOAP 协议。
your family site
your site here
读取学生的数据
查询请求路由到一个“Get Person Data Service”,这个
服务执行业务逻辑。
your family site
your site here
执行基于标准的学生ID(SSID)的查询
调用SSIM服务(SSIM服务是存在总线中的一个服务),
执行查找学生的操作。
your family site
your site here
返回学生数据
将查询结果返回给请求者。
your family site
your site here
ESB工作流程
请求者将 SOAP/HTTP 请求发送到总线。
总线中的服务目标上的中介进行消息处理,将请求从请求
者的形式转换成服务提供者的形式。
将请求信息从总线发送到提供者。
服务完成后,将响应从提供者的形式转换成请求者的形式。
your family site
your site here
ESB的优点
访问目标透明:可以将服务与位置变化隔离
your family site
your site here
向后兼容:隔离服务的约定/接口的变化
your family site
your site here
格式转换:
转换消息的格式,以便与服务接口吻合;
允许多协议/消息格式的服务调用
your family site
your site here
动态路由:通过业务规则,决定如何访问目标服务
your family site
your site here
丰富服务访问的消息:通过调用其他服务,根据响应内容
更新消息
your family site
your site here
服务编排:组织已有服务,合成新服务
your family site
your site here
ESB的服务调用
调用方式分三种
同步直接调用
同步代理调用
异步代理调用
同步异步的概念
同步——使用者通过单个线程调用服务;发送请求,
在服务运行时阻塞,并等待响应。
异步——使用者通过两个线程调用服务;一个线程发
送请求,而另一个线程接收响应。
your family site
your site here
同步直接调用
使用者向 UDDI 询问
服务提供者列表。
使用者从 UDDI 返回
的列表中选择一个提供
者的端点。
使用者调用该端点。
your family site
your site here
同步代理调用
使用者向 UDDI 请求服
务提供者列表。UDDI 返
回的 URI 实际上是服务
代理的 URI。
使用者使用代理的 URI
调用服务。
服务代理从可用提供者列
表中选择服务提供者。
服务代理调用所选提供者
的端点。
your family site
your site here
异步代理调用
使用者以请求队列中的消
息的形式发送SOAP 请求。
每个提供者都可以看到请
求队列中的使用者,这使
得它们要竞争使用者。
具体工作方式取决于消息
传递系统的实现。
your family site
your site here
ESB实施例子:某港口业务处理