COM+ 设计假设和原则

Microsoft分布式编程模型包含多种技术,包括 MSMQ、IIS、DCOM 和 COM+。 所有这些服务都旨在供分布式应用程序使用。

COM+ 已开发,以便更轻松地创建分布式应用程序。 总体体系结构基于一组假设和原则。

假设

假设如下:

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

原则

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

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

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

使用 UML 设计 COM+ 应用程序

有关使用 COM+ 的常规设计提示

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

用于生成分布式应用程序的其他Microsoft工具