(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf_第1页
(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf_第2页
(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf_第3页
(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf_第4页
(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机应用技术专业论文)软件模式的研究和应用——校园一卡通系统的设计和实现.pdf.pdf 免费下载

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

文档简介

东北大学硕士学位论文 摘要 软件模式的研究和应用一校园一卡通系统设计与实现 摘要 对模式的讨论现在已经比较深入了,业界在很多方面已经达成了共识。但在模 式的分类体系方面还不是非常成熟,也没有一个一致的标准。本文在总结各家分类 体系的基础上,提出模式分为两个层次:架构模式和设计模式。现有八种比较成熟 的架构模式,而设计模式又分成三类:面向对象的设计模式、分布式模式、并发模 式。这其中面向对象的设计模式业界讨论最为充分,也得到了广泛的应用。分布式 模式和并发模式分别应用于分布式环境和并发环境中,而且面向对象的模式又不能 概括。 模式的分类、提炼、表述和应用是本文的主线之一。本文的另一条主线是校园 一卡通系统的设计和实现。本文在提出了模式的层次和分类之后,介绍了一卡通系 统的应用和需求状况。根据一卡通的需求,为整个卡通系统确定了一种架构模式 层模式。然后较详细阐述了一卡通系统的实时服务予系统的系统需求和所采用 的架构模式:m v c 模式。 本文的重点是模式与校园一卡通系统的结合,即模式在校园一卡通系统的设计 和实现中的应用,并在其中提炼出了一些较实用的设计模式,如时间戳公告模式等。 设计模式在实时服务子系统中的应用按照m v c 模式分三个层次进行了描述:m o d e l 模型层,v i e w 视图层( 对于本子系统即客户端) ,c o n t r o l l e r 控制器层。每个层次 中都应用或提炼出了一些设计模式。对每个模式的描述都较详细的提出了设计中所 面临的问题及解决方案。为了更好的体现模式与实际设计的结合,所涉及的每个模 式都分以下五个方面进行了阐述:项目有关背景、需要解决的问题、相关模式介绍、 解决方案、权衡与分析等。 另外需要指出的是,本文还在校园一卡通系统的设计过程中,提炼出了几个新 的设计模式。如时间戳公告模式、状态会话模式、占位符模式等,希望能起到抛砖 弓1 玉的作用。 关键词:架构模式设计模式层模式m v c 模式校园一卡通实时服务子系统 一i i 东北大学硕士学位论文 a b s t r a c t s t u d ya n da p p l i c a t i o no ns o f t w a r ep a t t e r n - - - - d e s i g na n d i m p l e m e n t a t i o no f e c a r de x p r e s so nc a m p u s a b s t r a c t p a t t e r n sh a v eb e e nd i s c u s s e dd e e p l y a n dm o r ec o m m o ns e n s eh a sb e e na c h i e v e di n t h ei n d u s t r y b u tt h ec l a s s i f i c a t i o ns y s t e m so i lp a t t e r n sa r en o tm u c hm a t u r e ,a n de v e n h a v en oa n ys t a n d a r d b a s e do nv a r i o u sc l a s s i f i c a t i o ns y s t e m s ,t h i sp a p e ri n t r o d u c e st w o k i n d so fp a t t e r n s :a r c h i t e c t u r ep a t t e r n sa n dd e s i g np a t t e r n s t h e r ea r ee i g h tw e l l - k n o w n a r c h i t e c t u r ep a t t e r n sw h i l ed e s i g np a t t e m sc o n s i s to ft h r e ek i n d s :o r i e n t e d - o b j e c td e s i g n p a t t e m s ,d i s t r i b u t e dp a t t e r n s a n dc o n c u r r e n t p a t t e m s a m o n g t h e s e p a t t e r n s , o r i e n t e d - o b j e c td e s i g np a t t e m sh a v eb e e nd i s c u s s e ds u f f i c i e n t l ya n dh a v eb e e na p p l i e d w i d e l y d i s t r i b u t e dp a t t e r n sa n dc o n c u r r e n tp a t t e r n s ,w h i c hc a nn o tb ei n c l u d e d i n o r i e n t e d o b j e c tp a t t e r n s ,a r eu s e di nd i s t r i b u t e do rc o n c u r r e n te n v i r o n m e n tf r e q u e n t l y c l a s s i f i c a t i o n ,a b s t r a c t i o n ,p r e s e n t a t i o na n da p p l i c a t i o no f p a t t e r n sa r eo n eo f t h em a i n t h r e a d so ft h i sp a p e r d e s i g na n di m p l e m e n t a t i o no ft h ee c a r de x p r e s so nc a m p u si s a n o t h e rm a i nt h r e a d h a v i n gp u tf o r w a r dt h el a y e r sa n dc l a s s i f i e a t i o no fp a t t e r n s t h i s p a p e ri n t r o d u c e dt h ea p p l i c a t i o na n dr e q u i r e m e n to fe - c a r de x p r e s s w ec h o o s ea n a r c h i t e c t u r ep a t t e r n :l a y e rp a t t e r nf o re - c a r de x p r e s sd e p e n d i n go ni t sr e q u i r e m e n t t h e n w ee x p l a i nt h es y s t e mr e q u i r e m e n to ft h er e a l t i m es e r v i c es u b s y s t e mi nd e t a i la sw e l la s t h ea r c h i t e c t u r e ,m v cp a t t e m t h i sp a p e rp u ti t se m p h a s i so nt h ec o m b i n a t i o no fp a t t e r n sa n de c a r de x p r e s so n c a m p u s i na n o t h e rw a yt os a y ,t h ek e yi s t oa p p l yp a t t e r n si n t ot h ed e s i g na n d i m p l e m e n t a t i o no fe c a r de x p r e s so nc a m p u s a n dt oa b s t r a c ts o m ep r a c t i c a ld e s i g n p a t t e r n ss u c ha st i m e s t a m p b u l l e t i np a t t e r n t h ea p p l i c a t i o no fd e s i g np a t t e r n si nt h e i m p l e m e n t a t i o no f t h er e a l t i i n es e r v i c es u b s y s t e mh a sb e e nd e m o n s t r a t e di nt h r e ea s p e c t s a c c o r d i n gt o cp a t t e r n s :m o d e ll a y e r v i e wl a y e ra n dc o n t r o l l e rl a y e r i nt h e s u b s y s t e m ,s o m ed e s i g np a t t e r n sh a v eb e e nu s e do rh a v eb e e na b s t r a c t e d t h ep r o b l e m a n dt h es o l u t i o nh a v eb e e nd e s c r i b e di ne v e r yi n v o l v e dp a t t e r n i no r d e rt om a t e r i a l i z et h e i n t e g r a t i o no fp a t t e r n sa n dt h ep r a c t i c a ld e s i g n s ,e v e r yp a t t e r na v a i l a b l eh a sb e e n i l l u m i n a t e di nf i v ea s p e c t s :b a c k g r o u n di nt h ep r o j e c t ,t h ep r o b l e m ,t h er e f e r e n c eo ft h e p a t t e r n ,t h es o l u t i o na n dt h ea n a l y s i s t h e r ei sa n o t h e rf a c tn e e dt ob es p e c i f i e d 1 1 n sp a p e rh a sp r e s e n t e ds o m en e wd e s i g n p a t t e m sa b s t r a c t e df r o mt h ed e s i g no ft h ee - c a r de x p r e s so nc a m p u s t h e s ed e s i g n p a t t e r n si n c l u d e st i m e s t a m p - b u l l e t i np a t t e m ,s t a t es e s s i o np a t t e r n ,o c c u p i e rp a t t e me t c k e yw o r d s : a r c h i t e c t u r ep a t t e r n ,d e s i g np a t t e r n ,l a y e rp a t t e r n ,m v cp a t t e r n , e c a r de x p r e s so nc a m p u s ,r e a l - t i m es e r v i c es u b s y s t e m i i i 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取得的研究成果 除加以标注和致谢的地方外,不包含其他人己经发表或撰写过的研究成果,也不包 括本人为获得其他学位而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示谢意。 、 学位论文作者签名:书目文 r期:妨5 、 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论文的规定: 即学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查 阅和借阅。本人授权东北大学可以将学位论文的全部或部分内容编入有关数据库进 行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名:否则视为不同意。) 学位论文作者签名 签字f 1 期: 导师签名 签字日期 东北大学硕士学位论文第一章引言 第一章引言 1 1 模式研究的历史和现状 模式的研究并非起源于软件工程行业,而是起源于建筑工程设计大师 c b r i s t o p h e ra l e x a n d e r 的关于城市规划和建筑设计的著作。他在其著作t h e t i m e l e s sw a yo fb u i i d i n g 【j ( 建筑的永恒之道【2 j ) 中提出了工程设计的目的 和一些哲理性的原则,在ap a t t e r nl a n g u a g e :t o w n s ,b u i l d i n g s ,c o n s t r u c t i o n 1 4 ( 建筑模式语言口j ) 中更是直接提出了模式的概念。 此后,设计模式逐渐被引入到软件设计领域。例如w a r dc u n n i n g h a m 和r e n t b e c k 所写的关于在s m a l l t a l k 语言中使用模式的论文 u s i n gp a t t e r nl a n g u a g e s f o ro b j e c t o r i e n t e dp r o g r a m s 1 2 0 1 在1 9 8 7 年发表。j i mc o p li e n 也于1 9 9 1 年出 版了 a d v a n c e dc + + p r o g r a r m n i n gs t y l e sa n di d i o m s 一书i i 。但这些对软件工 程的影响都不大。 提出并总结了软件设计领域固有的一些设计模式的划时代的著作是g o f ( g a n g o ff o u r ,四人帮) 的 d e s i g np a t t e r n s e l e m e n t so fr e u s a b l eo b j e c to r i e n t e d s o f t w a r e 【6 j ( 设计模式一可复用面向对象软件的基础 7 】) ( 以后称为g o f 9 5 ) 。 从此以后在软件工程领域对设计模式的研究和讨论一发而不可收拾,模式也不断被 应用到软件工程的各个方面。现在编程模式语言大会( p a t t e r nl a n g u a g e so f p r o g r a m m i n g ) 每年一次定期在美国举行,大会的论文也汇编成书。 从设计模式引入到软件设计领域的过程可知,这一过程是与面向对象语言的发 展紧密相关的。在o o 语言出现和流行之前,模式在工程领域就被广为讨论。但那时, 软件设计还处于面向过程甚至更原始的阶段,模式在软件工程领域并无太大的用武 之处。从这个意义上说,模式在软件设计领域的应用可以说是与o o 语言的发展相得 益彰。现在o o 语言已经相当成熟,甚至有人说已经进入了后o o 语言阶段。设计模 式在0 0 语言中的应用也在向深化和广化的发展,并结出了累累硕果。 1 2 对模式的理解 什么是模式? 永恒的建筑之道的作者c h r i s t o p h e ra l e x a n d e r 说:“每个 模式描述了一个在我们身边不断发生的问题以及该问题的解决方案的核心。这样你 就能重复使用该方案而不必重新做起。”【2 1 这句话是对于建筑而言的,但x c t - i t 件 东北走学硕士学位论文 第一章引言 工程同样适用。不过在这里类代替了房间,接口代替了门窗和走廊。 以上对于模式可以概括成如下语言:所谓模式就是对于问题及其解决之关键的 抽象,其目的是为了重用。 尽管对于模式的本质大家有了共同的看法,但分歧往往出现于在不同层次上对 模式的理解和运用上。例如f r a n kb u s c h m a n n 等在p a t t e r n o r i e n t e ds o f t w a r e a r c h i t e c t u r e ,v o l u m e1 :as y s t e mo fp a t t e r n s 嘲( 面向模式的软件架构, 卷一:模式系统【9 】) ( 以后称为p o s a l ) 一书中叙述了八种架构模式:层( l a y e r s ) 、 管道和过滤器( p i p e sa n df i i t e r s ) 、黑板( b l a c k b o a r d ) 、代理者( b r o k e r ) 、 模型一视图一控制器( m o d e l v i e w c o n t r o l l e r ) 、表示一抽象一控制( p r e s e n t a t i o n a b s t r a c t i o n c o n t r 0 1 ) 、微核( m i c r o k e r n e l ) 、映像( r e f l e c t i o n ) 。还介 绍了五类设计模式:结构化分解、工作组织、访问控制、管理、通信模式。每类设 计模式又包含了若干个具体的设计模式。p o s a l 将针对每种语言的具体的惯用法看 成最低层的设计模式。g a m m a 等在g o f 9 5 中将模式分成三类2 3 种:创建型模式,结 构型模式,行为型模式。d e e p a ka l u r 等在 c o r ej 2 e ep a t t e r n s 一一b e s tp r a c t i c e s a n dd e s i g ns t r a t e g i e s 1 2 ( g j 2 e e 核心模式) ( 以后称为c j p 0 1 ) 一书中将 模式分成三类:表现层模式、业务层模式、集成层模式,每一层中又描述了若干模 式。 还有众多的书籍和文章总结出了其它各式各样的模式,似乎令人莫衷一是。 1 3 本文所采用的模式系统 从以上可以看出,各家对模式系统的分类比较杂乱。但根源在于对模式进行抽 象的层次不同。c j p 0 1 将j 2 e e 架构分成了三层,然后分别描述各个层中用到的模式。 这种分类法比较实用,对讲清楚模式的应用比较有好处。但它不系统也不通用。g o f 9 5 根据模式作用的机理将模式分成三类,其命名和分类影响比较广泛。但这种分类比 较松散,各个模式彼此之间缺乏逻辑上的联系,而且它的体系也只基于面向对象的 领域。还有其它比较重要的领域如分布式系统、并发系统,g o f 9 5 并未进行归纳。 p o s a i 开创了将模式从层次上进行分类的先河,提出了架构模式的概念,并认为设 计模式是比架构模式低一个层次的模式。它将架构模式按照应用场合进行了经典的 分类,将设计模式也按照应用场合进行分类,并将惯用法也称为模式。 本文结合了卡通系统的设计过程,在整体上将模式按照层次进行了分类。最 上层为架构模式,对架构模式采用了p o s a l 的按照应用场合进行分类的方法。在架 构模式之下为设计模式。将g o f 9 5 的分类和命名体系归结为面向对象的设计模式, 一2 一 东北大学硕士学位论文 第一章引言 工程同样适用。不过在这里类代替了房间,接u 代替了门窗和走廊。 以上对于模式可以概括成如下语言:所谓模式就是对于问题及其解决之关键的 抽象,其目的是为了重用。 尽管对于模式的本质大家有了共同的看法,但分歧往往出现于在小同层次上对 模式的理解和运用上。例如f r a n kb u s c h m m m 等在& a t t e r no r i e n t e ds o f t w a r e a r c h i t e c t u r e ,v o l u m el :as y s t e mo fp a t t e r n s i s ( 面向模式的软件架构。 卷一:模式系统 9 1 ) ( 咀后称为p o s a i ) 一书中叙述了八种架构模式:层( l a y e r s ) 、 管道和过滤器( p i p e sa n df i l t e r s ) 、黑板( b l a c k b o a r d ) 、代理者( b r o k e r ) 、 模型一视图一控制器( m o d e l v i e w c o n t r o l l e r ) 、表示抽象控制( p r e s e n t a t i o n a b s t r a c t ,i o n c o n t r 0 1 ) 、微核( 撕c r o k e r n e l ) 、映像( r e f l e c t i o n ) 。还介 绍了五类设计模式:结构化分解、工作组织、防问控制、管理、通信模式。每类设 计模式又包含了若干个具体的设计模式。p o s a i 将针对每种语言的具体的惯用法看 成最低层的设计模式。g a m m a 等在g o f 9 5 中将模式分成三类2 3 种;创建型模式,结 构型模式,行为型模式。d e e p a ka l u r 等在 c o r ej 2 e ep a t t e r n s b e s tp r a c t i c e s a n dd e s i g ns t r a t e g i e s u 2 1 ( j 2 e e 核心模式) ( 以后称为c j p 0 1 ) 一书中将 模式分成三类:表现层模式、业务层模式、集成层模式,每一层中叉描述了若干模 式。 还有众多的书籍和文章总结出了其它各式各样的模式,似乎令人莫衷一是。 1 3 本文所采用的模式系统 从以上可以看出,各家对模式系统的分类比较杂乱。但根源在于对模式进行抽 象的层次不同。c j p o i 将j 2 e e 架构分成了三层,然后分别描述各个层中用到的模式, 这种分类法比较实用,对讲清楚模式的应用比较有好处。但它不系统也不通用。c o f 9 5 根据模式作用的机理将模式分成三类,其命名和分类影响比较广泛。但这种分类比 较松散,各个模式彼此之间缺乏逻辑上的联系,而且它的体系也只基于面向对氰的 领域。还有其它比较重要的领域如分布式系统、并发系统,g o f 9 5 并未进行归纳。 p o s a i 开创了将模式从层次上进行分类的先河,提出了架构模式的概念,并认为设 训模式是比架构模式低一个层次的模式。它将架构模式按照应用场台进行了经典的 分类,将设计模式也按照应用场合进行分类,并将惯用法也称为模式。 本文结合了一卡通系统的设计过程,在整体上将模式按照层次进行了分类。最 上层为架构模式,对架构模式采用了p o s a i 的按照应用场合进行分类的方法。在架 构模式之下为设计模式。将g o f 9 5 的分类和命名体系归结为面向对象的设计模式, 构模式之下为设计模式。将g o f 9 5 的分类和命名体系归结为面向对象的设计模式, 一2 一 东北大学硕士学位论文第一章引言 同时增加了分布式系统和并发系统这两种设计模式类别。并没有将惯用法作为一种 独立层次的模式,而是对设计模式涉及到惯用法的时候进行描述。 为了使读者对本文所采用的模式系统有一个结构上的了解,现简单介绍如下。 1 3 1 架构模式( a r c h i t e c t u r a ip a t t e r n ) 架构模式表示软件系统基本的结构化组织形式。它提供一套预定义的子系统并 规定了它们的职责。这其中也包含了用于组织它们之间关系的规则和指南。 架构模式可作为具体软件体系结构的模板。它们规定了一个应用在系统范围内 的结构特性,并对其子系统的体系结构施加影响。架构模式的选择是开发一个软件 系统的基本设计决策。 按照p o s a l ,有八种得到承认的架构模式,分成四类1 9 】: a 从混沌到结构 这类架构模式有助于将混乱的组件或对象整理出头绪。包括层模式、管道和过 滤器模式以及黑板模式。 b 分布式系统 管道和过滤器模式以及稍后介绍的微核模式与分布式系统也有关系。但在分布 式系统中使用最普遍的是代理者模式。 、 c 交互式系统 内核功能通常保持稳定,而用户接口可以多样或经常变化的系统。主要有两种 模式:模型一视图控制器( m v c ) 模式和表示一抽象一控制( p a c ) 模式。 d 适应性系统 系统随时间演化而增加新的功能和更改现有的服务。主要有两种模式:微核模 式和映像模式。 1 3 2 设计模式( d e s i g np a t t e r n ) 设计模式在层次上位于架构模式之下,它提供一个用于细化软件系统的子系统 或组件或它们之间关系的图示。它往往描述通信组件的可再现的公共结构,从而可 以解决特定语境中的一个一般设计问题。设计模式是中等规模的模式,它们在规模 上比架构模式小,但又独立于特定编程语言或编程范例。 g o f 9 5 对面向对象的设计模式进行了总结和介绍。并将面向对象的设计模式分 成三类【6 j : a 创建型模式 一3 一 东北大学硕士学位论文第一章引言 创建型模式抽象了实例化过程。它帮助一个系统独立于如何创建、组合和表示 它的对象。 b 结构型模式 结构型模式涉及到如何组合类和结构以获取更大的结构。它不是对结构和实现 进行组合,而是描述了如何对一些对象进行组合从而实现新功能的一种方法。 c 行为模式 行为模式涉及到算法和对象间职责的分配。它不仅描述对象和类的模式而且描 述它们之间的通信模式。这些模式刻画了在运行时难以追踪的复杂的控制流。它主 要使用对象复合而不是继承。 但是也有很多种设计模式不是用面向对象的语言所自概括的。所以我们认为在 g o f 9 5 所介绍的面向对象的设计模式之外还有两类设计模式:分布式模式和并发模 式1 。 在分布式环境中编程也频繁采用面向对象的各种设计模式。但分布式环境中往 往需要采用一些特殊的模式,而这些模式又不是面向对象所能概括的,所以称为分 布式模式,在层次上属于设计模式。在多线程的并发环境中,需要考虑锁和并发效 率等,也需要一些特殊的模式,归类为并发设计模式。 1 4 本文的结构 本文先提出了一个模式的层次分类模型,然后介绍了校园卡通系统需求以及 它的架构模式的选择。此后分别集中阐述了实时服务子系统的服务器端和客户端对 设计模式的选择和实现。 本文有两条主线,一条是模式的分类、提炼、表述和应用:另一条是校园一卡 通系统的设计和实现。而全文的着重点是各种层次的模式在校园一卡通系统的设计 和实现中的应用,并从中提炼出了一些新的设计模式。 基于这种考虑,本文先提出一个模式的层次分类模型,然后介绍了校园卡通 系统需求以及它的架构模式的选择。 涉及到设计模式的层次时,侧重于模式的表述和应用时机,在此基础上介绍一 卡通系统的设计和实现。所以在介绍一种设计模式时从项目有关背景、需要解决 的问题、相关模式介绍、解决方案、权衡与分析等五个方面来描述,从而突出对设 计模式的理解和对其应用时机的把握。 正一 东北大学硕士学位论文第二章校园一卡通系统的简介 第二章校园卡通系统的简介 2 1 项目的背景 卡的应用现在已经非常普遍。吃饭的餐卡、借书的图书证、打开水的水卡、洗 浴的洗浴卡等都己在校园内大量使用。它们在给学生们带来方便的同时,也让他们 不得不随身带着一堆卡。 校园一卡通的目的就是为了解决这种卡片林立的状况,使得一张卡可以走遍校 园。具体来说就是一张卡可以实现认证,消费,结算等功能。卡片的各种应用可以 通过一卡通系统实现其核心功能。现在已知的校园卡的应用如图2 一l 。 图2 1 校园卡的应用 f i g u r e2 - 1a p p l i c a t i o no f c a m p u sc a r d 根据商务部门的调查,现在教育机构尤其是高等学校对一卡通的需求很大。另 外随着银行服务体系结构的改变,学生及教职工对银行的业务需求也大大增加。但 是目前学校对银行金融业务的应用处于一个较低的层面。如何充分发挥银行的金融 服务优势,享受方便、快捷的金融业务也是各类学校教职工、学生迫切需求的。但 ) 一 东北大学硕士学位论文 第二章校园一卡通系统的简介 是现在国内市场上,还没有真正的一卡通系统出现。现在各个厂家所实现的往往是 在餐饮消费、结算的基础上扩展其它功能,各个模块只能依附于自己的中心系统。 反过来,一个中心系统也只能挂接自己的功能模块。 而我们所开发的这个一卡通系统需要做到高度的开放性和可扩展性。对第三方 公布多个层次的接口,从而使得各个功能模块具有高度的可插入性,同时要保证一 卡通系统的安全可靠性、可控性以及效率。 2 2 项目中所应用的技术和工具 校园一卡通系统本身也是个较为复杂的系统,又要考虑对第三方的兼容性, 所以使用的计算机技术也比较庞杂。但最核心的服务器端编程还是基于j 2 e e 架构之 上。 2 2 1j a v a 本项目服务器端的编程采用j a v a 语言和j a v a 平台。j a v a 是由s u n m i c r o s y s t e m 公司所设计的一门语言。正是由于它基于虚拟机的特性,所以其组件可以跨越多个 操作系统平台。随着j a v a 的发展,现在j a v a 已经发展出三条战线:j 2 m e ,j 2 s e , j 2 e e 。分别对应于j a v a 平台第二版移动版,j a v a 平台第二版标准版,j a v a 平台第 二版企业版。一卡通系统采用的是后两者的技术。 本项目所采用的j 2 s d k 的版本号为i s d k l 4 2 p 1 1 ,而不是最新的j s d k l 5 ( s u n 后来又将其称为j s d k 5 0 ) 。原因有两个:项目启动时,j s d k l 5 还处于b e t a 版本: 我们所使用的开源开发工具直到写这篇文章时还不支持j s d k l 5 。 我们在使用j a v a 相关的基本功能时,优先使用j s d k 自带的包,而不是采用 a p a c h e 等开源项目以前的成果。例如使用到同志时,我们采用包 j a v a u t i l 1 0 9 9 i n g ,而不是a p a c h e 的开源项目l 0 9 4 j ;处理x m l 时,我们使用 j a v a x x m l p a r s e r s 包,而不是众多的开源的f l 处理包。 采用的j 2 e e 的版本与项目采用的应用服务器有关。我们在开发时采用的应用服 务器支持的j 2 e e 版本都在j 2 e e l 3 以上。 2 2 2e j b e j b 即e n t e r p r i s ej a v a b e a n ( 企业级j a v a b e a n ) 。现在应用服务器大多已能 支持e j b 2 0 。我们开发时所使用的e j b 容器( 应用服务器) 都能支持e j b 2 0 。我们 使用的e j b 主要是状态b e a n ,而没有使用实体b e a n 和消息驱动b e a n 。对于实体b e a n 一6 一 东北大学硕士学位论文第二章校园一卡通系统的简介 我们采用了一个轻量级o r 映射的产品作为替代方案。 2 2 3w e b 服务 w e b 服务的协议族包括w s d l ,s o a p ,u d d i 等。它使得异种语言通过网络进行高 层次的交互成为可能,并且这种交互能跨越传统的防火墙。目前,主流的语言平台 都已经能很好的支持w e b 服务了,如j a v a ,n e t ,d e l p h i 等。 对于采用非j a v a 的第三方客户端,我们提供的可选方案之一就是向它们提供 w e b 服务的接口。 2 2 4h i b e r n a t e h i b e r n a t e 【2 2 1 是一个轻量级o r 映射的丌源项目,它与j d o 有着一致的思想。 之所以采用轻量级o r 映射的技术是为了避免采用e j b 中的e n t i t yb e a n ( 实体 b e a n ) 。我们的评估是:一方面我们的数据源并不复杂,为单一数据库,所以也不会 有复杂的难于处理的事务关系;另一方面实体b e a n 的开发和部署颇为费事,特别是 我们大量采用开源项目的成果时更是如此。 h i b e r n a t e 也使得我们的项目可以轻松的跨越数据库的藩篱。它支持所有市面 上流行的数据库产品,如m ss q l , o r a c l e , m y s q l 等。使得我们可以根据客户具 体的情况,在系统上线时采用不同的数据库,而不用修改任何服务器端代码,只需 要修改配置文件即可。 2 2 5j b o s s 和r e s i n 开发时,应用服务器我们采用开源的j b o s s 或r e s i n 。j b o s s 属于开源项目,它 集成了w e b 容器t o m c a t 。r e s i n 则属于开发者授权( d e v e l o p e r1 i c e n s e ) ,用于商 业项目时需要少量付费。但据我们测试,它的w e b 容器比t o m c a t 效率至少要高出 1 5 倍左右。两者都支持e j b 2 0 规范。由于j a v a 和j 2 e e 项目所固有的可移植性, 理论上我们的系统可以移植到其它的应用服务器。 2 2 6a x is 我们将服务器端的部分逻辑以w e b 服务的形式公布出去。而在w e b 服务的部署 方面,使用了a p a c h e 的开源项目a x i s f 2 3 1 。 2 2 7s t r u t s 一卡通系统的网上个人信息的查询和管理系统采用了a p a c h e 的开源项目 1 东北大学硕士学位论文第二章校园一卡通系统的简介 s t r u t s l 2 4 1 。使用它来构建w e b 网站,既符合j 2 e e 规范,又具有良好的可扩展性。 2 2 。8e c li p s e 及其各种插件 e c l i p s e 2 5 1 也是一个开源的i d e 环境。使用它来开发各种j a v a 应用已经比较成 熟。由于它的高度开放性,它的各种插件也如雨后春笋般的出现,其中不乏很多精 品,如l o m b o z 等。 2 2 9l i n u x 币口o r a c i e 开发时,我们使用安装在l i n u x 上的o r a c l e9 i 。o r a c l e 公司对l i n u x 上的 o r a c l e9 i 也进行了免费授权。当然在l i n u x 上使用m y s q l 也没有任何问题,事实 上我们也做过这样的尝试。 2 ,2 1 0d e i d h i 卡务和账户管理的胖客户端是用d e l p h i 编写的。 2 3 本人在一卡通项目的角色以及本文的角度 我没有参与校园一卡通项目的需求分析和立项决策。但在系统的架构体系的确 立以及核心部分的设计和编程方面应该说还是起到了比较关键的作用。例如采用 w e b 服务的方式公布接口以及放弃实体b e a n 而采用轻量级映射等。比较核心的实时 服务器的服务器端和客户端也是由我设计的,并完成了大部分的编程工作和组织进 行了功能和压力测试。 本文站在模式的角度来讨论一卡通系统的系统架构以及实时服务这个子系统的 设计和实现及其中涉及的设计模式及其权衡。 一8 一 东北大学硕士学位论丈第三章一卡通系统所采用的架构模式 第三章一卡通系统所采用的架构模式 3 1 一卡通系统需求及其分析 3 1 1 系统用例 讨论一个系统的架构模式,需先从系统的用例( u s e c a s e ) 看起。 图3 - 1 系统用例 f i g u r e3 - 1u s e , c a s e so f t h es y s t e m 可见针对系统的五种使用者,系统需要有五种功能。我们首先分析这些系统级用 例的特点: a 系统的使用者职责比较明确。 b 用例的边界比较清晰,彼此之间的交互即使不是没有也是不多或不复杂。 一9 一 东北大学硕士学位论文 g _ - - 章一卡通系统所采用的架构模式 这样我们可以将实现用例所需的模块按照实时性的要求和任务的特点归纳成三 种服务,如图3 - 2 。 实时服务 管理服务查询服务 图3 - 2 系统三个模块 f i g u r e3 - 2t h r e es y s t e mm o d u l e s 3 1 2 系统使用者分析 系统使用者的使用形式比较复杂。具体分析如下: a 第三方应用 第三方应用大体可分为两种类型:消费型和认证型。前者如餐饮,洗浴等;后 者如门禁,借书等。对于认证型的第三方应用可以采用无连接的单次交互即可。而 消费型的第三方应用就比较复杂。有的第三方应用需要对卡通系统进行无缝接入, 这样就需要暴露卡通系统的部分接口;有的第三方应用不想对原来的程序进行修 改,而只想针对它的数据库做一个数据上传和下达的插件即可;第三方应用采用的 平台也并不一致,采用的编程语言和环境更是千差万别。所有这些都决定了实时服 务向第三方应用暴露的接口应该是多层次的。 b 管理人员 管理人员作为计算机的非专业人员,期望他们的使用界面应该是一个胖客户端, 最好在w i n d o w s 系统上。而账户、卡务、基础信息等的管理往往随着学校的管理架 构、组织结构等的改变而进行权限的重组。 c 学生( 员工) 使用者对账户的查询应当能支持多种方式:w e b 方式,触摸屏,p d a ( p e r s o n a l d i g i t a la p p l i a n c e ) ,电话语音查询等。针对银行转账需要有圈存机等。 d 监控人员 交互比较简单,只需要有良好的表现形式即可。 3 1 3 其它需求 a 数据库的使用 一1 0 东北大学硕士学位论文第三章一卡通系统所采用的架构模式 考虑到系统的用户情况差别比较大,既有大的分校区的综合性大学,也会有中 学甚至小学。大的系统会有银行的介入,可以使用昂贵的企业级数据库。而小的系 统可能就需要一些开源和免费的数据库。这就要求系统需要考虑数据库的转换的问 题。即使做不到完全的数据库无关性也要做到转换数据库时比较容易。 b 服务器端的操作系统 由于系统的投标有时需要与银行进行联合,而银行往往指定服务器端的硬件和 软件。这就使得服务器端的操作系统也具有不确定性。似乎使用j a v a 基于j 2 9 e 架 构成了最好的选择。 3 2 架构模式的选择 系统的需求在经过业务建模和分析以后,应该是比较明确了。该选择什么样的 架构模式呢? 抑或是没有现成的,需要对现有的架构模式进行变形甚至需要创建新 的架构模式。 3 2 1 可供选择的架构模式 根据p o s a i q ,现成的架构模式有8 种:层( l a y e r ) 、管道和过虑器( p i p e sa n d f i l t e r s ) 、黑板( b l a c k b o a r d ) 、代理者( p r o x y ) 、模型一视图一控制器 ( m o d e l v i e w c o n t r o l l e r ) 、表示一抽象一控制( p r e s e n t a t i o n a b s t r a c t i o n c o n t r o l l e r ) 、微核( m i c r o k e r n e l ) 、映像( r e f l e c t i o n ) 。 这些模式可以划分成以下四类: a 从混沌到结构 b 分布式系统 c 交互式系统 d 适应性系统 3 2 2 对一卡通系统的分析 首先排除了映像模式和微核模式。因为一卡通系统作为一个应用系统,它的需 求和扩展还是比较有规律的。采用映像模式或微核模式无疑增加了系统的不确定性, 但对于校园一卡通系统却没有得到相应的好处。 现有的企业级开发工具如e j b ,n e t 等对代理者模式已经做了比较好的封装。 这就使得分布式系统的开发者可以站在更高的层次来考虑其系统结构。 从上一节的需求分析中也可以得出结论,校园一卡通系统应该是一个交互系统, 东北大学硕士学位论丈 第三章一卡通系统所采用的架构模式 但不仅仅是一个交互系统。它的某一个分系统或许用交互式系统可以进行抽象,但 整个一卡通系统的需求显然更复杂。 黑板模式对于无确定性求解策略的问题比较有用,而校园一卡通系统是有其一 定的业务流程的。管道和过滤器模式对于处理数据流为主的系统比较有优势,它能 很方便的对数据的处理步骤进行重组,相应的对状态控制的能力就比较弱。而校园 一卡通系统需要有比较强的状态控制能力。 下面我们再来重点研究一下层模式。 层模式有助于构建这样的应用 9 】:它能被分解成子任务组,其中每个予任务处 于特定的抽象层次上。其优点有:层可以重用;具有局部依赖性;具体的层只要接 口不变就可以替换。这与我们将系统用例分成三个服务是一致的。 层模式的示例如图3 3 。 晟高的抽象层次 是低的抽象层次 图3 - 3 层模式示意图 f i 即z e3 - 3d e m oo f l a y e rp a t t e r n 采用层模式的系统需要考虑以下条件( 9 l : a 接i :1 应该是稳定的。校园一卡通系统的服务器端和客户端的接口也应当是稳 定的。 b 系统的各个部分可以被替换。组件可以被别的实现来替代且不影响系统的其 它部分。抽象出的一卡通系统的三个服务

温馨提示

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

评论

0/150

提交评论