Personal tools
You are here: Home gvSIG Projects gvSIG Desktop Documentation Developers documentation org.gvsig.fmap.dal 2.0.0 Descripción general de la arquitectura
gvSIG Desktop
gvSIG Desktop

Cached time 11/21/13 17:33:10 Clear cache and reload

 
Document Actions

Descripción general de la arquitectura

by Joaquin Jose del Cerro Murciano last modified 2010-06-04 02:32
.. include-document:: org.gvsig.fmap.dal/reference-links
   :rest:


El acceso a datos de gvSIG contiene dos grandes conjuntos de interfaces:

- El primero para los consumidores de datos o API_.

- Y el segundo, para los proveedores de datos de la librería  o SPI_.

La descripción de cada uno de esos grupos de interfaces se realizará por separado, distinguiendo en todo momento entre los servicios que se ofrecen al consumidor de datos y al proveedor de éstos.

En la arquitectura de la librería de acceso a datos, DAL, existen tres piezas fundamentales que se encuentran interrelacionadas entre sí:

* Control de recursos, Resource_. Identifica qué recursos están siendo
  usados en todo momento por los distintos proveedores de datos de la 
  librería, pudiendo solicitar que se liberen en un momento dado.
* Acceso a los servicios de un servidor de datos, DataServerExplorer_. 
  Permite determinar qué almacenes de datos hay en un servidor, así como 
  crear nuevos almacenes. Los principales tipos de servidores soportados 
  son:

  - Sistemas de ficheros en local, *FilesystemServerExplorer*.
  - Sistemas de bases de datos con soporte JDBC, *JDBCServerExplorer*.
  - Sistemas remotos basados en WMS/WCS.
  - Sistemas remotos basados en WFS/WFS-T, *WFSServerExplorer*.

* Acceso a los datos de un almacen, DataStore_. Nos permite el acceso a 
  datos de tipos como:

  - dbf/shp
  - dxf
  - GML
  - Bases de datos PostgreSQL

El API provee de una primera capa de abstracción que representa al acceso a datos independientemente de si estamos accediendo a datos tabulares, vectoriales o coberturas raster, para luego disponer de especializaciones dependiendo de si estamos accediendo a datos vectoriales o coberturas raster.

En la primera aproximación a la librería nos encontramos una serie de clases e interfaces que son independientes del tipo de datos y de su origen. Estas son:

.. figure:: /web/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0/img/Diagrama2.png
   :align: center

   Figura 2

* *DALLocator*. Se trata del locator de la librería. Nos proporciona los servicios de localización del DataManager y el ResourceManager a usar por la librería.

* *DataManager*. Se trata de la factoría que nos da acceso al API de acceso a
  datos. A partir de él podemos acceder a los *almacenes* de datos o *explorar*
  los *almacenes de datos* que nos suministra un servidor o servicio dado. Es
  el punto de entrada a todo el modelo de objetos.

* *DataStore*. Representa un almacén de datos. Un fichero shape o una tabla de 
  una base de datos, y dispone de mecanismos para acceder a sus datos, su estructura
  y tipo, así como en qué forma se pueden modificar éstos.

* *DataStoreParameters*. Representa el conjunto de parámetros que se necesitan 
  para poder acceder al almacén de datos. Por ejemplo, si estamos accediendo
  a un fichero dbf, contendrá la ruta al fichero.

* *DataSet*. Representa un conjunto de datos del almacén de datos.
  El *DataStore* contiene mecanismos para acceder a los datos, permitiendo
  aplicar filtros u órdenes a éstos, así como información contextual que 
  pueda ser útil a la hora de decidir cómo ha de realizarse de forma óptima
  la recuperación de éstos desde el almacén.

* *DataQuery*. Representa el conjunto de valores que conforman las condiciones
  en las que se basará el *DataSet* para recuperar y devolver los datos.

* *DataServerExplorer*. Nos permite obtener la lista de *almacenes* disponibles en un
  servidor o servicio dado. Así podemos pedirle que nos dé la lista de tablas
  de una base de datos o de ficheros susceptibles de ser tratados como almacenes,
  por ejemplo shapes, dbfs o dxfs, que existan en una capeta dada. A partir
  de la información que nos suministre sobre cada *almacén*, podremos crear
  el *DataStore* adecuado para acceder a sus datos.

* *DataExplorerParameters*. Representa el juego de parámetros necesario para
  poder acceder al servidor o servicio y poder consular los almacenes de datos
  que éste sirve.

Así, puede pasarle un *DataStoreParameters* al *DataManager* para obtener un *DataStore*, y a partir de éste realizar consultas contra ese almacén o modificar sus datos. Una consulta devolverá un *DataSet* y a partir de él podrá acceder a los datos. Si queremos saber qué almacenes de datos tenemos en un servidor podemos pedirle un *DataServerExplorer* al *DataManager* y éste nos informará de los almacenes de datos que hay disponibles.

A partir de esta primera capa de abstracción que provee la librería, aparecen dos
grandes especializaciones de ella:

* Por un lado aparece una especialización que nos da acceso a datos de tipo
  tabular, bien sean de tipo alfanumérico o vectorial.

* Por otro, una especialización que nos abre el acceso a datos de tipo
  coberturas raster.

En adelante describiremos cada una de estas especializaciones, primero
centrándonos en el acceso a datos tabulares y después a los raster.

También trataremos más adelante cómo llevar la gestión de los recursos usados por
la librería, ficheros, conexiones a BBDD, conexiones a servicios remotos, ...

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: