GeoServer学习手记(三):GeoServer架构浅谈
目录
粟卫民http://www.gisdev.cn/ http://blog.csdn.net/suen/ 日期:2009-10-28
保留所有版权。如需转载,请联系作者,并在醒目位置注明出处
前面概述了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 |
|
Contains all interface servlets, one for each WFS response. |
|
Control of the GeoServer application (Struts Actions). |
|
Contains Actions for configuring the GeoServer Data Model. |
|
Contains Actions for configuring the GeoServer Web Feature Server. |
|
Contains Actions for configuring the GeoServer Web Map Server. |
|
Configuration Model being edited. |
|
Validation Model being edited. |
|
Java Beans used to represent input screens (STRUTS Form Beans). |
|
Contains Form Beans describing the GeoServer Data Model. |
|
Contains Web Feature Server Form Beans. |
|
Contains Web Map Server Form Beans. |
|
Maintains the GeoServer applicaiton state (This is the Application). |
|
Maintains the Data Transfer Objects used to set up GeoServer. |
|
Offers XML based persistence to the GeoServer application. |
|
Provides Servlets Framework used by GeoServer. |
|
Manages all of the top-level responses. |
|
Handles all of the request processing for GeoServer. |
|
Client request processing into GeoServer Request objects. |
|
Handles all of the WFS request processing for GeoServer. |
|
WFS Client request processing into Request objects for the GeoServer framework. |
|
Manages all of the top-level WFS responses. |
|
Provides Servlets for the GeoServer Web Feature Server implementation. |
|
Handles all of the request processing for the WMS interfaces. |
|
Manages all of the top-level WMS responses. |
|
Manages all of the WMS Map responses. |
|
Provides Servlets for the GeoServer Web Map Server implementation. |
|
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框架,系统具有良好的可扩展性,可增加新的服务。(Google拼音又可以了,还是不太稳定呀)
转载自:https://blog.csdn.net/suen/article/details/4745032