1 Antonio da Luz Júnior PROPOSTA DE UM MODELO DE DISTRIBUIÇÃO DE DADOS GEOGRÁFICOS ARMAZENADOS EM SGBD SPRING ATRAVÉS DA WEB Palmas 2004 2 Antonio da Luz Júnior PROPOSTA DE UM MODELO DE DISTRIBUIÇÃO DE DADOS GEOGRÁFICOS ARMAZENADOS EM SGBD SPRING ATRAVÉS DA WEB Monografia apresentada como requisito da disciplina Prática de Sistemas de Informação II (TCC) do curso de Sistemas de Informação, orientada pelo Prof. M.Sc. Eduardo Leal. Palmas 2004 3 ANTONIO DA LUZ JÚNIOR PROPOSTA DE UM MODELO DE DISTRIBUIÇÃO DE DADOS GEOGRÁFICOS ARMAZENADOS EM SGBD SPRING ATRAVÉS DA WEB Monografia apresentada como requisito da disciplina Prática de Sistemas de Informação II (TCC) do curso de Sistemas de Informação, orientada pelo Prof. M.Sc. Eduardo Leal. BANCA EXAMINADORA _______________________________________________ Prof. Ricardo Marx Costa Soares de Jesus Centro Universitário Luterano de Palmas _______________________________________________ Prof. M.Sc. Fabiano Fagundes Centro Universitário Luterano de Palmas _______________________________________________ Prof. M.Sc. Eduardo Leal Centro Universitário Luterano de Palmas Palmas 2004 4 Lista de Figuras Figura 1: Exemplo de Tipos de Dados que devem ser suportados pelo Modelo de Dados Geográficos. .............................................................................................5 Figura 2: Modelo de Arquitetura Dual com Banco de Dados Interno. .........................7 Figura 3: Modelo de Arquitetura Dual com Banco de Dados Externo. ........................8 Figura 4: Modelo de Arquitetura Integrada. .................................................................9 Figura 5: Modelo Conceitual SPRING.......................................................................11 Figura 6: Imagem LandSat de Manaus-AM. Exemplo do Tipo de Dados Imagem, suportado pelo SPRING.....................................................................................13 Figura 7: Mapa de campo magnético, representando o Tipo de Dados Numérico Suportado pelo SPRING. ...................................................................................13 Figura 8: Mapa de Tipos de Solos. Exemplo do Tipo de Dados Temático, suportado pelo SPRING......................................................................................................14 Figura 9: O objeto “Rio Yang Tse Kiang” está associado a três mapas distintos. Exemplo de Geo-Objeto, Tipo de Dados suportado pelo SPRING. ...................14 Figura 10: Geo-Objeto “fazendas” possui ligação com o Objeto Não-Espacial “cadastro”. Exemplo de Dados Não-Espacial suportado pelo SPRING. ............15 Figura 11: Esquema Conceitual do Modelo de Representação do SPRING.............16 Figura 12: Janela de Visualização do Applet SpringWeb. .........................................18 Figura 13: Janela de Pesquisa do Applet SpringWeb. ..............................................19 Figura 14: Exemplo de uma DTD. .............................................................................20 Figura 15: Exemplo de um documento XML utilizando a DTD da Figura 14. ............20 Figura 16: Exemplo de um documento XSL para o documento XML da Figura 15...21 Figura 17: Exemplo da Iteração entre DTD/XML/XSL/HTML. ...................................21 Figura 18: Modelo de Comunicação do Protocolo SOAP..........................................24 Figura 19: Exemplo de Documento SVG.. ................................................................26 Figura 20: Imagem da Exibição do Documento apresentado na Figura 19. .............27 Figura 21: Exemplo da utilização das geometrias básicas do SVG. .........................28 Figura 22: Geometrias geradas pela Figura 21. ........................................................28 Tabela 1 – Descrição dos Parâmetros dos Comandos do elemento path.................31 Figura 23: Exemplo da utilização dos Comandos path. ............................................32 Figura 24: Gráficos gerados pelo exemplo da Figura 23..........................................33 Figura 25: Camadas do Modelo de Representação. .................................................35 5 Figura 26: Arquitetura Definida para o Modelo Proposto. .........................................38 Figura 27: Exibição do resultado da solicitação feita no passo 4. .............................47 Figura 28: Exibição do resultado da solicitação feita no passo 5. .............................48 Figura 29: Exibição do resultado da solicitação feita no passo 6. .............................49 6 Lista de Tabelas Tabela 1: Descrição dos Parâmetros dos Comandos do elemento path 31 7 Resumo Este trabalho apresenta uma Proposta para um Modelo de Distribuição de Dados Geográficos através da Web. Para que se tenha uma melhor noção das principais tecnologias envolvidas no processo de representação são fornecidas informações a respeito dessas tecnologias antes de se apresentar a proposta do trabalho. Além disso, esse trabalho contém um exemplo da utilização dessa proposta permitindo uma maior compreensão dos resultados esperados com a utilização desse Modelo de Representação. Palavras-Chave: Banco de Dados Geográfico, SIG, SPRING, Web Services, SVG. 8 Abstract This work presents a Proposal for a Model of Representation of Geographic Data through the Web. So that if it has one better notion about the main involved technologies in the representation process is supplied to information the respect of these technologies before if presenting the proposal of the work. Moreover, this work contains an example of the use of this proposal allowing a bigger understanding of the results waited with the use of this Model of Representation. Keywords: Geographic Data Base, GIS, SPRING, Web Services, SVG. 9 SUMÁRIO 1 - INTRODUÇÃO .......................................................................................................1 2. - REVISÃO BIBLIOGRÁFICA.................................................................................3 2.1 – MODELOS DE DADOS .........................................................................................3 2.1.1 - DADOS CONVENCIONAIS ..................................................................................3 2.1.2 – DADOS GEOGRÁFICOS ....................................................................................4 2.2 – SISTEMAS GERENCIADORES DE BANCOS DE DADOS GEOGRÁFICOS ......................5 2.2.1 – Sistemas de Informações Geográficas - SIG ...........................................6 2.2.1.1 – Modelos de Arquitetura......................................................................6 2.2.1.1.1 – Arquitetura Dual ..........................................................................7 2.2.1.1.2 – Arquitetura Integrada ..................................................................8 2.3 - SISTEMA PARA PROCESSAMENTO DE INFORMAÇÕES GEOGRÁFICAS - SPRING ......9 2.3.1. – Armazenamento dos Dados ..................................................................10 2.3.2. – Arquitetura do Sistema..........................................................................10 2.3.4. – Modelo Conceitual.................................................................................11 2.3.5. – Tipos de Dados Suportados ..................................................................12 2.3.6. – Modelo de Representação ....................................................................15 2.3.7. – Interação com o Usuário .......................................................................16 2.3.8. – SpringWeb ............................................................................................18 2.4. - XML (EXTENSIBLE MARKUP LANGUAGE) ..........................................................19 2.5 – W EB SERVICES ..............................................................................................22 2.5.1. - Arquiteturas Existentes ..........................................................................22 2.5.1.1 – Modelo Orientado a Mensagens......................................................23 2.5.1.2 – Modelo Orientado a Serviços...........................................................23 2.5.1.3 – Modelo Orientado a Recursos .........................................................23 2.5.1.4 – Modelo Orientado a Políticas...........................................................23 2.5.2 - SOAP ......................................................................................................24 2.5.3 - WSDL......................................................................................................25 2.6 – SVG (SCALABLE VECTOR GRAPHICS) ..............................................................25 2.6.1. – Estrutura do Documento .......................................................................26 2.6.2. – Geometrias Básicas ..............................................................................27 2.6.2.1. – Retângulo .......................................................................................29 10 2.6.2.2. – Linha ...............................................................................................29 2.6.2.3. – Polígono .........................................................................................29 2.6.2.4. – Círculo ............................................................................................30 2.6.2.5. – Elipse ..............................................................................................30 2.6.3. – Elemento Path.......................................................................................30 3 – RESULTADOS E DISCUSSÕES........................................................................34 3.1 – CONSIDERAÇÕES INICIAIS ................................................................................34 3.2. – APRESENTAÇÃO DO MODELO DE REPRESENTAÇÃO DE DADOS GEOGRÁFICOS ....34 3.3 – CAMADAS DO MODELO ....................................................................................35 3.3.1 – Aplicação Cliente....................................................................................36 3.3.2 – Web Services .........................................................................................36 3.3.3 – SGBDG SPRING....................................................................................37 3.4 – ARQUITETURA DO MODELO .............................................................................37 3.4.1 – Funcionamento da Arquitetura ...............................................................38 3.4.1.1 – Usuário ............................................................................................39 3.4.1.2 – Navegador Web...............................................................................39 3.4.1.3 – Aplicação .........................................................................................40 3.4.1.4 – Métodos ...........................................................................................40 3.4.1.4.1 – Ativar/Desativar Banco de Dados .............................................41 3.4.1.4.2 – Ativar/Desativar Projeto.............................................................41 3.4.1.4.4 – Classes necessárias à transição dos dados .............................42 3.4.1.4.5 – Buscar Categorias e Planos de Informações ............................44 3.4.1.4.6 – Exibir Mapa ...............................................................................44 3.4.1.5 – Web Services...................................................................................45 3.4.1.6 – SGBDG............................................................................................45 3.4.1.7 – Dados ..............................................................................................45 3.4.1.8 – Resultado Solicitação ......................................................................46 3.4.1.9 – SVG .................................................................................................46 3.5 – EXEMPLO DE UTILIZAÇÃO DA PROPOSTA ............................................................46 3.6 – CONSIDERAÇÕES FINAIS .................................................................................49 4 – CONCLUSÃO .....................................................................................................50 5 - BIBLIOGRAFIA ...................................................................................................51 1 1 - Introdução As tecnologias existentes (entre as quais se encontram ferramentas como Java) estão possibilitando inovações na maneira como é feito o acesso à informação geográfica. De um lado, têm-se grandes bancos de dados espaciais, com mecanismos eficientes de acesso e busca da informação. Na outra ponta, uma interface amigável permitindo a fácil navegação pelos dados, sem a necessidade de montar um banco de dados local e converter os dados de outro sistema. Devido à deficiência atualmente encontrada para se trabalhar com dados geográficos de forma compartilhada surgiu a iniciativa de desenvolver uma proposta de compartilhamento desses dados de forma a permitir a maior utilização das informações geográficas existentes em um determinado banco de dados. Evita-se com isso a necessidade da replicação desse banco para que possa ser utilizado por outra pessoa ou entidade. A idéia apresentada por CAMARA (1996) acrescentou um maior embasamento sobre a necessidade do desenvolvimento dessa proposta e permitiu a visualização de algumas funcionalidades que poderiam ser inseridas ao modelo proposto. O objetivo principal dessa proposta é auxiliar na elaboração de ferramentas para distribuição de dados geográficos. Com isso o desenvolvedor passa a ter uma visão geral do funcionamento das tecnologias e conhecer os passos que devem ser seguidos para estabelecer a comunicação entre o usuário e o gerenciador de banco de dados. Para o desenvolvimento desse trabalho inicialmente foi realizado um estudo a respeito do armazenamento dos dados geográficos e das formas existentes para possibilitar o compartilhamento de informações através da Web, para que se pudesse ter uma visão geral das tecnologias passíveis de serem utilizadas durante o decorrer do desenvolvimento da proposta. 2 Após o levantamento inicial definiu-se pela utilização do Sistema para Processamento de Informações Geográficas – SPRING, para gerenciar os dados armazenados, além da utilização de Web Services para permitir o acesso dos usuários aos dados armazenados através da Web. Para possibilitar a visualização gráfica dos dados retornados do SPRING por parte do usuário, optou-se pela utilização do padrão gráfico Scalable Vector Graphics - SVG. Inicialmente esse trabalho irá apresentar uma Revisão Bibliográfica a respeito das tecnologias a serem utilizadas no desenvolvimento da proposta. E, posteriormente, será apresentada a proposta do modelo de representação dos dados geográficos, bem como sua arquitetura e maiores explicações sobre as funcionalidades a serem implementadas nos métodos que serão disponibilizados pelo Web Services. 3 2. - Revisão Bibliográfica Este capítulo apresenta alguns conceitos básicos relativos aos Modelos de Dados, Sistemas Gerenciadores de Banco Geográficos (SGBD), Sistemas de Informações Geográficas (SIG) e demais tecnologias utilizadas para composição da proposta apresentada neste trabalho. 2.1 – Modelos de Dados Um modelo é uma abstração de alguma coisa, cujo propósito é permitir que se conheça essa coisa antes de se construí-la (RUMBAUGH, 1994). Modelo de dados é uma coleção de ferramentas conceituais para descrição dos dados, relacionamento entre os dados, semântica e restrições dos dados (SILBERSCHATZ, 1999). Conhecer os tipos de modelos de dados existentes é de fundamental importância para o desenvolvimento ou manipulação de bancos de dados, sejam eles: Relacional, Orientado a Objetos ou Pós-Relacional. Isso permite que o desenvolvedor/manipulador desses dados tenha conhecimento das operações possíveis de serem realizadas com os dados pertencentes a um determinado modelo ou ainda, saiba qual o formato dos dados que podem ser armazenados através de um modelo. 2.1.1 - Dados Convencionais Os modelos ou tipos de dados convencionais são o conjunto das formas básicas de dados existentes num ambiente computacional. Essas formas básicas são formadas por cadeias de números ou textos. São, geralmente, representados em SGBD’s através dos tipos: 4 • String: identifica uma cadeia de caracteres, formada por textos ou números; • Integer: identifica um número inteiro; • Real: identifica um número decimal. A partir desses tipos básicos de dados podem ser formados outros modelos de dados que serão utilizados para o armazenamento de dados mais complexos. Os SGBD’s, geralmente, fornecem aos usuários alguns modelos de dados que se adequam ao armazenamento de dados complexos pertencentes a domínios específicos. Além disso, o usuário pode ou não ter a possibilidade de definir seus próprios modelos de dados para que melhor se adapte ao domínio abordado de acordo com a disponibilidade do SGBD utilizado. 2.1.2 – Dados Geográficos Os Dados Geográficos, ou Espaciais, possuem características que os tornam complexos de serem representados, principalmente por terem que manter uma estrutura particular e muitos relacionamentos espaciais. Por isso esse tipo de dados não é suportado pelos modelos de dados convencionais, sendo necessária a definição de novos modelos capazes de suportar suas características. BORGES (1996) apresenta alguma das características dos Dados Geográficos dizendo que um Modelo de Dados Geográfico deve ser capaz de: a) Representar os diferentes tipos de dados: espaciais (ponto, linha, polígono), imagens (mapas, modelo digital de terreno) e dados alfanuméricos; b) Suportar relacionamentos espaciais; c) Ser independente da implementação; d) Representar a forma gráfica dos objetos. As características particulares dos Dados Geográficos são a razão pela qual se faz necessário estruturar novos tipos de dados e arquitetar novas formas de armazenamento e acesso aos dados (SILVA, 2002). Os dados espaciais são constituídos pela combinação de um ou vários conjuntos de (X,Y) ou (X,Y e Z) para representarem a localização espacial de um objeto no mundo real (LUZ, 2004). Os objetos representados por estes tipos de dados podem ser desde um poste de energia localizado na rua de uma determinada cidade (ponto), ou mesmo a 5 própria cidade dentro de um mapa cartográfico do estado no qual ela se situa (polígono), dependendo do domínio de informação ao qual pertençam. Na Figura 1 pode se observar alguns dos tipos de dados que devem ser suportados pelo modelo espacial. Para determinarmos a qual domínio os dados espaciais se referem, faz-se necessário que estes estejam conectados a metadados (LUZ, 2004), dado ou conjunto de dados que servem para descrever outros dados, surgindo a necessidade de se integrar à utilização de dados espaciais com Bancos de Dados que possuam as informações descritivas sobre os mesmos. Figura 1: Exemplo de Tipos de Dados que devem ser suportados pelo Modelo de Dados Geográficos. 2.2 – Sistemas Gerenciadores de Bancos de Dados Geográficos Os SGBD’s Geográficos herdam todas as características impostas para os SGBD’s Objeto-Relacional (extensão de tipos de dados, suporte a objetos complexos, herança, regras, dentre outras que podem ser vistas em LUZ (2004)) por se tratar de 6 uma especialização deste paradigma, ou seja, os SGBD’s Geográficos são SGBD’s Objeto-Relacional destinados ao armazenamento nativo de dados espaciais. Um SGBD Geográfico é responsável pelo armazenamento e recuperação dos dados, permitindo que os dados sejam identificados através de suas extensões e posicionamentos espaciais, além de manter a consistência. 2.2.1 – Sistemas de Informações Geográficas - SIG Os primeiros Sistemas de Informações Geográficas, SIG, não foram projetados para darem suporte a dados alfanuméricos. Foram desenvolvidos para prover análise espacial, visualização cartográfica, não dando tanta importância em oferecer recursos de banco de dados (REEVE, 2001). Os Sistemas de Informações Geográficas são uma forma comum de utilização de SGBD’s Geográficos. Consistem em aplicações que armazenam ou recuperam dados nesses SGBD’s e possuem uma ferramenta que permite a análise dos dados espaciais armazenados. A necessidade de integração de dados espaciais com dados convencionais foi uma preocupação posterior ao desenvolvimento das ferramentas SIG. A essa necessidade deve-se a existência de diferentes arquiteturas de bancos de dados geográficos. Essa integração é importante, senão fundamental, porque permite a análise conjunta de vários tipos de informações e onde elas ocorrem no espaço (SILVA, 2002). 2.2.1.1 – Modelos de Arquitetura Existem dois modelos distintos de arquitetura de SIG’s: uma denominada Dual que armazena os dados espaciais e convencionais em locais diferentes e mantêm um identificador único para cada objeto comum as duas bases; e outra, denominada Integrada, que armazena os dados de forma conjunta, utilizando para tal um sistema gerenciador próprio para manipular esse novo tipo de dados. 7 2.2.1.1.1 – Arquitetura Dual O modelo de Arquitetura Dual tenta solucionar o problema de gerenciamento de dados geográficos integrando os dados convencionais e espaciais, armazenados em bases de dados distintas, através de identificadores comuns as duas bases (LUZ, 2004). O modelo Dual apresenta duas formas possíveis de utilização da base de dados convencional: integrante da ferramenta SIG, exemplo apresentado na Figura 2, ou como uma base de dados externa a ferramenta SIG, conforme apresentado na Figura 3, conectando-se a ferramenta através de software utilizado para esse fim. SILVA (2002) diz que a utilização da segunda abordagem permite uma maior flexibilidade ao usuário, possibilitando que esse escolha a base de dados convencional a ser utilizada. A arquitetura Dual possui um ponto fraco, que é a dificuldade em garantir a integridade entre as partes geométrica e descritiva da representação do objeto geográfico (LUZ, 2004). Na maioria dos casos, existe a possibilidade de um usuário desavisado acessar o banco de dados alfanumérico e modificar algo sem que a estrutura de dados geográficos tenha conhecimento do fato (DAVIS, 2001). Figura 2: Modelo de Arquitetura Dual com Banco de Dados Interno (SILVA, 2002). 8 Figura 3: Modelo de Arquitetura Dual com Banco de Dados Externo (SILVA, 2002). 2.2.1.1.2 – Arquitetura Integrada Um outro modelo de arquitetura possível para ferramentas SIG é o modelo Integrado, que utiliza SGBD Objeto-Relacional, possibilitando a integração dos dados espaciais e alfanuméricos. Esta integração é permitida por uma característica existente nos SGBD’s Objeto-Relacionais de oferecem suporte a manipulação de dados complexos e a criação de novos tipos de dados. A Figura 4 apresenta um exemplo de utilização dessa Arquitetura. Devido a isso os dados espaciais beneficiam-se das características dos SGBD’s Convencionais, que na arquitetura Dual eram desfrutadas apenas pelos dados descritivos: integridade, segurança, backup e recuperação dos dados (LUZ, 2004). A abordagem Integrada assegura uma forte ligação entre os dados espaciais e os dados não-espaciais, reduzindo a dificuldade de se manter a integridade dos dados (SILVA, 2002), solucionando outra dificuldade apresentada pelo modelo Dual. O modelo Integrado apresenta ainda outra grande vantagem em relação ao modelo Dual: por armazenar os dados em uma mesma base, o processo de consulta fica facilitado, sendo necessário realizar um único acesso a base para retornar os dados desejados. Na arquitetura Dual, para se retornar a localização de um objeto e sua descrição eram necessários dois acessos as bases, um para a base espacial e outro para a convencional. 9 Figura 4: Modelo de Arquitetura Integrada (SILVA, 2002). 2.3 - Sistema para Processamento de Informações Geográficas - SPRING O SPRING começou a ser desenvolvido no início da década de 90, no INPE (Instituto Nacional de Pesquisas Espaciais), pelo DPI (Departamento de Processamento de Imagem) como uma proposta de atualização dos sistemas anteriormente desenvolvidos por este Instituto, SITIM/SGI. O SITIM/SGI até o presente momento tinha suprido as necessidades básicas do processamento de dados espaciais. Porém, com o surgimento de ambientes baseados em janelas esses sistemas não conseguiriam sobreviver sem que passassem por um processo de atualização. O ambiente SPRING foi proposto visando unificar o tratamento de imagens de Sensoriamento Remoto (ópticas e microondas), mapas temáticos, mapas cadastrais, redes e modelos numéricos de terreno (CÂMARA, 1996). Baseado em um modelo de dados orientado a objetos, o SPRING combina as idéias de "campos" e "objetos geográficos", atingindo grandes resultados em integração de Dados (NCGIA, 1989; GOODCHILD, 1992; COUCLELIS, 1992; WORBOYS, 1995). Na proposta de desenvolvimento do SPRING ainda estão presentes duas outras características importantes, como: • ambiente multiplataforma: permitindo a compatibilidade com as diversas versões do UNIX e MS/Windows; • interface amigável: desenvolvendo uma interface simples, como a utilizada pelo SITIM/SGI, permitindo uma fácil utilização pelos usuários. A primeira versão do SPRING, liberada para a utilização de entidades externas ao INPE, foi concluída em dezembro de 1994, já permitindo a realização de estudos ambientais importantes (ALVES, 1996). Atualmente o SPRING encontra-se em sua 4ª versão e está disponível para download em SPRINGa (2004). 10 2.3.1. – Armazenamento dos Dados O banco de dados geográfico construído pelo SPRING implementa uma arquitetura Dual onde as representações dos dados espaciais e as informações descritivas (dados não espaciais) são armazenados em ambientes diferentes (THOMÉ, 1998) e permite ao usuário optar por qual formato de arquivo utilizar para armazenar as informações. Na sua versão atual estão disponibilizados os formatos DBase, Access, Oracle e MySQL. 2.3.2. – Arquitetura do Sistema O ambiente SPRING é composto por três módulos que realizam funções específicas, porém são complementares para a composição do ambiente inicialmente proposto pelo DPI/INPE. Em THOMÉ (1998) esses módulos são descritos da seguinte maneira: 2.3.3.1. – IMPIMA Este módulo é o responsável pela conversão das imagens obtidas nos formatos BSQ, Fast Format, BIL e 1B para o formato GRIB (Gridded Binary). Estas imagens podem ser obtidas através de dispositivos CD-ROM, CCT (Computer Compatible Tapes), Streamer (60 ou 150 megabytes) e DAT (Digital Audio Tape - 4 ou 8mm) adquiridas a partir dos sensores TM/LANDSAT-5, HRV/SPOT e AVHRR/NOAA. 2.3.3.2. – SCARTA O módulo SCARTA permite a edição de cartas geográficas e gera arquivos para impressão a partir de resultados gerados no módulo principal do sistema, módulo SPRING. Esse módulo possibilita ainda a edição de textos, símbolos, legendas, linhas, quadros e grades em coordenadas planas ou geográficas. Além disso, permite a exibição de mapas em várias escalas, através do recurso WYSIWYG (What You See Is What You Get - O que você vê é o que você tem). 11 2.3.3.3. – SPRING Esse é o módulo principal do sistema e permite a entrada, manipulação e transformação de dados geográficos, executando as funções relacionadas à criação, manipulação e consulta ao banco de dados. Além disso, permite o processamento digital de imagens, modelagem numérica de terreno e análise geográfica de dados. 2.3.4. – Modelo Conceitual O SPRING utiliza o modelo de Arquitetura Dual para prover o armazenamento dos dados, porém, conceitualmente a realidade geográfica é representada por um modelo conceitual baseado do paradigma Orientado a Objetos (THOMÉ, 1998). O Modelo Conceitual do SPRING é traçado por THOMÉ (1998) e adaptado em SILVA (2002), Figura 5, após uma pesquisa efetuada através de questionário e conversas com os desenvolvedores do sistema. Figura 5: Modelo Conceitual SPRING (SILVA, 2002). 12 O Banco de Dados Geográfico é composto por Projeto ou Projetos e por Categoria ou Categorias que devem ser definidos pelo usuário. Cada Projeto possui Plano de Informação, ou Planos de Informações, pertencente a uma Categoria. Cada Categoria só pode ter um Plano de Informação (SILVA, 2002). Uma Categoria, por sua vez, pode ser especializada em Campos ou Geo-Campos, Mapa de Objetos ou Não-Espacial. Um Geo-Campo representa a distribuição espacial de uma variável que possui valores em todos os pontos pertencentes a uma região geográfica (SPRINGb, 2004) e podem ser especializados em Temático, Numérico ou Imagens. Um Mapa de Objetos armazena o objeto em conjunto com seus vizinhos mantendo as relações de topologia (SILVA, 2002). Podem ser especializados em Cadastral ou Rede. Os Objetos armazenados pelos Mapas de Objetos mantêm relação com uma Tabela de Atributos descritivos sobre eles. A Categoria do modelo Não-Espacial refere-se aos dados que não possuem representação espacial como, por exemplo, os dados de cadastros rurais e urbanos (SPRINGb, 2004). 2.3.5. – Tipos de Dados Suportados Os Dados suportados SPRING são definidos a partir de derivações e relações do Modelo Conceitual definido pelo ambiente em um dos tipos abaixo: • Imagem: − Armazenam os dados provenientes de Sensoriamento Remoto, em formato matricial. A Figura 6 apresenta um exemplo de imagem suportada por este tipo; 13 Figura 6: Imagem LandSat de Manaus-AM. Exemplo do Tipo de Dados Imagem, suportado pelo SPRING (SPRINGb, 2004). • Numérico: − Dados que possuem uma variação contínua de seus valores numéricos em função de sua posição na superfície (SPRINGb, 2004). A Figura 7 apresenta um exemplo de representação de dados suportados por este tipo; Figura 7: Mapa de campo magnético, representando o Tipo de Dados Numérico Suportado pelo SPRING (SPRINGb, 2004). 14 • Temático: − Representam a classificação de uma posição geográfica quanto a um determinado tema. A Figura 8 apresenta um exemplo de representação de dados suportado por este tipo; Figura 8: Mapa de Tipos de Solos. Exemplo do Tipo de Dados Temático, suportado pelo SPRING (SPRINGb, 2004). • Objeto: − É um elemento único que possui dados descritivos (tabela de atributos) nãoespaciais e está associado a múltiplas localizações geográficas (SPRINGb, 2004). A Figura 9 apresenta um exemplo de representação de dados suportado por este tipo; Figura 9: O objeto “Rio Yang Tse Kiang” está associado a três mapas distintos. Exemplo de Geo-Objeto, Tipo de Dados suportado pelo SPRING (SPRINGb, 2004). 15 • Cadastral: − Utilizado para representar Mapas de Objetos que contêm a representação de determinado tipo de objeto, por exemplo: Divisão política é a categoria cadastral que conterá o mapa com as representações dos municípios (SPRINGb, 2004); • Rede: − Representa os dados geográficos que possuem relações de fluxo e conexão entre os inúmeros elementos representados. Ex: rede de energia elétrica, esgoto, água, drenagem, telefonia, etc (SPRINGb, 2004); • Não-Espacial: − Engloba qualquer tipo de informação que não seja georeferenciada e que se queira agregar a um SIG. A Figura 10 apresenta um exemplo de representação de dados suportado por este tipo. Figura 10: Geo-Objeto “fazendas” possui ligação com o Objeto Não-Espacial “cadastro”. Exemplo de Dados Não-Espacial suportado pelo SPRING (SPRINGb, 2004). 2.3.6. – Modelo de Representação O SPRING possui modelo de representação gráfica para os tipos de dados vetorial e matricial (THOMÉ, 1998). A representação vetorial, do objeto espacial ou 16 campo, é implementada usando as geometrias básicas: pontos, linhas ou polígonos. A representação matricial utiliza um dos métodos de grade: regular ou triangular irregular. Figura 11: Esquema Conceitual do Modelo de Representação do SPRING. Extraído de (THOMÉ, 1998). A Classe Visual apresentada na Figura 11 representa as propriedades definidas pelo usuário para apresentação dos dados da Categoria Temático. Classes Temáticas, ou Visual, definem o modo como pontos, linhas e áreas serão apresentadas no monitor (cor, hachura, preenchimento, etc) (THOMÉ, 1998). 2.3.7. – Interação com o Usuário Para iniciar a utilização do sistema SPRING, módulo principal, o usuário deverá indicar o diretório no qual se encontra o banco de dados que deseja manipular, ou então, criar um novo banco de dados, repassando para o sistema o nome do banco e um caminho (path) onde o banco será criado. Caso o usuário deseje criar um novo banco, será criado então no caminho indicado um sub-diretório com o nome atribuído ao banco. Esse diretório corresponde fisicamente ao banco de dados do SPRING. Tudo que for criado e definido para este banco será armazenado debaixo deste diretório (THOMÉ, 1998). Depois de criar um novo banco de dados ou indicar o caminho de um banco existente, é necessário ativar o banco de dados para que possa manipular as 17 informações contidas nele. Somente um banco de dados pode estar ativo de cada vez (THOME, 1998). Após definir um banco de dados como ativo, caso seja um novo banco, é necessário definir algumas Categorias e Classes Temáticas, para que cada tipo de dado existente no Banco esteja associado a uma Categoria. Classes Temáticas são subcategorias dos dados Temáticos e definem o modo como pontos, linhas e áreas serão apresentadas na tela (cor, hachura, preenchimento, etc) (THOMÉ, 1998). Depois de definido ou criado o banco de dados com o qual se irá trabalhar, é necessário definir a área física de trabalho, ou simplesmente, um Projeto dentro do banco. Podem-se criar quantos Projetos forem necessários para cada banco de dados, mas apenas um poderá estar ativo por vez (THOMÉ, 1998). Ao criar um Projeto o usuário precisa fornecer ao sistema um nome, uma projeção e o retângulo envolvente, que corresponde à área do Projeto. Fisicamente um Projeto corresponde a um subdiretório criado dentro do diretório do Banco de Dados, e todos os dados referentes a região do Projeto serão armazenados dentro desse diretório. Após a definição do Projeto, ou Projetos, dentro do Banco de Dados, devemse definir os Planos de Informações que são pertencentes a um determinado Projeto e representam os diversos tipos de mapas(solos, estradas, etc) ou imagens, que se encontram na mesma área geográfica pertencente ao retângulo envolvente definido para o Projeto. Para se criar um Plano de Informações deve-se fornecer um nome, uma Categoria (definida anteriormente), uma escala (se for um Plano de Informação Temático, Numérico ou Cadastral) e a resolução (caso seja um Plano de Informação Numérico ou Imagem) (THOMÉ, 1998). Os dados no SPRING podem ser obtidos nos formatos vetorial ou matricial. Os dados matriciais podem ser obtidos através da edição de pontos, linhas e áreas utilizando uma mesa digitalizadora, ou conversão de arquivos de outros softwares. Para obtenção de dados matriciais pode-se utilizar leitura de imagens em formatos suportados pelo sistema, interpolação de matrizes ou, ainda, conversão de dados vetoriais. 18 2.3.8. – SpringWeb Basicamente o SpringWeb é um applet orientado para a visualização de dados geográficos. Ele é composto por uma janela principal (Janela do Mapa) e por diversas janelas auxiliares (NING, 2000). O SpringWeb permite a visualização, figura 12, e a construção de consultas, figura 13, sobre dados exportados de um Banco de Dados SPRING e convertidos para o formato aceito pelo SpringWeb. Essa conversão é oferecida pelo módulo principal do ambiente SPRING. Figura 12: Janela de Visualização do Applet SpringWeb (NING, 2000). 19 Figura 13: Janela de Pesquisa do Applet SpringWeb (NING, 2000). O SpringWeb oferece diversas funcionalidades, permitindo ao usuário manipular dados oriundos de um Banco de Dados SPRING, sem necessariamente possuir os módulos do ambiente SPRING instalados localmente. Esses dados podem ser, posteriormente, convertidos novamente para o formato do SPRING e inseridos no Banco de Dados. 2.4. - XML (Extensible Markup Language) XML (eXtensible Markup Language) é um formato padrão estabelecido pela W3C (World Wide Web Consortium) para representação de dados estruturados e semiestruturados na Web (QUEIROZ, 2002). A XML originou-se a partir da SGML (Standard Generalized Markup Language), padrão para armazenamento e intercâmbio de informações e dados em todo o mundo, adotado em 1986 (KIRK, 2000). Linguagens de marcação são linguagens que descrevem a estrutura de um documento, ou seja, como estão dispostas as informações do documento (COELHO, 2004). A XML é uma linguagem de marcação que permite ao usuário a criação de marcações próprias e fornece a descrição das estruturas de dados criadas através da DTD e Schema (formas utilizadas para descrever a estrutura de um documento 20 XML). Devido a essa característica, tem se tornado uma linguagem universalmente utilizada para resolver problemas de intercâmbios de. O documento XML é constituído de três partes distintas: • Estrutura: define como os dados estarão dispostos no documento. Não é necessária a definição de uma estrutura para a construção de um documento; • Conteúdo: documento XML propriamente dito, contém os dados que se deseja representar. Mesmo que não exista uma estrutura pré-definida para um documento, os dados contidos nele devem ser apresentados dentro de tags, marcações definidas pelo usuário, que servem para identificar o tipo/característica dos dados; • Apresentação: define a forma de apresentação do documento XML. Pode ser definida através de XSL (Extensible Stylesheet Language) ou CSS (Cascading Style Sheets) que são padrões utilizados para definir como os dados serão exibidos para o usuário através do navegador Web. <!ELEMENT empregados (empregado+)> <!ELEMENT empregado (nome+, endereço+)> <!ELEMENT nome (#PCDATA)> <!ELEMENT endereco (#PCDATA)> Figura 14: Exemplo de uma DTD. A Figura 14 apresenta uma DTD de um cadastro de empregados de uma empresa. Esse exemplo traz uma tag principal empregados que é composta por uma ou mais tags empregado, que por sua vez é formada por duas tags, nome e endereço, armazenam dados do tipo PCDATA, que representam uma cadeia de caracteres alfanuméricos. <empregados> <empregado> <nome>Maria Aparecida</nome> <endereco>Rua Terra, 13</endereco> </empregado> <empregado> <nome>Jonas Silva</nome> <endereco>Av. Afonso Pena, 1305</endereco> </empregado> <empregado> <nome>Carlos Roberto</nome> <endereco>Rua Taberna, 200</endereco> </empregado> </empregados> Figura 15: Exemplo de um documento XML utilizando a DTD da Figura 14. 21 Na Figura 15 é apresentado um trecho de um documento XML que utiliza a estrutura definida na DTD apresentada na Figura 14. Esse trecho contem os nomes e endereços dos empregados. <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40"> <xsl:template match="/"> <html> <body> <table border="1"> <tr> <td><b>Nome</b></td> <td><b>Idade</b></td> </tr> <xsl:for-each select="//empregado" order-by="nome"> <tr> <td><xsl:value-of select="nome" /></td> <td><xsl:value-of select="endereco"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Figura 16: Exemplo de um documento XSL para o documento XML da Figura 15. A Figura 16 mostra um exemplo de um documento XSL utilizado para exibição do documento XML apresentado na Figura 15. Com esse exemplo é criada uma tabela onde serão apresentados os dados existentes no documento, buscando a partir das tags empregado, ordenando os resultados pela tag nome. A Figura 17 apresenta um esquema encontrado em QUEIROZ (2002) mostrando a iteração existente entre DTD, XML, XSL e HTML. Figura 17: Exemplo da Iteração entre DTD/XML/XSL/HTML (QUEIROZ, 2002). 22 2.5 – Web Services Um Web Services é uma aplicação que é acessível por programas através de protocolos Web de uma forma independente de plataforma (KALANI, 2002). Em (SOUZA, 2003) é apresentado um maior detalhamento da descrição feita por (KALANI, 2002): a) “aplicação acessada por programas através de protocolos web”: essa proposta não é nova, ou seja, não surgiu com o Web Services. Anteriormente a essa tecnologia outras, como DCOM e CORBA já permitiam a execução de métodos remotos através das Internet; b) “independente de plataforma”: essa proposta sim, demonstra a importância da utilização de Web Services. Por utilizar a XML para comunicação entre as aplicações, Web Services permite que uma aplicação, independente de sua plataforma de desenvolvimento, consiga acessar remotamente os métodos disponibilizados por ele. Uma outra definição para Web Services é encontrada em (LINHADE CODIGOa, 2004) onde diz que: um Web Services é um conjunto de métodos WebMethods logicamente associados e chamados através de SOAP (protocolo utilizado para troca de mensagens). Os WebMethods são funções chamadas remotamente através de SOAP. Nessa definição é importante ressaltar que nem todos os métodos necessitam ser do tipo WebMethod. 2.5.1. - Arquiteturas Existentes A arquitetura de um Web Services não define como ele será implementado. Uma arquitetura de Web Services define algumas das suas características, identificando os elementos e serviços Web globais que devem ser seguidos para manter a interoperabilidade (W3Cb, 2004). Por causa da característica de interoperabilidade, Web Services podem comunicar entre si mesmo possuindo modelos de arquiteturas diferentes. Um Web Services pode ser construído de acordo com as características propostas para um dos quatro diferentes modelos de arquitetura existentes: Orientado a Mensagens, Orientado a Serviços, Orientado a Recursos ou Orientado a Políticas. 23 2.5.1.1 – Modelo Orientado a Mensagens O Modelo Orientado a Mensagens, como o próprio nome sugere, tem seu foco voltado para a transmissão de mensagens e na forma em que estas são processadas (W3Cb, 2004). Preocupa-se mais com a estrutura e a forma com que uma mensagem é transmitida do que com o seu conteúdo ou significado. Segundo (W3Cb, 2004), a essência de um Web Services baseado no modelo orientado à mensagens pode ser resumida através da ilustração de alguns conceitos-chave: o agente é quem envia e recebe mensagens, a estrutura das mensagens é formada por cabeçalho e corpo e possui um mecanismo responsável pelo envio das mensagens. 2.5.1.2 – Modelo Orientado a Serviços O Modelo Orientado a Serviços preocupa-se com os serviços e com as ações, podendo ser definido através do relacionamento entre o agente e os serviços (oferecidos ou requisitados) (W3Cb, 2004). Segundo W3Cb (2004), a essência de um Web Services baseado no modelo orientado à serviços também pode ser resumida através da ilustração de conceitoschave: um serviço é oferecido por um agente (provider) e acessado por um outro agente (requester). 2.5.1.3 – Modelo Orientado a Recursos O Modelo Orientado a Recursos preocupa-se com algumas das características principais dos recursos, tais como posse e políticas dos recursos, independentemente do papel que o recurso tem no contexto do Web Services. (W3Cb, 2004). 2.5.1.4 – Modelo Orientado a Políticas O Modelo Orientado a Políticas preocupa-se com as restrições existentes no relacionamento entre agentes e serviços (W3Cb, 2004). As Políticas também podem ser definidas para restringir as operações sobre os serviços. As políticas podem ser 24 utilizadas para representar os aspectos de segurança, de qualidade do serviço e da gerência da aplicação (W3Cb, 2004). 2.5.2 - SOAP O SOAP, Simple Object Access Protocol, é um formato de mensagens baseado em XML, usado para transmitir informações entre duas localidades ou “extremidades” (SOUZA, 2003). Cada mensagem SOAP constitui um “envelope” que pode ser formada por um cabeçalho, que é opcional e descreve informações como data de envio e identificação do remetente e por um corpo, que possui o conteúdo da mensagem propriamente dito (W3Cc, 2004). Uma mensagem SOAP é fundamentalmente utilizada como um caminho para permitir a comunicação entre dois pontos que se utilizam do Protocolo SOAP, onde um ponto envia a mensagem e o outro a recebe (W3Cc, 2004). Em SOUZA (2004) é encontrado um modelo gráfico do processo de comunicação entre aplicações utilizando o protocolo SOAP, apresentado na Figura 18. Figura 18: Modelo de Comunicação do Protocolo SOAP (SOUZA, 2004). O Processo apresentado na Figura 18, encontrado em SOUZA (2004), ocorre na seguinte seqüência de ações: • A envia solicitação a B para receber a Biblioteca de Tipos; • B envia resposta com a biblioteca de tipos; • A envia envelope com o método a ser chamado; • B executa o método e envia de volta o resultado; 25 O WSDL é um arquivo XML que descreve os métodos oferecidos pelo Web Services servindo como uma Biblioteca com os tipos e funções dos métodos oferecidos. Essa Biblioteca de Tipos será melhor apresentada na seção 2.7.3. 2.5.3 - WSDL O SOAP define um padrão chamado WSDL, Web Services Description Language, que descreve perfeitamente os objetos e métodos disponibilizados pelo Web Services, através de páginas XML acessíveis através da Web (LINHADECODIGOa, 2004). O WSDL é definido utilizando XML Schema (SOUZA, 2004) e é indispensável para que possa existir a comunicação entre as aplicações, pois é necessário que essas entendam o mecanismo de comunicação uma das outras. Esse mecanismo descreve os métodos oferecidos, os tipos de retorno e parâmetros necessários. Assim, o WSDL disponibiliza as informações necessárias para compor as solicitações e as respostas SOAP. O WSDL funciona como uma espécie de “biblioteca” do Web Services, além de ser usado para a validação das chamadas dos métodos (PEREZ, 2004). Assim, torna-se fácil para um usuário construir uma aplicação cliente que utilize as funcionalidades oferecidas (LINHADECODIGOb, 2004). O WSDL define uma gramática XML utilizada para descrever os serviços oferecidos pelo Web Services através de uma coleção de pontos finais de comunicação com capacidade de receber e executar mensagens de solicitação (W3Cd, 2004). 2.6 – SVG (Scalable Vector Graphics) Um objeto escalável, se tratando de gráficos, significa um objeto que não possui tamanho fixo ou limitado para os pixels. Esse mesmo conceito na Web se aplica a tecnologias que podem ter um grande número de usuários ou aplicações. SVG, por ser uma tecnologia de Gráficos desenvolvida para Web, está ligada aos dois significados do conceito de escalabilidade (W3Ca, 2004). SVG é uma linguagem, baseada em XML, para a criação de imagens bidimensionais onde a possibilidade de programação, controle, interação com o 26 usuário e conexão a banco de dados a tornam diferenciada de outros formatos como JPEG e GIF (COELHO, 2004). O padrão SVG ainda possui outras características apresentadas em (EISENBERG, 2003) e (COELHO, 2004) que o diferencia dos demais formatos encontrados atualmente: • a imagem pode ser redimensionada sem que se tenha perda da qualidade; • o formato texto facilita a criação e manipulação das imagens; • os conteúdos das imagens podem ser pesquisados através de ferramentas de busca, localizando palavras-chaves contidas dentro das imagens; • uma imagem SVG pode ser acrescida de linguagens de script possibilitando uma maior interação com o usuário. Essa integração com as linguagens de script em SVG ocorre de forma semelhante ao HTML. 2.6.1. – Estrutura do Documento Um documento SVG é um documento baseado no padrão XML, portanto é composto por tags, que nada mais são do que metadados para os dados contidos no documento. Na Figura 19 é apresentado um exemplo de um documento SVG, logo em seguida, na Figura 20, é apresentada a imagem produzida por este documento. <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="5cm" height="4cm" version="1.1" xmlns="http://www.w3.org/2000/svg"> <desc>Quatro Retângulos Separados</desc> <rect x="0.5cm" y="0.5cm" width="2cm" height="1cm"/> <rect x="0.5cm" y="2cm" width="1cm" height="1.5cm"/> <rect x="3cm" y="0.5cm" width="1.5cm" height="2cm"/> <rect x="3.5cm" y="3cm" width="1cm" height="0.5cm"/> <rect x=".01cm" y=".01cm" width="4.98cm" height="3.98cm" fill="none" stroke="blue" stroke-width=".02cm" /> </svg> Figura 19: Exemplo de Documento SVG. (W3Ca, 2004). 27 Figura 20: Imagem da Exibição do Documento apresentado na Figura 19. (W3Ca, 2004) O documento inicia com a indicação da versão do padrão XML utilizado, logo em seguida, é indicada a DTD utilizada para definição da estrutura do documento SVG. O início da imagem vetorial no SVG é estabelecido pela tag svg (COELHO, 2004), além disso, nessa tag são definidas a largura e altura da região do desenho dos gráficos existentes no documento e o namespace utilizado pelo documento. Os NameSpaces são nomes atribuídos a locais que possuem declarações de entidades permitindo que suas funcionalidades possam ser reutilizadas por diferentes aplicações. Abaixo da tag svg encontra-se a descrição do desenho, tag desc, e ainda, a descrição das geometrias existentes no documento. As geometrias resultantes desse documento são quatro retângulos, cercados por outro retângulo utilizado para definir a linha de contorno (última tag rect). A descrição das geometrias suportas pelo padrão SVG serão apresentadas nas seções seguintes. 2.6.2. – Geometrias Básicas As Geometrias básicas no SVG, utilizadas para a criação da maioria das imagens vetoriais são: retângulo, linha, polígono, círculo e elipse (COELHO, 2004). Esses elementos são representados pelas tags rect, line, polygon, circle, ellipse, respectivamente (W3Ca, 2004). Na Figura 21 são apresentados exemplos da utilização das geometrias básicas do SVG. Na Figura 22 são apresentados os gráficos produzidos por este documento. 28 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="12cm" height="16cm" viewBox="0 0 1200 1600" xmlns="http://www.w3.org/2000/svg" version="1.1"> <desc>Exemplo de Geometrias Básicas</desc> <rect x="400" y="10" width="400" height="200" fill="yellow" stroke="navy" strokewidth="10"/> <line x1="500" y1="280" x2="700" y2="480" stroke="navy" stroke-width="10" /> <polyline fill="none" stroke="navy" stroke-width="10" points="400,675 450,675 450,625 550,625 550,675 650,675 650,580 750,580 750,675" /> <polygon fill="yellow" stroke="navy" stroke-width="10" points="550,775 658,837.5 658,962.5 550,1030 442,962.5 442,837.5" /> <circle cx="550" cy="1200" r="100" fill="yellow" stroke="navy" stroke-width="10" /> <ellipse cx="550" cy="1450" rx="150" ry="80" fill="yellow" stroke="navy" strokewidth="10"/> </svg> Figura 21: Exemplo da utilização das geometrias básicas do SVG. Figura 22: Geometrias geradas pela Figura 21. 29 2.6.2.1. – Retângulo É definido utilizando o elemento rect. A utilização desse elemento irá criar um retângulo dentro do espaço definido para criação dos gráficos, com altura e largura de acordo com o repassado nos parâmetros width e height, alinhado de acordo com as coordenadas definidas pelos valores passados para os parâmetros x e y existentes dentro desse elemento. Pode ainda gerar retângulos com as bordas arredondadas, através da definição de valores para os parâmetros rx e ry (W3Ca, 2004). 2.6.2.2. – Linha É definida utilizando a tag line, indicando os pontos inicial e final para que se possa traçar uma reta, os pontos são definidos através dos valores repassados para os parâmetros x1 e y1 para ponto inicial, e, x2 e y2 para o ponto final (W3Ca, 2004). Além dos pontos inicial e final na tag line também é definida a largura da reta, utilizando o parâmetro stroke-width. Na Figura 28 é apresentado um exemplo de documento SVG que utiliza o elemento line. A tag g iniciada antes das tags line, indica o início de um grupo de geometrias que utilizarão um mesmo valor para uma de suas propriedades, neste caso, o valor green para a propriedade stroke, definindo a cor das linhas como verde. Além de seguimentos de retas que podem ser desenhados através do elemento line, o SVG suporta também múltiplos seguimentos de reta conectados, que podem ser desenhados utilizando o elemento polyline. Neste elemento, ao invés de se definir os pontos inicial e final para uma reta, é definido o conjunto de pontos iniciais e finais que formam as retas, através dos valores repassados para o parâmetro points. 2.6.2.3. – Polígono É definido utilizando a tag polygon. Este elemento possui os mesmos parâmetros existentes no polyline, apresentado anteriormente. A diferença entre eles é que 30 um polygon representa uma cadeia fechada de seguimentos de reta, enquanto que o outro elemento representa uma cadeia aberta (W3Ca, 2004). 2.6.2.4. – Círculo Essa geometria é definida utilizando a tag circle. Para tal devem ser passados os valores para os parâmetros cx, cy e r, que definem o ponto central e o raio que serão utilizados para composição do círculo (W3C, 2004). 2.6.2.5. – Elipse É definido utilizando a tag ellipse. Esse elemento possui parâmetros semelhantes ao elemento circle, diferenciando no tratamento do parâmetro raio, que no elemento anterior utilizava apenas um valor e agora são atribuídos dois valores, rx e ry. Assim como no elemento anterior, os parâmetros cx e cy, representam o ponto central da geometria (W3Ca, 2004). 2.6.3. – Elemento Path Um path é descrito usando o conceito de um ponto atual. Em uma analogia com desenho feito no papel, o ponto atual pode ser interpretado como a posição da caneta. A posição da caneta pode ser mudada e o desenho de uma forma (aberta ou fechada) pode ser seguido arrastando a caneta em linhas retas ou curvas (W3Ca, 2004). Para desenhar uma geometria, o elemento path utiliza os comandos moveto (indica um novo ponto atual), lineto (desenha uma linha reta), curveto (desenha uma curva usando um Bézier cúbico), arc (desenha um arco elíptico ou circular) e closepath (parte do ponto atual e traça uma linha até o último moveto), que tem seus valores definidos dentro do parâmetro d do elemento path. A Tabela 1 apresenta a descrição dos parâmetros que devem ser repassados para os comandos utilizados pelo elemento path. 31 Tabela 1 – Descrição dos Parâmetros dos Comandos do elemento path (W3Ca, 2004). Nome MoveTo LineTo ClosePath Comando Parâmetros M ou m (x y) + L ou l (x y) + H ou h x+ V ou v y+ Z ou z - C ou c (x1 y1 x2 y2 x y) + S ou s (x2 y2 x y)+ Q ou q (x1 y1 x y)+ T ou t (x y)+ Cubic Bézier Quadratic Bézier Descrição Indica o ponto a partir do qual deverá iniciar o caminho (desenho). Pode ser definido mais de um ponto, o que indica a existência de sub-caminho, a partir do primeiro ponto. Indica o ponto final para o seguimento de reta que será traçado a partir do ponto atual. Pode ser definido mais de um ponto, o que irá resultar em um conjunto de retas conectadas. Indica o valor para coordenada x do ponto final para o seguimento de reta que será traçado, tomando o valor da coordenada y do ponto atual também como valor para y do ponto final. Também pode ser definido mais de um valor, resultando em um conjunto de retas. Indica o valor para coordenada y do ponto final para o seguimento de reta que será traçado, tomando o valor da coordenada x do ponto atual também como valor para x do ponto final. Também pode ser definido mais de um valor, resultando em um conjunto de retas. Indica o final de um caminho, ou desenho. Indica o final do caminho definido pelo ponto inicial, ou um subcaminho definido a partir deste. Indica o desenho de uma curva de Bézier Cúbica a partir do ponto atual. Utiliza os valores de x1 e y1 como pontos de controle da primeira curva e x2 e y2 para a segunda curva. Os valores de x e y, finais, indicam o novo ponto atual após o desenho da curva. Pode-se ainda, definir um conjunto de curvas conectadas. Indica o desenho de uma curva de Bézier Cúbica a partir do ponto atual. Caso o comando anterior seja um comando C, c, S ou s, o primeiro ponto de controle é definido através da reflexão do segundo ponto de controle do comando anterior. Caso contrário, o primeiro ponto de controle é assumido como sendo o próprio ponto atual. Os parâmetros x2 e y2 indicam o segundo ponto de controle. Os parâmetros x e y indicam o novo ponto atual após o desenho da curva. Pode ser definido um conjunto de comandos S ou s. Indica o desenho de uma curva de Bézier Quadrática partindo do ponto atual e utilizando os valores de x1 e y1 como ponto central da curva. Os valores de x e y são para definir o novo ponto atual. Pode ser definido um conjunto de curvas conectadas. Indica o desenho de uma curva de Bézier Quadrática a partir do ponto atual. Caso o comando anterior seja um comando Q, q, T ou t, o ponto de controle é definido através da reflexão do ponto de controle do comando anterior. Caso contrário, o ponto de controle é assumido como sendo o próprio ponto atual. Os parâmetros x e y indicam o novo ponto atual após o desenho da curva. Pode ser definido um conjunto de comandos T ou t. 32 Elliptical arc A ou a (rx ry x-axisrotation largearc-flag sweepflag x y) + Indica o desenho de um arco eliptico a partir do ponto atual. O tamanho do arco é definido pelos parâmetros rx e ry, que indicam os seus raios, e pelo parâmetro xaxis-rotation, que indica o valor da rotação do arco em relação ao eixo x. Os pontos centrais da elipse são calculados automaticamente utilizando os valores repassados nos parâmetros large-arc-flag e sweep-flag, que além disso, servem para determinar como o arco será desenhado. Os comandos do elemento path podem utilizar coordenadas absolutas (comandos com letras maiúsculas) ou coordenadas relativas (comandos com letras minúsculas). Os comandos com coordenadas absolutas utilizam como referência o ponto (0,0) para definirem o local do ponto passado por parâmetro. Enquanto que os comandos com coordenadas relativas utilizam o último ponto atual como referência para identificar o local do ponto passado por parâmetro (ALTOQI, 2004). Na Figura 23 é apresentado um documento com exemplos da utilização dos comandos path apresentados na Tabela 1. Na Figura 24, são apresentados os gráficos produzidos por este documento. <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="8cm" height="12cm" viewBox="0 0 800 1200" xmlns="http://www.w3.org/2000/svg" version="1.1"> <desc>Exemplo de utilização do Elemento path</desc> <path d="M 100 30 L 100 230 M 200 230 H 350 M 450 30 V 230 z" stroke="navy" strokewidth="10"/> <path d="M 100,400 C 125,300 225,300 250,400 S 375,500 400,400" fill="none" stroke="navy" stroke-width="10"/> <path d="M 100,700 Q 200,550 300,700 T 500,700" fill="none" stroke="navy" strokewidth="10"/> <path d="M 100,1100 a 25,25 -30 0,1 50,-25 l 50,-25 a 25,50 -30 0,1 50,-25 l 50,-25 a 25,75 -30 0,1 50,-25 l 50,-25 a 25,100 -30 0,1 50,-25 l 50,-25" fill="none" stroke="navy" strokewidth="10"/> </svg> Figura 23: Exemplo da utilização dos Comandos path. 33 Figura 24: Gráficos gerados pelo exemplo da Figura 23. 34 3 – Resultados e Discussões 3.1 – Considerações Iniciais Neste Capítulo será apresentada a proposta de modelo de representação de dados geográficos através da Web. Além da proposta, será apresentado um esquema gráfico da Arquitetura do Modelo, para que se possa ter uma visão geral do modelo de representação, bem como identificar os relacionamentos existentes entre as partes, ou camadas, que compõem esse modelo. Ainda nesse Capítulo as camadas definidas para o modelo serão detalhadas, possibilitando uma maior compreensão do funcionamento interno da proposta e auxiliando no processo de definição da melhor estratégia a ser utilizada na fase de implementação. 3.2. – Apresentação do Modelo de Representação de Dados Geográficos A motivação do presente trabalho é propor um modelo para que usuários possam acessar e visualizar dados geográficos remotamente e também que este modelo de representação de dados sirva de base para que usuários/desenvolvedores possam aperfeiçoar, ou mesmo criar novas aplicações para os SGBD’s Geográficos. Objetivando uma maior utilização desta proposta, o modelo apresentado, devido às tecnologias utilizadas, tem condições de trabalhar de forma independente da plataforma de desenvolvimento. A única exceção a este fato é a proposta de utilização do ambiente SPRING como SGBD Geográfico, mas mesmo esse ambiente pode ser substituído por outro, seguindo a arquitetura que será apresentada nas próximas seções, obtendo resultado final semelhante. Para possibilitar o acesso e consulta remota aos dados esse trabalho propõe a utilização das tecnologias: SGBDG SPRING para permitir o armazenamento e 35 acesso aos dados, atuando no lado servidor; aplicação com tecnologia de Web Services, para permitir a comunicação entre cliente/servidor; formato SVG para representação dos dados geográficos resultantes das solicitações feitas pelo usuário (cliente); aplicação cliente em ambiente Web, podendo ser acessada de qualquer máquina onde se tenha acesso à Internet e um navegador web. Nas próximas seções será apresentada a arquitetura definida para esta proposta, além de um detalhamento das camadas componentes do modelo de representação, permitindo uma maior compreensão sobre a proposta como um todo. 3.3 – Camadas do Modelo Nesta seção serão apresentadas as camadas propostas para o modelo de representação de dados geográficos através da Web, identificando sua importância e funcionalidades, durante o processo de comunicação entre cliente/servidor e acesso/representação dos dados. A Figura 25 apresenta as camadas necessárias para o desenvolvimento do modelo de representação e o fluxo de comunicação existente entre elas. Figura 25: Camadas do Modelo de Representação. 36 3.3.1 – Aplicação Cliente A camada de Aplicação Cliente é a responsável pela interação direta com o usuário. Na prática, será uma aplicação desenvolvida para trabalhar em ambiente Web que deve possibilitar ao usuário enviar solicitações de acesso e consulta aos dados geográficos armazenados remotamente, através dos métodos disponibilizados pela camada de Web Services, que será apresentada na próxima seção. Além disso, essa camada realiza a conversão dos dados recebidos como respostas das solicitações feitas pelo usuário, formato XML, para o formato SVG, formato proposto para realizar a representação dos dados, possibilitando que os resultados das solicitações sejam exibidos para o usuário. Esta camada ainda pode ser acrescida de outras funcionalidades, como: ferramenta de zoom durante a exibição dos dados; salvar o resultado das solicitações; conversão do resultado para outros formatos; e assim por diante. Devese ressaltar, que o foco principal deste trabalho é propor um modelo de representação, portanto, não serão abordados o projeto/desenvolvimento de outras funcionalidades. 3.3.2 – Web Services A camada de Web Services serve como ponte de ligação entre a camada de Aplicação Cliente e a camada de SGBDG SPRING. Esta camada desenvolvida utilizando a tecnologia de Web Services, apresentada em seções anteriores, disponibiliza alguns métodos para que a camada de Aplicação Cliente tenha acesso aos dados armazenados na camada de SGBDG SPRING. Além disso, tem papel crucial para a independência de plataforma, devido a algumas características próprias desta tecnologia. Alguns dos métodos que devem ser disponibilizados pela camada de Web Services para que o usuário possa realizar as tarefas propostas por esse modelo são apresentados nas próximas seções. 37 3.3.3 – SGBDG SPRING Esta camada é responsável pelo armazenamento e gerenciamento dos dados geográficos. Além disso, nesta camada são executadas as solicitações repassadas pela camada de Aplicação Cliente através dos métodos disponibilizados na camada de Web Services. Os resultados das execuções realizadas por esta camada são retornados para a camada de Web Services que os encaminha para a camada de Aplicação Cliente no formato XML. Esta camada do modelo não tem a necessidade de ser implementada, por utilizar o SGBDG SPRING para realizar suas funções. Porém, para que esta proposta possa ser implementada é necessário que ocorram algumas modificações na versão atual do SGBDG SPRING, versão 4.1, para possibilitar o acesso aos dados a partir de aplicações externas ao SPRING. Na versão atual ainda não existe nenhuma maneira de realizar esta operação de forma direta. 3.4 – Arquitetura do Modelo Na Figura 26 é apresentada a arquitetura definida para o modelo proposto neste trabalho. Com a observação dessa Arquitetura pode-se ter uma maior compreensão sobre o modelo de representação como um todo, identificando as entidades envolvidas no processo de consulta/representação dos dados e dos relacionamentos existentes entre essas entidades. 38 Figura 26: Arquitetura Definida para o Modelo Proposto. As camadas existentes no Modelo são representadas na Arquitetura (Figura 26) por uma área de preenchimento cinza e identificadas por números dentro de círculos, localizados no canto inferior direito de cada área. Cada número identifica uma Camada distinta, conforme a seguinte descrição: 1 – Camada de Aplicação Cliente; 2 – Camada de Web Services; 3 – Camada de SGBDG SPRING. 3.4.1 – Funcionamento da Arquitetura Seguindo as setas indicativas existentes na Arquitetura, Figura 47, pode-se identificar a seqüência de passos necessários para o funcionamento do Modelo, desde a execução das solicitações efetuadas pelo usuário até a visualização do resultado final: • Usuário acessa a Aplicação através do Navegador Web e faz uma solicitação qualquer; 39 • A aplicação Cliente, por sua vez, é a responsável por acessar os métodos disponibilizados pelo Web Services; • Através dos métodos acessados pela aplicação Cliente o Web Services se conecta e envia a solicitação ao SGBDG; • O SGBDG recebe e executa a solicitação repassada. Para realizar a tarefa de execução o SGBDG acessa e consulta os dados que ele gerencia; • Após executar a solicitação o SPRING retorna o resultado (conjunto de dados) para o método do Web Services que repassou a solicitação; • O método responsável pela solicitação retorna o resultado (conjunto de dados) para a aplicação Cliente, em formato XML; • A aplicação Cliente ao receber o resultado da solicitação, converte os dados para o formato SVG, permitindo que sejam visualizados pelo navegador Web; • Após a conversão dos dados o navegador Web exibe o resultado para que o usuário possa visualizá-lo. As subseções a seguir identificarão a funcionalidade de cada uma das entidades representadas na Arquitetura definida para o Modelo desta proposta. 3.4.1.1 – Usuário É a única entidade apresentada na Arquitetura que não está presente em nenhuma das camadas do Modelo, por representar o próprio usuário que estará utilizando a aplicação. Esta entidade possui relacionamentos diretos com as entidades Navegador Web e SVG, que serão apresentadas mais à frente. Esses relacionamentos permitem que o usuário acesse e efetue solicitações para a Aplicação, além de visualizar os resultados dessas solicitações que serão exibidos pelo navegador. 3.4.1.2 – Navegador Web Esta entidade pertence à camada de Aplicação Cliente. Tem por objetivo principal prover o ambiente de trabalho para a entidade Aplicação executar suas tarefas. O Navegador Web é responsável por fazer a ponte de ligação entre o usuário e a aplicação, no instante do repasse das solicitações do usuário. Além disso, após 40 a aplicação converter o resultado da solicitação para SVG, é o Navegador Web que exibe esse resultado para o usuário poder visualizá-lo. Importante ressaltar que para exibir esse resultado é necessário que seja instalado um Plug-in para SVG no navegador. 3.4.1.3 – Aplicação Esta entidade, a exemplo do Navegador Web, pertence a camada de Aplicação Cliente, apresentada em seções anteriores. Na Arquitetura essa entidade aparece dentro da entidade Navegador Web por necessitar do ambiente propiciado pelo navegador para poder executar suas tarefas. A entidade Aplicação tem como finalidade acessar e repassar para os métodos existentes na camada de Web Services as solicitações efetuadas pelo usuário. Além disso, essa entidade é responsável por receber os resultados dessas solicitações em formato XML e convertê-los para o formato gráfico SVG. 3.4.1.4 – Métodos Esta entidade, pertencente a camada de Web Services, representa os métodos disponibilizados pela entidade Web Services. Esses métodos são os responsáveis diretos por permitir que o usuário acesse e realize solicitações de consulta sobre os dados gerenciados pela camada de SGBDG SPRING. Algumas das funcionalidades que devem ser oferecidas pelos métodos que serão disponibilizados para que o usuário tenha acesso às informações armazenadas serão descritos nas próximas subseções. Porém, deve-se ressaltar que estas funcionalidades se aplicam para acesso aos dados armazenados em SGBDG SPRING, caso deseje-se seguir a Arquitetura apresentada na Figura 47 para acessar dados armazenados em outros SGBDG’s deve-se analisar a forma como esses gerenciadores realizam o armazenamento e recuperação das informações para definir as funcionalidades ou métodos que necessitam serem implementados. 41 3.4.1.4.1 – Ativar/Desativar Banco de Dados Responsável por ativar ou desativar um Banco de Dados existente no SGBDG SPRING e deixá-lo em estado apto para receber as solicitações do usuário. Importante lembrar que devido ao modelo de armazenamento adotado pelo SPRING é necessário que o usuário possua permissão para acesso às tabelas que armazenam os dados, caso deseje acessar um banco de dados do tipo Oracle. Para a implementação dessas duas funcionalidades, são sugeridas as seguintes assinaturas para os métodos a serem disponibilizados: • public int abrirBanco(String nomeBanco, String nomeGerenciador); o A função desse método é criar uma conexão com o Banco de Dados, tornado-o ativo e disponível para ser acessado. Recebe como parâmetro o nome do Banco que deve receber a conexão e o nome do gerenciador utilizado para criar o Banco, já que o SPRING trabalha com tipos de gerenciadores diferentes. O método retorna o valor 1 (um) no caso de abertura com sucesso e 0 (zero) no caso de ocorrência de alguma falha durante o processo. • public int fecharBanco(String nomeBanco); o A função desse método é encerrar uma conexão com o Banco de Dados iniciada pelo método anterior. Recebe por parâmetro apenas o nome do banco que possui uma conexão aberta. O retorno do método tem valor 1 (um) em caso de fechamento com sucesso e 0 (zero) em caso de ocorrência de alguma falha durante o processo. 3.4.1.4.2 – Ativar/Desativar Projeto Responsável por Ativar e Desativar um Projeto existente para a Base de Dados Ativa. O Projeto é o responsável por definir os limites geográficos da área que pode ser acessada pelo usuário. A seguir são apresentados exemplos de assinaturas que podem ser utilizadas para a implementação dessas funcionalidades: 42 • public int abrirProjeto(String nomeProjeto); o É importante ressaltar que para que esse método seja executado o Banco de Dados ao qual o Projeto passado por parâmetro se refere deve estar ativo. A função desse método é abrir um Projeto para que possa ser utilizado pelo usuário, recebendo por parâmetro o nome do projeto. O método retorna o valor 1 (um) caso consiga abrir com sucesso e 0 (zero) caso falha na abertura do Projeto. • public int fecharProjeto(String nomeProjeto); o Esse método tem por objetivo fechar um Projeto ativo permitindo que o usuário possa abrir outro Projeto definido para o mesmo Banco de Dados. Recebe como parâmetro o nome do projeto a ser fechado. O método retorna o valor 1 (um) no caso de fechar com sucesso e 0 (zero) caso ocorra alguma falha. 3.4.1.4.4 – Classes necessárias à transição dos dados Devido às características do modelo de armazenamento do SPRING, para a implementação das próximas funcionalidades é necessário que se construa classes para poderem receber as informações relativas as Categorias e Planos de Informações pertencentes ao Projeto ativo e repassar Representações que o usuário deseja visualizar. Essas Classes podem ser estruturadas da seguinte forma: • public class Categoria{ String nome; String tipo; Vector planoInformacao; public void Categoria(String nome, String tipo){ this.nome = nome; this.tipo = tipo; } ao SGBDG as 43 public Vector GetRepresentacao(String tipo){ //Colocar condicionais para retornar o conjunto de Representações de acordo com o tipo de Categoria, as Representações possíveis são definidas pelo SGBDG SPRING e podem ser encontradas em (SPRINGb, 2004); } } • public class PlanoInformacao{ String nome; Vector representacao; public void PlanoInformacao(String nome, Vector representacao){ this.nome = nome; this.representacao = representacao; } } A classe Categoria possui os atributos nome (armazena o nome da Categoria) e tipo (armazena o tipo da Categoria) que são do tipo String e planoInformacao (armazena um vetor com objetos PlanoInformacao) que é do tipo Vector. Além desses atributos, essa classe ainda possui um Método Construtor que define os valores para os atributos nome e tipo e um método GetRepresentacao que será o responsável por gerar um vetor contendo as representações possíveis para os Planos de Informações pertencentes a essa Categoria. Esse método receberá por parâmetro o tipo da Categoria e já terá os conjuntos de Representações possíveis pré-definidos dentro de sua estrutura. A classe PlanoInformacao possui os atributos nome (armazena o nome do Plano de Informação) que é do tipo String, e representacao (armazena um vetor com o conjunto de Representações possíveis para o Plano de Informação) que é do tipo Vector. Além desses atributos, essa classe ainda possui um Método Construtor que define os valores para os atributos nome e representacao. 44 3.4.1.4.5 – Buscar Categorias e Planos de Informações A função desse método é retornar para o usuário todas as Categorias existentes para o Projeto Ativo e os Planos de Informações pertencentes a essas Categorias. Para que o usuário possa posteriormente definir quais as Representações deseja exibir para cada Plano de Informação. Importante lembrar que no SPRING cada Projeto pode possuir várias Categorias e dentro destas podem existir vários Planos de Informações os quais podem possuir várias Representações de acordo com o Tipo da Categoria a qual esse Plano de Informação pertence. Esse conjunto de informações serve para definir os dados que devem ser exibidos para o usuário como resposta da solicitação. Deve-se ressaltar também que tanto as Categorias, quanto os Planos de Informação já devem ter sido definidos no SGBDG SPRING antes de serem utilizados pelo usuário. • public Vector buscarCategoria(); o Esse método tem por objetivo retornar para o usuário todas as Categorias definidas para o Projeto ativo, bem como os Planos de Informações definidos para essas Categorias. Retorna um vetor de objetos do tipo Categoria. 3.4.1.4.6 – Exibir Mapa Esse método tem por finalidade enviar para o SGBDG as Representações dos Planos de Informação existentes que o usuário deseja visualizar. Para ter acesso aos Planos de Informação existentes deve ser utilizado o método citado na subseção anterior. Deve-se atentar para o fato de que o usuário pode solicitar a exibição de mais de uma Categoria ou Plano de Informação ao mesmo tempo, portanto o método deve prever tal possibilidade. • public RecordSet exibirCategoria (Vector categoria); o Esse método tem por objetivo enviar para o SGBDG SPRING as Representações que o usuário deseja visualizar. Recebe por parâmetro um vetor de objetos do tipo Categoria, isso porque, seguindo a forma de trabalho do SPRING, um usuário pode visualizar Representações de mais de um Plano de Informação ou Categoria ao 45 mesmo tempo. Esse método retorna um conjunto de dados (RecordSet) pertencentes ao Projeto que satisfazem as especificações definidas nas Categorias passadas por parâmetro. 3.4.1.5 – Web Services A entidade Web Services pertence à camada de Web Services definida no modelo e tem por finalidade possibilitar que os métodos existentes na entidade Métodos sejam disponibilizados através da Web para acesso do usuário, além de possibilitar que esses métodos enviem solicitações à entidade SGBDG. 3.4.1.6 – SGBDG A entidade de SGBDG pertence à Camada SGBDG SPRING do Modelo definido para esta proposta. Tem por finalidade representar o Gerenciador utilizado para controlar os dados armazenados, no caso específico desse trabalho, o SGBDG SPRING. Essa entidade é responsável por receber as solicitações efetuadas pelo usuário, diretamente dos métodos disponibilizados pela Camada de Web Services e executar as solicitações desejadas, realizando para isso o acesso e consulta aos dados gerenciados por ela. Após a execução das solicitações, essa entidade retorna os dados obtidos para os métodos da Camada de Web Services na forma como eles se encontram armazenados, ou seja, os dados não são convertidos para nenhum outro formato especial antes de serem retornados para a Camada superior. 3.4.1.7 – Dados Esta entidade pertence à camada de SGBDG SPRING do Modelo definido para esta proposta e representa os dados geográficos que são gerenciados pelo SPRING e podem ser acessados pelo usuário. 46 3.4.1.8 – Resultado Solicitação Esta entidade pertence à Camada de Web Services do Modelo e tem por finalidade representar todos os dados resultantes da execução das solicitações feitas pelo usuário, após serem transformados para o formato XML pelo Web Services. 3.4.1.9 – SVG A entidade SVG pertence à Camada de Aplicação Cliente e é o resultado do processo de conversão dos dados retornados pela Camada Web Services para o formato SVG, permitindo que esses resultados sejam exibidos pelo Navegador Web e visualizados pelo usuário. 3.5 – Exemplo de utilização da proposta Nesta seção será apresentado um exemplo do funcionamento da proposta através da solicitação da exibição de um conjunto de Categorias existentes em um Projeto por parte do usuário. A exibição do mapa desejado pode ser obtida pelo usuário através da seguinte seqüência de passos: 1. Solicita a abertura do Banco: int retBanco = abrirBanco(“nome_banco”); 2. Solicita a abertura do Projeto: int retProj = abrirProjeto(“nome_projeto”); 3. Solicita a exibição das Categorias e Planos de Informações existentes no Projeto: Vector vetCategorias = buscarCategorias(); 4. Após selecionar as informações que deseja visualizar o usuário deverá solicitar a exibição dos dados: RecordSet dados = exibirCategoria(Vector vetCategoriasSelecionadas); 5. A Aplicação Cliente converte o retorno do método exibirCategoria para o formato SVG e o navegador exibe o resultado para o usuário. Utilizando uma Base de Dados SPRING disponível em (SPRINGa, 2004), que apresenta informações sobre a cidade de São Carlos-SP e seguindo a seqüência de passos descrita acima pode-se chegar aos seguintes resultados: 47 1. int retBanco = abrirBanco(“Sao_Carlos”); 2. int retProj = abrirProjeto(“Canchim”); 3. Vector vetCategorias = buscarCategorias(); Inicialmente será solicitada a exibição da Categoria Limites, Plano de Informação recorte e Representação Linhas. 4. RecordSet dados = exibirCategoria(vetCategoriasSelecionadas); 5. A Aplicação Cliente converte o conteúdo de dados para o formato SVG e exibe esse conteúdo através do navegador; O resultado da solicitação realizada no passo 4 pode ser observado através da Figura 27. Figura 27: Exibição do resultado da solicitação feita no passo 4. 48 Agora, além da exibição da solicitação anterior, será solicitada a exibição da Categoria Mapa_Geologia, Plano de Informação geologia e Representação Classes. 6. RecordSet dados = exibirCategoria(vetCategoriasSelecionadas); 7. A Aplicação Cliente converte o conteúdo de dados para o formato SVG e exibe esse conteúdo através do navegador; O resultado da solicitação efetuada no passo 6 pode ser observado na Figura 28. Figura 28: Exibição do resultado da solicitação feita no passo 5. Além da exibição das Categorias solicitadas no passo 6, no passo 8 será solicitada também a exibição da Categoria Classes_Solos, Plano de Informação solos e Representação Classes. 49 8. RecordSet dados = exibirCategoria(vetCategoriasSelecionadas); 9. A Aplicação Cliente converte o conteúdo de dados para o formato SVG e exibe esse conteúdo através do navegador; Como resultado da solicitação realizada no passo 8 a Aplicação Cliente irá gerar o mapa que pode ser observado na Figura 29. Figura 29: Exibição do resultado da solicitação feita no passo 6. 3.6 – Considerações Finais Este Capítulo apresentou a proposta do modelo de representação de dados geográficos, através da descrição da proposta, das camadas necessárias para o processo de acesso/representação dos dados e da Arquitetura definida para o modelo visando dar base para o desenvolvimento da proposta apresentada neste trabalho. 50 4 – Conclusão O presente trabalho apresentou uma proposta para o modelo de representação de dados geográficos. Essa proposta foi desenvolvida visando definir uma maneira através da qual o usuário pudesse acessar e visualizar dados geográficos armazenados remotamente através da Web. Essa proposta não citou funcionalidades como criação ou exclusão de Categorias e Planos de Informação, além de execução de instruções em LEGAL por acreditar que para implementação de tais funcionalidades faz-se necessário uma maior alteração na estrutura de funcionamento do SPRING. Antes da integração dessas funções ao modelo é necessário que o SPRING se torne um ambiente multiusuário. Além de que essas funcionalidades modificariam o conceito do modelo apresentado, passando de modelo de representação para modelo de representação e manipulação de dados geográficos, visto que tais funções poderiam alterar os dados armazenados. Como trabalho futuro propõe-se a implementação dessa proposta para que então possamos ter uma ferramenta capaz de disponibilizar através da Web os dados geográficos armazenados em SPRING sem a necessidade da replicação de parte de uma base de dados existente. 51 5 - Bibliografia AltoQI Tecnologia e Informática. Informativo da Comunidade AltoQI. Disponível em:http://www.altoqi.com.br/Suporte/default.html?html/Informativo/05_04_02.htm &2?menussuporte/mesuporteprinc.htm&0, acessado em 11 de Outubro de 2004. ALVES, D. S. Mapeamento do Uso da Terra em Rondônia utilizando ténicas de segmentação e classificação de imagens LANDSAT-TM. Anais do VIII Simpósio Brasileiro de Sensoriamento Remoto, Salvador, April de 1996. BORGES, Karla Albuquerque Vasconcelos. Modelagem de Dados Geográficos em Discussão. Prodabel – Empresa de Informática e Informação do Município de Belo Horizonte, 1996. CAMARA, Gilberto. Desenvolvimento de Sistemas de Informações Geográficas no Brasil: Desafios e Oportunidades. Semana de Geoprocessamento do Rio de Janeiro. Rio de Janeiro-RJ, Outubro de 1996. COELHO, Alex. Sistema de Auxílio à Localização no CEULP/ULBRA Utilizando Imagens Vetoriais Scalable Vector Graphics. Centro Universitário Luterano de Palmas – CEULP/ULBRA. Palmas-TO, 2004. COUCLELIS, H. People Manipulate Objects (but Cultivate Fields): Beyond the Raster-Vector Debate in GIS. In: Proc. International Conference on GIS - From Space to Territory: Theories and Methods of Spatial Reasoning. Springer Lecture Notes on Computer Science, vol. 639, pp. 65-77, 1992. DAVIS, Clodeveu. Objetos Espaciais em Banco de Dados Relacional. Prodabel – Empresa de Informática e Informação do Município de Belo Horizonte, 2001. EISENBERG, J. David. SVG Essentials. Producing Scalable Vector Graphics with XML. Publish by O' Reilly & Associates, 2003. GOODCHILD, M. Geographical data modeling. Computers & Geosciences, 18(4): 401-408, 1992. KALANI, Amit. ASP.NET 1.0 with C#. Namespace Reference. Wrox, 2002. KIRK, C., XML – Black Book. São Paulo – SP- Brasil : Makron Books, 2000. 52 LINHADECODIGOa. SOAP e Web Services. Disponível em: http://www.linhadecodigo.com.br/artigos.asp?id_ac=38&pag=1, acessado em 24 de Setembro de 2004. LINHADECODIGOb. Web Services: Java e XML juntos pela interoperabilidade. Disponível em: http://www.linhadecodigo.com.br/artigos.asp?id_ac=378&pag=1, acessado em 24 de Setembro de 2004. LUZ, Antonio da Jr. Indexação em SGBD’s Geográficos: Uma Análise das Estruturas Utilizadas. Centro Universitário Luterano de Palmas – CEULP/ULBRA. Palmas-TO, Julho, 2004. NCGIA, The Research Plan for the National Center for Geographical Information and Analysis. International Journal of Geographical Information Systems, 3(2):117-36, 1989. NING, Carlos Ho Shih. Manual do SpringWeb v. 3.0. INPE, São José dos CamposSP. 2000. PEREZ, Rogério L. G. Visão Geral sobre Web Services. Disponível em: http://www.imasters.com.br/artigo.php?cn=1680&cc=74, acessado em 24 de Setembro de 2004. QUEIROZ, Daniela Mascarenhas. Armazenamento de Documento XML no Oracle 9i. Centro Universitário Luterano de Palmas – CEULP/ULBRA. Palmas-TO, 2002. REEVE, D.E. Apostila On-Line. University de Salford. Disponível em: http://www.els.salford.ac.uk/geog/staff/nmt/fungis/hsd/hsd5.htm, acessado em 13 de Setembro de 2004. RUMBAUGH, J. Modelagem e projeto baseados em objetos. Rio de Janeiro, Editora Campus, 1994. 652p. SILBERSCHATZ, Abranham; KORTH, Henry F. e SUDARSHAN, S. Sistema de Banco de Dados. 3ª ed. – São Paulo: MAKRON Books, 1999. SILVA, Rosângela. Banco de Dados Geográficos: Uma Análise das Arquiteturas Dual (Spring) e Integrada (Oracle Spatial). Escola Politécnica da USP. 2002. SOUZA, Jackson Gomes de. Web Services na plataforma .NET. III Encontro de Estudantes de Informática do Tocantins. Palmas-TO. Outubro, 2003. SPRINGa. Sistema de Processamento de Informações Georeferenciadas. Disponível em: http://www.dpi.inpe.br/spring/, acesso em 28 de Setembro de 2004. 53 SPRINGb. Manual de Ajuda do SPRING, disponível no Software SPRING versão 4.1, 2004. THOMÉ, Rogério. Interoperabilidade em geoprocessamento: conversão entre modelos conceituais de sistemas de informação geográfica e comparação com o sistema Open GIS. INPE – Instituto Nacional de Pesquisas Espaciais. São José dos Campos-SP, 1998. W3Ca. Scalable Vector Graphics (SVG) 1.1 Specification. Disponível em: http://www.w3.org/TR/SVG11/, acesso em 06 de Outubro de 2004. W3Cb. Web Services Architecture. Disponível em: http://www.w3.org/TR/ws-arch/, acessado em 14 de Outubro de 2004. W3Cc. SOAP Version 1.2 Part 0: Primer. Disponível em: http://www.w3.org/TR/soap12-part0/#L1149, acessado em 15 de Outubro de 2004. W3Cd. Web Services Description Language (WSDL) 1.1. Disponível em: http://www.w3.org/TR/wsdl, acessado em 16 de Outubro de 2004. WORBOYS, M.F. GIS: A Computing Perspective. London, Taylor and Francis, 1995.