jueves, 31 de diciembre de 2015

Cluster en Servidores ArcGis Server

Introducción.
Una de las características vitales de ArcGIS Server es el equilibrio de carga. ¿Cómo un servidor SIG puede asumir el control en caso de que otros están ocupados o altamente cargado es sin duda un aspecto muy importante de mantener un buen tiempo de respuesta. Cuando se realiza una solicitud para consumir un servicio SIG, el servidor Web (si dedica o construido en) mantiene los registros en el sitio Server. Estas incluyen qué servidor SIG es gratis y cuál no lo es. La decisión sobre qué servidor SIG debe recibir esta solicitud siguiente se hace en consecuencia. El servidor ejecuta entonces la solicitud de manera eficiente el uso de las herramientas de optimización que discutimos en el Capítulo 5, Optimización de Servicios SIG.

El módulo de balanceo de carga es una caja cerrada, lo que significa llegar a disfrutar de la experiencia de Servidor equilibrar las solicitudes entre los servidores SIG, pero no se puede echar un vistazo bajo el capó y configurarlo.A pesar de sus ventajas, la agrupación viene con algunas limitaciones que discutiremos también.

Clustering 
Para cualquier servicio que usted publique en ArcGIS Server, una o más instancias se iniciará en los servidores SIG para representar a ese servicio. Cada instancia toma recursos de la máquina que se está ejecutando. El número de casos en cada servidor se puede configurar al publicar el servicio. Cada servicio SIG difiere en términos de uso de la memoria y el consumo de procesamiento, y lo mismo se aplica en los servidores SIG.
Se podrían tener diferentes generaciones de servidores con diferentes especificaciones y recursos, por lo que tiene sentido tener algún tipo de ventana de distribución por el cual se puede especificar qué servicios se pueden ejecutar en los servidores. Para manejar esto de una manera eficiente, Esri se acercó con una técnica para servidores SIG grupo en grupos y luego permitir a configurar qué servicio va a la cual grupo de máquinas. La agrupación es un avanzado técnica que puede llegar a ser de utilidad si se ha configurado correctamente. 
Por ejemplo, tener algunas estaciones de trabajo no utilizados o algunas PC estándar-edición por ahí en su inventario que puede dar formato; hacerlos fresco y listo, añadir a su servidor sitio, y colocarlos en un cluster de computación de los productos básicos. A continuación, puede asignar los servicios con baja prioridad se ejecuten en este grupo y liberar a su más poderoso SIG servidores para alojar los servicios con mayor afinidad.
Dentro de un clúster, los servidores SIG necesitan comunicarse entre sí y actualizar a los demás con información vital para ayudar a en el proceso de equilibrio de carga. Esta comunicación sucede utilizando la Transmisión Control Protocol (TCP) de forma predeterminada en un puerto único. Cada grupo se le asigna una puerto dedicado, y si hay algún cortafuegos en el lugar, que el puerto en el que el SIG servidores se comunican deben abrirse o una excepción deben agregarse al firewall reglas para permitir que los servidores para interc ambiar información libremente.

Crear clusters
Antes de empezar a crear grupos, hay que determinar qué tipo de servicios GIS usted posee. Esto se hace mediante la planificación y el diseño de los servicios SIG correctamente, el análisis de su naturaleza, y predecir qué tipo de recursos se requieren, que ya lo ha hecho de nuevo en el capítulo 4, Planificación y Servicios SIG Proyectos
Una vez a identificar sus servicios SIG, puede decidir qué tipo de grupos que desea crear. Es posible que no requiere ninguna agrupación en absoluto; Sin embargo, a veces es necesario agrupar servidores SIG por parte de algunos factores. Servicios SIG se pueden agrupar por recursos y la potencia de cálculo, donde pones los servidores SIG más ingeniosos en uno clúster y sus más típicos en otro grupo.

Echa un vistazo al diagrama de red siguiente: hay dos Servidores- alta potencia SIG-SERVER01 y SIG-SERVER02 conectados directamente a la base de datos que aloja la Datos SDE-SERVER01 SIG. Otros cinco PC-SIG-PC01 al SIG-PC05-están conectados a la base de datos a través de una red Ethernet de 1 Gbps, y, finalmente, con una poderosa, nube arrendado-VPN server-GIS-REMOTE01  con un ancho de banda de 42 Mbps de Internet.


Ingrese a su Administrador de ArcGIS Server, active la pestaña Sitio, y desde la izquierda panel, haga clic en Clusters. Por defecto, siempre hay un cluster-default-que es creó al configurar su sitio Server y todas las máquinas se colocan en esta sección.


