COM+ 设计假设和原则

Microsoft 分布式编程模型由多项技术组成,包括 MSMQ、IIS、DCOM 和 COM+。 所有这些服务都是为分布式应用程序设计的。

COM+ 的开发是为了让创建分布式应用程序变得更容易。 整体体系结构基于一系列假设和原则。

假设

假设如下:

  • COM+ 应用程序将支持多个服务器上的多个用户。 换句话说,你正在构建一个分布式应用程序,而这些多个用户将位于代码运行的不同主机计算机上。 用户将通过 Internet 或专用网络访问代码。 用户界面将通过浏览器或自定义应用程序来呈现,例如使用 Microsoft Visual Basic 或 MFC 编写的基于表单的应用程序。 该用户界面将位于客户端计算机上。
  • 通过在多台服务器计算机上部署 COM+ 应用程序,可使其可缩放,并提供更高的可用性和可靠性。 这样做可以平衡应用程序的工作负荷,并通过使用 Windows 集群提供容错。
  • 如果出现问题,如果使用事务,COM+ 应用程序中存储在数据库中的持久化数据的状态将得到维护。 应用程序状态必须能够经受住可能发生的意外,如应用程序错误、系统崩溃或网络故障。

原则

除了这三个假设之外,COM+ 编程模型还遵循以下原则:

  • 应用程序逻辑将驻留在服务器计算机上,而不是在客户端计算机上。 这样做有三个主要原因:
    • 客户端计算机可能不具备运行应用逻辑所需的处理能力或功能。 此外,将应用程序逻辑保留在服务器上也简化了部署。
    • 服务器计算机通常更接近数据,而这些数据通常都在数据库中。 由于应用程序正在访问数据库,因此需要对数据库连接的成本非常敏感。 将大部分逻辑放在服务器计算机上,就可以共享数据库连接,从而显著提高性能。 服务器计算机上的其他资源也可以共享,同样可以带来性能优势。
    • 让应用程序逻辑驻留在服务器计算机上,可保持对应用安全上下文的控制。 如果在服务器计算机而不是客户端计算机上运行的应用程序组件上维护安全性,则可以对安全性加以更多的控制。
  • 事务是核心。 根据设计,事务会渗透到 COM+ 编程模型中,因此了解它们非常重要。 虽然可以在不使用事务的情况下使用 COM+ 的许多服务,但如果选择不使用他们,就无法充分利用 COM+ 提供的服务。 使用事务的一些重要好处如下:
    • 事务是并发管理问题的合理解决方案。 此外,事务有助于防止崩溃,并具有良好的错误恢复模型。 此外,事务也是跨多个系统管理任务的好方法。
    • 可以设计一个基于事务的 COM+ 应用程序,使其与资源管理器和数据库协同工作,这样将有助于保护大多数状态信息。 将状态保存在数据库或其他由资源管理器管理的存储空间中,就不必在应用程序创建的实际对象中保存太多状态。 虽然这偏离了纯粹的面向对象的模型,但它在创建具有错误恢复功能的分布式应用程序时却非常有效。
  • 应用程序功能以 COM 对象的形式构建,封装了用于与其他系统或技术通信的协议。 由于构建的组件很可能要将几种技术或传统系统拼接在一起,因此应计划使用多种通信协议。 在 Internet 上使用 HTTP 进行客户端/服务器通信或应用程序之间的通信。 在服务器上使用 DCOM 进行应用程序到应用程序或组件到组件的通信。

设计 COM+ 应用程序的基本准则

使用 UML 设计 COM+ 应用程序

使用 COM+ 的常规设计使用技巧

优化与 COM+ 业务逻辑层的交互

用于构建分布式应用程序的其他 Microsoft 工具