opendap acessando dados heterogêneos em ambientes distribuídos david moises william voorsluys

37
OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

OPeNDAP

Acessando dados heterogêneos em ambientes distribuídos

David MoisesWilliam Voorsluys

Page 2: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Introdução

Na distribuição de dados científicos, as questões de incompatibilidade de formatos é um obstáculo significante

impede cientistas de compartilhar livremente seus dados

desencoraja o acesso a dados disponibilizados por centros de referência

Para tratar questões como esta em relação ao dados de oceanografia, alguns cientistas lançaram em 1993 um projeto chamado DODS (Distributed Oceanographic Data System)

Page 3: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Introdução

O objetivo de tal projeto é facilitar o compartilhar de dados Permitindo que cientistas importem dados para suas

ferramentas de análise diretamente de sites remotos, sem se preocupar com o formato no qual os dados estão armazenados

O esforço do projeto DODS tem duas partes fundamentais Como dados são transferidos pela rede até o

software cliente — Data Access Protocol (DAP) Aplicações para o uso do protocolo

Page 4: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Introdução

Dados relacionados a oceanografia envolvem uma grande variedade de tipos de dados e estruturas de organização

Então, o resultado é que foi desenvolvido um protocolo razoavelmente genérico

Sendo assim, embora desenvolvido para a comunidade de Oceanografia, DAP não tem nada que seja específico desta área

Page 5: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Introdução

Alguns cientistas logo reconheceram isto e adotaram DAP

Sendo assim, surgiram várias especializações do protocolo, gerando deste modo, uma duplicação de esforços desnecessária

Page 6: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

O que é OPeNDAP?

Para resolver este problema, OPeNDAP (Open Source Project for a Network Data Access Protocol) foi estabelecido em 2000

Desenvolvimento e promoção de softwares que facilitam o acesso de dados via rede Mais abrangente do que oceanografia

Page 7: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Por que usar OPeNDAP?

Exemplo: FTP versus OPeNDAP

Considere um cientista que deseja fazer análises de alguns dados que estão contida no site X

Para efeitos de comparação, ele precisará de outros dados que estão no site Y

Page 8: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Por que usar OPeNDAP?

Cenário com FTP

1. Importe o arquivo do site X para a máquina local do usuário. Isto requer outros passos:

• Deve ser feito o download dos dados usando FTP• Em seguida, os dados devem ser convertidos para um

formato que pode ser lido pelo programa que realiza a análise

2. Examine os dados e formule a requisição para o site Y

3. Importe o resultado para a máquina local.• Novamente deve ser feito o download e conversão dos dados

4. Analise os resultados finais

Page 9: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Por que usar OPeNDAP?

Cenário com OPeNDAP

1. Uma vez feita a requisição, os dados são baixados e convertidos automaticamente para a aplicação do usuário

• Restrições podem ser feitas e, deste modo, poupar tráfego na rede

2. Examine os dados e formule a requisição para o site Y

3. Mais uma vez, os dados são baixados e convertidos automaticamente

4. Analise os resultados finais

Page 10: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Por que usar OPeNDAP?

FTP OPeNDAP

Conversão de formatos- semântica dos dados- ordem das variáveis

Manual Automática

Restrições Não Sim

Page 11: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Por que usar OPeNDAP?

Benefícios O usuário não precisa aprender qualquer formato

de dados

Consultas podem extrair uma parte dos dados de um arquivo remoto no formato tratado por sua aplicação

Dados desnecessários não são transmitidos

Adicionando restrições a URL, o usuário pode consultar dados usando técnicas que não estão disponíveis na sua aplicação

Page 12: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Arquitetura Cliente/Servidor

O cliente OPenDAP é um programa que requisita e recebe dados

O servidor OPeNDAP é um programa que envia dados em um formato intermediário Servidor Web que utiliza um conjunto de scripts CGI ou

servlets JAVA Segurança

Podem ser definidos usuários e senhas para acesso aos dados (Servidor Web)

O protocolo OPeNDAP define como clientes e servidores comunicam um com o outro

Page 13: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Arquitetura Cliente/Servidor

Acesso a dados (cliente) Acessa dados remotos

através de aplicações rotineiras

Matlab GrADS Qualquer aplicação

netCDF Excel etc

Não precisa saber o formato no qual os dados estão armazenados

Pode consultar subconjuntos dos dados

Publicação de dados (servidor) Pode fornecer dados

em vários formatos netCDF FreeForm JGOFS DSP Etc

DAP provê um representação intermediária para dados

Permite consultar subconjuntos dos dados

Page 14: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Arquitetura Cliente/Servidor

Page 15: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Como OPeNDAP encontra dados?

Protocolo: protocolo de uma requisição via Internet

Host: endereço Internet do servidor

Servidor: característica especial do servidor para executar scripts CGI

Diretório: pasta que contém o arquivo desejado

Nome do arquivo

Sufixo: especificação do tipo de requisição diferentes sufixos demandam diferentes serviços do

servidor

Page 16: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Serviços OPeNDAP

Data Attribute (.das) Define os atributos dos dados

Data Descriptor (.dds) Descreve a estrutura dos dados

OPeNDAP Data (.dods) Retorna os dados requisitados pela URL

ASCII Data (.ascii) Representação ASCII dos dados requisitados

WWW Interface (.html) Apresenta um formulário HTML para pode ser usado para construção da

URL para requisitar dados Information (.info)

Fornece informações sobre o servidor e o arquivo de dados, em um formato HTML legível para humanos

Version (.ver) Mostra a versão do Servidor OPeNDAP

Help Retorna algum texto útil como resposta a uma URL especificada de

forma imprópria

Existe uma entidade responsável por decidir qual serviço processar e como

o programa deve passar os parâmetros extraídos da requisição

Page 17: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Serviços OPeNDAP

Um exemplo de consulta Usando o serviço ASCII Restringindo a consulta por tempo

http://dodsdev.gso.uri.edu/dods-3.4/nph-dods/data/nc/coads_climatology.nc.ascii?TIME[0:1:11]

Page 18: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Organização dos dados

Modelo de dados Conversão entre formatos Componentes do “DAP” Representação de dados

Tipos de dados Estruturas de dados

Meta-dados Sintáticos Semânticos

Page 19: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Modelo de dadosO que é?

Um conjunto de dados é formado por: Dados Um modelo de dados

Modelo de dados Define os tamanhos e a organização dos

valores Define a relação entre os valores

Computacionalmente falando ... Tipos de dados (inteiro, real, string) Coleções de dados (Estrutura, Array, Vetor)

Page 20: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Modelo de dadosExemplo

Representando a “Temperatura da Superfície do Mar”

Informações a representar em cada ponto: Coordenadas geográficas

(latitude, longitude) Tempo (Dia, Hora) Valores (Temperatura,

Profundidade)

Page 21: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Modelo de dadosExemplo

Mesmo dado Diferentes modelos de dado

Dataset {Float64 lat; Float64 lon; Int32 minutes; Int32 day; Int32 year; Sequence {

Float64 depth; Float64 temperature;

} cast; } station;

Dataset {Structure {

Float64 lat; Float64 lon;

} location;Structure {

Int32 minutes; Int32 day; Int32 year;

} time;Sequence {

Float64 depth; Float64 temperature;

} cast; } station;

Dataset {Structure {

Float64 lat; Float64 lon;

} location;Structure {

Int32 minutes; Int32 day; Int32 year;

} time;Float64 depth[500]Float64

temperature[500] } station;

Page 22: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Modelo de dadosAPI

Biblioteca de funções para operar sobre os dados

Funções da API estão “amarradas” ao modelo de dados

Funções desejáveis para uma API Ler Escrever Consultar Retirar subconjuntos

OPeNDAP suporta APIs bem distintas Ex.: netCDF e JGOFS

Page 23: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Conversão entre formatos

Questão central na implementação do OPeNDAP

Não é possível efetuar conversões entre “quaisquer modelos”

Muitas vezes a conversão implica em perda de informação

Informações contidas no modelo são essenciais para a correta análise dos dados

Page 24: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

O DAP (Data Access Protocol)

Consiste de 4 componentes1. Formato intermediário de representação2. Formato para metadados (dados

auxiliares) Metadado sintático (DDS) Metadado semântico (DAS)

3. Um procedimento para recuperar dados e metadados de fontes remotas (serviços)

4. Uma API para implementar o protocolo

Page 25: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Representação dos dados

Objetivos do formato intermediário Adequado para transmissão pela rede Ser genérico o suficiente para representar as

abstrações de diversos formatos Evitar perda de informações durante a conversão

Modelo OPeNDAP consiste de: Conjunto básico de tipos de dados Conjunto avançado de estruturas de dados e

