版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向智慧医疗平台的CMS设计与开发摘要中国的医疗行业长期存在着看病难、看病贵的问题,这些问题很大 程度上是由于医疗资源分配不均造成的。智慧医疗正是力图通过互联网 技术来改善这些问题。后台数据管理是智慧医疗平台中一项非常重要的 内容,传统的CMS系统所提供的管理服务主要是针对政府、企业的门户 网站,而对于业务数据的管理并没有提供很好的解决方案,因此本文就 面向智慧医疗平台的CMS系统展开了深入研宄,基于B/S架构,结合模 板引擎技术,代码生成技术,以JAVAEE架构为基础,实现了一套扩展 性强,灵活性好的内容管理系统。本文重点介绍了面向智慧医疗平台的CMS系统所使用的关键技术, 分析了其功能需求
2、和非功能需求,并给出了 CMS系统的总体设计、各个 模块的设计及具体实现。本系统的设计理念不用与传统的CMS系统,将 重点放在了数据管理上,而对门户网站的管理放在次要位置,主要包括 “管理主界面”、“数据管理”、“权限管理”、“文件上传”等模块, 系统的前端由EAZYUI框架实现,后台则搭建在SSH三层框架,数据主 要通过HTTP请求,使用JSON数据格式进行传输。系统的开发与实现 过程也有别于传统CMS开发,通过对业务数据结构的抽象,进行数据类 型的分类,再针对不同的数据类型设计相应的模板,利用模板引擎的文 件生成功能实现代码的自动生成。经过测试,系统能够实现数据管理、权限管理、文件上传等功
3、能需 求,同时兼具良好的扩展性和灵活性。在智慧医疗平台功能发生变化, 数据库进行修改后,系统的自动生成功能能够使之迅速适应变化,自动 生成新的管理模块。总之,本文所设计的CMS系统对传统的CMS系统 进行了有效的改良,使其灵活性和扩展性都有了显著的提升,缩短了开 发周期、减少了开发成本,同时提供了良好的用户体验。关键词:智慧医疗内容管理扩展性灵活性目 录 TOC o 1-5 h z HYPERLINK l _Toc11822877 第一章绪论 PAGEREF _Toc11822877 h 15 HYPERLINK l _Toc11822878 第二章CMS系统关键技术 PAGEREF _Toc
4、11822878 h 23 HYPERLINK l _Toc11822879 第三章CMS系统的需求分析与详细设计 PAGEREF _Toc11822879 h 26 HYPERLINK l _Toc11822880 第四章CMS系统的实现 PAGEREF _Toc11822880 h 44 HYPERLINK l _Toc11822881 第五章系统测试 PAGEREF _Toc11822881 h 50 HYPERLINK l _Toc11822882 第六章总结与展望 PAGEREF _Toc11822882 h 52第一章绪论1.1研究背景与意义1.1.1课题研究背景智慧医疗是IBM“
5、智慧地球”的概念在医疗行业的一个衍生,具体就是指利用 互联网技术将医疗行业的各种资源进行连接和整合,打通信息壁垒,提供更高校快捷 的医疗服务。另外,由于大数据和云计算技术的快速发展,通过各种终端收集医疗数 据进行大数据分析和处理,对卫生防疫和疾病预测也将起着重大的作用。目前国内的医疗行业发展依然面临着诸多困难。首先是资源分配不均匀,中国好 的医疗资源大都集中北京、上海等一线城市,而一些小城市的医院水平与大城市相比 差距很大。这种医疗资源分配的不均衡导致大城市的医院人满为患,小$市的医院却 无人问津,今年来的看病难,看病贵的问题,正是由于这种资源分配不合理造成的。 另外,医疗行业的信息孤岛问题严
6、重。由于医疗行业本身非常复杂,各个地区和医院 各自为战,缺乏行业的统筹规划,因此各个医院之间的信息系统难以连通,这就导致 医疗行业巨大的信息量被分散而没有进行有效的分析和利用,对整个行业的发展和医 疗技术的进步没有起到很好的推动作用。这种信息的不透明也导致医患矛盾问题的不 断突出,医患冲突不断发生。互联网技术正是解决这些问题很好的一个途径。互联网对人们的出行、购物、餐 饮、社交均起到了巨大的作用。互联网与医疗行业的结合也正在如火如荼的展开。小 米投资的fflfealth,腾讯投资的丁香园、挂号网,阿里巴巴展开的“阿里健康”项目 都正在积极的探索互联网+医疗的新途径。李克强总理更是提出了“互联网
7、+”的口 号,意味着“互联网+”己经成为了国家发展的重要方向之一。互联网与医疗行业的 深度融合势在必行。CMS系统作为互联网应用中重要的一环,对于系统的运行起着非常重要的作用, 因此为智慧医疗平台设计一个良好的内容管理系统非常关键。目前内容管理系统的发 展非常迅猛,.NET、Java、PHP等语言开发出的CMS系统市面上都非常多1。许多 大型的门户网站如搜狐、新浪均可以用CMS系统搭建起来。随着数据量的不断增大, 人们对CMS系统的的扩展性、灵活性和用户体验也提出了更多的要求,这也意味着 CMS系统仍然有着许多地方需要改进。1丄2课题研究意义国内的医疗行业目前仍然以线下作业为主,尚未充分利用信
8、息技术带来的便 利。由于医疗行业资源的分布不均匀,人才稀缺,配置不合理,造成了国内普遍 的看病难问题。就目前而言,想要短时间内改变医疗行业的资源配置是不太现实 的,因此必须通过其他途径来解决看病难的问题。近些年,互联网技术对传统行 业的改造,让整个社会发生了翻天覆地的变化,网购大量的取代实体购物,线上 订票,线上订餐,线上支付等等都大大的方便的人们的生活,这些正是得益于互. 联网高度的资源整合功能。因此如果用互联网技术对传统医疗行业进行改造与整 合,对医疗资源进行更合理的分配,那将会有效的改善看病难的问题。医疗行业涉及的内容多而杂,数据库量很大,因此需要专门的内容管理系统 来进行管理。目前主流
9、的CMS系统都釆用php语言编写,php开发速度快,周期 短,但随着java和. net语言编写的CMS系统出现,越来越多的人使用这类更安 全的语言来进行开发。CMS系统主要包括了内容发布,新闻管理,数据管理,图 片处理,首页管理,网页编辑器的,权限管理等功能模块。但是传统的CMS系统 代码重复量大,数据结构单一,没有进行高度的抽象和整合,导致不能很好的展 现和修改数据3。因此研宄一种能够适应不同数据结构,并且带有代码生成功能 的内容管理系统就变得非常有意义。国内外研究CMS系统的公司非常多。比如TX Vignette,作为内容管理系统 的领导者,他们设计了一整套包括应用软件,门户网站,B2C
10、, B2B等功能模块 的内容管理系统。Open Market他们的Content Server3. 1主要是J2EE兼容的 内容管理解决方案。FileNET是面向金融、保险、政府、电信、公共事业、制造 业的内容管理解决方案的提供商3。这些公司在电子商务,金融等多个领域都有 所探究,但是对于专门针对医疗行业的内容管理目前还没有成熟的解决方案,因 此这也是一个亟待研究与探索的领域。1.2国内外研究现状1.2.1国内研究现状国内的CMS系统起步较晚,技术上相对于国外还比较落后,而且这些CMS系 统大多是一些通用的模块,扩展性和灵活性相对较差。目前过内的CMS系统使用PHP 和.NET语言开发的较多,
11、而使用JAVA开发的相对较少,其中比较有名的有 DeDeCMS、Supersite、NETCMS、逐浪 CMS4。DeDeCMS 由于是一款免费的 CMS 产品,因此用户量较大,但是随着创始人的离去,DeDeCMS产品的研发和运营都出 现点了很多问题,它开始更偏向于为企业提供系统级的解决方案,因此依靠它来建站 的一些个人或企业将得不到后续的更新和服务5。而且DeDeCMS的系统安全性也是 一个亟待解决的重要问题。逐浪CMS是国内比较领先的CMS系统研发商,它可以使用MySQL和Oracle 两大数据库,并且抛弃了低端的网站模板业务,注重于高端业务,比如数据处理、 WEB计算等。作为国内的领先品
12、牌,逐浪CMS推出了众多版本,能够满足个人、中 小企业、教育机构、政府机构、大型企业等不同客户的需求。随着云计算时代的到来, 逐浪CMS也加快脚步,开发出了云计算模块,融合最新技术为用户带来更好的体验 和更强大的功能6。国内由于开源氛围并不浓厚,大多数CMS系统开发的企业和个人都是单打独斗, 开发出的系统要么功能不够强大,要么说明文档不足导致其他用户难以进行升级和改 进,因此在功能性上来说相对国外产品会比较弱。另外由于许多CMS系统开发厂商 实行的是收费政策,因此用户有并不多,难以发现问题7。CMS系统使用PHP和.NET 幵发的主要原因是这两种开发语言学习成本低,开发周期短。JAVA的入门门
13、槛相对 较高,开发周期比较长/但JAVA作为全球使用最多的开发语言,非常多的应用系统 都是使用JAVA语言进行开发的,因此使用JAVA语言开发系统能够更好的跟业务系 统进行对接和融合8。但是过内目前使用JAVA开发的CMS系统非常少,/因此使用 JAVA语言开发出一款开源的CMS系统对于国内JAVACMS的发展也有爾艮好的推 动作用。1.2.2国外研究现状国外的CMS系统相对于国内发展更加完善。1:(1?8是一款从博客平台演变 而来的CMS系统,它的核心功能仍然是博客,不过通过系统扩展,可以完全实现一 个功能全面的企业网站 WordPress后台的使用非常方便,都是便准化的操作,只要 熟悉其中
14、一个模块的操作,那么其他的功能也就非常容易掌握。另外WordPress网页 编辑的功能非常强大,能够轻松的实现对图像、音频、视频和其他多媒体文件的处理, 从而实现所见即所得的编辑效果9。WordPress强大的功能得益于它的插件,使用的 时候需要根据需要的功能添加对应的插件,它最主要的使用是在建站及博客上,能够 实现大多数普通网站页面展示的需求。SilverStripe也是一款功能全面的CMS系统,它使用PHP语言开发,构建在 Sapphire框架的基础上,它的定制功能相对其它CMS系统更为强大,同时也提供非 常丰富的技术支持文档和用户手册,对于普通建站需求的用户来说非常方便1。Joomla则
15、是一款非常流行的CMS系统,它使用PHP开发语言,后台数据库使用的是 MySQL,它的后台使用比较简单,也拥有一个强大的网页编辑器,这个编辑器拥有 许多格式化的选项,可以轻松的编辑出形式丰富的网页11。Drupal也是一款很流行的CMS系统,它主要应用在电子商务网站和社交网络这 样的网站上,其功能很强大,操作简便,用户体验较好,因此也被誉为网站开发的“操 作系统”。Drupal是一个开源的系统,拥有很强的灵活性和定制功能121,因此学习 成本也相对较大,许多技术强的网站建设公司会使用它来进行网站建设,包括The Onion、NewsBusters在内的许多网站都使用Drapal作为建站平台。国
16、外的CMS系统发展相对比较成熟,这些系统大多功能强大,开源,是许多中 小企业建站的首选。但同时,由于开源社区代码的不断更新和优化,功能的不断添加, 使得这些系统都非常庞大,学习成本较高,在这些系统上进行进一步的定制开发难度比较大。就建站而言功能很强大,但是对于企业内部数据管理和个性化定制则相对乏力。1.3主要研究内容本课题主要研究内容管理系统在智慧医疗平台中的应用与实践。根据智慧医 疗平台实际的需求,对开源内容管理系统进行功能加强和扩展。医疗行业涉及的 数据繁多,信息量大,数据交叉关系复杂。如何有效管理这些数据是一项复杂而 艰巨的任务。同事针对智慧医疗平台的核心业务,需要将内容管理系统与智慧医
17、 疗平台的业务系统进行代码级的整合与修改,使得内容管理系统既能管理传统的 新闻数据,又能管理定制的业务数据。主要研究内容如下:1、研究国内外各种类型的内容管理系统,对它们的设计原理,设计架构, 代码实现,性能,可扩展性,稳定性,使用场景进行深入研究。内容管理系统发 展至今,己经诞生了许多优秀的产品,它们中很多已经在企业或者社区中得到了 广泛的应用,每个内容管理系统的特点和优势都有所不同,针对智慧医疗平台, 对内容管理系统也有特殊的需求,因此,研究其他优秀的产品,有助于我们找到 最好的解决方案。由于智慧医疗平台使用的编程语言是稳定性和安全性更强的 java编程语言,因此研究的其他内容管理系统也主
18、要以java实现的内容管理系 统为主。国内的企业级内容管理系统和一些优秀的开源软件将会是研宄的重点。2、分析面向智慧医疗平台的CMS所采用的技术架构和性能需求。智慧医疗 平台出于安全性和系统容量以及系统性能,选择了现今比较主流的技术框架,使 用架构也必须考虑到集群与分布式系统。另外数据库的选择与设计上要支持分库 分表以满足将来可能产生的需求。因此我们所使用的内容管理系统也必须要满足 智慧医疗平台的架构需求、编程语言和web框架。另外,智慧医疗平台也有其特 殊的业务模式,因此内容管理系统不仅需要能管理本身自带的新闻和文章,还要 能管理业务数据。因此对内容管理系统的扩展性和扩展便捷性提出了更高的要
19、 求。这也是大多数内容管理系统的瓶颈所在。3、分析面向智慧医疗平台的CMS的业务需求,确定内容管理系统的功能需 求。有与不同业务需求的代码开发也存在着很多重复性的代码工作,因此,研宄 高效的业务需求代码开发机制以便捷的扩展系统功能是本系统好坏的重要指标 之一。简单的业务需求就是对表的增删改查,复杂的业务需求则包含工作流程和 算法。因此,本系统能否满足基本业务需求和复杂业务需求是其扩展性的关键所在。一个高效的管理系统能够很好的保证业务平台的正常运营和维护,极大的降 低维护成本和出错概率。在系统分析和统计上也发挥着重要的作用,因此,一个 好的管理系统是智慧医疗平台运营维护的核心所在。4、根据需求实
20、现一整套适合智慧医疗平台的内容管理系统。由于智慧医疗平台的目标用户数量巨大,因此对系统运行的稳定性和承载能力有比较高的要 求,如果内容管理系统在高并发的情况下有可能会出现一系列故障,ga此针对这 种由于用户量大带来的系统崩溃的问题,应该提出相应的解决办法,如果条件允 许,应该购买相应的硬件设备,进行集群和分布式部署。1.4论文组织结构第一章绪论,主要描述了论文的实际应用背景以及其研宄意义,并对课题国内外 目前的发展状况做了一定的描述,介绍了主要的研究内容。第二章系统关键技术,主要对CMS系统使用到的JAVAEE框架,前端EASYUI 框架,模板引擎等关键技术进行了阐述。分析了这些技术的优势及选
21、择理由。第三章系统需求分析与设计,主要分析了面向智慧医疗平台的CMS系统的功能 需求和非功能需求,并详细阐述了 CMS系统的设计方案及设计思路。第四章系统实现,主要描述了实际的开发过程以及具体的解决方案及实际系统果 展示,介绍了各个功能及模块实现的详细细节。第五章系统测拭,将系统部署到互联网上并对其进行了功能及性能的测试,并给 出了测试结果。第六章总结与展望,总结了面向智慧医疗平台的CMS系统的优势和不足,对其 可改进的地方进行展望。第二章CMS系统关键技术2.1后台关键技术2丄1服务器CentosCentOS 的全称是 Community Enterprise Operating Syste
22、m,也就是社区企业操 作系统,它是Linux的一个发行版本。RedHat的大名大家肯定都听过,它也有企业 版的产品RedHat Enterprise Linux,而CentOS真是这个版本的克隆版。RHEL是收 费的,只有付费才能使用并得到技术支持的服务,其二进制代码不再是免费下载的, 但是源代码还是开放的。虽然能够得到更好的技术支持,但是使用RedHat的企业级 发行版费用是非常高的,每台服务器花费大约800美元,如果在服务器比较多的情况 下,这是一笔不小的开销,对于企业的成本控制来说不是一件好事。在这种情况下, 大批的开源的Linux企业级版本涌现出来,其中CentOS就是典型的代表13。
23、由于 CentOS跟RHEL是用相同的源代码编译而成,因此,CentOS常被用来代替商业版的 RedHat Enterprise Linux 来使用。源于RedHat Linux的源码重新编译,CentOS自身也修复了一些己知的bug。 RedHat Linux是linux服务器操作系统家族中最稳定、可靠的。CentOS经过很严格 的性能测试,具备较为良好的稳定性与可靠性,其使用非常普及而广泛。CentOS因 此也常常被视为是一个可靠而稳定的服务器发行版。它完美继承配备了完善的测试和 性能稳定的Linux内核及软件,和红帽企业RHEL有着相同的基础14】。CentOS的每个 版本有5年的技术支
24、持的时间,相对于其他的limix发行版,有较大的优势。当然,由于使用的是与RedHat相同的源代码,因此CentOS的发行会稍微落后于 RedHat的发行,当然也有一些补丁和修复落后于RHEL的发行版,但是根据开发经验, 这个问题一般来说不会成为大的问题,CentOS的稳定性己经经过测试检验,本身的 版本不会出现大的问题。另外还有一个潜在问题就是CentOS的主版本一旦确定,核 心内容就不会再进行修改,智慧进行一些安全和故障的修复,而一个主版本持续的时 间是5年,这5年内如果运行在服务器上的软件发行了新版本,有可能会更新默认版 本,当然这个问题通过Yrnn软件包管理器可以很轻松的解决,因为Yu
25、m可以轻松的从 开发商直接获取到更新的版本。应用服务器,Tomcat作为一款免费的开源的Web容器最为大家所熟知,同时它 第二章CMS系统关键技术 也是一种非常轻量级的Web应用服务器。由于Tomcat性能稳定,技术相对成熟,是 许多工程师开发和调试的首选,深受广大程序员的喜爱。由于它运行的时候占用的系 统资源很少,同时拥有良好的扩展性,能够支持负载均衡15,因此很适合作为中小型 项目的Web容器u其开源社区也相当的活跃,全世界的JAVA程序员都可以向其添加 新的功能或者改进原有的功能,因此其自身的版本迭代和改进是很快速的。作为 Apache服务器的扩展,tomcat自身可以独立运行,同时也可
26、以和Apache服务器同时 运行。通过配置相应的参数,也可以调整其占用的系统资源和自身的性能,可以根据 不同的服务器配置和运行状况来做出相应的变化,能够适应多种不同环境不同性能要 求的状况。2丄2数据库MySQL目前企业级的数据库分为SQL和SQL两种,也就是关系型数据库和非关系型 数据库,其中关系型数据库的典型代表有MySQL、Access、Oracle、SQLServer、DB2, 非关系型数据的典型代表有MongoDB、redis、Hbase等。关系型数据库的优势在于成 熟的SQL语句以及丰富的查询语句,可以实现复杂的查询功能,能够表征复杂的数据 关系,由于关系型数据库存储数据的方式与面
27、向对象的思想非常相似,也很适合使用 面向对象的思想来处理这些1据,许多持久层的框架正是基于这个特点将数据库中的 表与P0J0类一一对应,从而将对数据的处理转变成对对象的处理。非关系型数据库 可以用来存储非结构化的数据,由于许多特定的场景中,数据间的关系其实并不复杂, 使用关系型数据库存储的话,需要使用sql语句来查询,而对sql语句的解析及处理 是相对发杂的,因此牺牲了部分的性能。对于那些对查询速度有很高要求而且数据结 构并不复杂的情景,使用关系型数据库反而是冗余的。非关系型数据库大多使用 Key-Value的模式来存储数据,查询的时候,只需要根据Key值就可以查询出结构, 当然也有Mongo
28、DB这种介于两者之间,既能保证查询性能,又能实现类似于SQL这种 复杂查询的数据库系统。而由于医疗数据大都比较复杂,而相对的并发并不大,因此 使用关系型数据库来存储即可,另外Oracle等都需要收费才能使用,使用MySQL来 存储数据既能保证使用需求,又能保证性能,是一个很好的选择。MySQL是大家非常熟悉的一款关系型数据库。由于其开源免费、性能稳定、使用 灵活、功能强大等特点,深受广大程序员的喜爱。MySQL数据库釆用的是双授权政策, 其访问速度快,占用空间小,成本低,并且开发源代码,使得非常多的中小型网站或 者系统都选择它来存储数据。MySQL的核心程序使用的是多线程编程,由于线程是轻 量
29、级的进程,因此可以在不大量占用系统资源的情况下,为用户提供有效的服务。另 外MySQL可以部署在windows, Linux等多种操作系统上,非常方便系统的移植和数据备份。表2-1关系型数据库与非关系型数据库比较类型数据库特点关系型数据库Mysql开源免费、体积小 支持多种操作系统 支持并发访问Oracle付费使用、体积大 支持细粒度用户权限 安全性高DB2适用于海量数据 良好的并行性 跨平台、多层次结构非关系型数据库Redis体积小,适合中小型系统 .: 可持久化、多种持久化方案 数据类型丰富Hbase适用于海量数据支持分布式存储和离线处理 紗高并发MongoDB支持复杂数据结构 聲 支持高
30、并发兼具sql和nosql的特点MySQL在安全性上也提供了不错的机制。MySQL同时也为用户提供了灵活而方便 的权限设计,可以方便的设计软件用户的权限和口令,来保证重要数据的访问权限。 MySQL用户与服务器连接时,所传输的口令和数据都经过了加密,因此数据的传输是 安全的。MySQL中所有用户的密码都经过了加密,可以保证每个用户自身的密码无法 被读取。主机也可以通过设置来禁止或者限制远程,防止数据被窃取。MySQL支持ODBC for Winders,它支持ODBC 2. 5函数以及其它很多函数,因此 也可以用Access连接到Mysql数据库上,扩展了它的应用范围。Msyql虽然大多被 中
31、小型起来用来存储数据,但其实Mysql支持千万级别数据记录的存储,因此也可以 用来做大型的数据库,供大型项目和系统来使用。另外MySQL拥有很好的基于线程的 内存分配系统,提供快速而稳定的服务,不必担心起持续使用时的性能和稳定性问题。另外由于它是一种关系型数据库,使用SQL语句来进行数据的访问和存储操作,同时 也支持多种函数和运算符,是得数据库的查询非常快捷而方便。2丄3 MVC框架目前后台服务器的编程语言有很多种,例如.NET,JAVA,Cft,C+均可以用来进 行服务器开发,但是考虑到JAVA跨平台和内存安全的特性,本系统使用的JAVA编程 语言来编写后台代码。后台开发经过多年的实践,己经
32、形成了许多方便使用的框架, JAVA中的框架更是数不胜数,这些框架主要用来完成一些重复的通用的功能,从而 使编程人员专注于业务,书写少量代码即可实现复杂的后台接口。本系统使用的是 Spring+SpringMVC+Hibemate 的三层框架。在JAVA编程中,对对象、对象关系以及对象生命周期的管理是一个复杂的任务, 如果在java类中来实现对象间的关系,将会增大对象之间的耦合,从而使得代码的 灵活性和扩展性降低。因此使用容器来管理各种对象是一种共识,早期企业级的系统 使用EBJ来管理JAVABean,但是代码间的耦合问题依然没有得到完全的解决。Spring 是JAVA框架中广受欢迎的一个,其
33、控制反转和依赖注入的功能使得程序员可以轻松 的实现对象和对象间关系的管理,随着Spring的发展,特别是注解功能的实现,使 得Spring的配置有较以往的版本简化了很多。其A0P的功能则是对OOP编程的一种 补充,实现了切面编程,Spring中的日志功能,事务功能都是依赖A0P而实现的。只需要少量的配置即可在一系列的方法中织入需要的代码,为程序员进行切面编程提供良好的支持。同时,Spring也为众多其他框架如Hibernate、Mybatis、struts等 提供了接口,使得这些框架中的类也能由Spring来接管。图2-2SSH三层框架JAVAEE体系中的Web框架也有多种如Struts、St
34、ruts2、SpringMVC。Web层主 要用来处理request请求并且返回相应的数据,与传统的Servlet编程相比,Web层 框架将Url解析,请求路由,返回数据处理都交给了框架来完成,程序员只需要注重 对request请求进行相应的业务处理即可。Struts2是早期广泛使用的一个Web层框 架,但是由于它实现的是一种类级别的接口,Action中对象由多个Url所共享,因 此仍然有一定程度的親合,Struts处理请求时,会重现new 个Action来处理这个 请求,因此对内存的消耗也比较大。SpringMVC则能够实现方法级接口,通过线程 封闭来实现处理并发请求时的并发安全,因此内存的
35、占用更少,并且它可以与Spring 进行无缝整合,使用注解模式,可以轻松对请求数据类型,Url参数,返回类型进行配置。并且还可以实现RestFull风格,进一步缩减Urf长度,简化参数量。因此本系 统使用SpringMVC作为Web框架。JAVA主要通过JDBC来实现数据库的连接与操作。通过编写sql语句可以实现对 数据库的操作,但是对每个表的操作其实是类似的,如果都通过sql语句编写来实现 增删改查,代码的冗余量将非常大,因此通常使用持久层框架来完成数据库的连接, 并实现对象关系映射,通过对对象的操作来实现对表的操作。目前主流的持久层框架 有Mybatis和Hibernate。Mybatis
36、由于是使用sql来实现对象关系映射,使用sql 来进行查询,因此可以对复杂查询进行优化,对DB是相当友好的,对慢查询也可以 进行相应的改进。Hibernate的优势则在于对象关系的映射更加方便,并且移植性强, 在开发效率上更高,适应性更强。由于内容管理系统的用户是系统的维护人员,因此 查询效率并不是最关键的问题,反而是系统的扩展和灵活性要求更高,因此本系统使 用Hibernate作为持久层框架。表2-2持久层框架比较! 持久层框架特点Hibernate1.功能强大,数据无关性好,0/R映射能力强 2对象的维护和缓存方便3数据库的移植性好,不需要为不用数据库写不同的SQL更好二级缓存机制,可以使
37、用第三方缓存学习成本较高,需要进行有效封装,才能发挥便捷性Mybatis学习成本低,理解相对简单对DBA优化,查询优化方便开发工作量大,需手动书写SQL语句数据库的移植性不好,数据库更改需要进行SQL修改2.1.4 模板引擎 FreeMarker本系统中有两处需要用到模板引擎。第一是内容管理系统网站的前端页面,当然 使jsp来作为表现层也是可以的,但是jsp最终还是转化为java代码来执行,并且jap 中还嵌套有java代码,对于前端人员来说不够友好,也没有做到MVC的充分分离, 但是网站使用静态页面的效率肯定是偏低的,需要使用javascript来进行页面渲染。 效果不一定理想,因此需要使用
38、动态的页面生成工具,也就是模板引擎。第二处则是 代码生成器部分。Java中代码生成是非常常见的应用,java虚拟机中的动态代理就是 使用代码生成器来实现的,当然也有第三方的文件生成器来直接生成class文件来实 现动态代理的功能6本系统中需要使用代码生成器来实现系统的可一致性和扩展性。 使用代码生成器来生成包括dao层、Model层、Service层、配置文件、前端页面在内 的所有文件。由于对数据的管理主要是增删该查,而所有的表的操作是类似的,也就 是它们的文件相似,只是类名及属性不同而己,因此非常适合设计好模板,然后根据 数据的不同来生成不同的文件。此处生成代码文件的正是模板引擎。来常用的模
39、板引 擎有两种,FrepMarker 和 Velocity。FreeMarker是一种使用广泛的模板引擎,其性能良好,仅次于jsp,另外也不能 賴合java代码,因此可以实现完全的MVC分离。FreeMarker内置了大量实用的功能, 比如宏定义、列表、数据校验、数据格式处理等等。这些功能使得前端具有一定的数 据处理能力,从而减少了一部分的后台工作量。FreeMarker使用通用的表达式语言, 方便程序员的使用。FreeMarker也拥有强大的自定义模板功能,能够使用java来对 模板进行自定义,在页面中使用标签即可使用定义好的模板,对习惯使用强类型语言 编程的程序员也比较友好。Velocit
40、y是一款与FreeMarker类似的模板引擎,但比FreeMarkei;功能要更弱一 点。Velocity的优势在在于它的社区更为庞大,第三方的支持也更多,姻此可参考的 文献会更多一点,遇到问题的话,也可以从社区获得更多的帮助,而FreeMarker在 这一点上要差一些,但是随着FreeMarker的用户越来越多,FreeMarker的社区也将 会越来越活跃。Velocity在功能上则要差很多,它没有宏定义的功能,在数据处理和 数据传递上差很多,另外它也没有对日期和数字格式的支持,FreeMarker则可以对数 字和日期的格式进行灵活的定制。在技术集成方面,FreeMarker可以使用jsp的
41、标签, 同时也可以跟Python对象一起工作。由于本系统对速度的要求并不高,反而是由于模板的定义较为复杂,因此需要一 个功能更为强大的模板引擎。FreeMarker的宏定义、宏嵌套、数字日期格式处理、文 本处理等强大的功能,内置的列表、Map等数据结构很的满足了本系统数据结构的 需求,因此本内容管理系统使用FreeMarker作为模板引擎。表2-3模板引擎比较模板引擎优点缺点Freemarker对jsp标签支持良好不能耦合java代码,可以实 现严格的mvc分离性能良好使用表达式语言提供宏定义功能,支持宏嵌 套非官方标准库用户群体小Velocity语法简单,自由度髙不能耦合java代码,可以实
42、 现严格的mvc分离使用表达式语言非官方标准用户群体小,第三方类库少对jsp标签支持不好2.2前端关键技术 2.2.1前端框架EAZYUI为了保证前端页面的结构和形式统一,通常会要求前端程序员开发出一整套的前 端框架,.但是由于内容管理系统的功能非常集中,主要在于对数据的增删该查操作, 因此保证这些功能的使用方便、页面整洁、结构清哳是前端页面的关键。而EASYUI 作为一个前端框架,其提供的DataGrid、TreeGrid等结构很好的满足了对数据进行增 删改查功能的需求,也能彳艮好的满足查询的需求。EasyUI是一个基于jQuery的框架,功能没有extjs那么强大,但是更加轻量级, 而且功
43、能也非常实用,其功能能够满足大部分开发者的需求。并且EASYUI开发出 来的UI界面非常美观,在不需要过多CSS样式的情况下就能实现风格简洁而美观的 界面,由于内容管理系统面向的是后台管理人员,因此功能上的需求更加重要,而界 面的话则要求简洁清晰,操作方便,EASYUI正好能满足这些需求。EASYUI的版本也在不断地更新中,各项不足都在不断地完善中,社区也比较活 跃,遇到问题也可以方便的在社区中得到帮助。EAZYUI支持扩展,如果对js技术 比较熟练的,还可以根据自己需求自己编写相应的控件,调用这些控件的方法跟调用 框架本身自带控件的方法相同。它同时也实现了对HTML5的支持,通过data-o
44、ptions 属性可以进行相应的设置。另外EAZYUI是非常灵活的,同时支持两种渲染方式,一种是javaScript方式,另一种是html标记方式。两种方式的本质是一样的,class 标记的方式最终也是调用相应的javaScript代码来渲染页面。JavaScript方式提供的属 性更加全面,而且html标记方式中也会用到一些js代码,回对html的结构造成一定 的影响,因此在一些简单的配置中,可以直接使用html标记的方式,但是对于比较 复杂的包含js代码的配置,则应尽量使用javaSeript的配置方式。EASYUI提供的众多UI控件解决了增删改查业务需求的大部分需求。其中的 combob
45、ox实现的下拉框,dialog提供的对话框,menu提供的菜单选项,tabs提供的 tab标签和切换,可以很方便的实现网站的功能,而其中的页面渲染和js操作全都由 框本身提供,节省了很多的开发工作。该框架的API内容也非常的全面,每个控件 均有多个例来展示控件的各种功能,有抓们的网站来详细介绍其空间的几乎每一个 功能,学习资料极为丰富,相对于资料较为匮乏的框架,这是一个非常大的优势。其 天然的特性正是后台管理系统所需要的。2.2.2富文本编辑器UEDITOR内容管理系统中一个重要的功能就是进行网页编辑,也就是所见即所得,能够将 图片视频文字等富媒体进行格式的设计和排版,然后再前台展示出来。通常
46、富文本编 辑器会将编辑内容转化为html语言的text存储到数据库中,读取的时候也会直接读 取出html文件也就是网页本身,而不需要再对其格式进行设置。富文本编辑器,Rich Text Editor,正是实现这种功能的工具,它可以内摩在浏览 器中,供非技术人员进行网站网页内容编辑和管理。其菜单栏与word类彳以提供了 丰富的格式编辑和排版的按钮,能够满足大部分网页排版的需求。这种在线编辑工具 可设置文字的颜色,字体,间距,行距,还可以插入图片,附件,超链接等,与word 的使用基本类似,但编辑器实际保存的是html代码和CSS样式,然后通过浏览器渲 染展示出网页的实际效果,这与word有本质的
47、不同。富文本编辑器使得不会前端技 术的普通人员也可以对网站进行有效的编辑和管理。编辑器会将编辑的内容以html 代码的形式通过表单提交保存到数据库中,图片和视频等富媒体则会在上传的时候保 存到相应的服务器上,并返回访问链接。这样门户网站上的网页实际是将数据库中存 储的html代码嵌套在门户中,显示的效果与在线编辑时的效果一样。目前常见的富文本编辑器很多,CKEditor、KindEditor和UEditor都比较常用。 CKEditor是由FCKEditor进化而来。这个编辑器历史悠久,存在超过10年,是一个 轻量级的富文本编辑器,可以跟多种编程语言结合使用,许多CMS系统例如Joomla、
48、Drapal等都与CKEditro进行过整合。CKEditor的优势在与其功能非常强大,包含有 众多插件,使用人群也很多,因此其社区和论坛也较为活跃,问题解决途径较多。KindEditor也是一款非常受欢迎的编辑器,它同样也可以与多种编程语言无缝结合, 同时它也有不错的用户体验,技术也比较领先。KindEditor中,所有的功能都以插件 为载体,也就是说其扩展性很强,只要编写好插件就能向编辑器中添加自定义的功能, 但其实它自身的功能已经非常强大,能够满足大部分开发人员的需求。另外其浏览器 兼容性也不错,能够兼容大部分的主流浏览器。编辑器自身的风格很容易修改,只需 要改动一个CSS文件就可以设置
49、不同的编辑器界面。Ueditor是由百度开发出的一款开源的富文本编辑器,由于其优异的用户体验, 轻量级的特点,使其成为最受欢迎的编辑器之一。Ueditor本身的设计采用了分层架 构的理念,各层之间充分解耦,主要由核心层、插件层、UI层三层构成。其灵活性 很好,由于插件层、UI层与核心层的分离,使得在界面添加额外的功能和按钮非常 简单。另外它也支持单元格的拆分合并,在表格编辑上有不错的体验。由于其百度的 背景,技术支持和版本的更新迭代较其他编辑器会有一定的优势。2.23 CSS 框架 BootstrapBootstrap是一款优秀的前端UI框架,由于其中定义了丰富的前端组件和样式, 使得开发者省
50、去繁杂的CSS设计即可编写出界面美观的前端界面。前端页面的样式 通常是由前端开发人员来进行设计和代码编写。但是由于内容管理系统面向的用户并 不是广大的用户,而是少量的后台管理人员,因此,前端界面不需要非常特别的设计, 美观简介统一的风格就很符合内容管理系统的需求。Bootstrap提供了非常丰富插件, 样式设计的代码非常简洁规范,使得使用Bootstrap开发的前端页面代码结构清晰, 修改容易。另外其提供的对话框,导航条等样式组件极大的提高了开发效率。因此选 择Bootstrap来为内容管理系统进行样式设计非常满足本系统的需求,能够使得前端 代码更加简介而优美,易于修改和扩展。2.3本章小结本
51、章主要从后台到前端整体的介绍了本系统所用到的一些关键技术,包括有后台 的服务器CentOS,应用服务器Tomcat,后台三层框架Spring+SpringMVC+Hibemate, 模扳引擎FreeMarker。然后介绍了前端的关键技术,包括有前端框架EASYUI,富文 本编辑器Ueditor以及CSS框架Bootstrap。第三章CMS系统的需求分析与详细设计3.1系统需求分析 3.1.1功能性需求分析智慧医疗平台主要是通过互联网技术来突破时间和空间的限制实现医疗资源的 合理配置,因此需要将所有参与的数据放到互联网上进行信息交互。医疗数据非常繁 杂,主要包括有医院数据,医护人员数据,患者相关
52、数据,疾病相关数据,健康档案 数据,监测数据,病史数据,护理方案数据等。医护人员需要了解病人的数据来给病 人制定合理的方案,而病人则可以根据医护人员的数据来选择合适的医院合适的医生 来为自己治疗。将医疗资源通过互联网整合到一块,改善资源分配不均的问题,然后 再通过统一的平台使患者都拥有途径来使用到这些资源。由于医疗数据内容繁杂,并且变化性大,因此需要一个良好的内容管理系统来进 行管理。传统的内容管理系统通常指网站网页数据的管理,通常用来搭建市政企业、 教育单位以及中小型企业的门户网站,主要是对网页内容进行编辑,用来发布一些新 闻以及通知。但是针对智慧医疗平台,门户网站的内容以及新闻网页#不是我
53、们所关 注的重点,更何况智慧医疗平台不仅仅只有网站入口,还有IOS跟安卓两大APP入 口,对于这些入口,新闻网页的作用是比较有限的,这些APP更专g提供直接的 服务。因此针对内容管理系统,我们将重点放在对数据的管理上,包括常用的字典数 据以及业务数据。数据管理功能传统的CMS中,数据管理一般是针对于网站的栏目及文档的管理,这些事门户 网站的核心,其功能也结构也相对简单,主要包括有栏目的层次关系,文档的分类和 属性设置。但是本系统将重点放在了所有字典数据及业务数据的管理上,对数据的管 理包括基本的增删改查功能,同时还要保证数据的完整性,也就是要能保证数据与数 据之间的关系以及数据本身的约束要求。
54、另外对数据的校验也是必要的工作,包括对 文字长度的限制,小数点的限制,数据是否能为空的限制。在数据存储和修改的时候, 这些因素都要考虑。另外非常重要的一点就是数据的查询,数据的查询包括有简单的查询和复杂查 询、范围查询、条件组合查询查询。后台管理系统根据不同的属性来查询数据是基本 的属性,有些数据则需要支持范围查询。并且查询的时候应该能够查询出相关的子数 第三章CMS系统的需求分析及详细设计 据。对于非外键的数据,需要支持模糊查询,根据输入能够迅速的查询出匹配的结果。 对于有外键关系的数据,则需要提供查询选项而非用户输入,来提高查询的命中率。 不同数据表的字段和属性虽然不相同,但是对他们的操作
55、方式基本相同,只是根据属 性的不同来区别对待,因此提取这些不同数据的规律,找到一套能够包含这些数据属 性的通用策略来进行代码编写,会达到事半功倍的效果。因此寻找这些数据的规律和 通性也是重要的工作之一。2. 权限管理权限管理通常包括菜单权限和数据权限。菜单权限是指通过配置实现某些用户仅可以访问部分的菜单,而某些用户可以访问全部的菜单。菜单作为模块的入口,没有 这个入口也就无法访问到其中的数据。数据权限是一种粒度更细的权限控制方式,它 可以访问到的字段,将制定字段对某些用户屏蔽,只有拥有更高权限的人才可以访问 到这些字段。权限管理通常也包含用户管理和角色管理。为某些角色分配权限,然后 给不同的用
56、户分配不同的角色,就可以实现对同一角色的所用用户的权限进行管理, 这样多种粒度的权限设置可以简化和方便权限的管理。对于本系统而言,菜单权限主要用来控制不同的后台管理人员能够访问到不同的 菜单内容,并且拥有不同的增删改查的权限,例如有些人员可以查看但不能修改,有 些人员则用有增删改查的所有权限,这样更能保障数据的安全。由于对于医疗平台, 业务也在不断地更新,功能也会不断发生着变化,因此对其进行数据权限的设置反而 会给业务模式迭代带来麻烦,因为每次数据结构变化时,数据权限的配置也必须做出 相应的调整,防止访问出错。而且根据经验,过于精细的控制对于系统往往会是一种 负担,数据权限的控制完全可以通过在
57、查询的时候在查询语句中添加条件来实现,这 种方式虽然会造成硬编码的问题,但是由于这种需求通常并不多,因此所造成的耦合 问题也不会太大。文件上传文件上传对于一个系统来说必不可少的功能。对于医疗平台,由于大部分的数据 通常存放在数库中。因此文件上传主要应用于图片和音视频等富媒体的上传上。由于 文件的上传下载不同于数据库的访问,通常需要专门的文件服务器来存放这些文件。 当然近些年来,第三方文件存放平台如七牛云等也逐渐被各大互联网公司所接受。许 多大公司的图片等资源都存放在这种第三方的平台,由于这些平台专注于文件处理, 能够提供更优质的服务,使文件访问的速度更快。但是这些通常是针对大量文件处理 而言,
58、由于本智慧医疗平台尚处于探索阶段,并没有产生大量的文件数据,因此使用 自己搭建的文件服务器来存储文件资源即可。对于图片而言,不仅要存储图片的原始 文件,更需要针对网站和APP生成各种不同尺寸的缩略图存储到服务器上,这就需 要在用户上传原始文件的时候进行相应的处理。网页编辑网页编辑时内容管理系统最基本的功能之一。网站的新闻发布,消息通知等信息 的发布通常都是由后台人员完成,但是后台人员通常都不了解网页编辑技术,因此需 要提供一种所见即所得的工具功后台管理人员来完成网页编辑的功能。通常网页是属 于某个栏目下的,因此网页编辑的功能首先应包括栏目管理的功能。栏目是一种层次 结构,每个栏目下面可以有多个
59、子栏目。每个文档都应该属于一个栏目。网页编辑应 该能够设置网页的文档,并且能够通过浏览器来预览编辑好的网页实际的展示效果, 方便后台管理人员来进行调整和修改。3.1.2非功能性需求分析扩展性一个系统;的扩展性是评价一个系统的重要因素。对于正在探索阶段的智慧医疗平 台,业务和功能的更改势必会带来数据库的修改,也会对内容管理系统提供新的需求, 如果内容管理系统的更替跟不上业务的更替速度,那么将会对整个系统的正常运行造 成麻烦。如果,每次业务的更改都需要开发人员去进行相应的改动,这个效率是非常 低的。因此内容管理系统应该能够自适应数据库的修改,只使用少量的脚本来实现功 能的扩展。只有特定的业务修改才
60、进行人工修改,这样系统的扩展将非常高效。扩展 性就要求代码应该尽量减少硬编码,最大限度的降低耦合度,对系统进響高度的抽象, 面向接口和模型编程,这样面对底层元素的变动,才能在不改变代码结构的情况下, 轻松的进行调整。移楦性由于智慧医疗平台所针对的可能不止是一种数据库,也可能是其他的数据库,另 外不同的智慧医疗平台针对的也不是一套数据库。但是对于这些数据库,对数据的管 理方式实际上是差不多,如果对每套数据库都需要重新编写一个内容管理系统,那么 效率也是不高的,重复造轮子会造成生产力不必要的浪费。因此开发出一款通用的内 容管理系统,能够方便的进行移植,直接被其他系统所使用,这样的内容管理系统价 值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗行业护士基础操作规范培训【课件文档】
- 农田水土保持技术:原理、实践与创新发展
- 2026年高端机床核心功能部件主轴导轨丝杠选型手册
- 2026年工信部工业领域设备更新专项再贷款项目储备实务
- 人形机器人与具身智能标准体系2026版解读
- 2026年全球多区域临床试验MRCT设计与实施要点
- 2026年两会绿色建筑政策解读:培育产业新增长点路径分析
- 2026年中国电动轮椅需求量将达208.48万辆同比增长5.6%预测
- 检查治疗前沟通要点课件
- 2026年糖尿病足溃疡干细胞治疗创面修复指南
- 汽轮机组试车方案
- 人音版《采花》教学设计
- PCI围术期强化他汀治疗的获益和机制课件
- JJG 539-2016数字指示秤
- GB/T 33365-2016钢筋混凝土用钢筋焊接网试验方法
- 辽宁盘锦浩业化工“1.15”泄漏爆炸着火事故警示教育
- GB/T 14536.6-2008家用和类似用途电自动控制器燃烧器电自动控制系统的特殊要求
- GB/T 1408.3-2016绝缘材料电气强度试验方法第3部分:1.2/50μs冲击试验补充要求
- 《乡风文明建设》(王博文)
- 《安娜·卡列尼娜》-课件-
- 《中级电工培训》课件
评论
0/150
提交评论