《一种可复用多层CS框架的设计与实现》由会员分享,可在线阅读,更多相关《一种可复用多层CS框架的设计与实现(69页珍藏版)》请在金锄头文库上搜索。
1、原 创 性 声 明本人声明: 所呈交的硕士学位论文, 是本人在指导教师的指导下, 独立进行研究工作所取得的成果。 除文中己 经注明引用的内容外, 本论文不包含任何其他个人或集体己经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体, 均己 在文中以明确方式标明。 本人完全意识到本声明的法律结果由 本人承担。学位论文作者签名:鹏 、灾日 期 : C w了 年 5月 8日关于论文使用授权的说明本人同意学校有权保留并向国家有关部门 送交学位论文的复印件, 允许论文被查阅和借阅。 同意学校及国家有关机构有权公布论文的全部或部分内容, 并采用影印、 缩印或其他复制手段保存论文。论文作者签名:
2、指导教师签名 宋格- 5 7T IC.日 期 , ,J-3.s s . 8日期:2 碑叼了r . I 口提要针对传统的三层结构对基于分布式的多个应用服务器、多个数据库的应用还有一些局限性的问题,本文提出一个通用的分布式四层框架,该框架采用四层架构客户端、分发服务器、应用服务器、数据库服务器。客户端通过广播的方式动态的建立与分发服务器的通信,分发服务器将客户端传过来的消息包动态转发到相应的应用服务器,应用服务器处理具体的业务逻辑、存取数据库并通过消息回调的机制通知相应的客户端数据源的改变。该消息回调机制是通过在客户端采用守护线程以及在应用服务器端采用回调线程的方式实现的。这使得分布式的各个客户端
3、、应用服务器之间的同步更加快速、灵活、方便.该框架可作为复杂多任务应用的实现框架模板,具有较强的通用性、可扩展性、灵活性与可复用性,从而降低应用系统开发的复杂性。该框架成功的应用在了某五星级大酒店的信息化系统中。目前,该系统运行良好.吉林大学硕士学位论文第一章 绪论1 . 1本文主要研究内 容作为现代软件工程的一个重要目标,软件复用一直受到软件开发与研究者的重视。软件复用意味着思想和代码的一次开发,可多次用于多个软件问题,从而提高软件生产率、可靠性和质量m 。 对于复杂应用系统来说,代码或部件级的低层次复用难以大幅度提高软件的生产率。尤其当开发具有相似体系结构或处理逻辑的多个应用系统时,能否提
4、高复用程度,对降低开发周期与成本极为关键。因此,概括具有某些特性或某个领域应用的共性,设计一个通用的应用框架,实现包括体系结构、设计方案与核心代码在内的整个软件构架的复用, 简化实际应用的构建,具有重要价值。另外,虽然三层结构具有很多的优点,其技术己经很成熟,应用的也己经相当广泛.但是三层结构对基于分布式的多个数据源 ( 数据库服务器)、多个应用服务器的应用还有一些局限性: 对于客户机端和应用服务器端的编码不仅不够灵活、方便、增加程序冗余性,而且还不利于系统的扩展和维护。基于上述两个因素,本文针对多数据源 ( 多数据库)、多应用服务器的情况, 提出一个可复用的多层C S 框架基于消息回调机制的
5、多层C S 框架。该框架是一个可复用的框架。应用该框架的目 的:第一,可以达到软件复用的目的,一个好的框架可以被其他应用所复用【z 1 。 在构件类似体系结构的系统中可以通过对本框架的复用既可以提高软件生产率、可靠性和质量又可以降低成本。充分利用软件复用思想的好处。第二. 解决了三层结构的在某些情况下,比如多数据源、多服务器情况下,还具有一些局限性的问题。更有利于对具有类似体系结构系统吉 林大学硕士学位论文的开发、维护及扩展。该框架是由 本文全新提出的。 本框架是在W i n d o w s 2 0 0 0 环境下, 使用V i s u a l C + + 6 . 0 开发平台实现的, 后台数
6、据库服务器使用Mi c r o s o ft S Q LS e rve r 2 0 0 0 . 1 .2与本文研究相关技术国内外研究现状 1 .2 . 1软件复用技术及国内外研究现状软件复用是指在开发新的软件系统时,对已有软件的重新使用,该软件可以是已存在的软件,也可以是专门设计的可复用构件。可复用性指的不仅仅是代码复用,而且包括在软件生命周期中产生的所有软件资源需求、分析模型、设计结构、 模块级实现结构、规格说明、文档、变换、测试等方面的复用。作为管理者或系统开发负责人,重要的问题是解决可复用的层次,即:是复用代码、 复用设计, 还是复用系统规划。软件复用可在实现层、 设计层和体系结构层三个
7、层次上实现。 根据抽象、选择、实例化和集成,又可将软件复用方法分成下述8类:高级语言形式、设计和代码整理形式、源代码构件形式,软件模式形式、应用生成程序形式、甚高级语言形式、转换系统形式以 及软件体系结构形式(w . , )实现层的软件复用是指对己有的程序代码进行复用。设计层复用是指对已有的软件系统的设计信息进行复用。由于设计阶段比编码阶段在软件生命周期中占有更重要的地位,因此应用设计层的软件复用可以更好地降低软件开发成本,提高软件生产率。体系结构层的复用是最有效的软件复用。它主要是软件体系结构形式化地复用。软件体系结构形式化复用将软件的框架组织、全局结构设计作为复用对象,软件体系结构的复用吸
8、取了其他可复用对象的优点,是目前最理想的可复用对象。建立一个完备的软件体系结构库,以及用于支持、管理体系结构的软件开发环境,形成一种新的基于复用的软件开发规范,将对今后的软件开发产生重要的影响。. 2 -吉 林大学硕士学位论文目 前, 软件复用技术主要基于下列几种方式: 函数复用、 类或对象复用、 组件复用、 模块复用、 框架复用。 软件部件越小, 被重用的机会越大,而生 产率越低。 相反 , 部 件越大 , 被重 用的 机会 越小 ,而生 产率越高 p . s ) 。 各种复用方式比 较如下:( 1 )函数复用,属于实现层,即代码的复用, 服用级别最低。 被复用的几率最大,但效率最低。( 2
9、 ) 类或对象复用,也属于实现层复用,级别较低。( 3 ) 组件复用,属于设计层复用,级别较高。( 4 ) 模块复用,属于设计层复用, 级别较高。( 5 )框架复用,属于体系结构层复用,级别最高。目 前,在软件复用研究领域内,面向对象方法与技术应用的最为广泛。因为面向对象技术具有封装和继承机制。封装,是指把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。他有两个涵义, 第一个涵义是,把对象的全部属性和全部服务结合在一起, 形成一个不可分割的独立单位( 即 对象) ,这即体现了模块化的思想,达到了软件复用的目的。第二个涵义也称作“ 信息隐蔽” ,即尽可能隐蔽对象的内部细节,
10、 对外形成一个边界, 只保留有限的对外接口 使之与外部发生联系。其好处在于减少重复性的工作W继承, 是面向 对象技术可提高软件开发效率的重要原因 之一 其定义是: 特殊类的对象拥有其一般类的全部属性与服务, 称作特殊类对一般类的继承。继承对软件复用是很有益的。在开发一个系统时,使特殊类继承一般类,这本身就是软件复用,然而,其复用意义却不仅如此。如果把用面向 对象方法开发的类作为可复用构件提交到构件库,那么在开发新系统时不仅可以直接地复用这个类,还可以把它作为一般类,通吉林大学硕士学位论文过继承而实现复用, 从而大大扩展了软件复用的范围fi 虽然基于面向对象方法与技术的软件复用应用得很广泛,但大
11、多都是在实现层上的复用,也即代码的复用。由于编码处于软件生命周期中低层次的地位,因此,基于面向对象的软件复用对于降低软件成本,提高软件生产率的作用不是十分显著。其次, 是 采用中 间 件技术(7 ) 。 常 用的中 间 件技术 有微 软公司的 C O M( C o m p o n e n t O b j e c t M o d e l 组件对象模型) 和O M G 组织提出的 C O R B A( C o m m o n O b j e c t R e q u e s t B r o k e r A r c h i t e c t u r e 公 共 对象 请求代理体 系结构) 。 一般来说,
12、中间件封装的都是业务逻辑的功能, 而业务逻辑因为应用领域的不同而不同,因此,其复用范围受到很大制约.但中间件技术的复用属于设计层的复用, 即以构件的形式进行复用,虽然其复用的级别比实现层软件复用的级别高,但是却比体系结构层复用的级别低。第三,即采用框架技术。基于框架技术的复用属于体系结构层的复用,也是最有效的复用方式。但主要由于以下原因,该复用技术并没有被很好的利用。一是,软件复用意识不强,复用驱动的软件工程并没有被重视、贯彻和执行。二是,复用驱动的软件工程会大大的增加软件开发的 人力、 物力、 成本以 及开发周 期 le i ,由 于 软件市 场竟争的 越 来越激烈,而且大多数人对眼前利益比
13、较重视,而对于眼前利益来说,软件复用思想会产生弊大于利的效果。三是,缺少必要的完备体系结构库。 1 . 2 . 2三层结构技术及国内外研究现状当前, 三层结构技术己经相当成熟, 其应用也相当广泛。目 前, 三层结构有两个发展分支: 一个是向WE B 发展,即基于WE B 方式:另一个是向多层发展,传统的三层结构毕竟不是万能的,能适应任何系统.实际上,在某些情况下三层结构还有一定的局限性,因此, 可以 在三层基吉林大学硕士学位论文础上增加具有某些特定功能的“ 层”以达到解决问题的目的。这样也充分体现了具体问题、具体分析的思想,以不至于被固有模式束缚头脑。第二章 基于消息回调机制的多层C S 框架
14、概述2 . 1消息回调机制从现实的角度分析,客户端与服务器之间并不是简单的严格单向的请求一 服务关系, 而往往表现为双向的协同关系。 也就是说客户端与服务器的角色划分并不是一成不变的绝对的划分,而是上下文相关的动态的相对划分。在复杂系统中,服务器在实施服务的过程中完全可能需要动态获取特定于客户端的数据或者动态引用客户端提交的行为或者动态请求客户端执行相应的动作。 相对于客户端与服务器的正向请求一 服务关系而言, 这种服务器对客户端的逆向请求一 服务关系就称之为服务器对客户端的回调 ( c a l l b a c k ) .这种回调是通过回调函数实现的.Wi n d o w s 是基于消息传递机
15、制的,Wi n d o w s 系统允许用户截获应用程序窗口的消息并使用自 定义的函数来处理截获的消息,当消息被截获时,这个自 定义的函数是由系统自 动调用的, 这个自 定义的函数就被称为回调函数。简单地说,回调函数就是由用户自定义,由系统自动调用的函数。回调函数与一般的函数具有迥然不同的调用机制。一般的函数无论是系统函数还是用户自定义的函数,都是由用户在程序中显示的调用,而回调函数却恰恰相反, 它是由 用户定义, 但却山 系统调用幻 。2 . 2三层C S 结构 2 . 2 . 1三层C S 结构概述三层结构是指数据库服务器、 应用服务器和客户机. 。其对应的软件层 ( 逻辑层)为:1 )
16、客户层( 表示层) , 即客户机上的G U I 应用, 常配有网络浏览器或可一 5 -吉林人学硕士学位论文执行程序。一般不在客户层存放业务逻辑或存放很少。2 ) 中间层 业务逻辑层) , 通常由应用服务器或 WE B服务器实现, 中间层提供业务逻辑、事务调度, 以及与数据库有连接的机器, 它充当客户与数据库之间的桥梁o M T S 或S y b a s e C T S 等事务 服务器都是中间 层服务器, C O M或 C O R B A对象可以嵌入其中提供业务逻辑。中间层为三层应用提供了伸缩性, 也提供了与客户通信的安全性。3 ) 数据库层, 通常存放像S Q L S e r v e r , O r a c l e S e r v e : 等关系数据库系统。在三层结构中( 见图2 . 1 ) , 每一层支持应用程序的一个独立部分。 客户机完成显示逻辑, 应用服务器完成商业处理逻辑, 而数据库服务器完成数据存取逻辑。 在事务处理过程中, 每个客户机只向应用服务器发出一个请求, 这就减少了网络通信和竞争。 每个应用程序的商业逻辑部分由该程序的所有用户共享, 这就更好控制