开篇:润墨网以专业的文秘视角,为您筛选了一篇基于SOA的公众信息服务系统设计与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要: 伴随着科技的发展和道路设施的建设,交通变得越来越便利,出行也越来越频繁,出行需要考虑到很多因素,比如天气,飞机航班信息;在出行的同时,还要关注时事、外汇、股票等信息,这些信息,在互联网上可以找到,但是由于互联网信息的不对称性,人们还无法在一个地方统一的查找这些信息,提出以SOA框架为基础的解决方案,将各种公众信息通过Web Service的方式收集起来,结构化后统一展现,让人们可以用快捷的方式获取自己所需的信息,提供的公众信息服务共有六个:天气信息服务,飞机航班信息服务,外汇信息服务,股票信息服务,两地距离查询服务,时事新闻服务,将公众信息服务和Google Map结合在一起,通过在地图上操作,便可获得相应的公众信息,既摆脱传统的信息查询方式,又丰富地图内容,同时使人机交互更加的直观、方便、快捷。
关键词: 公众信息;SOA框架;Google Map;信息收集;结构化
中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2011)1210089-02
1 背景
随着生活水平的提高,日益便利的交通状况,使得人们出行的频率开始变得频繁。出行需要考虑到很多因素,比如天气,飞机航班信息,或者在出行的同时,还要关注时事、外汇、股票等信息。本文涉及的信息有:天气状况、飞机航班、两地距离、外汇情况、时事新闻。这些信息,本文统称为公众信息。通过互联网,这些公众信息基本都可以查到。可这些信息是松散性的,它们几乎是分散在不同的地方,且便利性差、针对性不强。
在上述情况下,为了获取有价值的信息,人们可能要花费相当的人力。因此,如何有效的挖掘公众信息并统一展现成为一个非常有实际意义的课题。
2 相关技术
为了采集并聚合信息,就需要到每种信息对应的信息源中获取。本文采用的方案为实现了SOA思想的Web Service方式。SOA(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来[1],采用面向服务的商业建模技术和WEB服务技术,实现系统之间的松耦合,实现系统之间的整合与协同。Web Service是SOA当前最有效的实现方式。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性[2]。因此,Web Service具有以下的几个优点:语言平台无关性、松耦合特性、高效性、强穿透性。
在这个方案里,通过Web Service的方式调用已的服务,从而获取公众信息,接着结构化信息,之后将结构化的信息缓存起来,以便下一次查询时不必再一次调用Web Service,以此增加查询速度,最后一步是展示信息。
3 系统架构设计和实现
3.1 系统架构设计
从功能上划分,公众信息系统将被分成两个部分。第一个部分,由六种基本服务组成:
天气信息服务、飞机航班信息服务、两地距离服务、外汇信息服务、股票信息服务、时事新闻服务。第二个部分:将天气信息服务、两地距离服务、时事新闻服务和Google Map API集合的综合服务,动态的在地图上获取信息,使信息服务更加直观方便。
本文的主要工作是根据系统设计,设计了四个系统模块并逐一实现。这四个模块是:服务调用模块,信息结构化模块,信息缓存模块,信息展现模块。下面分别做简单介绍。
服务调用模块:服务调用模块实现了从指定的Web Service提供者调用暴露的API接口,通过调用这些接口,获取所需要的信息。这个模块里,服务调用来源分为两个部分:1)从公网上别的开发提供的Web Service地址进行调用,数据来源于互联网;2)调用自己实现的Web Service,数据来源于本地数据库。
信息结构化模块:信息化结构模块调用服务调用模块,解析数据,并进行结构化。服务调用模块返回的信息分为两类。一类是JEE平台下开发的Web Service数据格式,此类数据可以直接读取;另一类是.NET平台下开发的Web Service数据格式,需要序列化返回信息,得到xml格式的信息,并解析此信息,来得到需要数据。得到需要的数据后,便可以结构化,以供上一层模块调用。
信息缓存模块:信息缓存模块负责将查询的信息缓存起来,下次调用同样的查询的时候将绕过服务调用模块和信息结构化模块,直接在内存里缓存的信息找,这样可以大大加快查询的速度。
信息展现模块:信息展现模块分为两个部分:基于桌面应用程序的信息展示和网页结合Google地图的展示。
公众信息系统的总体设计方案图如图1所示。
图1 系统方案图
公众信息系统按照需求分成两块功能,第一块功能由桌面应用程序体现,展示六个信息服务的使用,第二个部分是结合了Google Map API和信息服务的综合服务。
3.2 系统实现
本系统的主要功能是公众信息的收集展示,用到数据库的只有时事新闻服务。使用MySQL作为系统数据库。
调用返回的公众信息格式,为String数组或者.NET平台下的Dateset类型,需要对取得的信息结构化,将信息包装在一个data object类里,形成良好的数据格式,供上一层调用,共有三个不规则的数据进行了重新结构化。结构化后的数据,全部采用String类型进行存贮,原因是便于以后把信息服务到网上供其他开发者二次调用,比较方便进行传输,从而省去序列化和反序列化。
服务调用模块的作用是收集公众信息,按照调用来源的不同,此模块分为三个部分,第一个部分是针对他人在互联网上提供的Web Service,在本系统里共有四个,分别是天气信息服务,飞机航班信息服务,外汇信息服务,股票信息服务。这部分服务的调用,通过使用Axis2项目的WSDL2JAVA[3]工具,生成服务调用代码。第二部分是针对自己实现的服务,在本系统里是时事新闻信息服务,新闻信息取自数据库,使用Hibernate技术来操作数据库,并使用Myeclipse反向工程生成SessionFactory,DAO类和POJO[4](Plain Old Java Object)类。第三个部分是针对来自Google的信息,两地距离的查询过程,需要先通过将地点字符串以url Get的方式访问Google地图网址,得到以经纬度表示的地理信息。
信息展现模块分成两个部分,一个部分是使用基于Java Swing实现的桌面应用程序,另一部分是使用Jsp/servelt+Google Map API实现的综合服务。
桌面应用程序展现部分:实现采用Java Swing组件。在模块功能的实现方式上,是借助了一款Java IDE工具netbeans实现界面的搭建,然后在控件中加入事件监听,对于不同的事件进行不同的操作,调用前面提到的几个系统模块,返回信息并展示到界面中。
综合服务展现部分:这个部分是本系统中比较创新的一个地方,它使得信息查询变得更加方便,在视觉上也更加直观。这个部分糅合了tomcat,servlet,信息服务,MySQL,Google Map API,JavaScript等技术。
图2是结果示例,包含了航班查询、股票查询等。
图2 结果演示
4 总结和展望
本文以现今公众信息分散,查询不方便,针对性差的状况为出发点,提出了以soa框架为基础的Web Service方式,将多种公众信息集合到一起,结构化并统一显示到桌面应用程序和Google地图中呈现的解决方案。
尽管本次开发已经基本上完成了所有系统设计中提出的功能,还是有些值得完善的地方,比如说:服务的数量不够多,现在的服务数量仅为6个。从商业的角度出发,可以针对不同的用户,提供不同的服务,实现服务定制。另外,Google Map API又推出了一些新的类,比如街景视图类[4],通过这些新类,可以跟信息服务结合的更好,表现更直观。
参考文献:
[1]张晓鹏、胡宏涛,浅谈如何构建SOA,福建电脑,2008(1):84-85.
[2]You Zuoqin,A Weather Query System Based on SOAP,现代计算机,2008
(5):144-147.
[3]Goole Map API 技术文档,街景视图接口version 2.#GStreetview
Location.
[4]cdsn技术博客,Hibernater原理图例,blog.省略/zhoudm
2005/archive/2008/04/04/2252353.aspx.