FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EMERSON LEITE DE MORAES J.O.W.S. CLIENT - UMA BIBLIOTECA PARA USO DE WEB SERVICES GEOGRÁFICOS

Tamanho: px
Começar a partir da página:

Download "FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EMERSON LEITE DE MORAES J.O.W.S. CLIENT - UMA BIBLIOTECA PARA USO DE WEB SERVICES GEOGRÁFICOS"

Transcrição

1 FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EMERSON LEITE DE MORAES J.O.W.S. CLIENT - UMA BIBLIOTECA PARA USO DE WEB SERVICES GEOGRÁFICOS SÃO JOSÉ DOS CAMPOS 2011

2 EMERSON LEITE DE MORAES J.O.W.S. CLIENT - UMA BIBLIOTECA PARA USO DE WEB SERVICES GEOGRÁFICOS Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para obtenção do título de Tecnólogo em Banco de Dados. Orientador: Reinaldo Gen Ichiro Arakaki Co-orientador: Ubirajara Moura de Freitas SÃO JOSÉ DOS CAMPOS 2011

3 EMERSON LEITE DE MORAES J.O.W.S. CLIENT - UMA BIBLIOTECA PARA USO DE WEB SERVICES GEOGRÁFICOS Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para obtenção do título de Tecnólogo em Banco de Dados. GILBERTO RIBEIRO DE QUEIROZ, Me. CARLOS AUGUSTO LOMBARDI GARCIA, Me. REINALDO GEN ICHIRO ARAKAKI, Dr. UBIRAJARA MOURA DE FREITAS, Me. / / DATA DE APROVAÇÃO

4 IV AGRADECIMENTOS Agradeço a minha mãe Vera Lúcia Sant Ana e meu pai Edson Leite de Moraes pelo apoio, ininterrupto, que eles me deram ao longo desses três anos e principalmente no ultimo ano, que foi o momento em que estive mais ausente. Meus sinceros agradecimentos ao meu orientador Reinaldo Gen Ichiro Arakaki e meu co-orientador Ubirajara Moura de Freitas, pelo estimulo a pesquisa e ao apoio dado na construção deste trabalho. Não poderia deixar de agradecer aos colegas de trabalho André Carvalho, Claudio Bogossian, Henrique Asakura, Ricardo Pontes, José Thomazini e Frederico Augusto Bede pelas várias idéias trocadas sobre este trabalho, agradeço também à Claudete Borges que coordenou meu estágio na FUNCATE e junto ao Bira tornou possível esta minha vivência na área de geoprocessamento. Meus sinceros agradecimentos também ao Gilberto Ribeiro de Queiroz, do INPE, pelas idéias iniciais e dúvidas tiradas no decorrer deste ano, que foram fundamentais para que fosse possível a realização deste trabalho.

5 V Os investimentos em conhecimento geram os melhores dividendos. Benjamin Franklin

6 VI RESUMO Com a modernização da sociedade e o crescimento da internet como forma de compartilhamento de dados, viu-se a necessidade da criação de padrões para interoperabilidade de dados, entre diferentes plataformas de desenvolvimento. Uma dessas especificações é o Web Service que faz uso de protocolos da internet para realizar a comunicação entre diferentes aplicações. Atualmente, na área de geoprocessamento também existe uma forte tendência em utilizar a internet para compartilhamento de dados espaciais. Para isso, o Open Geospatial Consortium (OGC) criou um conjunto de especificações que tornam possível a interoperabilidade de dados geográficos, algumas dessas especificações são os OGC Web Services (OWS). Este trabalho apresenta a especificação e o desenvolvimento de uma biblioteca para uso de serviços OWS, bem como um protótipo de cliente Web Feature Service (WFS) implementado, utilizando a biblioteca proposta, internamente a um Sistema de Informações Geográficas (SIG) denominado Geographical Lightweight Universal Engine (GLUE), que é desenvolvido pela Fundação de Ciência, Aplicações e Tecnologias Espaciais (FUNCATE). Palavras chave: Interoperabilidade, Dados Geográficos, OGC, WFS, GML.

7 VII ABSTRACT Growth of web use as a way to sharing data and with the modernization of society, saw the need to create patterns to data interoperability, between different development platforms. One of these specifications is the Web Service that uses the web protocols to perform the comunication between different applications. Nowadays, in the GIS area also exists a tendency to use the web to share spatial data. The Open Geospatial Consortium (OGC) has created standards that provides spatial data interoperability, some of these specification are the OGC Web Services (OWS). This work presents the specification and development of a library to use the OWS services, this work shows also a prototype of Web Feature Service client that are implemented, using the proposed library, internally in a GIS called Geographical Lightweight Universal Engine (GLUE), this GIS are developed by FUNCATE. Keywords: Interoperability, Geographic Data, OGC, WFS, GML.

8 VIII LISTA DE FIGURAS Figura 2.1. Características dos Web Services Figura 2.2. Exemplo de WSDL Web Feature Service Figura 2.3. Ciclo de vida dos Web Services Figura 2.4. Hierarquia de classes geométricas Figura 2.5. Exemplo de feição geográfica em GML Figura 2.6. Operações Suportadas pelo WFS Figura 2.7. Utilização da TerraLib por uma aplicação Figura 2.8. Extensões TerraLib Figura 3.1. Arquitetura e uso do JAX-B Figura 4.1. Modelo de aplicação sem uso do padrão Façade Figura 4.2. Modelo de aplicação utilizando o padrão Façade Figura 4.3. Modelo da API com o uso do padrão Façade Figura 4.4. Casos de Uso da API Figura 4.5. WFSCapabilitiesRequester e suas dependências Figura 4.6. Interação entre WFSCapabilitiesRequester e um Serviço WFS Figura 4.7. WFSDescribeRequester e suas dependências Figura 4.8. Comunicação entre WFSDescribeRequester e um Serviço WFS Figura 4.9. WFSGetFeatureRequester e suas dependências Figura Modelo de abstração dos Requesters Figura Camada de conversão Figura Estrutura de pacotes da biblioteca Figura 5.1. Geographical Lightweight Universal Engine Figura 5.2. Cliente WFS GLUE Figura 5.3. Desmonstração WFSClient Figura 5.4. Métodos que disponibilizam os dados do GetCapabilities Figura 5.5. Criação de queries simples Figura 5.6. Resultado de GetFeature simples Figura 5.7. Criação de filtro não-espacial simples Figura 5.8. Query com filtro Figura 5.9. Resultado da requisição com filtro Figura Conversão de objetos GML para JTS Figura Dados Hidrográficos da Espanha Figura Dados do U. S. Geological Survey Região do Havaí

9 IX LISTA DE ABREVIATURAS E SIGLAS API: Application Programming Interface. DOM: Document Object Model. DPI: Divisão de Processamento de Imagens INPE. FUNCATE: Fundação de Ciência, Aplicações e Tecnologia Espaciais. GLUE: Geographical Lightweight Universal Engine. GML: Geography Markup Language. HTTP: Hyper Text Transfer Protocol. INPE: Instituto Nacional de Pesquisas Espaciais. JAX-B: Java Architeture for XML Binding. JDK: Java Development Kit. JTS: JTS Topology Suite. JVM: Java Virtual Machine. MIME: Multipurpose Internet Mail Extensions. Namespace: Qualificador de Nomes. OGC: Open Geospatial Consortium. OpenJDK: Open Java Development Kit. OWS: OGC Web Services. Parser: Analisador Sintático. POO: Programação Orientada a Objetos. REST: Representational State Transfer. SAX: Simple API for XML. SFS: Simple Feature Specification. SGBD: Sistema Gerenciador de Banco de Dados. SIG: Sistema de Informação Geográfica. SOAP: Simple Object Acess Protocol. TecGraf: Tecnologia em Computação Gráfica. UDDI: Universal Description, Discovery and Integration. URL: Universal Resource Location. W3C: World Wide Web Consortium. WCS: Web Couverage Service. WFS: Web Feature Service. WFS-T: Web Feature Service Transactional.

10 X WMS: Web Map Service. WSDL: Web Service Description Language. WWW: World Wide Web. XLink: XML Linking Language. XML: extensible Markup Language. XSD: XML Schema Document. XSOM: XML Schema Object Model.

11 XI SUMÁRIO 1 INTRODUÇÃO Motivação Objetivos Objetivo Geral Objetivos Específicos Metodologia Organização do Trabalho Interoperabilidade de dados geográficos Web Services Web Services Geográficos Open Geospatial Consortium Simple Feature Specification Geography Markup Language Web Feature Service Iniciativas no Brasil TerraOGC A Fundação OSGeo A Biblioteca GeoTools REVISÃO TECNOLOGICA Linguagem Java Java Architeture for XML - Binding Compilação OGC para JAX-B XML Schema Object Model Xerces Java Topology Suite... 35

