企业系统和应用程序之间的集成可以采取多种形式,具有不同程度的复杂程度。 在设计流程中进行潜在的集成时,需要考虑可能的集成类型。 例如,外部系统可能包含 REST API,可以将数据提交到数据库,并提供基于 Python 的 SDK 来查询其 API。 这些详细信息提供了不同的集成方法,这些方法可能更适合专用系统的不同工作流程或要求。 本节通过两种主要方法介绍集成指南:
有几种典型的集成方法可以指导进一步的设计决策,如以下部分所述。
此方法涉及从其他系统、数据库或 API 查询数据,以将其与 ArcGIS 托管的数据一起显示,通常在地图或表格界面中显示。 数据还可以与 ArcGIS 中的空间数据相结合,以支持只有在数据合并时才能进行的新可视化或报告。 此方法可以利用基于 OGC 的服务(如 WFS 或 WMS)或其他可用于集成的标准化地理空间数据格式,但使用简单的数据格式(如支持 Web 的 CSV 端点)可能会成功,这些端点可以添加到 ArcGIS 的 Web 地图中。
使用此方法的集成示例如下所示:
在这种方法中,包括服务器软件、应用程序或数据存储的其他系统可以通过 ArcGIS REST API 以及 ArcGIS Online 和 ArcGIS Enterprise 的功能查询 ArcGIS 并与之进行交互。 这可能包括从要素图层查询数据、显示来自影像服务的影像或将作业提交到地理处理工具以运行分析或过程。 位置服务系统的许多示例都是为此目的而构建的,其中服务主要支持其他应用程序,包括非 ArcGIS 系统。
使用此方法的集成示例如下所示:
基于工作流、系列或步骤进行集成通常涉及依赖在一个系统中执行的操作,然后将用户、数据或工作流移动到另一个系统以完成工作流。 这种方法可以是 “最轻量级”的集成方法,因为通常两个系统都不是为了支持集成而定制的,而是系统之间的一些编排或自动化来保持同步或在系统之间移动工作流步骤。
使用此方法的集成示例如下所示:
要将 ArcGIS 功能集成到同时引用其他业务系统的特定应用程序中,使用 ArcGIS REST API 和 SDK 访问动态地理空间内容、工具和功能。 此方法侧重于通过一个或多个自定义应用程序将 ArcGIS 服务和功能与其他服务、端点或工具集成。
一些组织使用共享数据存储(例如 数据仓库或数据湖)作为公共位置,将来自不同企业系统的数据汇集在一起。 ArcGIS 系统可以向这些共享数据存储贡献内容,包括基础地理空间图层,这些图层随后用于分析,与其他数据源相结合,并在许多不同的企业应用程序中引用。 ArcGIS 还支持读取和分析来自各种共享数据存储提供商的数据。
ArcGIS 与各种第三方身份系统、提供商或模式集成,包括 SAML、OpenID Connect、LDAP 和 Active Directory。 有关这些模式的更多详细信息,请参阅安全性支柱的身份验证模型和提供商主题。 此外,Azure 或 AWS 中的 ArcGIS Enterprise 部署可以与安全模型原生集成,包括 AWS Identity and Access Management (IAM) 角色和 Azure 托管身份。
用于迁移的技术方法或接口通常与具体情况相关,并且可能取决于已部署的应用程序或工具。 在设计流程中,需要考虑这些技术组件并进行相互比较,以确定集成和实现所需体验的最佳方法或接口。
应用程序或演示层集成侧重于将数据或服务引入特定的用户界面或体验。 这通常是最浅的集成级别,但也可以是最高效、最有效或成本最低的集成级别,因为它侧重于让数据或服务在一个应用程序或一组接口中可用。 这可能需要自定义或基于自定义界面构建,但也可以在 ArcGIS 和其他系统的现成应用程序或配置中受支持。 演示层集成的示例包括:
<iframe> 或 <embed> 标记嵌入应用程序,以在更大的应用程序或体验中显示。 这通常与 ArcGIS Hub 和 ArcGIS Enterprise Sites 一起使用,以嵌入其他 ArcGIS 应用程序或外部界面。 使用这种方法, ‘父项’和嵌入式应用程序之间的通信通常会受到限制。应用程序可以通过弹出窗口、基于属性的链接和相关记录链接在一起,以允许用户在现有应用程序或系统之间跳转以访问请求的数据或文档。
使用 ArcGIS Maps SDK for JavaScript 构建的自定义应用程序可以对远程 API 进行 API 调用或请求,处理结果,然后将其作为基于地图的信息或表格信息在界面中显示。 例如,应用程序可以调用远程 API 以从 CRM 返回客户订单信息,然后将其显示在地图上以分析订单密度。
还可以自定义其他应用程序和界面以向 ArcGIS REST 端点发出请求,例如使用基于 ArcGIS 的路径服务请求的医疗保健管理系统,以有效地为医务人员提供路径以进行家访。
在服务级别进行集成通常通过 Web 服务集成数据,以随后可将数据用于各种基于 ArcGIS 的应用程序和外部应用程序。 虽然这种方法的可行示例有很多,但最相关的示例包括查询层、自定义数据馈送和服务器对象扩展模块或拦截器。
使用 ArcGIS Enterprise SDK 构建的集成包括自定义数据源是 ArcGIS Enterprise 的一项强大功能,开发人员可在其中从几乎任何数据源创建只读要素服务。 这些数据源的示例可以是对 API 的查询、连接到数据库甚至文件。 由于生成的服务是集成到 ArcGIS 中的只读要素服务,因此可以将其提供给 Web 客户端、桌面应用程序和外业应用程序。 自定义数据源的源数据可以保留为本机格式,并通过 ArcGIS Enterprise 直接读取,无需使用 ETL 工作流。 如果 ArcGIS 本身不支持特定数据源,此时建议使用自定义数据源。 有关用例和数据源示例,请参阅自定义数据源。 要创建自定义数据源,需要开发人员资源和专业知识,如下所示:
开发环境,其中安装了 ArcGIS Enterprise SDK、NodeJS 和 JavaScript IDE,用于创建自定义数据提供商包
安装了自定义数据源运行时的 ArcGIS GIS Server 部署,该部署将托管已发布的要素服务
有关自定义数据源的开发和配置的进一步指导,请参阅自定义数据源概览。
另一种 ArcGIS Enterprise SDK 模式是开发服务器对象扩展模块 (SOE) 和服务器对象拦截器 (SOI),两者是 ArcGIS Server 站点中各个地理空间 web 服务的自定义项。 扩展模块通常会添加新功能,例如为资源或方法创建新的 REST 端点,而拦截器在现有方法(如 /query 或 /exportImage)中运行,以在处理请求或响应时对其进行修改和与之交互。 SOE 和 SOI 可用于集成其他数据源,例如对其他端点或磁盘上数据的查询,还可用于集成其他安全提供商,以将行级安全性或基于群组的访问应用于服务中的图层。
ArcGIS REST API 还可用于服务层集成,从其他系统调用或在企业服务总线模式 (ESB) 中使用,其中 API 和源被收集到一个中央目录或系统中,以将它们链接在一起并为用户和开发人员提供可发现性。
集成也可以在数据存储或持久性级别下完成。 这通常采用数据迁移、提取、传输和加载 (ETL) 和类似过程的形式,以在系统之间移动数据。 某些数据库支持与其他源(如 PostgreSQL 中的外部数据包装器或 SQL Server 中的链接数据库)的连接,但通常数据级迁移涉及系统之间的自动、重复数据移动。 常用模式包括:
ArcGIS Data Pipelines 和 ArcGIS Data Interoperability 以及此类别中的其他工具,这些工具可以移动数据以及对数据进行转换或处理,例如更改值、使用几何信息丰富或更改格式。
查询图层在 ArcGIS Pro 中创作和发布,其中首先连接到外部关系数据库或数据仓库,以从该数据库中提取表或数据视图。 更重要的是,这些数据库可以完全位于 ArcGIS 外部,无需任何企业级地理数据库对象或配置,并且可能包含也可能不包含使用来自这些系统的原生空间类型的空间数据。 查询图层可用于查看事务系统中的单个行、查看汇总或分析结果,或者通过特定列的视图或定义查看修改后的简化数据版本。 要让用户能够使用这种灵活的方法,可通过将包含查询图层的地图发布为地图图像图层,所有可配置的 ArcGIS 应用程序或基于 ArcGIS SDK 的应用程序随后都可以通过熟悉的 REST 接口查询数据。
Python 脚本通常用于独立脚本或 Python Notebooks 中,以自动在系统之间移动数据,包括在不同来源之间进行质量控制、处理、地理丰富和数据合并。
请参阅 ArcGIS Data Pipelines 和 ETL,其中介绍了其他 ETL 流程。
在数据级别集成的架构流程设计阶段,应仔细考虑以下因素:
更新频率 - 如果数据是从另一个记录系统集成的,了解另一个系统的更新频率,以及更新的数据在 ArcGIS 系统中可见之前预期或可接受的延迟时间。
数据质量 - 当系统依赖于外部数据时,该数据的质量至关重要。 了解导致数据源配置的权衡和选择可以为在 ArcGIS 系统中使用这些数据提供信息。
数据弹性 - 当依赖另一个系统时,请确保更新过程在远程系统不可用或提供错误或已损坏数据时提供回退选项。 使用数据集的静态副本或早期版本(具有适当的免责声明)有助于弥合短暂的差距或中断。
提供了在架构设计阶段有助于成功集成的一些成功策略。
集成企业系统改变了组织的运作方式,通过将曾经昂贵的流程或任务缩减为可重复的便宜活动,提升了时间灵活性。在优先级战略环境中利用企业集成,可以支持组织通过集成流程、应用程序或数据来改进产品和服务组合生产和交付的协调,从而实现非常有价值的成果。 将此价值主张用作指南,来定义初始要求、制定范围和成本估算以及为您的集成工作做出资源承诺。
企业集成通常是通过编排人工和自动化流程来实现的,包括嵌入在人们使用的应用程序中的组件,提供对人员和其他系统中的流程生成的数字内容或分析的访问,或通过应用程序编程接口 (API) 将这些方法组合在一起。此外,在企业集成的技术环境中,通常利用共享系统和流程实现企业身份和安全。

