收割

当多个目录和服务共享资源时,数据发现变得更加有趣。

获取是从远程源接收元数据并将其存储在本地目录中以进行快速搜索的过程。这是一个预定的过程,因此本地副本和远程元数据保持一致。

可采集以下来源:

机制概述

收获机制依赖于 universally unique identifier (UUID) . 这是一个特殊的id,因为它不仅对生成它的节点是本地唯一的,而且是全局唯一的。它是以下各项的组合:

  • 网络接口MAC地址,

  • 当前日期/时间

  • 一个随机数。

对于每个新记录,都会生成一个UUID并分配给它。

收获背后的另一个重要概念是 last change date . 每次更改元数据记录时,都会更新上次更改日期。只需存储此参数并将其与新参数进行比较,任何系统都可以发现元数据记录自上次更新以来是否已被修改。

这两个概念允许目录获取远程元数据,检查其是否已更新,如果已远程删除,则在本地将其删除。UUIDs还允许在B从C收获和A从B收获的情况下跨目录收获。

收获生命周期

创建收割机时,没有收获的元数据。在第一次运行期间,将检索所有远程匹配元数据并将其存储在本地。对于一些收割机,在第一次运行之后,将只检索已更改的元数据。

获取的元数据(默认情况下)不可编辑,原因如下:

  1. 收获是周期性的,因此对收获元数据的任何本地更改都将在下一次运行期间丢失。

  2. 更改日期可用于跟踪更改,因此如果元数据发生更改,则捕获机制可能会受到损害。

收集的元数据记录上的元数据属性(如类别、权限等)可以更新,但将在下次运行时更新。

注解

如果您真的想编辑收集的元数据记录,并且不担心上面描述的可能问题,那么现在有一个配置设置允许这样做。见 收割 了解更多详细信息。

另一个选择是将收获的记录分配给本地目录,然后修改它们。目前,没有接口允许更改记录的源目录。

收割过程继续进行,直到出现以下情况之一:

  1. 管理员停止(停用)收割机。

  2. 出现了一个例外。在这种情况下,收割机自动停止。

当收割机被移除时,与该收割机关联的所有元数据记录都将被移除。

多重收获和层次结构

使用uuid来标识元数据记录(例如geonnetwork)的目录可以多次获取,而不必考虑元数据重叠。

作为一个示例,请考虑GeoNetwork收集类型,该类型允许一个GeoNetwork节点从另一个GeoNetwork节点收集元数据记录,并且以下场景:

  1. 节点(A)已创建元数据(A)

  2. 节点(B)从(a)收获(a)

  3. 节点(C)从(B)收获(a)

  4. 节点(D)从(A),(B)和(C)中收获

在这个场景中,节点(D)将从所有3个节点(a),(B),(C)获取相同的元数据(a)。元数据将按照3个不同的路径流向(D),但由于其UUID,将只存储一个副本。当(a)在(a)中更改时,新版本将流向(D),但由于更改日期的关系,在(D)中的副本将使用最新版本进行更新。

获取元数据片段以支持重用

除了THREDDS和OGC WFS GetFeature harvester之外,所有的harvester都创建一个完整的元数据记录,该记录插入或替换目录中的现有记录。然而,通常情况下:

  • 从外部源获取的元数据实际上只是描述数据集等资源所需的元数据的一个或多个片段

  • 您可能希望在单个记录中将收集的元数据片段与手动输入的或静态的元数据结合起来

  • 在多个元数据记录中可能需要从外部源获取的元数据片段

例如,您可能只对从外部源获取地理范围和/或联系信息以及在元数据记录中手动输入或维护其余内容感兴趣。您还可能有兴趣在多个元数据记录中重新使用个人或组织的联系信息。

为了支持此功能,WFS GetFeature Harvester和THREDDS Harvester都允许捕获元数据片段并将其链接或复制到模板记录中以创建元数据记录。保存到GeoNetwork数据库中的片段称为子模板,可以在多个元数据记录中使用。

