Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Servicios Web Geográficos

No description
by

Angelo Garzon

on 1 September 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Servicios Web Geográficos

SOA
es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. (Wikipedia)
Arquitectura SOA
Free Software
Open Source
Aunque en la practica las personas asumen que los dos términos son sinónimos, y los usan indistintamente, existen diferencias “filosóficas” entre los dos.
Open Source
evita la ambigüedad del termino “free” como sinónimo de gratis. Tal vez con el fin de hacer mas comercial el tema y no dar una idea herrada a las empresas y a los gobiernos que se trata de algo sin valor o de mala calidad. La excelencia técnica es algo prioritario.
Free Software
por otra parte enfatiza en el aspecto de moralidad y ética del software, dejando la excelencia técnica como algo deseable pero no primordial.
Fundadores
Eric S. Raymond
Bruce Perens
Open Source Iniciative (OSI)
Fundador
Richard Stallman
Free Software Foundation (FSF)
“Beethoven era un buen compositor porque utilizaba ideas nuevas en combinación con ideas antiguas. Nadie, ni siquiera Beethoven podría inventar la música desde cero. Es igual con la informática“
Estandar Abierto
Los estándares se dan a causa de la necesidad de la industria de ponerse de acuerdo en algunas característica relacionadas con la fabricación de sus producto, con el fin de facilitar la
interoperabilidad
entre los mismos.
Tanto
Open Source
como
Free Software
incluyen el código fuente. Pero no necesariamente entregar el código fuente con el software quiere decir que no tenga restricciones. Algunas compañías empezaron a vender sus programas como libres por que entregaban sus códigos fuentes pero tenían fuertes restricciones sobre el. Un termino que intenta resolver el tema es
FOSS (Free and Open Source)
Estándar abierto
es una especificación disponible públicamente para lograr una tarea específica. La especificación debe haber sido desarrollada en proceso abierto a toda la industria y también debe garantizar que cualquiera la puede usar sin necesidad de pagar regalías o rendir condiciones a ningún otro. Wikipedia
Existen dos entidades activas que trabajan en el tema de normalización en el aspecto geográfico: Una es el
Open Geospatial Consortium (OGC)
que es una agrupación de empresas, universidades, gobiernos. La otra es el
comité técnico 211 de la ISO
. La diferencia entre las dos es que OGC es un estándar abierto e ISO es de pago.
Servicios Web Geográficos
Esta es una agencia de viajes que consume servicios de diferentes proveedores como son: aerolíneas, hoteles y bancos o medios de pago. De forma que un cliente que desee hace un viaje tiene toda la información necesaria para planearlo adecuadamente con la información que ofrece la agencia, que a su vez consume servicios de las demás empresas del sector. Cada empresa expone un servicio que es consumido por la agencia de viajes, esta última, también ofrece un servicio que es usado por el cliente para construir su itinerario de viaje. Finalmente el cliente puede hacer su pago por medio de los servicios ofrecidos por los medios de pago. Todo lo anterior tiene lugar en un entorno distribuido (la web), donde el usuario final no sabe en donde se encuentran los recursos que usa.
Conceptos
Las aplicaciones han pasado de funcionar en un equipo aislado en donde se realizan todas las actividades necesarias para el uso de una aplicación, a un sistema distribuido en donde los componentes del sistema se encuentran divididos en diferentes niveles.
La arquitectura de n-layers hace referencia a una división lógica de la aplicación. Es decir que la suma de las capas corresponde a la totalidad de la aplicación.
2 Visiones
Por Roles
Pila de Protocolos
Esquematiza los servicio por medio de componentes o
actores
que desempeñan una función específica dentro del proceso de comunicación.
El
proveedor
del servicio web quien se encarga de exponer la interfaz del servicio y naturalmente de proporcionar el servicio. El
cliente
que consume el servicio web el cual abre una conexión de red por medio de la cual envía sus peticiones al proveedor del servicio. Y finalmente debe existir un registro o
directorio
centralizado en donde el proveedor realiza una
operación de publicación
de sus servicios y donde los clientes por medio de una
operación de búsqueda
puedan encontrar los servicios de su interés.
Esta pila de protocolos
se compone de 4 capas
Protocolos
Definición
Conjunto de reglas que se siguen en la celebración de determinados actos oficiales o formales, y que han sido establecidas por decreto o por costumbre
En informática
, un protocolo es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a través de una red por medio de intercambio de mensajes.
HTTP
XML
SOAP
WSDL
Hypertext Transfer Protocol
Este protocolo es la base de la comunicación en internet y por tanto de los servicios web.
El protocolo de transferencia de hipertexto es un protocolo diseñado para
intercambiar información
de múltiples tipos entre un
cliente HTTP
, como por ejemplo el navegador Mozilla; y un
servidor HTTP
como por ejemplo Apache.
Se basa en mensajes de petición y respuesta
Estructura de los mensajes HTTP
HEAD
OPTIONS
GET
DELETE
TRACE
PUT
POST
Un ejemplo
Extensible Markup Language
De forma simple se puede decir que XML es un documento usado para estructurar, almacenar y enviar información entre sistemas.
Este lenguaje de etiquetas está diseñado para describir datos
2 Estructuras
Lógica
Física
Existen dos estructuras en las que se enmarcan los documentos XML. Una estructura
física
del documento y otra
lógica.
Un documento XML
puede ser dividido
en
entidades
Una
entidad
es una unidad de almacenamiento que puede contener una gran variedad de elementos distintos
.
Estas
referencias a entidades
son comparables a accesos directos dentro de un documento.
Un documento XML está dividido en
2 grandes bloques de información
. El prologo y el cuerpo. Algunos autores agregan una tercera parte llamada epilogo.
Esta declaración indica al analizador XML (parser) que se trata de un documento XML que usa una determinada codificación.
Esta declaración llamada
“declaración tipo de documento”
que hace referencia al documento DTD
2 Tipos
Con respecto a su clasificación y según la recomendación de la W3C existen dos tipos de documentos XML. Los
documentos bien formados
y los
documentos validos
.
Valido
Bien formado
Un documento está
bien formado
cuando cumple de forma estricta con todas las reglas sintácticas para la escritura de un documento XML.
Un documento es
válido
cuando además de cumplir lo establecido para el documento bien formado también cumple con una semántica dada por un documento que la contiene. Ese documento puede ser un
DTD
o un
XML schema
.
Simple Object Access Protocol
Este es un protocolo que permite el intercambio de información estructurada en
XML
entre sistemas heterogéneos usando como medio de transporte
HTTP
. Es un mecanismo para
invocar

