转载自

http://blog.sina.com.cn/s/blog_4e7dcdef0100nfev.html

什么是SOA架构

Mark:  今天看了金蝶公司一位仁兄的SOA视频ppt,深有感悟,于是把以前写的SOA在改改,修正某些观点。

下面是文章目录

【1,SOA概念和背景相关】

【2你应该知道的一些概念】

【3,我对 SOA 的理解】

【4, SOA 到底你想干嘛?】

【5, SOA 与 IBM 】

【1,SOA概念和背景相关】

SOA(Service-oriented archITecture,面向服务架构)

SOA并不是一个新的概念,早在  90 年代(好像是1996年)提出来的,知道进入2000年以后,SOA 才逐渐被重视,被推广,无论是 IBM还是Oracle都有相关的产品。 像一些应用服务器 BEA 的 weblogic,IBM 的Websphere 等等都支持, Tomcat 也支持 WebService。

SOA 里面有 ESB(Enterprise Service Bus), WSDL,SOAP 等等概念。

经常在网上看到,SOA是下一代软件开发架构,那么到底为何称之为下一代呢?那是因为软件的开发经历了几个阶段,大概是这样子的: com组件 > com+,dcom >  ejb  > webservice。

大概就是这样子的,至于谁把 webservcie 放到 最后,那是别人的说话,笔者我不是这么认为的。

【2你应该知道的一些概念】

ESB, 企业服务总线

SOA组件

WebService

【3,我对 SOA 的理解】

SOA 就是一种解决方案,当然也可以看做架构,也可以看做方法论,毕竟每个人对同一件事物是有不同的看法的,只是哪种看法更主流而已。 就像三民主义和共产社会主义一样。 谁的想法得到了社会的承认,得到主流舆论的支持,那么他的观点就可以看做标准。否则 EJB 也不会被 Sping 攻陷。

就像敏捷,TDD一样,都是一种解决现有问题的一种思路。SOA诞生的前提是什么,无非还是现实的问题,更明确些说:是企业,是政府部门面临的现实问题,导致出现了SOA这个解决方案。 并不是厂商或者个人凭空乱造的。只是因为有生存的土壤,所以SOA才会出现,才会发展,才会得到IBM,微软的支持。 Java 以前不支持SOA,可后来还得随波逐流去支持SOA,更本质的说,也就是支持WebService(我没有说SOA就是WebService)。 因为你不支持,那么你就可能要落后,可能就要跟不上时代,跟不上IT技术发展的潮流。所以你不得不支持WebService。

就像现在的云计算一样, 你不说你的产品支持云计算,那么只能证明你的产品使用的技术不够先进。 但是用户,尤其是不懂IT的用户就认为你的产品out了。  所以这也是一种无奈。 随着 瑞星云,360云,金山卫士云,百度云,淘宝,阿里巴巴云 的出现,你的产品如果也没有个云,至少是概念上的云,那么就只能说明你的产品没有使用潮流的技术,跟不上时代的步伐了。跟不上时代的步伐,那么产品就要被淘汰。 虽然做IT的我知道,目前的产品支不支持云计算,没有多少必要。 因为对用户体验,产品的运行效率没多大影响,可是不懂IT技术的人,是没有笔者我这么理性的。

所以作为潮流时代的我们,必须要谈谈SOA,否则你也要out啦。 就像你不谈敏捷,不谈TDD一样,也会被out。虽然你很理性,你说我认为soa对我来说,没意义。但作为潮流,你也只能随波逐流啦。 没有什么特殊的原因,用句现实点的话, “被SOA”,“被敏捷”……

经常,会被 SOA 和 WebService 搞混,认为这2个家伙就是一个意思。 其实不是这样的, WebService 是实现SOA 的其中一种方式。 WebService 基于 SOAP 协议的,本质就是基于XML 的,正是因为基于 XML,所以SOA才能整合不同的平台,不同的应用。

