`
ruilin215
  • 浏览: 1142754 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

乱谈SOA——IT世界观及方法论

阅读更多
乱谈SOA——IT世界观及方法论
最近刚刚为博文视点完成了“SOA in Practice”(《SOA实践》)一书的翻译工作。2个多月的时间以来,基本上每天的业余时间加上周末,全都在翻译这本书。以前对SOA所知不深,经过2个多月的浸泡,感觉自己对SOA的理解深了一些。而且,越是到后来,越是有一种感觉:SOA更多的是一种世界观和方法论,某种程度上来说,SOAERP之类的东西有点相似——首先要建立某种IT世界观(如何看待IT系统?什么东西是最重要的?)、方法论(处理问题的基本原则),然后再讨论技术细节。没有理论指导的技术细节,往往会使人抓芝麻,丢西瓜;当然,没有技术细节的理论,也会使人神游太虚,不知所云。
我们如何看待自己生存于其间的世界?这个问题关系重大。还能想起上中学的时候有一门好像叫“思想品德”的课,讲人生观、世界观、价值观,内容枯燥,搞得自己对这些东西颇为腻烦。然而,若干年过去后,回过头一看,正是这些基本的观点和认识在左右自己的行为和意识。
世界观回答的问题是:你用什么观点来看待世界?
IT这个行当里,所谓的世界观体现在类似于这样的问题上:
+ 你认为系统是静止的?均衡的?趋向完美的?还是动态的?非线性的?未来有无数多的可能性的?
+ 你认为系统应该是“同质”的还是“异质”的?
+ 你认为系统的“扩展性”、“伸缩性”、“重用性”哪个最重要?
如此等等。
这都是些基本信念问题。
对第一个问题,假设我们抱前一种观点,我们就会希望系统景观按我们“良好”的意愿来发展——可控,完美。如果情况不是这样,我们就会感觉到沮丧、挫折。如果我们抱后一种观点,我们就会从内心深处意识到所有的变化、偶然、意外都是自然规律所致使,是我们必须接受的一部分,它们非但不是我们的敌人,相反,它们是给我们机会、给我们未来创造无限多可能性的朋友。我们就会热爱变化,拥抱变化。
IT世界观对我们设计IT系统影响深刻。在过去,我们有很强的“同质”倾向。大型主机、ERP系统等,都是我们期望同质的表现。而且,很多技术都试图把我们往同质的方向上引导。个人以为.NET之所以力图覆盖从浏览器、桌面,到服务器的领域,就是这种努力的体现。厂商推销给我们的东西时往往有一个不摆在明面上但昭然若揭的目的:把你绑在他的平台上。SOA首先认为异质是不可避免的,接受这个现实而不是试图和异质抗争。
另外,你是更看重“重用”还是更看重“伸缩”,也有很大的影响。面向对象的编程显然更加注重“重用”性——代码级别的重用;面向组件的编程带给了我们二进制级别的重用。用对象这样的概念建立起来的分布式系统,比如OMGCORBA,其伸缩性当然先天性地就有问题。而INTERNET,其建立的首先考虑就是伸缩性,所以,互联网才可以发展到现在这样一个规模。SOA非常看重伸缩性。从我的理解来看,事实上这也是为什么要提出SOA概念的重要原因之一。一种僵化的结构无法满足伸缩的需求;而无结构的灵活会导致不可控的伸缩,最终会造成整个系统的崩溃。SOA就是力图要建立既足够灵活,又有一定之规的系统架构。
再来说说方法论。SOA方法论是复杂性理论可以发挥作用的地方。
有关复杂性理论,大约在3年前看过一本名为《复杂》的书,当时就深深地为复杂性理论所打动。所谓复杂,简单说来,就是“1+1不等于2”。为什么?因为这两个1之间不是简单的线性叠加的关系,而是互相影响,互相制约,互动。所以,1+1不但可以大于2,还可以演化出许许多多我们开始时都意想不到的东西来。要想形成这种系统,关键的是,该系统要处于“混沌的边缘”,也就是说,该系统非但不能在均衡的周围,相反,必须远离均衡。在远离均衡,但是又并非混乱的区域,自由地进行元素的相互反馈,最终就会产生出秩序、组织和新的元素等等。如果仅仅在均衡区域附近,那么,毫无疑问的是,系统会死水一潭,如果在动荡非常厉害的区域,则又会产生过多的混乱,无法形成组织,正是在这个又有足够的灵活性产生相互的交互和新的元素,同时又不至于过于混乱的区域,组织就会浮现出来。从某种意义上我们可以感觉到,人类的出现,社会组织形态的出现等等,都遵循着这个法则。而且,正是因为所有的组织出现,新的更强大的组织的出现,都有赖于系统的互动、反馈以及变迁,所以,我们从根本上要热爱变化,正是变化产生了我们这个世界,以及生命本身。
要想复杂系统顺利地演化,需要遵循一些基本的原则:
1,在变化中演进;
2,鼓励自下而上提出规则、建立规则
3,睁大眼睛,注意观察
回到谈SOA上来。SOA要处理的系统场景中,各个系统交互影响。如果已经有N个系统,增加一个系统到场景中,产生的影响绝对不是N+1。这就典型地体现了复杂系统的情况。而SOA方法论中最重要的一些组成部分就是这些原则的具体体现。
首先,《SOA实践》作者在书中反复强调,建立SOA是一个演进的过程,“你买不来SOA”。为什么?买来的一揽子软件包限制太多,而且基本上软件商的目的是绑定你,所以,一旦上了某个软件商的战船,恐怕就很难再进行自由的演进。越是号称一揽子的东西越是如此。而复杂系统需要不断变化,需要快速采取不同方案,不断调整,不断地进行高自由度的演进。买来的SOA很难给你提供这样的对变化的适应性。
所谓自下而上地建立规则,指的是这样一种情况。在研究复杂科学的过程中,人们发现了一条有趣的规律:有些看似复杂的群体行为,其实只要一些简单的,自下而上的规则就可以得到实现。这里最关键的是“自下而上”这几个字。对于这一点,最有说服力的解释是电脑模拟群鸟飞行的程序。我们通常会看到鸟群和鱼群的行为非常复杂,但似乎总能得到精确的控制。在电脑模拟中,通过几条简单的规则,让每支鸟都根据旁边鸟的行为来做出反应,结果鸟群的行为得到了很好的模拟。试想一下,如果我们不是建立“从下而上”,而是建立“从上而下”的规则,先规定群体行为,再分解到每支鸟的行为,那么整个规则体系会非常复杂,而且无法模拟出所有情况。更严重的是,一旦出现任何意外情况,系统就无法处理了。让这些自下而上的规则发生作用,而且进行演化,就可以浮现出群体的组织,突现出结构来。
当然,这绝非说建立SOA的规则会非常简单,而是这种自下而上的方法论非常重要。事实上,在《SOA实践》这本书中就提到了建立SOA的两个基本方向——自下而上和自上而下,并且建议说最好采取自下而上的方式,从一个SOA先驱项目开始整个SOA的建立过程。
至于说“睁大眼睛,注意观察”,则体现在SOA的监管上。为什么对复杂系统要注意观察?因为复杂系统的建立和演化是个不断变化的过程,需要不断地根据环境的反馈作出调整。SOA正是如此。SOA的建立是个动态变化的过程,所以要随时留心SOA景观的变化和发展情况,不断作出调整。
嗯,此处的泛泛之谈也有神游太虚之嫌。不过要提供技术细节,不是几千字可以办到的事情,Nicolai M. JosuttisSOA实践》中花了小20万字说这些细节(该人曾写《C++标准库》和《C++模板》,技术功底雄厚)。喜欢技术细节的,等《SOA实践》出来后去看吧。
分享到:
评论

相关推荐

    执行SOA——SOA实践指南

    **执行SOA——SOA实践指南** 在信息技术领域,Service-Oriented Architecture(SOA,...通过阅读"执行SOA——SOA实践指南",IT专业人员能够获取宝贵的SOA设计和实施经验,为构建灵活、可扩展的企业级系统提供指导。

    SOA实施方法论及流程介绍.pptx

    **SOA实施方法论概述** 服务导向架构(Service-Oriented Architecture, SOA)是一种设计原则,用于构建灵活、可重用和松耦合的软件系统。它通过将应用程序的不同功能封装为独立的服务来实现这一目标。以下是SOA实施...

    SOA架构方法论

    简介了规划、建模、工程、衡量、信息、治理等多个子方法论,涵盖了SOA规划与实施的各个方面

    SOA治理——框架和最佳实践

    它必须能够将SOA投资与企业的商业目标及计划紧密相连,并降低与SOA相关的风险,同时还需要与组织的整体IT治理框架相融合。Gartner集团的战略规划假设表明,在2010年之前,缺乏有效的治理机制将是SOA项目失败的最常见...

    解读SOA :SOA实践方法论

    资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 一个现象 -SOA正在被企业迅速接受 -选择SOA的理由 SOA的方方面面 -什么是SOA?-怎样切入到SOA? -采用什么样的开发流程? ...

    流动的城市——SOA策略、方法及实施案例

    ### 流动的城市——SOA策略、方法及实施案例 #### SOA与城市规划管理的类比 在探讨SOA(面向服务的架构)时,将其与城市规划管理进行类比,不仅是一种形象的比喻,更是揭示了两者之间深层次的联系。城市规划管理...

    基于SOA的信息系统实施方法论研究

    IBM、Oracle、微软、普元等主流IT企业都提出了自己的SOA实施方法论。这些方法论通常涵盖了从系统规划、设计、开发、部署到运维的一整套流程。本研究主要分析并比较了上述主流厂商的SOA实施方法论,并基于此,提出了...

    SOA方法论

    SOA方法论

    SOA实施方法论.pdf

    Oracle SOA实施方法论,内容比较全面,具有参考意义,值得拥有。

    SOA探秘——BEA

    **正文** SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计和构建的...通过深入学习SOA和BEA的相关知识,开发者和IT专业人员可以更好地理解和构建面向服务的解决方案,以适应不断变化的业务需求。

    SOA解决方案——BEA的SOA解决方案,绝对经典!

    **SOA(Service-Oriented ...通过《SOA解决方案——BEA的SOA解决方案》这份PPT,读者可以系统地学习到BEA的SOA实施策略和技术,这对于理解SOA的理论框架,以及在实际工作中构建和维护SOA系统都是非常有价值的。

    Oracle SOA 套件——Oracle BPEL 流程管理器

    面向服务的架构(SOA)是一种设计和构建软件应用程序的方法论,旨在通过模块化的服务组件来支持业务流程。这些服务组件能够被重用,从而促进不同应用程序之间的集成与交互。SOA的主要优势在于其灵活性和可扩展性,...

    基于SOA的IT架构规划

    SOA(Service-Oriented Architecture)是一种设计和实现企业应用系统的方法论,其核心思想是将应用的不同功能模块抽象成服务,通过标准化的接口和协议进行交互。这种架构强调服务的重用性和松耦合,使得企业能够更灵活...

    从IP网到SOA网络—— 网络是整合的必由之路

    【网络整合:从IP到SOA的演进】 在信息化发展的历程中,网络技术的演进扮演了至关重要的角色。从早期的IP网络到如今的Service-Oriented Architecture(SOA)网络,这一转变体现了信息技术从单一通信工具向全面整合...

    SOA架构方法论培训讲义

    总结起来,SOA架构方法论是关于如何系统地设计、实施和管理面向服务的系统,它强调了业务和IT之间的紧密协作,以提升企业敏捷性、降低复杂性并增强业务灵活性。通过规划、建模、工程、衡量和管控等步骤,企业可以...

    金蝶SOA企业IT架构解决方案-全面版.pptx

    在实施SOA的过程中,金蝶采用了TOGAF(The Open Group Architecture Framework)SOA方法论,这是一种广泛认可的架构开发框架,可以帮助企业规划、设计、构建和治理SOA架构。TOGAF提供了一套系统的方法论,确保SOA...

    SOA方法论-SOMMA范例

    **SOA方法论-SOMMA范例** **一、什么是SOA** Service-Oriented Architecture(面向服务架构...通过深入理解并应用SOMMA方法论,企业能够更好地实现SOA的潜力,构建灵活、可扩展的IT架构,以适应快速变化的业务需求。

    SOA实施方法论概述.pptx

    Oracle提供了其SOA成功方法论,该方法论包括以下几个关键步骤: 1. 计划:评估公司目标和业务驱动力,定义SOA业务场景,进行成熟度评估,并规划SOA路线图。 2. 物理设计:设计SOA参考架构,确定服务设计和发现的最佳...

    SOA开放标准大观园——架构的导航

    SOA(Service-Oriented Architecture,面向服务的架构)作为一种设计和实现软件系统的方法论,近年来在信息技术领域引起了广泛的关注。SOA的核心理念是通过一组松耦合的服务组件来构建应用,这些服务组件通过标准...

Global site tag (gtag.js) - Google Analytics