procedimientos remotos vía XML
.
La
heterogeneidad
del medio en donde se desarrollan los servicios web obedece a que las aplicaciones que manipulan la información se encuentran escritas en diferentes lenguajes y plataformas (Linux, Solaris, Mac, Windows, etc.). Por consiguiente si en algún momento se requiere que dos o más aplicaciones
intercambien información
, se hace necesario encontrar un
lenguaje común
que les permita dicho intercambio. Este es justamente el papel que desempeña
SOAP
dentro de esta arquitectura.
Si por
ejemplo
se tiene una aplicación desarrollada en un determinado lenguaje, especializada en realizar cálculos financieros, y se desea incorporar las funciones que realizan dichos cálculos en otra aplicación que tomara estas funciones como insumos para generar, por ejemplo, graficas estadísticas. Podría usarse RPC para esta labor ya que facilita mucho el desarrollo de aplicaciones que requieran invocar procedimientos remotos.
RPC
(Llamada a procedimientos remotos) es un protocolo que permite que una aplicación local ejecute código en una aplicación remota.
Al programa que contiene las funciones se le llama
servidor,
y al que hace uso de estas funciones se le llama
cliente.
Esta estructura de mensaje se compone de un único elemento raíz llamado
envelope
(sobre) que contiene dos sub elementos
header
(cabecera) y body (cuerpo).
La
cabecera
contiene información de control a cerca del contenido del sobre y otros elementos que no corresponden al contenido generado por la aplicación, como por ejemplo remitente y destinatario del mensaje.
En el
cuerpo
del mensaje van los datos que la aplicación que elabora el mensaje requiere enviar. Aquí va toda la información que viajara de extremo a extremo. Este elemento es obligatorio.
Web-Services Description Language
Este es un documento basado en
XML
que permite
describir
la
interfaz
de un servicio web.
Cuando se desea exponer alguna funcionalidad de una aplicación, es necesario hacerlo por medio de una interfaz. Esta
interfaz,
por medio de la cual se accede a la
lógica
de la
aplicación,
tiene ciertas características a través de las cuales debe ser accedida. Características que deberían estar contenidas en los
mensajes SOAP
para poder acceder al servicio.
Esta arquitectura permite que el mensaje SOAP sea
independiente
del servicio al que accede ya que la información
particular
de cómo acceder al servicio no está en el mensaje sino en el documento WSDL.
Estructura del documento WSDL
El documento se divide en
dos
grandes bloques de información uno que hace una
descripción abstracta
del servicio y el otro hacer una
descripción concreta
del mismo.
En la descripción
abstracta
se define la estructura general de la interfaz del servicio web. En ella se describen las operaciones, parámetros y tipos de datos, de forma abstracta. Es decir que solo se define la
estructura más no los valores
de la estructura.
Los
valores concretos
de estos elementos se encuentran en la segunda parte del documento correspondiente a la descripción concreta en donde los elementos definidos en la parte abstracta toman valores concretos.
UDDI
Universal Description Discovery and Integration
Cuando se tiene la necesidad de
encontrar
una página web se tienen en general dos alternativas. La primera de ellas es conocer exactamente la dirección en donde se encuentra el recurso y por medio de su URI acceder a él. La otra forma de hacerlo es por medio de un navegador usando un criterio de búsqueda para encontrar lo que se busca.
De la misma forma ocurre con los servicios web.
Se puede acceder al servicio web por medio de su
interfaz
si se conoce de antemano la forma de invocar el servicio, o se puede hacer por medio de una búsqueda usando
un directorio de servicios web.
Es un mecanismo de
descubrimiento
de servicios web que permite a los usuarios de servicios web encontrar los servicios de su enteres.
UDDI se vale de la información contenida en los documentos
WSDL
que describen las interfaces de los servicios web para crear con estos
un directorio
. Este directorio contiene únicamente la
información.
Es decir que
no contiene servicios
porque no es un repositorio de servicios web. Cumple una función de
registro de servicios web
.
El proyecto OGC nace a partir de las
dificultades
que los desarrolladores de Grass tenían para el
intercambio de información
geográfica.