Adición de máquinas al clúster predeterminado
En primer lugar, tenemos que crear un nuevo grupo de los cinco equipos. Haga clic en Nuevo clúster, y en forma nuevo clúster, escriba Commodity Informática en el campo Nombre del clúster.
Todas las máquinas disponibles conseguir que figuran en el cuadro de Máquinas. En esto caso, es  posible que no ve ninguna máquina, y eso es bueno, puesto que ya están asignados a otro por defecto clúster. Haga clic en Crear para agregar el nuevo clúster. El nuevo clúster forma ahora se ve de la siguiente manera:

Tenga en cuenta que no hay equipos registrados en su nuevo grupo, y se espera porque no agrega ninguna máquina para este grupo todavía. Es por eso que tenemos que reorganizar las máquinas. Para hacer eso, tenemos que editar el clúster predeterminado; lo haremos mostrar cómo hacer esto por un tiempo. Nuestra forma Clusters ahora se ve de la siguiente manera:
Agrupar por recursos a Máquinas Virtuales
Ahora que todos los equipos se agregan al clúster predeterminado, necesitamos agruparlos en grupo aparte por sus recursos, como hemos comentado anteriormente. Commodity Informática representa los cinco equipos que ya están asignados al clúster predeterminado: necesitamos eliminar las máquinas del clúster predeterminado y asignarlos a las Mercancías Computadoras clúster.  
Para empezar a editar el clúster, haga clic en el icono de edición junto a la clúster predeterminado. De hecho, vamos a eliminamos todos los servidores SIG a partir de los grupos predeterminados y convertirlos en máquinas disponibles para que podamos asignar fácilmente más tarde.
Es una buena idea para poner en práctica la agrupación si tiene tres o más SIG servidores en su sitio del servidor.

En la lista Máquinas Agregado, retire todos los servidores, añadirlos a la Disponible Lista de  Máquinas, y luego haga clic en Aplicar. La página de Máquinas Editar Cluster parece como se muestra en la siguiente captura de pantalla.
Tenga en cuenta que el clúster predeterminado ya no tiene máquinas, y ahora que las máquinas son libres, podemos reasignarlos a otros grupos. Ahora aparece la página de Clusters como sigue:


 Seguir adelante y editar el grupo de productos básicos Computadoras y mover los cinco PCs d0e
la lista de máquinas disponibles a la lista Máquinas Agregado utilizando el icono de la flecha.
Haga clic en Aplicar cuando termine como se muestra en la siguiente captura de pantalla:


Por lo general, el proceso de mover servidores SIG de un grupo a otro puede tomar un
mucho tiempo, especialmente si hay servicios existentes que se ejecutan en los servidores, ya que
necesitan ser renovadas en cada clúster. Varios grupos pueden verse como se muestra en la
siguiente captura de pantalla anterior.


LimitacionesPor desgracia, la adición de más máquinas a un grupo no significa un mejor rendimiento.Sí, se puede dar el tiempo de respuesta; sin embargo, el tiempo para la ejecución de una solicitud particular, para un servicio seguirá siendo el mismo.  
Esto es así porque la solicitud se canaliza al una sola máquina (con el tiempo), y que la máquina se encarga de ir a buscar la datos necesarios de la base de datos-ya sea un par de registros o miles y exclusivamente procesarlos.
 

lunes, 12 de octubre de 2015

Construyendo aplicaciones web con ArcGis Parte 1


En esta parte, crearemos un proyecto empresarial ficticio llamado TurismoComunitario, donde se entenderá cómo diseñar y desarrollar una red de ArcGIS completamente funcional aplicación que le permite ver la base de datos de los lugares turistoicos en TurismoComunitario. Esta sección  se centrará en la creación de los conceptos básicos y los fundamentos.Vamos a leer y entender las necesidades de la misión del proyecto, el diseño de una interfaz y arquitectura, configurar el servidor Web y el desarrollo de la plantilla para nuestra aplicación web.
Primeros pasos con TurismoComunitario.
Para empezar a trabajar con esta sección, hay algunos requisitos previos:
Microsoft .NET Framework 3.5 SP1: Si está utilizando Windows 7 o superior. 
ArcGIS Desktop 10.1 medios o superiores.  
ArcGIS Server 10.1 medios instalador o superior: Esta será la sede del servicio que vamos a publicar y que con el tiempo vamos a utilizar para escribir nuestra aplicación.

