【软件工程】数据服务空间组合实现_第1页
【软件工程】数据服务空间组合实现_第2页
【软件工程】数据服务空间组合实现_第3页
【软件工程】数据服务空间组合实现_第4页
【软件工程】数据服务空间组合实现_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着计算机网络技术的飞速发展,互联网上可用的数据资源剧增。数据在数据模型和数据模式上存在很大差异,形成了大量的异构数据源。如何构建一个便捷的数据集成平台,集成各种异构的数据源中的数据,满足用户个性化的数据集成需求,成为一个亟待解决的问题。数据服务空间(DATASERVICESPACE,简称DSS)系统是一个可以将网页、WEBAPI以及主流关系型数据库中的数据封装为服务并通过服务组合实现异构数据集成的系统。本文在DSS系统的基础上进行了改进,优化了创建服务的过程,增添了登录注册、用户权限管理、多条件服务查询、服务删除、用户个人信息管理、服务推送以及百度地图功能。系统实现中采用的主要技术有AJAX、GWT、DWR等,其中,利用AJAX实现数据的无刷新提交,利用GWT实现JAVA代码到JAVASCRIPT的快速转换,利用DWR实现服务器端数据的推送。系统采用B/S架构设计,界面简洁,方便操作,可以满足普通用户对各种异构数据源中的数据的集成需求,为异构数据源的集成带来极大的便利。关键词数据服务空间;数据服务管理;地图服务ABSTRACTWITHTHERAPIDDEVELOPMENTOFCOMPUTERNETWORKTECHNOLOGY,AVAILABLEDATARESOURCESONTHEINTERNETINCREASEDYNAMICALLYTHEREISAENORMOUSDIFFERENCEINTHEIRDATAMODELSANDPATTERNS,THUSMANYHETEROGENEOUSDATASOURCESCOMEINBEINGFORMINGACONVENIENTDATAINTEGRATIONPLATFORMTOIMPROVETHEEFFECTIVEUSEOFINFORMATIONDATATOMEETTHEINDIVIDUALNEEDSOFDATAINTEGRATIONHASBECOMEANURGENTPROBLEMTOBESOLVEDDATASERVICESPACEDSSFORSHORTISASYSTEMTHATCANINTEGRATEDATAASASERVICEFROMTHEWEBPAGES,WEBAPIS,ANDPOPULARRDBMSANDALSOCANCOMBINETHESESERVICESTOINTEGRATETHEHETEROGENEOUSDATASOURCESBASEDONTHEDSS,WEMAKEANIMPROVEMENTINOPTIMIZINGTHEPROCESSOFCREATINGASERVICE,ADDINGTHEFUNCTIONOFLOGIN,REGISTRATION,USERRIGHTSMANAGEMENT,SEARCHINGSERVICESWITHMULTIPLECONDITIONS,DELETINGSERVICES,USERSPERSONALINFORMATIONMANAGEMENT,PUSHINGSERVICE,ANDANAPPLICATIONOFTHEBAIDUMAPTHEMAINTECHNOLOGIESUSEDAREAJAX,GWT,ANDDWRAJAXISUSEDTOSUBMITDATAWITHOUTREFRESH,ANDGWTISUSEDTOCONVERTTHEJAVACODETOJAVASCRIPTCODERAPIDLYINADDITION,WEUSEDWRTOPUSHMESSAGESOFTHESERVERTHESYSTEMISDESIGNEDWITHTHEB/SARCHITECTUREDESIGNITISVERYEASYTOOPERATEBECAUSEOFSIMPLEINTERFACEITCANMEETTHENEEDSOFENDUSERSTOINTEGRATEDATAFROMHETEROGENEOUSSOURCES,ANDBRINGGREATCONVENIENCEININTEGRATINGTHEHETEROGENEOUSDATASOURCESKEYWORDSDATASERVICESPACEDATASERVICEMANAGEMENTMAPSERVICE目录第一章绪论511课题背景和意义512研究开发现状分析513系统总体介绍714论文组织7第二章相关工具与技术921相关工具922相关技术9第三章需求分析1331业务分析1332系统功能分析1833系统非功能分析26第四章系统设计2941体系架构2942功能模块2943数据库设计3144系统详细设计35第五章系统实现4051系统物理结构4052系统物理部署4053主要功能的实现4254遇到的问题和解决方法67第六章总结与展望6961总结6962展望69参考文献70致谢辞71附录一英文原文72附录二中文翻译82第一章绪论11课题背景和意义21世纪以来,随着互联网的快速普及和迅猛发展,信息以前所未有的速度不断地增长,人们通过各种途径产生了各式各样的数据,这些数据不仅量大而且结构各异,有结构化的数据,如数据库;半结构化的数据,如邮件、HTML等;以及非结构化的数据,如文本、音频、视频、图像等。由于不同企业和部门对信息的需求不同,处理方式不同,所使用的信息系统也各不相同,使得不同数据源中的数据无法相互关联,形成了一个个的“信息孤岛”。如何将这些孤立的数据信息集成起来,形成一个数据集成平台,方便人们有效的对这些数据进行个性化的分析和利用,实现资源信息的有效共享,就成为一个迫切需要解决的问题。本课题设计实现了数据服务空间(DATASERVICESPACE,简称DSS)系统的用户管理和数据服务管理模块。DSS是北方工业大学云计算研究中心设计开发的一个面向最终用户的数据集成系统,可以将来自网页、WEBAPI以及主流关系型数据库中的数据封装为服务,并可以通过服务的组合实现异构数据的集成。本文系统开发的目的是为了进一步改进DSS系统。系统采用B/S架构,对界面进行优化,方便用户使用,更好地满足用户的数据集成需求。本课题主要完善DSS的系统功能,完善后的系统将参加中国计算机学会举办的2013年“软件研究成果原型竞赛”。12研究开发现状分析121研发现状近年来,随着WEB20的发展,各种新技术不断涌现,这些新技术完全可以满足本课题所要实现的功能。其中,系统为减少用户等待需要利用AJAX技术实现各种表单数据的无刷新提交,如登录、注册表单的提交;系统为方便调试前端的AJAX程序需要利用GWT实现JAVA代码到JAVASCRIPT代码的快速转换,使用JAVA编写服务创建的后台代码后利用GWT编译器将其编译为前端的JAVASCRIPT代码,再利用GWT的开发者模式可以方便的进行调试;系统为实现服务的即时推送功能需要利用DWR的反向AJAX功能来实现,如可以实现创建删除服务的服务器端数据的及时推送等。综上对国内外研究现状的调查,我们有以下结论(1)通过使用AJAX,运行于网页上的JAVASCRIPT代码直接与服务器进行通信。开发者可以在不刷新整体页面的情况下与WEB服务器进行数据交换。AJAX在浏览器与WEB服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面,大大降低了服务器的负载,最重要的是,这样的刷新方式更易于被用户所接受,降低了用户端浏览器的工作量,增强了用户体验。(2)通过使用GWT,可以用JAVA编程语言开发界面,方便的实现客户端和服务器端的通信。如果用传统的方式JAVASCRIPT进行AJAX开发的话,就会使得应用程序非常难以进行调试,从而降低了生产效率。GWT有望为我们解决这个难题,它使程序员用JAVA同时开发客户端和服务器端的代码。GWT的编译器会把用于开发客户端的JAVA代码转化成JAVASCRIPT和HTML,而程序员不用关心这一转换过程。(3)通过使用DWR,从JAVA到JAVASCRIPT的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处,更加方便服务器与客户端之间的通信。122开发的必要性DSS系统的缺点是界面操作不友好,创建服务过程繁琐,而且没有登录注册、权限管理、服务管理、个人信息管理等功能。因此,要实现系统面向最终用户,方便最终用户操作的目的,需要进行改进。13系统总体介绍本文系统开发的目的是为了进一步改进DSS系统,增强系统功能,优化界面设计,方便用户使用,使之更好地满足用户个性化的数据集成需求。课题需要完成的功能主要包括(1)用户登录注册功能。重点是使用邮件激活账户和找回密码功能;(2)用户权限管理功能;(3)用户个人信息管理功能;(4)对数据服务封装、组合的界面优化。数据服务封装的界面优化又分为封装网页为服务界面的优化、封装WEBAPI为服务界面的优化、封装关系型数据库为服务界面的优化;(5)数据服务管理功能,主要包括1)数据服务的删除;2)定时刷新同步数据;3)服务种类动态显示;4)新建与删除服务的推送功能等;5)数据服务的多条件检索功能。包括按服务名称检索、按服务描述检索、按服务类型检索、按服务创建者检索;(6)数据服务空间典型应用封装的点评网服务与百度地图服务相结合的服务应用。14论文组织本文第一章介绍论文研究背景,研究开发现状以及主要研究内容;第二章介绍本文研究内容的相关技术与工具;第三章介绍了系统的需求分析,包括业务分析、系统功能分析、系统非功能分析;第四章介绍系统的设计过程,包括总体架构设计、静态结构设计、业务用例的实现、数据库的设计以及类的设计;第五章介绍系统的实现过程,包括物理结构的实现、物理部署的实现、主要类的实现、主要功能的实现以及实现中遇到的问题和解决方法;第六章总结全文,并展望下一步的工作。第二章相关工具与技术21相关工具本平台应用基于JAVAEE平台,使用ECLIPSEJAVAEEIDE在32位WINDOWSXP桌面系统环境下开发完成。系统开发使用ECLIPSEHELIOSSERVICERELEASE2作为开发工具,应用服务器前期使用JETTY作为服务器,后期改用TOMCAT60323作为服务器;关系数据库采用MYSQL5515WIN32;前端页面主要使用JSPGWT21进行开发。22相关技术221XML可扩展标记语言(EXTENSIBLEMARKUPLANGUAGE,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合WEB传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML语言则用来表现数据,所以XML主要用途的焦点是它说明数据是什么,以及携带数据信息。主要用途如下(1)丰富文件(RICHDOCUMENTS)自定文件描述并使其更丰富;(2)属于文件为主的XML技术应用;(3)标记是用来定义一份资料应该如何呈现;(4)元数据(METADATA)描述其它文件或网络资讯;(5)属于资料为主的XML技术应用;(6)标记是用来说明一份资料的意义;(7)配置文档(CONFIGURATIONFILES)描述软件设置的参数。本系统将各种异构数据源中的数据转化为XML,并结合相关的前台呈现技术,最终使用嵌套表格来展现服务所提供的数据。222XPATHXPATH即为XML路径语言(XMLPATHLANGUAGE),它是一种用来确定XML文档中某部分位置的语言。XPATH基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPATH的提出的初衷是将其作为一个通用的、介于XPOINTER与XSL间的语法模型。但是XPATH很快的被开发者采用来当作小型查询语言。XPATH是一门在XML文档中查找信息的语言。XPATH用于在XML文档中通过元素和属性进行导航。XPATH使用路径表达式在XML文档中进行导航;XPATH包含一个标准函数库;XPATH是XSLT中的主要元素;XPATH是一个W3C标准。最常见的XPATH表达式是路径表达式(XPATH这一名称的另一来源)。路径表达式是从一个XML节点(当前的上下文节点)到另一个节点、或一组节点的书面步骤顺序。这些步骤以“”字符分开,每一步有三个构成成分(1)轴描述(用最直接的方式接近目标节点);(2)节点测试(用于筛选节点位置和名称);(3)节点描述(用于筛选节点的属性和子节点特征)。223AJAXAJAX即“ASYNCHRONOUSJAVASCRIPTANDXML”(异步JAVASCRIPT和XML),AJAX并非缩写词,而是由JESSEJAMESGAIIETT创造的名词,是指一种创建交互式网页应用的网页开发技术。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的WEB应用程序的技术。通过AJAX,运行于网页上的JAVASCRIPT代码可以使用XMLHTTPREQUEST对象来直接与服务器进行通信。通过这个对象,开发者可以在不刷新整体页面的情况下与WEB服务器进行数据交换。AJAX在浏览器与WEB服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面,大大降低了服务器的负载,最重要的是,这样的刷新方式更易于被用户所接受,降低了用户端浏览器的工作量,增强了用户体验。今天,AJAX技术已经广泛应用于各种WEB应用当中,通过AJAX,因特网应用程序可以变得更完善,更友好。本系统在页面中使用AJAX向服务器发送各种请求,实现页面无刷新并自动响应结果。224GWTGOOGLEWEBTOOLKIT的缩写,有了GWT就可以使用JAVA编程语言编写AJAX前端,然后GWT会交叉编译到优化的JAVASCRIPT中,而JAVASCRIPT可以自动在所有主要浏览器上运行。GWT允许开发人员使用JAVA编程语言快速构建和维护复杂但性能高的JAVASCRIPT前端应用程序,从而降低了开发难度,尤其是与ECLIPSEGOOGLE插件结合使用时,优势更明显。目前GWT的应用还不是特别广泛,包括GOOGLE自己的GMAIL等系统都不是用GWT开发。但是在这一些电子领域里GWT已经有厂商使用GWT开发设备上的用户界面,从而实现远程本地一套代码的效果。本系统使用GWT构建各个服务封装和组合的主要界面,同样实现无刷新提交请求并进行响应。225DWRDWR(DIRECTWEBREMOTING)是一个用于改善WEB页面与JAVA类交互的远程服务器端AJAX开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它在浏览器里一样。它包含两个主要的部分允许JAVASCRIPT从WEB服务器上一个遵循了AJAX原则的SERVLET中获取数据另外一方面一个JAVASCRIPT库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JAVASCRIPT代码。这样WEB开发人员就可以在JAVASCRIPT里使用JAVA代码,就像它们是浏览器的本地代码客户端代码)一样;但是JAVA代码运行在WEB服务器端而且可以自由访问WEB服务器的资源。出于安全的理由,WEB开发者必须适当地配置哪些JAVA类可以安全的被外部使用。这个从JAVA到JAVASCRIPT的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处。本系统使用DWR来实现创建与删除服务的及时推送功能。第三章需求分析本系统并不像传统软件开发一样有明确的需求,所有的功能依据系统的应用场景分析得出。31业务分析311业务范围系统用户主要分为两类普通用户和管理员。业务用例图如图31所示图31业务用例图本文系统完成的普通用户的功能主要包括登录、创建服务(部分功能)、检索服务、使用服务、编辑删除自己的服务、管理个人信息以及使用百度地图应用的功能。管理员除了具有普通用户的一切功能之外,还能够编辑删除所有人发布构造的服务。游客只能浏览本系统的帮助界面以及进行注册。312业务领域模型本系统的业务领域模型图中主要包括用户、服务两类实体,而服务又分为四类,它们之间的关系如图32所示图32业务领域模型图313核心业务流程活动图(1)游客的注册活动图,如图33所示。图33注册活动图(2)已注册用户的登录活动图,如图34所示。图34登录活动图(3)创建服务活动图,这里以创建封装WEBAPI的服务为例,如图35所示。图35创建服务的活动图(4)删除服务活动图,如图36所示。其中结束1指的是用户删除服务操作活动的结束,结束2指的是系统整个删除活动流程的结束。图36删除服务的活动图(5)浏览服务活动图,如图37所示。图37浏览服务的活动图流程图(1)用户登录流程图,如图38所示图38用户登录流程图(2)用户注册流程图,如图39所示图39用户注册流程图(3)创建服务的流程图,这里以创建封装WEBAPI的服务为例,如图310所示图310创建服务的流程图32系统功能分析321系统用例图普通用户的用例图如图311所示图311普通用户功能用例图322用例规约下面是主要用例的详细描述。(1)登录用例名称登录参与者普通用户前置条件用户访问该网站且未登录后置条件进入网站服务展示界面事件流基本路径(1)用户点击登录按钮,用例开始(2)用户个人登录信息录入到系统中,确认提交(3)系统查找用户表,并返回登录结果,用例结束。可选路径(1)在提交请求前的任何时候,都可以选择取消,该用户不会被登录(2)在基本路径(2)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(3)中,如果用户登录失败,系统将给出失败提示(2)创建封装网页的服务用例名称创建封装网页的服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功创建该服务事件流基本路径(1)用户点击CREATECLIPPERS链接,用例开始(2)用户将网页地址录入到系统中,点击OPEN按钮(3)系统根据用户输入的网址进行处理,打开响应的网页(4)用户选取数据或链接,点击ADDPROPERTY添加相应的名称(5)用户点击CREATE按钮,系统弹出服务信息输入界面(6)用户输入创建的服务所需信息,确认提交(7)系统提示用户创建结果,用例结束。可选路径(1)在提交创建服务请求前的任何时候,都可以选择取消,该服务不会被创建(2)在基本路径(2)、(6)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(7)中,如果服务创建失败,系统将给出失败提示(3)创建封装WEBAPI的服务用例名称创建封装WEBAPI的服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功创建该服务事件流基本路径(1)用户点击CREATEDATASERVICEWRAPPER链接,用例开始(2)用户将WEBAPI地址录入到系统中,点击LOAD按钮(3)系统根据用户输入的WEBAPI进行处理,返回响应的数据(4)用户点击CREATE按钮,系统弹出服务信息输入界面(5)用户输入创建的服务所需信息,确认提交(6)系统提示用户创建结果,用例结束。可选路径(1)在提交创建服务请求前的任何时候,都可以选择取消,该服务不会被创建(2)在基本路径(2)、(5)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(6)中,如果服务创建失败,系统将给出失败提示(4)创建封装关系型数据库用例名称创建封装数据库的服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功创建该服务事件流基本路径(1)用户点击CREATEDATASERVICEWRAPPER链接,用例开始(2)用户点击CONNECT按钮,系统弹出信息输入框(3)用户输入所需链接的数据库的信息,点击输入框中的CONNECT按钮(4)系统根据用户输入的信息进行处理,返回响应的数据库表列表(5)用户选择想要封装的表,系统自动加载表中的数据(7)用户点击CREATE按钮,系统弹出服务信息输入界面(8)用户输入创建的服务所需信息,确认提交(9)系统提示用户创建结果,用例结束。可选路径(1)在提交创建服务请求前的任何时候,都可以选择取消,该服务不会被创建(2)在基本路径(3)、(7)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(3)、(8)中,如果服务创建失败,系统将给出失败提示(5)创建组合服务用例名称创建服务组合参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功创建该服务事件流基本路径(1)用户点击CREATEMASHUP链接,用例开始(2)用户在网页工具栏中选择操作(3)用户点击SAVEAS按钮,系统弹出信息输入框(4)用户输入创建的服务所需信息,确认提交(5)系统提示用户创建结果,用例结束。可选路径(1)在提交创建服务请求前的任何时候,都可以选择取消,该服务不会被创建(2)在基本路径(4)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(5)中,如果服务创建失败,系统将给出失败提示(6)编辑服务用例名称编辑服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功修改该服务事件流基本路径(1)用户点击相应服务的EDIT链接,用例开始(2)用户在网页工具栏中选择操作(3)用户点击SAVE按钮,确认提交(4)系统提示用户编辑结果,用例结束。可选路径(1)在提交SAVE请求前的任何时候,都可以选择取消,该服务不会被修改(2)在基本路径(4)中,如果服务修改失败,系统将给出失败提示(7)删除服务用例名称删除服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件成功删除该服务事件流基本路径(1)用户点击相应服务的REMOVE链接,用例开始(2)系统接收到需要删除的服务的相关信息,进行删除(3)系统返回结果,此服务删除,对用户不可见,用例结束可选路径(4)在基本路径(2)中,如果服务删除失败,系统将给出失败提示(8)检索服务用例名称检索服务参与者普通用户前置条件用户访问该网站且已成功登录后置条件系统将检错结果返回给用户事件流基本路径(1)用户点击BROWSE链接,用例开始(2)用户在DISCOVERDATASERVICES下面的信息输入框中选择自己的检索条件,点击FINDDATASERVICE按钮(3)系统进行相应的查找,并返回查找结果,用例结束可选路径(1)在基本路径(1)中,用户可以点击MYDATASERVICE链接进行同样的操作(2)在基本路径(2)中,用户也可以直接点击BROWSEBYDOMAIN下面的服务种类链接进行检索(9)使用服务用例名称使用服务参与者普通用户前置条件用户获得相应服务的访问接口后置条件系统将服务的数据内容返回给用户事件流基本路径(1)用户通过网页或者API同步访问,用例开始(2)系统返回相应服务的数据,用例结束可选路径(1)在基本路径(2)中,如果用户访问的服务不存在,系统将返回错误提示(10)个人信息管理用例名称个人信息管理参与者普通用户前置条件用户访问该网站且已成功登录后置条件系统提示修改成功事件流基本路径(1)用户点击USER链接,用例开始(2)系统返回相应服务的数据,呈现给用户(3)用户在相应的信息框中修改跟个人信息,确定提交(4)系统返回修改结果,用例结束可选路径(1)在提交修改请求前的任何时候,都可以选择取消,该信息不会被修改(2)在基本路径(3)中,如果输入的信息不正确,系统将提示修改这些信息(3)在基本路径(4)中,如果信息修改失败,系统将给出失败提示除去注册功能用例及其描述,系统管理员的功能用例图以及用例描述与普通用户基本一致。目前,系统普通用户与系统管理员的主要区别是普通用户仅能对自己创建的服务进行删除编辑,管理员对所有服务都可以删除和编辑。33系统非功能分析331运行环境需求系统采用B/S结构设计,部署在APACHETOMCAT上运行,与客户端采用HTTP通信协议进行通信。客户机外围设备鼠标,键盘,显示器;操作系统装有指定浏览器的各种操作系统;服务器外围设备鼠标,键盘,显示器;操作系统LINUX或WINDOWS2000以上操作系统;数据库支持MYSQL50以上;332系统接口需求(1)用户接口用户界面要求简洁明了,而且表单操作要求尽量避免使用鼠标。所以数据的填写,控件焦点的转换要自动进行。不同种类数据填写的顺序即TAB的顺序要符合实际操作的习惯。(2)硬件接口对于服务器端,应该具有较快的执行速度,较大的存储容量与高速的网络访问速度,因此对此的硬件基本需求如下服务器端CPU1GHZ以上硬盘项目部署后占用磁盘约200M,因此除去系统和各种必须软件所需空间,空闲空间不得少于300M;内存512M以上。客户端能够正常运行火狐浏览器且访问网络。(3)软件接口系统软件的选取是发挥系统功能的关键,好的软件可以增强系统的稳定性、安全性、运行效率。服务器端JDK16以上,TOMCAT60以上或者JETTY70以上,MYSQL50以上客户端FIREFOX368浏览器,GWTDEVPLUGINXPI火狐插件,FOXTIDYXPI火狐插件333数据需求(1)静态数据在软件开发过程中不可改变的数据,包括用户账号注册时间,用户名,用户邮箱等。(2)动态数据在软件开发过程中可以改变的数据,除开静态数据以外的数据。要求数据符合以下两点1)录入处理的准确性及容错性;2)数据的一致性和完整性。334性能需求平台支持多用户同时正常操作。采用软件默认配置,APACHETOMCAT默认最大并发量150个,MYSQL默认最大连接数100个。335质量需求(1)可靠性。系统应保证在规定的条件和规定的时间内,用户所进行的操作能够顺利完成,如果遇到意外情况,应及时回滚操作,保证系统的可靠性。(2)可用性。系统应具有良好的图形化界面,方便用户操作,以面向最终用户为主。(3)安全性。系统应保证不泄露用户个人信息。第四章系统设计41体系架构系统采用基于B/S结构的三层体系架构,如图41所示用户客户端浏览器服务器端数据库表示层JSPGWT业务逻辑层SERVLETJAVABEAN数据访问层JPAJDBC图41系统体系结构图(1)表示层用于该平台的用户进行交互以及显示根据特定业务规则进行计算后的结果。本系统采用B/S架构,即用户可以直接通过浏览器访问系统。(2)业务逻辑层负责平台的业务逻辑处理和表示逻辑生成,支持诸如响应客户请求以及查询等功能。中间层进行逻辑处理,再将处理的结果反馈给客户或者发送到数据库中。(3)数据访问层数据访问层用于访问底层的数据库系统,这里的数据库系统是指关系数据库系统。42功能模块该平台的用户主要有2类管理员、普通用户。各用户在登录界面进行登录进入网页,完成各种操作。平台的功能如图42所示。图42系统功能模块图模块描述注册模块实现用户注册功能;登录模块实现用户的登录、找回密码、激活账户的功能;用户信息管理模块实现用户个人信息的管理;服务管理模块实现服务的添加、删除、查找、编辑、使用功能;检索服务模块实现服务的多条件检索以及服务的增加与删除的推送功能;创建服务模块实现用户对四种服务的创建,包括封装网页的服务、封装WEBAPI的服务,封装数据库的服务以及服务组合;本文系统完成的是对四种服务的创建页面的优化以及存储的优化;编辑服务模块实现用户对服务的编辑功能;本文系统完成的是对服务编辑页面优化以及对可编辑服务的显示“编辑”功能;删除服务模块实现用户对服务的删除功能;使用服务模块实现用户对服务的使用功能,包括通过网页同步访问和通过API同步访问;本文系统完成的是定时刷新访问的服务,真正做到同步访问。43数据库设计本小节介绍系统的数据库设计,包括数据库逻辑结构设计和数据库物理结构设计。431数据库逻辑结构设计数据库的逻辑结构设计是把概念结构设计阶段设计的基本ER图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。下图43图和44为主要实体的数据库逻辑结构图。图43服务实体与用户实体之间的ER图本系统中存在用户、服务、CLIPPER服务、DB服务、WEBAPI服务及APP服务五个实体,所有的功能都是围绕这五个实体所进行的操作。CLIPPERS服务、DB服务、WEBAPI服务及APP服务继承自服务,它们之间的关系都是一对一;用户与服务之间的关系是一对多,即一个用户可以拥有多个服务。432数据库物理结构设计物理数据库是逻辑数据库的物理实现,它描述了数据库中基本表的物理结构和完整性约束等信息。物理数据库的设计依赖于具体的DBMS,本系统使用MYSQL数据库。(1)用户表。只有注册用户才能使用本系统的主要功能。非注册用户只能浏览帮助界面。图44展示了用户表的物理结构设计。图44用户表(2)服务表。用户创建的任何服务的基本信息都在此表中。图45展示了服务表的物理结构设计。图45服务表(3)封装网页为服务的表。用户创建的封装网页数据为服务的特有信息存放在此表中。图46展示了此表的物理结构设计。图46网页封装服务表(4)封装WEBAPI为服务的表。用户创建的封装WEBAPI为服务的特有信息存放在此表中。图47展示了此表的物理结构设计。图47WEBAPI封装服务表(5)封装数据库为服务的表。用户创建的封装数据库为服务的特有信息存放在此表中。图48展示了此表的物理结构设计。图48数据库封装服务表(6)组合服务的表。用户创建的组合服务的特有信息存放在此表中。图49展示了此表的物理结构设计。图49组合服务表(7)服务类型表。用户创建的服务类型信息存放在此表中。图410展示了此表的物理结构设计。图410服务类型表443数据库访问设计采用JDBC与JPA相结合的方法访问数据库,实现对象的读写。利用JDBC中提供的数据库访问API直接编写SQL语句实现数据库的访问;利用JPA通过JDK50注解描述对象关系表的映射关系,并将实体对象持久化到数据库中。44系统详细设计441业务用例的实现业务用例的实现主要用时序图方式实现。(1)用户查询服务的时序图如图411所示图411用户查询服务的时序图(2)用户删除服务的时序图如图412所示图412用户删除服务的时序图(3)用户查看个人信息的时序图如图413所示图413用户查看个人信息的时序图442类图图414展示了与用户登录有关的类及其之间的联系。图414与用户登录有关的类图用户登录时前台与服务器之间的请求与响应均是通过控制器LOGINSERVLET类来进行的。首先用户登录时给LOGINSERVLET类发送请求,LOGINSERVLET类将请求中的用户数据封装成USER对象,然后调用USERDAOIMPL类里的LOGIN(USER)方法,然后在LOGIN(USER)类中调用USEREXISTS(STRING)方法判断用户名是否存在,如果用户名已存在,系统通过LOGINSERVLET类返回给用户提示,否则在数据库USER表中进行相应的查询,然后查询返回结果给LOGINSERVLET类,LOGINSERVLET类根据返回结果进行判断,将最终结果响应给用户。期间,USERDAOIMPL类使用DBUTILS中的GETCONNECTION()方法创建与数据库之间的链接。四个主要服务及其父类服务之间的关系,如图415所示。图415四个主要服务类及其父类服务类的类图DB类、WEBAPI类、APP类、CLIPPER类均继承自父类DATASERVICETYPE类,其中每个子类代表着一种服务,其服务的基本信息继承自DATASERVICETYPE类,而各自有具有属于自己服务的特有信息。封装网页的服务类图如图416所示。图416封装网页的服务类图其中,CLIPPERSERVICE类为服务方法定义接口,CLIPPERSERVICEASYC类为异步调用接口,CLIPPERSERVICEIMPL类为服务器方法实现类,它实现CLIPPERSERVICE接口。GWT中CLIENT包中的任何类想要使用非GWT配置文件中声明的其它类中的方法必须通过异步调用接口来间接的调用。第五章系统实现51系统物理结构系统的物理结构主要有用户注册单元、用户登录单元、个人信息管理单元、创建服务单元、浏览服务单元、编辑服务单元、删除服务单元、使用服务单元以及百度地图应用单元构成,如图51所示。图51系统组件图52系统物理部署系统的物理部署由客户端浏览器、应用服务器TOMCAT以及数据库服务器MYSQL组成,部署图如图52所示。图52系统部署图项目参加的2013年“软件研究成果原型竞赛”(相关链接地址HTTP/WWWSWEGORGCN/CONTEST2013HTML),需要部署到北京大学的云平台SASE上,如图53、54、55所示图53SASE用户登录图图54应用提交界面图55查看应用界面53主要功能的实现531用户界面实现(1)首页界面,如图56所示。图56首页(2)登录界面,如图57所示。图57登录界面(3)注册界面,如图58所示。图58注册界面(4)登录后进入的主页,如图59所示。图59登录后进入的主页界面(5)服务浏览查询删除界面,如图510所示。图510服务浏览查询删除界面(6)用户个人信息页面,如图511所示。图511用户个人信息页面(7)帮助页面,如图512所示。图512帮助页面界面(8)封装WEBAPI为服务的页面,如图513所示。图513封装WEBAPI为服务的页面(9)封装数据库为服务的页面,如图514所示。图514封装数据库为服务的页面(10)服务组合的页面,如图515所示。图515服务组合的页面(11)百度地图页面,分别如图516、517、518所示。图516地址设定界面图517组合信息显示界面图518地图路线显示界面界面代码实现用户界面整体上采用JSP开发,兼用GWT。用户在页面中向服务器提交请求统一使用AJAX技术来实现,并没有使用传统的表单提交,这样可以做到无刷新提交并相应。这里以登录界面图519代码示例如下图519登录界面登录页面的代码USERNAMEPASSWORDLOGIN登录调用的JAVASCRIPT代码如下/页面中调用的方法FUNCTIONLOGIN_NULLVARUSERNAMEDOCUMENTGETELEMENTBYID“LOGIN_USERNAME“VALUEVARPASSWORDDOCUMENTGETELEMENTBYID“LOGIN_PASSWORD“VALUEIFUSERNAME“|PASSWORD“IFUSERNAME“ALERT“USERNAMEISEMPTY“RETURNFALSEELSEALERT“PASSWORDISEMPTY“RETURNFALSEELSESENDREQUEST“LOGINSERVLETSERVICELOGIN/下面为使用AJAX的过程VARXMLHTTPREQ/根据不同浏览器创建请求对象XMLHTTPREQUESTFUNCTIONCREATEXMLHTTPREQUESTIFWINDOWXMLHTTPREQUESTXMLHTTPREQNEWXMLHTTPREQUESTELSEIFWINDOWACTIVEXOBJECTTRYXMLHTTPREQNEWACTIVEXOBJECT“MSXML2XMLHTTP“CATCHETRYXMLHTTPREQNEWACTIVEXOBJECT“MIRCSOFTXMLHTTP“CATCHE1/发送请求FUNCTIONSENDREQUESTURLCREATEXMLHTTPREQUESTXMLHTTPREQOPEN“GET“,URL“XMLHTTPREQONREADYSTATECHANGEPROCESSRESPONSEXMLHTTPREQSENDNULL/响应函数FUNCTIONPROCESSRESPONSEIFXMLHTTPREQREADYSTATE4IFXMLHTTPREQSTATUS200VARRESXMLHTTPREQRESPONSEXMLGETELEMENTSBYTAGNAME“RESULT“0FIRSTCHILDDATAIFRES“COMMONUSER“|RES“ADMIN“WINDOWLOCATIONHREF“INDEX/CORE/MYINDEXJSP“ELSEWINDOWALERTRESRETURNELSEWINDOWALERT“THEPAGEYOUREQUESTISABNORMAL“关于用户登录的后台代码。控制器由LOGINSERVLET类进行处理,代码如下PROTECTEDVOIDDOPOSTHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESPTHROWSSERVLETEXCEPTION,IOEXCEPTIONRESPSETCONTENTTYPE“TEXT/XMLCHARSETUTF8“RESPSETHEADER“CACHECONTROL“,“NOCACHE“PRINTWRITEROUTRESPGETWRITERSTRINGSERVICEREQGETPARAMETER“SERVICE“USERDAOIMPLUSERDAONEWUSERDAOIMPLHTTPSESSIONSESSIONREQGETSESSIONIF“LOGIN“EQUALSSERVICEOUTPRINTLN“STRINGUSERNAMEREQGETPARAMETER“USERNAME“STRINGPASSWORDREQGETPARAMETER“PASSWORD“USERUSERNEWUSERUSERSETUSERNAMEUSERNAMEUSERSETPASSWORDPASSWORDINTRESULTUSERDAOLOGINUSER/2账号未激活IFRESULT2OUTPRINTLN“THEACCOUNTISNOTACTIVE“/1用户名不存在ELSEIFRESULT1OUTPRINTLN“THEUSERNAMEDOESNOTEXIST“/0用户密码错误ELSEIFRESULT0OUTPRINTLN“THEPASSWORDISWRONG“/1普通用户成功登录ELSEIFRESULT1INTISALLOWEDUSERDAOGETISALLOWEDUSERNAMECSESSIONCSNEWCSESSIONCSSETUSERNAMEUSERNAMECSSETUSERTYPE“0“SESSIONSETATTRIBUTE“C_SESSION“,CSSESSIONSETATTRIBUTE“USERNAME“,USERNAMESESSIONSETATTRIBUTE“ISALLOWED“,ISALLOWEDOUTPRINTLN“COMMONUSER“ELSE/管理员成功登录INTISALLOWEDUSERDAOGETISALLOWEDUSERNAMECSESSIONCSNEWCSESSIONCSSETUSERNAMEUSERNAMECSSETUSERTYPE“1“SESSIONSETATTRIBUTE“C_SESSION“,CSSESSIONSETATTRIBUTE“ADMINNAME“,USERNAMESESSIONSETATTRIBUTE“ISALLOWED“,ISALLOWEDOUTPRINTLN“ADMIN“OUTPRINTLN“OUTCLOSE在控制器LOGINSERVLET类中调用了数据库层的LOGINUSERUSER方法,对用户登录进行数据库查询/验证用户登录PARAMUSER用户RETURNINT2账号未激活1用户名不存在0用户密码错误1普通用户成功登录2管理员成功登录EXCEPTION出现异常则登录失败/PUBLICINTLOGINUSERUSERINTLOGIN_RESULT0TRYIFUSEREXISTSUSERGETUSERNAME0LOGIN_RESULT1ELSESQL“SELECTUSERNAME,IS_ADMIN,IS_ACTIVEFROMUSERWHEREUSERNAMEANDPASSWORDANDIS_DEL0“CONNDBUTILSGETCONNECTIONPSCONNPREPARESTATEMENTSQLPSSETSTRING1,USERGETUSERNAMEPSSETSTRING2,USERGETPASSWORDRSPSEXECUTEQUERYIFRSNEXTIFRSGETINT“IS_ACTIVE“0LOGIN_RESULT2ELSEIFRSGETINT“IS_ADMIN“0LOGIN_RESULT1ELSELOGIN_RESULT2ELSELOGIN_RESULT0CATCHSQLEXCEPTIONEEPRINTSTACKTRACEFINALLYDBUTILSFREERS,PS,CONNRETURNLOGIN_RESULT532多条件查询的实现用户查询所有服务或是查询自己的服务时都可以根据条件进行查询。下图中的“BROWSEBYDOMAIN”以及DISCOVERDATASERVICES中的IN下拉框中的服务类型及数量都是动态实现的,是随着数据库中的服务类型和数量的变化而变化的。图520多条件查询服务图520的功能具体实现过程如下当页面刚加载时,首先调用下面的两个方法其中INITDATASERVICES方法是使用AJAX异步请求得到数据库中的所有的服务,然后利用响应函数在页面中显示出来并进行分页处理。INITTSERVICE方法使控制服务种类的显示的方法,代码如下FUNCTIONINITTSERVICEVARSEARCHINPUTDATA“SEARCHDATASERVICENAME,ORDESCRIPTION“VARSELECTDOMAIN“DOMAIN“VARSELECTRELEVANCE“RELEVANCE“VARSHOWUSER“VARCHECKEDFALSEVARURL“BROWSESERVLET/BROWSECMDINITTIFWINDOWXMLHTTPREQUESTREQTNEWXMLHTTPREQUESTELSEIFWINDOWACTIVEXOBJECTREQTNEWACTIVEXOBJECT“MICROSOFTXMLHTTP“IFREQTREQTOPEN“POST“,URL,TRUEREQTONREADYSTATECHANGEINITTCOMPLETEREQTSENDNULL/响应函数FUNCTIONINITTCOMPLETEIFREQTREADYSTATE4IFREQTSTATUS200VARDOMAINMAPREQTRESPONSETEXT/在这里调用方法显示服务种类和数量SELECT_LISTDOMAINMAP/显示服务种类和数量FUNCTIONSELECT_LISTDOMAINMAPDOCUMENTGETELEMENTBYID“TOPNAV1“INNERHTML“VARDOMAINDOCUMENTGETELEMENTBYID“SELECTDOMAIN“DOMAININNERHTML“DOMAINOPTIONSADDNE

温馨提示

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

评论

0/150

提交评论