Upload
roberto-beraldo-chaiben
View
148
Download
0
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
university-logo
IntroducaoRequisitos do software desenvolvido
ImplementacaoConfiguracao
Inicializacao do Servicos
Duvidas? Comentarios? Sugestoes?
Roberto Beraldo Chaiben Camada de Interface