Documentação do Tdk

   Tutorial / Visão Geral
O objetivo deste módulo é apresentar uma visão geral do TDK, descrevendo seus principais objetivos e funcionalidades, sua arquitetura, componentes e  serviços e exemplos de casos de uso.



 
O TDK - Terralib Development Kit



O TDK é um framework para criação de aplicativos de geoprocessamento sobre o modelo de dados da Terralib. Ele possui código fonte aberto e é escrito em C++. Abaixo está uma lista de características do TDK.

Aplicações: Os aplicativos escritos com o TDK podem criar e manipular bancos de dados geográficos com grande volume de dados, podem utilizar algoritmos para processamento e cálculo estatístico de dados geográficos, e permitem navegar, visualizar, editar, consultar e interagir com mapas em alta performance.

Flexibilidade - Linguagens de Programação e Plataformas: A arquitetura do TDK fornece binding para diversas linguagens, sendo que atualmente os programadores podem escrever suas aplicações em C++ e Java. Além disso, é possível disponibilizar as aplicações em plataformas diferentes como Windows e Linux em diversos ambientes como standalone/desktop, web ou cliente/servidor.

Reuso e Extensibilidade: O TDK permite o uso isolado de seus componentes e a extensão de seus módulos para acomodar novas funcionalidades.

Acesso à Terralib: O TDK provê, para usuários que não são proficientes em programação com a TerraLib, uma API simplificada para acesso às suas funcionalidades mais comuns.  Entretanto, o TDK não inviabiliza o acesso direto à Terralib. Caso seja necessário utilizar a flexibilidade que a TerraLib fornece, é possível fazer com que a aplicação tenha acesso direto às suas funcionalidades.

Compatibilidade com OGC: Um dos requisitos do TDK é oferecer uma interface para o acesso à TerraLib compatível com os padrões publicados pelo Open GIS Consortium (OGC). Ao adotar padrões, o TDK visa facilitar a interoperabilidade entre sistemas que envolvem informação espacial e localização, e ainda permite que os programadores com experiência com o vocabulário e a arquitetura do OGC, possam utilizá-lo de forma simples no desenvolvimento de suas aplicações. Seguindo esta idéia, o TDK é compatível com o WMS, especificado pela OGC.

Desenvolvimento Colaborativo: O desenvolvimento do TDK é feito por uma equipe do TECGRAF em parceria com grupos externos. A idéia é ter um ambiente colaborativo para o desenvolvimento de Sistemas de Informação Geográfica.



A Terralib



A TerraLib é uma biblioteca para a construção de aplicativos geográficos que possui código fonte aberto e é distribuída sob a licença LGPL – Lesser GNU Public License , no site www.terralib.org.

A TerraLib é escrita na linguagem C++ padrão, podendo ser compilada nos sistemas operacionais Linux e Windows.

O objetivo do projeto TerraLib é produzir um produto, sem custo, que possa servir como base para o desenvolvimento cooperativo da comunidade de desenvolvedores de SIGs, e que ofereça ferramentas tecnológicas avançadas, muitas vezes ainda não disponíveis nas soluções proprietárias de mercado.

Por isso é uma boa alternativa para a prototipação e validação de novas técnicas resultantes da pesquisa e desenvolvimento em ciência da geoinformação, além da criação de aplicações comerciais.

A biblioteca Terralib possui um modelo de dados e um conjunto de algoritmos de análise geo-espaciais implementados. 



Módulos Funcionais do TDK
Aguarde. Em construção !!!




As funcionalidades do TDK são divididas nos seguintes módulos funcionais:

Módulo de Persistência

Módulo de Processamento

Módulo Gráfico

Módulo de Interface com o Usuário


Componentes e Serviços



Como desenvolvedores de software, nós estamos constantemente precisando criar aplicações o mais rápido e com o menor gasto possível. E, claro, estas aplicações precisam ser melhores e mais eficientes do que as anteriores. Técnicas de orientação a objeto e ambientes de software baseados em componentes estão sendo amplamente utilizados para se criar estas aplicações atendendo estes requisitos.