12 XII 4 ARQUITETURA DA API Padrões estruturais de projeto Padrão Façade Modelagem da API Casos de Uso Classes da API Classe WFSCapabilitiesRequester Classe WFSDescribeFeatureRequester Classe WFSGetFeatureRequester Classe WFSClient Conversão de geometrias GML para JTS Estrutura de Pacotes da API TESTES E RESULTADOS Geographical Lightweight Universal Engine Cliente WFS Uso da API Uso da WFSCapabilitiesRequester Construção de Queries Uso da Camada de Conversão Testes com Vários Provedores de Serviço WFS CONSIDERAÇÕES FINAIS Contribuições Trabalhos Futuros Referências Bibliográficas... 60

13 13 1 INTRODUÇÃO 1.1. Motivação Atualmente, com a modernização da sociedade, os serviços para atendimento das necessidades mais básicas das pessoas como água, luz, gás, e outros, são entregues de forma simplificada, ou seja, é possível se utilizar de energia elétrica acendendo a luz, ou ligando um aparelho elétrico na tomada. Por trás dessa facilidade, existe toda uma infra-estrutura que permite a disponibilização desse serviço. A utilização dos serviços é cobrada com base em políticas de uso. Uma tendência parecida tem ganhado força no mundo da informática, esse conceito é denominado Computação em Nuvem (Cloud Computing), e traz a idéia de disponibilização de aplicações e serviços por meio da Internet (VECCHIOLA, 2009). Segundo Zanelato (2010), uma arquitetura baseada em componentes que faz parte da idéia de Computação em Nuvem é o Serviço Web (Web Service), que tem como proposta inicial a criação de um conjunto de funcionalidades que possam ser acessadas remotamente. Essa arquitetura de serviço torna-se atraente pela questão da interoperabilidade, pois ela trabalha encima de protocolos de comunicação da Internet como Hyper Text Transfer Protocol (HTTP), utilizando-se também da linguagem de marcação extensible Markup Language (XML), possibilitando assim o desenvolvimento de serviços e clientes nas mais variadas linguagens de programação (Figura 2.1). Na área de geoprocessamento atualmente, com esse crescimento da Internet como meio de disseminação de dados, existe um forte interesse na interoperabilidade de dados geográficos, entre sistemas heterogêneos (CÂMARA, 2005). Seguindo essa tendência, o Open Geospatial Consortium (OGC) propõe uma série de especificações para a construção e utilização de Web Services Geográficos. Essas especificações foram criadas com o intuito de proporcionar maior interoperabilidade de dados espaciais, entre Sistemas de Informações Geográficas (SIG) (GARDELS, 1996). Com isso, torna-se necessário a quem tenha interesse em desenvolver utilizando os padrões OGC, ter amplo conhecimento com relação a tais padrões.

14 14 Considerando os conceitos básicos da Programação Orientada a Objetos (POO), de encapsulamento e reuso de código, junto da necessidade de se ter alto conhecimento sobre os serviços OGC, abre-se uma porta para a concepção de APIs (Interface de Programação de Aplicativos ou Application Programming Interface), que tenham como principal objetivo abstrair alguns procedimentos necessários à implementação de clientes para serviços geográficos, tendo em vista que esses procedimentos são feitos de forma padrão de acordo com as especificações Objetivos Nas subseções a seguir serão apresentados os objetivos deste trabalho Objetivo Geral Este trabalho possui como objetivo, a especificação e desenvolvimento de um protótipo de uma API Java para utilização de Web Services Geográficos Objetivos Específicos Os objetivos específicos deste trabalho são: a) Facilitar a utilização de Serviços Geográficos com a implementação da biblioteca proposta; b) Indicar práticas e tecnologias que podem ser utilizadas na concepção desse tipo de API;

15 15 c) Demonstrar o uso da biblioteca desenvolvida em um protótipo de cliente Web Feature Service Metodologia Para que a comunicação com serviços OGC seja feita de forma integra, é necessário que a implementação tanto do lado cliente, quanto do lado servidor, seja desenvolvida com base nos documentos de especificação de implementação disponibilizados pelo consórcio OGC. Para tornar possível o desenvolvimento do protótipo da API, este trabalho tem como base a especificação do serviço Web Feature Service (WFS) (OGC, 2005). O WFS é um serviço que permite aos clientes recuperarem objetos geográficos em formato Geography Markup Language (GML), e opcionalmente em outros formatos como, por exemplo, Shape File (SHP) e Keyhole Markup Language (KML) (Câmara, 2005). No decorrer do trabalho serão abordadas as tecnologias que possibilitam o desenvolvimento do protótipo, bem como os padrões de projeto de software que podem ser utilizados para estruturar a API. Com o intuito de demonstrar o uso da biblioteca proposta foi criado um protótipo de cliente WFS, internamente a um SIG Organização do Trabalho Este Trabalho está organizado da seguinte forma: a) O Capítulo 2 trata dos Web Services de uma forma geral, e mais especificamente os Serviços OGC, bem como as iniciativas no Brasil relacionadas a este trabalho; b) O Capítulo 3 aborda as tecnologias, padrões de serviços e demonstra a arquitetura da API; c) O Capítulo 4 demonstra o uso do protótipo da API, e as tecnologias empregadas;

16 d) O Capítulo 5 apresenta as considerações finais sobre este trabalho. 16

17 17 2 INTEROPERABILIDADE DE DADOS GEOGRÁFICOS A integração de dados geográficos que normalmente estão armazenados com sintaxe e semântica heterogênea, ou seja, com diferentes estruturas e significados, nos últimos tempos tem sido foco de muitas pesquisas na área de ambiente distribuído em geoprocessamento. Essa necessidade de integração de dados é advinda da demanda que as instituições produtoras de dados espaciais têm com relação ao compartilhamento dos dados produzidos (AZEVEDO, 2006). Segundo Fonseca (1999), as primeiras tentativas em se obter certa interoperabilidade de dados entre SIGs foram feitas por meio de tradução do formato de dados de determinado sistema, para o formato de outro sistema. De acordo com Lima (2002), cada SIG trabalha sobre um modelo próprio, e as organizações produtoras de dados espaciais operam de acordo com os modelos conceituais dos SIGs que ela utiliza. Com isso, quando a tradução desses dados é feita, alguns problemas semânticos podem ocorrer como: distorção de alguns dados, comprometimento da qualidade da informação, entre outros. Proporcionar um alto grau de interoperabilidade entre SIGs, não é uma tarefa trivial, isso ocorre devido à alta complexidade envolvida em informações geográficas. Atualmente, existem várias abordagens que vem sendo estudadas e aplicadas para alcançar o intercâmbio de dados espaciais (CÂMARA, 2005). A iniciativa voltada à interoperabilidade geográfica que será revisada neste trabalho é a abordagem proposta pelo consórcio OpenGIS (OGC) que segundo Gardels (1996), tem como objetivo desenvolver padrões, especificações e requisitos que suportem um Sistema Aberto de Informação Geográfica. Nesta seção serão abordados os seguintes tópicos: a) Web Services: onde serão detalhados o que a literatura aborda sobre padrões, arquiteturas, entre outros; b) Web Services Geográficos: onde se demonstram os serviços direcionados à área de geoprocessamento, definições do órgão padronizador desse tipo de serviços o OGC e especificação do serviço Web Feature Service, o qual este trabalho tem como foco;

18 18 c) Iniciativas no Brasil: nesta subseção serão abordadas as iniciativas do Brasil relacionadas à área deste trabalho Web Services De acordo com Abinader (2006), existem arquiteturas de sistemas distribuídos que possuem certa falha com relação à interoperabilidade, por serem altamente acoplados, não tendo assim o dinamismo que as atuais aplicações requerem. Com isso, surgiram os Web Services com uma proposta inovadora onde foram especificadas interfaces padrões de comunicação, que tem como base o uso de protocolos Web, gerando assim um alto grau de interação entre sistemas heterogêneos. Os conceitos que cercam a tecnologia de Web Services possibilitam que clientes sejam desenvolvidos com base nas mais diferentes plataformas de desenvolvimento, para isso é necessário apenas que a linguagem escolhida tenha suporte aos protocolos da Internet, a Figura 2.1 demonstra uma visão geral dos padrões Web Service. Figura 2.1. Características dos Web Services Fonte: Adaptado de ABINADER, 2006.

19 19 De acordo com o documento W3C (2004), os Web Services são um tipo de sistema que propicia a interoperabilidade máquina-máquina via rede mundial de computadores. Esses serviços são descritos por meio de um tipo de documento processável baseado em XML chamado Web Services Description Language (WSDL), que possui um robusto esquema de tags que tornam possível a descrição detalhada dos serviços disponibilizados. A Figura 2.2 mostra parte de um documento WSDL, no qual são especificados detalhes de como funcionam as mensagens trocadas via Web Services. Figura 2.2. Exemplo de WSDL Web Feature Service Fonte: OGC, Outra característica dos Web Services é que podem ser implementados utilizando-se do protocolo Simple Object Access Protocol (SOAP), que é um meio para que se possa realizar trocas de mensagens no formato XML entre aplicações. O uso de XML como padrão é também uma característica importante dos Web Services, pois, o XML foi projetado com o principal propósito de resolver o problema da interoperabilidade, entre aplicações (LIMA, 2002). De acordo com Lopes (2004), o ciclo de vida de um Web Service consiste em quatro etapas que são: 1. Publicação: processo considerado opcional, onde o fornecedor do serviço publica seu serviço em um servidor com suporte a Universal Description, Discovery and Integration (UDDI) que é uma linguagem de anotação XML onde é possível se criar metainformações sobre Web Services; 2. Descoberta: processo também opcional, onde o cliente encontra o serviço que procura por meio do repositório UDDI; 3. Descrição: procedimento no qual o Web Service expõe sua API por meio de WSDL, para que o cliente possa ter conhecimento das funcionalidades que o serviço dispõe;

