SlideShare uma empresa Scribd logo
Introdu¸˜o
                                       ca
      Requisitos do software desenvolvido
                           Implementa¸˜o
                                       ca
                              Configura¸˜o
                                       ca
                 Inicializa¸˜o do Servi¸os
                           ca          c




          Sistema de Preserva¸˜o Digital
                             ca
               Camada de Interface

                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 Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                 Implementa¸˜o
                                             ca
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
                                                   Motiva¸˜o
                                                          ca
            Requisitos do software desenvolvido
                                                   Vis˜o Geral
                                                      a
                                 Implementa¸˜o
                                             ca
                                                   Arquitetura
                                    Configura¸˜o
                                             ca
                                                   Defini¸˜es
                                                         co
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                           ca
                                                 Motiva¸˜o
                                                        ca
          Requisitos do software desenvolvido
                                                 Vis˜o Geral
                                                    a
                               Implementa¸˜o
                                           ca
                                                 Arquitetura
                                  Configura¸˜o
                                           ca
                                                 Defini¸˜es
                                                       co
                     Inicializa¸˜o do Servi¸os
                               ca          c


Localiza¸˜o da Camada de Interface
        ca


                                       Aplicações




                                         Interface

                         Gerenciamento de Réplicas

                                  Armazenamento


                                       Repositório

                                                                       university-logo


                    Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
                                                   Motiva¸˜o
                                                          ca
            Requisitos do software desenvolvido
                                                   Vis˜o Geral
                                                      a
                                 Implementa¸˜o
                                             ca
                                                   Arquitetura
                                    Configura¸˜o
                                             ca
                                                   Defini¸˜es
                                                         co
                       Inicializa¸˜o do Servi¸os
                                 ca          c


Motiva¸˜o
      ca


  Camada de Interface
     Padronizar a comunica¸˜o do Cliente com a Camada de
                          ca
     Gerenciamento
     Interface de f´cil utiliza¸˜o por aplica¸˜es (clientes)
                   a           ca            co
     Independente de Sistema Operacional
     Acesso via WEB (HTTP)
     Solu¸˜o: WEB Service
         ca


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
                                                   Motiva¸˜o
                                                          ca
            Requisitos do software desenvolvido
                                                   Vis˜o Geral
                                                      a
                                 Implementa¸˜o
                                             ca
                                                   Arquitetura
                                    Configura¸˜o
                                             ca
                                                   Defini¸˜es
                                                         co
                       Inicializa¸˜o do Servi¸os
                                 ca          c


Vis˜o Geral
   a


  Camada de Interface
      Respons´vel pela comunica¸˜o entre cliente e reposit´rio
             a                 ca                         o
      (Camada de Gerenciamento)
      Recebe requisi¸˜es HTTP do cliente, formata-as e as envia `
                    co                                          a
      Camada de Gerenciamento
      SSH para comunica¸˜o com a Camada de Gerenciamento
                       ca
      Rsync para recupera¸˜o de objetos digitais
                         ca
      WEB Service pode estar em m´quina dedicada, sem
                                   a
      reposit´rio para armazenamento de r´plicas
             o                           e

                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                            ca
                                                  Motiva¸˜o
                                                         ca
           Requisitos do software desenvolvido
                                                  Vis˜o Geral
                                                     a
                                Implementa¸˜o
                                            ca
                                                  Arquitetura
                                   Configura¸˜o
                                            ca
                                                  Defini¸˜es
                                                        co
                      Inicializa¸˜o do Servi¸os
                                ca          c


Vis˜o Geral
   a

  Camada de Interface
      Composta por um WEB Service
          Servidor WEB incorporado ` aplica¸˜o
                                    a      ca
          N˜o necessita de Apache, Tomcat ou outro servidor WEB
            a
          pr´-instalado
            e
      Padr˜o SOAP para comunica¸˜o com cliente
          a                    ca
      Opera¸˜es
            co
          Inser¸˜o de objeto digital (insert)
               ca
          Consulta por objeto digital (check)
                Exibe os estados das r´plicas de um objeto digital
                                      e
          Recupera¸˜o de objeto digital (retrieve)
                  ca
                                                                        university-logo


                     Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                           ca
                                                        Motiva¸˜o
                                                               ca
          Requisitos do software desenvolvido
                                                        Vis˜o Geral
                                                           a
                               Implementa¸˜o
                                           ca
                                                        Arquitetura
                                  Configura¸˜o
                                           ca
                                                        Defini¸˜es
                                                              co
                     Inicializa¸˜o do Servi¸os
                               ca          c


Arquitetura

                                                       insert()
                                                      retrieve()
                                                       check()




                                                                                             Gerenciamento
               Aplicação




                                                                                              Camada de
                             requisição SOAP                          requisição (via SSH)

                                                      Web
                                                     Service
                             resposta SOAP
                                                                      resposta (via RSYNC)




                                                                                                             university-logo


                           Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
                                                   Motiva¸˜o
                                                          ca
            Requisitos do software desenvolvido
                                                   Vis˜o Geral
                                                      a
                                 Implementa¸˜o
                                             ca
                                                   Arquitetura
                                    Configura¸˜o
                                             ca
                                                   Defini¸˜es
                                                         co
                       Inicializa¸˜o do Servi¸os
                                 ca          c


Defini¸oes
     c˜

     SOAP
        Simple Object Access Protocol - Protocolo Simples de Acesso
        a Objetos
        Padr˜o de comunica¸˜o entre cliente e servidor WEB Service
             a             ca
        Baseada em XML
        Chamada Remota de Procedimento (RPC - Remote Procedure
        Call)
     WSDL
        Web Services Description Language - Linguagem de Descri¸˜o
                                                               ca
        de WEB Service
        Baseada em XML
        Descreve as fun¸˜es dispon´
                       co         ıveis no WEB Service
                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                 Implementa¸˜o
                                             ca
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                              ca
             Requisitos do software desenvolvido
                                  Implementa¸˜o
                                              ca
                                     Configura¸˜o
                                              ca
                        Inicializa¸˜o do Servi¸os
                                  ca          c


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)


                                                                          university-logo


                       Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                                   API de Preserva¸˜o
                                                                  ca
                                 Implementa¸˜o
                                             ca
                                                   Fluxo de Opera¸˜es
                                                                 co
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                                 ca
                Requisitos do software desenvolvido
                                                       API de Preserva¸˜o
                                                                      ca
                                     Implementa¸˜o
                                                 ca
                                                       Fluxo de Opera¸˜es
                                                                     co
                                        Configura¸˜o
                                                 ca
                           Inicializa¸˜o do Servi¸os
                                     ca          c