如上所示,元数据片段的一个示例是gmd:contactInfo元素一份iso19139文件。此元素包含个人或组织的联系人详细信息。如果某个片段作为给定人员或组织的子模板存储在GeoNetwork数据库中,则可以在元数据记录中引用该片段,其中使用名为XLink的XML链接机制指定该组织或个人。

HTTPS支持

地理网络节点之间的捕获可能需要使用HTTPS协议。如果从https GeoNetwork URL获取,服务器将需要在运行获取的GeoNetwork节点可以访问的JVM密钥库中有一个可信证书。

如果geonnetwork使用的JVM密钥库中没有可信证书,那么当您尝试从https geonnetwork获取时,harvester可能会发出如下异常:

javax.net.ssl.SSLHandshakeException:
   sun.security.validator.ValidatorException: PKIX path building failed:
   sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

Caused by: sun.security.validator.ValidatorException:
   PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

要获取的geonnetwork服务器的服务器证书需要添加到JVM密钥库中 keytool 为了得到信任。

添加证书的另一种方法是使用如下脚本:

## JAVA SSL Certificate import script
## Based on original MacOs script by LouiSe@louise.hu : http://louise.hu
##
## Usage: ./ssl_key_import.sh <sitename> <port>
##
## Example: ./ssl_key_import.sh mail.google.com 443 (to read certificate from https://mail.google.com)

## Compile and start
javac InstallCert.java
java InstallCert $1:$2

## Copy new cert into local JAVA keystore
echo "Please, enter admnistrator password:"
sudo cp jssecacerts $JAVA_HOME/jre/lib/security/jssecacerts
# Comment previous line and uncomment next one for MacOs
#sudo cp jssecacerts /Library/Java/Home/lib/security/

要使用脚本,必须安装Java编译器并 InstallCert.java ,必须下载并放置在与脚本相同的目录中。

如果按如下方式运行,脚本将把证书添加到JVM密钥库:

$ ./ssl_key_import.sh https_server_name 443

注解

使用此脚本的风险自负!在JVM密钥库中安装一个可信的证书之前,请确保您理解其中的安全含义。

注解

添加证书后,您需要重新启动GeoNetwork。

主页面

要访问收割主页,您必须以管理员身份登录。从“管理”页面中,选择“收获”shorcut。然后将显示收割主页面。

页面显示当前定义的收割机列表和一组用于管理功能的按钮。收割机清单各栏含义如下:

  1. 选择 复选框选择一个或多个收割机。选定的收割机将受到第一行按钮(激活、停用、运行、移除)的影响。例如,如果选择三台收割机并按下“删除”按钮,则它们都将被删除。

  2. Name 这是管理员提供的收割机名称。

  3. Type 收割机类型(如GeoNetwork、WebDAV等)。

  4. 状态 显示当前状态的图标。见 收割状态和错误图标 对于不同的图标和状态描述。

  5. 错误 显示上一次收割结果的图标,可能成功也可能失败。见 收割状态和错误图标 对于不同的图标和错误描述。将光标悬停在图标上将显示有关上次收割运行的详细信息。

  6. 运行于每个 :收割机运行计划。基本上是一天中的时间+重复之间的时间间隔以及收割机将在哪一天运行。

  7. 最后一次跑步 ISO 8601格式的最新收获日期。

  8. 操作 收割机上操作的按钮/链接列表。

  • 选择 Edit 将允许您更改收割机的参数。

  • 选择 克隆 将允许您创建此收割机的克隆并开始编辑克隆的详细信息。

  • 选择 历史 将允许您查看/更改收割机的收割历史记录-请参阅 收获历史 .

在收割机列表的底部是两排按钮。第一行包含可在选定的收割机集上操作的按钮。您可以使用“选择”列中的复选框选择要操作的收割机,然后按下其中一个按钮。当按钮完成操作时,复选框将被清除。以下是每个按钮的含义:

  1. 激活 创建新的收割机时,状态为 不活动 . 用这个按钮 积极的 并根据已配置的时间表启动收割机。

  2. 停用 停止收割机。注意:这并不意味着当前正在运行的收获将被停止。相反,这意味着收割机将不会被安排再次运行。

  3. Run 立即启动选定的收割机。这对测试收割机设置很有用。

  4. 去除 移除所有当前选定的收割机。对话将要求用户确认操作。