20 20 4. Invocação: processo em que o cliente e o serviço interagem, por meio de mensagens XML, encapsuladas em envelopes SOAP. A Figura 2.2 demonstra a especificação de tais mensagens no WSDL. A Figura 2.3 demonstra um esquema representando o ciclo de vida de um Web Service. Figura 2.3. Ciclo de vida dos Web Services. Fonte: Adaptado de LOPES, 2004 Os processos referentes à publicação e descoberta são considerados opcionais, pois, é necessário apenas que o cliente tenha acesso ao WSDL do Serviço em questão, para que seja possível conhecer os métodos disponíveis, ou seja, os procedimentos obrigatórios são apenas os de descrição e invocação Web Services Geográficos No mundo dos SIGs existe também uma tendência a se utilizar Web Services Geográficos para o compartilhamento de dados espaciais, devido a isso neste tópico serão abordados

21 21 aspectos referentes ao consórcio que especifica os padrões de serviços, e também será detalhado o funcionamento do WFS Open Geospatial Consortium O Open Geospatial Consortium (OGC, 2011), também conhecido como OpenGIS, é um consórcio internacional composto por mais de 420 companhias, agências governamentais e universidades, que foi criado com o objetivo de promover soluções voltadas à obtenção de maior interoperabilidade entre sistemas que envolvem informações geográficas, propondo uma abordagem diferente dos tradicionais modelos de SIGs, onde são utilizados modelos de dados proprietários, e funções monolíticas (GARDELS, 1996). De acordo com Câmara (2005), os esforços do OGC são demonstrados na forma de especificações de interfaces e padrões que propiciam o intercâmbio de dados espaciais. Os Web Services especificados pelo OGC seguem os seguintes princípios da arquitetura orientada a serviços (OGC, 2008): Serviço: é parte da funcionalidade que é fornecida por uma entidade através de interfaces; Interface: é composta por um conjunto de operações que caracterizam o comportamento de determinada entidade; Operação: é definida por operação a ação que o serviço executa, referente à transformação ou requisição. Cada operação possui um nome e uma lista de parâmetros. Os OGC Web Services (OWS) trabalham sobre os padrões abertos da Internet, especificamente as especificações World Wide Web (WWW) do HTTP, Uniform Resource Locators (URLs), Multipurpose Internet Mail Extensions (MIME), e o XML. Atualmente, os OWS estão cada vez mais evoluindo nos aspectos relacionados aos padrões Web Service especificados pelo W3C, como no uso de WSDL e SOAP. Bem como, no uso da arquitetura REST detalhada por Fielding (2000).

22 Simple Feature Specification Uma das formas mais comuns de representar determinados fenômenos geoespaciais, do mundo real, é por meio de feições (features) geográficas. Uma feição simples, segundo OGC (1999), é composta de atributos espaciais e não-espaciais. Os atributos espaciais correspondem a uma geometria, ou conjunto geométrico, relacionado a um lugar no mundo. Já os atributos não-espaciais são os metadados referentes ao local representado pelas geometrias da feição (OGC, 2008). O consórcio OGC define por meio do padrão Simple Feature Specification (SFS), como as feições geográficas devem ser estruturadas, e estendidas, propondo também um modelo bem definido de geometrias (Figura 2.4) (OGC, 1999). Figura 2.4. Hierarquia de classes geométricas. Fonte: OGC, Na Figura 2.4 é possível visualizar como se da à hierarquia das classes geométricas do modelo SFS (OGC, 1999):

23 23 Geometry: é a classe raiz da hierarquia SFS, é uma classe abstrata, ou seja, não é possível instanciá-la. A classe Geometry define vários métodos básicos, de relações e analise espaciais que todas as subclasses devem possuir. Toda geometria está diretamente ligada a um objeto da classe SpatialReferenceSystem que define qual é o sistema de coordenadas que essa geometria se encontra; Point: é o tipo mais simples de geometria concreta, é composto apenas de duas coordenadas, uma no eixo x e outra no eixo y do sistema de coordenadas. A classe Point herda diretamente da classe Geometry; Curve: é uma geometria geralmente composta de uma sequência de pontos. Esta classe define que se uma linha não possui interseções, ou seja, não tem cruzamentos consigo mesma, ela é uma linha simples, caso contrário não. A classe Curve especifica também que quando o último ponto de uma linha é exatamente igual ao primeiro e for também uma linha simples, então essa linha é um anel. Curve herda diretamente de Geometry; Surface: uma Surface é composta de um conjunto de Curve, sendo que todas devem ser fechadas, ou seja, devem possuir o ultimo ponto igual ao primeiro ponto, uma das Curves é denominada exterior, este atributo é obrigatório. Uma Surface também pode conter zero ou mais Curves internos denominados interiors ; GeometryCollection: é a classe abstrata que define uma coleção para geometrias, permitindo a recuperação de objetos por índice, entre outras funções. Todos os objetos geométricos contidos em uma GeometryCollection devem estar associados, obrigatoriamente, a um mesmo SpatialReferenceSystem; LineString: é uma implementação concreta de Curve, e possuí o conceito de interpolação entre dois pontos, sendo que cada par de pontos define um seguimento de linha. Existem duas especializações de LineString, são elas: Line que só permite uma linha composta por apenas dois pontos e a LinearRing que aceita apenas uma linha fechada e simples; Polygon: esta classe representa uma superfície plana, que herda de Surface. Um Polygon é composto de um LinearRing exterior e zero ou mais interiors,

24 24 sendo que o exterior corresponde a borda do polígono e os interiors os possíveis buracos do mesmo; MultiSurface: é uma especialização abstrata de GeometryCollection que define alguns métodos que suas subclasses devem possuir. A única classe concreta que estende MultiSurface é a classe MultiPolygon que é uma coleção especializada de polígonos apenas; MultiCurve: é uma coleção derivada de GeometryCollection que define métodos que suas subclasses devem possuir. A implementação concreta para esta classe é a MultiLineString que é uma coleção que possui apenas objetos LineStrings; MultiPoint: esta coleção é uma implementação concreta que estende diretamente de GeometryCollection. A classe MultiPoint é especializada em armazenar pontos. Uma feição pode ser, por exemplo, do tipo rio contendo uma linha (LineString) como geometria que representa um determinado rio no mundo, e também atributos não-espaciais como nome do rio, extensão e nível de poluição. Com a analise de feições do tipo rio pode-se saber, por exemplo, onde estão localizados os rios com maior nível de poluição Geography Markup Language Tendo em vista a questão da interoperabilidade o OGC utiliza o padrão XML para que seja possível representar dados geográficos. Com isso, o consórcio criou a linguagem de marcação Geography Markup Language (GML). Atualmente, a GML encontra-se na versão e foi especificada com o intuito de transportar e armazenar informações geográficas, que incluem atributos espaciais e não espaciais de feições geográficas (OGC, 2006) (CÂMARA, 2005) (LIMA, 2002) (OGC, 2007). A GML define um conjunto de regras que permitem aos desenvolvedores implementar a melhor forma de descrever seus dados e informações no documento GML, sendo também possível se necessário que os usuários de GML convertam seus dados de seus modelos

25 25 nativos, para o modelo especificado em OGC (2007). A linguagem GML é baseada em esquemas XML denominados XMLSchemas, que de acordo com Câmara (2005), definem elementos (tags) que são suportados por determinado documento XML, que neste caso é a GML. A linguagem GML possui uma série de esquemas cuja raiz é o gml.xsd, esses esquemas podem ser encontrados em GML (2011). Tendo a posse dos esquemas, os desenvolvedores podem criar um esquema próprio para a sua aplicação. Contudo, é necessário seguir algumas regras para que a conformidade dos dados não seja afetada e assim o intercâmbio dos mesmos continue sendo possível. Segundo Câmara (2005) essas regras são: No desenvolvimento dos esquemas customizados deve ser assegurado que os novos tipos implementados sejam subtipos dos tipos da GML: para a especificação de feições gml:abstractfeaturetype ou gml:abstractfeaturecollection, e para criação de tipos de geometrias utiliza-se gml:abstractgeometrytype ou gml:abstractgeometrycollection; O esquema não deve modificar as definições dos elementos obrigatórios da GML; Os tipos abstratos definidos nos esquemas GML podem ser estendidos e restritos de forma livre pelo desenvolvedor; Os esquemas desenvolvidos devem especificar e disponibilizar um namespace, para que seja possível outra aplicação identificar tais esquemas. Seguindo essas definições é possível que desenvolvedores especifiquem seus tipos e tags garantindo que aplicações que se baseiem na tecnologia GML utilizem esses dados. A Figura 2.5 demonstra um exemplo real de feição geográfica disponibilizada por meio de GML.

