常见的构件(component,组件)的定义如下:
定义 1:构件是指软件系统中可以明确辨识的构成成分。而可复用构件(reusable component)是指具有相对独立的功能和可复用价值的构件。
定义 2:构件是一个组装单元,它具有约定式规范的接口及明确的依赖环境。
定义 3:构件是软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语 境有明显依赖关系、可独立部署的可组装软件实体。
一、商用构件标准规范
1.CORBA
CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理架构)主要分为 3 个层次:对象请求代理、公共对象服务和公共设施。
CORBA CCM(CORBA ComponentModel,CORBA 构件模型)是 OMG 组织制定的一个用 于开发和配置分布式应用的服务器端构件模型规范,它主要包括如下 3 项内容。
(1)抽象构件模型:用以描述服务器端构件结构及构件间互操作的结构。
(2)构件容器结构:用以提供通用的构件运行和管理环境,并支持对安全、事务、持 久状态等系统服务的集成。
(3)构件的配置和打包规范:CCM 使用打包技术来管理构件的二进制、多语言版本的 可执行代码和配置信息,并制定了构件包的具体内容和文档内容标准。
2.J2EE
在分布式互操作协议上,J2EE 同时支持 RMI(Remote Method Invocation,远程方法调用) 和 IIOP(Internet Inter-ORB Protocol,互联网内部对象请求代理协议),而在服务器端分布式 应用的构造形式,则包括了 Java Servlet、JSP、EJB 等多种形式,以支持不同的业务需求, 而且 Java 应用程序具有跨平台的特性,使得 J2EE 技术在发布计算领域得到了快速发展。
3.DNA 2000
Microsoft DNA 2000 是 Microsoft 在推出 Windows 2000 系列操作系统平台的基础上, 在扩展了分布计算模型,以及改造 Back Office 系列服务器端分布计算产品后发布的新的分 布计算架构和规范。在服务器端,DNA 2000 提供了 ASP、COM、Cluster 等的应用支持。
二、应用系统簇与构件系统
除专门开发构件的企业外,开发应用系统的企业也会发展自己的构件应用体系:通常是 随着企业的不断成熟,逐步从已开发的应用系统中整理出来一些构件,反过来,将这些构件 复用到优化与整合已有应用系统中或复用于开发新的应用系统。
应用系统和构件系统都是系统产品(而不是工作产品)。它们都可以采用模型和结构的 类型定义出来。一般情况下,构件系统只在开发单位内部使用,而应用系统提供给外部客户, 与应用系统相比,构件系统具有通用性,可复用性,这就要求构件系统的开发过程应当实施 更为严格的工程规范。
应用系统可以向构件系统输入构件(构件的需求源于应用系统或应用系统中的模块),反 过来,构件系统向应用系统输出构件。这就是构件系统如何获得构件和如何提供构件的方式。
三、基于复用开发的组织结构
基于复用的开发组织与传统的开发组织结构不同,它需要有一部分用于开发可复用资产 的资源,这部分资源应同具体应用系统的开发资源分开,以确保不被占用。
一种较平衡的组织结构如图所示,它有三类职能部门:一是构件系统开发部门, 它开发可复用资产;二是应用系统项目开发部(多个),它复用资产;三是支持部门,这个 部门是可选的,它进一步隔离上述两主体部门,虽然牺牲了一些效率,但保证了构件的规范 性。它的主要职责是对构件开发部门所提供的可复用资产进行确认、对构件库进行分类编目、 向开发应用系统的工程师们发通告和分发可复用资产、提供必要的文档、从复用者处收集反 馈信息和缺陷报告。
一方面,构件开发者应当尽量接近应用开发者,以使其开发出的构件能尽量符合实际需 要;另一方面,构件开发者与应用开发者分属两个并列的部门,使构件开发者能摆脱应用项 目的日常压力,保证可复用资产的开发和持续改进。复用经理应当在构件开发和应用 项目开发利益之间进行权衡,保证长期目标不受近期项目压力的影响。