第二行包含通用按钮。以下是每个按钮的含义:

  1. Back 只需返回主管理页。

  2. Add 这个按钮创建一个新的收割机。

  3. 刷新 从服务器刷新当前收割机列表。这有助于查看收割列表是否被其他人更改,或获取任何正在运行的收割机的状态。

  4. 历史 显示所有收割机的收割历史。见 收获历史 了解更多详细信息。

收割状态和错误图标

收获结果提示

当收割机运行并完成时,显示收割过程详细信息的工具提示如 错误 收割机立柱。如果收割机成功,则将光标悬停在工具提示上将显示一个表格,其中一些行的标签如下:

  • 合计 -这是远程找到的元数据总数。具有相同id的元数据被视为一个。

  • 补充 -由于不在本地而添加到系统中的元数据的数目。

  • 远离的 -由于远程服务器中不再存在而在本地删除的元数据的数目。

  • 更新的 -本地存在但由于其上次更改日期与远程更改日期不同而需要更新的元数据数。

  • 不变的 -本地元数据保持不变。他们最后一次远程更改日期没有更改。

  • 未知架构 -由于GeoNetwork无法识别其格式而跳过的元数据的数目。

  • 无法挽回 -准备从远程服务器检索但由于某种原因在数据传输过程中出现异常的元数据的数目。

  • 格式错误 -由于没有有效的XML表示而跳过的元数据的数目。

  • 不验证 -未根据其架构验证的元数据数。这些元数据已成功获取,但由于验证过程而被跳过。通常,有一个强制验证的选项:如果您无论如何都想获取这些元数据,只需关闭/保留它。

  • Thumbnails/Thumbnails failed -由于某些失败而无法添加/添加的元数据缩略图的数目。

  • 使用的元数据URL属性 -具有可用于链接到元数据记录的元数据URL的层/功能类型/覆盖数(仅限OGC Service Harvester)。

  • 添加的服务 -创建并添加到目录中的ISO19119服务记录数(仅用于THREDDS目录收集)。

  • 已添加集合 -添加到目录中的集合数据集记录数(仅用于THREDDS目录捕获)。

  • 添加原子 -添加到目录中的原子数据集记录数(仅用于THREDDS目录捕获)。

  • 添加子模板 -添加到元数据目录的子模板数(=在目录中可见的片段)。

  • 移除子模板 -从元数据目录中删除的子模板数(=在目录中可见的片段)。

  • Fragments w/Unknown schema -具有未知元数据架构的片段数。

  • 返回的碎片 -收割机返回的碎片数。

  • 片段匹配 -在收割机使用的模板中具有标识符的片段数。

  • 现有数据集 -运行THREDDS harvester时存在的数据集元数据记录数。

  • 建立的记录 -由收割机从模板和片段创建的记录数。

  • 无法插入 -收割机无法插入到目录中的记录数(通常是因为该记录已经存在,例如,在Z3950收割机中,如果从不同的服务器获取相同的记录,则可能会发生这种情况)。

增加新的收割机

主页面上的添加按钮允许您添加新的收割机。然后显示一个下拉列表,其中包含所有可用的收割机协议。

您可以选择要执行的收割类型,然后按 Add 开始添加收割机的过程。支持的收割机和下一步操作的详细信息如下:

收获历史

每次收割机运行时,它都会生成一个状态报告,说明收获了什么和/或出了什么问题(例如异常报告)。这些报告存储在GeoNetwork使用的数据库中的表中。使用“收割管理”页面上的“历史记录”按钮可以调用所有收割机的整个收割历史记录。也可以使用该收割机操作中的历史链接来调用单个收割机的收获历史。

显示收割历史记录后,可以:

  • 展开任何异常的详细信息

  • 按收获日期对历史进行排序(如果是所有收割机的历史,则按收割机名称)

  • 删除任何历史记录条目或整个历史记录