Para dar solución a esta problemática Grass funda OGF (Open Geospatial Foundation) que poco mas de un año después se convertiría en el OGC (Open Geospatial Consortium)
El software
inicialmente se trabajaba en ambientes
académicos
en los que los desarrolladores (la misma comunidad científica) distribuían sus aplicaciones junto con su código fuente al que se le podían hacer correcciones y mejoras. Este software tenia fines científicos, y por tanto, estaba influenciado por principios científicos en los que la ciencia se fundamenta. Uno de estos principios es la
cooperación.
Inspirado por estas y otras ideas Richard Stallman empiezo a trabajar en un proyecto de desarrollo de software que luego llamaría
“Proyecto GNU”
, el propósito del proyecto consistía en la construcción de un sistema operativo que pudiera ser usado sin restricciones.
Uno de los primeros en adoptar este tipo de
licenciamiento
de software fue el sistema operativo
Linux
(su núcleo) escrito inicialmente por Linus Torvalds.
Luego de ello, hacia el año de 1998 surgiría el movimiento llamado
Open Source Initiative (OSI)
que acuñaría el termino
“Open Source”
liderado por
Eric Raymond
quien usando el enfoque de núcleo de Linux publica junto con
Netscape
el código fuente de su navegador.
OGC
esta compuesto por centenares de empresas del sector que trabajan en la elaboración de estándares tecnológicos con el fin de
generar un ambiente común para el intercambio de información geográfica
. Estos estándares pueden ser usados por cualquier persona o entidad
sin ningún costo
.
En relación con los
servicios web geográficos
el principal objetivo que se persigue
OGC
es que estos servicios se puedan ensamblar adecuadamente en entornos distribuidos con el propósito de obtener una adecuada
interoperabilidad
entre los mismos.
Dentro de
OGC
existe una comisión técnica dedicada al estudio y comportamiento del software en entornos distribuidos,
específicamente en la web
. Este grupo se llama
OWS
, el cual basa su esquema en una arquitectura orientada a servicios (SOA).
Podemos ver que en la parte inferior se encuentra la
capa 3
del modelo en donde esta almacenada toda la información geográfica (mapas, sistemas de coordenadas, imágenes, etc.). Esta información suele almacenarse en
bases de datos espaciales
como por ejemplo PostgreSQL, OracleSpatial entre otras.
En la
capa 2
se encuentran los
servicios web
geográficos de OGC que disponen la información geográfica por medio de un servicio web y que veremos en detalle enseguida.
En la
capa 3
de presentación se encuentran los
visores
por medio de los cuales se puede visualizar la información geográfica. Estos visores pueden ir desde un visor para mapas hasta completas aplicaciones para manipular esta información.
Tipos de datos geográficos
susceptibles a viajar por la red
Esta es la
información
geográfica que
viajara
de un extremo a otro a través de la
web
OGC
toma estas
tecnologías
para implementar sus estándares con el fin de aprovechar lo ya existente y de hacerlos a su vez
interoperables.
El servicio
Web Map Service
(WMS) produce mapas de datos referenciados espacialmente, de forma dinámica a partir de información geográfica. Este estándar internacional define un "mapa" como una representación de la información geográfica en forma de un archivo de
imagen
digital conveniente para la exhibición en una pantalla de ordenador. Un mapa no consiste en los propios datos. Los mapas producidos por WMS se generan normalmente en un formato de imagen como PNG, GIF o JPEG, y opcionalmente como gráficos vectoriales en formato SVG (Scalable Vector Graphics) o WebCGM (Web Computer Graphics Metafile). Wikipedia
El servicio
Web Feature Service
(WFS) es un servicio estándar, que define una interfaz de comunicación que permite interactuar con los mapas servidos por el estándar WMS, como por ejemplo,
editar
la imagen que nos ofrece el servicio WMS o analizar la imagen siguiendo criterios geográficos. Para realizar estas
operaciones
se utiliza el lenguaje
GML
que deriva de XML, que es el estándar a través del que se transmiten las órdenes WFS.
Existen dos tipos de WFS. W
FS no transaccional
que permite hacer consultas y recuperación de elementos geográficos y W
FS-T
(Web Feature Service Transactional) permite además la creación, eliminación y actualización de estos elementos geográficos del mapa. Wikipedia
El
Web Catalog Service
(CSW) define una interfaz común para el descubrimiento, búsqueda y consulta de
metadatos
relacionados a datos, servicios y recursos de tipo geográfico. Este servicio permite el acceso catálogos de metadatos
El servicio
Web Coverage Service
(WCS) define una interfaz y operaciones que permiten el acceso interoperable a
“coberturas”
geoespaciales. El término “grid de coberturas” (en inglés “grid coverages”) se refiere típicamente a contenidos del tipo imágenes de satélite, fotos aéreas digitales, datos digitales de elevación, y cualquier otro fenómeno que se pueda representar en puntos.
Geography Markup Language
(Lenguaje de Marcado Geográfico). Es un sublenguaje de
XML
descrito como una gramática en
XML Schema
para el modelaje, transporte y almacenamiento de información geográfica. GML constituye por tanto un lenguaje de modelado para sistemas geográficos, así como un
formato de intercambio
abierto para transacciones de
información geográfica
a través de Internet.
Keyhole Markup Language es un lenguaje de marcado
basado en XML
para representar datos geográficos en
tres dimensiones
.
Elementos que componen un OGC WMS
Y un servidor estuviera
Aquí
Y el otro servidor estuviera
Aquí
Y consumiera todo desde
Aquí
Servicios Web Geográficos
(Un acercamiento a su entorno)
Por: Ing. Angelo Garzón B.
angelo.garzon@igac.gov.co
Arquitectura Orientada a Servicios
Servicios Web Geográficos
Movimiento colaborativo libre
Entorno de los servicios web geográficos OGC
Para tener una comprensión integral de los servicios web geográficos es recomendable conocer tres temas muy relacionados entre si:
La arquitectura SOA que es la arquitectura sobre la cual se basan los servicios web geográficos.
Movimiento colaborativo libre el cual inspira la generación de un ambiente de interoperabilidad.
Servicios web geográficos

