Servlets e COM para a Visualização de Dados Geográficos na Web

geoinfo.info

Servlets e COM para a Visualização de Dados Geográficos na Web

Servlets e COM para a Visualização de Dados Geográficos na WebARLINDO CARDARETT VIANNA 1,2ANSELMO CARDOSO DE PAIVA 2,3MARCELO GATTASS 21 Universidade Estácio de Sá - Campus BarraAv. Prefeito Dulcídio Cardoso, 2900,22631-021 Rio de Janeiro, RJ, Brasilacv@estacio.br2PUC-Rio – Pontifícia Universidade Católica do Rio de JaneiroTeCGraf – Grupo de Tecnologia em Computação GráficaRua Marquês de São Vicente, 22522453-900 – Rio de Janeiro, RJ{acv,paiva, gattass}@tecgraf.puc-rio.br3UFMA – Universidade Federal do MaranhãoCentro-Tecnológico - Departamento de InformáticaCampus do Bacanga, S/N, 65000-000 – São Luís-MApaiva@ufma.brAbstract. This paper presents an ongoing study on the viability of using Java servlets and COM componentsfor developing dynamic web sites containing geographic data. The maps are presented using TWF (TeCGrafWeb Format). The technologies employed are discussed and the context in which they are useful is described.Resumo. Este artigo apresenta um estudo em andamento sobre a viabilidade do uso de Java servlets e objetosCOM para a criação de páginas dinâmicas que envolvam dados geográficos. Os mapas apresentados utilizam oformato TWF (TeCGraf Web Format). Faz-se uma abordagem das tecnologias utilizadas e apresenta-se umadescrição do contexto no qual elas são úteis .1 IntroduçãoA popularização da Internet, o advento da Web e ocrescimento da importância dos Sistemas deGeoprocessamento em uma série de atividades apresentamnovas perspectivas para as pessoas que necessitam utilizardados geográficos. A união desses três fatores tornapossível a interação visual com os dados geográficos e umamaior acessibilidade a eles.O usuário pode solicitar a visualização de mapas egerar gráficos a partir dos dados geográficos armazenados,os quais podem ser atualizados em tempo real junto com abase de dados. Em razão da expansão da Internet é possíveltrabalhar com os dados de praticamente qualquer lugar.As diferentes maneiras utilizadas para publicar dadosgeográficos na Internet, em geral, recaem no modeloclássico da Internet (cliente/servidor). Essa arquitetura écomposta de um cliente com capacidade de exibição dedados geográficos e um programa de servidor degeoprocessamento sendo executado juntamente com oservidor Web para responder às solicitações sobre os dadosgeográficos. A Figura 1 representa essa arquitetura.Tipicamente o cliente é um navegador (como Netscape ouIExplorer) que realiza solicitações a um servidor Webutilizando o protocolo HTTP (Hypertext Transfer Protocol).Quando o cliente realiza a solicitação de um mapa ou outraoperação sobre os dados geográficos, o servidor Web arepassa para o servidor de geoprocessamento, que atende àsolicitação e envia a resposta para o cliente através doservidor Web. A comunicação entre os dois servidores éfeita, em geral, através de interfaces como CGI (CommonGateway Interface), ISAPI (Internet Server ApplicationProgram Interface – Microsoft) e NSAPI (API do servidorNetscape).Conforme descrito em Plewe[1], existem algumasmaneiras básicas para publicar o dado geográfico na Web:• copiando a base de dados geográficos completaou parcialmente no cliente;