26 26 Figura 2.5. Exemplo de feição geográfica em GML. O exemplo da Figura 2.5, demonstra uma instância de uma feição disponibilizada no formato GML por DPI (Divisão de Processamento de Imagens) (2011), que contém uma geometria MultiPoint que possui um Point representando um local com coordenada x e y no mundo, associada a atributos contendo dados sobre este ponto. A feição demonstrada representa um foco de incêndio, possuindo dados sobre o foco como: município, horário, data, bioma, satélite que capturou a queimada, entre outros Web Feature Service A especificação Web Feature Service (WFS) é uma das definições de serviços geográficos do OGC. Essa especificação define um serviço onde é possível realizar transações e acessos a objetos (feições) geográficos no formato GML, e opcionalmente em outros formatos, independente do modelo de dados utilizado. Existem duas versões do serviço WFS, uma delas é básica onde é possível apenas recuperar dados geográficos que se encontram no servidor, já a segunda versão é denominada WFS-T (Transactional) onde é possível se realizar operações

27 27 transacionais como: inserir, excluir, atualizar, obter bloqueio de objetos, entre outras (OGC, 2010). O serviço WFS suporta vários tipos de operação, a Figura 2.6 demonstra um Overview sobre essas operações. Figura 2.6. Operações Suportadas pelo WFS. Fonte: QUEIROZ, 2007 Para dar suporte às requisições e transações WFS, foram definidas as seguintes operações (OGC, 2007) (CÂMARA, 2005): GetCapabilites: essa operação trata de indicar quais tipos de feições o serviço dispõe e quais são as outras operações suportados pelo servidor; DescribeFeatureType: operação responsável por descrever a estrutura de qualquer tipo de feição que o serviço possua; GetFeature: operação que retorna instancias dos objetos disponíveis na base de dados do servidor. O cliente pode utilizar de critérios espaciais ou não para definir quais feições ele deseja que o serviço retorne; GetGmlObject: operação que é opcional existente somente em servidores com suporte a XLinks, neste método os clientes podem requisitar determinada feição com base em IDs (gml:id);

28 28 Transaction: operação que existe apenas em serviços que suportem WFS-T, uma transação se refere às operações que executam modificações em feições geográficas como: criar, atualizar e deletar feições; LockFeature: operação restrita a servidores WFS-T também, tem como responsabilidade possibilitar o bloqueio de uma ou mais feições para que as mesmas possam ser modificadas por operações transacionais sem que haja inconsistência ao longo da transação. Caso não seja utilizada nenhuma biblioteca, que forneça suporte às requisições descritas anteriormente, cada detalhe das formas de requisição, bem como recuperação de dados devem ser suportados diretamente pela aplicação. Por exemplo, uma aplicação cliente WFS faz uma chamada de GetCapabilities à um serviço, esta aplicação cliente vai precisar fazer uma requisição via Get ou Post junto ao serviço, utilizando uma série de parâmetros necessários para identificar a operação, após, o servidor retornará um documento XML, que a aplicação deve realizar a extração dos dados deste documento. 2.3 Iniciativas no Brasil Devido ao crescimento da necessidade do uso de Sistemas de Informações Geográficas (SIGs) ao redor do mundo, nas mais diversas áreas, viu-se no Brasil a motivação para se criar uma biblioteca voltada à construção de aplicações geográficas (CÂMARA, 2008). A TerraLib é uma biblioteca de código fonte aberto escrita em C++, desenvolvida para dar suporte a construção de aplicativos geográficos. Foi idealizada e é mantida pelo Instituto Nacional de Pesquisas Espaciais (INPE), pela Fundação de Ciência, Aplicações e Tecnologia Espaciais (FUNCATE) e a Tecnologia em Computação Gráfica (TecGraf). No entanto, apesar de existirem instituições que mantém a TerraLib, o grande ideal é que ela não só sirva como um suporte ao desenvolvimento, mas que exista contribuições da comunidade desenvolvedora da área de geoprocessamento à biblioteca (CÂMARA, 2005).

29 29 A TerraLib possui funções para a tradução de dados espaciais, estruturas de dados espaciais, representações de mapas e algoritmos para analise espacial, além de propor também um modelo de banco de dados geográfico para informações espaciais. Outra característica importante da TerraLib é a facilidade de integração numa aplicação geoespacial, pois ela se torna uma camada na aplicação (Figura 2.7), abstraindo o SGBD utilizado. Figura 2.7. Utilização da TerraLib por uma aplicação. Fonte: TERRALIB, TerraOGC De acordo com o documento TerraLib (2011), existem algumas extensões da TerraLib (Figura 2.8) criadas para promover novas funcionalidades no uso da biblioteca. Uma dessas extensões que têm um ideal parecido com o deste trabalho é o TerraOGC.

30 30 Figura 2.8. Extensões TerraLib. Fonte: TERRALIB, O TerraOGC é uma extensão que permite o uso das funcionalidades e base de dados TerraLib no ambiente da internet. Essa extensão utiliza uma arquitetura baseada nos serviços OWS. Atualmente, o TerraOGC encontra-se na versão 1.0.0, e tem suporte a aos serviços: Web Map Service (WMS), Web Feature Service (WFS) e Web Coverage Service (WCS). Tanto o TerraOGC, quanto a TerraLib podem ser encontrados para download em TERRALIB (2011). 2.4 A Fundação OSGeo A Open Source Geospatial Foundation (OSGeo), é uma fundação sem fins lucrativos, que têm como missão promover o suporte ao desenvolvimento colaborativo de código livre na área geo-espacial. A fundação possui vários projetos, dentre eles estão diversos SIGs, bem como bibliotecas que dão suporte no desenvolvimento de aplicações geográficas (OSGEO, 2012).

31 A Biblioteca GeoTools Um dos projetos do OSGeo, que possui um foco parecido com o deste trabalho é a biblioteca GeoTools. Esta API open source é escrita em Java e segue os padrões internacionais do OGC. O GeoTools atualmente possui um extenso arcabouço de classes para o desenvolvimento de aplicações geo-espaciais, em Java. Bem como, têm a colaboração de uma extensa comunidade de desenvolvedores (GEOTOOLS, 2012). A biblioteca GeoTools, suporta uma extensa gama de padrões especificados pelo OGC. Portanto, o uso do GeoTools na criação de aplicações geográficas que seguem de forma irrestrita os padrões OGC, se demonstra bastante eficaz, dado que existem alguns SIGs da própria fundação OSGeo desenvolvidos com base no GeoTools. Apesar de todo o poder da biblioteca GeoTools no ambiente Java, existem aplicações geográficas que não seguem exatamente o modelo de dados especificado pelo consórcio OGC. Um exemplo desse tipo de aplicação seria uma aplicação desenvolvida com base no modelo de dados TerraLib. A API proposta neste trabalho visa permitir o uso de serviços geográficos, por quaisquer aplicações geográficas, fazendo o papel de mediador entre o Web Service Geográfico e a aplicação, independente do modelo de dados. Enquanto que para utilizar o suporte a serviços geográficos com o GeoTools é necessário que a aplicação importe também toda a base da biblioteca que da suporte à modelagem do consórcio OGC.

32 32 3 REVISÃO TECNOLOGICA Nesta seção serão abordadas as tecnologias utilizadas neste protótipo da API Linguagem Java A linguagem de programação Java foi concebida em 1995, pela empresa Sun Microsystems, foi inicialmente utilizada no desenvolvimento de pequenos sistemas para eletrodomésticos, porém, com o tempo a linguagem passou por um grande crescimento e inúmeras transformações. Atualmente a Oracle é a empresa mantenedora do Java, que é uma das linguagens de programação mais difundidas do mundo, alguns dos grandes atrativos dessa linguagem são (Oracle, 2011): Independência de Plataforma: o Java roda encima da Java Virtual Machine (JVM), que por sua vez tem a responsabilidade de abstrair o sistema operacional que está sendo utilizado, ou seja, um programa escrito em Java tem a capacidade de rodar em ambiente Windows, ou Linux, por exemplo; Comunidade Ativa: por Java ser um projeto Open Source em sua versão OpenJDK, possui uma grande comunidade ativa que desenvolve inúmeras ferramentas livres, ajudando a plataforma a crescer cada vez mais; Grande número de Frameworks: atualmente a linguagem Java possui inúmeros frameworks e APIs para se trabalhar com as mais diversas coisas, como por exemplo: utilização de XML, bancos de dados, web, 3D, entre outros. Neste projeto, tornou-se interessante o uso de Java devido à facilidade que a plataforma oferece na utilização de XML. Nas subseções a seguir serão abordados alguns recursos oferecidos pela linguagem que foram utilizados na implementação do protótipo.

