当为一个企业创建一个Web服务或者一个完全的面向服务架构的时候,有些时候最简单的事情就是编代码了。将会面临的更大的困难是如何就每一个服务的提供者和消费者之间具体能够做什么达成一个契约。 为了解决这个问题,一个新的融合考虑了Web服务和SOA的因素的一个想法出现了,这个想法被称之为服务契约。尽管它还没有得到广泛的使用,但是有许多人相信最多数的Web服务最终都会涉及到一个服务契约,或者至少当在Web服务在商业合作伙伴之间正被创建的时候是这样,而不是为了一个企业的内部用户。
在一个两部分的专栏的第一部分里面,我们将会看看什么是一个服务契约,并且它是不是真的需要。在下一个专栏里面,我们将会看看一个契……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
当为一个企业创建一个Web服务或者一个完全的面向服务架构的时候,有些时候最简单的事情就是编代码了。将会面临的更大的困难是如何就每一个服务的提供者和消费者之间具体能够做什么达成一个契约。
为了解决这个问题,一个新的融合考虑了Web服务和SOA的因素的一个想法出现了,这个想法被称之为服务契约。尽管它还没有得到广泛的使用,但是有许多人相信最多数的Web服务最终都会涉及到一个服务契约,或者至少当在Web服务在商业合作伙伴之间正被创建的时候是这样,而不是为了一个企业的内部用户。在一个两部分的专栏的第一部分里面,我们将会看看什么是一个服务契约,并且它是不是真的需要。在下一个专栏里面,我们将会看看一个契约里面应该包含一些什么东西?并且如何把一个契约构架起来?
什么是服务契约?
当我提到一个服务契约,我不是在谈论一个实际的法律文件。你不用担心,不会涉及到任何的律师的。
实际上,服务契约对一系列的技术数据和可能的商业信息进行了具体的规范。这个契约是间于任何的Web服务提供者和任何的服务消费者之间的。对于最简单的情况,契约 提供了关于一个服务被提供者创建的一些细节。通过同意契约,双方都能够在实际的编码进行之前就确定知道什么东西将被提供,
“一个服务契约就是一个关于服务的元数据的集合,并且有很多它可以操作的层次。” Infravio的技术和标准部副总裁Miko Matsumura解释道:“你可以有一个类似Microsoft .NET Indigo服务栈这样的在系统内部的低层次的契约,从而可以表达你是如何交流的和交流的期望的目标是什么?”
他接着说,但是低层的契约并不是像Infravio称之为“服务递交契约”的高层的契约那样重要。
高层的契约要远远的重要的多,他说, 特别地因为这些契约经常性的涉及到商业牵连,而不只是技术牵连。例如,一个契约也许包括一个服务如何被认证的细节,和具有关于认证,加密和授权的细节。它也可以包含服务层次协议(SLAs)。同时它也可以包含商业信息,包括计帐,测量和监管将如何开展。
这些契约正在提供服务的企业非常重要,Matsumura说,因为它允许一个公司创建一个单独的服务,然后通过为每一个消费者简单地创建一个契约,就可以把这个服务卖给许多不同的消费者。这使得公司销售他的服务非常的容易。
例如,一个企业可能提供一个服务,但是也许对更快地响应一个用户,需要对他收取更多的费用。或者它也许会为更好的稳定性而收取更多的费用。因此企业可以和消费者之间为这个服务签订两个分别不同的契约——一个是为那些需要更高层次的服务的原意付出给多费用的公司,另外一个就是为那些不愿意付出这么多费用,并满足于更低层次的服务的公司。
“关于这个想法很强有力的一点是你以元数据的形式描述了服务的定制的方面,并且元数据使得它相比你陷入这个服务本身的限制中去的情况下更加容易的被配置。” Matsumura解释道。
通过包括进来契约中的信息而不是服务,这些服务之需要被创建一次。和另一个不同的合作者使用这个服务,只需要修改契约。这使得可以以一种轻松有效的方法快速的布置服务。
如果这些听起来都抽象,让我们举个由Matsumura提供的例子。我们举一个电讯提供商想要通过使用一个能够产生麻烦的票据的接口,订购进入,记账以及综合的方式为广泛的消费者提供网络服务。它可以通过创建一个服务来做这些,同时为不同的消费者基于每一个消费者的商业和技术的需求来创建不同的契约,
因此一个大型的飞机制造厂商也许想用SAML标志来鉴别用户,而其他的消费者也许希望可以用其他的不同方法来鉴别。这些都将在消费者的契约中有明确的细节的。也许一个州立大学比一个飞机制造厂商需更低层次的服务需求,因为大学不能为更高层次服务付得起那么多的费用。这些也在每一个契约里面都有详尽的说明的。
契约是实在的吗?或者说它是需要的吗?
关于这些种类的契约是否必须,现在仍然还没有一个统一的认识。IBM 全球服务的Web 服务和SOA部的副总裁Michael Liebow指出:“我们还没有看到这种类型的契约出现。”
原因是什么?“我们见到的大多数的Web服务都是在可信任的内部网络之上的,而不是和外部的合作者,所以一个契约不是真的需要的,”他解释道:“我认为现在对它而言仍然过早了,因为需要的生态系统还没有演化出来。”
他说相反的WSDL 在今天替代了服务契约被广泛的使用。“契约的需求将会随着市场的演化而到来的,并且在他们被需要之前有许多事情将会发生。”他总结说。
但是在Matsumura看来,这些契约是极其重要的。实际上,他说:“当你把SOA看作一个在你的商业中能够发挥实际的影响的东西的时候,你就需要开始考虑契约了,契约现在是一个热门话题,因为人们都正在看到契约可以影响到提供的商业服务。”
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。