operadores

Representação externa Formato independente de arquitetura Sun XDR (External Data Representation) RFC 1832

Page 26: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Elementos do DAP (1)

Tipos de dado básicos Byte, Int32, UInt32, Float64, String, Url

Estruturas List

Coleção de elementos de qualquer tipo Array

Estrutura indexada. Uma ou mais dimensões. Structure

Representa relação entre variáveis Sequence

Conjunto ordenado de grupos de variáveis Grid

Associação de um array de N dimensões com N vetores de índices

Page 27: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Elementos do DAP (2)

Operadores Byte, Int32, UInt32, Float64

< > = != <= >= String

= != ~= URL

* Array

[start:stop] [start:stride:stop] List

length(list), nth(list,n), member(list,elem) Structure, Sequence

“.” Grid

[start:stop] [start:stride:stop], “.”

Page 28: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Elementos do DAP (2)

Operadores Byte, Int32, UInt32, Float64

< > = != <= >= String

= != ~= URL

* Array

[start:stop] [start:stride:stop] List

length(list), nth(list,n), member(list,elem) Structure, Sequence

“.” Grid

[start:stop] [start:stride:stop], “.”

Page 29: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Dados auxiliares (metadados)

Objetivo Fornecer informação sobre a “forma e

tamanho” dos dados Associar atributos às variáveis Representações textuais

Dois tipos de metadado DDS (Dataset Descriptor Structure) DAS (Dataset Attribute Structure)

Page 30: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

DDS (Dataset Descriptor Structure)

Informações sintáticas

Tipos de dados

Relação entre os dados

Independente da área de estudo

Dataset {Structure {

Float64 lat; Float64 lon;

} location;Int32 time;Sequence {

Float64 depth;Float64 temperature;

} cast } station;

Page 31: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

DAS (Dataset Attribute Structure)

Informações semânticas

Associa atributos às variáveis

Dá significado aos valores

Pode conter atributos globais

Dependente da área de estudo

Attributes {station {

location {lat {

String units “degrees north” Float64 actual_range 0, 30.0;

}lon {

String units “degrees east”

Float64 actual_range -50.0, -

48.0; }

}time {

String format “Second since 1/1/1970”;

}cast {

depth {String units “meters”;

}temperature {

String units “degrees C”;}

}}

Page 32: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Exemplos

http://dodsdev.gso.uri.edu/dods-3.4/nph-dods/data/nc/coads_climatology.nc.das

http://dodsdev.gso.uri.edu/dods-3.4/nph-dods/data/nc/coads_climatology.nc.dds

http://dodsdev.gso.uri.edu/dods-3.4/nph-dods/data/nc/coads_climatology.nc.html

Page 33: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Como servir seu dado?

Page 34: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Como construir um novo Cliente/Servidor OPeNDAP?

Usar a biblioteca (API) OPeNDAP Frameworks (C++ e JAVA)

Servidor e Cliente Open source

Da parte do servidor implementar os serviços DAS, DDS e DODS

mapear as variáveis para serem representadas usando os tipos disponíveis pelo protocolo DAP

a API inclui software que gera automaticamente os outros serviços a partir destes implementados

implementar restrições que clientes podem fazer através de URLs

Da parte do cliente traduzir os dados intermediários usando DAS e DDS gerenciar abertura e encerramento de conexões

Page 35: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Catálogo

Se restringe a uma lista estática de URLs de arquivos http://www.opendap.org/data/datasets.cgi?xmlfilename=

datasets.xml&exfunction=none

Um arquivo pode ser registrado através do link www.opendap.org/data/addtolist.html

as informações necessárias são: Nome do arquivo URL Servidor E-mail

Page 36: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Potenciais aplicações no SegHidro

Aproveitamento de resultados de previsões atmosféricas Um resultado pode conter outro resultado Aproveitar rodadas de produção em

simulações ad hoc

Disponibilizar arquivos GRADS, PMH e PHR para análise em outras ferramentas (Matlab, Excel, etc)

Utilizar dados observados produzidos por outros centros para comparação

Page 37: OPeNDAP Acessando dados heterogêneos em ambientes distribuídos David Moises William Voorsluys

Considerações Finais

OPeNDAP e SegHidro Podem contribuir para uma ciência

melhor Facilitando o compartilhamento de

conhecimento entre parceiros

Limitações Documentação desatualizada