`
softstone
  • 浏览: 477761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

请 WOA 到一旁“休息”去

阅读更多

2005 年底,著名 IT 分析机构 Gartner 的一个分析师 Nick Gall 发明了一个新词 -- WOA (Web-Oriented Architecture) 。大家知道,发明新缩写字 (acronym) 一向是 Gartner 的绝活。几个月后,SOA 界著名的 blogger 和专栏作家 Dion Hinchcliffe 对它表示支持,他甚至画了一幅图,说明基于 SOAP 和 WS-* 的 Web services,和基于 REST、POXJSON 的 WOA,以及其他 SOA 相关科技,在复杂度和丰富程度上的比较。

本以为 "WOA" 的命运,差不多已经和先前广遭声讨的 "SOA 2.0" 一样,开始消声匿迹,但最近在一片大谈 REST 声中(前两篇帖子的主题),发现 WOA 已死灰复燃

到底什么是 WOA?来看看始作俑者是怎么定义的。Nick Gall 在评论一篇同事的 blog 时为 WOA 下了以下的定义

Shorthand version: WOA = SOA + WWW + REST
精简版:WOA = SOA + WWW + REST

他接着说:

BTW, Since WOA is a substyle of SOA (ie it imposes additional constraints above and beyond those imposed by SOA), you may be interested in our definition of SOA:
附带一提,因为 WOA 是 SOA 的一种子样式(也就是说,它在原本基于 SOA 的制约之上,还多了些额外的限制),你可能也会有兴趣看看我们对 SOA 的定义:

Service-Oriented Architecture:
面向服务架构:

Long version: An architectural style in which certain discrete functions are packaged into modular, shareable, distributable elements ("services"), which can be invoked by consumers in a loosely coupled manner.
冗长版:一种架构样式,将某些特定的功能包装成模块化、可共享、可发布的元素(即“服务”),这些服务可以被消费者以松耦合的方式调用。

我想信他所谓的“SOA + WWW + REST”并非如算数的加法(联集),而指的是必须兼具 SOA、WWW,和 REST,是交集。但以上这些定义,真把 WOA 说清楚、讲明白了吗?

正因为Web是个偌大的空间,加上所有在上面不断发生的事,使得 “Web”成了一个非常大而模糊的概念,许多对技术不娴熟的用户,更是常把 “Internet”和 “Web”混为一谈。一个很经典的例子是“Web 2.0”这个已存在两年的词汇–恐怕到现在,许多人对到底什么是“Web 2.0”,仍存在着不尽相同的理解和看法。炒作 “WOA”,一个“面向Web的架构”,有着同样的问题,因为 Web 概念太宽了,到底什么是它的核心精神?扯不完!Web 2.0 相关科技 (AJAX, mashups) 能不能算是 WOA?那PHP, Ruby on Rails, Perl, Python 开发的 Web 应用呢?JSP、ASP 的应用呢?SaaS (Software as a Service) 应用又算不算 WOA?如果按照 Nick Gall 的定义,所有的 WOA 都必须符合 SOA,但不见得所有SOA 都是 WOA;还有一个关键是 REST。有人可能会抗议地说:凭什么只有 RESTful 和面向服务的算是 WOA?!凭什么说走 HTTP 的 SOAP Web services就不是 Web?争议的根源,正是在于 “Web”所涵盖的面太广了,大过 SOA 所在的企业计算领域。所以如果反过来硬要把 WOA 局限定义成 SOA 的子集,绝对是招引争议和混淆的好方法。如果目标是提倡 REST,那么先前帖子中提过的面向资源的架构 ROA (Resource-Oriented Architecture) ,是一个比 WOA 更适合的名称。“资源”和“服务”是两个更适合相提并论的抽象概念,并且“资源”充分地凸显出 REST 的设计哲学。

嗯... WOA... 反覆思索后,还是感觉它的概念很虚。乍看之下,看似是一个和 SOA 互别苗头的新架构,但主张者又强调,它是一个 SOA 的子集,是实现 SOA 的一种特殊的 style。无疑地,如前两篇帖子所谈,REST 的确是个好东西,可以利用在某些 SOA、SaaS,和 Web 2.0 领域的应用,但如果硬要搞出一个 WOA 并把它和 SOA 的关系扯复杂的话,可预见未来在许多企业的 SOA 发展史上,将应验两千多年前孔老夫子已预测到的情节:“名不正(某大大炒作出一个 "WOA" 的词),则言不顺(但仔细检验后,其实概念很虚);言不顺,则事不成(用 REST 做了一堆点应用 [point solutions],便洋洋得意以为已经是 SOA 化,其实差得远了);事不成,则礼乐不兴(没有规规矩矩从 SOA 方法论入手,分析企业战略目标、业务架构、信息架构等,做完善规划);礼乐不兴,则刑罚不中(SOA 治理 [governance] 不到位,未能清楚定义执行战略和可量化的评价指标,因而无从得知 SOA 执行的效果和投资回报);刑罚不中,则民无所措手足(end users 感觉不出来 所谓 "SOA" 的项目和做法比过去传统作法有何高明之处)。

聪明的 SOA 治理团队和架构小组,无疑会开始探索 REST 之美,并把它善用在架构当中,但不会迷失在 WOA,或无谓的 SOAP vs REST 之争当中。选择 REST 绝不是基于“为了 REST 而 REST”。

不久前听到 "JBOWS" (也有人用 "JBOS")一词,它和 RedHat 的 JBoss 没有直接关系,尽管发音相近。这是个讽刺搞笑的说法,代表 "Just a Bunch Of Web Services"。意思是说,目前许多已经采用了一堆 Web services 的企业,不等于已经做到 SOA,就像采用了 AJAX 不见得就具备 Web 2.0 精神一样。著名的 SOA 分析师 Jason Bloomberg 前不久才大声疾呼,用了不少篇幅强调这个重点(另一篇相关文章:SOA != Web Services)。基于 SOAP 的实现,是一种 Web services 的 style,而 RESTful 则是另一种 Web services 的 style。也就是说,Web services != SOA 的公式,放到 REST 的上下文中,依然成立。

正本要清源,擒贼要擒王。实施 SOA 的动机,应出自于加强 IT 和业务部门间的磨合,提高业务敏捷和未来应变的弹性和灵活性,而不是因为新冒出一个超酷、超简单,名为 WOA 或 REST 的技术实现手段。中文的老话叫“本末倒置”,新话叫“屁股领导脑袋”;而老外则有:“拖车放在马前面”"putting the cart in front of the horse" 一词。别告诉我:“你说的那种 SOA,是企业级的 SOA;而我们现在谈的,是比较广义的,很多用 REST 架构的 Web 应用,都可算是广义的 SOA,包括一些 Web 2.0 和 Enterprise 2.0 的应用”。如果是这样的话,那干脆把所有 IT 的东西统统叫 SOA 算了!大家对 SOA 本来就已经够模糊了,这么做,只会徒增混淆,火上浇油,而太便宜了那些炒概念的分析师。某个科技概念的价值,是会随着它的定义被灌水、扩大解释而锐减的。分析师大大和厂商们,请珍惜 SOA,别残害它。

分享到:
评论

相关推荐

    libsvm_svdd_woa_svdd_SVM_WOA_WOA算法_woa优化

    SVDD是一种监督学习方法,常用于异常检测和分类任务,它将数据拟合到一个最小的球形边界内,以此识别异常或离群值。 描述中提到"鲸鱼算法优化支持向量机,可用于类预测,测试可用",这意味着开发者利用鲸鱼优化算法...

    WOA_鲸鱼优化算法WOA_

    鲸鱼优化算法(WOA,Whale Optimization Algorithm)是一种基于生物行为模拟的全局...通过对“WOA”压缩包文件的学习和研究,我们可以深入理解这一算法的工作原理,并将其运用到实际问题中,解决各种复杂的优化挑战。

    WOA_WOA鲸鱼优化算法_WSO鲸鱼代码_论文代码_WOA_woa优化_

    鲸鱼优化算法(Whale Optimization Algorithm,WOA)是一种新兴的全局优化方法,灵感来源于鲸鱼捕食的行为模式。该算法由Abdul Rahim Naderi和Majid Sarvi在2016年提出,用于解决复杂的工程设计、组合优化和机器学习...

    WOA_目标优化_WOA_WOA算法_鲸鱼算法_参数优化_

    **鲸鱼优化算法(WOA)**是一种模拟自然界中鲸鱼群体行为的全局优化算法,由Mirsad Jovanovic于2016年提出。它借鉴了鲸鱼捕食和社交行为,如围捕策略、螺旋运动和随机搜索,用于解决多模态优化问题。在工程领域,WOA...

    WOA.zip_WOA_WOA灰狼算法_改进狼群_灰狼算法_狼群算法改进

    总的来说,"WOA.zip"提供的改进策略为灰狼算法带来了新的生命力,通过小规模多种群和杂交策略,提高了算法的全局搜索能力和适应性,对于科研人员和工程师来说,这是一个有价值的参考资料,有助于他们在实际工作中...

    WOA源码+注释+微修改版本+源论文

    WOA,全称为Whale Optimization Algorithm(鲸鱼优化算法),是一种基于生物行为的全局优化算法,灵感来源于座头鲸捕食策略。这个算法在解决复杂优化问题时展现出强大的能力,常用于工程设计、数据分析和机器学习等...

    WOA座头鲸算法_WOA鲸优化算法_WOA_鲸鱼算法优化_鲸鱼优化_鲸鱼算法_

    它是一种基于生物行为的元启发式算法,受到了海洋中鲸鱼捕食行为的启发,特别是它们群体协作的捕食策略。WOA的设计旨在解决复杂的优化问题,具有较高的搜索性能和收敛速度,对比传统的优化算法,如遗传算法(GA)、...

    WOA算法,woa算法缺点,matlab

    鲸鱼优化算法(WOA)也是一种元启发式优化算法。一种新的模拟座头鲸狩猎行为的元启发式优化算法(鲸鱼优化算法,WOA)。目前的工作与其他群优化算法相比的主要区别在于,采用随机或最佳搜索代理来模拟捕猎行为,并使用...

    cga80woa.fon

    总的来说,cga80woa.fon是Windows i386系统中的一个字体文件,对于系统的文本显示和兼容性至关重要。了解这种文件的作用以及如何管理和更新它,对于维护一个健康稳定的Windows环境具有重要意义。而提供的URL链接可能...

    WOA-VMD鲸鱼算法WOA优化VMD变分模态分解

    **WOA-VMD鲸鱼算法优化VMD变分模态分解**是一种结合了鲸鱼优化算法(WOA)与变分模态分解(VMD)的方法,用于对复杂信号进行高效分解和分析的技术。 **1. 鲸鱼优化算法(WOA):** - **定义:** 鲸鱼优化算法是一种启发式...

    WOA算法_WOA_WOA算法_鲸鱼_鲸群优化算法_鲸鱼优化

    鲸鱼优化算法(WOA)也是一种元启发式优化算法。一种新的模拟座头鲸狩猎行为的元启发式优化算法(鲸鱼优化算法,WOA)。目前的工作与其他群优化算法相比的主要区别在于,采用随机或最佳搜索代理来模拟捕猎行为,并使用...

    WOA.rar_WOA_matlab

    WOA是一种基于群智能优化算法,模仿了鲸鱼捕食行为来解决复杂优化问题。这种算法在工程、科学计算、机器学习等领域有广泛应用。 描述中提到的“WOA,new huatic way to get global answer”,意味着WOA作为一种新的...

    鲸鱼算法(WOA)优化变分模态分解(VMD)参数python

    鲸鱼优化算法(Whale Optimization Algorithm, WOA)是一种新兴的全局优化算法,灵感来源于鲸鱼捕食的行为。它由Majid Albatineh等人于2016年提出,适用于解决复杂的优化问题。WOA模拟了鲸鱼群体在寻找猎物过程中的...

    基于鲸鱼算法(WOA)优化径向基神经网络(WOA-RBF)的数据回归预测,多变量输入模型 matlab代码,优化参数为扩散速

    基于鲸鱼算法(WOA)优化径向基神经网络(WOA-RBF)的数据回归预测,多变量输入模型。 matlab代码,优化参数为扩散速度,采用交叉验证。 评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据...

    1WOA_WOA_鲸鱼算法优化_鲸鱼优化woa_鲸鱼优化_鲸鱼算法_

    鲸鱼优化算法(Whale Optimization Algorithm,简称WOA)是一种基于生物行为的全局优化技术,由Abdul Rahim Halim等人在2016年提出。该算法灵感来源于海洋中鲸鱼群体的捕食策略,尤其是它们的两种主要狩猎方式:围困...

    woa13_decav_t16mn04v2_wintertemp_heriom.m

    主要是WOA13数据的处理程序,处理WOA冬季平均表面温度的数据

    WOA.zip相关算法资源

    关于WOA鲸鱼群算法的完整代码,有需要的可以再Q,可以发送原理有关文档

Global site tag (gtag.js) - Google Analytics