No último post, iniciamos a definição da arquitetura falando sobre banco de dados espacial e apllication server, hoje concluiremos o artigo falando sobre gerenciador de cache e clientes web e desktop.
4. Cache
Um mapa pode ter muitas camadas, e estas camadas podem ter muitas feições, o que pode ocasionar lentidão no seu WebGIS. E vamos combinar que não existe nada piorar do que navegar em um sistema que se arrasta.
Por esse motivo é aconselhável que você utilize na sua arquitetura um gerenciador de cache. No nosso caso vou sugerir o GeoWebCache (GWC), que já vem integrado com o GeoServer, e facilita muito o trabalho na criação das camadas cacheadas.
Para você ter uma ideia de como um gerenciador de cache é importante, ele pode aumentar a velocidade da sua aplicação em mais de 10x, elevando muito a performance do seu WebGIS.
Apesar da escolha pelo GWC, gostaria de mencionar outra opção open source que você pode utilizar, que é o TileCache.
5. Web Client
Chegamos a parte mais interessante do desenvolvimento, o cliente web. Aqui temos várias ferramentas que podem ser utilizadas para o desenvolvimento da aplicação. Vou sugerir algumas front-end e back-end.
No back-end eu optei por ferramentas da linguagem Java, que é a linguagem que mais tenho familiaridade, mas saiba que existem opções também em Python, PHP, Ruby, etc.
5.1 Backend
Em uma arquitetura Java, a sugestão é que você opte pelo Geotools, uma biblioteca que fornece uma abundância de funcionalidades GIS, podendo utilizar em conjunto a biblioteca JTS, que fornece uma implementação completa, consistente e robustos algoritmos espaciais em 2D.
Com essa dupla, você vai conseguir desenvolver tudo que necessita no back-end da sua aplicação.
5.2 Front-end
Para a interface com o usuário temos algumas alternativas, entre elas o OpenLayers e o Leaflet. Qualquer uma das duas que você escolher será uma boa escolha, mas a minha sugestão é o OpenLayers, que a pouco tempo foi totalmente reescrito e está totalmente renovado.
Figura 4. WebGIS desenvolvido com OpenLayers
6. Desktop Client
As opções de GIS para desktop são inúmeras, tanto as mais conhecidas (proprietárias), como as open source. Posso citar algumas como o QGIS, OpenJump, gvSIG, uDig, SPRING em que você pode optar, mas a minha sugestão é o QGIS não por ser hoje a opção mais popular entre os Desktop GIS, mas sim por possuir plug-ins para praticamente todas as funcionalidades que você necessite.
Figura 5. Tela do programa QGIS
Para concluir gostaria apenas de reforçar que independente da linguagem e da arquitetura que você escolha, o mais importante é a utilização dos padrões de interoperabilidade da OGC, que permitirá independência entre as partes, e também evitará dor de cabeças futuras, principalmente se você precisar trocar alguma das partes da arquitetura.
Quem tiver sugestões de arquitetura, ou de ferramentas open source que não foram mencionadas neste artigo, fique à vontade em contribuir através dos comentários.