当前位置:甜馍馍地理信息网 >> 地理信息系统GIS >> WebGIS >> 正文 >>  [阅读资讯:介绍两种基于JAVA的WebGIS服务器设计方案]

介绍两种基于JAVA的WebGIS服务器设计方案

[ 来源:互联网 | 时间:2007年10月20日 | 收藏本文 ] 【

1、基于java的WebGIS服务器设计方案一

JSF也是一种非常棒的技术,用它来做我们的WebGIS服务器也是非常理想的方案。其架构可以大致描述为这样的:JSF+GIS_Objects 在这里JSF充当了两个角色,一个是与GIS_Objects之间的交互,另外一个是浏览器端的展现。
一个JSF组件一般由四部分组成:Component、Renderer、Tag、listener
当浏览器向服务器端发出请求时,在服务器端的WebContainer会把JSP转换为一个servlet对象,在这个转换过程如果一组JSF标签, 会去找TLD文件,根据TLD文件以及JSF标签元素传进来的参数,会实例化一个tag对象,tag再根据faces-config.xml会生成Component对象和Renderer对象。

Component主要负责去调用GIS_Objects,让它生成一系列的图片Renderer绘制把Component生成出来的图片,拼接组合绘制起来。googlemap就是由一组图块拼接出来的地图。listener主要是监听浏览器端所发生的事件,以便Component根据客户的要求生成图片。

2、基于java的WebGIS服务器设计方案二

看着目前webgis日益流行,有时候我们也想自己搞一个,经过一段时间的摸索,大概搞清楚了怎么弄了 Ajax是今后webgis发展方向。我们的设计思路是这样的:我们采用ajax作为浏览器端交互技术,服务器端采用Servlet技术调用GIS Objects来生成客户端请求的图片。

大致上说是这样一个架构: Ajax+Servlet+GIS_Objects用户通过Ajax交互操作,把参数传递给服务器端的Servlet,Servlet再调用GIS_Objects生成客户想要的图片。不管该WebGIS 服务器有多么强大,最终发到浏览器端的都是一张图片而已。

Ajax技术使得浏览器端与服务器端交互的仅仅是数据而不是整个页面,这样可以大大降低网络流量。并且Ajax的XMLHttpRequest对象能很方便监测服务器端传回来的数据,对应传回来的数据通过XMLHttpRequest再配合Javascript代码有选择性地更换浏览器端的图片以及部分页面元素。

Servlet在我们这里是起到一个连接的作用,servlet接受到Ajax传过来的数据,并把这些数据做为GIS_Objects的参数,servlet先根据这些参数生成合适的GIS Objects,然后由这些GIS Objects生成合适的一组图片,然后把这组图片发给浏览器的XMLHttpRequest,XMLHttpRequest 把这组图片拼接起来。

GIS_Objects在这里说的是一组具有GIS功能的类,当然是支持Java的咯。其中Servlet怎么与GIS Objects、Ajax之间协调工作,里面很有文章可做的。比如群集服务(并行处理)、地理网格缓存等。

3、两种方案的评价

JSF+GIS_Objects在Requset/Response 过程中传递的是整个页面,而Ajax+Servlet+GIS_Objects在这个过程中传递的是数据。一个是以页面为中心,一个是以数据为中心。不言而喻,在网络流量上Ajax+Servlet+GIS_Objects占有绝对的优势。
 
在用户体验上Ajax+Servlet+GIS_Objects也具有极佳的用户体验。用Ajax技术能把B/S做成C/S那种效果。

JSF技术发展非常成熟,有很多现成的JSF组件可用。

JSF组件封装效果非常好,非常适合做产品,让二次开发商去开发他们自己的应用产品,而Ajax+Servlet+GIS_Objects相对来讲,组件的封装效果就没有那么好,二次开发商的日子就没有那么好过。二次开发商对webGIS服务器提供商的依赖也没有那么大,假如二次开发商买了GIS_Objects那么他们采用Ajax+servlet技术很容易开发自己的WebGIS服务器。

 

【推荐本文】 【打印本页】 【返回顶部
最新文章
推荐文章