2.2. Web 制图的系统结构

创建、服务和使用web地图可能需要几个不同的物理机器。这些通常在图中描述为独立的层次或架构层。在本课程中,您可能只使用一台机器来扮演所有这些角色;但是,了解层是如何组合在一起的很重要。

../../_images/architecture.png

图2.1 Web 制图的系统架构。

例如,您可能有:

  • 管理员和内部客户端应用程序使用的桌面工作站。这些机器还将用于准备数据、编写地图,有时还用于管理其他机器。

在本课程中,您将使用QGIS和一些命令行库(如GDAL)来完成这些任务。GeoServer还有一个基于web浏览器的管理员仪表板,您可以从此计算机上使用它。

在某些情况下,您的web地图可能只为组织内的人员设计,可能永远看不到开放的web。在这种情况下,客户端应用程序也可能驻留在这些桌面工作站计算机上。

  • 保存所有地理信息系统数据的数据库和/或文件服务器。此计算机可能配备了冗余存储机制和常规备份脚本,以防止数据丢失。

在本课程中,您将使用shapefile文件夹进行一些练习。如果你决定使用像PostgreSQL或MariaDB这样的数据库,它也会进入这一层。

  • 地理空间web服务服务器,具有绘制地图、响应要素查询和执行地理信息系统分析操作的专用软件和处理能力。

在本课程中,您将使用GeoServer托管您的web服务。

  • 作为组织网络的web入口点的web服务器。这也称为代理服务器。它受到防火墙的保护,防火墙可以屏蔽进入内部网络的恶意流量。它也是一个地方,您可以在这里为您的web地图放置web应用程序代码(如HTML和JavaScript文件)。

在本课程中,您将只在本地计算机上使用GeoServer;因此,您不会安装单独的web服务器软件。GeoServer附带了一个名为Jetty的嵌入式“servlet”,它为您的web服务提供了一个简单的端点,您可以在本地访问该端点进行测试。在一个更正式的设置中,您希望向世界展示您的GeoServer web服务,您将拥有一个web服务器(如Apache),它将请求转发给GeoServer。

在本课程中,您将使用PASS Explorer应用程序(如果您的应用程序不使用GeoServer),将您的web应用程序放在Jetty home文件夹(如果应用程序使用GeoServer)或Penn State个人web空间中。宾夕法尼亚州信息技术人员已经将您的通行证空间配置为您文件的安全web入口点。

  • 许多使用web地图的客户端应用程序。这些可以是在桌面工作站上运行的应用程序,也可以是移动应用程序。客户端可能基于您的网络,也可能允许它们来自您的网络之外。所有客户端都必须能够通过HTTP发出web请求,并且来自网络外部的任何客户端都必须具有Internet连接。

这是您通常无法控制的层;因此,为不同的浏览器版本、屏幕大小、环境光照等进行设计非常重要。

在本课程中,您可以使用任何现代网络浏览器来测试您的应用程序和服务。您还可以使用移动浏览器, 例如iPhone上的Safari 来测试放置在个人Web空间上的应用程序。

同样,在开发和测试web地图时,您当然可以使用单个物理机器来扮演所有这些角色。这是一种常见的做法,使事情简单,更经济。当您为一家拥有自己网络的“真实世界”公司工作并且准备部署web地图时,您将把测试的服务和应用程序移动到一个正式的“生产”环境中,其中每个角色都有单独的企业级计算机,如前所述。