【PHP开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了PHP开源代码-WEB快速开发框架 - 硕士论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
华中科技大学 硕士学位
论文WEB快速开发框架 姓名:苏晓波 申请学位级别:硕士 专业:软件工程 指导教师:高建生 2009-11-01 华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 随着信息化的深入发展,越来越多的企业和政府部门将业务延伸到互联网,或基于互联网,使得如今 WEB 应用不断丰富和发展。
为了快速高效的开发出 WEB 应用系统,我们一般都会选择某些合适的开发框架,以减少重复开发工作量、缩短开发时间、降低成本,使程序设计更为合理、运行更加稳定。
在项目中应用一个好的框架,将对项目的效率至关重要。
轻量级框架可以有效的减小系统开发难度,使开发者更加专注于系统业务流程,使得开发更具效率。
这样也使得轻量级框架在处理能力上相对减弱,比如事物功能弱,不支持分布式处理等。
为解决这些问题,本文设计并实现了一款新的 WEB 快速开发框架 WRDF(WEB Rapid DevelopmentFramework)。
其主要对框架应用配置进行的简化,使其更为轻量;添加了系统模块的热部署支持;利用 Java EE 5 的注解和反射机制实现 POJO 持久化;添加了数据的多级多点同步以实现分布式处理支持。
最终形成了一套基于 Java EE5 的轻量级 WEB快速开发框架 WRDF。
该框架中小型系统上表现优良,可以扩展到大型系统上,极大的提高了系统开发效率。
文章最后还给出了一些提高系统效率的部署方案。
关键词:WEB 应用 框架 模块 持久化 反射 同步 部署 I 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract With the further development of information technology more and more businessenterprises and government departments will be extended to the Internet or Internet-basedso WEB applications constantly enrich and develop. For fast and efficient development ofWEB applications generally we will select some appropriate development framework toreduce duplication of development effort shorten the development time reduce costs andmake programming more reasonable and more stable. A good framework applied in theproject it will be critical to the project efficiency. Lightweight framework can effectivelyreduce the system develop difficult enable system developers to focus more on businessprocesses making the development more efficient. Lightweight framework that makesrelatively less processing power such as transaction is weak not support distributedprocessing. To solve these problems designed and implemented a new WEB RapidDevelopment Framework WRDF. we reduce framework application to make it morelightweight add the system module hot deployment support use of Java EE 5 annotationsand reflection to achieve POJO persistence added data multi-level multi-pointsynchronization in order to achieve distributed processing support. Ultimately form a setof lightweight Java EE5-based WEB rapid development framework WRDF. Theframework performanced excellent in small and medium systems it also can be extendedto large systems. The use of the frameword can greatly improves the efficiency of systemdevelopment. This paper finally gives some deployment options to improve systemefficiency.Key words:WEB applications framework module Persistence Reflection Synchronization Deployment II 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪论 本 论 文 中 设 计 实 现 的 框 架 名 称 为 “WEB 快 速 开 发 框 架 ( WEB RapidDevelopment Framework)”,简称 WRDF,为描述方便,下文中 WRDF 均指该框架。
1.1 背景 2009 年年底,我所在的实习单位承接某单位办公自动化系统(OAS)建设项目。
该单位有如下特点: 工作人员数量多1。
就要求系统能够承载大量用户同时在线办公,这将对系统的并发性,实时性要求很高。
人员身份构成复杂。
对用户的权限管理2,身份管理和角色管理控制严格且灵活。
下属单位多,分布地域广。
在系统部署上需要多点多级部署,就要在数据上需要实现分布式处理,实现数据的多点多级同步。
此外客户对系统的构架整体要求有: 根据统一规范,实现信息化的规范化、标准化。
统一的信息模型,规范的数据定义,保证多级多点数据同步和数据安全3。
遵循分层和复用设计理念,按照组件化、策略化设计原则进行设计开发,建立数据与应用相分离、应用与策略相分离的技术架构4,支持新功能的快速开发。
采用模块化结构。
各模块任务独立,为其它模块提供服务;对于处理模式、有可能变动的业务或项目采用参数驱动的设计策略,为未来的发展作好充分的准备、保证整个系统的灵活性和可靠性。
系统实施和运行的经济性。
为了统一项目
代码风格,减少重复开发工作量,缩短系统开发时间,降低项目成本,更为有效的进行工程质量管控,必须使用系统框架。
而当下流行的各种系统框架,没有可以适用于本项目的,为适应项目开发需求,设计并开发出一套新的 WEB快速开发框架 WRDF(WEB Rapid Development Framework),为描述方便,下文简 1 华 中 科 技 大 学 硕 士 学 位 论 文称为 WRDF。
该框架要可以广泛应用于基于 B/S 结构的 OA,MIS 等 WEB 应用系统的开发,可以大大提高此类的系统开发效率,有效的降低系统开发难度。
1.2 主要内容 随着 Web 应用开发的多样化,一些要求快速开发的 Web 应用越来越多,就需要一些轻量级框架来对项目进行有效的支撑。
来有效的减少工程开发量,并控制
代码的规范性。
而当前的常用轻量级开发框架虽然较一些重量级框架要应用简单,但是在应用过程中仍显配置文件多,使用困难,学习曲线较长等应用上的劣势。
由于是轻量级框架,在功能上也相对弱化,如事务能力弱,不支持分布式数据处理等不足之处。
本文通过对当前应用广泛的一些 MVC 框架的研究5,设计并实现了 WEDF 框架。
主要工作包括: 对框架进行了进一步的简化配置处理,使得其使用更为简便。
但是为了加强轻量级框架的应用广泛性,对轻量级框架进行部分功能的重量化,即添加部分应用较多但目前框架不支持的功能。
设计并实现了模块的热部署,使得系统可以非常简单的实现魔方构架。
设计并实现了基于可操作对应的 ORM 映射,实现了对象持久化功能,使系统程序结构设计讲究面向对象,数据的存取结构简单化。
设计并实现了多节点大规模系统的多级多点同步,使得系统实现数据的分布式处理支持。
WRDF 框架相较于普通的 WEB 开发框架,在应用上更为简便,而功能上强大许多。
可以有效的简化系统开发难度,使系统开发人员专注于系统业务实现,程序设计上更为合理、系统运行更加稳定。
有效提高了复杂 Web 应用的开发效率。
1.3 结构安排
论文后续章节组织方式如下: 第二章 设计实现了 WRDF 的整体构架。
首先研究了基于 C/S 和 B/S 结构的优缺点,论述 B/S 结构是 Web 应用的必然构建方式。
之后介绍了 Java 平台在 Web 开 2 华 中 科 技 大 学 硕 士 学 位 论 文发中的优势。
然后研究了当前流行的一些基于 Java 平台的 WEB 开发框架,和目前WEB 应用开发中存在的一些不足之处。
第三章 针对当前 WEB 开发中存在的不足之处,提出 WRDF 的设计原则。
根据设计原则,结合当前 WEB 开发技术,采用基于模块化的设计,使用典型的 MVC 三层结构实现,并给出框架的整体构架方案,同时进行了相关的软件产品选型,并对各层使用到的技术进行相关说明。
第四章 是本
论文的核心部分,由 WRDF 的设计方案,实现框架 WRDF。
针对研究当前系统模块化设计,对现有的模块部署方式改进,设计实现了功能模块的热部署。
研究 ORM 映射,POJO pure old java object 或者 plain ordinary java object, ,以及当下流行的几种 Java EE 平台纯 Java 对象,PO(persisent object 持久对象)的持久化框架,设计实现了基于 POJO 对象属性于数据库字段的可操作映射关系的ORM 映射,并基于此实现一个超轻量级的持久化。
实现了基于 WebServiceFTP 的数据的多点多级同步。
第五章 介绍基于该框架的几个系统应用,并通过在实际项目中的应用来证明该框架的优越性。
同时推荐一些提高应用性能的部署方式和系统配置。
第六章 结束语,对全文工作进行总结。
列举了
论文中所作的主要工作,并对进一步研究提出建议和展望。
3 华 中 科 技 大 学 硕 士 学 位 论 文 2 WEB 开发研究 现有的 WEB 开发框架在应用上存在诸多不足之处,例如配置复杂、应用困难等等。
针对 WEB 开发框架常用的几个方面,进行相关研究。
2.1 Web 应用2.1.1 Web 简介 B/S(Browser/Server 结构)即浏览器和服务器结构,是由于 Internet 技术的发展,对 C/S 结构的一种改进,在这种结构下,用户工作界面通过浏览器来实现,极少部分业务逻辑在客户的前端(Browser)实现6,主要业务逻辑在服务器端(Server)实现,形成所谓三层结构。
从而大大简化了客户端负荷,降低了系统维护与升级的成本和工作量。
该结构主要有以下几个特点7: 具有分布性特点,可以随时随地进行查询、浏览等业务处理:业务拓展性好,维护简单方便;信息共享度高,开发简单。
个性化不足;操作多以鼠标完成,速度慢;页面动态刷新,响应速度慢。
通过分享软件框架(个性化),辅助于插件(实现全键盘操作),分页分部提交(Iframe,Ajax)保证响应速度稳定来部分克服其不足之处。
本文中研究的框架主要应用于 Web2.0 应用开发。
Web 发展过程如表 2.1 所示。
表 2.1 Web 发展及趋势 交互 说明 Web1.0 没有 使用纯静态 Html 页面进行数据展现。
Web2.0 有 动态网页技术成熟,支持各种图像和声音媒体。
云计算等新技术的使用可以使 Web 服务器根据个人使用习惯计算 Web3.0 丰富 出用户可能所需要的数据。
2.1.2 Web 开发常用技术 1)客户端技术 Web 前端即试图层,主要用于对用户的数据展现,主要应用技术包括 Html,JavaScript 和 CSS。
主要是从网页制作演变而来,学习曲线先快后慢,要求一定的美工基础。
4 华 中 科 技 大 学 硕 士 学 位 论 文 2)服务端技术 常用服务器端应用技术如表 2.2 所示。
表 2.2 常用服务器端技术比较 平台技术 语言类型 优点 缺点 应用范围 大中型企业级框 稳定,效率高, JavaEE(Jsp) 半编译半解释 学习成本高 架(银行、电信 跨平台,
开源 等大型应用) 不
开源,自定义 中小型 Web 应用 .Net(Asp) 半编译半解释 简单,组件丰富 程度低 和桌面 解释型,内嵌式,
开源,效率高, 全嵌入页面,代
Php 中小型项目 服务器端脚本 数据库支持好 码易混乱 解释型,服务器 简单易学,特性 相关资料少,服 Ruby 中小型项目 端脚本 多 务器支持差2.2 Java EE 平台简介 典型的 J2EE/Java EE 一般分为三个层次:表现层、业务逻辑、持久层8。
表现层实现对用户显示功能。
业务逻辑层由大量组件Components组成的,又称为业务服务层,也有称为 Model 业务层。
持久层是负责对象持久化,主要是对数据库操作,如图 2.1 所示9。
图 2.1 典型的 Java EE 平台 5 华 中 科 技 大 学 硕 士 学 位 论 文2.3 MVC 构造方式 一般情况下,我们采用 XML 配置装配元数据来构造三层结构: ltbean idquotMenuControllerquot classquotcom.test.TestControllerquotgt ltproperty namequotmethodNameResolverquot refquotTestControllerResolverquotgtlt/propertygt ltproperty namequottestquot refquottestOperatorquotgtlt/propertygt lt/beangt ltbean idquottestOperatorquot classquotcom.test.Testquotgt lt/beangt ltbean idquotMenuControllerResolverquot classquotorg.springframework.web.servlet.mvc. multiaction.PropertiesMethodNameResolverquotgt ltproperty namequotmappingsquotgt ltpropsgt ltprop keyquot/test/mainPage.htmquotgtmainPagelt/propgt lt/propsgt lt/propertygt lt/beangt 上面的
代码片段是一个典型的构造 MVC 三层结构的配置 XML 配置文件。
控制层:TestController,模型层:Test,以及表现层:/test/mainPage.htm。
通过该配置文件,形成了 MVC 三层结构。
在
代码和逻辑上都是比较清晰的。
但是,使用 XML 元数据构造 MVC 三层结构存在不足10。
首先是配置文件中对于其他模块的引用,在逻辑上会造成层次上的混乱。
其次,在系统应用规模很大的时候,该配置文件会非常的长,在应用上带来不便,造成系统维护困难。
2.4 模块配置管理研究 一般情况下,在系统开发中,系统的功能模块配置由系统开发人员实现。
为了统一
代码风格,有效进行模块配置管理,方便进行系统维护和模块拓展,为 WRDF 6 华 中 科 技 大 学 硕 士 学 位 论 文设计实现了模块池技术管理11。
模块池技术为 WEB 应用系统开发带来了便利,能够有效提高系统开发效率。
2.4.1 模块化设计简介 由参考文献 19 至 27 可知,模块又称构件能够单独命名并且能够独立地完成一定功能的程序语句集合(即一定的程序
代码和数据结构的集合体)12。
模块的基本属性有如下几个方面: (1)接口:模块的输入与输出; (2)功能:模块实现什么功能; (3)逻辑描述:内部如何实现所要求的功能以及所需的数据结构; (4)状态:该模块的运行环境,即该模块调用其他与被其他模块调用关系。
模块化设计好好的标准:耦合和内聚。
在对功能划分时,尽量的将模块划分的模块之间低耦合,模块内部高内聚。
这些是高质量软件结构的基础。
2.4.2 普通模块配置管理不足 对于一个复杂的 WEB 应用系统,我们必须采用模块化设计,自顶而下的将系统分解成若干大的系统级模块,再细分为功能模块等等,从而降低系统的复杂度,减少系统开发工作量,降低系统开发成本,提高系统开发效率。
进行模块化设计,必然要考虑模块的配置,模块管理等相关方面。
对于采用一般的 WEB 应用开发框架进行系统开发,系统中的模块配置要系统开发人员自己进行管理。
常用的模块管理方式有两种。
一种是“即写即用”,就是用到什么模块13,设计实现这些模块,之后进行直接调用。
这样造成的直接后果就是模块配置与管理困难,
代码混乱,模块间耦合度高,模块维护困难,难于进行系统扩展和系统的二次开发。
是一种最为原始的模块管理方式,现在大都不在使用。
另外一种是使用 XML 元数据的方式进行模块配置管理。
就是将所有实现的功能模块的相关信息记入一个 XML 配置文件中,之后在系统的模块配置管理模块中对该XML 模块配置文件进行解析,获取模块的相关信息。
这种模块配置管理方式在应用 7 华 中 科 技 大 学 硕 士 学 位 论 文上比较方便,对于系统模块管理上比较灵活。
但是这种模块配置管理方式中,对功能模块进行管理时就要修改 XML 配置文件14,就必须对应用服务进行重启,造成WEB 应用必须中断,如果想要避免中断服务,就必须采用系统热备,造成管理不便。
此外,采用 XML 配置文件进行模块管理的方式,在模块修改时很不方便,无法进行可视化操作,在进行系统维护时,应用不便。
针对这些问题,本
论文设计实现的 WRDF 采用池技术实现系统功能模块配置管理15,能够进行可视化模块配置管理,支持模块配置的热部署,有效降低了系统模块配置管理的难度,易于进行系统维护和模块拓展。
2.5 持久化研究 持久化:把数据同步保存到数据库或某些存储设备中。
在软件分层体构架系结构中,持久化层用来负责数据库数据存取的相关操作,负责对数据库表中的数据的进行增加、删除、查找和修改。
在一般情况下,基于 Java 的 web 应用多采用 JDBC进行数据库编程16。
在实际应用中,使用 JDBC 对数据库表进行数据的增加、删除、修改和查询的持久化过程存在诸多问题。
因此,本文提供了一种 POJO 实体对象持久化实现方法。
在数据库中构建与系统业务实体类对应的表,其对应关系是 POJO实体对象类属性于数据库表字段的可操作对应。
该对应关系采用自定义 Java 注解实现 ORM 映射17。
通过 Java 的反射机制对 POJO 实体对象进行分析,获取相关信息,再根据对应数据库的 SQL 语句编写规则和相应数据库的数据结构规则,生成相关的SQL 语句,并对 SQL 于赋值,交由数据访问接口 DAO 执行,从而完成数据对象持久化。
本方法使得对于实体对象的数据持久化操作可以根据对象数据模型和关系数据模型的变化来自适应,而不再需要大量的配置文件维护对象数据模型与关系数据模型之间的映射。
本方法提供了统一的数据访问接口,不需绑定具体的业务逻辑和数据方案,可以单独在其他系统中复用,从而提高了持久层的开发和应用效率,实现了数据逻辑和业务逻辑的有效分离,提高系统的可扩展性和复用性。
2.5.1 使用 JDBC 持久化的不足 由 JDBC 是用来执行 SQL 语句的 Java API, Java 语言编写的一组类和接口组成。
8 华 中 科 技 大 学 硕 士 学 位 论 文JDBC 为应用程序/数据库开发人员提供了一组标准的数据库操作 API,使得能够采用Java API 来进行数据库开发,使得用向各种关系数据库执行 SQL 语句变得简单。
简单来说,JDBC 建立与数据库的连接18;可以用来向数据库发送 SQL 语句;可以处理数据库返回结果集。
但是直接采用 JDBC 进行数据库开发存在诸多问题: 1)
代码繁琐 然我们来看一个简单的例子,实现对数据库表增加一条数据的操作。
public void addUserfinal User user throws Exception final Connection conn getConnection PreparedStatement pstmtcon.prepareStatementquotinsert into uservaluesquot pstmt.setString1 user.getUserName pstmt.setString2 user.getPassWord pstmt.setString3 user.getSex pstmt.setString5 user.getMsn pstmt.setString6 user.getTel pstmt.setString7 user.getAddress pstmt.setString8 user.getHeight pstmt.ex.
上一篇:
毕业设计(论文)
下一篇:
还记得,那年的风车吗?