SOA 扩展话题

一、SOA是新东西吗?

        SOA没有引入任何新发明的概念,它是个把现有概念和实践放到一起,用于特定需求集的范式。

你甚至可以说SOA别的什么都不是,就是将实用主义和头脑风暴运用到分布式系统上而已。

        SOA的改进之一可能体现在如下事实上:Web Services(不谈其所有的缺陷)引入了一个互操作性的新标准。

        SOA另一个重要的方面是对异质的接受,这一点体现了SOA是一个革命性的方法,不同于我们以前经常看

到的东西。过去,相当多的解决方案都基于同质化想法,然而,只要系统超过一定的规模,同质化就不可能。

同质化也无法伸缩,这意味着任何要求同质化的方法迟早会失败。接受异质化改变了我们设计大型系统的方法,

这个思维方式的转换也许是一小步,但它能产生戏剧性的效果(类似于敏捷编程接受需求不断变更的事实,

而不是力图与这个事实抗争)。

二、SOA增加了复杂性吗?

       毫无疑问,分布式处理比非分布式处理更复杂。要处理大型系统和不同的所有者,需要合作和松耦合。

但是,正如已经指出的,所有形式的松耦合都增加复杂性。除此之外,比起所有事情都由中央控制的环境来说,

分布式调试和测试都要求付出更多的努力。

        正由于此,SOA自身从来都不应是目的,如果你能避免分布式处理,就尽量避免它。

        然而,如果你被要求将业务流程分布到在不同的所有者控制下的系统上,那么,SOA能帮你处理这个难题

所涉及到的复杂性(从而在某种意义上减少了复杂性)

三、SOA关键的成功要素是什么?

        如同任何新战略一样,要使SOA成功,有很多重要的方面需要注意。你必须一开始就有恰当的理解、

现实的预期、正确的人选,你还必须努力工作,找出和规划适当的技术和过程。因此,就这个问题而言,

通常的回答是包含如下要素:

1、理解

2、合作

3、管理支持

4、谨慎的引入

5、专研

四、SOA在哪些地方不合适?

        你可能有这样的印象或期望:作为分布式流程的解决方案,SOA对不同系统之间任何形式的通信都是

合适的。但是,SOA存在局限性,此粗求有可能过于苛刻,或者SOA引入的额外开销带来的问题可能比

它解决的问题还要多。

        数据库复制、海量数据处理和本地客户端尤其不是SOA的强项。你有可能从基于SOA方法的概念和

解决方案中获益,然而,不要忘记,像任何其他概念、技术和范式一样,SOA也不是全能!

        要注意的是,该提问的问题从来都不是"某事用SOA是否合适",而应该是"你正在考虑的解决方案都你的问题

和需求是否合适"。

        当我们发现分布和松耦合的代价太高之后,可能会退回去使用单个软件。

五、SOA替代了OOP吗?

        不管是SOA还是OOP都不比对方强,也无法相互替代。OOP是一个应用程序的"编程"范式,而SOA则是一个

系统的"架构"范式。你只能在一定的规模内控制和管理自己的对象,所以OOP无法伸缩。SOA是用来连接系统的

方法,这些系统用面向对象或其他范式编写。换句话说,除非你只需管理单个程序,否则这两者你都需要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值