Conceptos clave sobre los servicios de geoprocesamiento

Un servicio de geoprocesamiento contiene tareas de geoprocesamiento a las que se puede acceder por los clientes habilitados para Web. Las tareas se crean al publicar modelos de geoprocesamiento y herramientas de secuencia de comandos.

Hay dos formas de crear un servicio de geoprocesamiento en ArcGIS Desktop:

Se puede acceder a los servicios de geoprocesamiento y las tareas a través del Internet público y las intranets privadas y se pueden utilizar en ArcGIS Desktop, ArcGIS Explorer y en las aplicaciones Web tales como un sitio Web creado mediante el administrador de ArcGIS Server. En ArcGIS Desktop, los servicios de geoprocesamiento se pueden agregar a la ventana de ArcToolbox como una caja de herramientas y las tareas se convierten en herramientas dentro de la caja de herramientas.

El resto de este tema se trata sobre los conceptos de diseño, reglas y pautas clave con respecto a los servicios y las tareas de geoprocesamiento.

Crear un servicio de geoprocesamiento

Los clientes Web son aplicaciones sencillas: sólo ellos saben cómo enviar paquetes de datos simples a un servidor, tales como texto, números y entidades geográficas poco complicadas. Un servicio de geoprocesamiento toma estos datos simples, los procesa y devuelve alguna salida significativa y útil, tal como el área probable de evacuación para un derrame químico peligroso, el recorrido y fuerza previstos de un huracán que se avecina, un mapa de una cobertura de suelo dentro de una cuenca hidrográfica definida por el usuario, un mapa de parcelas con detalles históricos de propiedad o un permiso para una ruta de un desfile por el centro de una ciudad. Las posibilidades para estos servicios son infinitas.

El geoprocesamiento proporciona la base de herramientas ricas y poderosas desde las que puede crear un servicio que procese los datos de entrada. Si actualmente utiliza el geoprocesamiento, es posible que ya sepa cómo crear herramientas mediante modelos y secuencias de comandos. Lo que necesita aprender es cómo diseñar la herramienta para que utilice los datos de entrada más simples posible para alcanzar la mayor audiencia posible de clientes.

Por ejemplo, suponga que tiene un modelo que calcula una cuenca hidrográfica aguas arriba desde un conjunto de puntos y extrae polígonos dentro de la cuenca hidrográfica calculada. Los parámetros de entrada para este modelo serían

Este modelo es adecuado para ArcGIS Desktop pero no para un servicio de geoprocesamiento. Es posible que necesite que lo modifique de la siguiente manera:

El modelo modificado toma las entradas simples y responde una consulta espacial específica: Para el área de estudio, ¿cuál es la cobertura de suelo dentro de la cuenca hidrográfica definida por este punto? El modelo se publicaría como un servicio de geoprocesamiento y se utilizaría en un sitio Web pensado para los administradores de suelo en el área de estudio.

Esto no quiere decir que no puede crear servicios genéricos mediante ArcGIS Server. El ejemplo servicio de puntos de zona de influencia es un servicio completamente genérico que crea una zona de influencia en cualquier conjunto de entidades de puntos. ArcGIS Server es flexible y con el uso de algunas técnicas avanzadas o programación personalizada, puede crear servicios genéricos que procesen grandes datasets proporcionados por los usuarios. Pero la mayoría de los servicios se centran en áreas geográficas específicas, responden consultas espaciales específicas y trabajan en clientes sencillos. El diseño de los servicios de geoprocesamiento de ArcGIS Server se basa en la necesidad de crear y publicar estos tipos de servicios centrados.

Configuraciones del servicio de geoprocesamiento

Los servicios de geoprocesamiento se pueden crear al publicar dos recursos de ArcGIS Desktop diferentes; una caja de herramientas de geoprocesamiento o un documento de ArcMap (.mxd) que contenga capas de herramienta.

Estas tres configuraciones se ilustran a continuación.

Tres configuraciones

Servicio de geoprocesamiento a partir de una caja de herramientas

Cuando publica una caja de herramientas, todas las herramientas dentro de la caja de herramientas se convierten en tareas de geoprocesamiento. La salida de datos generada por las tareas se transporta nuevamente al cliente.

Servicios de geoprocesamiento con un documento de mapa de origen

Si utilizó herramientas de geoprocesamiento en una sesión de ArcMap, sabe que las herramientas a menudo pueden utilizar capas que se encontraron en la tabla de contenido de ArcMap, así como también datos en disco.