【4, SOA 到底你想干嘛?】

总结总结个人观点,SOA到底能干嘛事:

l  整合异构系统

准确点说,整合企业的遗留系统、正在开发的系统和即将开发的新系统。 不同的系统可能采用不同的平台,如操作系统的选择;不同的开发语言;不同的系统架构。

l  及时的响应用户的业务变化

大量的SOA组件,通过整合和拆散,然后打包成一个个的粒度合适的SOA组件,再经过流程管理工具的处理,实现业务的不断变化。

就像变形金刚那样,零件还是那些零件,但是经过一定的变化,也就是对SOA组件的拆和并, 就可以玩不同的花样。当然这是理想情况,至于到底实际情况如何,笔者也没有搞过,所以不清楚。

【5, SOA 与 IBM 】

先来看看IBM 的SOA的期望:

http://www.ibm.com/developerworks/cn/WebServices/newto/

主要就是2 点:

  • IT 与业务的一致性
  • IT 资产的最大化重用

花了一个下午的时间,上网看帖子,去 ibm 的专区看,感觉还是不能领会到SOA的精髓。

就拿 IBM 宣传的那2点评评。

(-)IT 与业务的一致性

所谓的IT与业务的一致性,个人理解就是SOA是面向客户的,就是客户提出什么业务需求,那么IT就必须开发什么需求。 举个例子,我们经常去沃尔玛超市买东西,假若沃尔玛超市部署了SOA,而且沃尔玛说了,满足所有用户的要求(但这是不实际的)

于是,我这样的客户就可以说,你沃尔玛怎么不卖鲨鱼肉呢,你们必须提供一项服务,卖鲨鱼肉!这是一个活生生的客户需求, 于是沃尔玛的SOA技术部门就会提供一项服务,名字叫卖鲨鱼肉。

如果改天,我想吃企鹅肉了(鄙视腾讯的弹窗), 我就向沃尔玛的SOA实施部门再提了一个要求:我要吃企鹅肉了! 于是乎沃尔玛就又提供了一项新的服务:卖企鹅肉。

改天,我突然想有一个新的服务,我鲨鱼肉也吃,企鹅肉也吃,而且吃的顺序随便改。那么我就又向沃尔玛提了个要求: 我要吃鲨鱼肉和企鹅肉,你们必须打包卖。 于是乎沃尔玛又提供了一些服务,鲨鱼肉和企鹅肉一起卖。但这个新的服务是卖鲨鱼肉的服务和卖企鹅肉的服务组装起来的。 是通过一些服务组件(卖鲨鱼肉和卖企鹅肉)拼装成的服务(同时卖鲨鱼肉和企鹅肉)。

上面的这个例子就可以看出SOA的一个小小的优点了,只要把SOA组件随便打包,就可以有不同的服务了。

(2)IT 资产的最大化重用

这个很好理解,一个企业,可能有很多遗留的老系统,和即将上线的新系统。SOA就可以把这些所有的系统整合起来。

如果你的企业不是跨国企业,如果你的企业没有多少遗留系统。那就没有必要用SOA架构。SOA架构是一个庞大的工程,哥我看了视频之后,才发现自己是多么渺小。

SOA面向的对象,一定是那种大企业,何谓大企业,像工商银行,跨国企业的那种,

其实,一个企业能有多少遗留的系统呢? 又能有多少个应用平台呢? 可以想象一下,在一家企业,一个部门用jave ee 的,一个部门用 .net , 这样的概率又能有多高,如果一家企业内同时允许java平台和.net 平台共存,而且没有主从之分的那种,那么我也只能说:佩服佩服。

总之用不用SOA,请慎重考虑。