33 Java Architeture for XML - Binding Uma das abordagens da plataforma Java para uso de XML é a especificação Java Archteture for XML Binding (JAX-B). A própria JDK a partir da quinta versão possui uma implementação nativa desta especificação (Figura 3.1). Figura 3.1. Arquitetura e uso do JAX-B. Fonte: JAX-B, A arquitetura JAX-B possibilita a criação de classes Java que correspondem a um determinado documento XML, essas classes podem ser geradas utilizando o documento XML Schema (XSD) que descreve a estrutura do XML que será lido. O JAX-B possibilita com base nas classes, tanto a leitura, quanto a escrita de documentos XML que possuem aquela determinada estrutura (JAX-B, 2011) Compilação OGC para JAX-B Considerando que tanto a GML, quanto os serviços OWS possuem seus XSDs bem definidos, é possível utilizar o JAX-B para criar classes correspondentes a tais Schemas, porém, quando existe dependência entre diferentes documentos XSD como é o caso do gml.xsd que depende

34 34 de vários outros documentos, o processo de geração de classes se torna mais complicado com relação a configurações. Atualmente existe um projeto Open Source disponível em OGC TOOLS (2011), que foi criado com o intuito de prover as classes geradas a partir dos documentos XSD do OGC. Com isso, os desenvolvedores que têm interesse em criar sistemas que utilizam os padrões podem utilizar essa biblioteca de classes em suas aplicações sem ter a preocupação de gerar e documentar essas classes. Na implementação deste trabalho foram utilizadas classes que possibilitam a leitura e escrita de objetos GML e WFS XML Schema Object Model O XML Schema Object Model (XSOM), é uma biblioteca que possuí um modelo bem definido de classes capazes de representar quaisquer dados que se encontram em um documento XSD, bem como um parser capaz de ler um XSD e criar objetos com os dados do documento. Essa API permite que aplicações Java que precisem utilizar dados contidos em determinado XSD o façam de forma simplificada. Para se ter um cliente para serviço WFS, por exemplo, é indispensável o suporte a leitura de XSD em tempo de execução, pois, o método DescribeFeatureType retorna a descrição da estrutura das feições na forma de documentos XSD (XSOM, 2011) Xerces O projeto XERCES (2011) da fundação Apache, disponibiliza implementações das duas interfaces de programação para XML mais comuns, Document Object Model (DOM) e Simple API for XML (SAX). Atualmente o projeto conta com API para Java, C++ e Pearl.

35 35 O Xerces possui uma gama de funcionalidades para se percorrer e manipular documentos XML. A JDK tem a implementação do xerces de forma nativa. Com isso, não é necessário adicionar qualquer novo componente ao projeto. Na construção da API proposta neste trabalho, foi utilizado o conjunto de classes que dão suporte a abordagem DOM, pois, assim é possível integrar essa API ao JAX-B, dando mais dinamismo à manipulação de documentos XML Java Topology Suite A Java Topology Suite (JTS), é uma API escrita em Java que implementa a especificação SFS (OGC, 1999), contendo todo o modelo geométrico SFS. Esta biblioteca possui um extenso conjunto de classes que disponibilizam uma série de métodos e algoritmos para tratamento de dados espaciais (DAVIS, 2003). A biblioteca JTS foi criada com o intuito de possibilitar a construção de aplicações, em Java, que tenham a necessidade de manipular, integrar, recuperar e validar dados espaciais. Documentação, estudos de caso, guia de desenvolvimento, entre outros sobre a JTS podem ser encontrados em VIVIDSOLUTIONS (2011). A JTS foi utilizada na construção da API proposta neste trabalho, com a finalidade de disponibilizar ao desenvolvedor uma forma mais fácil de manipular as geometrias recuperadas de serviços WFS, considerando que todos os serviços OWS utilizam também o padrão SFS.

36 36 4 ARQUITETURA DA API Neste capítulo serão abordados tópicos relativos a aspectos de projeto de software, bem como tecnologias utilizadas na concretização deste projeto Padrões estruturais de projeto Segundo Gamma (1995), a criação de aplicações orientadas a objetos não é tarefa fácil, isso se torna ainda mais complexo quando se tem que pensar em reuso e flexibilidade do código. Com isso, torna-se importante a aplicação de alguns conceitos que permitem uma melhor estruturação de um projeto de software, ajudando a definir responsabilidades de classes, heranças, interfaces, hierarquias, entre outros. Essas regras são chamadas de padrões de projeto (Design Patterns). Dentro deste mundo dos Design Patterns existe um conjunto de padrões denominados padrões estruturais (Structural Patterns), tais padrões se referem diretamente em como as classes e objetos irão compor a aplicação, ou seja, definem a estrutura de forma geral. Em Gamma (1995), são descritos sete padrões estruturais: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Cada um desses padrões tem como foco propor uma estrutura capaz de trazer maior desacoplamento e facilidade no reuso do código, de acordo com determinados tipos de problemas Padrão Façade Para a proposta deste trabalho um padrão de projeto que se encaixou bem é o Façade que propõe uma interface unificada de alto nível responsável pela abstração no uso de um subsistema de alta complexidade. Esse padrão é muito utilizado no desenvolvimento de bibliotecas.

37 37 A grande motivação para o uso do Façade vem da dificuldade de se desenvolver uma aplicação utilizando-se diretamente das APIs de mais baixo nível, tendo que entender o funcionamento de todas elas (Figura 4.1). Figura 4.1. Modelo de aplicação sem uso do padrão Façade. Fonte: GAMMA, A Figura 4.1 demonstra uma aplicação que utiliza diretamente diversas tecnologias em seu desenvolvimento, ou seja, neste modelo não são utilizados os conceitos do padrão Façade. Figura 4.2. Modelo de aplicação utilizando o padrão Façade. Fonte: GAMMA, 1995.

38 38 Com a Figura 4.2 percebe-se que com a aplicação do padrão Façade toda a complexidade do uso das diversas APIs é escondido da aplicação por meio da criação de uma interface que simplifica o uso do subsistema. Tendo o Façade como proposta de padrão, a arquitetura da API proposta neste trabalho fica da seguinte forma (Figura 4.3). Figura 4.3. Modelo da API com o uso do padrão Façade. Fonte: GAMMA, A API abstrai o uso de um subsistema que é composto de outras bibliotecas como o JAX-B, uma compilação de classes dos XMLSchemas da OGC para JAX-B, entre outras. No caso da Figura 4.3 em especifico a aplicação do padrão Façade pode ser vista na interface WFSClient que é responsável pela abstração do subsistema Modelagem da API Nesta subseção serão abordados alguns tópicos referentes à modelagem da API.

39 Casos de Uso A API proposta neste trabalho possui os seguintes casos de uso (Figura 4.4). Figura 4.4. Casos de Uso da API. Os casos de uso apresentados na Figura 4.4 são referentes a uma implementação voltada ao serviço de WFS, os quais têm as seguintes funções: Requisitar Capacidades do Serviço: é a implementação do método GetCapabilities do WFS, o qual retorna quais dados e operações, o servidor disponibiliza; Obter Descrição de Feições que Deseja Recuperar: corresponde ao método DescribeFeatureType, o qual é responsável por descrever o tipo dos dados que determinada feição geográfica possui; Recuperar Feições Geográficas: método responsável por trazer as feições do servidor.

40 Classes da API A proposta de solução para os requisitos apresentados anteriormente é demonstrada ao longo desta subseção, definindo responsabilidades de classes, bem como quais recursos das tecnologias abordadas essas classes utilizam Classe WFSCapabilitiesRequester A Figura 4.5 demonstra o modelo de classes para a recuperação e disponibilização das capacidades de um serviço WFS. Figura 4.5. WFSCapabilitiesRequester e suas dependências.

41 41 A classe WFSCapabilitiesRequester é responsável por fazer requisições de capacidades (GetCapabilities) a um determinado serviço WFS. Internamente ao método executegetcapabilities existe a lógica de negócio para que o servidor entenda que a aplicação está requisitando suas capacidades. Após resposta do serviço, com o documento XML de capacidades, são criados objetos JAX-B que contém os dados da resposta do serviço, a partir daí o objeto WFSCapabilitiesRequester disponibiliza, ao usuário, todos os dados via métodos get. A Figura 4.6 demonstra a interação com o serviço WFS. Figura 4.6. Interação entre WFSCapabilitiesRequester e um Serviço WFS Classe WFSDescribeFeatureRequester Tendo conhecimento, por meio do GetCapabilities, de quais feições geográficas o serviço WFS disponibiliza é possível obter suas descrições, ou seja, quais atributos que uma determinada feição possui, por meio do método DescribeFeatureType. Para isso foi criada a classe WFSDescribeRequester que tem a responsabilidade de realizar requisições para obter a estrutura das feições desejadas (Figura 4.7).

42 42 Figura 4.7. WFSDescribeRequester e suas dependências. Considerando que a resposta de um servidor WFS, à requisição DescribeFeatureType, é um documento XSD contendo a descrição das feições requisitadas, a classe WFSDescribeRequester utiliza-se da biblioteca XSOM para que seja possível extrair as informações do documento de forma simples. Esta classe permite que sejam feitas requisições tanto via método Get, quanto Post. Após executado o DescribeFeatureType é possível, por meio do método getfeaturedescriptionmap, obter um mapa onde a chave é o nome da feição (QName) e o valor uma lista que contem os nomes e tipos dos atributos da referentes a esta feição. Na Figura 4.8 pode-se visualizar como se da um ciclo do WFSDescribeRequester.