• exibindo mapas estáticos em páginas HTML(Hypertext Markup Language);• possibilitando ao cliente navegar na base demetadados;• permitindo a navegação em mapas dinâmicos;• permitindo ao cliente a realização de consultas eanálises sobre a base de dados no servidor, assimcomo a navegação em mapas dinâmicos.ClienteNavegador da WebVisualizaçãoSolicitaçãoInternetServidorServidorHTTPScriptsCGIMapas, textos, etc.Base de DadosGeográficosPrograma GISde InterfaceFigura 1 Arquitetura Típica para a Publicação deDados Geográficos na Web.Entre as opções mais utilizadas para a publicação dedados geográficos na Web podemos citar o SpringWeb [2]MapGuide (AutoDesk) [3], o GeoMedia WebMap(Intergraph) [4] e o MapObjects Internet Map (ESRI) [5].O SpringWeb é um representante da primeira maneirapara a publicação de dados geográficos na Web. Trata-se deum applet Java que roda no cliente e precisa da realizaçãode uma cópia local da base de dados, apresentando entãoum nível razoável de interação com esses dados. Entre asfunções disponibilizadas estão operações de visualizaçãocomo zoom, pan e navegação sobre os mapas, além dapossibilidade de consulta aos atributos de um objetogeográfico específico e a uma tabela com o conjunto dedados de uma determinada categoria de objetos.O MapObjects Internet Map apresenta comodesvantagem principal o fato de publicar os mapas comoimagens, em geral nos formatos JPEG ou GIF, e suportarsomente as bases de dados nos formatos proprietários daESRI. Embora o usuário possa realizar consultas sobre osdados, em razão dos mapas estarem em formato raster não épossível navegar através de entidades gráficas.O MapGuide utiliza um formato proprietário para osmapas a serem visualizados chamado SDF. No entanto,existe uma ferramenta para importar dados de uma série deoutras bases, como ArcView e MapInfo, que possibilita anavegação sobre os mapas, mas sem permitir gerá-losdinamicamente.O Geomedia WebMap apresenta como principalvantagem a capacidade de publicar dados na Web dediferentes formatos, como MGE e ArcView Shapefiles, entreoutros. Neste programa os mapas são exibidos no formatoActiveCGM para clientes MSWindows ou como JPEG paraclientes em outros sistemas operacionais. Uma de suasprincipais desvantagens advém da considerável quantidadede programação em scripts CGI necessária para construiruma aplicação completa. Esses scripts acessam objetosCOM desenvolvidos como uma parte da versão completado Geomedia, os quais realizam as operações sobre osdados geográficos e geram os arquivos para a exibição dosmapas. Esse sistema permite a geração dinâmica de mapas ea navegação através deles.Todos esses programas têm em comum o fato detrabalharem utilizando CGI, ISAPI ou NSAPI como interfacede comunicação entre o servidor de dados geográficos e oservidor de HTTP. Essas interfaces apresentam uma sériede desvantagens, que serão discutidas em seguida.Neste trabalho será apresentado um estudo sobre aviabilidade da utilização de Java servlets e componentesCOM para o desenvolvimento de sites exibindo dadosgeográficos. Nesse estudo pretende-se utilizar o formatoTWF (Tecgraf Web Format), desenvolvido por Gattass etall.[6], para a exibição dos mapas. A implementação daarquitetura aqui proposta se encontra em desenvolvimentono TeCGraf/PUC-Rio. Inicialmente serão apresentadas astecnologias utilizadas, destacando suas principaisvantagens e a razão de sua adequação para o tratamento doproblema. Em seguida é fornecido o contexto de utilizaçãodessas tecnologias para a publicação de dados geográficosna Web.2 Java ServletsUm servlet é um módulo (programa escrito em Java) que écarregado dinamicamente para atender às solicitações deum servidor Web, ou seja, é uma extensão acrescentada aoservidor que aumenta a sua funcionalidade. Os servidoresWeb respondem às solicitações dos usuários, geralmente,usando o protocolo HTTP através do envio de documentosescritos em HTML.


