(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf_第1页
(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf_第2页
(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf_第3页
(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf_第4页
(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的bs结构企业应用平台初探.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 近年来,b s 结构以零客户端、易维护性、分布性等优点成为企业应用系统 的主流结构之一。相应的开发标准( 如j 2 e e 等) 、开发工具( 如d e l p h i 等) 也层 出不穷。但是这些工具与标准一般都是侧重于服务器应用程序,对客户端的一些 功能支持较少,以致于客户端的开发工作相当繁重。并且对于服务器端的企业逻 辑描述支持较少,这使得服务器端的企业逻辑一般都存在于代码之中,以至于维 护性较差。 为了解决传统b s 结构企业应用系统开发的上述二个问题,建立b s 结构的 企业应用平台,便于二次开发企业应用系统。本文首先分析了传统b s 结构( 没 有使用x m l ) 应用系统的一些不足,然后结合x m l 提出了相应的解决方案,并 通过b s 结构企业应用系统功能、数据、及流程的分析得出了b s 结构应用中功 能、数据及过程需求,最后在详细设计中利用x m l 的优点及分层设计的思想, 初步解决了问题。 为了使平台具有更好的维护及扩展性能,本平台借签了m v c ( m o d e l v i e w c o n t r 0 1 ) 模式思想对服务器端与客户端进行了分层,客户端分为表现层、控制层、 数据层及b t s 交互层,服务器端为分b t s 交互层、协调层、逻辑层及数据层。 这些层次各有所职。客户端:表现层负责显示,它是用户与系统交互的主要接口, 也是系统的外观;数据层是其它各层交互的纽带,数据层中的主要数据集对象与 表现层中的控件进行数据绑定:其它各层通过对数据层中的数据操作从而完成客 户端一些基本功能。服务器端:b t s 交互层负责服务器与客户端之间的数据交互: 协调层负责将b t s 数据包解开更新到服务器端的数据层,并调用逻辑层中的模块; 逻辑层负责解释执行企业逻辑的描述;同样数据层也是服务器端其它各层交互的 纽带。 在平台中,充分的使用了x m l 的自描述性及扩展性的优点,对平台进行了 合理的分层,并在相应的层中预留了数据接口,以适应二次开发的特殊要求,这 增强了平台的通用性,并且无论是客户端的微观逻辑,还是服务器端的宏观业务 逻辑都使用x m l 进行描述,使得处理逻辑与程序代码分离,增加了代码的通用 性及整个系统的可维护性。 关键词:x m l ;b s 结构;企业应用平台 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t i nr e c e n ty e a r s t h es l n i c t l 】r eo f b sh a sb e c o m eo n eo f t h ep o p u l a ra r c h i t e c t u r e so f e n t e r p r i s ea p p l i c a t i o ns y s t e mb yi t sa d v a n t a g e so fz e r oc l i e n t s i d e 、e a s ym a i n t e n a n c e a n dt h ec h a r a c t e r i s t i co f d i s t r i b u t i n g a tt h es a m et i m e ,m a n yc o r r e l a t i v es t a n d a r d sa n d d e v e l o pt o o l sa p p e a r e d b u tt h e s es t a n d a r d sa n dd e v e l o pt o o l sg i v el i t t l es u p p o r tt ot h e f u n c t i o n so fc l i e n t - s i d ea n dl e a dt ot h eh e a v yd e v e l o p m e n tw o r ko fc l i e n t - s i d e f u r t h e r m o r e ,t h el i t t l es u p p o r to f e n t e r p r i s el o g i cd e s c r i p t i o ni ns e r v e r - s i d el e a dt ow o r s e p e r f o r m a n c eo f t h em a i n t e n a n c e i no r d e rt or e s o l v et h ep r o b l e m sd e s c r i b e da b o v ea n dt ob u i l dp l a t f o r mo f e n t e r p r i s ea p p l i c a t i o nw i t hb ss t n l c t u r ef o rr e d e v e l o p i n g t h i sp a p e rf i r s t l ya n a l y z e st h e l i m i to ft r a d i t i o n a ls t r u c t u r eo fb s ,t h e ng i v e st h es o l u t i o nt ot h ep r o b l e m sb a s e do n x m l a tl a s l , t h ep l a t f o r mi sd e s i g n e di nd e t a i l sb ya n a l y z i n gt h er e q u i r e m e n t so ft h e f u n c t i o n 、p r o c e d u r ea n d d a t a t h es e r v e r - s i d ea n dt h ec l i e n t - s i d ea r ed i v i d e di n t os e v e r a ll a y e r s t h ec l i e n t - s i d e i sd i v i d e di n t of o u rl a y e r s :v i e w , d a t a , c o n t r o la n db t si n t e r c o m m u n i c a t i o nl a y e r e a c h l a y e rh a ss p e c i a lf u n c t i o n :t h ev i e wl a y e ri st h em a i ni n t e r f a c eb e t w e e nt h es y s t e ma n d t h eu s e r ;b e c a u s et h ed a t al a y e ri st h ec e n t e ro ft h eo t h e rt h r e el a y e r sa n di t sm a i nd a t a o b j e c ti sb o u n d e dw i t ht h ec o n t r o l so f t h ev i e wl a y e r , a l ll a y e r sb u td a t al a y e rf i n i s ht h e i r d u t i e sb yo p e r a t i n gt h ed a t ao b j e c t si nt h ed a t al a y e r t h es e r v e r - s i d ei sm a i n l yd i v i d e di n t of o u rl a y e r s :b t si m e r c o m m u n i c a t i o nl a y e r , h a r m o n yl a y e r , d a t al a y e r , l o g i cl a y e r t h eb t si n t e r e o m m u n i c a t i o nl a y e ri sr e s p o n s i b l e f o rt h ec o m m u n i c a t i o nw i t ht h ec l i e n t s i d e ,t h eh a r m o n i z el a y e ri sr e s p o n s i b l ef o r u l 讨a 蜒a n ds e n d i n gt h ed a t af r o mt h ec l i e n t - s i d et od a t ao b j e c t si nd a t al a y e ro ft h e s e r v e r - s i d ea n df o rc a l l i n gt h er e l e v a n tm o d u l ei nl o g i cl a y e rt oo p e r a t et h ee n t e r p r i s e l o g i c t h ed a t al a y e ri sa l s ot h ec e n t e ro ft h eo t h e r s ,a n dt h eo t h e rl a y e r sf i n i s ht h e i r d u t i e sb yo p e r a t i n gt h ed a t ao b j e c t si nd a t al a y e r i nt h ep l a t f o r m ,b o t ht h em i c r o c o s m i cl o g i ca n dt h em a c r o s c o p i c a ll o g i ca r e d e s c r i b e db yx m lw h i c hs e p a r a t et h el o g i cf r o mt h ec o d e t h es e p a r a t i o ni m p r o v e st h e u n i v e r s a lp e r f o r m a n c ea n dt h em a i n t e n a n c ep e r f o r m a n c eo f t h es y s t e m k e y w o r d s :x m l ;b s ;p l a t f o r m ;e n t e r p r i s ea p p l i c a t i o np l a t f o r m 西南交通大学硕士研究生学位论文第1 页 1 1x m l 概述 第1 章绪论 x m l 同h t m l 一样,来自s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e 即标 准通用标记语言) 即标准通用标记语言的一个子集。在w e b 出现之前,s g m l 就早 已存在。正如它的名称所示,s g m l 是一种用标记来描述文档资料的通用语言,它 包含了一系列的文档类型定义( 简称d t d ) ,在d t d 中定义了标记的含义,因而 s g m l 的语法是可以扩展的。s g m l 十分庞大,既不容易学,又不容易使用,在计 算机上实现也十分困难。鉴于这些因素,出现了能够在计算机网络上应用的h t m l 语言。 h t m l 只使用s g m l 中很小一部分标记。为了便于在计算机上实现,h t m l 规 定的标记是固定的,即h t m l 语法是不可扩展的,它不需包含d t d 。h t m l 这种 固定的语法使它易学易用,在计算机上开发h t m l 的浏览器也十分容易。正是由于 h t m l 的简单性,使w e b 技术很快得到普及。 x m l 也是一个精简的s g m l ,它将s g m l 的丰富功能与h t m l 的易用性结合 到w e b 的应用中。x m l 保留了s g m l 的可扩展功能,这使x m l 从根本上有别于 h t m l 。x m l 要比h t m l 强大得多,它不再是固定的标记,而是允许定义数量不 限的标记来描述指定的信息,并且允许嵌套的信息结构。h t m l 只是w e b 显示数据 的通用方法,而x m l 提供了一个直接描述w e b 数据的通用方法。 1 2 选题依据 1 2 1b ,s 结构企业应用系统的发展 i n t e m e t 已经有几十年的历史了,创造了辉煌的成就,这主要应归功于h t m l 超文本标签语言的出现。h t m l 以其简单简练的语法、通用性及易学陛,使i n t e m e t 可以接近每一个普通人,正因为如此互联网才得以普及发展以至今1 5 1 的辉煌。随着 i n t e m e t 网的普及,目前越来越多的企业单位希望把自己的应用系统构建在i n t e m e t 上,采用b s 结构来开发企业级应用系统。 1 _ 2 2 基于x m l 的b s 结构应用系统的复杂性 上述这些发展也使得人们对w e b 的要求越来越高,而相应的w e b 文件也越来 西南交通大学硕士研究生学位论文第2 页 越复杂化、多样化。h t m l 的简单与普遍性原则虽曾使w e b 的推广受益匪浅,但 反过来也成为其发展的桎梏。 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 【l 】的出现为构建b s 结构应用系统铺平 了道路,使得近几年来基于b s 结构的企业应用系统得到了较大的发展。但是 x m l 与b s 结构企业应用系统的结合在国内仍处于起步阶段,要构建基于x m l 的b s 结构企业应用系统仍是比较复杂的工程,因此其中必然有很多有价值的东 西值得出探索、挖掘。 本论文的选题正是x m l 与b s 结合开发企业应用系统的热点领域,希望通过 本文的讨论可以大致构建b s 结构企业应用平台的主体部分,为b s 结构企业应用 系统的二次开发提供方便。 1 2 3b ,s 结构企业应用系统的理论支撑及实践研究 随着x m l 兴起及其研究领域的日益拓宽、内容的逐渐深入,x m l 的数据描 述方式、数据类型定义、数据操作方式及x m l 在b s 结构企业应用系统中的应用 等方面都有较丰硕的成果,并且本人在二个与x m l 及b s 结构企业应用系统相关 的设计与开发中积累了宝贵的资料,所有这些研究成果及实践资料都为本文的研究 奠定了基础。 1 3 研究的主题及重点 近年来,b s 结构以零客户端、易维护性、分布性等优点成为企业应用系统的 主流结构之。相应的工具及标准也层出不穷,如d e l p h i 7 0 、j b u i l d e r 、n e t 及j 2 e e 等,但是这些工具都有一个共同的特点,就是对服务器端的应用程序开发支持的非 常好,可以进行快速开发,但是对客户端程序开发却没有相应的快速开发工具。究 其原因主是目前客户端的代码主要是采用脚本语言( 如j a v a s c r i p t 、v b s c r i p t 等) , 而脚本语言是解释性语言,它是纯文本的,因此对公司而言,最大的缺点就是其公 开性。而客户端的工作往往又是繁琐的,因此缺少了客户端的开发工具将严重延长 开发时间。 采用b s 结构,企业内部管理会很简单,员工只需要通过浏览器就可以进行各 种操作。再加上程序都安装在服务器上,维护成本会大大降低。但是由于不同的企 业运作千差万别,即使同一企业不同地方的分支机构的运作可能都不同,因此如果 每次都开发全新的企业应用系统成本将非常高。比如为成都电力局开发的营销系统, 并不一定适合自贡电力局使用,因为不同地方电费计算方式或者其它的一些运作可 西南交通大学硕士研究生学位论文 第3 页 能不同。因此还得重新开发系统,当然也可以通过修改代码,但是无论是哪种方式, 成本都是比较高的。 本文的主题就是探讨一种基于b s 结构的企业应用平台,在该平台上可以方便 的进行b s 结构企业应用系统的二次开发。二次开发所需的工作只是重新设计客户 端操作界面,使用相应的工具生成企业逻辑的x m l 描述( 企业逻辑是指编码输入 电脑系统的法则、规章、原则) ,建立数据库即可,因此可大大缩短系统开发时间, 提高系统的可维护性。 1 4 主要特点与创新 本文注重对比分析,在以下几个方面有所创新: ( 1 ) b s 结构企业应用系统客户端及服务器端逻辑结构层次的扩展 b s 结构企业应用系统天然的具有客户端与服务器端的划分,对这两端逻辑结 构层次的进一步扩展,关系到系统的多方面性能,本文把客户端及服务器端都分成 四层,各层各有所职,层问采用约定的通信方式,为平台的通用性设计打下了基础。 ( 2 ) 使用x m l 描述平台所需的基础数据结构 在平台主体设计中使用x m l 描述各种复杂的数据结构,包括业务逻辑( 有利 于业务逻辑与程序代码分开) 、客户端与服务器端及各端层间交互的接口规范、层内 具体使用到的数据结构等,这些数据结构的设计是整个平台设计乃至二次开发的前 提。 ( 3 ) 业务号的划分 本文通过业务号来配合客户端与服务器端应用程序的交互,及服务器端业务逻 辑的处理。业务号的划分细化到每一次处理,即每一次处理都会有唯一的d 号与之 对应,这样不但可以满足平台设计时的需要,而且二次开发可以利用业务号可以扩 展所需的功能。 1 5 适用范围与限制 由于本论文所设计的平台的服务器端对企业逻辑是解释执行的,因此在性能上 不可避免的会下降,因此本平台不适用于大型系统,不适用于对性能要求很高的系 统,同时,本平台的特点在于客户端的数据处理与提交及服务器端的企业逻辑解释 执行,由于单纯浏览性的网站对这些要求不多,开发也不复杂,如果使用本平台做 二次开发,对平台的利用性也不高,所以对于这类系统建议直接开发。综上所述本 西南交通大学硕士研究生学位论文第4 页 平台适用于有一定逻辑性且对陛能要求不是很高的中小型b s 结构企业应用系统。 本平台客户端所使用的浏览器必须支持x m l 及脚本语言,最好使用i e 5 0 以上 版本的浏览器,服务器端的开发语言支持反射技术( 如咧等) ,支持v 儿并且数据 集对象最好支持s q l 语句或者类s o l 语句( 如a d o n e t 等) 。对操作系统的要求依 赖于实现本平台所使用的语言。 西南交通大学硕士研究生学位论文第5 页 第2 章传统b s 结构应用系统的不足及解决方案 2 1 传统b s 结构应用系统中的不足 2 1 1 客户端数据提交问题 传统b s 结构的应用程序,在w e b 页面中每增加一条记录都得与服务器交互 一次,这种提交方式的灵活性较差,这种交互方式一般要求进行数据操作时始终在 线,这就给具体的应用带来的障碍。比如一些野外作业应用系统或者一些连锁店系 统可能没有条件做到始终在线( 这会提高系统的使用成本) 。 因此在基于b s 结构的应用系统的客户端应该像c s 结构中的客户端一样可以 有数据缓存,以便实现数据的批量提交,这也便于实现数据的批量更新。 2 1 2 数据更新问题 传统b s 结构应用系统中,更新客户端的数据,服务器要重新传送整个w e b 页面的数据以刷新客户端页面。比如当用户输入登录信息并提交后,虽然提交的数 据可能只是用户名和密码,但是为了维护当前w e b 页面的状态,服务器得重新传 送整个w e b 页,这种作法具有以下几个缺点: ( 1 ) 加重了服务器的负担; ( 2 ) 增加了网络流量; ( 3 ) 增加了开发的复杂性; ( 4 )由于客户端与服务器交互过程中无用数据可能会大大超过有用数据,从 而影响到系统的维护及测试; ( 5 ) 客户端w e b 页面每发送一次数据都会因页面刷新而有明显的迟延、闪 烁感,降低了系统的友好性。 因此在基于b s 结构应用系统应该像其它类型的多层结构系统( 如用d e l p h i 开 发的多层应用系统) 一样,客户端与服务器之间的通讯数据应尽可能只包括有效的 数据。 2 1 3 服务器端程序通用性问题 由于h t m l 的标签集是固定的,不能扩展,而且h t m l 自我描述能力差,使 得客户端发送到服务器端的数据本身携带附加信息较少,服务器端的处理程序很难 西南交通大学硕士研究生学位论文第6 页 艮据数据本身决定该如何处理这些数据,因此服务器端需事先知道如何处理客户端 发送的数据,也就是说可能要造成客户端页面与服务器端处理程序一一对应的关系。 这不但刚氐了服务器端处理程序的重用性,给测试、维护带来了麻烦,而且造成程 序员的分工不明确,使得程序即要开发客户端程序又要开发服务器端程序。 为了解决这个问题,客户端发送的数据本身就附带详细的自我描述信息,服务 器根据这些附加信息可以知道如何处理这些数据。 2 。1 。4 客户端界面交互问题 客户端界面交互这里指的是不与数据库打交道的一些操作,这些操作特点是可 以动态的改变输出结果( 包括打印机的输出结果) ,而且改变的结果应马上显示出来, 不应具有明显的停滞感。由于这种交互与数据库无关,只涉及界面动态改变问题, 并且要求反应迅速,因此没有必要也不能与服务器通讯。 虽然d h t m l 技术在不使用x m l 的条件下也可以实现许多客户端界面的交互 问题,但是对于复杂数据的显示,比如数据客户端的数据绑定,报表分页显示等问 题却有点力不从心。 2 1 5 客户端数据保存问题 对于一个应用系统,客户端一般具有保存数据的功能,特别对于多层结构的应 用系统,由于网络传输问题( 也可能是其它需求) ,客户端数据可能会经常性的保存 在本地硬盘中,在需要的时候或者有条件的时候才把数据提交到服务器保存至数据 库。而传统的b s 结构不具有这种存盘的功能,它所具有的存盘功能仅限于保存原 始的w e b 页面,而用户输入数据的保存功能很差,即使保存了用户输入的数据, 用户也很难把这些数据单独提取出来。 在客户端具有按指定格式保存数据的能力,这样便于在网络不通时可以把填写 的数据保存在客户机磁盘上,在网络连通时再提交数据,或者直接把存放数据的移 动存储器人工送至服务器端加载保存到数据库中。 2 1 6 客户端数据有效性验证问题 判断用户输入数据是否满足一定的要求( 如数据类型、长度、格式等) ,即有效 性验证是应用系统基本要求。在w e b 页面中涉及有效验证的输入界面主要是文本 输入框( 由如语句 创建的w e b 控件) ,但是w e b 页面 中的文本输入框本身对数据的输入是不进行判断的。所以需要一种方法对文本框中 的数据进行有效性检验。 西南交通大学硕士研究生学位论文第7 页 2 2 解决方案比较 2 2 1 客户端数据提交问题解决方案比较 要解决客户端数据提交问题,目前常用的基本上有以下几种方法: ( 1 ) 利用可变长度的二维数组,每次增加、嬲j 除和修改数据时该二维数组进 行相应的操作: ( 2 ) 用字符串变量保存客户端的数据: ( 3 ) 定义x m l 数据集对象,并把该数据集对象与指定的界面控件进行数据 绑定。 这n 种作法都可以实现批量提交数据的功能,但是第一、二两种方法具有明显 的几个缺点: ( 1 ) 不能与界面控件进行数据绑定,即控件中对数据作的修改不能自动更新 到二维数据组中,同样二维数组中数据的更新不能自动在界面控件中反映出来, 这就大大增加了开发的复杂性: ( 2 ) 很难描述复杂的数据结构( 如主从表) 。 而x m l 数据集对象在客户端浏览器中就像是一个存在于内存中的微型数据库, 它不但可以表示关系数据库的表结构,存储数据,而且还可能表示表之间的关系, 并可以方便的与客户端界面中的控件进行数据绑定。因此第三种方法具有明显的优 点。 2 1 2 - 2 数据更新问题解决方案比较 为了实现客户端与服务器之间的传递的数据尽可能只包含有效数据,而不是整 个w e b 页面,这在以前很难做到。虽然通过开发低层的数据通讯控件,然后现嵌 入w e b 页面的方法实现上述要求,但是在w e b 页面加入其它语言生成的控件( 非 w e b 控件) 的方法由于安全性及速度问题目前一般不采用( 因此本文后继部分不再 考虑使用这种方法) 。现在主流浏览器( 如i e 浏览器) 本身就_ 可以铋建与咀。相关 的通讯对象可以很好的用于客户端与服务器之间的x m l 数据通讯,具有作法如下: ( 1 ) 创建一个x m l h t t p 对象实例,使用o p e n 方法完成初始化; ( 2 ) 调用x m l h t t p 对象的s e n d 方法向服务器发送x m l 数据包; ( 3 ) 使用x m l h t t p 的r e s p o n s e x m l 、r e s p o n s e t e x t 、r e s p o n s e b o d y 或 r e s p o n s e s t r e a m 属性接收w 曲服务器的响应并对其进行处理和显示。 实现以上步骤的j a v a s c r i p t 的关键代码: 西南交通大学硕士研究生学位论文 第8 页 f u n c t i o ns a v e x m l t o d b a t s e r v e r ( o b j x m l d s o ,s r e s p o n s e a s p n a m e ) o b j x m | d s o 为x m l 数据集对象; s r e s p o n s e a s p n a l n e 为服务器端接收请求的a s p 文件名。 v a l x m l h t t p = d e wa e t i v e x o b j e e t ( ”m i c r o s o f t x i v i l h t t p ”) ; x m l h t t p o p e n ( ”p o s t , s r e s p o n s e a s p n a m e ,t r u e ) ; x m u a t t p s e n d ( o b j x m l d s o x m l ) ; x m l h t t p o n r e a d y s t a t e c h a n g e = d i s p l a y ; f u n c t i o nd i s p l a y 0 i f ( x m l h t t p r e a d y s t a t f ”c o m p l e t e ”) fi f ( x m l h t t p r e s p o n s e x m l x m l ! 。”) w i n d o w a l e r t ( x m l h t t p r e s p o n s e x m l x m l ) ; e h e w i n d o w a t e r t ( ”服务器返回空包! t ) ; e l s e w i n d o w a l e r t ( x m l h t t p r e a d y s t a t e ) ; 从这些代码可以看出,客户端发送和接收数据都是由x m l i - i t i p 对象来负责执 行而不是由w e b 页面,x m l h t r p 对象发送的数据只是一个x m l 数据包,接收 的数据也只是一个x m l 数据包,当x m l h t t p 接收到服务器端的x m l 数据包后, 可以结合d h t m l 技术把该包中的数据动态的嵌入到w e b 页面指定的位置显示, 也可以把该数据包更新到已有的数据集对象( d o m 对象) 中,而不需要更新整个 w e b 页面。这种数据通讯过程如下图: 图2 1x m i 数据交互过程 而且传统w e b 页面中要提交的数据都必须存放在标签2 v 十 范围 内定义的控件中,这对页面的设计带来了很大的不便,因为这样在页面设计时不但 要严格的确定哪些控件中的数据需要提交,而且要把这些控件集中到一个f o r m 标签 对里,而在实际开发过程中往往很难满足这个要求。 现在b s 结构应用系统中引入x m l 就可以很好的解决这个问题,从上述代码 可以看出x m l 数据的提交没这些限制,而且x m l 引入可优化系统结构,使得客户 端结构可分成数据层和表现层,各结构层各有所职有利于系统的开发、升级、测试 与维护。 西南交通大学硕士研究生学位论文第9 页 2 2 3 服务器端程序通用性问题解决方案比较 为了解决服务器端程序通用性问题,必须使客户端提交的数据含有附加信息, 这些附加信息应告诉服务器程序应如何处理这些提交的数据。基本上有二种方法可 以解决这个问题: ( 1 ) 在w e b 页面中f o r m 标签对中引入一些不可见控件,然后再用特定的信 息填充这些控件,这些信息在f o r m 标签对中提交按钮( 表达式创建的控件) 被单击后自然会发送到服务器。 ( 2 ) 另外就是把附加信息加入x m l 数据包,随其它数据一起发送到服务器。 在m 浏览器中,以第一种方法发送的数据可能会出现浏览器的地址栏里,因此 可能会引起安全问题,并且第一种法具体实施时不利于分层设计、不利于护展。 而以上缺点在第二种方法中不存在,以x m l h i t p 发送的x m l 数据包具有良 好的扩展性,且数据长度不限。而且x m l 具有天然的自我描述功能,这更加有利 于系统结构的设计,在系统分析阶段可以设计特定的x m l 包数据格式,形成协议, 客户端任何页面发送的数据包格式都是相同的,服务器自然可以自动处理这些数据 包。同样服务器端发送到客户端的数据包格式也应该是相同的。 2 2 4 客户端界面交互问题解决方案 目前解决客户端界面交互问题可以采用d h t m l 技术与x m l 结合的方法, d h t m l 脚本语言是在客户端执行的与服务器无关,这就解决了客户端的界面交互 不与服务器通讯的问题。而x m l 可以定义复杂的数据结构,d h t m l 技术使用脚本 语言可以很好的操作这些数据结构,以实现具有复杂功能的界面,并且由于x m l 可以文件的形式保存在硬盘上,因此就可以保存页面设置,以便下次打开页面时恢 复上次保存的界面状态,这一点对于实现w e b 页面的套打非常重要。 2 2 5 客户端数据保存问题解决方案比较 要在客户端保存数据可以有以下几种解决方案( 不考虑使用非w e b 控件) : ( 1 ) 在客户端安装个人版的w e b 服务器( 如w i n d o w 9 x 中的p w s 个人w e b 服务器) 。 ( 2 ) 在w e b 页面中使用自己开发a c t i v e x 控件用于保存数据。 ( 3 ) 使用i e 浏览器内置的保存x m l 数据的功能。 第一种方法的优点是可以定义保存的路径,这样可以把数据保存到移动磁盘中。 但存在明显的缺点,即要安装相应的软件。第二种方法也具有第一种方法的优点, 西南交通大学硕士职究生学位论文第l o 页 并且不需要安装w e b 服务器,但是它可能会引发安全问题。第三种方法不需要安 装相应的软件,但是不能指定保存路径。因此应根据具体情况采用相应的办法,也 可以在系统中同时采用多种方法互补。 2 2 6 客户端数据有效性验证问题解决方案比较 为了解决用户输入的有效性,可以采用以下三种方法: ( 1 ) 客户端编程的方法:即在文本框获得输入后,用客户端程序对该输入进 行有效判断。但是这种方法工作量比较大,因为它必须对各神数据类型进行判断, 而且要把相应的方法与指定的文本框关联起来。 ( 2 ) 服务器端自动验证:如使用a s p n e t 开发程序时,可以为服务器端控制 件指定数据格式,当客户瑞的数据提交蜀服务器端后,服务器会对这些控件中的 数据自动进行验证。 这种方法虽然简单但这种数据验证是在服务器端执行的,也就是浏览器本 身不会对用户输入进行有效性判断。 ( 3 ) 利用x m l 自身特性:把x m l 数据集对象与指定的文本框进行数据绑定。 如果该x m l 数据集对象梧对应的x m 乙文件有相应钓s c h e m a 文件,潮览器就会 自动对用户的输入进行验证,如果用户的输入与s c h e m a 中的定义不符,浏览器就 会弹出警告框,并抛弃用户的输入。即删除文本框的值。 很明显以上三种方法中,第三种是最可行的,它可以在不编程的情况下实现数 据的客户端的有效性验证。但是也存在缺点,即开发人员必须为每个x m l 文件配 置摺应的s | c h e m a 文件。为了饵决这个问题,在系统编程阶段前必须先开发相应的工 具可用于根据数据库自动生成x m l 文件及相应的s c h e m a 文件。 综上所述x v l l 成功补足了传统b s 结构应用系统中的一些缺陷。下面具体从 功能、流程及数据这三方面分析b ,s 结构企业应用平台中的基本需求。 西南交通大学硕士研究生学位论文第1 1 页 第3 章b s 结构企业应用平台需求分析 3 1 功能需求分析 为了分析方便,以下讨论分成客户端与服务器端这两个方面进行。 3 1 1 客户端功能需求分析 b s 结构应用系统属于多层分布式系统,对于多层结构的客户端应尽可能的简 单,它只相当于一个输入输出的终端,而且不同的用户的操作界面只体现特定用户 或者角色所需的功能。 客户端程序不应反映宏观上的业务逻辑,即部门之间的业务逻辑,在客户端的 界面中只应体现微观的业务逻辑( 即某一业务工作步骤,或者对某一表单处理的前 后顺序。本文在客户端的控制层中对这种业务逻辑进行控制。) 。所有宏观上的业务 逻辑应放在服务器端形成业务逻辑层,而在服务器端业务逻辑可以用数据库中的存 储过程,也可以用程序来实现。 多层结构中客户端的这种特点和传统手工操作是类似的,如在手工情况某用户 或者角色只需要在特定的条件下接收其它用户或者角色传递过来的数据,然后处理 这些数据并在特定- r d 牛下传给其它人即可,而不需要了解接收的数据是怎么产生的, 或者上传的数据会做什么用。因此在这个用户的操作界面中只需要有与其相关的数 据操作界面及提交按钮即可。 业务逻辑的执行是在服务器端进行的,对于用户它是不可见的。即在整个系统 中有一些内在的业务逻辑在执行着,它制约着客户端的行为,比如在上级部分汇总 数据前首先进行的是判断基本数据是否完整。而且这种业务逻辑是可跟踪和追查的。 为了系统的可操作性,可以在不同部分操作界面中作一些必要的提示,比如当 汇总数据时可以提示某个基层单位的数据仍没有到达,或者当所有的基层数据到达 时弹出提示框说明可以进行汇总了。但这些并不是必需的,因为如果在基层数据没 有完备的情况下进行数据汇总,业务逻辑层会做出反应。 同时把业务逻辑层与用户接e 1 分开有利于系统的开发、测试、维护及升级。因 为客户端( 即用户接i q ) 只相当于输入输出终端,它们互相独立、功能简单,所以 增加或删除一个客户端的功能不会影响其它客户端模块。而业务逻辑层是为所有客 户端模块服务的,所以业务服务器端业务逻辑的改动自动会在客户端体现出来,而 西南交通大学硕士研究生学位论文 第1 2 页 不用修改各客户端模块的代码。 既然客户端中相当于输入输出终端,因此它具有输入输出终端的基本功能:即 输入功能、输出功能( 包括屏幕及打印机的输出) ,同时应该具有与服务器之间的交 互功能,为体现字段之间的逻辑关系和输入完整性的判断并减轻用户工作量,客户 端还应具有用户输入判断及自动计算功能。 因此客户端功能需求可以表示为: i 客户端功能需求i 士00士 1 输入功能输出功能客户端与服务器端的交互功能微观逻辑判断及自计算功能 图3 - 1 客尸端功能需求图 3 1 2 客户端功能描述 ( 1 ) 输入功能:能接收用户的输入;用户可以新增、修改、删除记录;可以 在客户端记录集中改变当前记录,即数据导航; ( 2 ) 输出功能:可以对用户的输入做出反映,比如用户打印预览时,可以把 记录集自动分页显示:可以显示与服务器的交互信息,比如显示用户的身份验证 是否通过,数据提交是否成功等;还可以在多记录同时显示时,突出显示当前记 录。 ( 3 ) 与服务器的交互功能:可以把客户端的数据提交到服务器,也可以接收 服务器的返回信息。 ( 4 ) 微观逻辑判断及自计算功能:可以判断用户输入的有效性、并根据用户 已输入的数据计算相关的数据项。 3 1 3 服务器端功能需求分析 服务器端的程序应该服务于所有客户端程序,同时因为客户端不体现宏观逻辑, 因此服务器端应能处理业务逻辑。同时服务器还应具有与客户端的通信功能,与数 据库、磁盘文件、内存交互功能。因此服务器端功能需求可以表示为 1 服务端功能需求1 士 l 与客户端交互功能与数据库、磁盘文件、内存交互功能处理业务逻辑功能 西南交通大学硕士研究生学位论文第1 3 页 图3 - 2 服务器端功能需求 3 1 4 服务器端功能描述 ( i ) 与客户端通讯功能:接收客户端的数据提交并反馈: ( 2 ) 与数据库、磁盘文件、内存交互功能:可以按指定要求操作数据库、磁 盘文件、及内存中的数据; ( 3 ) 处理业务逻辑功能:能够解析执行已定义的业务逻辑描述。 3 2 过程需求分析 b s 结构应用系统工作过程一般为:用户输入数据、验证、自动计算并填入相 应的数据项、用户确认、提交、服务器接收客户端的提交数据、验证用户身份、处 理提交数据。该过程可以描述为: 图3 3b s 结构应用系统过程图 这些基本的过程,在平台中应能体现出来。 3 3 数据需求分析 客户端 服务器端 为了系统各子模块可以互相协调,为了系统的可扩展性、维护性,在系统的各 个层次必须构造统一的x m l 数据结构作为协议,系统各层次的模块设计必须满足 指定的协议。如客户端与服务器通讯的x m l 数据包就必须有固定的结构,这样服 务器才能知道如何处理客户端发送过来的数据包,客户端也才能知道服务器的反馈 信息的处理方式。 而且客户端提交的x m l 数据如果与数据库有关,则应保证x m l 中特定元素的 数据类型与数据库表中特定字段的数据类型一致,或者可以相互转化。 西南交通大学硕士研究生学位论文第1 4 页 第4 章平台总体结构 4 1 传统1 3 8 结构企业应用系统中的系统结构模型 传统b s 结构企业应用系统的系统结构一般包括客户端和服务器端,客户端主 要是一些页面和脚本代码,服务器端主要包括与客户端的接口对象、协调对象、企 业逻辑对象、及与数据库交互的数据模块对象等。相应结构如下图: r 一一一一1 j 一一一j 图4 1 传统b s 结构企业应用系统中的系统结构模型 这种结构的特点是客户端没有明显的分层,即客户端页面框架、数据、代码及 样式表基本上在一个文件中,即使分成不同的文件,也没有明显体现分层思想,这 样的客户端必然会给整个系统的扩展维护带来麻烦。上述结构的另一个特点是服务 器端存在多个具体的企业逻辑对象,这不利于平台通用性的实现。 4 ,2 对传统结构的改进 本论文所讨论的结构与上述结构在总体上是一样的,但是在客户端也进行分层 设计,并且在服务器端去掉了负责具体企业逻辑执行的企业逻辑对象,代之以解释 企业逻辑描述的解释对象,相应的结构如下图所示: i 一一。一一一一一一j 应用服务器 i 比用服肯需 ;,j 在上图中并没画出客户端的层次关系图,具体请参见客户端分层设计小节。可 以看出图4 - 2 比图4 1 结构简单了许多,因为在图4 2 中所有的企业逻辑统一由企业 逻辑解释对象负责解释执行,而不再是具体的企业对象一对的负责执行。这样的 西南交通大学硕士研究生学位论文第1 5 页 好处是企业逻辑不再写入程序代码中,而由x m l 来描述,并放入数据库中,这使 得企业逻辑的维护性就大增强了,当然它也是以性能为代价的。 图4 - 2 中协调对象的性质发生了改变,它不再是把具体的请求分发到各具体企 业对象中执行,而是把请求中数据分类更新到服务器端的数据集中,再调用企业逻 辑描述解释对象,该对象的具体作用请参见服务器端模块设计。 4 3 客户端应用程序分层设计 由于在b s 结构的系统中很明显的存在客户端与服务器端划分,这两部份无论 从功能还是从实现技术上都存在很大的不同,因此本文的模块设计也分成客户端与 服务器端两大部份。 客户端的程序基本上可分成四层,即表现层、控制层、数据层和b t s ( b r o w s e r t os e r v e r ) 交互层( 即客户端应用程序与服务器应用程序的交互层) 。 ( 1 ) 表现层:将x m l 数据集对象中的数据显示在w e b 页面中,表现层由 w e b 控件组成,这一层只负责显示数据,而不负责对数据的操作。用户通过操作 w e b 控件与系统进行交互。部分w e b 控件是与x m l 数据集对象绑定的,改变 它们的值,x m l 数据集对象中的值会做出相应的改变。 ( 2 ) 控制层:控制层主要功能是通过操作数据层中的数据集对象实现的: ( 3 ) 数据层:即由x m l 数据集对象组成,客户端主要数据都来源于该层; ( 4 ) b t s 交互层:该层主要负责把客户端需要发送到服务器的x m l 数据按 固定的格式进行打包并发送到服务器;同时也负责解析服务器的反馈包,并更新 客户端相应的数据集对象,从而自显示在w e b 页面中。 客户端程序的这种层次图可以表示为: w e b k 擀- lw n 控件:l w z e 控件n tttt 0士 f 厂画 m 数据集i 与服务器交互模块 表现层 控制层 数据层 b t s 层 西南交通大学硕士研究生学位论文第1 6 页 图4 3 客户端程序层次图 从图中可以看出数据层处于核心地位,无论是用户的交互操作,还是与服务器 的通讯,归根结底都是对数据层中的数据进行操作。 4 4 服务器端应用程序分层设计 服务器

温馨提示

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

评论

0/150

提交评论