43 43 Figura 4.8. Comunicação entre WFSDescribeRequester e um Serviço WFS Classe WFSGetFeatureRequester Para suprir a necessidade de recuperação das feições geográficas, disponibilizando-as à aplicação, foi criada a classe WFSGetFeatureRequester que como pode-se visualizar na Figura 4.9 possui algumas relações com outras classes.

44 44 Figura 4.9. WFSGetFeatureRequester e suas dependências As classes representadas na Figura 4.9 têm as seguintes funções: FeatureAttribute: representa um atributo não geográfico de uma feição, possui apenas um nome e um valor; GMLFeature: é a representação para uma feição geográfica recuperada de um serviço WFS. Esta classe possui ligação com as classes geradas pelo JAX-B, EnvelopeType que define a área que envolve esta feição no mundo e AbstractGeometryType que representa uma geometria; GMLFeatureCollection: é uma coleção de feições geográficas, esta classe possui uma lista de GMLFeature e têm um EnvelopeType que engloba todas as feições da lista; GMLHandler: esta classe é capaz de extrair uma geometria AbstractGeometryType, com base em um nó de um documento XML; GMLFeatureFactory: tem a responsabilidade de criar uma coleção de feições com base em um documento retornado pelo GetFeature. Está classe utiliza o mapa gerado pela WFSDescribeRequester para recuperar os atributos das

45 45 feições retornadas pelo servidor. Quando um atributo é geométrico esta classe faz uso da GMLHandler para recuperar a geometria; WFSGetFeatureRequester: classe responsável por executar requisições GetFeature à serviços WFS e utilizar a GMLFeatureFactory para disponibilizar os dados retornados na forma de um objeto GMLFeatureCollection Classe WFSClient Para tornar mais fácil o uso da API, foi criada uma classe de mais alto nível chamada WFSClient que tem a função de abstrair o uso das classes WFSCapabilitiesRequester e WFSGetFeatureRequester (Figura 4.10). Figura Modelo de abstração dos Requesters. Com o modelo apresentado, o usuário da API tem acesso a um objeto WFSCapabilitiesRequester somente após a requisição ao serviço. De posse dos dados, o usuário pode criar suas Queries (objetos QueryType) e utilizar o método getfeature para obter as feições desejadas.

46 Conversão de geometrias GML para JTS Em adição aos requisitos propostos foi criada na API uma camada de conversão de geometrias pertencentes às classes geradas pelo JAX-B, para geometrias da biblioteca JTS (Figura 4.11). Figura Camada de conversão. As classes da Figura 4.11 possuem as seguintes responsabilidades: SimpleFeature: representa uma feição geográfica, assim como GMLFeature. Porém, esta classe tem relação com classes da biblioteca JTS como Geometry e Envelope; SimpleFeatureCollection: é uma coleção de SimpleFeatures que também se utiliza de Envelope da JTS; GML311ToJTS: esta classe é responsável pela conversão de geometrias, das classes geradas pelo JAX-B, para geometrias JTS; GMLFeatureToSimpleFeature: disponibiliza métodos para conversão de GMLFeature e GMLFeatureCollection para SimpleFeature e

47 47 SimpleFeatureCollection respectivamente. Esta classe utiliza a GML311ToJTS para realizar a conversão de geometrias. Tanto as geometrias GML, quanto as JTS seguem o padrão SFS (OGC, 1999). Porém, as classes geradas, com o JAX-B, não possuem os mesmos recursos que a biblioteca JTS disponibiliza para a manipulação de geometrias. Com isso, foi importante a criação das conversões a fim de possibilitar o uso dos algoritmos espaciais da JTS Estrutura de Pacotes da API As classes modeladas anteriormente ficaram com a seguinte estrutura de pacotes (Figura 4.12). Figura Estrutura de Pacotes da Biblioteca. Cada pacote possui classes com as seguintes responsabilidades: Enumeration: possui os enumeradores da biblioteca, ou seja, as classes que determinam os valores constantes que são utilizados como, por exemplo, os namespaces fornecidos pelo OGC; Conversion: camada de conversão da API, neste pacote que se encontram classes como a GML311ToJTS; Feature: pacote dedicado as classes de feição SimpleFeature e SimpleFeatureCollection;

48 48 Gml: possui classes relacionadas à GML. Por exemplo, GMLHandler, GMLFeatureFactory, entre outros; Wfs: estão armazenados neste pacote, as classes de requisição, como WFSCapabilitiesRequester; Teste: contém os testes executados para validar as funcionalidades da biblioteca; Xml: pacote com as classes que manipulam documentos XML via DOM; Exception: possui exceções que podem ser lançadas com relação a problemas que podem ocorrer com relação a XML; Xsom: tem classes que utilizam a biblioteca XSOM, para leitura de XMLSchemas.

49 49 5 TESTES E RESULTADOS Neste capítulo será demonstrado um cliente WFS simples, que foi desenvolvido utilizando a API internamente a um SIG, bem como as funcionalidades disponibilizadas pela API proposta neste trabalho Geographical Lightweight Universal Engine Para ser possível demonstrar a funcionamento da API proposta neste trabalho foi construído um protótipo simples de cliente WFS dentro do Sistema de Informações Geográficas Geographical Lightweight Universal Engine (GLUE) (Figura 5.1). Este sistema é desenvolvido pela Fundação de Ciências, Aplicações e Tecnologia Espaciais (FUNCATE), apenas com tecnologias abertas, como Java e a TerraLib. Figura 5.1. Geographical Lightweight Universal Engine O GLUE atualmente, possui suporte a dados disponibilizados no modelo TerraLib. Este SIG também permite a visualização de mapas recuperados de serviços Web Map Service (WMS), bem como de servidores de mapas globais como: Open Street Maps, Bing e Google.

50 Cliente WFS O cliente WFS introduzido ao GLUE possui uma interface simples (Figura 5.2), que permite que um usuário do sistema entre com uma URL de um serviço WFS, escolha quais feições deseja visualizar e selecione um número máximo de feições a serem recuperadas. Figura 5.2. Cliente WFS GLUE. Tendo selecionado as feições desejadas e o número máximo, o usuário finaliza a operação e a partir daí, depois de recuperadas as feições, elas são mostradas na área de visualização do GLUE. No decorrer deste capítulo os recursos da API serão demonstrados usando este cliente WFS.

51 Uso da API Como já visto anteriormente, a API permite que o usuário faça uso de serviços WFS de forma simplificada por meio de uma classe de alto nível chamada WFSClient. Esta classe possui dois métodos (Figura 4.10). O uso desses métodos é exemplificado na Figura 5.3. Figura 5.3. Demonstração WFSClient. Na demonstração apresentada na Figura 5.3, é possível observar o comportamento da classe WFSClient. Inicialmente é necessário definir uma URL válida para um serviço WFS. Por meio do método getcapabilities é feita a requisição ao serviço e recuperadas as informações sobre as capacidades do servidor. Após isso, é possível utilizar o método getfeature para recuperar as feições desejadas. Mais adiante neste capítulo será detalhado como utilizar o objeto WFSCapabilitiesRequester e também como montar os objetos QueryType para se recuperar as feições Uso da WFSCapabilitiesRequester A classe WFSCapabilitiesRequester, como visto na seção 3, tem a responsabilidade de realizar requisições GetCapabilities, ao serviço WFS, e reter os dados retornados. Esta classe possui um conjunto de métodos get (Figura 5.4) que permitem a recuperação, pelo usuário, dos dados do GetCapabilities.

52 52 Figura 5.4. Métodos que disponibilizam os dados do GetCapabilities. Os métodos disponibilizados pela classe WFSCapabilitiesRequester, tem a função de listar, por meio de objetos JAX-B, algumas coisas como: getfeaturelist: quais feições geográficas o serviço é capaz de oferecer; getgeometryoperandlist: os tipos de objetos geométricos utilizados pelo serviço, por exemplo, gml:point; getgmlobjectlist: lista de objetos do servidor que suportam a operação GetGMLObject; getoperationsmetadata: metadados sobre as operações suportadas pelo servidor como GetCapabilities, DescribeFeatureType, GetFeature, entre outros; getoperationstypelist: quais operações transacionais este servidor suporta, por exemplo, Query, Lock, Delete, Update, etc; getspatialoperatorlist: lista de operações espaciais que o servidor provê, como interseção, está dentro, união, sobrepõe-se, etc. Com base nessas informações, é possível obter-se todas as informações necessárias para realizar outras operações junto ao servidor. A Figura 5.2 demonstra uma interface gráfica construída utilizando o método getfeaturelist, colocando seus nomes para a seleção do usuário Construção de Queries Viu-se na Figura 5.3 que para se fazer uma chamada de GetFeature a um serviço WFS, é necessário construir uma lista de objetos QueryType que correspondem as feições que se

