O documento descreve uma camada de aplicação para preservação digital, incluindo sua introdução, requisitos, implementação e configuração. Apresenta orientações para desenvolvimento de aplicações que se comuniquem com o serviço WEB de preservação digital.
1. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
Sistema de Preserva¸˜o Digital
ca
Camada de Aplica¸˜o
ca
GT-DigitalPreservation
C3SL - Centro de Computa¸˜o Cient´
ca ıfica e Software Livre
Departamento de Inform´tica
a
Universidade Federal do Paran´
a
Setembro de 2011
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
2. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
3. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca Vis˜o Geral
a
Configura¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
4. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca Vis˜o Geral
a
Configura¸˜o
ca
Conclus˜o
a
Localiza¸˜o da Camada de Aplica¸˜o
ca ca
Aplicações
Interface
Gerenciamento de Réplicas
Armazenamento
Repositório
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
5. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca Vis˜o Geral
a
Configura¸˜o
ca
Conclus˜o
a
Estrutura desta Apresenta¸˜o
ca
Descri¸˜o geral da Camada de Aplica¸˜o
ca ca
Orienta¸˜es para desenvolvimento de uma aplica¸˜o pr´pria
co ca o
Detalhamento da aplica¸˜o de exemplo
ca
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
6. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca Vis˜o Geral
a
Configura¸˜o
ca
Conclus˜o
a
Vis˜o Geral
a
Camada de Aplica¸˜o
ca
Interface gr´fica para uso do Sistema de Preserva¸˜o Digital
a ca
Realiza a comunica¸˜o entre o cliente e o servidor do WEB
ca
Service
Cliente de WEB Service
Padr˜o SOAP para comunica¸˜o com o servidor
a ca
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
7. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
8. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
Requisitos de software
Para desenvolver uma aplica¸˜o pr´pria:
ca o
Suporte ao protocolo SOAP, para comunica¸˜o com o WEB
ca
Service
Para usar a aplica¸˜o exemplo:
ca
Python 2.6+ < 3.0
Acesso HTTP
Apache 2 com M´dulo Python (mod python) e M´dulo
o o
Rewrite (mod rewrite)
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
9. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
10. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Apresenta¸˜o da aplica¸˜o de exemplo
ca ca
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
11. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Implementa¸˜o
ca
Aplica¸˜o de Exemplo
ca
Linguagem Python
Robusta para aplica¸˜es WEB
co
Nativa de muitas distros Linux
Linguagem de f´ceis aprendizado e utiliza¸˜o
a ca
Uso da biblioteca Suds1 para implementar SOAP
university-logo
1
https://fedorahosted.org/suds/
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
12. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
API de Preserva¸˜o
ca
Exemplos de implementa¸˜o usando a biblioteca Suds
ca
import suds
Instˆncia da classe Client, da biblioteca Suds
a
client = suds.client.Client( urlWSDL )
Chamada do m´todo de inser¸˜o de objeto digital
e ca
client.service.insert( fileHash, fileContent, reliability )
Chamada do m´todo de consulta por objeto digital
e
client.service.check( fileKey )
Chamada do m´todo de recupera¸˜o de objeto digital
e ca
client.service.retrieve( fileKey )
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
13. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Orienta¸˜es e observa¸˜es para
co co
implementa¸˜o do cliente do WEB
ca
Service
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
14. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Inser¸˜o (insert)
ca
Recomenda-se realizar uma consulta (check) antes da
inser¸˜o, a fim de evitar inser¸˜es duplicadas, al´m de
ca co e
economizar tempo com upload do arquivo para o WEB
Service.
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
15. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Consulta (check)
A opera¸˜o de consulta pode exibir menos informa¸˜es ou at´
ca co e
mesmo n˜o ser implementada, a fim de evitar a divulga¸˜o de
a ca
informa¸˜es de localiza¸˜o de r´plicas (preven¸˜o de ataques)
co ca e ca
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
16. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Recupera¸˜o (retrieve)
ca
Recomenda-se fazer uma consulta (check) antes da
recupera¸˜o. Com esse resultado, ´ poss´ mostrar ao
ca e ıvel
usu´rio os comandos rsync dispon´
a ıveis para recuperar o objeto.
Assim ´ poss´ selecionar a r´plica mais pr´xima ao usu´rio.
e ıvel e o a
A recupera¸˜o via HTTP envolve o uso da codifica¸˜o Base
ca ca
64, que prejudica o desempenho. Recupera¸˜o via Rsync ´
ca e
prefer´
ıvel
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
17. Introdu¸˜o
ca
Requisitos API de Preserva¸˜o
ca
Implementa¸˜o
ca Orienta¸˜es para implementa¸˜o do cliente
co ca
Configura¸˜o
ca Classe de exemplo
Conclus˜o
a
Classe SoapClient
Arquivo SoapClientClass.py
Classe que implementa as trˆs opera¸˜es do WEB Service,
e co
al´m da op¸˜o de definir a URL do WSDL
e ca
Utiliza a biblioteca Suds
M´todos:
e
insert( fileKey, reliability, filename )
check( fileKey )
retrieve( fileKey )
setWsdlFile( wsdlFile )
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
18. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
19. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
Configura¸˜o do Apache
ca
Configura¸˜o de site no Apache
ca
VirtualHost2
Habilitar suporte a Python Server Pages (.psp)3
Configura¸˜o do M´dulo ReWrite (redirecionar requisi¸˜es
ca o co
para index.psp)
2
http://httpd.apache.org/docs/2.0/vhosts/examples.html university-logo
3
http://www.modpython.org/live/current/doc-html/hand-psp.html
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
20. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
Configura¸˜o da aplica¸˜o de exemplo
ca ca
Defini¸˜o da URL do WSDL
ca
Ap´s instanciar a classe SoapClient, utilizar o m´todo
o e
setWsdlFile
client = SoapClient()
client.setWsdlFile( urlWSDL )
Tamb´m ´ poss´ definir a URL do WSDL diretamente na
e e ıvel
propriedade wsdlFile da classe SoapClient
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
21. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
1 Introdu¸˜o
ca
2 Requisitos
3 Implementa¸˜o
ca
4 Configura¸˜o
ca
5 Conclus˜o
a
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
22. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
Conclus˜o
a
F´cil implementa¸˜o de clientes para o WEB Service (Padr˜o
a ca a
SOAP)
Flexibilidade de linguagem para implementa¸˜o
ca
Possibilidade de integra¸˜o com sistemas de preserva¸˜o
ca ca
digital, como o DSpace 4
university-logo
4
http://www.dspace.org
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca
23. Introdu¸˜o
ca
Requisitos
Implementa¸˜o
ca
Configura¸˜o
ca
Conclus˜o
a
D´vidas? Coment´rios? Sugest˜es?
u a o
university-logo
Roberto Beraldo Chaiben Camada de Aplica¸˜o
ca