Publicar servicios de generación de rutas personalizados

Los servicios de generación de rutas personalizados son servicios de geoprocesamiento con funcionalidades personalizadas. Mientras que los servicios de generación de rutas estándar solo realizan flujos de trabajo específicos de análisis de redes con un conjunto de opciones predeterminado, puede publicar un servicio de generación de rutas personalizado si necesita funcionalidades adicionales o una mayor flexibilidad en los flujos de trabajo de análisis. Por ejemplo, puede encontrar una ruta entre dos paradas y generar un perfil de elevación para esa ruta o combinar varios análisis de red diferentes en un único servicio web. Para un análisis de este tipo, puede crear un servicio de generación de rutas personalizado. Los servicios de generación de rutas personalizados son servicios de geoprocesamiento con funcionalidades personalizadas. Los servicios de geoprocesamiento permiten compartir herramientas de análisis personalizadas en ArcGIS Server, un componente de ArcGIS Enterprise. Los servicios de geoprocesamiento se ejecutan con frecuencia como herramientas web alojadas en el portal de ArcGIS Enterprise. Estas herramientas se crean y ejecutan en ArcGIS Pro como una herramienta de script antes de ser compartidas con un servidor.

La creación de un servicio de generación de rutas personalizado (servicio de geoprocesamiento) es un proceso que consta de tres pasos, tal y como se describe en las secciones siguientes.

Crear una herramienta de script

El primer paso para crear un servicio de generación de rutas personalizado es crear y documentar una herramienta de script de geoprocesamiento basada en un módulo arcpy y arcpy.nax de Python y escribir el código de Python que implementará la lógica para ejecutar la herramienta de script. La herramienta se crea en una caja de herramientas.

Más información sobre la creación de una herramienta de script de Python utilizando arcpy.nax

Publicar servicio

Una vez que haya creado la herramienta, ejecútela en ArcGIS Pro para asegurarse de que se completa correctamente. Cuando la herramienta termine de ejecutarse, en el historial de geoprocesamiento, podrá compartir el resultado como herramienta web desde ArcGIS Pro. Al compartirla, se crea el elemento del servicio de geoprocesamiento en la conexión del servidor. Puede agregar varias herramientas ya ejecutadas al mismo servicio de geoprocesamiento durante la publicación. Puede publicar un servicio de geoprocesamiento desde ArcGIS Pro en un servidor independiente (uno que no esté federado con un portal de ArcGIS Enterprise) utilizando una conexión de administrador. Si está trabajando con un sitio de servidor que está federado con un portal de ArcGIS Enterprise, en su lugar comparte las herramientas web al portal de ArcGIS Enterprise.

Aprenda a publicar y utilizar un servicio de geoprocesamiento en este ejemplo.

Consumir el servicio

Una vez que se ha publicado el servicio de geoprocesamiento en ArcGIS Server, incluido el paso de compartir una herramienta web en un portal con un sitio de servidor federado, los usuarios autorizados pueden acceder al servicio directamente en el sitio del servidor utilizando distintas operaciones en API REST de ArcGIS y trabajar con él en ArcGIS Pro, el widget de geoprocesamiento de ArcGIS Web AppBuilder, aplicaciones web personalizadas con ArcGIS API for JavaScript y mucho más.

Nota:

El servicio de generación de rutas personalizado no se puede consumir en ArcGIS Pro a través de la cinta de análisis de red.

Consejos para la creación de servicios de geoprocesamiento

Para mejorar el rendimiento de los servicios de geoprocesamiento, considere la posibilidad de seguir los siguientes consejos:

  • Al definir el parámetro del dataset de red en la herramienta de script, para el tipo de datos, utilice Capa de dataset de red en lugar de Dataset de red o Fuente de datos de red. Antes de publicarla como herramienta web, ejecute la herramienta de script y proporcione un dataset de red del mapa. Dado que la conexión con el dataset de red se establece una vez al iniciar el servicio, no es necesario abrir el dataset de red con cada solicitud de servicio, lo que ahorra tiempo.
  • Cuando lea el parámetro del dataset de red en la herramienta de script, utilice el método GetParameterAsText en lugar del método GetParameter, ya que el método GetParameterAsText proporciona acceso a la capa del dataset de red mucho más rápido.
  • Escriba una herramienta de script de geoprocesamiento utilizando el módulo arcpy.nax de Python. Al hacerlo así, conseguirá tiempos de ejecución más rápidos en comparación con los servicios creados a partir de la herramienta de modelado de geoprocesamiento o los servicios creados a partir de una herramienta de script con arcpy.na utilizando el flujo de trabajo basado en capas.
  • Al definir el parámetro de entrada de entidad para la herramienta de script, utilice el tipo de datos Conjunto de entidades. Cuando se utiliza el conjunto de entidades y se establece de forma predeterminada en un archivo de capas, el archivo de capas hace referencia internamente a la clase de entidad que define el esquema para el conjunto de entidades. Cuando se publica el servicio, existe un esquema bien definido para la salida.
  • Escriba la salida a un espacio de trabajo basado en memoria en lugar de a una geodatabase de archivos.
  • Evite escribir demasiados mensajes desde la herramienta de script.
  • Cuando comparta el resultado del análisis como una herramienta web o un servicio de geoprocesamiento, cambie el modo de entrada del parámetro dataset de red a constante. Dado que el servicio siempre utiliza el mismo dataset de red, esta definición del dataset de red como constante garantiza que no esté disponible en el servicio resultante creado por la herramienta.
  • Seleccione el modo síncrono para las solicitudes de corta ejecución para obtener el mejor rendimiento.
  • Si selecciona el modo síncrono para el servicio de geoprocesamiento, puede mejorar aún más el rendimiento del servicio de geoprocesamiento cambiando la propiedad reusejobdir a true. No obstante, tenga en cuenta las restricciones al cambiar el valor de esta propiedad: si cambia reusejobdir a true, utilizará la misma carpeta de trabajos para cada trabajo. Por lo tanto, si está escribiendo salidas en el directorio de trabajos, debe asegurarse de que las salidas tengan un nombre único en cada ejecución para que no se afecten entre sí.