De la misma manera, la tarea de geoprocesamiento puede utilizar capas que se encontraron en el documento de mapa de origen. En este caso, el documento de mapa de origen actúa como un contenedor de capas. Puede hacer capas en los parámetros de entrada del documento de mapa de origen para su tarea. En el siguiente gráfico, la variable Datos a extraer es un parámetro de entrada que permite al usuario elegir las capas en el documento de mapa de origen.

Las capas vienen de un servicio de mapas o documento de mapa asociado.
PrecauciónPrecaución:

Las tareas de geoprocesamiento sólo pueden acceder a las capas que se encuentran en el documento de mapa de origen, no pueden acceder a las capas que se encuentran en otros servicios de mapas o en la aplicación cliente.

Hay beneficios de rendimiento para utilizar las capas desde un documento de mapa de origen en los procesos de modelo o de secuencia de comandos. La siguiente ilustración muestra un modelo que utiliza un dataset de red, StreetsNetwork, para construir una capa de análisis de ruta. La variable StreetsNetwork puede hacer referencia a una capa (lo que hace en este caso) o a un dataset en disco. Abrir un dataset de red es costoso en relación con otros tipos de datasets debido a que los datasets de red contienen varias estructuras de datos avanzadas y tablas que se deben leer y almacenar en la memoria caché. Al utilizar la capa en lugar del dataset, hay una ventaja de rendimiento, debido a que ArcMap abre el dataset una vez, almacena en la memoria caché las propiedades básicas del dataset y mantiene el dataset abierto. Cuando se ejecuta el modelo, no se tiene que volver a abrir el dataset, ya que el documento de mapa de origen ya lo abrió; una mejora en el rendimiento. Por el contrario, si la variable StreetsNetwork hace referencia directamente al dataset, el dataset se abrirá cada vez que se ejecute el modelo; una degradación del rendimiento.

Utilizar una capa a partir del documento de mapa de origen

Para el análisis de red, siempre se quiere el dataset de red como una capa en el documento de mapa de origen y utilizar la capa en las variables de modelo. Para otros tipos de datasets, tales como las entidades y los rásteres, la ventaja de rendimiento de utilizar capas en el documento de mapa de origen es muy pequeña.

Servicios de geoprocesamiento con un servicio de mapas de resultado

Los servicios de geoprocesamiento pueden tener un servicio de mapas de resultado para crear una imagen de mapa digital de resultados de tarea. Los mapas digitales contienen representaciones visuales de datasets geográficos que comunican la información. Los mapas digitales se transportan a través de la Web como imágenes (tales como una imagen .jpg). Una imagen de mapa, byte por byte, contiene mucha más información interpretable por el hombre que las entidades sin procesar en una clase de entidad. Las imágenes de mapa también son manejables: se comprimen fácilmente, se pueden teselar en partes manejables y hay métodos establecidos para trasportarlas y visualizarlas a través de la Web.

Un servicio de mapas de ArcGIS Server crea las imágenes de mapa y son el resultado de publicar un documento de ArcMap (.mxd). Debido a las características de una imagen de mapa, es posible que desee crear una para los resultados de la tarea de geoprocesamiento y transportar la imagen a través de la Web en lugar de transportar el dataset o datasets de resultados. Los servicios de geoprocesamiento pueden tener un servicio de mapas de resultado que ArcGIS Server utiliza para crear imágenes de mapa de los datos de salida.

Los servicios de mapas de resultado deben utilizarse cuando

  • El resultado de la tarea es un dataset (potencialmente) grande.
  • El tipo de datos de la salida no es compatible con el cliente, tal como los rásteres en ArcGIS Explorer. En este caso, utilice el servicio de mapas de resultado para visualizar la salida.
  • Desea proteger el resultado de la tarea al permitir que sólo se pueda visualizar como un mapa y no se pueda descargar como un dataset.
  • Tiene cartografía compleja que debe dibujar el servicio de mapas de resultado y no el cliente.

Cuando utilice los servicios de mapas de resultado, es importante tener en cuenta que hay dos servicios: el servicio de geoprocesamiento y el servicio de mapas de resultado. Estos dos servicios se ejecutan independientemente el uno del otro. Cuando se ejecuta la tarea, ArcGIS Server ejecuta la tarea de geoprocesamiento primero, y después ejecuta el servicio de mapas resultante para dibujar la salida del servicio de geoprocesamiento. Debido a este orden de ejecución, el servicio de mapas resultante necesita datasets en disco, que el servicio de geoprocesamiento produce. Esto significa que la salida de las tareas en el servicio de geoprocesamiento deben ser datasets en disco, no capas o datasets en la memoria.