Em linhas gerais, os servlets estão para os servidoresWeb assim como os applets (componente de um navegadorgráfico e não uma aplicação) estão para os navegadores,com a diferença que os servlets não possuem interfacesgráficas.Os servlets podem ser carregados em diversosservidores, pois a API utilizada para escrevê-los usa apenaso ambiente da Máquina Virtual do servidor. O protocoloHTTP é o mais utilizado para a comunicação com o servidor.Os servlets podem ser usados para o processamento deformulários (HTML), interagir com bancos de dados, ou deuma maneira geral atuar como uma camada intermediária emuma arquitetura de três camadas, como apresentadoesquematicamente na Figura 2.As principais alternativas para a montagem de páginasdinâmicas são as seguintes: CGI, APIs proprietárias, ASP eservlets.CGI é um padrão de interface utilizado entre servidoresHTTP e programas para se comunicarem. O servidor executaum programa (chamado script) cujo resultado é entãotransmitido ao cliente. Normalmente, um script CGI geracomo resultado uma página HTML para ser exibida nonavegador. Os programas CGI são executados na máquinaonde está localizado o servidor Web. Eles recebem os dadosatravés de variáveis de ambiente e “entrada padrão” e ostransmitem de volta ao servidor através da “saída padrão”.Podem ser escritos em qualquer linguagem (C/C++, PERL,TCL, CGILua, entre outros). A principal desvantagem de seutilizar scripts CGI é que para atender a cada requisição dousuário o servidor Web precisa criar um novo processo(cada processo produz uma nova conexão com o banco dedados utilizado e o servidor Web tem que esperar até que osresultados lhe sejam enviados), o que resulta numa baixaeficiência. Outro ponto negativo é com relação à segurança,uma vez que os arquivos (scripts) não ficam inteiramenteprotegidos, pois devem ser armazenados nos sub-diretóriosCGI-bin do servidor. Mais uma grande desvantagem estárelacionada à baixa taxa de reutilização do código, emfunção das linguagens usadas para a programação. Paracriar um novo módulo, a única possibilidade de reutilizaçãoé o “copiar-colar”.Muitos servidores Web incluem APIs proprietárias queexpandem a sua funcionalidade. Os exemplos maisdifundidos são a NSAPI (API do Servidor da Netscape), naqual os programadores podem criar módulos binários queirão acrescentar e/ou substituir elementos paraautenticação, autorização ou geração dinâmica deconteúdos, e ISAPI (Internet Server Application ProgramInterface – Microsoft), que tem como princípio básico criaruma DLL que é carregada no servidor quando o HTTP éinicializado e permanece instalada enquanto for necessária.Esta DLL irá gerenciar a conexão com a base de dados sema necessidade de se criarem novas conexões, como ocorrecom o CGI. O grande problema em adotar tais soluções éque elas são proprietárias, perdendo-se a portabilidade.Outro problema é que geralmente estas aplicações sãodesenvolvidas utilizando-se linguagens de programaçãocomo C ou C++, que podem interferir no bomfuncionamento do servidor Web.NavegadorHTTPServidorWebSolicitaçãoHTTPRespostaServletFigura 2 Arquitetura de execução de um servlet.A solução da Microsoft para a criação de páginasdinâmicas é o ASP (Active Server Pages). Ele fica embutidonas páginas HTML, não sendo pré-compilado. O servidorWeb processa um arquivo utilizando uma DLL (ASP.DLL)que irá interpretar os comandos ASP embutidos na páginaHTML. O grande problema desta solução é que ela estáligada a um tipo particular de servidor – o InternetInformation Server (IIS) – ou a alguma ferramenta queconsiga fazer a tradução do ASP antes de enviar a respostapara o cliente.Segundo Goodwill[7], as principais razões que indicamo uso de Java servlets são as seguintes:• Eficiência: a inicialização de um servlet é feita apenasuma vez, ou seja, após ele ser carregado pelo servidorWeb, as novas solicitações são apenas chamadas dométodo de serviço.• Persistência: os servlets podem manter o estado entresolicitações.• Portabilidade: eles são escritos usando Java e, por estemotivo, são portáteis, bastando utilizar o JVM (JavaVirtual Machine) do servidor, sem fazer uma alteraçãosequer no código-fonte.• Robustez: Java possui um método bem definido para otratamento de erros que minimiza a perda de memóriapor alocações indevidas (garbage collector).• Segurança: os servlets por si só herdam toda asegurança que é peculiar a um servidor Web, porém osJava Servlets também podem contar com o JavaSecurity Manager.• Reutilização: como os servlets são escritos em Java,eles possuem as vantagens da utilização de uma


