26
university-logo Introdu¸c˜ ao Requisitos do software desenvolvido Implementa¸c˜ ao Configura¸c˜ ao Inicializa¸c˜ ao do Servi¸cos Sistema de Preserva¸c˜ ao Digital Camada de Interface GT-DigitalPreservation C3SL - Centro de Computa¸c˜ ao Cient´ ıfica e Software Livre Departamento de Inform´ atica Universidade Federal do Paran´ a Setembro de 2011 Roberto Beraldo Chaiben Camada de Interface

GT-Digital Preservation - Camada de Interface

Embed Size (px)

DESCRIPTION

Apresentação da Camada de Interface, do GT - Digital Preservation, em 01 de setembro de 2011, na Escola de Redes da RNP, no Rio de Janeiro.

Citation preview

Page 1: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

Sistema de Preservacao DigitalCamada de Interface

GT-DigitalPreservationC3SL - Centro de Computacao Cientıfica e Software Livre

Departamento de InformaticaUniversidade Federal do Parana

Setembro de 2011

Roberto Beraldo Chaiben Camada de Interface

Page 2: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 3: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 4: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Localizacao da Camada de Interface

Armazenamento

Gerenciamento de Réplicas

Interface

Aplicações

Repositório

Roberto Beraldo Chaiben Camada de Interface

Page 5: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Motivacao

Camada de Interface

Padronizar a comunicacao do Cliente com a Camada deGerenciamento

Interface de facil utilizacao por aplicacoes (clientes)

Independente de Sistema Operacional

Acesso via WEB (HTTP)

Solucao: WEB Service

Roberto Beraldo Chaiben Camada de Interface

Page 6: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Visao Geral

Camada de Interface

Responsavel pela comunicacao entre cliente e repositorio(Camada de Gerenciamento)

Recebe requisicoes HTTP do cliente, formata-as e as envia aCamada de Gerenciamento

SSH para comunicacao com a Camada de Gerenciamento

Rsync para recuperacao de objetos digitais

WEB Service pode estar em maquina dedicada, semrepositorio para armazenamento de replicas

Roberto Beraldo Chaiben Camada de Interface

Page 7: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Visao Geral

Camada de Interface

Composta por um WEB Service

Servidor WEB incorporado a aplicacaoNao necessita de Apache, Tomcat ou outro servidor WEBpre-instalado

Padrao SOAP para comunicacao com cliente

Operacoes

Insercao de objeto digital (insert)Consulta por objeto digital (check)

Exibe os estados das replicas de um objeto digital

Recuperacao de objeto digital (retrieve)

Roberto Beraldo Chaiben Camada de Interface

Page 8: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Arquitetura

Apl

icaç

ão

Cam

ada de G

erenciamento

requisição SOAP

resposta SOAP

Web Service

insert()retrieve()check()

requisição (via SSH)

resposta (via RSYNC)

Figura: Arquitetura da Camada de Interface

Roberto Beraldo Chaiben Camada de Interface

Page 9: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

MotivacaoVisao GeralArquiteturaDefinicoes

Definicoes

SOAP

Simple Object Access Protocol - Protocolo Simples de Acessoa ObjetosPadrao de comunicacao entre cliente e servidor WEB ServiceBaseada em XMLChamada Remota de Procedimento (RPC - Remote ProcedureCall)

WSDL

Web Services Description Language - Linguagem de Descricaode WEB ServiceBaseada em XMLDescreve as funcoes disponıveis no WEB Service

Roberto Beraldo Chaiben Camada de Interface

Page 10: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 11: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

Requisitos

Requisitos do WEB Service

Java Runtime Environment 1.6 (JRE 6)

Rsync Daemon

SSH (Secure Shell)

Acesso HTTP

Recomenda-se o registro de um DNS para facilitar o acesso ao(s)WEB Service(s)

Roberto Beraldo Chaiben Camada de Interface

Page 12: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 13: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Implementacao

Implementacao do WEB Service

Linguagem Java

Robusta para aplicacoes WEBMultiplataformaDiversas opcoes de Servidores WEB para incorporacaoLinguagem altamente difundida e utilizada

Servidor WEB Jetty1 Incorporado a aplicacao

Nao necessita de Apache, Tomcat ou outro Servidor WEBpre-instalado

1http://jetty.codehaus.org/jetty/Roberto Beraldo Chaiben Camada de Interface

Page 14: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

API de Preservacao

Operacao de insercao de objeto digital

boolean insert( String fileKey, byte[] fileData, double reliability)

