1、 connector; component assembly description目 录1_构件分类、粒度划分、业务模型 11.1 构件分类 11.2_粒度划分 21.3_业务模型之间的关系 32 典型构件模型技术 32.1_构件的模型 32.2_基于CORBA的CCM技术 42.3_EJB技术 53 典型构件模型技术及发展展望 74_构件组装流程总体设计 74.1 用户需求的输入分析 84.2_构件搜索与获取 84.3_构件匹配选择 94.4_构件组装 94.5_程序校验和执行 105_软件结构描述SAD 105.1_基于XML的构件描述 115.2 基于XML的连接子描述 115.3 基
2、于XML的组装结构描述 126_组装平台的实现 16基于XML的构件组装平台的设计与实现1_构件分类、粒度划分、业务模型1.1 构件分类对大量构件进行分类有三个好处:便于组织管理、方便查询和辅助理解.构件分类是建立和维护构件目录信息的活动,构件的检索方法依赖于构件的表示和分类。目前有很多构件的分类和检索方法。从构件表示出发可分为人工智能方法、超文本方法和信息科学方法三类;而根据复杂度和检索效果的不同则可以分为基于文本、基于词法描述和基于规约的编码和检索三类。信息科学方法是软件复用项目中应用较为成功的一类,并且以枚举、刻面、属性值-关键词几种方法较为常见,其中刻面分类方法能够表达丰富的构件信息,
3、为人关注。构件的分类方式有多种,为了检索和重用构件时更好的了解构件的性质,我们可以将构件分类如下:(1)根据构件的复用方式,分为两种构件。一种是黑匣构件,我们不需要知道其内部是怎么工作,只需从外部使用它,能够达到即插即用;一种是白匣构件,需要经过修改才能重用;(2)根据使用的范围,分为通用构件和专用构件。(3)根据构件颗粒度的大小,分为小型构件,一般为基本数据结构类构件,如:窗口、按钮、菜单等;中型构件,具体指一些功能构建,如:录入、查询、删除等;大型构件,一般都是系统级构件,如一些系统框架等;(4)根据功能用途,分为系统构件,实在整个构件集成环境和运行环境都使用的构件;支撑构件,是在构件集成
4、环境、构件库管理系统中使用的构件;领域构建爱你,是为专用领域开发的构件;(5)根据构件的结构,分为原子构件和组合构件。1.1.1 枚举分类通过定义一个层次结构来对构件进行分类。构件库中的可复用构件按照某种标准被分成了若干个大类,每个大类中的构件再分成若干个小类,这样就形成了一个构件分类的层次结构。层次结构的最低层罗列的就是实际的构件。1.1.2 刻面分类一个刻面描述构件某一个方面的特征。刻面分类则是从不同的侧面对构件进行分类,每一种分类方式称为一个刻面。不同的刻面根据其重要性可以设置不同的优先级。对构件的每个刻面赋予相应的值,用以描述该构件。刻面分类具有较好的灵活性,易于加入新的刻面值,因此刻
5、面分类比枚举分类更易于扩展和修改。支持多重观点对构件进行分类,例如从构件的应用领域、构件所描述的对象、构件的观点和编程语言等不同的方式来分类。每一种分类方式称为一个刻面。每个刻面把构件集合划分为一个子集,各刻面所划分的子集形成一些较小的交集。检索一个构件时,给出一组刻面值,将确定一组子集合,在这些子集合的交集中,确认所需的构件。构件可用属性描述,例如构件类型、开发单位、作者、提交日期等属性。检索时通过构件的属性可以缩小搜索范围。刻面和属性都不涉及构件内部实现,只是为了便于构件的管理、检索和使用。如果把构件比作一只箱子,其内容如同箱子中装的东西,刻面和属性则如同箱子外边的标签。刻面分类法可以看作
6、层次分类法的扩充。1.1.3 属性-值分类该方法首先是为构件库中的所有构件定义一组属性,并赋予相应的属性值。开发人员通过指定一组属性值在构件库中对构件进行检索。该分类方法与刻面分类方法有几点不同之处:属性的数量没有限制,而刻面描述一般限制在7或8个刻面;属性没有优先级,而刻面根据其重要程度,有相应的优先级。 1.2_粒度划分构件粒度是软件构件的一个重要属性,将粒度引入软件领域,是因为粒度可以用来衡量构件的规模,并在一定程度上影响着构件的可复用性。粒度过大,灵活性小,难以实现复用,粒度过小,管理成本提升,使得复用性也很难改善。构件的粒度可以分为粗粒度、中等粒度、细粒度。对于粗粒度的构件来讲,往往
7、含有非常复杂的业务逻辑,比如提供数据访问、数据结构、数据定义等功能的构件。中等粒度的构件是由细粒度的构件组成的,其中含有一些不复杂却很特殊的业务逻辑。细粒度构件往往是有一些RAD 工具提供的,它具有很清晰的逻辑结构,例如JAVA 的GUI 组件,ActiveX 和JavaBeans 等。1.3_业务模型之间的关系构件是从业务模型映射得到的。不稳定的业务模型需要频繁发生变化,与之相对应的构件要能够包容这种变化,即构件要能够在频繁变化的业务需求和相对稳定的软件系统之间建立缓冲,避免因业务的频繁变化而导致软件系统的频繁变化。这就需要构件本身应具备适应变化的能力,即构件能够通过对自身的配置和重构来满足
8、不同的业务需求,但不会或极少影响到软件系统的变化。如果业务模型的这种变化不能通过某种抽象的形式描述出来并以可配置的形式封装在构件中,就不得不降低构件的粒度,将这些变化交由构件复用人员针对具体的复用环境在复用过程中去完成,否则,构件将不得不面临着因日后频繁重构而带来的巨大成本。由此可知,构件的粒度与构件所实现的业务模型的稳定性密切相关。模型越稳定,可能发生变化的机会就越少,那么相应的构件所需要包容的变化就越少,构件的粒度就可以越大。反之,模型越不稳定,模型的变化就越多,构件要包容这些变化的难度就越大,就不得不将该模型分解为若干个粒度较小的构件。因此,对稳定的业务模型,可直接映射为大粒度构件;对不
9、稳定的业务模型,通过对其进行分解,得到一组子业务模型,并将稳定的子业务元素映射为构件,其它不稳定元素继续进行分解,直到所有的业务元素都映射为构件为止。2 典型构件模型技术2.1_构件的模型软件构件模型是对软件构件本质特征的抽象描述,是对开发可重用软件构件和构件之间相互通信的一组标准的描述,它一般规定了创建和实现构件的知道原则,构件借口的结构,构件与软件架构及构件与构件间的交互机制。构件模型主要有构件和容器两个部分组成。构件模型分为两类:客户端构件模型和服务器端构件模型。建立构件模型要考虑的几个要素:表达能力、简单性、语言无关性、一致性、完备性、可扩展性。对象模型、构件技术和Web技术的融合彻底
10、改变了软件的构造方法。在分布式系统中,对象被用来表示分布的、可移动的、可通信的实体;构件化的软件开发方法使对象被加在网络上,达到跨平台的互操作和高的可伸缩性;Web技术使应用对象可以在Internet这个开放的计算平台上移动。这是一个全新的计算模式,核心是可互操作的对象,即软件对象间可透明地进行相互通信,并且地位对等地使用对方的服务,而不管这些对象是处于同一编址空间,还是不同的编址空间,或是根本不同的机器上。分布式构件技术主要有三种:对象管理组织OMG的基于公共对象请求代理结构(CORBA)的CCM,SUN公司的EJB和Microsoft公司的COM/DCOM/COM+。2.2_基于CORBA
11、的CCM技术CORBA是对象管理小组(OMG)的一个规范,它的底层和核心部分是对象请求代理(ORB)。从某种意义上说,CORBA是“软件总线”。CORBA的实质是RPC与面向对象技术的有机结合。在CORBA中,每一个构件是一个对象,有一个基于面向对象的接口,内部代码实现可以是OO或非OO的语言,总线上的对象能够被任何其它对象所使用。CORBA提供了接口语言定义语言(IDL)到C,C+,Java,COBOL等语言的映射机制IDL编译器,它可以生成服务器方的Skeleton和客户方Stub代码,通过分别与客户端和服务器端的联编即可得到服务方和客户方的程序。对一个CORBA客户机来说,服务器的位置是
12、透明的,客户机通过接口与服务器构件进行通信。CORBA同时提供了一系列的公共服务规范,其中包括名字服务、永久对象服务、生命周期服务、事务处理服务、对象事件服务和安全服务等,它们相当于一类用于企业级计算的公共构件。最新的CORBA规范主要包含以下内容:ORB核心、OMG界面定义语言、语言映射、存根(Stub)和框架(Skele-ton)、动态调用和仓库、对象适配器和ORB之间的互操作。CORBA的结构:IDL语言;ORB核心;客户程序;对象实现。2.3_EJB技术SUN公司的EJB是一种基于构件的开发模型,它是Java服务器端服务框架的规范。EJB详细地定义了一个可以方便地部署Java构件的服务框架模型,用于创建可伸缩、多层次、跨平台、分布式的应用,并可创建具有动态扩展性的服务器端的应用。EJB服务器实现了对EJB对象构件的管理,并提供对系统服务的访问。EJB服务器也可以提供其它软件接口访问标准,如优化的数据库访问接口,对CORBA服务的访问,对SSL3.0的支持等。EJB以构件的形式组织服务器EJB的构件
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1