SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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

Destaque

Edukacja kulturalna w przedszkolu 93 prezentacja
Edukacja kulturalna w przedszkolu 93  prezentacjaEdukacja kulturalna w przedszkolu 93  prezentacja
Edukacja kulturalna w przedszkolu 93 prezentacjamagdawawer
 
Value Driven IP Protection
Value Driven IP ProtectionValue Driven IP Protection
Value Driven IP ProtectionClark Wilson
 
5 Overlevingstips in crisistijd - Peppermint Media
5 Overlevingstips in crisistijd - Peppermint Media5 Overlevingstips in crisistijd - Peppermint Media
5 Overlevingstips in crisistijd - Peppermint MediaPeppermint Media
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Andrés Iturralde
 
5 Gevaarlijke marketing missers - Peppermint Media
5 Gevaarlijke marketing missers - Peppermint Media5 Gevaarlijke marketing missers - Peppermint Media
5 Gevaarlijke marketing missers - Peppermint MediaPeppermint Media
 
Maraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresMaraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresAndrés Iturralde
 
SharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresSharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresAndrés Iturralde
 
Msdn optimizando la performance en la web
Msdn   optimizando la performance en la webMsdn   optimizando la performance en la web
Msdn optimizando la performance en la webAndrés Iturralde
 
Trademark Registration: The Attorney\'s Role
Trademark Registration: The Attorney\'s RoleTrademark Registration: The Attorney\'s Role
Trademark Registration: The Attorney\'s RoleClark Wilson
 

Destaque (11)

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

Semelhante a GT-Digital Preservation - Camada de Interface

A importância da arquitetura de software
A importância da arquitetura de softwareA importância da arquitetura de software
A importância da arquitetura de softwareAdriano Tavares
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IVUlisses Costa
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalLeonardo Melo Santos
 
Delphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração ContínuaDelphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração ContínuaJosé Araújo
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos irobinhoct
 
Gerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosGerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosDaniel de Amaral
 
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...Manoel Pimentel Medeiros
 
ARE3 Consulting - Thinking beyond it!!
ARE3 Consulting - Thinking beyond it!!ARE3 Consulting - Thinking beyond it!!
ARE3 Consulting - Thinking beyond it!!sagwi
 
Valdir Adorni Career
Valdir Adorni CareerValdir Adorni Career
Valdir Adorni CareerValdir Adorni
 
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitArquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitMarkus Christen
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareAdriano Bertucci
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em softwareVictor Hugo
 

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

Domain driven design
Domain driven designDomain driven design
Domain driven design
 
A importância da arquitetura de software
A importância da arquitetura de softwareA importância da arquitetura de software
A importância da arquitetura de software
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IV
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV Digital
 
Just java 2011
Just java   2011Just java   2011
Just java 2011
 
Delphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração ContínuaDelphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração Contínua
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos i
 
Gerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosGerenciamento Ágil de Projetos
Gerenciamento Ágil de Projetos
 
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento...
 
Folder
FolderFolder
Folder
 
Governança de ti
Governança de tiGovernança de ti
Governança de ti
 
ARE3 Consulting - Thinking beyond it!!
ARE3 Consulting - Thinking beyond it!!ARE3 Consulting - Thinking beyond it!!
ARE3 Consulting - Thinking beyond it!!
 
Eurocloud Day 2012 em Portugal
Eurocloud Day 2012 em PortugalEurocloud Day 2012 em Portugal
Eurocloud Day 2012 em Portugal
 
Continuous Delivery e DevOps
Continuous Delivery e DevOpsContinuous Delivery e DevOps
Continuous Delivery e DevOps
 
Valdir Adorni Career
Valdir Adorni CareerValdir Adorni Career
Valdir Adorni Career
 
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitArquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de Software
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
 
Darcius Damillvicz
Darcius DamillviczDarcius Damillvicz
Darcius Damillvicz
 

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