企业应如何开发一个基于SOA的集成框架.docVIP

企业应如何开发一个基于SOA的集成框架.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
企业应如何开发一个基于SOA的集成框架

企业应如何开发一个基于SOA的集成框架 导读:几年前有个客户请我帮助他们更好的使用他们的集成层(integration layer)。自那以后我和我的团队一直在开发对其支持的框架。这是关于我们框架开发系列博客的第四篇,讨论它所提供的特性。上一次声明的,关于创建blocks,暂时延期。 关键词:? HYPERLINK /docms/api/klist/b2bdf0b82218bbd8ce7b6be741b96b93.html \t _blank 集成框架? HYPERLINK /docms/api/klist/91a06deac367418b9e80a9968cb8056b.html \t _blank SOA 几年前有个客户请我帮助他们更好的使用他们的集成层(integration layer)。自那以后我和我的团队一直在开发对其支持的框架。这是关于我们框架开发系列博客的第四篇,讨论它所提供的特性。上一次声明的,关于创建blocks,暂时延期。 目前为止,我已经讨论了关于开发活动的目标与挑战,但现在我想更多的关注于框架本身,以及它给那些使用它的程序带来了什么。 一旦一个参与方(可能是服务消费者或者服务提供方)连接到我们的框架,它能直接从我们提供的丰富的开箱即用的函数中获得好处。这些“通用特性”正是我们期待从一个(逻辑的)ESB获得的东西,它们部分的基于扩展的企业服务总线模式。 由于我们的项目是敏捷驱动的,特性仅在它们被需要的时候开发。有时候,经过设计和开发阶段,我们发现了一个更好的处理方法,有时候猜想到一个特性可能会发生的问题,会被以一种完全不同的,超越我们处理范围的方法解决。但最终我们成功的实现了大约20个特性,可以粗略的被分为五种类型:路由,健壮性,安全性,转换和数据存储。 路由 我们一个主要的目标是将消息从A传送到B,但不需要A知道现在B存在于哪里。为了做到这一点,我们对WEB服务地址(WS-Addressing)标准做了扩展使用。我们框架中的一个组件,路由服务,使用消息头部的信息去决定下一跳(hop)是什么(在这个案例中hop是另一个框架组件)。大多数时间里,一个消息在它进入集成层的时候被交付到后方,我们称之为简单路由。 然而,一旦需要执行一些特殊的动作时(比如像数据模型转换),消息会绕道到达某个不与外部世界联系的框架组件。我们将其归类为中间服务,它们对周围情况不知——这意味着它们没有任何线索,任何关于它们被调用的这个上下文的线索。消息继续它的路径所必须用到的信息,同样也是地址头部的一部分,这使之成为高级路由。 一种特殊类型的高级路由是分发,它通过以最基础的形式使用WEB服务通知(WS-Notification), 使得将一个消息在同一时间发送给数个订阅者成为可能。最后优先级路由是一个确保一个消息在其它消息之前的特性,这么说吧——当处理一个柜台边客户等待的服务,同时又有大量的负载正在处理,这个时候它是非常有用的。 健壮性 在投递消息的时候没有错误,或者至少能在它发生的时候处理那个情况(异常管理),显然这是极其重要的。当我们接收到一个消息时的第一件事情就是检查它是否符合我们实施的工业的和设计的标准(技术验证)。有时候消费者/发布者不想等待(函数式的)回答,但仍然想获得消息是否在技术上有效的信息,那种情形下我们给他发送一个说明那一点的响应(技术验收)。 我们有两个特性处理最大负载:限流保证了集成层只接收它可以处理的那些,而缓存保证了我们不会淹没于连接的应用。与第二个类似的是延迟交付,用在我们预先知道后台不可及的时候。 但目前这些类型特性中最重要的是担保交付。我们试验了双向的变化(使用服务可靠消息传递WS-RM)但最终选定了单向的实现,这意味着在我们发送消息之前我们首先是存储它,如果我们收到一个HTTP错误代码我们会再次发送它。 最后(实际上至少因为它很难被使用)具有对发送消息的句法校验是可能的。但正如我们喜欢遵循的波斯托定律(Postel’s law也称作健壮性法则),我们感到消费者有责任确保消息首先是有效的(你能够想象从我们的观点来说这需要一些推销)。唯一的例外就是载荷被框架改变的时候。 安全 每个想要连接到集成层的应用需要声明自己,通过使用WEB服务安全用户名令牌(WS-Security UsernameToken) (身份认证)的方式。 对我们暴露出来的大多数服务那已经足够,在极少数案例中,这种应用必须具有明确的许可(授权)。 不是说内部使用(只有在我们收到某个外部客户的请求时)就是可信的,我们要求消息头部和载荷的某个部分具有署名。 转换 假设不是所有的应用都连接到框架说同样的语言(如以前的博客中所提到的),明显有数据模型转换的需求——我们最常被使用的特性之一。一个不太普通的是分裂特性,它使得一个大的

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档