Implementa¸˜o
          ca


  Implementa¸˜o do WEB Service
            ca
         Linguagem Java
               Robusta para aplica¸˜es WEB
                                  co
               Multiplataforma
               Diversas op¸˜es de Servidores WEB para incorpora¸˜o
                          co                                   ca
               Linguagem altamente difundida e utilizada
         Servidor WEB Jetty1 Incorporado ` aplica¸˜o
                                         a       ca
         N˜o necessita de Apache, Tomcat ou outro Servidor WEB
           a
         pr´-instalado
           e


                                                                             university-logo
    1
        http://jetty.codehaus.org/jetty/
                          Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                            ca
           Requisitos do software desenvolvido
                                                  API de Preserva¸˜o
                                                                 ca
                                Implementa¸˜o
                                            ca
                                                  Fluxo de Opera¸˜es
                                                                co
                                   Configura¸˜o
                                            ca
                      Inicializa¸˜o do Servi¸os
                                ca          c


API de Preserva¸˜o
               ca



     Opera¸˜o de inser¸˜o de objeto digital
          ca          ca
         boolean insert( String fileKey, byte[] fileData, double reliability
         )
     Opera¸˜o de consulta por objeto digital
          ca
         String check( String fileKey )
     Opera¸˜o de recupera¸˜o de objeto digital
          ca             ca
         byte[] retrieve( String fileKey )



                                                                        university-logo


                     Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                              ca
             Requisitos do software desenvolvido
                                                    API de Preserva¸˜o
                                                                   ca
                                  Implementa¸˜o
                                              ca
                                                    Fluxo de Opera¸˜es
                                                                  co
                                     Configura¸˜o
                                              ca
                        Inicializa¸˜o do Servi¸os
                                  ca          c


Opera¸˜o de Inser¸˜o
     ca          ca


  boolean insert( String fileKey, byte[] fileData, double reliability )
      Retorno: True em caso de sucesso; False caso contr´rio
                                                        a
      Parˆmetros:
         a
           fileKey: Hash MD5 do conte´do do arquivo a ser inserido
                                         u
           fileData: Conte´do do arquivo codificado em Base 64
                            u
           reliability: Confiabilidade desejada para o objeto (valor entre 0
           e 1)
  Apenas uma solicita¸˜o de inser¸˜o. N˜o garante
                     ca          ca    a
  preserva¸˜o imediata
          ca

                                                                          university-logo


                       Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                                   API de Preserva¸˜o
                                                                  ca
                                 Implementa¸˜o
                                             ca
                                                   Fluxo de Opera¸˜es
                                                                 co
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c


Opera¸˜o de Consulta
     ca


  String check( String fileKey )
      Retorno: Retorna os dados da consulta no formato JSON
           Reposit´rios em que as r´plicas se encontram
                  o                 e
           Confiabilidade de cada reposit´rio on h´ r´plicas
                                         o        a e
           Data da ultima auditoria
                    ´
           Data da pr´xima auditoria
                      o
           Comando Rsync a ser utilizado para recuperar a r´lica
                                                            e
           Confiabilidade total do objeto preservado
      Parˆmetros:
         a
           fileKey: Hash do conte´do do objeto a ser consultado
                                u

                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                           ca
          Requisitos do software desenvolvido
                                                 API de Preserva¸˜o
                                                                ca
                               Implementa¸˜o
                                           ca
                                                 Fluxo de Opera¸˜es
                                                               co
                                  Configura¸˜o
                                           ca
                     Inicializa¸˜o do Servi¸os
                               ca          c


Exemplo de retorno da opera¸˜o check
                           ca




                                                                       university-logo


                    Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                              ca
             Requisitos do software desenvolvido
                                                    API de Preserva¸˜o
                                                                   ca
                                  Implementa¸˜o
                                              ca
                                                    Fluxo de Opera¸˜es
                                                                  co
                                     Configura¸˜o
                                              ca
                        Inicializa¸˜o do Servi¸os
                                  ca          c


Opera¸˜o de Recupera¸˜o
     ca             ca




  byte[] retrieve( String fileKey )
      Retorno: Conte´do do arquivo, codificado em Base 64
                    u
      Parˆmetros:
         a
           fileKey: Hash do conte´do do objeto a ser recuperado
                                u




                                                                          university-logo


                       Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                               ca
              Requisitos do software desenvolvido
                                                     API de Preserva¸˜o
                                                                    ca
                                   Implementa¸˜o
                                               ca
                                                     Fluxo de Opera¸˜es
                                                                   co
                                      Configura¸˜o
                                               ca
                         Inicializa¸˜o do Servi¸os
                                   ca          c


Fluxo de Opera¸oes
              c˜


  Inser¸˜o
       ca
      WEB Service recebe arquivo do cliente e salva-o no diret´rio
                                                              o
      incoming
      Verifica integridade do arquivo (MD5)
             Apesar de o TCP utilizar CRC, isso pode n˜o ser suficiente
                                                        a
             para garantir a integridade de arquivos grandes
      Faz SSH e notifica um reposit´rio, que copia o arquivo do
                                  o
      WEB Service via rsync


                                                                           university-logo


                        Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                              ca
             Requisitos do software desenvolvido
                                                    API de Preserva¸˜o
                                                                   ca
                                  Implementa¸˜o
                                              ca
                                                    Fluxo de Opera¸˜es
                                                                  co
                                     Configura¸˜o
                                              ca
                        Inicializa¸˜o do Servi¸os
                                  ca          c


Fluxo de Opera¸oes
              c˜



  Consulta
      WEB Service recebe a chave do objeto a ser consultado
      Faz SSH e notifica um reposit´rio, solicitando uma opera¸˜o
                                  o                          ca
      de consulta
      WEB Service recebe a sa´ do reposit´rio e monta a string
                              ıda        o
      JSON a ser enviada ao cliente



                                                                          university-logo


                       Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                            ca
           Requisitos do software desenvolvido
                                                  API de Preserva¸˜o
                                                                 ca
                                Implementa¸˜o
                                            ca
                                                  Fluxo de Opera¸˜es
                                                                co
                                   Configura¸˜o
                                            ca
                      Inicializa¸˜o do Servi¸os
                                ca          c


Fluxo de Opera¸oes
              c˜


  Recupera¸˜o
          ca
     WEB Service recebe a chave do objeto a ser recuperado
     Faz SSH e notifica um reposit´rio, solicitando uma opera¸˜o
                                 o                          ca
     de recupera¸˜o
                ca
     WEB Service faz rsync para copiar o objeto do reposit´rio,
                                                          o
     que ´ salvo no diret´rio outgoing
         e               o
     Transfere ao cliente o conte´do do arquivo, codificado em
                                 u
     Base 64


                                                                        university-logo


                     Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                 Implementa¸˜o
                                             ca
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                           ca
          Requisitos do software desenvolvido
                               Implementa¸˜o
                                           ca
                                  Configura¸˜o
                                           ca
                     Inicializa¸˜o do Servi¸os
                               ca          c


Configura¸oes do WEB Service
        c˜

     Arquivo de configura¸˜o: webservice/ws config file
                        ca
         Arquivo de configura¸˜o compartilhado por Shell Script e Java
                               ca
         N˜o utilizar vari´veis nativas do Shell ou do Java
          a               a
     Arquivo webservice/knownhosts.txt
         Arquivo texto com a lista de hosts conhecidos pelo WEB
         Service, nos quais far´ SSH para a Camada de Gerenciamento
                               a
         Exemplo:
         usuario1@host1
         usuario2@host2
         usuario3@host3
     Recomenda-se a cria¸˜o de um usu´rio espec´
                        ca           a         ıfico para
     executar o WEB Service
                                                                       university-logo


                    Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                 Implementa¸˜o
                                             ca
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c




1   Introdu¸˜o
           ca

2   Requisitos do software desenvolvido

3   Implementa¸˜o
              ca

4   Configura¸˜o
            ca

5   Inicializa¸˜o do Servi¸os
              ca          c


                                                                         university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                             ca
            Requisitos do software desenvolvido
                                 Implementa¸˜o
                                             ca
                                    Configura¸˜o
                                             ca
                       Inicializa¸˜o do Servi¸os
                                 ca          c


Inicializa¸˜o do Servi¸os
          ca          c

      WEB Service
          Via script inicia servicos.sh:
                 inicia servicos.sh webservice start
          Via linha de comando
                 java -jar webservice/servidor/dist/Webservice-DP.jar [porta] &
      Rsync Daemon
          Via script inicia servicos.sh:
                 inicia servicos.sh rsync start
          Via linha de comando
                 rsync --daemon --config=rsynd.conf --port=porta
      Recomenda-se configurar a inicializa¸˜o dos servi¸os na
                                          ca           c
      inicializa¸˜o do Sistema Operacional (init.d, em Linux)
                ca
                                                                             university-logo


                      Roberto Beraldo Chaiben      Camada de Interface
Introdu¸˜o
                                          ca
         Requisitos do software desenvolvido
                              Implementa¸˜o
                                          ca
                                 Configura¸˜o
                                          ca
                    Inicializa¸˜o do Servi¸os
                              ca          c




D´vidas? Coment´rios? Sugest˜es?
 u             a            o




                                                                      university-logo


                   Roberto Beraldo Chaiben      Camada de Interface

Mais conteúdo relacionado

PDF
GT-Digital Preservation - Camada de Aplicacao
PDF
Static Code Analyzer - Part II
PPTX
IP Protection in Social Media
PDF
6 Tips voor een goede bedrijfsfilm - Peppermint Media
PDF
Marketinglessen van uw huisarts - Peppermint Media
PDF
GT-Digital Preservation - Camada de Armazenamento
PDF
4 Direct mailing fouten die u kunt voorkomen - Peppermint Media
PDF
Waarom uw advertenties waardeloos zijn - Peppermint Media
GT-Digital Preservation - Camada de Aplicacao
Static Code Analyzer - Part II
IP Protection in Social Media
6 Tips voor een goede bedrijfsfilm - Peppermint Media
Marketinglessen van uw huisarts - Peppermint Media
GT-Digital Preservation - Camada de Armazenamento
4 Direct mailing fouten die u kunt voorkomen - Peppermint Media
Waarom uw advertenties waardeloos zijn - Peppermint Media

Destaque (11)

PPT
2507
PPT
Edukacja kulturalna w przedszkolu 93 prezentacja
PPT
Value Driven IP Protection
PDF
5 Overlevingstips in crisistijd - Peppermint Media
PPTX
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
PDF
5 Gevaarlijke marketing missers - Peppermint Media
PPTX
Maraton SharePoint 2010, nuevas características para desarrolladores
PPTX
SharePoint 2010 - Introducción para Desarrolladores
PPTX
Msdn optimizando la performance en la web
PPTX
Trademark Registration: The Attorney\'s Role
PPTX
SEMINAR PIO UNAIR
2507
Edukacja kulturalna w przedszkolu 93 prezentacja
Value Driven IP Protection
5 Overlevingstips in crisistijd - Peppermint Media
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
5 Gevaarlijke marketing missers - Peppermint Media
Maraton SharePoint 2010, nuevas características para desarrolladores
SharePoint 2010 - Introducción para Desarrolladores
Msdn optimizando la performance en la web
Trademark Registration: The Attorney\'s Role
SEMINAR PIO UNAIR
Anúncio

Semelhante a GT-Digital Preservation - Camada de Interface (20)

PDF
Domain driven design
PDF
A importância da arquitetura de software
PDF
Static Code Analyzer - Part IV
PPT
Desenvolvimento de aplicações Java™ para TV Digital
PDF
Just java 2011
PPTX
Delphi Conference 2011 - Integração Contínua
PDF
Engenharia de software apostila analise de requisitos i
PDF
Gerenciamento Ágil de Projetos
PDF
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
PPSX
Governança de ti
PDF
ARE3 Consulting - Thinking beyond it!!
PDF
Eurocloud Day 2012 em Portugal
PDF
Continuous Delivery e DevOps
PDF
Valdir Adorni Career
PDF
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
PDF
BaixadaTech 2012 - Qualidade de Software
PDF
Processo de Software
PDF
Es17 predicao de defeitos em software
PDF
Darcius Damillvicz
Domain driven design
A importância da arquitetura de software
Static Code Analyzer - Part IV
Desenvolvimento de aplicações Java™ para TV Digital
Just java 2011
Delphi Conference 2011 - Integração Contínua
Engenharia de software apostila analise de requisitos i
Gerenciamento Ágil de Projetos
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
Governança de ti
ARE3 Consulting - Thinking beyond it!!
Eurocloud Day 2012 em Portugal
Continuous Delivery e DevOps
Valdir Adorni Career
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
BaixadaTech 2012 - Qualidade de Software
Processo de Software
Es17 predicao de defeitos em software
Darcius Damillvicz
Anúncio

GT-Digital Preservation - Camada de Interface

  • 1. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Sistema de Preserva¸˜o Digital ca Camada de Interface 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 Interface
  • 2. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 3. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 4. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Localiza¸˜o da Camada de Interface ca Aplicações Interface Gerenciamento de Réplicas Armazenamento Repositório university-logo Roberto Beraldo Chaiben Camada de Interface
  • 5. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Motiva¸˜o ca Camada de Interface Padronizar a comunica¸˜o do Cliente com a Camada de ca Gerenciamento Interface de f´cil utiliza¸˜o por aplica¸˜es (clientes) a ca co Independente de Sistema Operacional Acesso via WEB (HTTP) Solu¸˜o: WEB Service ca university-logo Roberto Beraldo Chaiben Camada de Interface
  • 6. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Vis˜o Geral a Camada de Interface Respons´vel pela comunica¸˜o entre cliente e reposit´rio a ca o (Camada de Gerenciamento) Recebe requisi¸˜es HTTP do cliente, formata-as e as envia ` co a Camada de Gerenciamento SSH para comunica¸˜o com a Camada de Gerenciamento ca Rsync para recupera¸˜o de objetos digitais ca WEB Service pode estar em m´quina dedicada, sem a reposit´rio para armazenamento de r´plicas o e university-logo Roberto Beraldo Chaiben Camada de Interface
  • 7. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Vis˜o Geral a Camada de Interface Composta por um WEB Service Servidor WEB incorporado ` aplica¸˜o a ca N˜o necessita de Apache, Tomcat ou outro servidor WEB a pr´-instalado e Padr˜o SOAP para comunica¸˜o com cliente a ca Opera¸˜es co Inser¸˜o de objeto digital (insert) ca Consulta por objeto digital (check) Exibe os estados das r´plicas de um objeto digital e Recupera¸˜o de objeto digital (retrieve) ca university-logo Roberto Beraldo Chaiben Camada de Interface
  • 8. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Arquitetura insert() retrieve() check() Gerenciamento Aplicação Camada de requisição SOAP requisição (via SSH) Web Service resposta SOAP resposta (via RSYNC) university-logo Roberto Beraldo Chaiben Camada de Interface
  • 9. Introdu¸˜o ca Motiva¸˜o ca Requisitos do software desenvolvido Vis˜o Geral a Implementa¸˜o ca Arquitetura Configura¸˜o ca Defini¸˜es co Inicializa¸˜o do Servi¸os ca c Defini¸oes c˜ SOAP Simple Object Access Protocol - Protocolo Simples de Acesso a Objetos Padr˜o de comunica¸˜o entre cliente e servidor WEB Service a ca Baseada em XML Chamada Remota de Procedimento (RPC - Remote Procedure Call) WSDL Web Services Description Language - Linguagem de Descri¸˜o ca de WEB Service Baseada em XML Descreve as fun¸˜es dispon´ co ıveis no WEB Service university-logo Roberto Beraldo Chaiben Camada de Interface
  • 10. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 11. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 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) university-logo Roberto Beraldo Chaiben Camada de Interface
  • 12. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 13. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Implementa¸˜o ca Implementa¸˜o do WEB Service ca Linguagem Java Robusta para aplica¸˜es WEB co Multiplataforma Diversas op¸˜es de Servidores WEB para incorpora¸˜o co ca Linguagem altamente difundida e utilizada Servidor WEB Jetty1 Incorporado ` aplica¸˜o a ca N˜o necessita de Apache, Tomcat ou outro Servidor WEB a pr´-instalado e university-logo 1 http://jetty.codehaus.org/jetty/ Roberto Beraldo Chaiben Camada de Interface
  • 14. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c API de Preserva¸˜o ca Opera¸˜o de inser¸˜o de objeto digital ca ca boolean insert( String fileKey, byte[] fileData, double reliability ) Opera¸˜o de consulta por objeto digital ca String check( String fileKey ) Opera¸˜o de recupera¸˜o de objeto digital ca ca byte[] retrieve( String fileKey ) university-logo Roberto Beraldo Chaiben Camada de Interface
  • 15. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Opera¸˜o de Inser¸˜o ca ca boolean insert( String fileKey, byte[] fileData, double reliability ) Retorno: True em caso de sucesso; False caso contr´rio a Parˆmetros: a fileKey: Hash MD5 do conte´do do arquivo a ser inserido u fileData: Conte´do do arquivo codificado em Base 64 u reliability: Confiabilidade desejada para o objeto (valor entre 0 e 1) Apenas uma solicita¸˜o de inser¸˜o. N˜o garante ca ca a preserva¸˜o imediata ca university-logo Roberto Beraldo Chaiben Camada de Interface
  • 16. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Opera¸˜o de Consulta ca String check( String fileKey ) Retorno: Retorna os dados da consulta no formato JSON Reposit´rios em que as r´plicas se encontram o e Confiabilidade de cada reposit´rio on h´ r´plicas o a e Data da ultima auditoria ´ Data da pr´xima auditoria o Comando Rsync a ser utilizado para recuperar a r´lica e Confiabilidade total do objeto preservado Parˆmetros: a fileKey: Hash do conte´do do objeto a ser consultado u university-logo Roberto Beraldo Chaiben Camada de Interface
  • 17. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Exemplo de retorno da opera¸˜o check ca university-logo Roberto Beraldo Chaiben Camada de Interface
  • 18. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Opera¸˜o de Recupera¸˜o ca ca byte[] retrieve( String fileKey ) Retorno: Conte´do do arquivo, codificado em Base 64 u Parˆmetros: a fileKey: Hash do conte´do do objeto a ser recuperado u university-logo Roberto Beraldo Chaiben Camada de Interface
  • 19. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Fluxo de Opera¸oes c˜ Inser¸˜o ca WEB Service recebe arquivo do cliente e salva-o no diret´rio o incoming Verifica integridade do arquivo (MD5) Apesar de o TCP utilizar CRC, isso pode n˜o ser suficiente a para garantir a integridade de arquivos grandes Faz SSH e notifica um reposit´rio, que copia o arquivo do o WEB Service via rsync university-logo Roberto Beraldo Chaiben Camada de Interface
  • 20. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Fluxo de Opera¸oes c˜ Consulta WEB Service recebe a chave do objeto a ser consultado Faz SSH e notifica um reposit´rio, solicitando uma opera¸˜o o ca de consulta WEB Service recebe a sa´ do reposit´rio e monta a string ıda o JSON a ser enviada ao cliente university-logo Roberto Beraldo Chaiben Camada de Interface
  • 21. Introdu¸˜o ca Requisitos do software desenvolvido API de Preserva¸˜o ca Implementa¸˜o ca Fluxo de Opera¸˜es co Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Fluxo de Opera¸oes c˜ Recupera¸˜o ca WEB Service recebe a chave do objeto a ser recuperado Faz SSH e notifica um reposit´rio, solicitando uma opera¸˜o o ca de recupera¸˜o ca WEB Service faz rsync para copiar o objeto do reposit´rio, o que ´ salvo no diret´rio outgoing e o Transfere ao cliente o conte´do do arquivo, codificado em u Base 64 university-logo Roberto Beraldo Chaiben Camada de Interface
  • 22. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 23. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Configura¸oes do WEB Service c˜ Arquivo de configura¸˜o: webservice/ws config file ca Arquivo de configura¸˜o compartilhado por Shell Script e Java ca N˜o utilizar vari´veis nativas do Shell ou do Java a a Arquivo webservice/knownhosts.txt Arquivo texto com a lista de hosts conhecidos pelo WEB Service, nos quais far´ SSH para a Camada de Gerenciamento a Exemplo: usuario1@host1 usuario2@host2 usuario3@host3 Recomenda-se a cria¸˜o de um usu´rio espec´ ca a ıfico para executar o WEB Service university-logo Roberto Beraldo Chaiben Camada de Interface
  • 24. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c 1 Introdu¸˜o ca 2 Requisitos do software desenvolvido 3 Implementa¸˜o ca 4 Configura¸˜o ca 5 Inicializa¸˜o do Servi¸os ca c university-logo Roberto Beraldo Chaiben Camada de Interface
  • 25. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c Inicializa¸˜o do Servi¸os ca c WEB Service Via script inicia servicos.sh: inicia servicos.sh webservice start Via linha de comando java -jar webservice/servidor/dist/Webservice-DP.jar [porta] & Rsync Daemon Via script inicia servicos.sh: inicia servicos.sh rsync start Via linha de comando rsync --daemon --config=rsynd.conf --port=porta Recomenda-se configurar a inicializa¸˜o dos servi¸os na ca c inicializa¸˜o do Sistema Operacional (init.d, em Linux) ca university-logo Roberto Beraldo Chaiben Camada de Interface
  • 26. Introdu¸˜o ca Requisitos do software desenvolvido Implementa¸˜o ca Configura¸˜o ca Inicializa¸˜o do Servi¸os ca c D´vidas? Coment´rios? Sugest˜es? u a o university-logo Roberto Beraldo Chaiben Camada de Interface