53 53 deseja recuperar. Nesta subseção serão demonstradas algumas formas de se construir esses objetos. A Figura 5.5 demonstra como construir a lista de queries, sem nenhum tipo de filtro. Neste tipo de requisição o serviço retornará as feições do tipo requisitado, na ordem em que estiverem armazenadas respeitando apenas o valor passado como maxfeatures, que representa o número máximo de feições que o cliente deseja receber. Figura 5.5. Criação de queries simples De posse da lista de tipos de feição que o usuário deseja recuperar, é possível criar uma lista onde cada objeto QueryType corresponde a uma feição a ser recuperada. Para isso, é necessário apenas adicionar o nome da feição ao QueryType e colocar este objeto em uma lista de queries, para que posteriormente esta lista seja utilizada na chamada ao GetFeature. Se for executada a requisição exemplificada na Figura 5.2, onde a feição escolhida é Focos_Brasil e o número máximo de feições é trinta, se tem o seguinte resultado (Figura 5.6).

54 54 Figura 5.6. Resultado de GetFeature simples. Os pontos em imagens de fogo representam os focos de incêndio recuperados, sem filtros, do serviço WFS (DPI, 2011). O seguinte exemplo de código demonstra como construir um filtro não-espacial para a recuperação de feições (Figura 5.7). Figura 5.7. Criação de filtro não-espacial simples. O método criarfiltro retorna um filtro que possibilita, com base em uma propriedade da feição Focos_Brasil, recuperar feições especificas do serviço. Para definir qual é o nome do atributo

55 55 pelo qual se deseja fazer a filtragem é necessária a criação de um objeto PropertyNameType e adicionar o nome da propriedade a ele, que no caso foi uf, e para definir o valor é criado um objeto LiteralType e nele é adicionado o valor do atributo MA. A seguir, o nome e o valor da propriedade são adicionados a um objeto de comparação BinaryComparisonOpType e este objeto é adicionado ao filtro. O FilterType criado pode ser adicionado a um QueryType de requisição à Focos_Brasil (Figura 5.8). Figura 5.8. Query com filtro. Executando a mesma requisição da feição Focos_Brasil, têm-se o seguinte resultado (Figura 5.9). Figura 5.9. Resultado da requisição com filtro. É possível visualizar no mapa que foram recuperados apenas focos ocorridos no estado do maranhão. A tela no lado esquerdo mostra os dados referentes a um dos pontos recuperados. Com o uso da API é possível a criação de vários tipos de filtro, o OGC possuí toda uma documentação para a criação de filtros (Filter, 2005).

56 Uso da Camada de Conversão Como é possível ver na Figura 5.5, o resultado de um getfeature, utilizando a API, é um GMLFeatureCollection este objeto possuí todos os dados retornados sejam eles geométricos ou não. Porém, para desenvolver a parte de visualização do protótipo WFS do GLUE foi utilizada a camada de conversão das feições GML para feições baseadas em JTS (Figura 5.10). Figura Conversão de objetos GML para JTS. O procedimento de conversão é bem simples, depois de ter recuperado os dados em um objeto GMLFeatureCollection, deve-se se usar a classe GMLFeatureToSimpleFeature para transformar a coleção em um SimpleFeatureCollection. Essa operação facilita muito o desenvolvimento da parte de visualização e manipulação das geometrias pertencentes às feições, devido a gama de algoritmos espaciais que a biblioteca JTS dispõe Testes com Vários Provedores de Serviço WFS Ao longo do desenvolvimento deste projeto a API foi testada requisitando feições em diferentes serviços WFS: WFS queimadas (DPI, 2011), infraestrutura de dados espaciais da Espanha (IDEE, 2011), U. S. Geological Survey (FRAMEWORK, 2011a) (FRAMEWORK, 2011b) e servidor de demonstração MapServer (MAPSERVER, 2011), entre outros serviços.

57 57 Como os provedores de serviço também seguem as especificações OGC, viu-se que é possível com base nos padrões estabelecer comunicação de forma integra com vários servidores WFS. A Figura 5.11 e Figura 5.12 demonstram dados recuperados de alguns serviços internacionais. As linhas e polígonos correspondentes as feições recuperadas estão representadas em azul no mapa. Figura Dados Hidrográficos da Espanha. Figura Dados do U. S. Geological Survey Região do Havaí.

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008 Arquiteturas, Padrões e Serviços para Geoprocessamento Lúbia Vinhas 13/05/2008 Desejo saber estatísticas sobre áreas queimadas. Desejo fazer análises por localização, por classes de uso ou ainda por seleção

Leia mais

PRODUÇÃO CARTOGRÁFICA SERVIÇOS WEB

PRODUÇÃO CARTOGRÁFICA SERVIÇOS WEB SERVIÇOS WEB World Wide Web Evolução de simples páginas com conteúdo estático para páginas com conteúdos dinâmicos (extraídos, principalmente, de Sistemas Gerenciadores de Bancos de Dados SGBD) Tecnologias

Leia mais

Geoprocessamento e Padrões OGC

Geoprocessamento e Padrões OGC Geoprocessamento e Padrões OGC Martin Pereira 36 slides Agenda Geoprocessamento Definição Histórico SIG OGC Definição Importância Histórico Padrões Slide 2 de 36 Geoprocessamento Definição Disciplina do

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

OpenGIS e Web Services aplicados ao intercâmbio de dados geográficos

OpenGIS e Web Services aplicados ao intercâmbio de dados geográficos OpenGIS e Web Services aplicados ao intercâmbio de dados geográficos Michael Schuenck dos Santos 1, Valéria Gonçalves Soares 1 1 Departamento de Informática e Matemática Aplicada - UFRN, Caixa Postal 515,

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

Estudo do XML, GML, SVG e WEBSERVICES (WMS e WFS) para formatação e divulgação de informações geográficas. Fábio Brandão¹ João Araújo Ribeiro¹

Estudo do XML, GML, SVG e WEBSERVICES (WMS e WFS) para formatação e divulgação de informações geográficas. Fábio Brandão¹ João Araújo Ribeiro¹ Estudo do XML, GML, SVG e WEBSERVICES (WMS e WFS) para formatação e divulgação de informações geográficas. Fábio Brandão¹ João Araújo Ribeiro¹ 1 Universidade do Estado do Rio de Janeiro (UERJ), PÓS-GRADUAÇÃO

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

Padrões OGC e Serviços Web Geoespaciais. Open Geospatial Consortium

Padrões OGC e Serviços Web Geoespaciais. Open Geospatial Consortium Padrões OGC e Serviços Web Geoespaciais Clodoveu Davis Open Geospatial Consortium O OGC idealizou uma arquitetura de software para acesso distribuído a dados geo-espaciais e recursos de geoprocessamento

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Conceitos Iniciais MARCEL SANTOS SILVA

Conceitos Iniciais MARCEL SANTOS SILVA Conceitos Iniciais MARCEL SANTOS SILVA DPI - INPE Criada em 1984, a Divisão de Processamento de Imagens (DPI) faz parte da Coordenação Geral de Observação da Terra/OBT do Instituto Nacional de Pesquisas

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Geoprocessamento com Software Livre. Anderson Maciel Lima de Medeiros Consultor em Geotecnologias

Geoprocessamento com Software Livre. Anderson Maciel Lima de Medeiros Consultor em Geotecnologias Geoprocessamento com Software Livre Anderson Maciel Lima de Medeiros Consultor em Geotecnologias SUMÁRIO O que é Software Livre? A GLP GNU Geoprocessamento Algumas Geotecnologias Geotecnologias Livres

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

MECANISMOS PARA INTERCÂMBIO DE DADOS GEOGRÁFICOS ATRAVÉS DE WEB SERVICES

MECANISMOS PARA INTERCÂMBIO DE DADOS GEOGRÁFICOS ATRAVÉS DE WEB SERVICES MECANISMOS PARA INTERCÂMBIO DE DADOS GEOGRÁFICOS ATRAVÉS DE WEB SERVICES Michael Schuenck e Valéria Gonçalves Soares Departamento de Informática e Matemática Aplicada - UFRN, Caixa Postal 515, 12201, Natal,

Leia mais

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu

Leia mais

Disseminação e Compartilhamento de Dados Geoespaciais na Web

Disseminação e Compartilhamento de Dados Geoespaciais na Web Disseminação e Compartilhamento de Dados Geoespaciais na Web Clique para editar o estilo do subtítulo mestre Diego Mendes Rodrigues Gerente Serviços e Soluções ERDAS diego.rodrigues@sccon.com.br Santiago

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

DISPONIBILIZAÇÃO DE SERVIÇOS BASEADOS EM LOCALIZAÇÃO VIA WEB SERVICES

DISPONIBILIZAÇÃO DE SERVIÇOS BASEADOS EM LOCALIZAÇÃO VIA WEB SERVICES DISPONIBILIZAÇÃO DE SERVIÇOS BASEADOS EM LOCALIZAÇÃO VIA WEB SERVICES GRACE KELLY DE CASTRO SILVA, PATRÍCIA MARIA PEREIRA e GEOVANE CAYRES MAGALHÃES (ORIENTADOR) CPqD Centro de Pesquisa e Desenvolvimento