什么是SOA,谈谈自己的看法(转)相关推荐

  1. 软件工程方法论对我们开发软件有多大用处?谈谈你的看法。

    软件工程方法论对我们开发软件有多大用处?谈谈你的看法. 软件工程是指导计算机软件开发和维护的一门工程学科.从软件工程的定义我们可以知道:软件工程方法论就是教给人们软件开发更科学更系统的方法.软件工程方 ...

  2. 软件工程方法论为我们经软件开发有多大用处?谈谈你的看法。

    软件工程方法论为我们经软件开发有多大用处?谈谈你的看法. 软件工程的各个阶段对软件开发与维护有指导作用和实际意义, 软件工程生命周期的各个阶段相互关联, 对软件的开发和维护均有重要作用. 为了摆脱软件 ...

  3. 转正老板让你谈谈你的看法_让我们谈谈逻辑回归

    转正老板让你谈谈你的看法 Moving forward from Linear Regression, we will now address the next most important algo ...

  4. 第1次作业:谈谈我的看法与感想

    摘要:主要回答第一次作业中的部分问题以及阅读博文<进入2012--回顾我走过的编程之路>后的感想 1. 关于本专业的一些看法 1.1 结缘计算机 [1]"我有幸从初二开始就学习编 ...

  5. 从业十余年谈谈对dotnet看法与坚持

    前言 园子经常在讨论关于.Net发展的问题,我也这些年在工作乃至创业过程中使用.Net碰到的一些问题和看法. 个人擅长的技术面,C/C++/MFC/STL.ASM.JAVA.VB.Javascript ...

  6. 我从大学开始写博客,如何写一篇技术博客,谈谈我的看法!

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识, ...

  7. 面试官:Redis新版本开始引入多线程,谈谈你的看法?

    来源:https://juejin.cn/post/6928407842009546766 Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作,即使在单线程处理情况下 ...

  8. 面试:Redis新版本开始引入多线程,谈谈你的看法?

    作者 | 景同学 来源 | https://juejin.cn/post/6928407842009546766 Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作, ...

  9. 企业最喜欢招聘什么样的Java程序员?谈谈我的看法

    现在 Java 相关岗位薪资越来越高.涨幅越来越大. 通过职友集数据可以查看,以北京 Java 相关岗位为例,其中 [20k-30k] 薪酬的 Java 工程师,占到了整体从业者的 30.8%! 北京 ...

最新文章

  1. 数据库连接池到底应该设多大?
  2. ‘numpy.float64‘ object is not callable
  3. python列表中 [ :: ]的用法
  4. VmWare5.5主机Citrix桌面实施方案(二)
  5. python cls_关于python中的self,ins , cls的解释
  6. CVPR 2021 最佳论文奖项出炉,何恺明等获最佳论文提名 !
  7. Curie%20Module有什么用
  8. 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误...
  9. Binary translation is incompatible with long mode on this platform
  10. 用VAE(variational autoencoder)做sentence embedding/representation或者其他任何结构数据的热presentation...
  11. linux学习笔记1(第一本笔记)
  12. Mac小技巧——开启Google Chrome浏览器加速模式
  13. [高项]项目工作说明书VS采购工作说明书
  14. 基于ATTiny85的digispark Arduino最小系统的自制教程(二)
  15. 23种设计模式(自学笔记)
  16. 一起写RPC框架(七)RPC网络模块的搭建五 Netty模块
  17. python 战舰_Python战舰:获取用户输入的他们想要多少艘战舰
  18. 微信PC端网站 微信扫码登陆
  19. alicloud linux3安装Jdk和Maven
  20. 大数据系统架构的基本介绍

热门文章

  1. linux系统下修改文件命令vi的使用
  2. window.status
  3. Excel 练习数据LC.CSV
  4. JS.Canvas:镂空文字
  5. python有中文版吗-python有中文版
  6. FPGA学习回顾之SPI的使用
  7. 基于Flask的优雅日志记录
  8. 看繁华一世,三千浮生若水
  9. 计算机是通过计算器发明的吗,计算器发明者
  10. 郝志峰《概率论与数理统计》期末复习笔记