Mapas base para el servicio de geoprocesamiento

Para la mayoría de las tareas de geoprocesamiento, el usuario necesitará algún tipo de mapa base para utilizar como una referencia geográfica. Puede ser un mapa base de carreteras, lugares poblados, puntos de interés o cualquier otra entidad.

El servicio de geoprocesamiento probablemente depende de un mapa base determinado para guiar al usuario cuando introduce las ubicaciones. Por ejemplo, el usuario introduce un punto que debe caer dentro de un límite de parcela en una ciudad específica, por lo tanto el mapa base debe mostrar los límites de parcela de esa ciudad. Además, el servicio sólo puede funcionar dentro de una determinada área de estudio, en lugar de un servicio que funciona globalmente. El área de estudio se puede considerar como la extensión de geoprocesamiento debido a que el servicio sólo tiene conocimiento de los datos dentro del área de estudio.

NotaNota:

Un error común es utilizar el servicio de mapas de resultado para visualizar un mapa base para el servicio de geoprocesamiento.Por ejemplo, si el usuario identifica una parcela al señalar y hacer clic y la tarea dibuja la parcela identificada simbolizada por algún atributo de la parcela, su pensamiento inicial sería utilizar el servicio de mapas de resultado para visualizar los datos de parcela de entrada (el mapa base) así como también la parcela que se identificó. Hay dos razones por las que no debería utilizar el servicio de mapas de resultado como un mapa base:

  • Cuando el servicio de mapas de resultado se agrega a la aplicación, todas las capas en el servicio de mapas están disponibles para la visualización. Estas capas incluyen las capas de herramientas de geoprocesamiento para dibujar la salida, las capas que pueden contener datos confidenciales, o las capas utilizadas por el servicio de geoprocesamiento pero que no tienen sentido para el usuario (como las capas de herramientas).
  • Los mapas base son multiescala y de resolución múltiple. Cuando se acerca y se aleja, el mapa base cambia, mostrando los detalles a grandes escalas y agregando los detalles en las generalizaciones a pequeñas escalas (por ejemplo, los ríos cambian de entidades de línea a pequeña escala a entidades poligonales a grandes escalas). Construir un mapa base de resolución múltiple y multiescala que dibuja rápidamente no es algo de lo que el servicio de mapas de resultado deba ocuparse; su trabajo es dibujar las salidas. Debe mantener el diseño y la implementación de los servicios de mapas de mapa base separado del diseño y la implementación de los servicios de mapas de resultado.

Al volver a la aplicación de parcela para señalar y hacer clic, debería tener un servicio de mapas para visualizar los datos de parcela (el mapa base) y utilizar el servicio de mapa de resultado para volver a visualizar la parcela, quizás codificada por colores por algunos atributos. Los dos servicios de mapas utilizan el mismo dataset de parcela (no hay problemas con esto) y usted divide el trabajo al visualizar un mapa base de referencia desde el trabajo de visualizar los resultados.

Otras consideraciones para tener en cuenta al diseñar los servicios de mapas son las características del cliente. Para una aplicación Web, tiene control completo sobre qué tareas de mapas y de geoprocesamiento estarán disponibles en la aplicación y los servicios de mapas de resultado no deben aparecer como una capa de mapa en la tabla de contenido de la aplicación Web. Los clientes de ArcMap y ArcGIS Explorer son un poco más problemáticos debido a que, en la práctica, los usuarios pueden buscar cualquier servicio de mapas o de geoprocesamiento y terminar con faltas de coincidencia entre la extensión del mapa base y la extensión de geoprocesamiento. Cuando publica los servicios, no hay ninguna opción donde puede especificar "cuando agrega este servicio de geoprocesamiento, también agregue estos otros servicios de mapa". Sin embargo, puede distribuir los documentos de ArcMap (.mxd) o los documentos de ArcGIS Explorer (.nmf) que contienen los servicios correctos. También puede proporcionar la documentación de tarea incorporada para los servicio y tareas de geoprocesamiento al detallar qué servicios de mapas se necesitan. Todos los clientes pueden acceder a la documentación de tarea.

Tipos de datos y capacidades del cliente

ArcGIS Explorer es una aplicación cliente sencilla, es decir que tiene una pequeña instalación, a diferencia de ArcGIS Desktop. Las aplicaciones Web son sitios Web a los que se puede acceder con un navegador de Internet. Los navegadores son clientes muy sencillos (o ligeros). Debido a la naturaleza sencilla de estos clientes, todo el rango de los tipos de datos de entrada y de salida que encuentre en ArcGIS Desktop no están disponibles para estos clientes (de lo contrario, el cliente podría ser pesado como ArcGIS Desktop). Por ejemplo, los clientes sencillos no son compatibles con los rásteres como entrada para una tarea de geoprocesamiento.

