Windows Azure Service Bus 推动财务服务门户的高可用性和可伸缩性

抵押贷款公司和评估管理公司面临着快速、复杂且数据量极大的业务流程。他们需要可快速、轻松设置且容量几乎无限的可伸缩的企业级服务,来对处理评估订单以及自动化流程本身所产生的所有文档和数据进行管理。

这听起来像是云计算平台的工作。

Schakra Inc. 的产品解决方案副总裁 Anil Balakrishnan 也这样认为。Schakra Inc. 是一家解决方案提供商,他们的客户包括 Microsoft 和 Vodafone。为对评估管理公司创建此类解决方案,Schakra 与 Bradford Technologies 和 Nasoft 进行了合作,并最终推出了名为 PortalDirect™ 的Unified Collateral Data Portal(UCDP™) 提交服务。Balakrishnan 说这开辟了同类服务的先河。

在创建该服务时,Balakrishnan 及其同事可以选择很多云计算平台,他们仔细考虑了所有选项,包括 Amazon SQS with SNS、SimpleDB 和 S3,但最终选择了 Windows Azure。

他说:“促使我们使用 Windows Azure 的是熟悉的开发人员体验和社区支持。此外,我们在 .NET Framework 和其他 Microsoft 技术方面具有丰富的知识和经验,更加便于我们使用 Windows Azure 及其平台服务克服开发困难,而不需要自定义解决方案。”

抵押贷款公司和其他用户访问 PortalDirect 以提交其评估订单,这些订单通过与第三方服务集成的多步骤工作流进行处理。为了在工作流内协调这些服务,开发人员选择了以消息为导向的体系结构。每种服务都与 PortalDirect 交换消息,以告知所有参与者为了进一步推动工作流必须采取的操作。这种基于消息的体系结构无需将特定节点与工作流关联,而是一个无状态系统, 相同节点可进行大规模伸缩。

 

在设计 PortalDirect 时,开发人员需要牢记以下三个要素:

  • 可伸缩性,按系统吞吐量来衡量。
  • 可靠性和可用性,即为财务服务用户提供业务需求支持的可靠性和可用性。
  • 容错。这是指能够正常恢复,且不会因为在涉及许多组件和服务的工作流中发生不可避免的瞬态故障而导致数据丢失的能力。

开发人员使用了 Windows Azure—尤其是 Windows Azure Service Bus—来满足这些需求。Service Bus 提供了用于实现基于消息的异步无状态工作流的现成功能。这是该解决方案的关键构成元素,由 Service Bus topics和queues提供。例如,开发人员使用 Service Bus 主题来实现发布/订阅体系结构。他们将基于队列的消息高效地用于负载平衡系统组件,并用于防止工作流在这些组件中出现瞬态故障。这有助于满足可伸缩性、可靠性和容错需求。

Balakrishnan 称,Service Bus 是非常方便的选择,也是有效的选择,这部分是因为其 API。他说:“API 便于使用,这很大程度上是因为它一目了然。它也提供了我们用于各种场景的客户端库/技术,例如 .NET 客户端库以及用来创建我们自己的 WCF/REST 客户端的示例。包括性能调整最佳做法相关 MSDN 文章在内的文档帮助我们构建出了世界一流的系统。”

Schakra 于 2011 年 8 月开始向客户推广 PortalDirect 服务,并表示该系统一直以来都运行顺利。到目前为止,PortalDirect 已经处理了 110,000 多次评估,即平均每个工作日处理 1800 多次交易。

 

本文翻译自:

https://blogs.msdn.com/b/windowsazure/archive/2013/06/17/windows-azure-service-bus-drives-high-availability-scalability-for-financial-services-portal.aspx