XML 加速功能
取决于应用程序的复杂性,解析基于文本的大型 XML 文件产生了大量开销,这就抵销了使用硬件加速器和优化软件消除代码冗余带来的好处。基于文本的 XML Web 服务应用程序体积较大并且会逐渐膨胀,因此从网络、处理器和存储性能的角度来看,不具备良好的带宽效率。当使用大量的大型文件时,这些 Web 服务会阻塞网络通信,导致系统超载。
Web 服务性能的一个主要阻碍因素是与 XML 有关的网络和处理开销。因此,行业趋向于标准化 XML 的二进制编码模式,例如 XML-binary Optimized Packaging Specification(XOL)Package。如系列文章的 第 7 部分(关于在企业级 SOA 中处理 Web 服务)中所述,我讨论了这种包处理大型二进制文件的效率为何高于 XML 解析器处理基于文本的文件的效率。
解决互操作性问题
不论 Ajax 应用程序如何优化,使用了哪些硬件加速器,如何降低或消除了代码冗余,您仍然需要解决互操作性问题。例如,当 Ajax 应用程序转换为企业无法控制的 Web 服务时,您要根据共享语义和合同义务确保它们在外部可以进行互操作。语义的错误理解(例如专有语义)和合同漏洞(多平台差异)会造成互操作性问题,例如将 Ajax 应用程序集成到遗留系统中。
改进 #2. Web 服务标准
让我们看一些针对 Ajax 应用程序的 OASIS Web 服务标准(OASIS 表示 Organization for the Advancement of Structured Information Standards,由 International Open Standards Consortium 领导。参见 参考资料 获得站点链接)。
WS-Security Extensions(WS-SX)
Security Access Markup Language(SAML)
Service Provisioning Markup Language(SPML)
Digital Signature Services(DSS)
Application Vulnerability Description Language(AVDL)
Ajax 通过 Internet 从浏览器应用程序转移到服务器门户产生了越来越多的安全漏洞,因此所有这些标准都是为了降低安全漏洞风险。如果应用了 XOL 包或其它二进制 XML 模式,这些标准会更高效。
WS-SX
该标准提供了实现安全功能的技术基础,例如实现更高级别的 Ajax Web 服务应用程序时保持消息的完整性和保密性。由于 WSS 只关注单个的消息交换,因此可以扩展为 WS-SX,以支持涉及多个消息交换的可信 SOAP 消息交换,并定义管理消息的格式和标记的安全策略。Web Services SecureConversation、SecurityPolicy 和 Trust 规范为 WS-SX 的开发做了不少贡献。
SAML
这种标记语言定义并保持了一种基于 XML 的标准框架,用于在在线合作伙伴之间创建和交换安全信息。SAML 现在被用于 Web 单点登录、基于属性的授权和保护 Web 服务。
SPML
该标准提供了一种 XML 框架,用于管理企业内部/之间的身份信息和系统资源的供给和分配。此外,SPML 1.0 规范允许使用 WSS、XML Digital Signatures 和 XML Encryption。
DSS
该标准定义了一个可以处理 Web 服务和其他应用程序的数字签名的 XML 接口。DSS 在电子商务和其他 Web 应用程序安全性方面扮演着重要角色,它可以确保在交换并从存储中检索应用程序时 Web 数据的可靠性。DSS 规范包括用于签名创建、签名检验、时间戳和上述功能集合的服务。
AVDL
AVDL 的目标是定义一种语言,用于描述可以保护这种应用程序的信息。这些信息包括(但不限于)安全漏洞信息、已知的合法使用信息。在我的系列文章(在 Web 服务上下文中使用 SLA)的 第 7 部分 中,除了讨论 AVDL 规范外,我还解决了针对某个 Web 服务的中断阈值问题,比如这个服务没有通过 HTTP 响应获取安全漏洞信息的请求。
如果请求与响应的时间间隔非常大,中断阈值所达到的水平将会对提供运行时间可用性的 SLA 保证产生不利影响。为了减少产生这种不利影响的机会,文章 讨论了如何降低在异构的面向服务架构(SOA)中暴露 Web 服务漏洞的风险。使用 XOL 包可以进一步降低中断阈值的影响。但是降低这种影响并不代表实现了 SLA 保证。
改进 #3. 监视通信流
积极地监视通信流可以持续地度量 Ajax 应用程序的网络流量性能。它可以模仿网络数据和 IP 服务,并实时收集 Ajax 应用程序的网络性能信息。收集的内容包括:有关响应时间的数据、带宽量、单向延迟、抖动、包丢失和服务器响应时间。
对于同一个连接,可以针对不同的通信级别进行性能监视(例如高、中和低优先级)。通过将数据放入实时日志中,您可以查看在哪些位置何时出现大量的包丢失和抖动事件,响应变慢的原因以及如何通过修改应用程序的优先级来改善通信流性能。
结束语
要提高 Ajax 应用程序的性能,同时避开 Web 服务漏洞,您的团队需要由开发人员、测试人员、系统管理员和潜在用户组成。要消除冗余和内存泄漏,同时降低带宽和小的 HTTP 请求的数量,您必须提前规划 Ajax 性能改善项目的创建、测试和部署。解决了这些问题将使改善 Ajax 应用程序的性能变得更加轻松。