CATASTRO

De WikI de SOMFUEAL (Alfonso Somoza de la Fuente)
Saltar a: navegación, buscar

Consumo de Servicios Web oficina virtual del catastro, Consulta del Callejero y Conversor de coordenadas.

  Servicios Web, Se trata de un mecanismo relativamente nuevo que nos permite llamadas a aplicaciones remotas a través de 
HTTP mediante el uso de protocolos y lenguajes basados en XML, es el web service es un estándar de comunicación entre 
procesos, diseñado para  trabajar en multiplataforma y multilenguaje, no importa en que lenguaje esté programado C#, Java
etc, o en que sistema operativo Linux, Windows etc, en nuestro caso el sistema será windows y el lenguaje C#.
  Existen varias formas de acceso a un Servicio Web. Nosotros nos centraremos en la clase proxy que implementa las llamadas 
mediante SOAP pero de forma transparente a nosotros. Esta clase proxy se puede generar con la utilidad en línea de comando 
WSDL.exe Su utilización produce un fichero del lenguaje que estemos utilizando .cs si es C#, que genera la clase proxy a partir
de la descripción WSDL del Servicio, compilamos el proxy.cs para generar un proxy.dll.
  Por defecto la clase se colocará en el espacio de nombres raíz por lo que no hará falta añadir el espacio de nombres con 
la directiva using, no obstante se puede indicar el namespace con la opción de WSDL.exe /n:<namespace>. Esta clase proxy ya 
se encarga de llamar a las funciones del Servicio Web haciéndolo transparente para nosotros que simplemente actuaremos con la
clase proxy como una clase local.


      [En cliente]                              [En servidor]
[Aplicación]->[Proxy DLL]<-[SOAP/HTTP]->[Servidor Web]->[Servicio Web]


     +--------------------+                         +--------------------+  
     |    [EL CLIENTE]    |                         |    [EL SERVIDOR]   |
     |                    |                         |                    |
     | +-----+    +-----+ |                         | +-----+    +-----+ |
     | |  A  |    |  P  | |                         | |  S  |    | WEB | |
     | |  P  |    |  R  | |     +-------------+     | |  E  |    |     | |     
     | |  L  |    |  O  | |     |             |     | |  R  |--->|  S  | |
     | |  I  |    |  X  | |     |             |     | |  V  |    |  E  | |
     | |  C  |--->|  Y  | |<--->| [SOAP/HTTP] |<--->| |  I  |    |  R  | |
     | |  A  |    |     | |     |             |     | |  D  |    |  V  | |
     | |  C  |    |  D  | |     |             |     | |  O  |    |  I  | |
     | |  I  |    |  L  | |     +-------------+     | |  R  |<---|  C  | |    
     | |  O  |    |  L  | |                         | |     |    |  E  | |
     | |  N  |    |     | |                         | | WEB |    |     | |
     | +-----+    +-----+ |                         | +-----+    +-----+ |      
     |                    |                         |                    |
     +--------------------+                         +--------------------+


   En nuestro caso el consumo de lo  Servicios de Web lo desarrollamos en lenguaje C# y en plataforma Windows, lo primero
que tenemos que saber donde, como  y cuales son los servicios de la Dirección General del Catastro nos ofrece, pues bien toda 
esa información la encontramos En los documentos web que se encuentra en al Oficina Virtual de este Organismo Publico 
http://www.catastro.meh.es/ayuda/lang/castellano/servicios_web.htm, El documento que he utilizado para el desarrollo de la página
es: http://www.catastro.meh.es/ws/Webservices_Libres.pdf.
  De este documento nosotros vamos a desarrollar consulta a datos no protegidos esto nos hace fijarnos en dos URLs, El
callejero de la Oficina Virtual del catastro http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx 

  Consultaprovincia Servicio de consulta de provincias.
  ConsultaMunicipio Servicio de consulta de municipios para una provincia.
  ConsultaNumero Servicio de consulta de números para una vía.
  ConsultaVia Servicio de consulta de vías para un municipio.
  Consulta_DNPPP Servicio de consulta de datos no protegidos para un inmueble por su polígono parcela.
  Consulta_DNPLOC Servicio de consulta de datos no protegidos para un inmueble por su localización.
  Consulta_DNPRC Servicio de consulta de datos no protegidos para un inmueble por su referencia catastral.
 
La segunda es Conversor de coordenadas en la URL https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx 
 
Consulta_RCCOOR Servicio de consulta de Referencia Catastral por Coordenadas.
Consulta_RCCOOR_Distancia Servicio de consulta lista de Referencias Catastrales por distancia a unas Coordenadas.
Consulta_CPMRC Servicio de consulta de coordenadas por Provincia, Municipio y Referencia Catastral.
 
En ambos casos tenemos sendos documentos WSDL escritos en XML en donde se encuentra toda la descripción del los servicios y métodos.
 
https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?WSDL 
https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?WSDL
 
Estos dos documentos son descripción formal del los métodos y servicios antes mencionados.

  El siguiente punto es obtener una fuente del proxy en este caso seria dos uno para el callejero y otro para El  conversor de 
coordenadas esto se haces descargando esto ficheros .xml con WSDL.exe que produce un fichero del lenguaje que estemos utilizando 
C# *.cs, son estos*.cs La clase proxy a partir de la descripción WSDL del Servicio, es necesario tener instalado
C:\WINDOWS\Microsoft.NET\Framework

Descargar las Clases Proxy
wsdl /l:CSharp /protocol:SOAP /out:proxyCallejero.cs https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?WSDL
wsdl /l:CSharp /protocol:SOAP /out:proxyCoordenadas.cs https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?WSDL

El resultado es proxyCallejero.cs y proxyCoordenadas.cs el nombre del ficero puede ser el que nosotroa convengamos, es muy importante 
Ver el contenido de ellos pues ya podemos ver las clases y los métodos que invocaremos, asi como las definiciones de sus parámetros.

Eje: en proxyCallejero.cs  tenemos public Callejerodelaoficinavirtualdelcatastro() { .......... Etc.
     y en proxyCoordenadas.cs public OVCCoordenadas() {... Etc.
 
Podríamos compilar estos proxy.c junto con nuestros clientes.cs escritos en C#, pero creo que es mejor crear librerias de enlace 
dinámico  proxy.dll y de esta forma nuestros clientes.exe serán más pequeños.
      
Generar .dll de la clase Proxy
csc /t:library /r:System.Web.Services.dll /r:System.Xml.dll proxyCallejero.cs
csc /t:library /r:System.Web.Services.dll /r:System.Xml.dll proxyCoordenadas.cs
  La invocación de estos servicios no devuelve un fichero en formato XML que podemos ver el modelo en la documentación que la 
dirección general del catastro pone a nuestra disposición en las URLs antes mencionadas, los clientes son muy sencillos pues una vez
compilado nuestro proxy el codigo que implementaremos es como si llamaremos a un procedimiento local en nuestra aplicación cliente.


   [Parametros]-->[PROXY]-->[RESULTADO en XML]
Página Principal
Ejemplos del Clientes en C#
Ejemplos del Clientes en PLSQL Oracle
 Editado por Alfonso Somoza de la Fuente 
 E-Mail: somfueal@gmail.com