CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

服务需要加以区别保持差异性吗?

作者: Ronald Schmelzer,  出处:TechTarget, 责任编辑: 叶江, 
2006-11-28 09:50
  在SOA的所有核心原则之中,大概最基础的就是服务提供者和消费者之间的松散耦合关系.SOA的核心灵活性和重用优越性依赖于服务提供者和消费者在用于描述交互的服务合同条款框架内各自独立运作的能力,并且,对于一个特定的SOA来说,至关重要的是不能为其能力和行为加入非必要的要求或限制,因为无论是服务提供者和消费者都可能随时间而改变。

  不久前我看过一部电影<<幸福终点站(The Terminal)>>, Tom Hanks所饰演的主角被迫生活在一个机场,因为他是一个无国籍的人,他的国籍不被承认是因为就在他去美国的路上他的祖国解体了,他的国家不再存在了.当然,我想这只是一个编剧为了抓住观众的心而想出的新情节,以为它只是一个喜剧而以.然而事实上,这部电影是以Merhan Karimi Nasseri的真实生活故事为背景的,因为法国的移民问题还有他不愿回到他的祖国伊朗的原因,他在巴黎的戴高乐机场生活了将近二十年.本质上说这件事和面向服务没有任何关系,但是这件事使我想起一个问题,那就是有人近期在一个研讨会上提到的关于SOA的问题:服务需要保持差异性吗?

  在SOA的所有核心原则之中,大概最基础的就是服务提供者和消费者之间的松散耦合关系.SOA的核心灵活性和重用优越性依赖于服务提供者和消费者在用于描述交互的服务合同条款框架内各自独立运作的能力,并且,对于一个特定的SOA来说,至关重要的是不能为其能力和行为加入非必要的要求或限制,因为无论是服务提供者和消费者都可能随时间而改变。

  无差异性原则对于松散耦合的需求来说是十分必要的。毕竟,一个服务要通过消息传递为软件提供接口。不存在一种与对象实例类似的服务实例的表示方式;相反地,服务只是简单的停在那里,和他的每个访问者通信。更具体的讲,既然SOA包括了独立实体之间通过服务耦合进行的互操作,我们只需要在服务之间传递消息和数据就可以了。这些松耦合的、异构的、复合的应用程序要求所有的服务必须是无差异性的,以保证他们不会将自己的系统或进程地信息暴露给外部从而增加了系统的耦合度,那会导致可重用性和可用性的下降。

  将不同服务组和在一起的原因是要实现商务流程,而这些流程必定是有差异性的,毕竟,一个进程的不同实例可能处在不同的状态。于是如何利用无差异的服务实现有差异的事务逻辑就变成了十分重要的挑战。如果实现方式不对将会失掉由无差异的服务带来的松耦合的好处。

  在SOA中维护差异性信息

  Wikipedia 是这样定义“差异性”的:这样的差异性保留了过去的信息,如一个用户记录或购买事务,并且差异性反映了系统从起始到当前时间的所有变化过程。在这个“差异性”定义的基础上,出现了许多关于另一个概念“计算”的定义:从一个状态到另一个状态的转变以及他们之间转换发生的条件。对于一个进程来说,差异是十分重要的,因为如果没有差异性,我们的系统将没有任何历史可供积累。实际上,我们开发的大部分系统,要么是记忆差异,要么对差异进行操作。进一步来说,各个公司都需要之前的状态来从某种错误的更新状态中恢复。最要紧的是没有前一步的状态记录,我们做到任何的可靠交易,因为无法在发生问题的时候进行回退。

  因此,既然差异性对于一个信息系统如此之重要,那么为什么不把差异性的表示和维护功能包含在SOA中呢?回答这个问题的关键,在于充分了解差异性信息在一个松耦合的系统中是需要被共享还是独立在各个服务中。

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i