Operaciones OGC WMS
Un servidor es algo similar a un cajero automático. Cuando el cliente requiere algún tipo de servicio financiero, el cajero esta en capacidad de responder a sus solicitudes. Supongamos que un cajero solo soporta 3 operaciones. Retiros, transferencias y saldos. Cuando el cliente solicita cualquiera de estas operaciones el cajero responderá de forma diferente a cada una de ellas. El resultado por ejemplo de la operación retiro es la entrega de dinero, el resultado de la operación saldo será un recibo.
De forma similar el servidor WMS soporta
3 tipos
de operaciones. De estas operaciones es obligatorio que el servidor soporte dos, la tercera operación es opcional. Estas operaciones son:
GetCapabilities, GetMap y GetFeatureInfo
que es opcional.
El resultado de la operación
GetCapabilities
es un archivo
XML
con toda la información del servicio tal como metadatos del productor, metadatos del servicio
El resultado de la operación
GetMap
es un
mapa
en el formato que solicitemos dentro de la petición GIF, JPG, PNG, entre otros.
El resultado de la operación
GetFeatureInfo
es
información
a cerca de algún elemento que se encuentre dentro del mapa. Por ejemplo si se tiene un mapa con predios de catastro y requiero la cedula catastral de algún predio deberá usar esta operación.
http://geoservice.igac.gov.co/IGACwms?VERSION=1.1.1&REQUEST=
GetCapabilities
&SERVICE=wms
http://geoservice.igac.gov.co/IGACwms?VERSION=1.1.1&REQUEST=
GetMap
&SERVICE=WMS&BBOX=-81,-5,-65,14&SRS=EPSG:4326&LAYERS=departamentos&STYLES=default&WIDTH=520&HEIGHT=600&FORMAT=image/
png
http://geoservice.igac.gov.co/IGACwms?VERSION=1.1.1&REQUEST=
GetFeatureInfo
&SERVICE=WMS&BBOX=-81,-5,-65,14&SRS=EPSG:4326&LAYERS=departamentos&STYLES=default&WIDTH=520&HEIGHT=600&FORMAT=image/png&QUERY_LAYERS=departamentos&FEATURE_COUNT=1&X=300&Y=500&INFO_FORMAT=text/
html
Full transcript