Top Banner

of 30

14 Desenvolvimento de aplicativos com a TerraLib - dpi.inpe.br .desenvolvimento de novas ferramentas

Nov 07, 2018

ReportDownload

Documents

lamkhanh

  • 14 Desenvolvimento de aplicativos com a TerraLib

    Marcelo Tlio Monteiro de Carvalho Mrio de S Vera

    14.1 Introduo

    Este captulo descreve o TerraLib Development Kit - Tdk, cujo objetivo principal facilitar o desenvolvimento de aplicativos geogrficos que utilizem a TerraLib.

    A motivao do desenvolvimento do Tdk decorre de uma anlise dos objetivos da TerraLib. Recorde do captulo 12 que um dos principais objetivos do projeto TerraLib (www.terralib.org) oferecer suporte, atravs de uma biblioteca (modelos, estrutura de dados e algoritmos), para a pesquisa e o desenvolvimento de tecnologias inovadoras na rea da cincia da Geoinformao (ver Captulo 12). Um segundo objetivo importante estabelecer um ambiente colaborativo para o desenvolvimento de novas ferramentas e aplicativos que componham uma nova gerao de Sistemas de Informaes Geogrfica (SIGs).

    Para que este objetivo seja atingido de modo satisfatrio, precisamos tratar trs questes :

    A complexidade intrnseca do cdigo da TerraLib demanda um tempo grande de aprendizado e requer experincia de programao (ver Captulo 12).

    A TerraLib no oferecer suporte direto para o desenvolvimento de alguns componentes presentes em uma SIG bsico. Em uma viso abrangente, pode-se indicar que este tipo de aplicao deve apresentar os seguintes componentes, apesar da sua implementao poder variar para cada sistema: interface grfica-interativa com o usurio, entrada e integrao de dados, armazenamento e recuperao de dados (organizados sob a

  • 462 14 Desenvolvimento de aplicativos com a TerraLib

    forma de um banco de dados geogrficos), funes de consulta, funes de anlise espacial e visualizao e plotagem. Destes componentes, a TerraLib no oferece suporte direto para a interface grfica-interativa com o usurio e para a visualizao e plotagem.

    A possibilidade de interoperar dados com outras aplicaes. Alm de uma base de cdigo aberto, uma comunidade de desenvolvimento de software deve poder utilizar padres da indstria para troca de dados e servios.

    14.2 Motivao e estruturao de um SDK

    14.2.1 Motivao para um SDK

    Um SDK (Software Development Kit) um conjunto de ferramentas que permite o desenvolvimento de aplicativos utilizando-se funcionalidades de um software ou de uma biblioteca referente a um domnio de aplicao especfico. Um SDK justificado quando queremos oferecer as funcionalidades de uma ferramenta, criada por especialistas em um domnio especfico, para acelerar o desenvolvimento de aplicativos que dependam de funcionalidades deste domnio. Normalmente, um SDK oferece APIs (Application Programming Interfaces) ou plugin, alm de utilitrios que agilizam a programao, como ferramentas para ajudar na depurao e, documentao detalhada. Um exemplo de um SDK para SIGs so as extenses do ArcGIS da ESRI (www.esri.com/software/arcgis).

    Uma API um conjunto de definies que permitem acesso s funcionalidades e servios de um determinado software ou biblioteca. Este conjunto pode ser disponibilizado como funes de uso comum (ex. funes para desenhar janelas e cones), permitindo que programadores no precisem programar tudo do incio. Uma boa API oferece um alto nvel de abstrao escondendo detalhes da implementao.

    Um plugin um pedao de programa desenvolvido para oferecer uma funcionalidade especfica. um mini-programa, que roda embutido e utilizando a interface de um programa principal. Normalmente, os plugins possuem uma definio dos limites de suas funcionalidades Um exemplo de plugin o SVG da Adobe (www.adobe.com/svg).

  • Motivao e estruturao de um SDK 463

    De uma forma resumida, as principais vantagens de um SDK so:

    Permitir que os aplicativos possam ser desenvolvidos em menos tempo e em menos passos.

    Oferecer facilidades para construo de aplicaes sem a necessidade de muita experincia em programao.

    Oferecer suporte a vrias linguagens de programao.

    Facilitar a formao e manuteno de uma comunidade. Atravs de um SDK, a comunidade pode contribuir com sua criatividade.

    14.2.2 Estruturao de um SDK

    Para poder oferecer as vantagens citadas acima, um SDK deve ser estruturado respeitando alguns requisitos:

    Modularidade o acoplamento entre os componentes oferecidos por um SDK deve ser pequeno, para que o programador tenha liberdade para utilizar somente os componentes que ele necessite.

    Reuso os componentes de um SDK devem ser extensveis, para que o programador possa, com alguma adaptao, reutiliz-los, de acordo com as necessidades especficas da sua aplicao. Alm disto, devem poder ser utilizados em diversos contextos e realizar diferentes tarefas.

    Interface com mltiplas linguagens de programao desejvel que um SDK disponibilize APIs para mais de uma linguagem de programao. Para isto, O SDK deve ser pensado como uma especificao genrica, a partir da qual as APIs devem ser implementadas. Isto garante a compatibilidade entre as implementaes, ao mesmo tempo que mantm a independncia.

    14.2.3 O TerraLib Development Kit

    Conforme o exposto acima, fica evidente que seria desejvel a TerraLib possuir um SDK. Deste modo, iniciamos o projeto Tdk (TerraLib Development Kit), cujo objetivo principal facilitar o desenvolvimento de aplicativos geogrficos que utilizem a TerraLib.

    Para atingir este objetivo, projetamos o Tdk levando em considerao os seguintes requerimentos:

  • 464 14 Desenvolvimento de aplicativos com a TerraLib

    API Simplificada prover, para usurios que no sejam proficientes em programao com a TerraLib, uma API simplificada para acesso s suas funcionalidades mais comuns. O Tdk, no entanto, no oferece a mesma flexibilidade que o cdigo da TerraLib, de forma que deve ser permitido o acesso direto TerraLib.

    Arquitetura genrica a arquitetura do Tdk no deve depender de nenhuma tecnologia especfica (aberta ou proprietria). Idealmente o programador deve poder implementar a arquitetura proposta com a tecnologia mais apropriada ao contexto da sua aplicao (Web ou Desktop, JAVA ou C++). De uma forma simplista, a arquitetura do Tdk consiste em uma especificao de como implementar um ambiente de desenvolvimento para SIGs.

    Modelos reutilizveis e extensveis sugerir modelos funcionais que sejam teis para o desenvolvimento de SIGs (modelos para autenticao de usurios, acesso ao banco de dados atravs de mltiplas conexes, modelos para edio e impresso de mapas, entre outros). As solues propostas pelos modelos sugeridos devem poder ser usadas isoladamente e poder ser estendidas, para acomodar funcionalidades especficas da aplicao dos usurios.

    Compatibilidade com padres oferecer uma interface para o acesso TerraLib, compatvel com os padres publicados pelo Open GIS Consortium (OGC) (www.opengis.org). Isto permite que os programadores acostumados com o vocabulrio e a arquitetura do OGC, utilizem as funcionalidades do Terralib no desenvolvimento de suas aplicaes. Alm disto, para promover a interoperabilidade com aplicativos desenvolvidos com a TerraLib, o Tdk deve oferecer servios compatveis com as especificaes do OGC (como os servios WMS, WFS e WCS, de publicao de dados na Web).

    Com isto, esperamos resolver as trs questes levantadas acima e facilitar o desenvolvimento de um ambiente colaborativo para o desenvolvimento de SIGs avanados.

  • Fundamentos conceituais da arquitetura 465

    14.3 Fundamentos conceituais da arquitetura

    Desenvolvemos o Tdk como uma extenso modular da TerraLib, direcionado a oferecer suporte para a implementao de funcionalidades de aplicativos no domnio de SIG. Isto se reflete no modelo de dados utilizado, concebido a partir do modelo de dados original da TerraLib. Embora seja desenvolvido em cima da biblioteca TerraLib, o Tdk no restrinje o acesso direto s suas funcionalidades, conforme mostrado na Figura 14.1.

    Figura 14.1 O Tdk como extenso modular da TerraLib.

    A arquitetura do Tdk especifica interfaces de programao (APIs) bem definidas e sugere modelos funcionais referentes implementao de funcionalidades comuns a aplicativos grfico-interativos de SIGs. Os elementos da arquitetura so descritos a seguir.

    14.3.1 Modelo de dados Tdk

    Definimos o modelo de dados conceitual do Tdk a partir do modelo original da TerraLib (tema, layer, view, etc. Ver Captulo 12). O modelo do Tdk segue as especificaes de um composite (Gamma et al., 1995) e pode, portanto, ser estendido para acomodar novos componentes, conforme mostrado na Figura 14.2.

  • 466 14 Desenvolvimento de aplicativos com a TerraLib

    Figura 14.2 Diagrama hierrquico com o modelo de dados Tdk.

    O elemento que define um objeto Tdk (TdkObject) a raiz do modelo e pode representar trs tipos bsicos de elementos:

    Geometria Uma representao geomtrica simples (um ponto, linha, polgono, imagem, ou qualquer outra representao geomtrica).

    Objeto Simples Um objeto geogrfico composto por n geometrias em atributos.

    Coleo Um conjunto de objetos simples ou de outras colees.

    Esses elementos so organizados hierarquicamente segundo as regras de que um objeto simples agrupa um conjunto de geometrias e uma coleo agrupa objetos simples ou outras colees. Uma vez definida uma interface nica e comum a objetos e colees, torna-se possvel o tratamento uniforme entre estes elementos.

    14.3.2 Interfaces de programao

    Como concebemos o Tdk dentro do paradigma de orientao a objetos (Rumbaugh et al., 1991), a presena de componentes na arquitetura naturalmente esperada. Neste contexto, componentes so classes projetadas a partir do conceito de reuso e que so acessados atravs de

  • Fundamentos conceituais da arquitetura 467

    mtodos e operaes especificadas pela interface do componente. Os componentes devem ser extensveis. O Tdk oferece um conjunto de comp