SOA,ESB,WebService的关系
1. 什么是SOA
SOA(Service-Oriented Architecture)既服务导向架构,是指为了解决在inernet环境下业务集成的需要,通过连接能完成特定任务的独立功能实现的一种软件系统架构。该定义的学术味道较浓,但其核心思想并不难理解:让应用不受限于技术,让企业轻松应对商业服务变化和发展的需要。目前,SOA的实现手段主要包括:Web Serice(网络服务)、CORBA和JINI等。
2. 为何要使用SOA
面向服务架构(SOA)是一种应用框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。SOA 使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,从而提高业务流程的灵活性。这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA 有助于实现更多的资产重用、更轻松的管理和更快的开发与部署。在当今的业务环境中,变化是毫无疑问的,因此快速响应客户需求、市场机遇和外部威胁的敏捷性比以往任何时候都更显重要。 各种企业都认识到组件化、模块化、互操作和可伸缩基础设施的价值:
组件化:利用标准化的应用程序和资源服务接口
互操作:实现应用程序和/或资源之间的轻松信息交换
模块化:混合搭配、添加删除、业务流程与基础设施
可伸缩:从现有资源起步,随需添加其他资源
3. SOA与Web Service何为区别
SOA 不是Web服务
Web服务是实现SOA的方式之一。
在SOA时代下,ESB为SOA的实施提供了底层架构的技术支持。SOA从根本上来说就是要解决两个问题:重用和异构,但是作为信息化系统建设永远要面对的两个难题,解决的方法却并不简单,所以SOA的体系庞大而复杂。 更重要的是ESB为分散服务提供了交互、组合和治理的基础架构。有了它,SOA才能释放自己的最大价值。 IBM为ESB定义了四个必备的功能:“路由器”——根据信息内容,在不同应用和服务之间进行信 息传输和路由;“转换器”——进行应用之间的通信协议转换;“翻译机”——进行应用之间的消息格式转换;“收发室”——处理来自不同渠道的业务事件(同步 传输,异步传输,发布/订阅等方式)。 其中“路由器”和“收发室”都是针对服务的重用而设计的,而“转换器”和“翻译机”则专门用来解决异构的通信问题。 针对重用和异构这两个难题,倪晓兵认为ESB提供了两个核心的功能,服务的管理和数据的转换。 那么ESB到底是什么呢?业内对ESB的定义是:它是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。
5. SOA,ESB之间的关系
首先,ESB不是SOA。SOA的最常见的实现方式方式是SCA和JBI,而SCA的实现需要ESB,相反JBI则不需要ESB,可以参看本人对 JBI和SCA分析解读的文章。 其次,因为IBM和Oracle(收购了BEA和SUN的牛X公司)都推崇SCA模式的SOA,因此SCA实际上已经成为SOA的事实标准,说道SOA,最先想到的就是SCA模式了。 最后,ESB是SCA架构实现不可缺少的一部分,ESB产品脱离了具体的应用外,没有任何意义。ESB的作用在于实现服务间智能化集成与管理的中介。通过 ESB可以访问所集成系统的所有已注册服务。
6. SOA,ESB,WebService的关系
SOA是方法论,就像建筑学一样,指导性质的;
ESB是建筑图纸,理顺整个建筑的架构;
Web S是具体的建筑材料,就好像预制板;
7. 什么是RPC?
RPC就是想实现函数调用模式的网络化。客户端就像调用本地函数一样,然后客户端把这些参数打包之后通过网络传递到服务端,服务端解包到处理过程中执行,然后执行的结果反馈给客户端。 RPC(Remote Procedure Call Protocol)——远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它假定某些传输协议的存在,如 TCP或UDP,以便为通信程序之间携带信息数据。通过它可以使函数调用模式网络化。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 RPC 工作原理
运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:
1.调用客户端句柄;执行传送参数
2.调用本地系统内核发送网络消息
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数
5.执行远程过程
6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核
8.消息传回本地主机
9.客户句柄由内核接收消息
10.客户接收句柄返回的数据