WebGIS服务器的设计思路


1、基于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之间协调工作,里面很有文章可做的。比如群集服务(并行处理)、地理网格缓存等。
2、基于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根据客户的要求生成图片。
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服务器。
 

你可能感兴趣的:(WebGIS服务器的设计思路)