左脑原创geoserver学习系列文章 (第二部分代码的结构)。
按照上一贴,我们得到了eclipse中的工程,打开一看,老天,很多东西,应该理理:
其中最主要 的是这六个工程,“platform”,“main”,“ows”,“wfs”,“wcs”,“wms”
platform:是一个最基础的平台,platform包的org.geoserver.platform.Service类代表一个具体的服务,例如WMS,它用ID和VERSION来唯一标定,每一个服务都会提供若干操作(Operation)。
ows:(OGC-Web服务)符合OGC的WEB服务,ows包的org.geoserver.ows.Dispatcher类处理所有OWS的请求。
main:main包的org.geoserver.catalog.Catalog接口包含资源访问的方法,这些资源有“Layer”,“Layer Group”,“Map”,“Namesapce”,“Resource”,“Store”,“Style”和“Workspace”,main包的org.geoserver.config.GeoServer接口包含访问服务器公共配置信息的方法,main包里面还有一些描述资源的接口,例如org.geoserver.catalog.LayerInfo代表“Layer”资源。
wfs:Web 要素服务(WFS),支持对地理要素的插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回GML(Geography Markup Language、地理标识语言)数据。 WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。
wcs:提供栅格图像服务
wms:提供地图服务
下面附上相关概念:
介绍一下OGC、WMS、WFS、WCS等几个概念
1.OGC
Open Geospatial Consortium——开放地理信息联盟,是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展目前在空间数据互操作领域,基于公共接口访问模式的互操作方法是一种基本的操作方法。通过国际标准化组织(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,GIS软件商开发遵循这一接口规范的空间数据的读写函数,可以实现异构空间数据库的互操作。基于http(Web)XML的空间数据互操作是一个很热门的研究方向,主要涉及Web Service的相关技术。OGC和ISO/TC211共同推出了基于Web服务(XML)的空间数据互操作实现规范Web
Map Service,Web Feature Service,Web Coverage Service以及用于空间数据传输与转换的地理信息标记语言GML。
2.Web地图服务(WMS)
利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作:GetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述; GetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息
3.Web要素服务(WFS)
Web地图服务返回的是图层级的地图影像,Web要素服务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGC Web要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,这个远东定义了五个操作:GetCapabilites返回Web要素服务性能描述文档(用XML描述);DescribeFeatureType返回描述可以提供服务的任何要素结构的XML文档;GetFeature为一个获取要素实例的请求提供服务;Transaction为事务请求提供服务;LockFeature处理在一个事务期间对一个或多个要素类型实例上锁的请求。
4.Web覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖(COverage)”在网上相互交换。网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服务和数据集的XML文档。网络覆盖服务中的GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。
以上三个规范既可以做为Web服务的空间数据服务规范,又可以做为空间数据的互操作实现远东。只要某一个GIS软件支持这个接口,部署在本地服务器上,其他GIS软件就可以通过这个接口得到所需要的数据。从技术实现的角度,可以将Web服务理解为一个应用程序,它向外界暴露出一个能通过Web进行调用的接口,允许被任何平台、任何系统,用任何语言编写的程序调用。这个应用程序可以用现有的各种编程语言实现。Web服务最大的特点是可以实现跨平台、跨语言、跨硬件的互操作,正是Web服务中的SOAP、WSDL和UDDI保证了Web服务的跨平台互操作的特性,所以,如何使用SOAP、WSDL和UDDI来部署、描述、传输和注册一个Web服务是实现Web服务的关键。由于SOAP、WSDL和UDDI是一套标准,不同的厂商可以有实现这些标准的不同产品,例如SUN、APACHE、IBM、Borland等公司推出的基于JAVA平台的Web服务工具包,以及微软提出的.NET平台等,这些工具为实现Web服务的开发、部署、描述提供了方便的工具,极大的降低了开发Web服务的复杂度。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、web-app和web-core 是整个geoserver 的两个个可视化界面工程,主要在web-core里,用来管理数据及其他一些配置。
2、geoserver2.1以后的启动位置发生了变化:
主要的GUI界面部分,GEOSERVER运用了 Wicket实现了界面元素与后台业务分离。