SOA概念及特点释疑

 先来看看什么是SOA:SOA是能够通过松散耦合关系组织交互软件模块(服务)的软件架构。再来看看什么是Service:服务是服务提供者提供的能完成请求服务的用户所希望功能的处理集合。

  那么SOA具有那些关键特点呢?

  (1)独立运行(standalone):所谓的service, 它与组件(component)的根本不同首先在于service是独立于调用者自行运转的,即访问service的接口相对狭窄,我们只需要知道service如何满足我们的功能需求,而不需要管理它的生命周期,不需要理会那些维持service运行所需要考虑的种种细节。即我们对于service的了解只需要局限于功能接口即可,不需要理会它的那些管理接口,配置接口等。软件的发展趋势是智能化(intelligence),而智能化的第一步是自治(autonomous), 即软件要具有自己的独立性,这首先意味着软件的生命周期要脱离其他软件的控制(standalone)。服务无论调用者是否存在,它本身是独立存在,独立发展的。这与一般的对象是不同的,一般的对象是由调用者创建并控制其生命周期的。

  (2)异步调用(asynchronous):异步特性是SOA包容真正的商业智能的关键所在,同样是一个函数调用,只有异步特性才能够包容真正的商业智能,才能真正模拟真实世界中各种各样的异步情况,才能在函数这种最小的程序结构单元中引入最复杂的处理过程。现在SOA的宣传往往集中于机器之间的互相调用,强调异构系统之间的一种包容性,但事实上异步特性所能承载的内容要远远超越机器世界本身。当然,同步调用方式也是SOA架构的自然组成部分,就像我们既需要email,也需要手机一样。

  (3)基于消息(message based):基于消息的调用方式是分布式系统的一种内在要求,消息是一种数据,它并不是远程对象指针,不需要维持其状态并将状态通知所有需要知道的调用者,远程对象这种基于proxy-stub的方案其要求是远程状态同步,即状态的一致性,而分布式系统是由众多独立的状态空间(进程空间)所构成的,这种内在的不协调是造成分布式的对象方案难以实现可扩展性的关键原因。

  (4)纯文本协议+元数据(Plaintext Meta):SOA架构中基于纯文本协议是一个非常关键的技术抉择,当需要跨越众多硬件平台和软件系统的时候,各种二进制的远程调用方案总是存在着难以彻底解决的可理解性的问题。凭借纯文本的结构透明性加上元数据的自描述特性,我们希望实现一种语义透明性,使得各种中间层都能够以通用的方式传递经过的消息,并理解其中需要理解的部分。与OOP中的传统模式不同的是,SOA架构中强调的是结构(structure)与内容(content)的分离,而不是数据与行为的耦合与封装。说到纯文本的元语言,XML无疑是最好的选择,作为一种半结构化的文本表述,XML天然就是人机共享的信道。

  在SOA架构中,松散耦合是延迟绑定(late binding),独立运行(standalone)和基于消息(message based)等多种技术策略综合作用之后所达到的一种效果,这为外部灵活的流程配置做好了铺垫。

  然后解释一下SOA并不能等同于Web服务:Web服务是一套技术体系,包括XML、SOAP、 WSDL和UDDI,可以用来建立应用解决方案,解决特定的消息通信和应用集成问题。随着时间的推移,我们发现这些技术在不断发展、不断成熟,也会更好地帮助你实现SOA。但是,Web服务不是SOA:SOA是一种软件架构,而不局限于某个技术的组合(例如Web服务),它超越了技术范畴。在一个商业环境中,纯粹的SOA是一种应用软件架构,其中所有的功能都是相互独立的服务模块,通过完备定义的接口相互联系起来。只要按照一定的顺序来请求这些功能模块所提供的服务,就可以形成完整的业务流程。

  Web服务的出现,为SOA的应用提供了一种标准。到目前为止,业界已经形成了一些基本的标准模块——SOAP用于服务请求的建立;WSDL用于服务请求的发布;UDDI用于服务请求的目录列表;另外还有一些关于安全和数字签名的标准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值