软构件技术的出现是对传统软件开发过程的一次变革。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的构件,或者在软件开发过程中发挥某种作用。通常将这些软件元素称为软构件。本文提出的六层体系结构.
1.用户层
用户层是应用程序中暴露给用户的那部分,包含所有的窗体和控件,及需要它们操作的所有逻辑线程。事件驱动的控件程序是填满该层的线程。下面是用户层的特征和需求: * 只包含窗体和控件,及需要它们操作的最少代码。 * 是与用户层交互的唯一层。 * 除相邻的事务层外,对其他任何层毫无联系 一个好的用户层应包含尽量少的代码,这些代码是使窗体和控件以期望方式运转所必须的。不应含任何数据库操作,也不包含任何持久的数据或任何事务规则,包括输入验证规则。 2.事务层 事务层包含所有的事务规则和逻辑,包括运算和验证。没有其他层认识任何应用专有的事务规则。该层接收并处理来自用户层的请求,但它对用户层并没有任何认识。它不知道用户层是一个窗体还是一个HTML文档,也不知道其中显示了什么具体的信息。 3.数据层 在此六层结构中,所有的数据在数据层存储并保持,在用户层显示。数据层不认识其他任何层,数据层是一个容纳读自数据库的信息的本地数据仓库,同时存放了并非从数据库查询的其他信息。数据层还存储数据库表和域规则,以便能验证数据库规则和约束的变化。它存储了每个数据元素的原始值以便能够轻松判断数据是否改变,以及在没有从数据库重载数据的情况下丢弃更改。 4.用户连接层 用户连接层将用户层和事务层与数据层联系在一起,负责更新用户层的数据并提供事务层请求的数据,这是唯一认识用户层的层。它知道VB或HTML控件,窗体和文档,但不知道那里显示的具体信息。 信息被用户连接层“广播”并被用户接口中用以收听的控件接收。用户层控件与数据域通过属性标记“绑定”。用户连接层循环经过窗体或文件中的控件,寻找标记。如果找到标记,就用数据层的相应信息更新控件。 5. 数据库层 数据层就是物理上的数据库,可以是一个标准的数据库,也可以是一个数据仓库,一个OLAP(联机分析处理)立方体,或其他类型的信息储备,只要能被数据连接层访问。如果数据库存储了包含事务逻辑的程序和触发器,这些项目实际是事务层的一部分,即使它们没放在一起。 6. 数据连接层 数据连接层是与数据库通信的唯一层,其完全通用并且不认识或不管数据库中的具体信息。该层读数据,写数据,并提交存储的程序。数据连接层不在本层存储数据,而使用存储在数据层的数据。 六层体系结构的每一层均相对独立并与其他层绝缘,这使其可重用,可替换,并可维护。数据层、数据连接层、用户连接层是通用可重用的层。用户层、事务层、数据库层是与应用程序相关的层。