企业集成在技术上可能很复杂,通常包括多个系统层以及对性能、安全性和可用性的详细要求。这些工程通常需要掌握软件和系统工程学科以及传统 GIS 团队或工程团队不具备的经验。
必须从组织的各个部门分配正确的资源和团队成员,才能确保集成功能按预期执行并允许用户专注于他们的工作而不是技术。
系统之间的集成通常会将原本不会相交的数据汇集在一起,这会带来与机密性、适当性和相关性相关的潜在编译问题。
企业或外部用户可能会以不同的方式解释信息资源,因此开发团队必须清楚地了解系统之间集成的各种形式的数字内容的含义和使用范围。
对内容类型、字段、值等的误解可能会导致负面影响,这些影响也会降低企业集成投资的价值。 强大的数据治理可以通过确保开发人员和用户了解应用于数据集的标准来促进这一领域。
所有组织都强烈要求保护敏感信息资源和系统。 网络安全确保适当的人员在经过身份验证和授权后才能访问和应用信息资源。 信息安全措施确保以适当的方式为每个给定受众提供数字内容资源。
所有形式信息的网络和信息安全约束可能需要多个数据处理阶段,才能生成适合给定受众预期目的的正确内容形式。这可能会导致数据层和应用程序层的集成变得复杂,并且通常需要流程自动化才能转换或以其他方式处理从一个系统到另一个系统的动态数据资产。 安全性支柱中介绍了与安全性相关的其他注意事项。
所有企业系统都应以明确定义的生命周期运行。 虽然这些系统的发展可能很缓慢,但变化是不可避免的。 如果没有明确的生命周期规划,许多组织将难以管理其系统、解决方案和集成组合。集成的企业解决方案依赖于数据和技术环境的稳定性,而这些环境的变化可能会中断应用程序和相关工作流的使用,从而影响组织的工作效率。 随着系统及其数字内容的变化,请跟踪这些依赖关系,以便企业集成可以发展,并在不再需要时停用。
虽然其中许多概念与任何企业信息系统相关,但企业地理信息系统的集成还包括其他注意事项,例如地理空间数据关联以及对地图可视化和界面的支持。可通过 ArcGIS 系统与其他业务系统的企业集成,支持整个组织的人员协同工作,并改进协调,以更流畅、更有效地应用地理。