NotaNota:
Debido a que los procesos dentro del modelo o secuencia de comandos que se publicó se ejecutan en el servidor donde todos los tipos de datos están disponibles, puede utilizar cualquier tipo de datos para los procesos del modelo o secuencia de comandos, como se ilustra a continuación. Sólo están limitados los tipos de datos del parámetro de entrada y de salida. Cualquier tipo de datos al que se pueda acceder desde el servidor se puede utilizar por los procesos del modelo o secuencia de comandos.
Tipos de datos de entrada y de salida frente a los procesos modelo

La tabla siguiente resume los tipos de datos de parámetro de entrada clave para los tres clientes.

Tipo de datos del parámetro de entrada

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Conjunto de entidades

Conjunto de registros

Clase de entidad

No (pero la Clase de entidad de entidad de entrada es compatible indirectamente con el tipo de datos del Conjunto de entidades).

No

No

Tabla

No (pero la entrada de Tabla es compatible indirectamente con el tipo de datos del Conjunto de registros).

No

No

ráster

No

No

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Archivo (como un archivo .zip o .xml)

Capa (cualquier tipo de capa: por ejemplo, capa de entidad, capa ráster, capa de Network Analyst)

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Tipos de entrada para los servicios de geoprocesamiento

Cualquier tipo de datos que no esté enumerado anteriormente se convierte a un tipo de datos de cadena de caracteres o no está permitido. El tema Tipos de datos de entrada y de salida proporciona más detalles sobre los tipos de datos para los servicios de geoprocesamiento.

De la misma manera, los modelos y secuencias de comandos toman las clases de entidades y las tablas como entrada, debido a que estos son los tipos de datasets más comunes que se utilizan con el geoprocesamiento. Esto significa que estos modelos y secuencias de comandos existentes deberán modificarse antes de publicarlos como tareas de geoprocesamiento. Si el modelo o la secuencia de comandos toma una entrada de clase de entidad, puede modificarla para que tome un conjunto de entidades en su lugar. Si el modelo toma una tabla como entrada, puede modificar el modelo para que tome un conjunto de registros en su lugar.

La tabla siguiente resume los tipos de datos de parámetro de salida clave para los tres clientes.

Tipo de datos del parámetro de salida

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Clase de entidad

ráster

No (sólo se puede visualizar en el mapa por medio del uso de un servicio de mapas resultantes)

No (sólo se puede visualizar en el mapa por medio del uso de un servicio de mapas resultantes)

Tabla

No (los servicios que tienen un tipo de datos de tabla como un parámetro de salida no se mostrarán en la lista de tareas disponibles).

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Sí (se visualizan en el resultado del servicio que se encuentra en la ficha Resultados de la ventana de ArcToolbox)

Sí (se visualizan en el Resultado de tarea)

Archivo

Datos de salida

Uso concurrente de datos: %scratchworkspace%

Una tarea de geoprocesamiento se puede utilizar simultáneamente (al mismo tiempo) por varios usuarios. Para los datos que se leen por el modelo o la secuencia de comandos, no hay problemas de concurrencia; todos los usuarios concurrentes pueden leer los mismos datos. Sin embargo, los datos creados o actualizados por el servicio requieren que comprenda los problemas con respecto a los escritores concurrentes.

Crear nuevos datos

Las tareas de geoprocesamiento generalmente crean datos intermedios y datos de salida. ArcGIS Server proporciona un mecanismo que garantiza que no hay problemas de concurrencia con los datos intermedios y de salida. Cuando se ejecuta una tarea, ArcGIS Server crea una carpeta de trabajos única en un directorio de trabajos. Esta carpeta de trabajos contiene una carpeta llamada trabajo temporal, que a su vez contiene una geodatabase de archivos llamada trabajo temporal, como se ilustra a continuación. Después de crear esta estructura de carpetas, ArcGIS Server establece la variable de entorno del espacio de trabajo temporal de geoprocesamiento en la carpeta trabajo temporal (no la geodatabase de trabajo temporal, sino la carpeta). El modelo y la secuencia de comandos pueden fácilmente descubrir y utilizar este espacio de trabajo temporal al colocar signos de porcentaje alrededor del nombre de la variable de entorno (%scratchworkspace%). Debe escribir los datos intermedios y los datos de salida en la carpeta de trabajo temporal o en la geodatabase de trabajo temporal.