Seguindo esta idéia, o TDK possui sua arquitetura baseada em  componentes.

Componentes são elementos de software auto-contidos que podem ser controlados dinamicamente e montados para formar aplicações. Além disso, componentes precisam interoperar de acordo com um conjunto de regras e diretrizes. 

Os componentes podem ser estendidos para atenderem a novos requisitos e são acessados através de métodos especificados em sua interface.

Notamos, no entanto, que em muitos casos, o uso adequado de componentes requer um conhecimento grande sobre como utilizá-los, o que pode levar o programador a um aprofundamento em documentos técnicos.

Como alternativa, visando diminuir o tempo necessário para se obter proficiência na utilização do TDK, projetamos uma segunda interface de programação, com características de programação procedural, através de métodos que se comportam como funções. Esta interface oferece um conjunto de funcionalidades bem definidas, com um alto nível de abstração, escondendo a complexidade da implementação.

Os métodos oferecidos, chamados de serviços, foram agrupados segundo seu contexto semântico, de forma que as funcionalidades possam ser facilmente localizadas e acessadas diretamente. Diferente dos componentes, os serviços não podem ser estendidos.

Desta forma, o Tdk oferece duas interfaces de programação: uma API de componentes e uma uma API de Serviços.

A assinatura dos métodos da API de serviços possui tipos primitivos não sendo necessário, portanto, o conhecimento prévio sobre componentes do TDK, embora internamente os serviços os utilizam.

Além de facilitar o desenvolvimento de aplicações utilizando o TDK, como um serviço "esconde" a forma como sua funcionalidade é implementada, mudanças internas na implementação de componentes do TDK, possuem um impacto mínimo nas aplicações que utilizam os serviços do TDK. 

 

Histórico


Em 2001, o INPE e o TecGraf/PUC-Rio iniciaram o desenvolvimento da Terralib e a partir de então, várias aplicações foram sendo construídas utilizando a Terralib. Entretanto muitas das funcionalidades destas aplicações eram comuns e estavam sendo desenvolvidas de formas variadas por grupos diferentes.

Notou-se então que ao desacoplar das aplicações estas funcionalidades comuns, muitas vantagens seriam alcançadas como o reuso das funcionalidades em aplicações diferentes, o aumento da velocidade de desenvolvimento de aplicações e a simplificação do código das aplicações.

Esta idéia motivou a criação de um framework para o desenvolvimento de aplicações para a Terralib, chamado então de Terralib Development Kit (TDK), em menção a SDK (de Software Development Kit em inglês) - que é uma coleção de ferramentas usada para ajudar os programadores a desenvolverem aplicações em geral e que geralmente está focada em um domínio de aplicação específico, que neste caso é SIG de Sistema de Informação Geográfica.

SIG


Sistemas de informação geográfica (SIGs) são sistemas computacionais capazes de capturar, modelar, armazenar, recuperar, manipular, analisar e apresentar dados geográficos.

Dados geograficamente referenciados, ou simplesmente dados geográficos, são aqueles que possuem uma dimensão espacial, ou uma localização, diretamente ligada ao mundo geográfico real como as imagens de satélites de sensoriamento remoto, os dados de inventários cadastrais, os dados ambientais coletados em campo e os modelos numéricos de terreno.

Distribuição do TDK

Seguindo a idéia de um SDK, a distribuição do TDK é feita através de uma API, de Application Programming Interface em inglês, e uma documentação técnica.

Uma API ajuda ao programador desenvolver soluções utilizando um conjunto de classes e métodos que encapsulam complexidades de mais baixo nível do domínio da aplicação. 

Exemplos de Casos de Uso
Aguarde. Em construção !!! Informações do InfoPAE, SAAAP, MAPS, Frota, TerraBase, etc.






Para saber mais

  • SIG
  • OGC
  • SDK
  • API