Operacao de consulta por objeto digital

String check( String fileKey )

Operacao de recuperacao de objeto digital

byte[] retrieve( String fileKey )

Roberto Beraldo Chaiben Camada de Interface

Page 15: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Operacao de Insercao

boolean insert( String fileKey, byte[] fileData, double reliability )

Retorno: True em caso de sucesso; False caso contrario

Parametros:

fileKey: Hash MD5 do conteudo do arquivo a ser inseridofileData: Conteudo do arquivo codificado em Base 64reliability: Confiabilidade desejada para o objeto (valor entre 0e 1)

Apenas uma solicitacao de insercao. Nao garantepreservacao imediata

Roberto Beraldo Chaiben Camada de Interface

Page 16: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Operacao de Consulta

String check( String fileKey )

Retorno: Retorna os dados da consulta no formato JSON

Repositorios em que as replicas se encontramConfiabilidade de cada repositorio on ha replicasData da ultima auditoriaData da proxima auditoriaComando Rsync a ser utilizado para recuperar a relicaConfiabilidade total do objeto preservado

Parametros:

fileKey: Hash do conteudo do objeto a ser consultado

Roberto Beraldo Chaiben Camada de Interface

Page 17: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Exemplo de retorno da operacao check

Roberto Beraldo Chaiben Camada de Interface

Page 18: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Operacao de Recuperacao

byte[] retrieve( String fileKey )

Retorno: Conteudo do arquivo, codificado em Base 64

Parametros:

fileKey: Hash do conteudo do objeto a ser recuperado

Roberto Beraldo Chaiben Camada de Interface

Page 19: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Fluxo de Operacoes

Insercao

WEB Service recebe arquivo do cliente e salva-o no diretorioincoming

Verifica integridade do arquivo (MD5)

Apesar de o TCP utilizar CRC, isso pode nao ser suficientepara garantir a integridade de arquivos grandes

Faz SSH e notifica um repositorio, que copia o arquivo doWEB Service via rsync

Roberto Beraldo Chaiben Camada de Interface

Page 20: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Fluxo de Operacoes

Consulta

WEB Service recebe a chave do objeto a ser consultado

Faz SSH e notifica um repositorio, solicitando uma operacaode consulta

WEB Service recebe a saıda do repositorio e monta a stringJSON a ser enviada ao cliente

Roberto Beraldo Chaiben Camada de Interface

Page 21: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

API de PreservacaoFluxo de Operacoes

Fluxo de Operacoes

Recuperacao

WEB Service recebe a chave do objeto a ser recuperado

Faz SSH e notifica um repositorio, solicitando uma operacaode recuperacao

WEB Service faz rsync para copiar o objeto do repositorio,que e salvo no diretorio outgoing

Transfere ao cliente o conteudo do arquivo, codificado emBase 64

Roberto Beraldo Chaiben Camada de Interface

Page 22: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 23: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

Configuracoes do WEB Service

Arquivo de configuracao: webservice/ws config file

Arquivo de configuracao compartilhado por Shell Script e JavaNao utilizar variaveis nativas do Shell ou do Java

Arquivo webservice/knownhosts.txt

Arquivo texto com a lista de hosts conhecidos pelo WEBService, nos quais fara SSH para a Camada de GerenciamentoExemplo:usuario1@host1usuario2@host2usuario3@host3

Recomenda-se a criacao de um usuario especıfico paraexecutar o WEB Service

Roberto Beraldo Chaiben Camada de Interface

Page 24: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

1 Introducao

2 Requisitos do software desenvolvido

3 Implementacao

4 Configuracao

5 Inicializacao do Servicos

Roberto Beraldo Chaiben Camada de Interface

Page 25: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

Inicializacao do Servicos

WEB ServiceVia script inicia servicos.sh:

inicia servicos.sh webservice start

Via linha de comando

java -jar webservice/servidor/dist/Webservice-DP.jar [porta] &

Rsync DaemonVia script inicia servicos.sh:

inicia servicos.sh rsync start

Via linha de comando

rsync --daemon --config=rsynd.conf --port=porta

Recomenda-se configurar a inicializacao dos servicos nainicializacao do Sistema Operacional (init.d, em Linux)

Roberto Beraldo Chaiben Camada de Interface

Page 26: GT-Digital Preservation - Camada de Interface

university-logo

IntroducaoRequisitos do software desenvolvido

ImplementacaoConfiguracao

Inicializacao do Servicos

Duvidas? Comentarios? Sugestoes?

Roberto Beraldo Chaiben Camada de Interface