张艳能毕业设计第三版.docx
《张艳能毕业设计第三版.docx》由会员分享,可在线阅读,更多相关《张艳能毕业设计第三版.docx(62页珍藏版)》请在冰豆网上搜索。
张艳能毕业设计第三版
本科生毕业设计(论文)
毕业设计课题:
手机短信竞猜平台的设计与实现
姓名:
张艳能
学号:
201010405113
专业:
计算机科学与技术
指导教师单位:
信息工程与自动化学院
指导教师:
王翊
Graduationproject(thesis)
GraduationProjectSubject:
TheDesignandImplementationofSMSQuiz
Name:
YannengZhang
Number:
201010405113
Specialty:
ComputerScienceandTechnology
GuideTeacher’sUnit:
CollegeofInformationEngineeringandAutomation
Teacher’sName:
YiWang
摘要
手机短信竞猜平台(SMSQuiz)是一个电信的增值业务,它运用SOA(Service-OrientedArchitecture)的架构思想,将服务部署在一个web运用服务器上,作为一个物理上独立的软件程序单元,用户通过发送短信订购指令到SDP,SDP解析短信内容后将创建订购关系,然后同步订阅关系到短信竞猜平台。
SMSQuiz系统是基于JAVA语言开发,依然使用JAVA.EE中主流的SSH框架技术实现系统的调查问卷管理,自我评测管理,问答竞猜管理,报表和日志的管理等模块。
同时也使用Axis2技术来实现整个系统的功能逻辑部分,即让用户通过手段短信可以实现这个业务,其中将涉及到SDP接口的设计,遵循SOAP协议实现系统间的交互。
当用户订购了服务后,通过SDP平台,用户通过短信的方式就可以获得SMSQuiz系统提供的服务。
通过这种方式,不仅丰富了手机用户的日常生活。
同时也提升了电信运营商的短信收益。
论文主要详细说明这这个系统的设计和实现,包括功能业务逻辑和后台管理界面部分。
关键词:
SOA,SMSQuiz,WebService运用
Abstract
SMSquizplatform(SMSQuiz)isatelecommunicationsvalue-addedservices,whichuseSOA(Service-OrientedArchitecture)frameworkforthinking,theuseofawebservicedeployedontheserverasastandalonesoftwareprogramonaphysicalunit,usersSendSMSorderinginstructionstoSDP,SDPwillresolvetocreatethecontentofmessagesorderingrelationship,andthensynchronizesubscriptionsrelatedtotheSMSquizplatform.
SMSQuizsystemisbasedonJAVAlanguagedevelopment,isstillinuseJAVA.EESSHframeworkofmainstreamtechnologysurveymanagementsystem,self-evaluationmanagement,quizquizmanagement,reportingandlogmanagementmodules.Axis2alsousetechnologytoachievefunctionallogicpartofthesystemthatallowsuserstoimplementthisservicebymeansofSMS,whichwillinvolvetheSDPinterfacedesign,followtheSOAPprotocolinteractionbetweensystems.Whenyouorderaservice,throughtheSDPplatform,userscangetthetextmessageserviceSMSQuizprovidedbythesystem.Inthisway,notonlyenrichesthedailylivesofmobilephoneusers.ButalsoenhancethetelecomoperatorSMSrevenues.ThesisDescribethedesignandimplementationofthissystem,includingthebusinesslogicandfunctionalpartoftheadmininterface.
Keywords:
SOAarchitecture,telecomvalue-addedservice,webserviceapplication
第一章绪论
1.1研究背景
在最近的几年中,SOA面向服务的体系结构得到了越来越广泛的认可,并成为支持业务转换的重要企业体系结构,面向服务的体系结构在业务流程和支持IT之间提供了更紧密的联系。
在一些发展中国家,电信基础设施的不完善,数据的传输速度依旧还是制约智能设备发展的一个瓶颈,短信业务仍然是电信运营商收入的重要组成部分,如何刺激用户使用短信,推动短信业务的发展,增加电信运营商的收益,依旧是运营商关注的焦点。
1.2现状
电信业务在现代生活中占有至关重要的地位,它的发展可以大大地加速信息的流动,伴随着世界向信息化社会的发展,社会对信息的依赖程度越来越大,信息的加工、处理和传递成为了经济增长的重要源泉。
电信行业具有服务性、网络性和技术密集性等特点,随着电信业务的发展,业务的管理和维护也变得异常的复杂。
如何高效的管理业务成为运营商、网络核心设备提供商和业务开发商亟待解决的问题,如何将业务从复杂的系统的解耦,使得业务开发商只关心业务的实现细节,而不用关心复杂的电信网络。
对此,业界提出了面向服务的架构思想SOA(Service-OrientedArchitecture)。
1.3目的
本次的毕业设计我参与了电信的增值业务手机短信竞猜平台的开发与实现,这个系统采用了SOA的架构思想,系统涉及javaEE技术中流行的struts2,Hibernate,Spring框架技术,还涉及到axis2框架技术。
采用面向对象分析方法设计,让系统功能更加的直观易懂,系统的层次也更加的分明。
在本次开发和设计中,我学会了很多新的开发技术和系统设计方法,理解了通信行业中的实现原理,理解了软件工程中的很多概念,专业基础知识得到了进一步的巩固和提升。
第二章系统目标及需求分析
2.1系统实现目标
“手机短信竞猜平台”(SMSQuiz)为用户提供三种类型的短信问答增值业务:
SMSOpinion、SMSTest、SMSContest。
短信竞猜平台发送不同的问卷给该业务的订阅者,同时订阅者用短信的方式发送问题的答案给竞猜平台。
用户通过短信发送订阅信息、接收竞猜平台邀请信息订阅本增值业务,所以每个人都可以参加本增值业务。
我们提供两种计费方式来实现业务的计费,一种为包月计费的方式,一种为点播计费的方式,对于包月计费,当用户订购了业务的时候,竞猜平台将会发送计费请求到综合业务交互平台SDP,SDP调用相应的接口,实现计费,计费成功后,综合服务平台SDP将会同步计费成功的消息到竞猜平台。
对于点播的方式,当服务器收到了特定的用户请求的时候,对每一次用户的请求,就触发一次计费,综合服务平台SDP计费成功后,再将计费成功的消息发送给竞猜平台。
2.2系统开发环境及简介
本次系统开发使用MyEclips10作为开发工具,Tomcat6.0作为Web服务器,Oracle11gRac作为后台数据库,windows作为开发的OS,SuseLinux作为系统运行的OS,IE浏览器和FireFox浏览器作为客户端浏览器,基于Java.EE中的Struts2、Spring、Hibernate框架技术,使用Axis2框架技术与SDP对接实现短信传输,系统采用SOA架构思想。
下面对主要框架和工具做一简单介绍。
2.2.1MyEclipse10简介
Eclipse是著名的跨平台的自由集成开发环境(IDE),最初主要用来Java语言开发。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
MyEclipse则是一个十分优秀的用于开发Java,JavaEE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。
可以说MyEclipse几乎囊括了目前所有主流开源产品的专属Eclipse开发工具。
在结构上,MyEclipse的特征可以被分为7类:
(1)JavaEE模型,
(2)WEB开发工具,(3)EJB开发工具,(4)应用程序服务器的连接器,(5)JavaEE项目部署服务,(6)数据库服务,(7)MyEclipse整合帮助。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任意模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。
MyEclipse10版本使用最高级的桌面和Web开发技术,包括HTML5和JavaEE6,支持JPA2.0、JSF2.0、Eclipselink2.1以及OpenJPA2.0.
2.2.2Tomcat6.0简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器,技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可。
其运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
作为一个小型的轻量级应用服务器,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web应用服务器。
实际上Tomcat可以作为Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
Tomcat6.0改动:
在汲取Tomcat5.5.x优点的基础上,实现了Servlet2.5和JSP2.1等特性的支持。
除此以外的改进列表如下:
·内存使用优化
·更大的IO容量
·重构聚类
2.2.3Oracle简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle的特性:
1、完整的数据管理功能:
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的操作。
2.2.4Java.EE的SSH框架简介
2.2.4.1.Struts2
MVC即Model-View-Controller的缩写,是一种常用的设计模式。
MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
Struts是MVC的一种实现,它将Servlet和JSP标记(属于JavaEE规范)用作实现的一部分。
Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
Struts经过长时间发展,已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。
但是随着时间的流逝,技术的进步,Struts的局限性也越来越多地暴露出来,并且制约了Struts的继续发展。
2006年,WebWork与Struts这两个优秀的JavaEEWeb框架的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts2”,原Struts的1.x版本产品称为“Struts1”。
Struts2是在Struts1和WebWork的技术基础上进行了合并,产生了全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
但是,Struts2仍然是基于MVC模式的,也是动作驱动的,这是唯一没变的东西。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
2.2.4.2.Spring
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务、事务处理等。
Spring致力于JavaEE应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。
然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.2.4.3.Hibernate
Hibernate是一种Java语言下的对象关系映射解决方案。
它是使用GNU宽通用公共许可证发行的自由、开源的软件。
它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。
Hibernate也是目前Java开发中最为流行的数据库持久层框架,现已归JBoss所有。
它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。
无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。
Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。
2.2.5Axis2框架简介
Axis质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。
新结构的axis2是建筑在axis1.x基础上的。
比较axis1,Axis2以更加灵活,高效和更好的配置。
一些好的观念亦从axis1.X被储存在新的结构中。
Apacheaxis2不仅支援SOAP1.1和SOAP1.2,而且它也对于REST风格的Web服务也有综合性的支援,相同的业务逻辑实作可以同步利用WS*式的接口以及REST接口。
ApacheAxis2较旧的版本是更有效率,更加模组化和更多的XML类型。
它是经过精心设计,支援轻松添加插件"模组module",以提升现有的功能特征。
Axis2可以让你轻易的完成如下工作:
1.发送SOAP消息
2.接受和处理SOAP消息
3.从一个纯Java类生成一个WebService
4.使用WSDL来创建服务端和客户端的实现类
5.非常容易的从一个service来获取WSDL
6.发送和接受带有附件的SOAP消息
7.创建和使用REST的WebService
8.创建和使用带有WS-Security,WS-ReliableMessaging,WS-Addressing,WS-Coordination和WS-AtomicTransaction的WebService.
2.3SOA架构思想阐述
SOA(Service-OrientedArchitecture),面向服务的体系结构就是一个组件模型,它将运用程序的不同功能单元,也就是服务,通过这些服务之间定义良好的接口和契约联系起来,其中,这些接口和契约采用中立的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言,构建在这样的系统中的服务可以以一种统一和通用的方式进行交互。
在国内,华为的SDP综合服务平台,就是采用这种架构方式,我们可以将公司的电信增值业务发布到SDP平台,当订购用户使用服务时,SDP平台会将服务请求定向到对应的业务处理服务器上,业务服务器处理完成用户请求后,SDP再将处理结果反馈给用户。
通过这种方式,来实现和订购用户之间的信息交互。
相对于传统的架构,软件包被编写成为独立的软件,实现整合运用程序功能的代码通常与功能本身的代码混合在一起,更改其中的一部分代码或者为系统添加新的功能,将会导致整个系统的重新编译,这样将会大大增加系统维护的成本,系统的耦合性比较高。
在SOA(Service-OrientedArchitecture)架构中包含了三种角色服务提供者:
发布自己的服务,响应服务请求,处理服务的业务逻辑。
服务注册中心:
注册已经发布的服务,将服务进行分类,提供搜索功能。
服务请求者:
利用服务中心查找需要的服务。
SOA角色关系见图1-1
图11SOA角色关系
SOA(Service-OrientedArchitecture)中定义了三种操作:
发布操作:
为了使服务可以访问,需要发布服务描述使得服务使用者可以发现它。
服务查找:
服务请求者定位到服务后,通过查询服务注册中心来找到满足其标准的服务。
绑定服务:
在检索到服务后,服务提供者继续根据服务描述中的信息来调用服务。
SOA(Service-OrientedArchitecture)相关标准:
XML可扩展的标记语言(XML)
XML是由万维网协会(W3C)创建的一种基于文本的规范标记语言,是WebService平台中表示数据的基本格式。
其优点是:
易于建立、易于分析、与平台无关、与厂商无关。
XSD(XMLSchemasdefinitionlanguage)XML模式定义语言
XSD也是由万维网协会(W3C)创建的,它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型,是WebService平台中的数据类型系统。
因此,任何语言编写的WebService,其使用的数据类型都必须转换成XSD类型。
这样,再用SOAP(SimpleObjectAccessProtocol)协议包装后,就可以在不同平台或软件的不同组织间任意传递使用。
SOAP(SimpleObjectAccessProtocol)简单对象访问协议
SOAP即简单对象访问协议,简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言)的协议,它被设计成在WEB上交换结构化的和固化的信息。
它包括四个部分:
SOAP信封(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及如何处理它们的框架;SOAP编码规则(encodingrules),用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示(RPCrepresentation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。
WSDL(WebServicesDescriptionLanguage)Web服务描述语言
WSDL是基于XML的,是用机器能读的(machine-readable)方式提供的一个正式的描述文档。
该文档有规定的XML词汇表,它按服务的请求和响应消息,在服务的请求者和服务的提供者之间提供一种契约(Contract),用于描述WebService及其函数、参数和返回值。
UUDI(UniversalDescription,DiscoveryandIntegration)统一描述发现集成
UDDI是一套基于Web的、分布式的,为WebService提供信息注册的标准规范,通过一组公用的SOAPAPI,使得服务代理(ServiceBroker)得以实现。
其作用是:
为服务提供者和服务消费者提供发布和发现服务的接口。
2.4WebService概述
WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。
WebService作为一种技术规范,是实现SOA的方式之一。
WebService结合了面向组件方法和web技术的优势,利用标准网络协议和XML数据格式进行通信,具有良好的适应性和灵活性,任何支持这些标准的系统都可以以网络上的其他webservice交互,任何用户都可以调用任何服务而无论他们处在何处,突破了传统分布式计算模型在通信运用范围内的限制。
WebServices的出现,为企业内部及企业之间提供了廉价而简便的通信支持。
同时,基于SOA体系结构的开发模式与以应用为中心的一体化应用程序相比具有高度开放性,可重用性等特点,因而这种开发模式一经提出就受到广泛推崇,SOA的强大和灵活性将迅速成为企业级应用系统的首选开发模式。
SOA与WebService的映射见图1-2
图22SOA与WebService映射
2.5需求分析
需求分析是软件工程中的一个关键过程。
在这个过程中我们需要确定用户需要。
需求分析阶段的任务是确定软件系统功能。
下面对本系统的用户需求进行详细分析。
2.5.1系统意义
手机短信竞猜平台SMSQuiz的推出,运用当前主流的面向服务的架构思想,我们将服务部署在Web运用服