基于web service和eclipse plugin的天气查询.docx
- 文档编号:23741958
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:42
- 大小:847KB
基于web service和eclipse plugin的天气查询.docx
《基于web service和eclipse plugin的天气查询.docx》由会员分享,可在线阅读,更多相关《基于web service和eclipse plugin的天气查询.docx(42页珍藏版)》请在冰豆网上搜索。
基于webservice和eclipseplugin的天气查询
基于webservice和eclipseplug-in的天气查询系统
院系
北方软件学院
专业
计算机科学与技术(软件工程)
班级
92330103
学号
2009023301080
姓名
刘鹏
指导教师
黄雷鸣
负责教师
黄雷鸣
沈阳航空航天大学
2011年5月
摘要
天气查询系统是典型的基于webservice和eclipseplug-in的查询系统。
目前,天气预报已经成为汽车导航系统一个不可或缺的模块,为用户的出行提供着重要的参考数据。
在实际项目中使用MoCCA的插件来模拟客户端发送异步的天气查询请求并将导航机返回的计算结果合理的显示在插件客户端界面上,使功能调试更加准确迅速直观,从而保障了开发质量,本系统是使用Eclipse来模拟MoCCA,用webservice来模拟导航机的天气模块的接口,真实的还原了在实际项目中的需求分析和开发过程。
其开发主要包括客户端界面开发,事件监听,事件响应,调用webservice提供的API获取天气数据和插件的制作。
本论文分析了天气查询在汽车导航系统中所应用的几个环节,并针对每个环节做出了详细的阐述和探讨。
分别从界面设计,事件监听与响应,调用webserviceAPI获取天气数据,数据处理,插件制作等几个部分详细地讲述了系统开发的具体步骤和整个过程,介绍了系统开发用到的SWT、webservice技术、eclipseplug-in技术,eclipse编程工具和Java编程语言并对模块的功能进行了具体分析和详细设计。
本系统主要功能包括了通过制作的eclipse插件,显示出利用SWT制作的界面,进行国内天气查询时,通过选择的省份和城市,正确的显示图片和文字,进行国外天气查询时,通过选择的国家和城市,正确的显示图片和文字。
关键词:
webservice;plug-in;API;天气查询
Abstract
WeatherForecastSystemisatypicalquerysystemwhichbasedonwebserviceandeclipseplug-in.Currently,theWeatherForecasthasbecomeanindispensablemoduleofvehiclenavigationsystem,itprovidesusersanimportanttravelreference.InpracticalprojectsweuseMoCCAtosimulatethattheclientsendsrequestofasynchronousqueryandshowstheresultwhichthenavigationreturnsontheplug-inclient,sothatitmakedebugsinfeaturesmoreaccurate,rapidandvisual,anditprotectsthequalityofdevelopment,TheWeatherForecastSystemisthatusingEclipsetosimulateMoCCA,usingwebservicetosimulatetheweathermoduleinterfaceofthenavigation,itreallyrestorestherequirementanalysisandtheprocessofdevelopmentofthepracticalproject.Thedevelopmentofthesystemincludethatthedevelopmentofclientinterface,eventlistening,eventresponse,andtheproductionofplug-inwhichcallsthewebserviceAPItogetweatherdata.ThethesisanalyzestheseveralsessionsofWeatherForecastinthenavigationsystemanddiscusseseachsessionindetails.Ittellsthespecificstepsofsystemdevelopmentandthewholeprocessfrominterfacedesign,eventlistening,eventresponse,howtocallthewebserviceAPItogetweatherdata,dataprocessingandproductionofplug-inandsoon.ItintroducestheSWT,webservicetechnology,eclipseplug-intechnologywhatituses,eclipseprogrammingtoolsandJavaprogramminglanguageanditanalyzesanddesignsthefunctionofthemodules.Thefunctionsofthesysteminclude:
usingeclipseplug-intoshowtheinterfacewhichismadebySWT,whenquerythenationalweather,itcanshowcorrectpicturesandtextsbyselectingtheprovinceandcity,whenquerytheforeignweather,itcanshowcorrectpicturesandtextsbyselectingthecountryandcity.
Keywords:
webservice;plug-in;API;weathersearch
目录
1引言1
1.1本课题的研究意义及背景1
1.2本论文的目的及设计要求2
1.2.1本论文的目的2
1.2.2设计要求2
2研究现状及设计目标3
2.1天气查询系统的优点3
2.2现行研究存在的问题及解决办法3
2.2.1现行研究存在的问题3
2.2.2解决办法4
2.3本课题要达到的设计目标5
3关键问题及分析6
3.1研究设计中的关键问题6
3.1.1eclipseplug-in6
3.1.2SWT/JFace6
3.1.3WebService6
3.2采用的关键技术及理论7
3.2.1eclipseplug-in技术7
3.2.2SWT/JFace技术7
3.2.3webservice技术7
4需求分析9
4.1功能需求9
4.2系统流程分析9
4.3可行性分析10
4.3.1运行可行性10
4.3.2技术可行性11
4.3.3经济可行性11
4.4系统的开发环境11
4.4.1硬件环境11
4.4.2软件环境11
5系统设计12
5.1系统体系结构12
5.2系统功能划分12
5.2.1数据结构设计12
5.2.2采用SWT实现UI13
5.2.3获取webserviceAPI13
5.2.4自动获取IP地址来源13
5.2.5获取省份信息14
5.2.6获取国家信息14
5.2.7根据选择的省份/国家获取其对应的城市列表14
5.2.8根据IP地址来源选择省份和城市14
5.2.9查询指定城市的天气预报信息14
5.2.10根据查询结果正确显示图片和文字信息15
5.2.11将实现好的天气预报查询系统制作成一个eclipse插件16
6系统实现及测试17
6.1系统实现17
6.1.1UI界面的实现17
6.1.2国家/省份和城市信息显示的实现(以国内天气查询为例)20
6.1.3根据IP地址来源默认选取省份和城市22
6.1.4国内/国外天气查询的实现24
6.1.5eclipse插件的实现26
6.2系统测试28
6.2.1测试实例的研究与选择28
6.2.2测试环境与测试条件28
6.2.3实例测试30
6.2.4测试过程中的其他问题31
7结论与展望35
参考文献36
致谢37
引言
汽车电子己被公认为是未来几年新的产业增长点,甚至是带动其他相关产业发展的一个亮点。
而作为汽车电子中重要一个分支的“汽车导航”也随着汽车电子的火热而呈喷薄之势。
由于汽车导航系统的广泛应用,目前,天气预报已经成为汽车导航系统一个不可或缺的模块。
本章主要介绍了本课题的研究意义及背景,以及本论文的目的和设计要求。
本课题的研究意义及背景
天气预报指导人们生产生活的意义越来越显得重要。
穿衣、出行、办事等,人们已经不能局限于一天一次简短的天气预报,他们需要的是随时随地获得及时、全面、详细的气象资讯。
在时间上,人们希望得到更新更快更及时地信息服务,甚至是实时的气象服务,例如一些灾害性天气的预警和跟踪。
当天气成为人们生产生活的一个重要影响因素时,能够随时获取天气资讯的指导变得越来越有价值了。
不同人群对于天气资讯的关注点也不同。
以往那种大一统的天气预报,人们必须自己从中拣选出对其来说有价值的信息,有时甚至还需具备一定的气象数据的分析能力。
而现在越来越细的分类,使人们可以一目了然的获得气象指导,例如农业天气预报为农业生产提供指导,外出旅游的人会关注旅游景点天气预报,还有各种气象指数预报直接为人们生活的方方面面提供参考等。
随着社会生活质量的不断提高,中国汽车工业蓬勃发展,汽车导航系统得到了广泛的应用,并且天气预报已经成为汽车导航系统一个不可或缺的模块,在实际项目中使用MoCCA的插件来模拟客户端发送异步的天气查询请求并将导航机返回的计算结果合理的显示在插件客户端界面上,使功能调试更加准确迅速直观,从而保障了开发质量,本系统是使用Eclipse来模拟MoCCA,用webservice来模拟导航机的天气模块的接口,真实的还原了在实际项目中的需求分析和开发过程。
汽车导航系统中的天气预报能够为人们提供一段时期内气候变化的各种数据,方便驾车用户及时的掌握天气情况,为人们制定出行计划提供参考。
本论文的目的及设计要求
本论文的目的
本论文的目的是分析天气查询系统在汽车导航系统中所应用的几个重要环节,并针对每个环节做出详细的阐述和探讨。
分别从界面设计、事件监听与响应、调用webserviceAPI获取天气数据、数据处理、插件制作等几个部分对系统开发的具体步骤和整个过程进行详细地阐述,介绍系统开发用到的SWT、webservice技术、eclipseplug-in技术,eclipse编程工具和Java编程语言,并对各模块的分析过程和详细设计过程等进行详细论述。
设计要求
基本要求:
(1)使用eclipse插件技术,将系统最终实现成插件;
(2)使用SWT或JFace实现UI,要求布局合理,方便用户使用;
(3)通过webservice技术能够获取国内省份信息;
(4)根据选择的省份,系统能够自动显示出与其对应的城市信息;
(5)能够查询到指定城市的天气预报信息;
(6)根据查询结果正确显示相关文字以及图片信息;
(7)代码结构合理,遵循编码规范并且要有较高的容错性。
较高要求:
(1)系统启动时,能够自动获取IP地址来源;
(2)能够根据IP地址来源默认选取省份和城市。
研究现状及设计目标
本章主要对天气查询系统的优点进行介绍,并对现行研究存在的问题及解决办法进行了详细的分析和说明。
天气查询系统的总体设计目标是制作出采用webservice技术通过连接web服务提供商的服务器,来获取实时和未来的天气情况的插件,提醒人们注意天气变化,给人们制定出行计划提供参考。
天气查询系统的优点
天气查询系统通过网络连接到webservice服务的提供商的服务器获取天气信息,提供用户实时天气,未来5天的天气预报,以及当日生活指数等信息的查询,方便、快捷,实时,准确。
在汽车导航系统中应用天气查询系统,可使驾车用户及时,方便,快捷的掌握实时天气情况,为用户制定出行计划提供详细的参考。
现行研究存在的问题及解决办法
现行研究存在的问题
1.SWT中系统资源的管理
SWT是用Java开发的,Java语言的一大优势就是JVM的“垃圾回收机制”,程序员通常不用理会变量的释放,内存的回收等问题。
但是对SWT而言,SWT并没采用JVM的垃圾回收机制去处理操作系统的资源回收问题,一个关键的因素是因为JVM的垃圾回收机制是不可控的,也就是说程序员不能知道,也不可能做到在某一时刻让JVM回收资源!
这对系统资源的处理是致命的,试想在一个循环语句中去查看数万张图片,常规的处理方式是每次调入一张,查看,然后就立即释放该图片资源,而后在循环调入下一张图片,这对操作系统而言,任何时刻程序占用的仅仅是一张图片的资源。
但如果这个过程完全交给JVM去处理,也许会是在循环语句结束后,JVM才会去释放图片资源,其结果可能是程序还没有运行结束,操作系统已经宕掉。
2.SWT线程问题
在任何操作平台的GUI系统中,对构件或一些图形API的访问操作都要被严格同步并串行化。
在一个图形界面中的按键构件可被设成可用状态(enable)或禁用状态(disable),正常的处理方式是,用户对按键状态设置操作都要被放入到GUI系统的事件处理队列中,这意味着访问操作被串行化;然后依次处理,这意味着访问操作被同步。
当按键可用状态的设置函数还没有执行结束的时候,程序就希望再设置该按键为禁用状态,势必会引起冲突。
实际上,这种操作在任何GUI系统都会触发异常。
Java语言本身就提供了多线程机制,这种机制对GUI编程来说是不利的,它不能保证图形构件操作的同步与串行化。
3.程序导出后无法运行或无法导出
普通的java项目配置第三方jar包,都是直接配置Build-Path的(实际上是修改了项目下的.class-path文件),但是在插件的项目中这样是不能运行的。
解决办法
1.SWT中系统资源的管理
对于SWT,只需了解两条简单的“黄金”法则就可以放心的使用系统资源!
第一条是“谁占用,谁释放”,第二条是“父构件被销毁,子构件也同时被销毁”。
第一条原则是一个无任何例外的原则,只要程序调用了系统资源类的构造函数,程序就应该关心在某一时刻要释放这个系统资源。
对于第二个原则,是指如果程序调用某一构件的dispose()方法,那么所有这个构件的子构件也会被自动调用dispose()方法而销毁。
通常这里指的子构件与父构件的关系是在调用构件的构造函数时形成的。
2.SWT线程问题
SWT采用了一种简单而直接的方式去适应本地GUI系统对线程的要求:
在SWT中,通常存在一个被称为“用户线程”的唯一线程,只有在这个线程中才能调用对构件或某些图形API的访问操作。
如果在非用户线程中程序直接调用这些访问操作,那么SWTExcepiton异常会被抛出。
但是SWT也在*.widget.Display类中提供了两个方法可以间接的在非用户线程的进行图形构件的访问操作,这是通过的syncExec(Runnable)和asyncExec(Runnable)这两个方法去实现的。
3.程序导出后无法运行或无法导出
在插件项目中,不仅需要修改项目下的.class-path文件,而且还需要修改MANIFEST.MF文件。
本课题要达到的设计目标
本系统最终达到的设计目标是一个eclipse插件,把此插件放到eclipse安装目录下的plugins文件夹下,运行eclipse,当eclipse启动后,会在eclipse的菜单上显示出此插件菜单,在工具栏上会显示此插件的图标,点击插件菜单或图标,启动天气查询系统,用户通过在界面上的操作,进行国内外的天气预报查询。
关键问题及分析
本章详细论述了在基于webservice和eclipseplug-in的天气查询系统研究设计中的关键问题,同时对在开发过程中所采用的关键技术及理论进行了介绍。
研究设计中的关键问题
在研究设计中,还存在着诸多有待解决的问题与困难,会用到许多以前未学过的难点去学习与攻破。
eclipseplug-in
利用eclipse创建Plug-inProject,选择HelloWorld模版进行创建,通过更改配置文件,添加依赖包,导出等一系列流程操作,最终将天气查询系统制作程一个插件。
SWT/JFace
本系统主要采用EclipseSWT进行开发,利用SWT中的Label类,Combo类,Display类,Shell类,Group类,Image类,Button类等进行客户端界面的开发,利用这些类中的方法进行界面样式的设计和布局,使用Combo类和Button类中的addSelectionListener()方法添加监听。
WebService
创建webserviceclient工程,在弹出的对话框中输入webservice服务地址serviceAPI,输入serviceAPI。
采用的关键技术及理论
eclipseplug-in技术
eclipse插件技术,由于本系统最终要做成插件,所以采用此技术,可以方便的制作出eclipse插件。
SWT/JFace技术
SWT(StandardWidgetToolkit)StandardWidgetToolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。
SWT本身仅仅是Eclipse组织为了开发EclipseIDE环境所编写的一组底层图形界面API。
或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。
目前SWT已经十分稳定。
这里指的稳定应该包含两层意思:
一是指性能上的稳定,其中的关键是源于SWT的设计理念。
SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。
可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。
另一个稳定是指SWTAPI包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(EclipseIDE每天都会有一个Nightly版本的发布),而导致自己的程序代码变化过大。
从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了。
JFace与SWT的关系就好比Microsoft的MFC与SDK的关系。
webservice技术
webservice是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。
它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。
WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。
各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果。
WebService可以执行从简单的请求到复杂商务处理的任何功能。
一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。
在构建和使用WebService时,主要用到以下几个关键的技术和规则:
1.XML
可扩展标记语言(ExtensibleMarkupLanguage)与HTML一样,都是标准通用标记语言(StandardGeneralizedMarkupLanguage)。
XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。
扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
2.SOAP
简单对象访问协议(SOAP)是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。
它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
3.WSDL
WSDL是WebServicesDescriptionLanguage的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。
为用户提供详细的接口说明书。
4.UDDI(UniversalDescription,DiscoveryandIntegration)
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。
需求分析
本章主要对天气查询系统的功能需求,业务流程,运行可行性,技术可行性,经济可行性进行了详细的分析,并对系统的开发环境,包括硬件环境和软件环境进行了详细的介绍。
功能需求
通过对题目要求的分析,以及对整个系统的理解,分别从界面设计,IP地址查询,事件监听与响应,调用webserviceAPI获取天气数据,数据处理,插件制作等方法全面的分析,本系统将实现如下功能:
(1)采用SWT实现UI界面;
(2)使用webservice技术获取省份列表;
(3)根据选择的国内省份能够正确的获取城市列表;
(4)自动获取IP地址来源;
(5)根据IP地址来源默认选取省份和城市;
(6)使用webservice技术获取国家列表;
(7)根据选择的国家能够正确的获取城市列表;
(8)能够查询到指定城市的天气预报信息;
(9)根据查询结果能够正确的显示图片和文字信息;
(10)采用eclipse插件技术实现系统的启动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于web service和eclipse plugin的天气查询 基于 web service eclipse plugin 天气 查询