[转]什么是 SOA?

什么是SOA?

70年代-80年代,自顶向下分析方法,核心是可以复用的函数,比如C语言的200多个函数库。

80 年代-90年代,出现了OO的分析和设计,核心是对象,是可以复用的组件。比如Struts这个框架,我们只需在这个框架上搭载一些自己的Action, 就可以体会到真正的MVC模式,而不是每个项目大家都去创造一个自己的FrameWork, 这就是组件复用的好处。

90年代后,OO方法逐渐不能满足用户需求变更加速和老系统集成的需求,所以出现了SOA,SOA的核心是服务。自顶向下分析方法以函数为中心,OO以对象为中心,SOA 以服务为中心。

服 务合组件的概念还是不一样的。组件以功能复用为核心,而服务以实际的企业应用为一个单元划分。比如订单管理(OrderManager)可以是一个可以复 用的组件,它仅仅提供自己的API,而订单管理服务则是一个完整的企业行为单元,可能包括 采购订单--〉订单审核生效--〉进货 这样一个业务流程。脱离了BPM纯粹从技术上讨论SOA是空洞的。


SOA主要目的是分布式和减少服务和服务之间的耦合。这种耦合性减少和以对象和对象之间关系的耦合性减少是不一样的,对象和对象之间关系的耦合性减少我们用IOC就可以很好的解决了。SOA耦合性的减少是服务和服务之间的耦合性减少。


也就是说,70年代-80年代,我们采用自顶向下分析方法做项目,80年代-90年代,我们用OO的分析和设计做项目,而现在,到了以服务为核心的分析和设计方法作项目。SOA仅仅是OO 思想的一种发展和扩充。

利用SOA思想做概要分析和概要设计,OO思想做详细设计,这就是对SOA的理解

原文:http://blog.chinaunix.net/u/23701/showart_461510.html

alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

  如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
原文地址:https://www.cnblogs.com/newsea/p/1367726.html