TechTarget中国网站推荐

异构SOA中的通知Web服务和EAI

2008-7-16  选择字号:  | |
打印本文章
正在加载数据...

  本文研究阈值警告通知的示例,阈值警告通知向消费Web服务 (consuming Web service) 发出警告,告之系统正在接近承载多重SOA所能承担的最大负载。在本系列的第8部分,您将了解Web服务如何跨异构SOA来使用、产生和代理通知。Judith Myerson还涉足过Subscribe-Publish for Web services白皮书和WS-Notification产品的文档系列方面的工作。

  引言

  在本系列的第7部分,我说明了在处理文本格式的大型Web服务时XML二进制优化打包(XOP)规范为何要比XML解析器的效率更高。我还说明了在多面向服务的体系结构(SOA)中如何将它们转换为更为简化的二进制格式。

  在本文中,我探讨了如何使用Web服务接收通知,如系统错误和阈值警告。我着重阐述了这些通知是如何影响异构SOA中彼此交互的Web服务和企业应用程序集成(Enterprise Application Integrations,EAI)的。我还探讨了使用XOP包作为一种简化通知的方式,并提供了将阈值警告作为通知主题的示例。
 
  消息标准化

  由于系统变得松耦合,为了对各种事件作出响应,更需要将Web服务接收消息的方式标准化。Web服务通知(WS-Notification)允许Web服务接收有关一个或多个主题的直接通知,从而满足了这一需要。如果某些Web需要与一些非Web服务的实体交互,WS-Notification可以为这些实体提供代理服务,将代理的通知分发到消费Web服务。实体可以是一个独立发布者,也可以是与另一个发布者通过接口交互的EAI应用程序。

  WS-Notification有很多应用程序,例如系统或设备管理领域的应用程序或者商业应用程序(如电子交易)。WS-Notification是为了与Web Services Resource Framework(WSRF)协同使用而开发的,它提供针对特定主题创建的订阅服务。订阅列表中的主题应该与来自消费Web服务的通知请求中的主题相匹配。

  如果基于XML的Web服务(如生产者、使用者、代理、订阅者)包含大量的大型文本文件,则XOP规范必须处理基于XML的Web服务。这些服务还应该通过业务流程规则进行优化——如果没有经过优化,则服务在使用WS-Notification规范时的效率就会很低。

  WS-Notification探秘

  WS-Notification文档系列包括:Publish-Subscribe Notification for Web services白皮书和三个标准化规范:

  ·WS-BaseNotification
  ·WS-BrokeredNotification
  ·WS-Topics

  让我们来分别看一下每项内容:

  ·Publish-Subscribe Notification for Web services:此规范为WS-Notification文档系列设置目标和需求并包括安全注意事项。
  ·WS-BaseNotification:此规范展示基本功能,定义NotificationProducers、NotificationConsumers、通知和订阅。它描述了暂停订阅和恢复订阅以及对订阅时间进行控制的过程。(注:NotificationProducers是生产Web服务(producing Web service)或者通知的生产者。NotificationConsumers是消费Web服务或者通知的使用者。)
  ·WS-Topics:此规范允许在用户订阅NotificationProducer之后,将一个订阅与某个特定的主题或者多个主题关联。
  ·WS-BrokersNotification:此规范允许非Web服务实体创建一个发布者,此发布者会创建消息,并通过一个名为NotificationBroker的单独代理服务分发这些消息。

  WS-Notification范例

  让我们从另一个角度来看一下WS-Notification。图1展示的是由NotificationProducer、NotificationConsumer和NotificationBroker Web服务组成的三角形,我称之为WS-Notification范例。它构成了Web服务的发布-订阅通知(Publish-Subscribe Notification)的基础。

  图1. WS-Notification范例
 
  演练

  正如您所看到的,此范例首先显示了订阅者正在订阅一个消费Web服务——面对人的服务或内部服务——以便接收通知,如系统错误(System Error)或者阈值警告(Threshold Warning)主题。生产Web服务负责维护订阅列表并在其中查找它们,以便与列表中的主题和通知请求中的主题相匹配。在需要更改时,您可以通过自动或者手动方式更改或删除订阅。

  接着,消费Web服务通过向生产Web服务注册实现了Notify消息交换。为了响应来自消费Web服务的一个或多个请求,信息的生产者查找与一个或者多个主题相关的订阅(Subscription)资源。

  接着,生产者会根据列表的每个订阅中注册的兴趣来匹配消息和相关主题。如果生产Web服务确定了一个匹配项,它就会向与该订阅关联的消费Web服务发出一个通知。如果匹配不成功,它也会发出一个通知,告知请求中的主题为未知的主题。

  代理Web服务

  如果订阅了一个非Web服务实体,则生产Web服务会创建一个发布者,此发布者通过一个提供代理服务的单独代理Web服务将系统错误消息分发给这个实体。如果消费Web服务订阅的主题与代理Web服务发布的主题不同,您可以对其进行配置,使代理根据定义好的管理规则将消息路由至消费Web服务。

  如果为消费Web服务准备的代理通知的格式不正确,则代理会接收到一个使用者警告。同样,如果代理发现来自发布者的传入消息的格式不正确而无法分发,它就会向生产Web服务发送一个警告,以便将该消息转发至消费Web服务。

  异构SOA

  来自不同SOA的多个Web服务可以为系统错误注册相同的信息。信息的制作者可以逐个地发送多个消息,也可以批量地将多个消息发送到异构SOA中每个注册Web服务。Web服务还可以(例如SOA编号1中的Web服务)向另一个Web服务(例如SOA编号2中的Web服务)注册,以便通过第三方来接收信息。

  由于发送到Web服务的通知的数量非常大,因此信息的制作者可能会将WS-Notification的实现委托给一个或多个面向消息的中间件(MOM)提供者。可以建立一个NotificationProducer层次结构,每个层次都具有自己的跨SOA的MOM委托权限,并且在SOA的顶层有一个编排NotificationProducer。

  阈值触发器

  重叠的WSN范例会导致多SOA超载,从而使事情变得更为复杂。即使在使用XOP包对Web服务进行优化后,这种情况仍然会发生。为了减少超载的可能性,应设置可用来度量通知性能的阈值,并将其配置到用来通知阈值已接近最大限度的触发器警告通知。根据中断对三个标准化通知Web服务之间的双向通信的影响设置的阈值就是这样的一个例子。在WSN范例的Web服务中,两个方向的阈值可以不同。当阈值渐渐接近限定值时,代理Web服务向面向人的Web发送一个阈值警告通知。

  也可以将通知阈值应用到以下类别:

  ·执行时间:此类别是Web服务可以执行请求或者发布通知的最长时间。
  ·访问时间:此类别是Web服务可以访问另一个Web服务或实体以发出请求或者发布通知的最长时间。
  ·Web请求:此类别是Web服务在相同时间可以接收和发送Web请求的最大数量。
  ·带宽量:此类别是总体带宽可以实现的最大带宽量,因为在网络空间中,不同的带宽可能会相互争用。
  ·通知负载:此类别是每个SOA可以处理的最大通知的数量。
  ·消息速率:此类别是在给定的时间内可以分发的消息的最大数量。

  结束语

  让Web服务能够接收和发送通知,要求人们提前作出计划,确定应该如何设计应用程序来避免在高峰时间出现超载。应该就阈值警告问题与系统管理员团队沟通,阈值警告用于警告Web服务,这些服务已接近发送和接收多个通知的最高级别。

  您会发现,提前解决这些问题会使通知Web服务应用程序这一工作变得容易得多。可以使用WS-Notification文档系列来为跨SOA消费、生产和代理Web服务开发通知。管理员还会发现,这些问题的解决使管理和执行系统级通知变得更为容易。这样,管理员就可以确定使用多少应用程序来接收和发送通知而不会导致系统超载。