El proyecto TurismoComunitario
Descripción del proyecto
La provincia de Imbabura tiene su infraestructura turística dispersa en 6 cantones (Ibarra,Antonio Ante, Urcuquí, Cotacachi, Otavalo y Pimampiro ) . Por esta razón  se está tratando de enriquecer la experiencia de los turistas en la búsqueda de referencias turosticas en la provincia con eficacia. Para lograr esto, un nuevo proyecto titulado
TurismoComunitario se ha propuesto diseñar un sitio web para ofrecer los mejores sitios turísticos de Imbabura
Propuesta de la interface.


Arquitectura de la propuesta. 
Para realizar este proyecto utilizaremos las siguientes herramientas de software.

API: Interfaz de programación de aplicaciones es un conjunto de funcionalidades que están expuestos a los desarrolladores para ampliar y personalizar particular,software; en nuestro caso, este software es ArcGIS.
Silverlight: Silverlight fue creado por Microsoft. Esta es un lenguaje estructurado que se ejecuta en el cliente, sino que requiere un plugin especial 

Flex: Flex fue creado por Adobe. Se trata de un lenguaje de programación que proporciona un contenido en la web y requiere un plugin especial para ejecutarse en un navegador.
API de ArcGIS JavaScript: Se trata de una interfaz de programación de aplicaciones expuesto como una biblioteca JavaScript que se utiliza con ArcGIS Server. Esta API se puede ejecutar en los navegadores modernos y dispositivos móviles sin necesidad de un plugin.


Ahora que hemos seleccionado nuestro lenguaje de programación, hay cuatro principales
componentes que pueden mirar en nuestro proyecto TurismoComunitario. Los componentes son
los siguientes:
• La base de datos que contiene datos de los sitios turísticos.
• ArcGIS para el sitio del servidor que se conecta a la base de datos.
• El servidor web donde reposa nuestra aplicación web y donde los clientes se conectarán a navegar por el sitio web.
• El navegador del cliente, que conectará al servidor web para recuperar el sitio web.



Vamos a explicar este diseño, desde el momento en que un usuario abre la aplicación web hasta
el momento en que se visualiza el mapa, en los siguientes pasos:
1. El usuario abre el navegador del servidor de alojamiento web, la aplicación web que estaremos escribiendo. Esto enviará una petición HTTP al servidor web.
2. El servidor web recibe la solicitud HTTP de usuario y devuelve el contenido del  sitio Web
3. Dado que el lenguaje de scripting es JavaScript, el navegador inicia la ejecución del código localmente en el lado del navegador. El código JavaScript de ArcGIS que se quiere escribir en la parte 2, Configuración de la Aplicación Web básico, va a crear un HTTP, mediante un servicio web del servidor ArcGIS Server  para TurismoComunitario .
4. ArcGIS sitio servidor recibe la petición HTTP desde el cliente, y convierte la solicitud HTTP en una Query Language (SQL) consulta estructurado para ser enviado a la base de datos.
5. La base de datos ejecuta la consulta y devuelve el resultado de ArcGIS Server.
6. ArcGIS Server envuelve los resultados en una petición HTTP y devuelve de nuevo al cliente.