linguagem orientada a objetos, como a possibilidade dereutilização.3 TWFTWF (Tecgraf Web Format) é um formato dearmazenamento de dados criado para representar umdesenho que contenha linhas, regiões, textos e imagens quedeverá ser transmitido via Web.O formato de arquivo TWF foi proposto por Ferreira etall.[8] com o objetivo de obter um arquivo vetorial queatendesse aos requisitos propostos pelo W3C (WorldWide Web Consortium)[9]. Esses requisitos definem umarquivo vetorial com capacidade de organização doselementos em camadas, exibição de dados raster,tratamento de sistemas de coordenadas e possibilidade deinteração com o usuário para operações de zoom, pan,seleção de objetos, tratamento de eventos, entre outras.Essa proposta foi estendida por Gattass et all.[6] parasuportar a exibição de mapas na Web.Um arquivo TWF é composto de um cabeçalho e umasérie de camadas. Cada camada é composta por funções ecada função possui um único identificador e um númerovariável de argumentos.A representação de mapas segundo esse formatobaseia-se em dois processos: codificação dos elementosgeométricos do mapa em um arquivo e interpretação doarquivo.O processo de codificação realiza as seguintesoperações: quantização das coordenadas, simplificação daspolilinhas, codificação das coordenadas e compressão. Poroutro lado, o processo de interpretação do arquivo consistede somente dois passos: descompressão e interpretaçãodas primitivas.Existem duas ferramentas para a geração de arquivosTWF: uma para programadores e outra para usuários finais.A ferramenta para programadores é uma biblioteca defunções escrita em ANSI-C. Para usuários finais foidesenvolvida uma extensão do Geomedia, baseada natecnologia COM, que exporta dados no formato TWF,mapeando cada feature em uma camada do arquivo.Estão disponíveis dois visualizadores para esseformato de arquivo: um applet baseado na plataforma Java1.2[10] e um plug-in desenvolvido em C com OpenGL[11].Entre as principais vantagens desse formato dearquivo podemos enumerar:• formato vetorial de arquivo, permitindo operações devisualização no cliente sem acessos ao servidor;• geração de arquivos menores do que a maioria dos outrosformatos disponíveis, conforme demonstrado em Gattass etall.[6].4 COM e DCOMOs componentes de software são uma evolução natural nodesenvolvimento de software orientado a objetos,possibilitando o isolamento de pedaços de uma aplicaçãoem componentes separados, os quais podem serreutilizados por outras aplicações.O Component Object Model (COM), da Microsoft,(Rogerson[12]) define um padrão binário para a integraçãode componentes, permitindo que objetos escritos em umalinguagem possam ser acessados a partir de outra.A motivação da Microsoft para criar o COM partiu danecessidade de se estabelecer um padrão que permitisseque objetos criados por diferentes desenvolvedorespudessem interagir uns com os outros, de forma efetiva.Esse modelo utiliza todos os conceitos básicos deorientação a objetos: encapsulamento, herança ereutilização. De uma forma geral, um objeto COM respondea uma série de métodos que serão utilizados pelos clientes.As aplicações interagem umas com as outras ou com osistema através de um conjunto de chamadas de funções oumétodos, que são conhecidas como interface. Esta deve serdesenvolvida de forma que possa ser reutilizada em várioscontextos.O modelo DCOM (Distributed Component ObjectModel) é uma extensão do modelo COM para suportar acomunicação entre objetos em computadores distintos, sejaatravés de uma rede ou mesmo da Internet. Com o DCOM, aaplicação pode ser distribuída em vários locais de acordocom a conveniência do desenvolvedor e/ou do usuário. Éimportante ressaltar que o DCOM cuida dos detalhes deprotocolos de rede de mais baixo nível, liberando odesenvolvedor para que este centralize seus esforços nabusca por soluções mais rápidas e eficientes.5 Arquitetura PropostaNa arquitetura proposta, esquematizada na Figura 3, temosum cliente (navegador) se comunicando com um servidorWeb através de requisições no protocolo HTTP, as quaissão respondidas pelo servidor com o envio para o cliente deum arquivo HTML com os dados solicitados.Em um ambiente Web para geoprocessamento édesejável que as páginas HTML sejam geradasdinamicamente em uma aplicação (Servidor de DadosGeográficos) integrada ao servidor Web. Existem váriosmecanismos para realizar a integração entre essa aplicação eo servidor, como já foi visto. Na arquitetura proposta estásendo utilizado o mecanismo de Java Servlets. Com eleescrevemos um programa Java que é chamado pelo servidorWeb para tratar as solicitações enviadas pelo cliente. Entreoutras vantagens, os servlets possibilitam o acesso àsfacilidades de interconexão oferecidas por Java e a bases de


