用 SLA 保证第二代 Web 服务应用程序

来源:百度文库 编辑:神马文学网 时间:2024/05/02 23:48:31

Judith M. Myerson参考资料
Web 服务应用程序是建立在独立于平台的协议——SOAP、WSDL、UDDI 以及 HTTP 之上的。这些协议满足了 SOA 的需求,比 Web 服务存在的时间要长。SOA 要求服务是可以被发现的,并且有可供调用的接口来实现业务流程。
在 Web 服务以前,SOA 中不存在 Web 服务应用程序。现在,Web 服务应用程序是 SOA 中的主要部分。它们补充了由非 Web 服务应用程序或组件组成的企业应用程序集成 (EAI) 应用程序。Web 服务应用程序与非 Web 服务应用程序竞争,争夺他们响应发现查询、发布请求以及绑定请求所必需的资源。
SOA 主要是利用 Web 服务标准来支持跨企业的互操作性问题,前提是 SOAP、WSDL 和其它的互操作性问题已经在 SLA 保证的 Web 服务应用程序投入到生产环境之前得到解决。这包括将 SLA 作为 UDDI 或其它的公开注册中心里的公用服务的 SLA Web 服务。这些 Web 服务必需要涉及到由于争夺资源对响应时间的性能影响而带来的权利和补偿(技术上的和金钱上的)。
与 Web 服务应用程序的体系结构的逻辑类似,SOA 服务客户为服务查询目录服务。如果客户找到了服务,目录服务通过代理让服务提供者调用该服务。反过来,如果客户没有找到服务,它可能会从目录服务收到一个警报,提示搜索失败。同样的,如果提供者不能在目录中发布服务,它也可能会收到一个警报,提示尝试失败。
一个最好的估算响应时间的办法是提问并回答。编译完问题后,您可以在延迟、吞吐量和故障转移的基础上对其进行优化。
延迟是数据包从一个地点到另一个地点然后返回这一个来回所花费的时间。例如包括:
在数据库服务器端的 SQL 延迟 从网络 A 路由器到网络 B 应用程序服务器的延迟 动态警报和绑定的延迟 动态应用程序集成的延迟
吞吐量是代理在给定的时间内能处理的请求的数量。故障转移测试衡量 Web 服务应用程序的故障转移解决方案是如何正常运行的。开发人员必需权衡考虑延迟和吞吐量。另一个需要考虑的衡量元素是应用程序如何为死锁、挂起以及超时提供纠正措施。
下面是当您试图通过修改 Web 服务应用程序或开发新的应用程序来提高他们的性能时,可能会提出的一些问题:
Web 服务应用程序是不是需要花费很长时间(例如,超过 10 秒)来响应客户的查询?当 Web 服务不适于发布或调用时,还能给终端用户发送警报信息吗? Web 服务客户为响应通信需要花费很长时间,这是由于提供者引起的吗?如果代理没有发现服务,它是不是需要花费很长时间来启动警报? Web 服务代理是不是需要花费很长时间来响应用于发布服务的请求?在服务被发布或发现之后,还需要验证或确认请求吗? 在 SOA 中,Web 服务应用程序会与非 Web 服务应用程序争夺为处理大量的客户或提供者的查询请求所需的资源吗? Web 服务应用程序中网络传输的增加是由于高速缓存机制不够引起的吗?
要回答这些问题,估算响应时间的标准应该精确一些。否则,各方就 SLA 是在衡量不同网络场景中的哪个服务或性能,以及用的是 SOA 中的哪个服务级别将不能达成一致意见。
有些情况下,客户可能认为一个双方同意的服务级别将估算三个网络,在给定的时间内,每个网络都分布着不同的 Web 服务应用程序和非 Web 服务应用程序,如下所示:
Web 服务应用程序 非 Web 服务应用程序 Web 服务应用程序对非 Web 服务的调用
A 90% 0%
B 100% 0%
C 70% 30%
另一些情况下,客户可能认为一个双方同意的服务级别将用相同的分布来衡量相同的网络,但是要从响应时间估算中排除所有三个网络中运行的非 Web 服务应用程序,如下所示:
Web 服务应用程序 非 Web 服务应用程序 Web 服务应用程序对非 Web 服务的调用
A 90% 0%
B 85% 0%
C 75% 0%
为完成一连串的任务,一些 Web 服务应用程序对非 Web 服务应用程序的调用增加了问题的复杂性,但是,客户可能认为这些非 Web 应用程序不在估算范围之内。如图 3 所示,并不是所有的 Web 服务应用程序都要依赖于非 Web 服务应用程序。
网络 Web 服务应用程序 非 Web 服务应用程序 Web 服务应用程序对非 Web 服务的调用
A 90% 10% 7%
B 100% 0% 0%
C 70% 30% 10%
Web 服务测试工具——比如那些由 PushtoTest 提供的——(参阅下面的参考资料部分以获得相关链接)并不是充当 SLA 监视器的唯一机制。您可以设置异常条件来监视和检查 Web 服务的延迟、吞吐量以及高速缓存机制。这些条件必须作为经同意的 SLA 的一部分而被列出。
请了解更多关于PushtoTest的知识来测试和监控 Web 服务。 请阅读 Judith Myerson 的中间件完全手册 ,它主要讨论系统设计的基本原则和优先考虑的问题,并强调了电子商务和分布式集成系统的增长带来的新需求。 通过阅读企业系统集成,第二版 ,深入了解企业以及关于如何确保成功的系统集成方面的技术。 在IBM‘s UDDI version 2 registry发布您的 Web 服务或应用程序,这个注册中心的特征是有图形用户接口和一致的 API 供大家公用。 请阅读“用 SLA 保证 Web 服务”,该文章涵盖了 SLA 保证的 Web 服务第一代体系结构的测试机制和例外情况( developerWorks,2002 年 4 月)。 从现有的 Java 代码构建基于 SOAP 的 Web 服务时,请研究和学习更多有关“基于 SOAP 的 Web 服务中的复杂数据类型”的知识( developerWorks,2001 年 5 月)。 从IBM Redbook for Domino administrators中深入了解制定服务级别协议的具体细节。 快速启动Web 服务,学习 Web 服务知识、工具和技巧,那里提供最新的基于 Java 的软件开发工具和来自 IBM 的中间件(测试版),还有在线教程、文章以及在线技术论坛。 访问Developer Bookstore,那里有比较全面的技术书籍,包括许多Web 服务主题的书籍。 想要更多的相关信息?developerWorks 的SOA 和 Web 服务专区有大量关于如何开发 Web 服务应用程序的资料文章和初级、中级以及高级教程。
Judith M. Myerson 是一位系统设计师兼工程师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性方面以及项目管理。您可以通过jmyerson@bellatlantic.net与她联系。