`
kadvin
  • 浏览: 8934 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论
阅读更多
  昨天与两个同事聊到SOA,由于大家都有在电信领域开发的背景,讨论中形成了对SOA较为准确和生动的理解,特写此文以记之。
  现在SOA的话语权主要集中在IBM,BEA这样的大公司手里,在我看来,他们最擅于将简单问题复杂化,用时下流行的话说,叫做"忽悠",愣是可以把一个简单的SOA,划分若干个看似NB的组成要素,再冠以SOAP, WSDL, UDDI, ESB等很神秘的词汇。

  在电信网络中,同一种设备,一般由不同的厂家生成,同一个网络中,往往有多种设备,多个厂家提供,但运营商又需要对这些设备集中,统一的管理,这样的现状和需求,催生了一个重要的管理架构,这个架构名字很简单,叫做MA结构。

  MA的原理也很简单,M就是Manager, A就是Agent,每个设备,除了需要实现自己的业务功能(如路由器的业务功能就是路由功能)以外,还要让自己能够融入到网络中,让上级的网管(Manager)能够管理,所以往往这样的设备,还需要附带一个Agent,这个Agent将本身的被管功能暴露给上级的网管。

  展开一下,MA结构是可级联的,有些实体(软件或者设备),它作为下层实体的Manager,同时又是上层实体的被管实体,其自身又需要附带Agent,这些关系,有时候也用南向,北向接口指代,南向就是本实体和下层被管实体之间的接口,北向就是本实体和上层管理者之间的接口,MA就是站在这两种接口两侧的对象。

  回过头来看现在的SOA,在我们看来,其本质就是软件产品的Agent,让软件像硬件那样具有互通性。

  由于设备的标准化较高,定制化程度较低,所以,设备软件的模块化,集成化较高,相应的这些方法论也早于一般应用软件和业务系统。

  从SOA宣称的各种功能和好处来讲,本质上要求上SOA的软件系统像设备一样开发,系统内部功能自行开发,系统要以标准、统一的接口与外部集成,WSDL的服务定义,与SNMP的MIB定义何其相似。在设备的开发中,SNMP等协议早已相对完善,其中所涵盖的内容,包括命名,建模,服务的定义和发现,通讯协议栈,和SOA的内容也差不多,只是用于不同的层面。
分享到:
评论
20 楼 seman18 2007-12-31  
IBM确实是个大忽悠
19 楼 dajian 2007-12-30  
rEloaD_cn 写道
jasonhsu 写道

……

而面向服务就是你通过一个服务来实现你的报警功能,这个服务就是110,你将你遇到的问题、你需要什么帮助、你现在的位置等等这些依赖信息统统注射给一个你不认识但总是在那里的110接线员,余下的问题就由他去帮你解决了。至于公安系统内部到底是怎么运作的,对于你来说就不是那么重要了。

如果我们所需要的公共服务都是通过110、119、120、122等等这样的服务来实现的,那我们的政府就是SOA的;而如果我们遇到问题需要去找张主任、王科长或是李书记,那就不是SOA的。



呵呵,现实社会中,要是真是认识某个主任、书记的,那可比通过110、120什么的来获得帮助要管用得多啊!

这个扯远了吧~~
18 楼 rEloaD_cn 2007-12-28  
jasonhsu 写道

……

而面向服务就是你通过一个服务来实现你的报警功能,这个服务就是110,你将你遇到的问题、你需要什么帮助、你现在的位置等等这些依赖信息统统注射给一个你不认识但总是在那里的110接线员,余下的问题就由他去帮你解决了。至于公安系统内部到底是怎么运作的,对于你来说就不是那么重要了。

如果我们所需要的公共服务都是通过110、119、120、122等等这样的服务来实现的,那我们的政府就是SOA的;而如果我们遇到问题需要去找张主任、王科长或是李书记,那就不是SOA的。



呵呵,现实社会中,要是真是认识某个主任、书记的,那可比通过110、120什么的来获得帮助要管用得多啊!

17 楼 zhaonjtu 2007-12-25  
jasonhsu 写道
rEloaD_cn 写道
发贴的这位朋友看来不是很了解SOA,你的观点很片面

另外我很赞同诺铁的发言——SOA和OOP应该是一个层面的东西:方法论。


这句总结得非常好,如何实现你的程序,你可以选择面向对象,也可以选择面向过程;如何架构你的系统,你可以选择面向服务,也可以选择面向实现。

SOA并不神秘,举个不算高科技的例子就可以很生动地说明什么是SOA,比如说我们遇到问题了,要报警,看看这两种方式有什么不同吧。

面向实现的方式是你必须找到最终能帮助你的警官,因此你必须清楚你处在哪个派出所的管区,你遇到的问题属于这个派出所的哪个科管,你还需要知道当时有哪个警官正在值班,最后等你找到这个人后才有可能去解决你的问题,这就需要你对整个公安系统的运作方式非常清楚,而且一旦这种运作方式发生任何变化(比如说组织变动、人员调动或是警官生病请假等等)你的报警程序就要重新编写。

而面向服务就是你通过一个服务来实现你的报警功能,这个服务就是110,你将你遇到的问题、你需要什么帮助、你现在的位置等等这些依赖信息统统注射给一个你不认识但总是在那里的110接线员,余下的问题就由他去帮你解决了。至于公安系统内部到底是怎么运作的,对于你来说就不是那么重要了。

如果我们所需要的公共服务都是通过110、119、120、122等等这样的服务来实现的,那我们的政府就是SOA的;而如果我们遇到问题需要去找张主任、王科长或是李书记,那就不是SOA的。

好形象啊!
16 楼 jasonhsu 2007-12-22  
rEloaD_cn 写道
发贴的这位朋友看来不是很了解SOA,你的观点很片面

另外我很赞同诺铁的发言——SOA和OOP应该是一个层面的东西:方法论。


这句总结得非常好,如何实现你的程序,你可以选择面向对象,也可以选择面向过程;如何架构你的系统,你可以选择面向服务,也可以选择面向实现。

SOA并不神秘,举个不算高科技的例子就可以很生动地说明什么是SOA,比如说我们遇到问题了,要报警,看看这两种方式有什么不同吧。

面向实现的方式是你必须找到最终能帮助你的警官,因此你必须清楚你处在哪个派出所的管区,你遇到的问题属于这个派出所的哪个科管,你还需要知道当时有哪个警官正在值班,最后等你找到这个人后才有可能去解决你的问题,这就需要你对整个公安系统的运作方式非常清楚,而且一旦这种运作方式发生任何变化(比如说组织变动、人员调动或是警官生病请假等等)你的报警程序就要重新编写。

而面向服务就是你通过一个服务来实现你的报警功能,这个服务就是110,你将你遇到的问题、你需要什么帮助、你现在的位置等等这些依赖信息统统注射给一个你不认识但总是在那里的110接线员,余下的问题就由他去帮你解决了。至于公安系统内部到底是怎么运作的,对于你来说就不是那么重要了。

如果我们所需要的公共服务都是通过110、119、120、122等等这样的服务来实现的,那我们的政府就是SOA的;而如果我们遇到问题需要去找张主任、王科长或是李书记,那就不是SOA的。
15 楼 rEloaD_cn 2007-12-17  
发贴的这位朋友看来不是很了解SOA,你的观点很片面

另外我很赞同诺铁的发言——SOA和OOP应该是一个层面的东西:方法论。
14 楼 tobato 2007-11-16  
从我听BEA老虎老师的宣讲来看,他们主张的SOA并不是一个简单的Agent的实现。

SOA起因
搂主说的没有错,对企业而言,需要把各种厂商的东西集成起来。 但是,为什么要集成起来呢?从企业的观点来看,企业中的技术其实是底层建筑,并不是企业中的主流。企业的核心是高效业务流程的运转、业务流程的创新带来的新的利润。在我业务流程越来越自动化,越来越追求高效的情况下,可能发现以前的计算机系统是由多个开发商建设的,现在新的业务流程需要这些系统之间进行通讯,以满足业务的需要。因此才需要集成,不然花那心思干嘛?

SOA的内容
企业如何SOA呢?企业如何去建设信息平台呢?全部包给一个公司?作一套软件平台? 对企业而言,很显然信息化的过程需要进行整体规划! ---SOA需要规划方法学

如果分时,分部位进行企业信息化平台的建设,那么如何保证这些系统能够互通呢?---SOA需要企业级信息架构

如何能保证企业的单个系统能高效开发,我其他系统可以复用这部分系统功能呢?如何保证系统性能?如何保证企业在单个系统的投入可以长期生效?不重复投入?
---SOA需要软件开发方法学支持,需要对公共部分的规划抽取

如何管理企业的信息化平台高效运作?如何管理公共服务的生命周期?
---SOA需要进行服务的监管

and more...

SOA的结论
现在厂商很聪明,站在企业的角度思考问题,而不光是看到表象(把硬件集成在一起),买的不只是一个公共平台, 买得是一套方法学和一套系统平台软件。想想看,其实真的很聪明。。。SOA的原理很简单,但是市场定位至少是上规模的大客户。

SOA是一个用一个系统互通的基本思想,串了一套方法学,一套架构思想,一个高端用户的市场定位。

引用

最怕有些软件,一辈子不会和其他的软件集成,非要在自己系统内部上SOA,搞得庞大又笨重。


这个是我感觉最头痛的,现在对外市场如果不SOA好像都快买不出去了。。仿佛要SOA点才有技术含量。。
13 楼 诺铁 2007-11-16  
kadvin 写道
  如果你做一个设备,一开始就从你的被管特征着手,描述清楚产品的北向或者说被管接口,建立完整的信息模型和管理接口,这个是不是SOA中的自上而下的方式呢?原理应该是完全一样的,SOA最要不得的就是明明只是一个Agent的功能,非要把自己打扮得像个救世主。

  我个人不是说SOA不好,而是说,不要盲目扩大它,有需要和其他软件集成的软件,应该学习设备的开发那样,系统内部改用C用C,该用Java用Java,对外装个标准的Adapter即可。
  最怕有些软件,一辈子不会和其他的软件集成,非要在自己系统内部上SOA,搞得庞大又笨重。

诺铁 写道
让软件像硬件那样具有互通性只是SOA的一部分,是ESB或其他通讯机制解决的问题。
SOA还是解决问题的思路,以流程为出发点,从上到下规划的过程。
我的博客写了一点观点,接下来还会继续写几篇阐述我的理解,以后多多交流吧

SOA本来就不只是一个Agent的功能,还包括系统分析设计的思路、业务规划的思路等各方面。 你把它理解为一个Agent的功能就能得到Agent的好处,其他好处就得不到。
kadvin 写道
系统内部改用C用C,该用Java用Java,对外装个标准的Adapter即可
,SCA就是这样的思路,我也很赞同。
12 楼 hyhongyong 2007-11-16  
SOA的用处是服务复用和统一接口管理,是面向企业集成系统的,概念上感觉和lz提的硬件的agent从实现形式上是类似的。
只是软件开发和其它制造业是有很大区别的,这是与硬件的不同之处。
模式这个词,从建筑学引入以来,设计模式的发展给软件开发带来的影响相当大。SOA也概念上的先发展,最近比较热门,能不能起到实际的作用,还需要时间来检验。
个人认为,如果单个系统都能以组件开发的形式作好,SOA还是能起到一些作用的。
11 楼 pacer123 2007-11-16  
楼主貌似是做EAI的?呵呵。学习了
10 楼 cljspn 2007-11-16  
哈哈,我同意楼主的概念。
9 楼 kadvin 2007-11-16  
  如果你做一个设备,一开始就从你的被管特征着手,描述清楚产品的北向或者说被管接口,建立完整的信息模型和管理接口,这个是不是SOA中的自上而下的方式呢?原理应该是完全一样的,SOA最要不得的就是明明只是一个Agent的功能,非要把自己打扮得像个救世主。

  我个人不是说SOA不好,而是说,不要盲目扩大它,有需要和其他软件集成的软件,应该学习设备的开发那样,系统内部改用C用C,该用Java用Java,对外装个标准的Adapter即可。
  最怕有些软件,一辈子不会和其他的软件集成,非要在自己系统内部上SOA,搞得庞大又笨重。

诺铁 写道
让软件像硬件那样具有互通性只是SOA的一部分,是ESB或其他通讯机制解决的问题。
SOA还是解决问题的思路,以流程为出发点,从上到下规划的过程。
我的博客写了一点观点,接下来还会继续写几篇阐述我的理解,以后多多交流吧
8 楼 alexgreenbar 2007-11-15  
metaphor is so important to software, from device management, you do give us a clear description on SOA!
7 楼 诺铁 2007-11-15  
让软件像硬件那样具有互通性只是SOA的一部分,是ESB或其他通讯机制解决的问题。
SOA还是解决问题的思路,以流程为出发点,从上到下规划的过程。
我的博客写了一点观点,接下来还会继续写几篇阐述我的理解,以后多多交流吧
6 楼 kadvin 2007-11-15  
不同意可以亮出你的观点,SOA到底是什么?
我只是想用一个比较简单的方式来说明我对SOA的理解。

诺铁 写道
偏偏不认同红字的那句话。
另外,简单、复杂是相对的,SOA的概念可以关联到你已经掌握的知识结构上,所以你觉得简单。
IT领域现在本来就很少有真正全新的东西了,都是新瓶装旧酒,但很多新人对旧酒也不熟的,那就全是新的复杂的东西了。
5 楼 kadvin 2007-11-15  
呵呵,我发现JavaEye里面回复不了自己发的帖子。
4 楼 诺铁 2007-11-15  
偏偏不认同红字的那句话。
另外,简单、复杂是相对的,SOA的概念可以关联到你已经掌握的知识结构上,所以你觉得简单。
IT领域现在本来就很少有真正全新的东西了,都是新瓶装旧酒,但很多新人对旧酒也不熟的,那就全是新的复杂的东西了。
3 楼 hyhongyong 2007-11-15  
引用
现在SOA的话语权主要集中在IBM,BEA这样的大公司手里,在我看来,他们最擅于将简单问题复杂化,用时下流行的话说,叫做"忽悠",愣是可以把一个简单的SOA,划分若干个看似NB的组成要素,再冠以SOAP, WSDL, UDDI, ESB等很神秘的词汇


深有同感!
2 楼 eivenchan 2007-11-15  
听君一席话,胜读十年书!

感谢楼主。
1 楼 sp42 2007-11-15  
一言惊醒梦中人!

相关推荐

    SOA作业及要求,soa

    SOA,即Service-Oriented Architecture(面向...通过这次作业,不仅能加深对SOA理论的理解,还能锻炼团队合作、项目管理和技术创新能力,是一次宝贵的学习机会。希望所有参与者能够全情投入,共同探索SOA的无限可能。

    SOA.rar_SOA_SOA 开发

    尽管XFire已被更现代的框架如Apache CXF取代,但它仍然为我们提供了一种理解SOA概念和实践的途径。在学习SOA时,理解服务的定义、服务间的通信以及如何使用像XFire这样的工具来实现服务,都是非常关键的步骤。在实际...

    SOA.zip_SOA optical_SOA 光_SOA 半导体_VPI SOA仿真_光放大

    通过MATLAB接口,用户可以编写代码来控制VPI模拟,从而深入理解SOA的动态行为。 在提供的MATLAB文件"SOA.m"中,我们可以预期找到一个详细的SOA仿真模型,它可能包含了以下部分: 1. **增益模型**:基于半导体材料...

    SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_

    例如,`SOAOperation.java`可能就是一个Java类,它包含了对Teamcenter SOA服务的调用,实现了创建item、创建folder和查询属性等功能。 在实际应用中,Teamcenter的SOA服务可以帮助企业实现以下目标: 1. **系统...

    通过一个真实故事理解SOA监管

    如果能够举一个例子,那么大家就容易理解得多。恰好昨天在书上看到一个真 实的故事,很形象地说明了SOA监管的意义。所以不妨跟大家分享一下。这个故事是关于Sun的,当然这类事情实际上曾经发生在很多大型公司里。

    SOA面向服务架构

    通过对SOA的关键特性的理解及其应用场景的了解,可以帮助企业更好地利用这一架构模式来提高业务灵活性、降低开发成本并提升服务质量。同时,也需要关注SOA实施过程中可能遇到的挑战,采取相应的措施来克服这些难题。

    微软SOA架构介绍,便于大家理解SOA

    ### 微软SOA架构介绍 #### 一、SOA概览 面向服务的架构(Service-Oriented Architecture,简称SOA)是一种设计思想,它...通过对SOA的理解和实施,企业可以更好地应对快速变化的市场需求,实现业务的持续增长和发展。

    SOA principles & practice(SOA课程课件 10章)

    最后,通过真实的SOA项目案例,展示SOA在不同行业和场景中的应用,帮助学习者理解SOA在实际工作中的价值和挑战。 通过这套详尽的SOA课程,学习者不仅能掌握SOA的基本理论,还能了解到实际项目中的最佳实践,从而...

    SOA 培训资料 对理解有用

    ### SOA治理基础知识点 #### 一、SOA概述与治理的重要性 - **SOA(Service-Oriented Architecture,面向服务架构)**:是一种设计原则和技术框架,它将应用程序的不同功能单元通过通信协议进行集成,使得这些功能...

    SOA的反思:SOA架构的本质

    ### SOA架构的本质 #### SOA的基本概念与理解 ...然而,成功实施SOA需要对业务流程有深入的理解,同时还需要解决一系列技术挑战。因此,企业在考虑采用SOA时,应当进行全面的评估,并制定详细的实施计划。

    SOA资源.rar

    通过阅读和理解这些代码,不仅可以加深对SOA技术的理解,还能提高实际编程能力。 总的来说,"SOA资源.rar"为学习者提供了一个全面了解和实践SOA技术的平台,从基本概念到高级特性,从理论到实践,都得到了充分的...

    soa心得体会soa心得体会;

    通过对SOA的学习,我们可以深入理解其核心理念和实施带来的好处。 首先,SOA是一种组件模型,它将复杂的软件系统分解为独立的服务,每个服务都有清晰的接口和契约,这些接口定义了服务之间的通信方式,而服务本身则...

    SOA的设计误区(SOA架构师必读)

    例如,SOA的端对端、多层面特性意味着设计问题往往是结构性的,不是简单的配置或编码调整就能解决,这要求架构师对各层面的依赖关系有深入理解。另外,SOA设计中的任何失误都可能影响全局,导致高投资回报率的丧失。...

    IBM soa 培训教材-SOA 治理

    为了更好地理解 SOA 治理的重要性,我们可以参考一个具体的案例。假设某公司推出了一个货币兑换服务,最初该服务只面向财务部门,但随后其他部门也开始使用这一服务。由于缺乏有效的治理机制,导致了以下问题: 1. ...

    SOA发展历史介绍SOA的发展

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被...通过深入理解SOA,我们可以更好地设计和构建适应未来的企业信息系统。

    理解SOA中的服务生命周期-运行时

    这篇文章将探讨SOA服务在运行时的生命周期,以提高对这一阶段的理解。 首先,共享服务生命周期(SSLC)模型如图1所示,为整个讨论提供了指导框架。在运行时阶段,服务工程团队需确保服务能够有效地在实际环境中运行...

    普元提出的中国soa任务

    普元,作为中国知名的IT解决方案提供商,对中国SOA的任务有着深入的研究和实践,其目标是助力中国的中小型企业和个人更好地利用SOA的优势。 一、SOA的基本概念 SOA的核心理念是将复杂的系统分解为一系列可重用的...

Global site tag (gtag.js) - Google Analytics