Los siguientes sistemas hay que instalarlos , existe muchos manuales disponibles en internet de que ayudarán a conseguir este objetivo.
1. Instalación del software ArcGIS 
2. Instalación del  ArcGIS Server (http://gerardoalvarezc.blogspot.com/2010/02/arcgis-server-servidor-de-informacion.html)





lunes, 13 de abril de 2015

Transformar unidades geográficas usando Excel.

Con esta plantilla de Excel se pueden convertir coordenadas de formato geográfico de manera práctica y fácil.

Es común, encontrar coordenadas que están en formato grados, minutos, segundos, por ejemplo:


75 ° 25' 23.72''N       45° 59' 12''W

-78,1161 0,3592

La N significa que es una latitud 75 grados por sobre el ecuador, si tuviera una S significaría que es en el hemisferio sur.  En el caso de las longitudes, tendrán E o bien W, dependiendo si están al este o oeste del meridiano de Greenwich.


Como funciona?

  • Las columnas en amarillo, son para ingresar los datos.
  • A la derecha de cada una se ve la latitud y longitud en forma decimal, sin redondeo, con su respectivo símbolo negativo cuando corresponde.
  • La plantilla para convertir grados/minutos/segundos a decimales, tiene el mismo procedimiento.

viernes, 20 de febrero de 2015

Agregar puntos usando librería de ARCGIS

Para agregar dos puntos a un mapa usando la librería de ArcGIS, tendrá la siguiente estructura.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    <title>Create Map</title>
    <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.5/js/dojo/dijit/themes/tundra/tundra.css">
    <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.5"></script>
    <script type="text/javascript">
      dojo.require("esri.map");
      dojo.require("esri.tasks.geometry");
       

 var wgs84 = new esri.SpatialReference({ "wkid": 4326 });
 var map = null;
 var gsvc = null;

      function init() {
        map = new esri.Map("map");
        var tiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer");
        map.addLayer(tiledMapServiceLayer);
   dojo.connect(map, "onLoad", addIcons);
   
        gsvc = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
        map.on("click", doBuffer);

      }



function addIcons(){
          var geometry = new esri.geometry.Point(-78.082988, 0.1998445, wgs84);        
            symbol = new esri.symbol.PictureMarkerSymbol('http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png', 30, 30);
            var g = new esri.Graphic(geometry, symbol)              
            map.graphics.add(g);
     
            geometry = new esri.geometry.Point(-78.135, 0.3455, wgs84);
            symbol = new esri.symbol.PictureMarkerSymbol('http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png', 30, 30);
                  g = new esri.Graphic(geometry, symbol)              
                  map.graphics.add(g);  

    }

      
   
function zoomto(x,y){
map.centerAndZoom(new esri.geometry.Point(x,y, wgs84), 9)
}
      dojo.addOnLoad(init);
    </script>
  </head>
  <body class="tundra">
<input type="button" value="click primer punto" onclick="zoomto(-78.082988, 0.1998445)" />
<input type="button" value="click segundo punto" onclick="zoomto(-78.135, 0.3455)" />
    <div id="map" style="width:900px; height:600px; border:1px solid #000;"></div>  
  </body>
</html>

Resultado será:




jueves, 18 de diciembre de 2014

MongoDB o PostGIS?

¿Qué es mongoDB?
MongoDB es una base de datos NOSQL orientada  a documentos, desarrollada con código abierto.

¿Qué significa que es “NoSQL”?
Significa que en lugar de guardar los datos en tablas como se hace en las bases de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
En el gráfico se aprecia la relación de una base de datos relacional (RDBMS) tanto la escalabilidad como la velocidad se ven afectados ante un número elevado de elementos en la base de datos MongoDB.

Desde hace 7 años que fue creada ha venido implementando características para ser usada como una base para la producción de uso y con muchas características. Una de las características principales que es es un base datos con un modelo de datos diferente, ya que está “orientada a documentos” con el esquema de un JSON como almacenamiento.

JSON
¿Qué ventajas tiene la representación de nuestros datos utilizando un formato JSON?
JSON presenta un framework flexible y conciso tanto para consultas,como para almacenar registros.
La sintaxis JSON es similar a la de otras estructuras de datos utilizados en muchos lenguajes de programación y es por tanto, familiar para los desarrolladores.
JSON es independiente del lenguaje de programación que se utilice.

¿Que tipos de datos puede almacenar un JSON?
6 tipos de datos:
  • cadenas
  • números
  • textos boolenaos (verdadero/falso)
  • nulos
  • arrays
  • objetos/documentos
Estructura:
{
"id" : 5010,
"ciudad" : "Ibarra",
"distrito" : "Ciudad Blanca"
 "Zona" : "Zona 1 Norte"

}

¿Cómo se realiza una consulta en MongoDB?

Esta estructura de JSON presenta ventajas de rendimiento al hacer Joins y transacciones ya que es una operación más rápida y limpia que realizar la misma consulta en SQL.


En una base de datos NoSQL no hay consultas SQL de tipo SELECT * FROM WHERE.

Las consultas se hacen pasando objetos JSON como parámetro. Por ejemplo:


db.Clientes.find({Nombre:"David"});

La consulta anterior buscará todos los clientes cuyo nombre sea David.


MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos comandos.MongoDB se está utilizando en aplicaciones web de alto rendimiento. PostGIS se utiliza principalmente en proyectos gubernamentales o empresariales.

MongoDB destaca en la gestión de datos geoespaciales de gran volumen (big data). Es por lo tanto una solución a un problema real, la gestión de grandes volúmenes de datos. Este sistema responde también a las necesidades de escalabilidad horizontal que tienen cada vez más empresas.

En cuanto a las funcionalidades geométricas, MongoDB soporta algunas funcionalidades geométricas por lo que es una buena opción para gestionar datos geográficos sencillos. PostGIS tiene una capacidad de análisis espacial mucho más sofisticada, es un autentico sistema GIS. Por otra parte MongoDB utiliza índices B-Tree y PostGIS índices R-Tree. Un B-tree no puede ser utilizado de manera eficiente para indexar polígonos.

Por último mencionar que es algo complicado aprender a gestionar estas bases de datos NoSQL.