(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机应用技术专业论文)基于构件库的erp系统的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

吐二荔! ! 曩霹霉霉。二衙孳譬二王军矗兰琵i 兰蔼彳漉馏谨鑫羹雾霎统 鼹鍪霪 童薹萋廷蓁蓁萼矍冀雾霾塞冀羹垂霎垂霎藿| 篱美熏堕霎夔霪蠢裂羹舆;一錾冀雾薹篓雾嚣鐾嚣蓁羹冀薹;一鋈羹霾蓁 憾墓攀蠹霾霸羹蓁蓟誉竺i 霪雾冀蠹| 鋈霪主i 牵l i 霪茎! 蟊墓善l ! j ;霾墨雾囊| 蔬程釜羹冀霎蓍霉| 照 堡羹鍪徽i 鎏闩薹羹已攀l ;篓委霎雾i g l ! 薹震冀萋冀篓器鹱谴罢篓蠢錾雾;燮蓁磊嚣羹奏骝 强翼;裔翼翼羹羹l 霎薹耋 耋国矍薹i 厘i l 注! 曩翔薹爹童曩;掣魉i 薹薹蓄需萎蒸骚鹱燃蝣弼酸黼嚣 靶鬣荤型磷雾;鬟圈蒿嚣嚣冀瑟鬻;嚣羹雾i 蕊冀蓠装塞餐攀纛赵, x 论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:栖状 日期:,2 僻s 月& 日 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电 子版和纸质版,有权将学位论文用于非赢利目的的少量复制并允许论 文进入学校图书馆、院系资料室被查阅,有权将学位论文的内容编入 有关数据库进行检索,可以采用复印、缩印或其他方法保存学位论文。 学位论文作者签名:桶掀 日期:私,d g 年r 月g 日 导师签 日期:君年,月扩 日 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 法适应激烈的市场竞争。据统计,在我国,目前只有大约1 的企业能基本满意 现有的e i 冲系统【l 】。 e i 心代表了当代先进的企业管理模式和技术,能够迅速地提高企业整体管理 效率和企业在市场上的竞争力。但是随着现代企业管理技术、先进制造技术的不 断发展,e r p 系统的管理领域早已超出了配聪鍪蝮删先剜:彳j 墓雩级翅遥臻;霎掳 糕篇蓁醺明阔毪尚溺线描写篡酉薹鬣催鉴芎知翼蓁萨譬奸晰韬:蜇鍪舷稍绡澜; 韵环唐结妻冀商鬣懦制舞艉。z 嫉器蓝谪稽,滏黼篚闺鬣名签屡篓翥剿醚墓蚕 藩编矧莲邕舔蕃踹, 毯鞋i 爸彩矧科醅张荫矍霞;粪霾翌引黢瓤必黼朔琶刻黝烈臻耀冀蓁萋雕i 匿雷蔻商露婴琴零羹硪拳塞舔妻菰,琵鹤晒韩赫阳羁鸨锛薹曦璋! 酥孙醑 笃公罐倒烈藿耋葚地薛雪葛舷酯双霹琢融的业务模型,按照一定的粒度对e l 心系统中的功能进行分解,基于系统的业务功能,自顶向下,按照如下顺序对e l 心 系统进行分解:系统- 子系统叶功能模块一具体功能- 构件。那么e r p 系统的 组装流程则是:构件一具体功能_ 功能模块_ 子系统一系统。 1 3 本文的贡献 区别于目前对e r p 系统开发的研究,本文写作的目的是利用软件构件库中 的构件,经过构件组装、框架组装和系统组装等过程,将原子构件按照一定的组 装方法组装成e i 冲系统。进而为利用构件技术搭建新系统或为已有系统添加新 功能,提出相应的解决方案。本文的贡献如下: ( 1 ) 综合现有的构件组装基本技术和实现技术,本文建立了复合构件组装模 型、框架组装模型和系统组装模型。 ( 2 ) 实例化了基于框架组装模型的复合构件组装,根据框架组装模型的特征 及组装原则,先将e i 心系统软件框架分层,再用接口包装各层的构件,接着设 计框架与构件或框架与框架之间的连接器,最后用一个组装实例来验证这种组装 方法。 ( 3 ) 建立了e i 冲系统的业务模型、组装规则及组装流程,从而为基于系统组 装模型的e i 冲系统的组装流程提供了依据。本文最后以系统组装模型细化得到 的e r p 系统的应用框架为指导,将框架组装模型组装得到的复合构件再次组装, 最终组装成e l 心应用系统。 5 中山大学硕士毕业论文 基于构件库的e r p 系统的研究与实现 提高软件开发的效率和改善软件的质量,降低开发成本和维护成本,以至于能够 很好地改善软件在市场上成功实施的效率。正是由于这些优势,利用可重用的构 件来组装软件系统,有效地集成和复用成熟的软件构件资源、支持快速组装来搭 建e r p 系统成为了目前软件行业企业迫切需要的开发途径。 1 1 20 6 粤港关键领域重点项目 “面向制造业信息化与电子政务领域的软件构件库平台是2 0 0 6 年粤港关 键领域重点突破项目。项目编号为g l 6 0 1 0 0 1 。 “面向制造业信息化与电子政务领域的软件构件库平台( m 锄缸t u r i l l g i n 如m 域i z a t i o na n de 9 0 v e m m e n to 晒e n t e ds o f t 戳鹏c o 删) o n e n tl 衙a r y ,简称 m g s c l ) 是由广州市科技局立项提出,由广州市天剑计算机系统工程有限公司、 中山大学和广州华南资讯科技有限公司三方合作研发,最终用户主要是包括软件 开发商、软件集成商、应用系统使用者等制造业信息化和电子政务领域应用软件 开发产业链中的相关用户。 “面向制造业信息化与电子政务领域的软件构件库平台 的总体目标是研究 大规模构件库建设与应用技术,开发一批具有特色的软件构件,形成面向应用的 大型构件库,服务于社会信息化建设,促进广州软件企业及产业的发展。 在计算机软件几十年的发展过程中,人们一直在探索提高软件开发效率和软 件质量的有效方法。但是,软件开发总体上仍处于手工作坊的开发方式中。基于 构件的软件开发方法希望通过重复使用有效的、被验证过的软件资源来提高软件 质量和效率,其中构件是复用的基本单位,这使得基于构件的开发方法成为了软 件工程研究和实践的热点。 软件构件化是软件产业走上工业化道路的一个重要标志,正引起产业界越来 越多的关注。在全球进入互联网时代的今天,软件需求快速增长,软件市场竞争 激烈,这使得软件开发方法必须朝着实用化和构件化方向发展。 软件构件化包含了其研发方法、技术、构件库,以及基于构件的软件、工具 和环境。因此,构件化有着潜在而广阔的市场与发展空间,对软件企业是新一轮 的机遇与挑战。 软件构件化将是未来软件业发展的重要趋势之一,基于构件技术的软件开发 3 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 重用构件。m g c l 构件模型将回答如下问题,什么是重用过程所关心的对象、 可从将资源表现为什么形式等等。 介绍完构件组装的基本技术与实现技术之后,本文将详述复合构件的组装模 型、e l 心框架组装模型和e r p 系统组装模型,以指导e l 心系统的组装流程。根 据框架组装模型的特征及组装原则,先进行e r p 系统框架分层,然后再详述处 于软件框架不同层次的原子构件以及如何由这些构件组成的一个具有独立功能 的复合构件。经框架组装模型得到的复合构件,根据e r p 系统的组装模型和构 件系统层次图,再次组装以形成符合业务流程的复合构件,周而复始,直到最后 完成e i 心系统的开发。e l 心系统的组装流程和业务分析过程是相反的,本文分 析过程是先依据e r p 系统业务分析阶段产生的业务模型,按照一定的粒度对e l 心 系统中的功能进行分解,基于系统的业务功能,自顶向下,按照如下顺序对e l 心 系统进行分解:系统- 子系统叶功能模块一具体功能- 构件。那么e r p 系统的 组装流程则是:构件一具体功能_ 功能模块_ 子系统一系统。 1 3 本文的贡献 区别于目前对e r p 系统开发的研究,本文写作的目的是利用软件构件库中 的构件,经过构件组装、框架组装和系统组装等过程,将原子构件按照一定的组 装方法组装成e i 冲系统。进而为利用构件技术搭建新系统或为已有系统添加新 功能,提出相应的解决方案。本文的贡献如下: ( 1 ) 综合现有的构件组装基本技术和实现技术,本文建立了复合构件组装模 型、框架组装模型和系统组装模型。 ( 2 ) 实例化了基于框架组装模型的复合构件组装,根据框架组装模型的特征 及组装原则,先将e i 心系统软件框架分层,再用接口包装各层的构件,接着设 计框架与构件或框架与框架之间的连接器,最后用一个组装实例来验证这种组装 方法。 ( 3 ) 建立了e i 冲系统的业务模型、组装规则及组装流程,从而为基于系统组 装模型的e i 冲系统的组装流程提供了依据。本文最后以系统组装模型细化得到 的e r p 系统的应用框架为指导,将框架组装模型组装得到的复合构件再次组装, 最终组装成e l 心应用系统。 5 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 1 4 本文的组织结构 本文一共分为七章,主要介绍了构件组装模型与利用构件来组装e l 冲系统。 以下将简要介绍各章的内容: 第1 章从e i 心系统存在的问题、项目的需求及意义来说明基于构件库的e l 冲 系统的立题意义。 第2 章将从构件库为基础的e r p 系统开发方面,阐述基于构件库的e r p 系 统的开发技术方法论和开发流程。在此基础上,提出了本文的研究思路:即从原 子构件开始,经过构件组装、框架组装和系统组装,将原子构件按照一定的组装 方法组装成e l 冲系统。 第三章至第六章是本文的重点。 首先,在论文中的第3 章,围绕构件组装技术的重要性,从构件组装的基本 技术,构件组装技术的分类和构件组装的实现技术分别阐述。然后提出复合构件 的组装模型、框架组装模型和e r p 的组装模型。这些模型是指导原子构件如何 组装成e l 冲的基础。 第4 章描述单个模块的复合构件是怎样组装生成的? 如何利用框架组装模 型,以基于框架和胶合代码的组装方法,将原子构件组装成复合构件。 第5 章介绍e r p 系统的业务模型,然后再将这些模型进行分解,最后利用 上文生成的复合构件,按照提出的e r p 系统组装模型进行组装,形成一个完整 e l 冲系统。 第6 章介绍e r p 系统的应用背景,以及以“搭积木 的集成组装方式的开 发方式,利用构件库中的构件搭建e i 强系统的优点。 第7 章总结全文并讨论进一步的研究工作。 6 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 第2 章基于构件库的e r p 系统开发技术 基于构件的软件开发,已经成为面向制造业信息化和电子政务的软件开发主 流开发技术,但由于客观条件的限制,目前基于构件开发技术的应用范围,还局 域于企业内部,重用的范围局限于单个的企业,基于构件开发的成果,也仅仅局 限于企业内部的共享,没有形成广泛的基于构件开发成果的共享基础。 “面向制造业信息化与电子政务领域的软件构件库平台”就是在这种背景下 产生的。它的开发和建立将极大的提高软件行业在面向制造业信息化与电子政务 领域上的软件构件的利用率,缩短软件开发周期、提升软件质量和减少软件开发 成本,提高软件企业的竞争力。 “面向制造业信息化与电子政务领域的软件构件库平台”建成并投入使用 后,提供了这样一个平台,规范、收集、管理、共享散落在各企业内部的成熟构 件,形成更广泛规模的构件化软件开发,解决原构件化技术应用范围窄的问题。 那么“什么是构件”呢? 目前软件构件有许多种定义的方法,但是对于这样 一个复杂的概念,每种方法都是从不同的角度出发来看待它的结果。下文将围绕 构件的定义和模型进行讨论。 2 1 构件概念 在1 9 6 8 年n 筒o 软件工程学术会议上,m c l l r o y 在论文中首次提出了可重 用软件构件库的思想以及形式化软件重用的概念【5 】。此后,构件重用引起了学术 界和工程界的广泛关注。但是至今,什么是构件仍是基于构件的软件开发中最难 回答的问题之一。在软件行业中,“构件”这个词也是用得最多,含义最模糊的 概念之一。比如它可以用于a c t i v e x 或j a v ab e a j l s 之类的用户界面构件,也可以 用于数据库管理系统之类的重要架构,还可以用于所有可重用的软件。 目前对构件还没有一个公认的、统一的定义。一般来说构件有广义与狭义之 分。从广义上讲,构件是系统中可以明确辨识的构成成分,而软件构件则是指软 件系统中具有一定意义的相对独立的构成成分【6 l 。比如需求分析、设计、代码、 测试用例、文档或软件开发过程中的其它制品。从狭义上来说,软件构件是指有 7 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 可复用价值的、能提供明确接口并完成特定功能的程序代码块( 源代码、二进制 代码或可执行代码) ,综合参考文献【7 】和【8 】可知目前比较认可的定义有: ( 1 ) 构件是指粗粒度的、相对独立的、可替换的软件系统的组成部分。它能 完成特定的功能,可以在一个定义良好的体系结构中被组装到应用系统中去,它 遵循和提供了一组接口的物理实现。 ( 2 ) 软件构件是一个软件组装单元,具有契约规定的一组接口和外在的环境 依赖。软件构件可独立部署和被第三方组装【4 】。 ( 3 ) 构件是指模块化的、可部署、可替换的软件系统的组成部分,它封装构 件的内部实现并对外提供一组接口。 ( 4 ) 在运行时,软件构件是一个可动态绑定的软件包。它可作为一个单元来 管理,通过文档化的接口来访问,这些接口可在运行时刻被发现。 随着对软件复用理解的深入,构件的概念已不局限于源代码构件,而是延伸 到需求、系统和软件的需求规约、系统和软件的构架、文档、测试计划、测试案 例和数据以及其他对开发活动有用的信息,这些信息都可以称为可复用的软件构 件【9 】。杨芙清等【1 0 j 认为构件是软件的构成元素,具有一定的功能和结构并符合一 定的标准,可以完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口 对外提供服务。一般而言,构件是软件系统中具有相对独立功能、可以明确辨识、 接口由契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体。广 义上讲,构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用 例等。 总之,各个理论家或实践者对构件提出了许多不同的看法,但总的来说,构 件就是指软件系统中可以明确辨识的构成成分,具有相对独立的功能和能被复用 的构件。 构件的定义有很多,但综合以上定义可以得到构件如下的特点【4 】: ( 1 ) 独立性。构件可独立开发( 需求分析、设计、编码、测试) 、部署和发布。 ( 2 ) 有一组定义良好的接口。构件通过一组接口对外提供服务。 ( 3 ) 封装性。构件是一个高内聚的软件包,可以通过接口与外界交互,屏蔽 了构件之间的差异,构件可通过独立开发并封装为符合模型标准的可执行代码。 构件封装采用的标准有:c o m c o m + n e t 、眦e 锄e j b 、c o l m a 、v c l 等。 8 中山大学硕士毕业论文 基于构件库的e i 冲系统的研究与实现 ( 4 ) 可替换性。构件被组装到软件系统中后,可以用具有相同接口和相同封 装标准的其它构件将其替换下来,替换中无须任何编码工作,替换后该软件系统 仍能继续运行。 ( 5 ) 可组装可调整性。构件可在定义良好的体系结构下直接地组装到软件系 统中,也可与其它构件组装成为粒度更大的构件以便复用。所以一般情况下,构 件要有方便的可调整机制以便于复用。 在以上理论的基础上,“面向制造业信息化与电子政务领域的软件构件库平 台项目定义了m g s c l 构件:m g s c l 构件是一种实用的统一构件,它面向制 造业和电子政务等应用领域,用于包装当前企业应用系统中的各种主流构件,并 在现有构件的基础上发展出一种新型的模型构件,这些构件都是基于构件的软件 开发方法中的可复用制品,能够跨越软件组织边界和软件生命周期为多个软件所 复用。 2 2 构件描述语言 一直以来,不同开发商在定义构件规范上都是使用不同的定义语言,因此构 件规格说明的最大问题就是规范描述语言的选择【l l 】。x m l 是数据通讯的标准, 得到国际标准组织和产业界绝大部分厂商的支持,因此能够在异构平台之间充当 数据交换标准的角色。而且,x m l 体系标准中包含s c h e m a 规范,可以通过s c h e m 文件对x m l 描述的语法进行规范化约束。x m ls c h e i i l a 是用一套预先规定的 x m l 元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。相应 的用一套精巧的规则指定了每个s c h e i l l a 元素或者属性的合法用途。如果违反这 些规则,解析器就会拒绝解析你的s c h e m a 以及任何同它相联系的文档。 因此,我们使用l 作为构件静态结构的描述语言,使用s c h e m a 详细定 义如何使用l 描述构件的静态结构。 2 3 构件模型 作为现代企业计算的基本原子,构件始终是企业计算学术界和产业界关注的 焦点。如何界定和描述构件? 构件与企业计算系统中其它组成部分的关系如何? 这些问题对于一个基于构件的应用系统来说是至关重要的。为了解决此类问题, 9 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 引进了构件模型这个概念。 构件模型是构件技术的核心内容,是构件定义和构件性质的具体化【1 2 1 。构 件模型除定义了构件的本质属性外,还规定了构件接口的结构以及构件与应用框 架、构件与构件之间的交互机制,使软件开发人员可以通过对构件进行动态组装 来建立应用系统,构件模型通常还提供创建和实现构件的指导原则【1 3 】。 软件构件技术是支持软件重用的核心技术之一,而构件模型是关于软件开发 中可重用软件构件和构件之间相互通信的一组标准的描述。构件模型是对现实构 件世界的抽象,主要研究的是构件的本质特征以及构件之间的关系,它是实现系 统化重用的第一个关键因素。软件重用是一项复杂的系统工程,要建立系统化的 重用计划,建立合理的构件模型是第一步。构件模型是为开发者定义软件构件而 建立的体系结构和a p i 集,使用构件模型的软件开发者通过重用已有的构件, 对软件构件组合来建立应用系统,从而节省时间和经费,提高工作效率,产生更 加规范、更加可靠的应用软件1 1 4 】。构件模型由构件和容器两种主要成分构成, 其中构件是指具有可复用价值的基本软件构件,而容器则是用于存放构件和提供 构件的外部环境,实现构件间的交互。 构件模型的思想是开发可复用的构件并将其集成组装到容器中,以得到新的 应用系统。构件模型定义了构件的功能、构件的接口、与其他构件及容器之间的 交互机制等。利用构件模型规范说明,构件开发人员专门开发那些可重用的构件, 而应用系统开发人员则把这些预先开发好的构件组装起来形成应用系统,组合过 程中也要遵循构件模型的规范。 根据定义可以看出,构件模型是构件技术研究与应用的交互点,既是构件技 术研究的主要内容和成果,又是构件技术运用于实际应用系统开发的主要依据。 目前,在学术界和产业界都己出现了许多构件模型,通常分为以下几类:构件描 述模型一i 冱b o o t 、a l o a f ;构件规约模型一3 c 模型、c d l 几l 模型( 如a c m e 、 c 2 、d a n i i l 、u n i c o n 、w d g h t ) ;构件实现模型一c o r b a 、c o m d c o m 、e j b ; 面向过程管理的宏观构件模型一青鸟j b 3 模型【1 5 】。 这些模型的目标和作用各不相同,而基于不同构件模型开发的构件难于统一 管理和使用。参与m g s c l 项目组的同事们首先对现有的一些构件模型进行了分 析和研究,然后提出了m g s c l 构件模型,既构件库的数据模型【1 6 l ,试图以一种 l o 中山大学硕士毕业论文 基于构件库的e r p 系统的研究与实现( 1 ) 概念 抽象描述构件的功能。如堆栈、银行帐号等,这类被使用的名词术语应尽可 能是同领域的公认词汇,以便于直观理解和相互交流。( 2 ) 操作规约 描述构件对外提供的服务。o 删i o n2 n a n 硷+ s 追n a t l l r e + a 痂m + e x c e p t i o n + c o m e ) 【t s远nature给出了操作的类型声明,由参数类型和结果类型构成,结果类型有 in、out、in&0ut三种模式。axiom用前后置断言的形式给出操作的功能规约。 e x c e p t i o n 描述了操作的异常处理。c o n t e ) ( t 描述操作对外要求的环境。( 3 ) 接口 描述构件与外界的连接规范,分入接口和出接口。 入接口刻画了一个操作集合。一个构件可以支持多个不同的入接口,外界可通过一个或多个入接口来请求构件的服务。 出接口描述构件对外界的依赖关系。当构件完成某一功能时,可能需要其他 构件提供的服务。出接口就是指明这种对外的依赖关系。 构件间存在入接口继承关系,这种关系指明:凡是父构件能响应的请求,其 继承者同样可以响应。子类型关系是造成多入接口的原因。( 4 ) 类型 类型用于定义“什么值可用作为操作参数。在面向对象的程序中,操作参 数可分为三类】: 基本类型值是程序语言中都会提供的基本类型,如整数、字符、字符串等。对象索引是指对象的名或地址,凭此将对象作为参数传递。 构造值:由对象和基本值混合联合建立的结构。 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 图2 4 就是根据m g s c l 的逻辑表示得到的构件模型图。 图2 - 4m g s c l 构件模型 m g s c l 构件模型是一个向后兼容的可扩展的模型体系,目前本项目中设计 的是其初始版本,伴随着基于构件开发技术的发展,m g s c l 构件模型也具备升 级的能力。 2 5 基于构件库的e 胂系统开发方法论 由于基于构件库的e l 冲系统开发,与基于传统构件技术的e i 心系统开发并 不相同。所以很有必要研究、实践基于构件库的e r p 系统开发方法论,从而实 现高效、高质的基于构件库的e r p 系统开发。 基于构件库的e l 冲系统开发方法,是指以构件库为基础,重用软件体系结 构以及软件构件的e r p 系统开发方法。从工程化与过程管理的角度讲,基于构 件库的应用系统开发分为四个阶段: ( 1 ) 需求阶段:捕获原始需求,识别业务需求,归纳业务需求; 1 8 中山大学硕士毕业论文基于构件库的e l 冲系统的研究与实现 构件组装,根据低层设计的构件模型,把原子构件或复合构件按设计要求组 装成复合构件。 复合构件是由一组关系紧密、相互协作的成员构件连接而成的。我们可以用 统一的观点来看待复合构件和系统。复合构件的引入为更高层的设计复用提供了 可能,其中的成员构件可以是原子构件或复合构件,它们之间的连接的建立就是 匹配构件各成员构件对外提供的功能,并将复台构件对外提供和要求的功能映射 到成员构件相应的功能上去。 复合构件并没有直接对应的实现体,其定义部分除了包含对外提供的功能以 外,还包括了其内部成员构件的接口以及它们之间的关系。 进行复合构件组装时,可以通过构件库管理系统,从构件库中检索、提取出 相关的复合构件作为参考,甚至输入,辅助复合构件实现,或直接使用。在组装 时,可以利用构件库平台提供的构件组装工具,进行规范、便捷的复合构件组装 及包装,也可以利用构件库平台提供的构件测试工具进行复合构件的测试和验证 工作。 同时,产出的新复合构件,通过构件库管理系统,进行复合构件的注册、入 库、发布,提供新的重用资源。 构件组装的主要产出物是复合构件。 ( 6 ) 框架组装 框架组装的目标是利用现有原子构件、复合构件组装应用系统的框架,对应 相应的框架模型,是框架模型的实现。 应用框架是指面向某领域的、可复用的“半成品软件,它实现了该领域的 共性部分,并提供一系列定义良好的可配置点以保证灵活性和可扩展性。可以说, 软件框架是领域分析结果的构件化,是领域内最终应用系统的模板。 也可以说应用框架是一种大型的,复杂的复合构件。 进行框架组装时,可以通过构件库管理系统,从构件库中检索、提取出相关 的应用框架作为参考,甚至输入,辅助应用框架实现,或直接使用。在组装时, 可以利用构件库平台提供的构件组装工具,进行规范、便捷的框架组装及包装, 也可以利用构件库平台提供的构件测试工具进行框架的测试和验证工作。 同时,产出的新应用框架,通过构件库管理系统,进行框架的注册、入库、 中山大学硕士毕业论文基于构件库的e l 冲系统的研究与实现 构件组装,根据低层设计的构件模型,把原子构件或复合构件按设计要求组 装成复合构件。 复合构件是由一组关系紧密、相互协作的成员构件连接而成的。我们可以用 统一的观点来看待复合构件和系统。复合构件的引入为更高层的设计复用提供了 可能,其中的成员构件可以是原子构件或复合构件,它们之间的连接的建立就是 匹配构件各成员构件对外提供的功能,并将复台构件对外提供和要求的功能映射 到成员构件相应的功能上去。 复合构件并没有直接对应的实现体,其定义部分除了包含对外提供的功能以 外,还包括了其内部成员构件的接口以及它们之间的关系。 进行复合构件组装时,可以通过构件库管理系统,从构件库中检索、提取出 相关的复合构件作为参考,甚至输入,辅助复合构件实现,或直接使用。在组装 时,可以利用构件库平台提供的构件组装工具,进行规范、便捷的复合构件组装 及包装,也可以利用构件库平台提供的构件测试工具进行复合构件的测试和验证 工作。 同时,产出的新复合构件,通过构件库管理系统,进行复合构件的注册、入 库、发布,提供新的重用资源。 构件组装的主要产出物是复合构件。 ( 6 ) 框架组装 框架组装的目标是利用现有原子构件、复合构件组装应用系统的框架,对应 相应的框架模型,是框架模型的实现。 应用框架是指面向某领域的、可复用的“半成品软件,它实现了该领域的 共性部分,并提供一系列定义良好的可配置点以保证灵活性和可扩展性。可以说, 软件框架是领域分析结果的构件化,是领域内最终应用系统的模板。 也可以说应用框架是一种大型的,复杂的复合构件。 进行框架组装时,可以通过构件库管理系统,从构件库中检索、提取出相关 的应用框架作为参考,甚至输入,辅助应用框架实现,或直接使用。在组装时, 可以利用构件库平台提供的构件组装工具,进行规范、便捷的框架组装及包装, 也可以利用构件库平台提供的构件测试工具进行框架的测试和验证工作。 同时,产出的新应用框架,通过构件库管理系统,进行框架的注册、入库、 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 发布,提供新的重用资源。 框架组装的主要产出物是应用框架。 ( 7 ) 系统组装 在框架的基础上,进行适当的配置和部分原子、复合构件的组装,形成应用 系统,实现需求模型,满足应用需求。 可以利用构件库平台提供的构件组装工具,进行规范、便捷的系统组装及包 装,也可以利用构件库平台提供的构件测试工具进行系统的测试和验证工作。 系统组装的主要产出物是应用系统。 而本文的重点是构件组装过程,即忽略掉需求分析、高层设计和底层设计这 几个环节,对于构件库中不存在的构件才会进行构件开发环节,否则会直接利用 从构件库中搜索到的原子构件,经过构件组装、框架组装和系统组装的组装流程 形成e r p 系统,具体的组装方法及过程,将在下文接着讲述。 2 4 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 更高层次的构件,组装的基本方法也因此而不断地变化与发展【2 刀。为解决通过 组装进行软件开发遇到的各种问题,业界已经提出了许多基本方法,如下: 拷贝粘贴t 煨疆哩坶毽灌溺粥蛇塑攀本身烫阱嘲羹锰霎翼j 舯鳢靶雾曼薹 0 掣薹薹例镬狸。臻攫嗨蔸疆墀删谚淫羹囊芹兹蓁鹃篓囊融美稻i 鹳雕羲哥萋号 塞霾蓁雾嘉霪薹薹i 件组装基本技术的支撑下,构件组装的实现方法呈现多样性,不能一一 列举。但是由于灰盒组装方法的极大优势,所以目前研究的组装方法基本都是灰 盒组装方法的延伸。灰盒组装方法可以分为四种:基于框架的、基于连接器的、 基于胶合代码的和基于体系结构的组装方法。 3 3 1 基于框架的组装方法 框架一般是经过很多人使用,所以结构很好,扩展性也很好。框架一般是成 熟的、稳健的,可以处理很多细节问题。我们经常会利用别人成熟的框架,直接 享受框架带来的事物处理、安全性、数据流控制等方面的好处。下面就两种比较 有代表性的基于框架的组装方法进行说明: ( 1 ) 基于p o r t 和l i n k 的组装 针对分布式系统中,使用构件所要面临的一些问题,g u i j u nw r a n g 等【2 9 】提出 了一种构件组装框架。该框架分别在3 个独立的视角( 体系结构视角、构件视角 和分布对象基础设施视角 ) 上考虑构件的组装问题。 体系结构视角定义了系统中使用的构件,构件的功能以及构件如何交互。设 计者可以通过重用一个架构设计模式来定义构件之间的交互,也可以利用功能性 的概念,例如服务和事件来建立构件的模型和构件的交互。 构件视角是考虑构件的合成和实现。一些构件可以由更小的构件组成。构件 可以来自于构件库或是由构件开发者从头开始实现例如j a v a b e 挪。 分布式对象基础设施视角则是考虑如何实现构件与具体q o s 参数的通信参 数包括性能,可靠性以及安全性的配置。 在组装框架的基础上,作者还提出基于p o r t 和l i l l l 【的构件组装方法。端口 ( p o r t )口,即构件核心功 x 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 ( 1 ) 基于多代理适配器( m a c ) 的组装 z h o n gw 萏n g 等【3 2 】提出m a c ( m u n i a g e n ta d a p t e rc o m p o n e n t ) ,它是一种用多 代理适配器来实现构件组装的架构。作者首先提出一种构件适配的组装方法,用 来解决接口匹配,消息处理,状态管理,环境模拟等问题。 为了解决构件匹配中的不足,作者采用构件之间通过一系列的适配器来通信 的方法,以此解决接口不匹配以及环境不支持等问题。m a c 在接口匹配时,适 配器将方法调用转换为消息,然后使用接口适配器定位消息,最后根据应用规约 交由构件进行相应的消息处理。m c 的消息处理一方面可以将方法调用转换成 消息来处理,另一方面也可以将消息映射成为内部函数或方法,用来实现独立的 适配器。m a c 的状态管理器是用来管理构件实例的状态空间,构件事件处理程 序的前后分别加上事件触发器,在构件状态改变时触发相应的信息1 2 引。 每个适配器都是一个代理对象,构件与适配器组装在一起能形成新的构件。 构件在组装前,必须要和适配器组装在一起,这个过程通过组装的自适应技术根 据主程序的描述自动完成。整个过程如下:首先要选择合适的构件,然后将其实 例化,接着将构件与适配器组装到一起形成新构件。m a c 的设计方法设计构件, 可以分为如下四个过程【2 8 】: 1 ) 根据应用需求和已有的构件库和适配器库,进行系统设计,包括开发新 的构件和适配器。 2 ) 定义和设计构件的动态组装脚本。 3 ) 收集从用户那里得到的反馈并调试。 4 ) 开发结束后,将完成的新构件和适配器添入到构件库和适配器库中。 基于连接器的方法分隔了构件的功能实现与其交互作用的实现,从而增加了 构件组装的可配置性,是目前条件下实现构件动态组装的有效技术途径之一。 ( 2 ) 基于消息连接器的构件组装 i h a r dn t a y l o r 等【3 3 1 提出的c 2 构架,主要是关心高级系统合成问题,它的 核心是通过传递消息实现构件交互并且遵循有限的可见性和底层独立性。在c 2 构架中,构件以一种分层的形式排列,完全不知道那些位于不同层次的构件。这 种独立性明显有利于构件的代替和重用性。 中山大学硕士毕业论文 基于构件库的e r p 系统的研究与实现 圈 请求 t i 豢星 l 构件2l 构件3 l 一l _ 【一 请求 t nnj 蠢票 图3 - lc 2 架构和消息流 图3 1 显示了一个c 2 构架,从图中看出,c 2 构架的基本元素是构件和连接 器。构件之间仅仅通过发送消息进行通讯,消息包括自上而下的通知消息和自下 而上的请求消息,消息的传递由连接器负责。每个构件都有一个顶端口和底端口。 顶端口说明构件响应的消息集合,以及构件向上发出去的请求集合。底端口则说 明构件响应的消息集合以及它向下发出的请求集合。每个构件都通过顶端口与上 面的构件通信而通过底端口与下面的构件通信【3 钔。一个连接器上连接的构件数 量是没有限制的,大大简化控制交互问题的复杂性,降低构件之间相互交换的成 本。 基于连接器的组装技术分隔开了构件的功能实现与构件的交互实现,增加了 构件的独立性,比较适合于构件的动态组装。但是连接件的弱点在于对系统执行 缺乏控制。因此基于连接器的组装通常与其他方法结合使用。 3 3 3 基于胶合代码的组装方法 许多构件在设计时并没有充分考虑到组装的需要,以致将构件的功能实现和 实现构件之间交互作用的代码混在一起,没能分隔开构件的功能实现与构件的交 互,不利于构件的组装。虽然引入连接器可以分离构件的交互,但其构件的交互 和功能实现却经常交织在一起,不利于复用。针对这种情况,提出了基于胶合代 码的组装方法。 3 l 园圃一一 百| i 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 胶合代码是指写一段程序来对构件间不匹配的接口进行转换,以此解决构件 的接口不匹配问题。所以胶合代码组装方法的基本出发点也是解决构件在组装时 出现的局部不匹配问题,如消息格式的不一致等。胶合代码的本质上也是一种连 接器,但由于其,常常表现为特定环境下的代码,因此,一般来说,它本身很难 被再次复用。胶合代码也可以与连接器合并使用,以解决连接器在构件装配时的 不匹配。 u w ea b 麟l i l n 等【3 6 】提出基于元编程灰盒连接器的构件组装方法,将连接器上 升到元编程层次,而构件之间的交互则由此生成的胶合代码来实现。 元编程灰盒连接器技术的基本思路是:在软件体系结构系统中,用连接器分 离构件的通信和特定应用功能,并用连接器生成依附于p 0 n s 的通信连接代码。 因此,只有定义灰盒连接器,才能使其自适应地调整构件通信连接并形成生成构 件组装胶合代码的元程序。元编程灰盒连接器技术设定应用系统由带有p 硼s 的 构件组成,构件之间由带有数据流连接的p o n s 连接,由连接器完成构件连接的 任务【2 7 】。 元编程灰盒连接器技术虽然在分隔构件的功能实现与构件的交互上起到了 一定的作用,但是它的缺点也是显而易见的。由于元编程灰盒连接器技术需要了 解构件的源程序,所以这一组装方法就类似就变成白盒组装方法了。在实际的应 中发现很难在不了解构件源代码的条件下编写胶合代码,j o n g i n o o nb a i l 【等1 3 7 】对 胶合代码的开发和商业构件软件的开发之间关系的分析及其相应的软件模拟也 间接地说明了这一点。 3 3 4 基于体系结构的组装方法 在研究者和实践者的共同努力与推动下,体系结构逐步从软件设计阶段扩展 到对整个软件生命周期的支持,也开始了在实际软件开发中应用体系结构的探 索。连接器的概念诞生以后,软件的体系结构一般就用构件、连接器及它们之间 的配置来描述【3 引。软件体系是对系统整体结构设计的刻画,为构件的集成组装 提供基础和上下文1 9 l 。 d a v i dc l u c k l 姗在文献【3 9 】中分析了三种不同的体系结构类型:对象连接 式体系结构、接口连接式体系结构和插头插座式体系结构,反映了人们对体系结 3 2 中山大学硕士毕业论文基于构件库的e i 口系统的研究与实现 构的不同认识以及它们在支持构件集成时的不同方式。 张世琨等在文中对以上三种体系类型,有详细的介绍m : ( 1 ) 对象连接式体系结构 对象连接式体系结构中,构件的接口只定义了其对外提供的服务,而没有定 义构件对外依赖的服务。它以面向对象的对象接口为典型代表,所以被称为对象 连接式体系结构。这种对象接口定义的非对称性使得构件在集成时,构件对外要 求的服务被隐藏在代码的实现中,即构件之间的连接关系无法直接在接口处定 义,只能是从一个构件的实现到另一个构件的接口。于是: 1 ) 当一个构件的接口发生改变时,必须检查系统中每个构件的实现,才能 发现此改变而影响的构件; 2 ) 即使有相同接口的构件也不能替换,因为新构件未必保持旧构件对其他 构件的依赖关系。 对象连接式的体系结构中,一个构件与其他构件的集成信息是被固定在构件 的实现中的,致使构件难以适应环境的变化,不是真正意义上的可复用产品。 ( 2 ) 接口连接式体系结构 接口连接式体系结构不仅为构件的接口定义了对外提供的功能,也为构件的 接口定义了要求的外部功能,从而显式地表达了对环境的依赖,提高了构件接口 规约的能力。构件的接口定义了构件所有对外交互的信息,构件在实现时不是直 接使用其他构件提供的功能,而是使用在接口处定义的外部功能。构件之间的连 接是通过所要求的功能和所提供的功能互相匹配来实现的。这样就能将上一种体 系结构类型中固定的连接方式变成灵活的连接方式,降低了构件之间的依赖关 系,提高了构件的独立性和可复用性。 接口连接式的构件接口满足了通信的完整性。一个构件需要的接口功能f 和 另一个构件提供的接口功能g 之间的连接,意味着任何对f 的使用将被对g 的使 用所代替。因此,在对象连接式的构件接口中存在的两个问题( 构件接口的改变 和符合同一接口的构件替换) 也就解决了。 相对于对象连接式的体系结构而言,构件之间的连接关系是在系统设计时建 立。在系统设计时定义了构件接口和集成信息,使得开发人员可以根据规约寻找 符合要求的构件,或根据需要对外委托加工构件。有利于形成了专业化的分工, 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 即构件生产和系统集成组装,小到一个软件开发组织内部,大到整个软件产业, 可以有效地提高系统开发的效率和质量。 ( 3 ) 插头插座式体系结构 在接口连接式体系结构中,构件接口的定义满足了通信完整性,可以较好地 支持接口处的构件集成。但是当接口定义的功能数量很大时,一个功能又往往同 几个构件要求的功能连接起来,所以连接的数目也就变得非常大。虽然接口连接 式体系结构把连接关系显式地标识出来了,但是功能连接的数量又成为了一个显 著的难题。构件之间复杂的连接关系影响到系统的整体结构,需要在系统设计时 尽早解决。 插头插座式体系结构是接口连接式体系结构的一个特例。为了解决功能和接 口连接的数量难题,考虑到构件之间的通信往往涉及到构件接口中功能的成组连 接,并且在这组功能之间通常存在着一定的语义约束关系,例如使用顺序和数据 流协议等,通过把彼此间关系紧密的功能( 包括提供的功能和要求的功能) 组织成 组,并封装为服务,使得接口中直接包含的内容减少,减少了接口中定义功能的 数量。并且只有两个对偶的服务之间才可以连接,对偶的服务是指两个服务所包 括的功能完全相同,但其中一个是提供功能,一个是请求功能。这种连接进一步 降低了接口连接的规模,并且易于检查两个对偶的服务之间的连接的正确性。 这里提出的基于体系结构的组装方法,只是初步的一个探讨,对于在进行建 模时如何支持不同的体系结构风格,以及不同的目标环境和不同的构件模型如何 实现组装问题没有进一步的讨论。 & 4e r p 构件组装模型的设计 构件可以通过组装形成新的构件或系统,组装是构件复用的手段,同时具备 可插拨,便于替换,导致系统可以由不同的开发商开发的构件组装而成。所以构 件组装是基于构件库的系统开发中最重要的组成部分,但是如何用一种灵活的组 装模型,能清晰地指导构件组装之间的复杂关系呢? 为了更好的研究这个问题, 将从构件的复合构件模型、框架组装模型和系统组装模型方面出发,具体如下文。 中山大学硕士毕业论文基于构件库的e r p 系统的研究与实现 3 4 1e r p 系统的复合构件组装模型 构件如果按结构来划分可分为原子构件和复合构件,原子构件是系统开发中 不需再分的最小单元。复合构件则是由一组关系紧密、相互协作的成员子构件连 接而成的构件l 柏l 。其中的成员子构件可以是原子构件或是更小、功能更简单的 复合构件。构件之间的连接就是匹配构件的各成员子构件对外提供的服务和对外 依赖的服务,并将复合构件对外提供和要求的服务映射到成员构件相应的服务上 去。复合构件的引入为更高层的设计复用提供了可能。 复合构件并没有直接对应的实现体,其定义部分除了包含对外提供的功能和 要求的功能以外,还包括了其内部成员构件的接口以及它们之间的依赖关系。可 以用图3 2 表示复合构件的关系。 图3 2 复合构件模型 从图3 2 可以看出,不管复合构件内部关系子构件的调用关系如何复杂,从 用户的角度来看,需要关心的只有复合后的构件对外提供的公共接口和所需要的 环境。复合构件的描述文件与原子构件的描述文件大致相同。唯一不同之处是复 合构件在描述文件中,需要描述出所有子构件的名称。 构件组装的主要产出物是复合构件。进行复合构件组装时,可以通过构件库 管理系统,从构件库中检索、提取出相关的原子构件或复合构件作为参考,甚至 输入,辅助复合构件实现,或是直接使用,将原子构件或复合构件按设计要求组 装成复合构件。 3 s 中山大学硕士毕业论文基于构件库的e i 心系统的研究与实现 3 4 2e r p 系统的框架组装模型 e r p 框架是指面向e r p 领域的、可复用的“半成品 软件,它实现了该领 域的共性部分,并提供一系列定义良好的可配置点以保证灵活性和可扩展性。可 以说,e r p 框架是领域分析结果的构件化,是领域内最终应用系统的模板。框架 组装的目标是利用现有原子构件、复合构件组装e l 冲系统的框架,是框架组装 模型的具体实现。 在e r p 系统中,构件是企业业务活动的具体实现,它接受用户传来的业务 数据,按照一定的商业逻辑对数据进行处理,然后再返回给用户。根据不同的业 务类型,可以有许多业务构件,为实现构件的重用性,可以将构件分为通用业务 构件和行业专用构件。从这个角度看,框架就是一种大型的,复杂的复合构件。 它可重用性较高,不仅封装了通用的业务逻辑和功能实现,还要管理和耦合各种 不同的构件,并在应用平台的基础上提供更具伸缩性构件运行的容器。 框架与构件的主要差别在于构件表现的是子业务逻辑,而框架表示的则是各 子业务逻辑间的关系,也就是构件之间的关系。表示一个业务应用全部子业务逻 辑间的关系的框架称为主框架。框架也是构件,它也可以被复用,但其可复用程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论