Leia mais

7 Utilização do Mobile Social Gateway

7 Utilização do Mobile Social Gateway 7 Utilização do Mobile Social Gateway Existem três atores envolvidos na arquitetura do Mobile Social Gateway: desenvolvedor do framework MoSoGw: é o responsável pelo desenvolvimento de novas features,

Leia mais

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Tiago Eugenio de Melo tiago@comunidadesol.org 1 Sumário Conceitos GIS e Software Livre Ferramentas: Jump Qgis Thuban MapServer

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA

Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA Introdução ao Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA INTRODUÇÃO GeoServer GeoTools INTRODUÇÃO GeoServer Servidor de informação geoespacial OGC; Utilizado para

Leia mais

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN Prof. Dr. José Eduardo Santarem Segundo USP santarem@usp.br TuaneFaria USP tuanefaria@yahoo.com.br Introdução Disponibilizar Dados Disponibilizar

Leia mais

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informação

Leia mais

Geoprocessamento e Internet

Geoprocessamento e Internet Geoprocessamento e Internet Lúbia Vinhas Divisão de Processamento de Imagens INPE Internet A internet é um sistema de global que liga bilhões de redes de computadores administradas, mantidas e sustentadas

Leia mais

Arquitetura Orientada a Serviço

Arquitetura Orientada a Serviço Arquitetura Orientada a Fabio Perez Marzullo IEEE Body of Knowledge on Services Computing Sponsored by Technical Committee on Services Computing, IEEE Computer Society 1 SOA e Web Services SOA é um modelo

Leia mais

Governo Federal / Governo Estadual. Imagem suportando a Infraestrutura Nacional de Dados Espaciais INDE Carlos Toledo

Governo Federal / Governo Estadual. Imagem suportando a Infraestrutura Nacional de Dados Espaciais INDE Carlos Toledo Governo Federal / Governo Estadual Imagem suportando a Infraestrutura Nacional de Dados Espaciais INDE Carlos Toledo Plenária Desafios comuns Governança de dados espaciais; Informação geográfica é um ativo

Leia mais

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Centro de Trabalho Indigenista CTI

Centro de Trabalho Indigenista CTI Centro de Trabalho Indigenista CTI Termo de Referência para Contratação de Consultoria Técnica Junho de 2015 Projeto Proteção Etnoambiental de Povos Indígenas Isolados e de Recente Contato na Amazônia

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros (regras de interação)

Leia mais

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc.

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. SUMÁRIO Apresentação da ementa Introdução Conceitos Básicos de Geoinformação Arquitetura de SIGs Referências Bibliográficas APRESENTAÇÃO

Leia mais

11 O Open Geospatial Consortium

11 O Open Geospatial Consortium 11 O Open Geospatial Consortium Clodoveu A. Davis Jr. Karla A. V. Borges Ligiane Alves de Souza Marco Antonio Casanova Paulo de Oliveira Lima Júnior 11.1 Introdução Este capítulo resume o modelo conceitual,

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

Leia mais

OFICINA USO DO I3GEO. Levindo Cardoso Medeiros. levindocm@gmail.com

OFICINA USO DO I3GEO. Levindo Cardoso Medeiros. levindocm@gmail.com OFICINA USO DO I3GEO Levindo Cardoso Medeiros levindocm@gmail.com ESTRUTURA INTRODUÇÃO UTILIZANDO O I3GEO Aprendendo a navegar pelo I3Geo Propriedades do mapa ADICIONANDO E MANIPULANDO CAMADAS Adicionando

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

Projeto. Observatório Nacional de Clima e Saúde

Projeto. Observatório Nacional de Clima e Saúde Projeto Observatório Nacional de Clima e Saúde Coordenação Técnica Institucional: Fiocruz e INPE Coordenação Nacional CGVAM- Coordenação Geral de Vigilância Ambiental Secretaria de Vigilância em Saúde

Leia mais

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi XML e Banco de Dados de Internet Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi Motivação Diversas aplicações Web utilizam Fontes de Dados (BD); Arquitetura Cliente-Servidor (2

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Mapserver Servidor de Mapas. João Araujo

Mapserver Servidor de Mapas. João Araujo Mapserver Servidor de Mapas João Araujo Por que fazer mapas? Mapas têm tido papel prepoderante nas atividades humanas por milhares de anos. Desde o início, mapas eram usados para mostrar onde as coisas

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB Deusa Cesconeti e Jean Eduardo Glazar Departamento de Ciência da Computação Faculdade de Aracruz UNIARACRUZ {dcescone, jean}@fsjb.edu.br RESUMO

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

A utilização do JSWDP para construção de Web Services

A utilização do JSWDP para construção de Web Services A utilização do JSWDP para construção de Web Services Fabiana Ferreira Cardoso 1, Francisco A. S. Júnior 1, Madianita Bogo 1 1 Centro de Tecnologia da Informação Centro Universitário Luterano de Palmas

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Integração de Sistemas de Gerenciamento de Redes de Telecomunicações Utilizando GML

Integração de Sistemas de Gerenciamento de Redes de Telecomunicações Utilizando GML Integração de Sistemas de Gerenciamento de Redes de Telecomunicações Utilizando GML Novembro/2003 Agenda Introdução Contexto Problema Objetivo Solução Integração de Sistemas de Telecom Rede Externa de

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Um Arcabouço open source em Python para DBC com

Um Arcabouço open source em Python para DBC com Um Arcabouço open source em Python para DBC com Suporte à Evolução Dinâmica não Antecipada Yguaratã C. Cavacanti 1, Hyggo Oliveira de Almeida 1, Evandro Costa 2 1 Instituto de Computação Universidade Federal

Leia mais

Jonathan J. Campos, Jefferson de Faria, William de O. Sant Ana

Jonathan J. Campos, Jefferson de Faria, William de O. Sant Ana APLICAÇÕES GEOGRÁFICAS NA WEB PARA INTEGRACÃO DE DADOS DO MONITORAMENTO AMBIENTAL DE ÁREAS DEGRADADAS PELA MINERAÇÃO DE CARVÃO NA BACIA CARBONÍFERA DO SUL DO ESTADO DE SANTA CATARINA Jonathan J. Campos,

Leia mais

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos Prof. Herondino O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos Inserir e integrar, numa única base de dados informações espaciais provenientes de: meio

Leia mais

CAPÍTULO 1 INTRODUÇÃO

CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 1 INTRODUÇÃO A atuação do homem no meio ambiente, ao longo da história, fornece provas de suas ações em nome do progresso. Esta evolução tem seu lado positivo, pois abre novos horizontes, novas

Leia mais

A HARMONIZAÇÃO DE DADOS ALTIMÉTRICOS SEGUNDO A DIRETIVA INSPIRE Edgar Barreira [Direção-Geral do Território]

A HARMONIZAÇÃO DE DADOS ALTIMÉTRICOS SEGUNDO A DIRETIVA INSPIRE Edgar Barreira [Direção-Geral do Território] A HARMONIZAÇÃO DE DADOS ALTIMÉTRICOS SEGUNDO A DIRETIVA INSPIRE Edgar Barreira [Direção-Geral do Território] Objetivo Apresentar o trabalho que tem vindo a ser desenvolvido no domínio da harmonização de

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Programação Orientada a Objetos. Padrões de Criação

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM Rogério Schueroff Vandresen¹, Willian Barbosa Magalhães¹ ¹Universidade Paranaense(UNIPAR) Paranavaí-PR-Brasil rogeriovandresen@gmail.com, wmagalhaes@unipar.br

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

SOFTWARES DE GEOPROCESSAMENTO

SOFTWARES DE GEOPROCESSAMENTO SOFTWARES DE GEOPROCESSAMENTO Ferramentas Proprietário para SIG É um conjunto de aplicativos computacionais de Sistemas de Informações Geográficas (SIGs) desenvolvido pela empresa norte americana Esri

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL Sistemas Distribuídos na Web Pedro Ferreira DI - FCUL Arquitetura da Web Criada por Tim Berners-Lee no CERN de Geneva Propósito: partilha de documentos Desde 1994 mantida pelo World Wide Web Consortium

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

PADRÕES PARA O DESENVOLVIMENTO NA WEB

PADRÕES PARA O DESENVOLVIMENTO NA WEB PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil edersonlikers@gmail.com,

Leia mais

Projeto JiT Clouds Sétimo Entregável

Projeto JiT Clouds Sétimo Entregável CTIC - Centro de Pesquisa e Desenvolvimento em Tecnologias Digitais para Informação e Comunicação Chamada de Projetos 2010 Computação em Nuvem Projeto JiT Clouds Sétimo Entregável QUARTA VERSÃO DOS MECANISMOS

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação 1 Ruironaldi dos Santos Cruz ARTIGO ARQUITETURA ORIENTADA A SERVIÇO SOA SERVICE

Leia mais