本周SOA模式:Façade服务

日期: 2009-02-05 作者:Thomas Erl翻译:杨君 来源:TechTarget中国 英文

当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度,这样一来每个服务都可以不受羁绊,更好的得到发展。实现理想的松耦合程度,一直是设计中讨论的议题,议题通常是围绕服务合同和依靠服务合同的用户编程展开的。   对于服务设计师来说,在服务实现内部还是有机会建立抽取中间层的,这个过渡层可以帮助减小其内部活动部分的耦合程度以便调节服务本身的演进和治理。这些中间抽取层是由Façade服务应用所创建的,该设计模式关注服务的内在设计。

  设计服务时,你还要留心几个耦合类型:合同与逻辑耦合,例如,该耦合会生成一个服务合同,而服务合同源自底层服务逻辑 (因此会产生依赖性),一旦逻辑……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度,这样一来每个服务都可以不受羁绊,更好的得到发展。实现理想的松耦合程度,一直是设计中讨论的议题,议题通常是围绕服务合同和依靠服务合同的用户编程展开的。

  对于服务设计师来说,在服务实现内部还是有机会建立抽取中间层的,这个过渡层可以帮助减小其内部活动部分的耦合程度以便调节服务本身的演进和治理。这些中间抽取层是由Façade服务应用所创建的,该设计模式关注服务的内在设计。

  设计服务时,你还要留心几个耦合类型:合同与逻辑耦合,例如,该耦合会生成一个服务合同,而服务合同源自底层服务逻辑 (因此会产生依赖性),一旦逻辑发生改变,合同也会相应做出改变。

  通过在核心服务逻辑和服务合同之间创建中间处理层,Façade服务就可以帮助我们避免这些情况的发生。Façade准许服务合同与底层逻辑保持去耦关系,因此可以帮助避免修改核心业务逻辑。这对功能改变和性能改变都适用。性能变化可能是因为实施服务重构模式所引起的(通常是偶然的)。Façade会对内部改变做出补偿,这样就没必要改变服务合同了。因为合同中的功能性能没有受到影响,在两种情况下,服务会在内部得到演进,同时现存的服务客户也会免于任何负面效益的影响。

  该模式的实施过程中,还有一种情况可以得到有效控制。核心服务逻辑的单个实体要求多个合同(这种情形和另一个叫做Concurrent Contracts的模式有关)。在这种情况下,对应每个服务合同都会创建一个Façade服务组件,这样可以保证从合同层中抽取出核心服务逻辑。这样就可以避免为了适应不同的合同增加或者扩大核心服务逻辑,并且当逻辑收到功能变化和影响或者受制于性能补偿时,还能进一步利用前面所提到的功能收益和性能补偿。

  Façade服务模式会产生一个带有明确抽取层的完美服务架构,但是随着服务逻辑物理分配的增加,在这之前还要进行额外的数据处理。服务逻辑分散性的增强也可以看做是服务设计的复杂性在不断增加。切记,处于façade层的逻辑可以帮助减轻这些问题所带来的影响。

  总体来说,尽管该服务模式的实施会使服务内部的数据处理职责得到有效分离,由此所得到的庞大管理收益能够适应服务长期发展,并巩固与服务客户计划的关系。

  本周SOA模式所包含的原创内容和独家观点全部出自SOAPatterns.org社区网站以及“SOA设计模式”(Erletal.,国际准书号: 0136135161,Prentice Hall出版社,2009)一书的所有作者和撰稿人的辛勤努力,该书最近的标题叫做“Prentice Hall Service-Oriented Computing Series from Thomas Erl(www.soabooks.com)2009版权所有SOA系统公司。

相关推荐