Gartner似乎就是这样一个组织,它总能不断地创造出一些深深影响到整个IT界的全新概念,无论是ERP还是SOA,它牢牢地把握住了IT技术的最新脉搏并以此引领人们迎来一场又一场软件革命(尽管这也通常伴随着概念论战)。
显然,从名校耶鲁毕业的Nick Gall是一个十分有Gartner风格的人。身为Gartner的副总裁及资深分析师,同事眼中的他热爱工作、充满智慧,总是能冒出各种新鲜而深刻的念头,同时又是一个难得的好领导。而作为技术和网络爱好者,Nick又活跃异常,无论是在博客、SNS社区,还是Twitter,他总是以独到的见解和分析影响着一位又一位读者。
即便是如今在IT行业内已经普及多年的SOA,我们仍能听到来自各方不同的声音,而自2005年Nick Gall在一次会议上首次提出了全新词汇“WOA”后,关于WOA的争论更是层出不穷。2008年底,Nick Gall与另两位Gartner分析师共同发表了《WOA备忘录》,希望人们能够更加明晰WOA的定义并能加以应用。为了更好地了解WOA的“真相”,《CIO INSIGHT/信息方略》记者采访了Nick Gall,以下是经过编辑的对话。
CIOI:你最初提出“WOA”这个概念的时候,初衷是什么?
Nick Gall:最初提到这个词是在2005年一次讨论网络架构应用和A2A(即air to air,在电子商务中,A2A是B2B2C的基础,编者注)一体化技术的会议发言上。事实上,在此之前,W3C(万维网联盟 World Wide Web Consortium)推荐的标准AWWWv1(Architecture of the World Wide Web,Volume One,万维网架构,第一卷。编者注)里,就对网络架构进行了定义。可即便W3C完成了定义的表述,实际上人们对于Web架构和如何进行一体化架构依然存在争议,而且这样激烈的争论会一直伴随着网络的不断发展。因此,无论是提出这个概念,还是之后Gartner发布的WOA备忘录,目的都是希望能够清楚地表述网络架构的原理、限制、性能、实践等概念,来帮助人们对网络和A2A一体化有一个比较清晰的认识。
CIOI:很多人喜欢把WOA和SOA等概念来做比较,你就提出过这样一个公式:WOA=SOA+WWW+REST。那么这个公式我们应该如何来理解?
Nick Gall:我一直在强调,WOA是SOA的一种风格,而且这种风格的基础是,有一个全球性的组合型网络。而且,要实现全球性网络效应,就必须实现5个基本的接口限制:即资料的甄别、资源的操控、自我描述性信息、把超媒体作为应用程序的动力,以及应用中立。
要充分了解WOA,首先我们要明白WOA如何来影响网络,并作为一个A2A架构来服务的。我们必须了解最基本也是最重要的架构设计原则:一般性原则。AWWWv1中曾提到了这个一般性原则,但是并未做出解释。这里,通过那篇备受关注的Roy Thomas Fielding的论文《架构风格和基于网络的软件架构设计(Architectural Styles and the Design of Network-Based Software Architectures)》我们可以借鉴其中REST(REpresentational State Transfer)的相关定义。
此外,由于AWWWv1中强调的其他一些架构限制也并未涉及到REST,所以,在我们对WOA的定义当中,充分利用了两方面的资源,来尽可能完善对于网络架构限制的描述。其实“WOA”这个词本身的意义并不大,我们发现,REST、Web、WOA甚至ROA(Resource-Oriented Architecture基于资源的架构),它们在概念上的相似处更多于不同。所以说WOA只是一个用上去比较不错的词而已,我们的目标是关注如何来概括这些关键性的通用接口限制,而不是概念上的细小差异。说到底,WOA的本质是通用接口。
CIOI:很多人也疑问,无论是来源还是表现形式,WOA与REST颇为相似,那么为何最终是选择用WOA来表述这种通用接口呢?
Nick Gall:这有几方面的因素。首先,作为SOA的一种风格,它包括SOA的基本特点:模块化、可分布、可描述、可共享、可重用和松耦合。另外,大多数人依然认为,网络架构不仅仅是指用户界面的架构,在这个基础上,很多人又觉得,网络架构和SOA是相互冲突的,虽然事实上WOA是SOA的一种风格。再者,虽然REST被用来当做网络设计的关键指标,但从技术上来说,REST是相对独立的,而且某些REST的限制在网络发展的同时可能被放宽。这使得这样一个接口限制中的通用性会有所影响。而另一个原因则是因为,如果要Gartner来使用“网络架构”、“REST”、“基于资源的架构”进行描述的话,还是存在一定困难的,因为这些词汇发明者本身可能都不能认同他们之间存在重叠部分。
CIOI:那要把握好WOA这个概念需要掌握哪些要素呢?
Nick Gall:简单地来说,主要是8个层面:第一,WOA的几个特点都表明,它是SOA子风格的一种;第二,从用户和系统层面角度来说,原则上,用户可以通过界面,应用程序可以通过API,来对WOA进行运用;第三,WOA的实现需要通过一个全球综合型网络,程序和超媒体API数据之间,用户和超媒体界面文件之间,都需要互动;第四,WOA是基于网络的架构,它来源于REST和AWWWv1的一些内容,但又和他们有所区别;第五,WOA架构模式下强调接口的通用性,最为通用的接口正是那些运用最为广泛的借口,尤其是在应用中立方面;第六,在用户界面和API方面,WOA的应用为了尽可能地减少人工处理效果和程序处理效果的区别;第七,由于WOA具备的高度共享性,WOA最终是为了达成全球范围内的网络效应;最后一点则是上面提到的五个接口限制。
CIOI:在SOA面世以后,受到的争议非常多,那么作为它的一种子风格,WOA的缺陷又是什么呢?
Nick Gall:关于SOA的争议,其实还是源于其应用带来的最终效益,不过人们对这样的架构模式已经持认可态度。WOA标志着一个全新的、不为人们熟知的设计风格。相比之下,它比SOA来得更加简便,在减少成本和提高灵活性方面,WOA也能更加容易实现,不过由于其新生事物的本性,目前来看,它还缺乏在不同需求下运行的经验。
CIOI:目前美国国内对于WOA的看法如何?美国企业对WOA的应用情况又如何?
Nick Gall:我们在2008年时曾经针对SOA向企业做过一些调查,我们发现,有87%的企业,他们有一部分WOA服务已经到位,有13%的被调查企业表示,他们75%以上的应用服务都是以WOA为架构风格的,而主要选择REST或者POX的用户的百分比仅仅占到13%。
CIOI:那么在未来,WOA下一个发展趋势又是什么?WOA和云计算之间的关系是怎样的?
Nick Gall:从目前的运用状况来看,我个人认为,WOA很有可能会成为云计算的主流架构。WOA自身也将继续推动Web应用向前发展。
CIOI:既然WOA在未来会承担如此重要的责任,那么作为企业的CIO应该如何有效地运用WOA的架构呢?
Nick Gall:CIO要关注的,并非是具体的技术问题,挑选怎样的接口标准应该是技术人员份内的事。换言之,如果只关注技术问题,这个CIO是失败的,CIO需要明确的,是IT项目是否能够真正为企业带来效益,如果一段时间过后这些项目并没有发挥预期的目的,那么不管技术有多先进,都应该舍弃。于WOA而言,共享和松耦合这两个目标并不是说买了几个技术就可以实现的。CIO应该关注的是实现共享与敏捷性所需的架构以及弥补缺陷的不同方式。