在设计面向服务架构(SOA)时,应用架构师最常犯的两个错误是什么?据Arnon(Manning上的《SOA模式》一书的作者)说,低水平的粒度和高水平的理解,在面向服务设计中是两个最常见的弱势。
“人们易于把服务粒度弄错。他们不是把它做的太大就是太小。”建立适当的粗粒度,但又不是太大的SOA组件不应该是遥不可及的,同理,Rotem-Gal-Oz认为温故可以知新。“对于SOA开发你需要一种金发(Goldilocks)方法,这种方法使你创建的服务既不太大也不太小,”他说。
Nanoservice反模式
《SOA模式》一书中,在谈论nanoservice反模式时,Arnon Rotem-Gal-Oz解决了更小的粒度问题。“nanoservice是一种反模式,此模式中服务是细粒度的。Nanoservice是一种服务,其开销、通信、维修等远大于其效用。创建Nanoservice,经常伴随着一些错误的假设:宽带是无限的,数据分组运输成本是零,这会导致性能问题、支离破碎的逻辑,以及创建出凌驾于使用性之上的,有修复性问题的服务。”
另外还有些什么是可能无处不在的、一定需要软件开发团队处理的问题?
显然,这是对修饰SOA的基本原则和概念的根本性误解。“甚至更严重的一个问题是对什么是SOA的误解,”Rotem-Gal-Oz说。许多组织错误地认为,如果他们打算开发web服务,那么他们就必须服从于SOA,但事实远非如此。
探索SOA模式和反模式
使用Servlets、Struts或是平平无奇的老旧Java代码创建紧密耦合应用,就像创建紧密耦合服务一样容易。开发SOA方法的关键部分是,创建松散耦合组织,使之把服务边结在一起成为可能,并在某种程度上创建出新的业务流程,Rotem-Gal-Oz说。
在Rotem-Gal-Oz的《SOA模式》一书中,讨论了三种额外的反模式服务,以及先前提到的nanoservice反模式,即结反模式(knot antipattern)、事务集成反模式和相同的老方式反模式。
开发面向服务架构一直都富有挑战,即使是最有经验的架构师和开发人员也如此。但是对于每一个有经验的开发人员来说,都有一位有抱负的设计师,给了他们在分布式计算世界里小试牛刀的机会。为了确保分布式系统,组织要进行架构时,尽可能避免问题,Arnon Rotem-Gal-Oz的见解要铭记于心,随着开发人员正努力地学习SOA设计的基本原则,这包含要找出开发组件的金发方法,它的大小要适当。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
购买应用集成工具可以采取平衡做法
购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。