dados relacionais através do JDBC, facilidades parareutilização e modularidade e a perspectiva de ganhos dedesempenho em razão de não precisar criar um novoprocesso para atender cada uma das solicitações do cliente.Assim, o servlet funcionará como a aplicação que atenderáàs solicitações dos clientes, através do servidor Web, egerará dinamicamente as páginas HTML para a publicaçãodos dados geográficos, exercendo um papel de mediadorentre o cliente e os dados geográficos.ClienteHTTPServidorNavegador WebVisualizaçãoHTMLPlug-in TWFApplet TWF(Qualquer plataforma)Servidor deWebWindowsBase de DadosGeográficosInternetFigura 3 Arquitetura Proposta.ServletDCOMObjetosGeomediaPara acessar os dados geográficos e responder asolicitações como a geração de um mapa ou a realização eexibição de uma consulta espacial ou de uma operação deinterseção entre objetos geográficos, o servlet precisa deuma biblioteca de objetos que lhe permita realizar essasoperações. Essa biblioteca é disponibilizada pelo Geomediacomo um conjunto de objetos COM, os quais expõem umaparte de sua funcionalidade. Como principal vantagem dautilização desses objetos podemos citar o acesso adiferentes bases de dados, como MGE e ArcView.Para a transmissão e exibição dos mapas no cliente foiescolhido o arquivo TWF, por se tratar de um formatovetorial, compactado e que disponibiliza operações devisualização (pan, zoom, etc.) no cliente. Além disso, esseformato vetorial é aberto, estando disponível na Web tantoa proposta do formato como plug-ins e applets paravisualizá-lo, o que permite ter clientes em qualquer sistemaoperacional. A biblioteca para a geração desses arquivos, apartir de bases acessáveis pelos objetos Geomedia, estádisponível como um objeto COM.Um importante aspecto nesta arquitetura que estásendo proposta é a comunicação entre o servlet escrito emJava e os objetos COM, possivelmente rodando emmáquinas distintas. A Microsoft estendeu suaimplementação da Máquina Virtual Java para permitir umaintegração automática entre Java e COM. Assim, um objetoCOM pode ser chamado diretamente de Java e os objetosimplementados em Java são disponibilizados como objetosCOM. Essa solução possui a desvantagem de exigir que oservlet esteja rodando uma Máquina Virtual Java, que não éo padrão.Na nossa proposta optamos por realizar essacomunicação através do J-Integra[13], uma ferramenta deintegração desenvolvida pela Linar Ltda. Ela se comunicacom os objetos COM utilizando o DCOM (DistributedCOM), que se baseia em uma camada de RPC, a qual realizachamadas TCP/IP para efetivamente completar acomunicação. Em resumo, no nível mais baixo o J-Integrausa as classes padrões de acesso à comunicação em redeoferecidas pela linguagem Java, o que garante aportabilidade da solução.Para o programador do servlet, a solução com o J-Integra possibilita que os componentes COM sejamtratados como objetos Java puros, apresentando aspropriedades, os métodos e os eventos do objeto COMcomo propriedades, métodos e eventos Java.A partir da leitura de bibliotecas que contenhaminformações das classes e interfaces dos objetos COM, umaferramenta distribuída com o J-Integra – com2java – gera osproxies necessários para a ligação entre COM e Java, ouseja, arquivos que contenham as classes em Javaequivalentes aos componentes COM. Podemos entenderestas classes geradas como um wrapper para os objetosCOM. Essas bibliotecas podem estar explicitamentedefinidas em arquivos com extensão olb ou tlb, e algumasvezes as informações estão escondidas em arquivosexecutáveis ou em DLLs.No desenvolvimento deste sistema já foi implementadoum servlet que, sem a utilização de objetos COM, gerapáginas HTML com mapas previamente gerados no formatoTWF. A Figura 4 mostra uma página produzida com esseservlet, que possui capacidade de conexão direta com o


anco de dados associado ao mapa para a realização deconsultas convencionais a bancos de dados. Atualmenteestá sendo desenvolvido o empacotamento dos objetosCOM em classes Java, utilizando a ferramenta com2java doJ-Integra. Isso é necessário para a geração dinâmica dosmapas a partir da base de dados acessável pelo Geomedia.[7] Goodwill, J. Developing Java Servlets – TheAuthoritative Solution. Sams Publishing, 1999.[8] Ferreira, C. C. F.; Gattass, M.; Figueiredo, L. H. “UmEstudo Sobre Arquivos Vetoriais para a Visualização deMapas na Web” . GIS Brasil 99 – V Congresso e Feira Parausuários de Geoprocessamento da América Latina,Salvador, Bahia, 1999.[9] World Wide WebConsortium Requeriments.www.w3.org/Graphics/ScalableReq[10] TWF Applet. www.tecgraf.puc-rio.br/twf/applet/[11] TWF Netscape Plug-In.www.tecgraf.puc-rio.br/twf/plugin/[12] Rogerson, D. Inside COM. Microsoft Press, 1997[13] J-Integra TM . www.linar.comFigura 4 Exibição de Mapa em TWF com servlet.AgradecimentosTecgraf é um laboratório financiado principalmentepela PETROBRÁS.Referências[1] Plewe, B. GIS ONLINE: Information Retrieval,Mapping, and the Internet. ONWORD Press, 1997.[2] SpringWeb.www.dpi.inpe.br/springweb/springweb.html[3] MapGuide. www.mapguide.com[4] GeoMedia Web Map.www.intergraph.com/software/geo_map/[5] MapObjects Internet Map Server.www.esri.com/base/products/internetmaps/[6] Gattass, M.; Ferreira, C. C. F.; Vilar, A. S.; Glasberg, M.“Efficient Map Visualization on the Web” . Geoinfo’99,Campinas, São Paulo, 1999.

More magazines by this user
Similar magazines