企业级应用开发架构与COM+服务解析
立即解锁
发布时间: 2025-08-20 01:59:31 阅读量: 1 订阅数: 3 


COM+编程实战:使用Visual C++和ATL构建企业级应用
# 企业级应用开发架构与COM+服务解析
## 1. 三层架构概述
在企业应用开发领域,两层模型曾是一种标准范式。它包含两个层级:第一层是用户应用程序,第二层是数据源。常见的两层架构便是客户端/服务器模型。在该模型中,第二层(服务器)访问诸如SQL Server之类的数据库管理系统,而第一层(客户端)进行所需的数据处理,并将信息呈现给用户。
然而,互联网的迅猛发展引发了信息提供方式的变革。如今,用户期望能从单一位置——浏览器获取所需的信息和应用程序。传统的客户端/服务器模型已无法应对这一挑战,因为数据处理逻辑、事务逻辑、同步逻辑等不能仅仅嵌入到用户应用程序层面。因此,需要将表示逻辑与数据处理逻辑分离,数据处理逻辑(通常称为业务逻辑)可以为多个客户端提供集中的资源管理功能。这种为互联网应用增强的三层架构如图1所示。
实现各层有多种方法,具体取决于数据访问层的选择、客户端类型、开发者选择的工具和技术,以及不同层之间的通信机制。尽管开发者可以实现自己的机制,但最终选择一种能减少维护工作量的机制会更好。
### 三层架构层级功能
| 层级 | 功能 |
| ---- | ---- |
| 表示层 | 负责从用户收集信息,将信息发送到业务服务层,接收业务服务的结果,并将其呈现给用户 |
| 业务服务层 | 接收来自表示层的输入,与数据服务层交互,执行应用程序的业务操作,并将信息发送回表示层 |
| 数据服务层 | 唯一直接处理数据的层级,数据通常存储在关系数据库(如SQL Server)中,负责数据的存储、检索和一般维护 |
## 2. Windows DNA架构
为了简化三层企业级应用程序的开发,微软定义了一种名为Windows分布式互联网应用程序架构(Windows Distributed interNet Applications Architecture,简称Windows DNA)的技术。Windows DNA描述了微软提供的完整、集成的n层开发模型的技术,以及开发者在Windows平台上构建可扩展、可靠的企业级系统所需的服务。
DNA架构由三个逻辑层组成,对应于三层架构的每一层,如图2所示。
### 2.1 表示服务层
表示服务层是应用程序的前端,负责从用户收集信息,将信息发送到业务服务层,接收业务服务的结果,并将其呈现给用户。该层的应用程序可以开发为胖客户端或瘦客户端。胖客户端直接使用VB表单或Win32服务;瘦客户端(以浏览器为目标)使用HTML或DHTML,并在需要时结合一些客户端和服务器端脚本。
### 2.2 业务服务层
业务服务层负责接收来自表示层的输入,与数据服务层交互,执行应用程序的业务操作,并将信息发送回表示层。为了支持基于瘦客户端的应用程序,微软提供了一个名为Internet Information Server(IIS)的Web服务器。为了支持服务器端脚本,微软还提供了另一种名为Active Server Pages(ASP)的技术,ASP通常与IIS捆绑在一起。
### 2.3 数据服务层
数据服务层是唯一直接处理数据的层级,数据通常存储在关系数据库(如SQL Server)中,负责数据的存储、检索和一般维护。为了标准化跨各种数据库服务器的数据访问机制,微软定义了诸如Open Database Connectivity(ODBC)和较新的OLE DB等技术。为了简化使用模型,微软在OLE DB之上构建了另一种名为Active Data Object(ADO)的技术。
Windows DNA的长期愿景是通过在每个级别提供基础设施支持来简化所有三层。然而,目前的重点是在业务服务层以及在一定程度上在数据服务层以COM+的形式提供基础设施。接下来,我们将探讨COM+的相关内容。
## 3. COM+服务解析
COM+扩展了COM的运行时环境,为开发企业级应用程序提供基础设施,它专门解决了三层模型中业务层的问题,是Windows 2000操作系统的一个组成部分。由于许多繁琐的运行时服务细节被移到了操作系统中,开发者可以专注于更高级别的问题及其解决方案。以下是COM+提供的主要服务:
### 3.1 管理控制
传统上,应用程序的许多配置细节都嵌入在应用程序本身中。例如,应用程序可能会明确检查以确保其调用者属于管理组。这种控制实际上应该由应用程序的实际管理员负责,而不是应用程序本身。
COM+将程序的主要逻辑与其配置区分开来,它定义了一个名为COM+ Catalog的标准位置,用于存储每个应用程序的配置信息。开发者可以使用声明式编程属性在应用程序范围之外定义默认配置设置。然而,管理员可以通过编程方式或使用COM+提供的名为Component Services Snap-in的工具来更改这些设置。
### 3.2 事务服务
目前,许多商用数据库服务器都满足事务的要求。这样的服务器通常会缓冲对特定数据库所做的更改,直到客户端告知它提交更改。此时,所有更改都会应用到相关数据库中。
尽管数据库服务器会单独处理每个数据库,但目前没有标准化的技术来协调分布式数据库和分布式组件之间的操作。开发这样的代码非常困难,而且消耗资源。
COM+提供了一种简单的方法,将跨分布式数据库和组件的操作视为一个单一事务,简化了单个操作对事务结果进行投票的方式。事务并不总是与数据库相关,它可能涉及非数据库相关的操作,如发送电子邮件。如果事务失败,发送电子邮件的操作应该被中止。COM+提供了一种机制,让开发者定义一个或多个可以参与事务的操作。例如,使用这种机制,你可以开发代码,将访问遗留数据库作为分布式事务的一部分。
### 3.3 安全服务
企业系统需要许多安全原语,如验证用户身份、确保用户有权限访问系统的特定部分、在数据通过网络传输时提供加密等。COM+提供了所有这些服务。
企业应用程序通常需要超越基本的安全原语,它们要求基于用户的逻辑分组(称为角色)来访问系统的特定部分。COM+允许开发者为应用程序定义用户角色。需要注意的是,这些用户角色与使用Windows用户管理器创建的用户组不同。Windows用户组定义了组内用户在操作系统级别可以访问的资源,而COM+下的用户角色是在应用程序级别定义的,它定义了用户(在该角色下)可以访问应用程序的特定部分。
COM+为管理员提供了一种简单的方法,将现有的用户账户(或用户组)与特定角色关联起来。对于一些过于复杂而无法通过管理方式处理的情况,COM+为开发者提供了一种以编程方式定义安全逻辑的方法。
在分布式系统中,有时需要组件B在访问另一个组件C时代表其调用者组件A,此时
0
0
复制全文
相关推荐










