简易家具:GeoServer学习手记(三):GeoServer架构浅谈

来源:百度文库 编辑:中财网 时间:2024/05/11 01:22:07
前面概述了GeoServer的功能(GeoServer学习手记(一):GeoServer概述,http://blog.csdn.net/suen/archive/2009/10/25/4726204.aspx),和代码下载及在Eclipse中加载的方法(GeoServer学习手记(二):代码下载及在Eclipse中加载,http://blog.csdn.net/suen/archive/2009/10/25/4726733.aspx),接下来得开始正式的分析了。
分析的开始一般都会总体上来说一说,但是因为这是学习手记,我是边学习边写,对于架构还不能很好地把握,因此题目也只能说<浅谈>,只简单地转载其他的技术文章,同时说说我的理解.以后等我理解透彻再好好说说.这里也请各位读者谅解.(不知怎么的,Google的拼音调不到中文符号,只能用英文符号,晕)
1 GeoServer工程及设计
(此部分内容转载,转载自http://geoserver.sourceforge.net/documentation/javadocs/index.html)
The GeoServer Project - the open Internet gateway for geographic data
Packages
org.vfny.geoserver
Contains all interface servlets, one for each WFS response.
org.vfny.geoserver.action
Control of the GeoServer application (Struts Actions).
org.vfny.geoserver.action.data
Contains Actions for configuring the GeoServer Data Model.
org.vfny.geoserver.action.global
org.vfny.geoserver.action.validation
org.vfny.geoserver.action.wfs
Contains Actions for configuring the GeoServer Web Feature Server.
org.vfny.geoserver.action.wms
Contains Actions for configuring the GeoServer Web Map Server.
org.vfny.geoserver.config
Configuration Model being edited.
org.vfny.geoserver.config.validation
Validation Model being edited.
org.vfny.geoserver.form
Java Beans used to represent input screens (STRUTS Form Beans).
org.vfny.geoserver.form.data
Contains Form Beans describing the GeoServer Data Model.
org.vfny.geoserver.form.global
org.vfny.geoserver.form.validation
org.vfny.geoserver.form.wfs
Contains Web Feature Server Form Beans.
org.vfny.geoserver.form.wms
Contains Web Map Server Form Beans.
org.vfny.geoserver.global
Maintains the GeoServer applicaiton state (This is the Application).
org.vfny.geoserver.global.dto
Maintains the Data Transfer Objects used to set up GeoServer.
org.vfny.geoserver.global.xml
Offers XML based persistence to the GeoServer application.
org.vfny.geoserver.servlets
Provides Servlets Framework used by GeoServer.
org.vfny.geoserver.util
Manages all of the top-level responses.
org.vfny.geoserver.util.requests
Handles all of the request processing for GeoServer.
org.vfny.geoserver.util.requests.readers
Client request processing into GeoServer Request objects.
org.vfny.geoserver.wfs
org.vfny.geoserver.wfs.requests
Handles all of the WFS request processing for GeoServer.
org.vfny.geoserver.wfs.requests.readers
WFS Client request processing into Request objects for the GeoServer framework.
org.vfny.geoserver.wfs.responses
Manages all of the top-level WFS responses.
org.vfny.geoserver.wfs.servlets
Provides Servlets for the GeoServer Web Feature Server implementation.
org.vfny.geoserver.wms
org.vfny.geoserver.wms.requests
Handles all of the request processing for the WMS interfaces.
org.vfny.geoserver.wms.responses
Manages all of the top-level WMS responses.
org.vfny.geoserver.wms.responses.featureInfo
org.vfny.geoserver.wms.responses.helpers
org.vfny.geoserver.wms.responses.map
Manages all of the WMS Map responses.
org.vfny.geoserver.wms.responses.map.gif
org.vfny.geoserver.wms.responses.map.kml
org.vfny.geoserver.wms.responses.map.png
org.vfny.geoserver.wms.responses.map.svg
org.vfny.geoserver.wms.servlets
Provides Servlets for the GeoServer Web Map Server implementation.
org.vfny.geoserver.zserver
Provides a ZServer Catalog Service for GeoServer.
The GeoServer Project - the open Internet gateway for geographic data
The GeoServer Project is a Java (J2EE) implementation of:
The OpenGIS Consortium's Web Feature Server specification. With full transactional support! The OpenGIS Consortium's Web Map Server Specification. ZServer
GeoServer is free software, available under the GPL 2.0 license.
Users who would like to access and modify their geographic data over the Internet using flexible, industry-approved standards should take a look at GeoServer.
GeoServer Design
GeoServer is constructed using a Layered Design as outlined in the diagram below. There are two Layer systems in use - the classic J2EE Servlet/Handler/Request/Response and the STRUTS Framework.

GeoServer Layer Diagram
Use of GeoTools2
As seen in the above Layer Diagram GeoServer makes use of the wonderful GeoTools2 library to provide data access. GeoServer maintains its own geotools.jar available in the lib directory. This jar is often more recent then the latest GeoTools public beta.
Many GeoServer classes implement GeoTools2 interfaces inorder to facilitate reuse and intergration with subsystems such as validation.
2 GeoServer架构
(此部分内容转载,转载自http://geoserver.org/display/GEOSDOC/1+GeoServer+Architecture)
The following diagram provides an Overview of the GeoServer architecture. The GeoServer application is comprised of a series of modules. GeoServer modules can be combined with our maven 2 build sytem to form a deployable war.

At runtime a module can make use of Spring to obtain classes providing services from other modules. This ability to "plug-in" additional functionality forms the basis for GeoServers extension mechanism. This mechanism is used to provide additional OGC web services (by the WFS and WMS modules) and to implement support for different WMS image encodings.
The core geoserver modules serve as a useful example of how new services can be added. You can review the web module for an example of packaging modules into a deployable war.
备注:
GeoServer采用分层设计,在GeoTools的基础上,实现了应用层和Web容器层的逻辑,主要工程包括Data,Main,Validation,Web,WMS,WFS等。由于基于Spring框架,系统具有良好的可扩展性,可增加新的服务