在企业级SOA中使用Web服务
 使用多重SOA来消除企业系统之间的差异
 使外部Web服务互操作性最优
 将您的SOA合并成三维的整合中心以提高速度和可靠性
 使用Rational开发工具构建SOA中间件应用程序
 优化Web服务应用程序
 平衡Web服务应用程序的负载
 使用XML二进制优化打包规范加速Web服务应用程序
 异构SOA中的通知Web服务和EAI
 将RFID Web服务集成到多个SOA中的EAI应用程序
 为多个SOA构建深度防御
 将基于XOP的Web服务连接到外部服务
 使用IBM Rational ClearQuest在SOA中开发风险管理Web服务
 使用IBM Rational ClearQuest开发投资回报计算器
 将遗留服务组件迁移为可发现Web服务
 将Web服务实现框架与WS-Resource框架结合使用
 为服务集成成熟度模型开发存储库Web服务
 开发动态Web服务

原文出处:http://www.ibm.com/developerworks/cn/webservices/ws-soa-enter8/
来源:IBM    作者:Judith M. Myerson    
近年来,很多企业应用集成(EAI)供应商都提供专有的适配器和集成服务器工具集,试图解决企业应用集成过程中面临的挑战。虽然EAI解决方案很有效……
对于那些想要充分利用“埋藏”在“云”中的资源的企业来说,它们很快就能理解只有将他们现有的架构“面向服务化”才能做到这一点。虽然灵活性和可重用性仍然是SOA……
当前,国内银行信息化的重点基本上围绕着核心业务系统的建设和改造、渠道整合技术的提升,以及各种管理系统的建设而展开。此时,各银行不约而同地遇到两方面问题……
信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建设的水平。面对复杂多变的网络世界,中间件已经成为信息系统综合集成的利器……
在调用JSP文件以后,JSP页面上选择的参数被传递给Caller组件的Java实现(请参见清单4)。该实现将根据参数发出特定的异步调用……
SOA能够优化业务需求与IT的一致性,能够将业务流程活动从服务实现中分离出来,还能够降低操作成本。只有在不固定供应商的情况下才能真正实现这些功能,此时面向SOA……
面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易。
Web 2.0是2003年之后互联网的热门概念之一,不过对什么是Web2.0并没有很严格的定义。一般来说Web 2.0是相对Web1.0的新的一类互联网应用的统称。
Ruby on Rails, 也称RoR或简称Rails, 是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
最新更新
专家答疑
技巧
Jason Bloomberg
企业是否应该意识到,云计算有许多积极因素,是否也有负面影响呢?重要的是要记住,云计算仍然非常新,而且在许多方面比vaporware更现实……
Ron Schmelzer,Jason Bloomberg
我们正在进入多元化的银行和金融服务,我们处理客户关系管理CRM,BI,遗产系统,产品J2EE和.NET和其他异构平台。如果我们想要转移到一个共同的平台,为什么要选择SOA……
Ed Tittel
在您最近的博客中提到,在XML.com中有你喜欢的XML内容。关于XML的信息还可通过什么途径可以得到?请与我们分享更多的来源……