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í.

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

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

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

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

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

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

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

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

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

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

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

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: 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

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

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

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

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

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

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

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

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

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

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

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

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

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

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

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

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

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

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

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

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

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

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

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

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

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

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

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

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

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

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

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

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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

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

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

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

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

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

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

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

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

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

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

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

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

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

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

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

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004 Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004 1 Contextualização e arquitetura de funcionamento de um Web Service Os Web Services [PRV+01, Cer02]

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

POLÍTICA DE GEOPROCESSAMENTO DA ELETROSUL

POLÍTICA DE GEOPROCESSAMENTO DA ELETROSUL POLÍTICA DE GEOPROCESSAMENTO DA ELETROSUL Abril - 2013 SUMÁRIO 1. OBJETIVO... 3 2. ABRANGÊNCIA... 3 3. CONCEITOS... 3 3.1. Geoprocessamento... 3 3.2. Gestão das Informações Geográficas... 3 3.3. Dado Geográfico

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

ArcGIS for INSPIRE. ArcGIS. ArcGIS for INSPIRE. Discovery. Download. View

ArcGIS for INSPIRE. ArcGIS. ArcGIS for INSPIRE. Discovery. Download. View ArcGIS for INSPIRE Discovery View Download ArcGIS for INSPIRE ArcGIS Agenda ArcGIS for INSPIRE O que está incluído Template de Geodatabase Componentes Desktop Componentes Servidor Outras Novidades Evolução

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

TOTVS BA Guia de Customização Linha Logix

TOTVS BA Guia de Customização Linha Logix TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

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

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