Localización de datos intermedios y de salida

Hay dos métodos que puede utilizar para asegurarse de que los datos se escriban en la carpeta o geodatabase de trabajo temporal:

  • En ModelBuilder, haga clic con el botón derecho del ratón en cualquier variable de datos intermedios y elija Administrado.
    PrecauciónPrecaución:

    No establezca las variables de salida como administradas, sólo las variables intermedias.

  • Utilice la sustitución de variable (%scratchworkspace%) para las rutas. Por ejemplo:
    %scratchworkspace%/templines.shp %scratchworkspace%/scratch.gdb/outWatershed

También puede escribir datos intermedios en la memoria. Escribir datos en la memoria es más rápido que escribirlos en el disco. Si escribe los datos intermedios en la memoria, no es necesario que haga la variable del modelo intermedia o administrada porque los datos se eliminarán una vez que se ejecute la tarea.

Actualizar datos existentes

Cualquier tarea que actualice los datos existentes es de particular importancia. Por ejemplo, es posible que una tarea dentro de un servicio actualice una tabla o clase de entidad existente, al agregar nuevas filas o entidades (mediante la herramienta Adjuntar, por ejemplo), o al actualizar los atributos existentes (mediante la herramienta Calcular campo, por ejemplo). Si el servicio de geoprocesamiento se configura para permitir varias instancias simultáneas (usuarios) y se están ejecutando varias instancias, es posible que tenga una colisión de varias instancias que tratan de actualizar el mismo dataset. En estos casos, debe limitar la cantidad de instancias a una cuando configura el servicio. De esta forma, ArcGIS Server hará una cola de los requisitos y sólo accederá a los datos una instancia a la vez. Otro problema es el bloqueo: si está actualizando un dataset y el dataset también es una capa en un servicio de mapas, el servicio de mapas bloqueará los datos y fallará la actualización. No cree servicios de mapas que visualizan datos que se actualizan por otro servicio.

Simbolizar datos

Tiene dos opciones para dibujar los datos de salida de una tarea:

Cuando el cliente dibuja los datos de salida, se envían al cliente dos elementos de información: los datos y una descripción de dibujo de capa. La descripción de dibujo de capa contiene la información que especifica en la ficha Simbología de un cuadro de diálogo Propiedades de capa. Esta información incluye cómo agrupar datos (la simbología de capa) y qué símbolos utilizar (tipos de símbolo). Sólo ciertas simbologías de capa y tipos de símbolo son compatibles con los clientes.

Cuando un servicio de mapas de resultado dibuja los datos, se utilizan la simbología de capa y los tipos de símbolo que se encuentran en la capa de herramienta correspondiente. Cuando utiliza un servicio de mapas de resultado, puede utilizar cualquier simbología de capa y tipo de símbolo ya que ArcMap (que se ejecuta en el servidor) dibujará los datos y transportará una imagen del mapa completo de vuelta al cliente. Las capacidades del cliente no afectan cómo ArcMap dibuja el resultado.

Más información acerca de definir la simbología de salida para las tareas de geoprocesamiento

Validación

Si ya utilizó herramientas de geoprocesamiento en ArcGIS Desktop, probablemente haya visto de qué manera las herramientas de geoprocesamiento validan las entradas. Un ejemplo de validación es una lista de campos que cambian cuando cambia una tabla de entrada.

Ejemplo de validación de la herramienta

Otros ejemplos de validación incluyen advertencias (Advertencia) y errores (Error), el cambio de valores predeterminados en base a los datos de entrada y la habilitación o deshabilitación de los parámetros.

NotaNota:

No ocurre ninguna validación con las tareas de geoprocesamiento. Por ejemplo, supongamos que crea un modelo que tiene un parámetro de capa de entrada y un parámetro de campo de entrada. La lista de campos que se muestra en el parámetro de campo depende del valor del parámetro de capa. En ArcGIS Desktop, si se cambia la capa, la lista de campos cambia. Este no es el caso con una tarea:

  • La lista de campos contendrá la lista en el momento en que la publique.
  • Si el usuario de la tarea elige otra capa, la lista de campos no se actualizará.

Seguridad

Su servidor SIG representa una inversión de esfuerzo y recursos que desea proteger. ArcGIS Server contiene mecanismos de seguridad que pueden evitar que usuarios no autorizados accedan a sus servicios y aplicaciones. También puede utilizar ArcGIS Server para configurar niveles de acceso para distintos grupos dentro de su organización.

Hay dos propiedades de un servicio de geoprocesamiento que proporcionan seguridad:


3/6/2012