Handle
Handle [1] é um sistema distribuído de grande alcance, voltado para identificação persistente de objetos digitais e outros recursos na Web. Este sistema independente de localização e foi desenvolvido para aplicações no domínio das bibliotecas digitais. Ele foi concebido para assinalar, administrar e resolver identificadores persistentes conhecidos como handles, que podem ser usados como Uniform Resource Names (URN).
Os handles são identificadores exclusivos e persistentes para recursos da Internet, com um registro central para resolver URLs para o local atual. Apesar de imutáveis, os handles permitem que as informações de localização e acesso aos objetos sejam alteradas. Cada Identificador está associado a um único recurso e a organização que criou ou mantém o recurso. O Sistema Handle também sustenta a infraestrutura técnica do DOI, que é um tipo especial de handle.
Na geração automática do DOI ou Handle pelo Dataverse pode-se utilizar um sufixo para identificar o servidor ou repositórios com a atribuição de um sufixo do identificador persistente.
Como exemplo, o prefixo do Handle 20.500.12401 quando gerado o sufixo seria apresentado como https://hdl.handle.net/20.500.12401/dv/59, sendo o 59 o número de registro. Com a inserção do sufixo, o identificador ficaria https://hdl.handle.net/20.500.12401/dv/59, sendo o “dv/” o identificador do repositório.
Pode-se utilizar outros sufixos como:
- “dv.”
- “dv_”
- Entre outros
Para definir o sufixo no Dataverse, deve-se utilizar via bash o comando abaixo:
curl -X PUT -d 'dv/' localhost:8080/api/admin/settings/:Shoulder
O instalador do Handle está disponível em http://handle.net/download_hnr.html. Recomenda-se utilizar sempre sua última versão. Para instalar no servidor principal, crie a pasta hs na raiz e dentro desta baixe e extraia o zip do handle.net através do link no site https://www.handle.net/download_hnr.html
mkdir /hs cd /hs wget https://www.handle.net/hnr-source/handle-9.0.3-distribution.tar.gz tar -xvzf handle-9.0.3-distribution.tar.gz
Em seguida, rode o script de instalação e siga os passos que serão descritos na seção abaixo caso pretenda instalar o handle.net como servidor primário ou na seção (HANDLE COMO SERVIDOR SECUNDÁRIO) caso pretenda instalar como servidor secundário (mirror).
/hs/handle-9.0.3/bin/hdl-setup-server /hs/svr_1
O Handle como servidor primário é necessário quando não existe outra instalação do prefixo, sendo esse o responsável pelo banco de dados das resoluções dos identificadores persistentes. Caso esteja instalando mais de um servidor de Handle, esse deve ser o secundário.
Will this be a "primary" server (ie, not a mirror of another server)?(y/n) [y]:
Y
Will this be a dual-stack server (accessible on both IPv6 and IPv4)?(y/n) [n]:
N
Through what network-accessible IP address should clients connect to this server?
SEU IP
If different, enter the IP address to which the server should bind.
[enter]
Enter the (TCP/UDP) port number this server will listen to [2641]:
[enter]
What port number will the HTTP interface be listening to? [8000]:
[enter]
Would you like to log all accesses to this server?(y/n) [y]:
[enter]
("N" (Never), "M" (Monthly), "W" (Weekly), or "D" (Daily))? [Monthly] :
[enter]
Enter the version/serial number of this site [1]:
[enter]
Please enter a short description of this server/site:
Breve descrição do seu servidor
Please enter the name of your organization:
Nome da organização
Please enter the name of a contact person for cc (optional) [(none)]:
[enter]
Please enter the telephone number of c or of cc (optional) [(none)]:
[enter]
Please enter the email address of c or of cc:
Insira um email no formato [email protected]
Do you need to disable UDP services?(y/n) [n]:
[enter]
Would you like to encrypt your private key?(y/n) [y]:
[enter] Insira a senha do seu servidor primário
Would you like to encrypt your private key?(y/n) [y]:
[enter] Insira novamente a senha do seu servidor primário
Para instalar o Handle como servidor secundário, apontando para um servidor primário já existente e configurado:
Will this be a "primary" server (ie, not a mirror of another server)?(y/n) [y]:
N
Will this be a dual-stack server (accessible on both IPv6 and IPv4)?(y/n) [n]:
N
Through what network-accessible IP address should clients connect to this server?
SEU IP
If different, enter the IP address to which the server should bind.
[enter]
Enter the (TCP/UDP) port number this server will listen to [2641]:
[enter]
What port number will the HTTP interface be listening to? [8000]:
[enter]
Would you like to log all accesses to this server?(y/n) [y]:
[enter]
("N" (Never), "M" (Monthly), "W" (Weekly), or "D" (Daily))? [Monthly] :
[enter]
Enter the address of a primary server:
IP DO SERVIDOR PRIMÁRIO
Enter the port number of the same primary server [2641]:
[enter]
Enter the version/serial number of this site [1]:
[enter]
Please enter a short description of this server/site:
Breve descrição do seu servidor
Please enter the name of your organization:
Nome da organização
Please enter the name of a contact person for cc (optional) [(none)]:
[enter]
Please enter the telephone number of c or of cc (optional) [(none)]:
[enter]
Please enter the email address of c or of cc:
Insira um email no formato [email protected]
Do you need to disable UDP services?(y/n) [n]:
[enter]
Would you like to encrypt your private key?(y/n) [y]:
N Não encriptar a chave privada do servidor secundário, pois quando o dataverse tentar acessar utilizando a senha do servidor primário ocorrerá erros.
Would you like to encrypt your private key?(y/n) [y]:
N
Após instalar o servidor primário, é necessário re-encriptar o arquivo admpriv.bin usando o app hdl-keyutil. Para isso, utiliza-se o seguinte comando.
/hs/handle-9.0.3/bin/hdl-keyutil /hs/svr_1/admpriv.bin
Ao iniciar o script basta selecionar a opção de encriptar a chave utilizando a encriptação da versão 6 do handle. Isso evitará erros futuros com o dataverse
Se instalar um servidor secundário, após concluir a instalação, é necessário copiar para a pasta onde o mesmo foi instalado o arquivo admpriv.bin do servidor primário já re-encriptado pelo script mencionado acima.
Acesse o site http://hdl.handle.net/20.1000/111 e registre sua organização como uma organização provedora. Em seguida, acesse o site: http://www.handle.net/prefix_request.html e faça o upload do arquivo “sitebndl.zip” que foi criado dentro da pasta onde foi instalado seu servidor primário.
Após receber por e-mail seu prefixo, edite o arquivo config.dct do servidor primário e do secundário (caso tenha criado um), substituindo todas as entradas onde esteja escrito YOUR_PREFIX pelo prefixo que recebeu por e-mail.
Os parâmetros utilizados no JVM e no Config do Dataverse são:
JVM:
- dataverse.handlenet.admcredfile (chave privada de administração)
- dataverse.handlenet.admprivphrase (senha utilizada na encriptação da chave)
- dataverse.handlenet.index (index do handle, valor padrão é 300)
Database:
- :Protocol
- :Authority
- :IdentifierGenerationStyle (optional)
- :DataFilePIDFormat (optional)
Configurando o Dataverse, as opções são excutadas por meio de requisições http através da linha de comando. Para esse fim utiliza-se o CURL
Para listar as configurações atuais, execute:
# curl localhost:8080/api/admin/settings
Primeiro é necessário informar o Dataverse que será utilizado handle em vez do DOI que vem por padrão. Para isso, edita-se o valor de : “Protocol” para hdl.
curl -X PUT -d 'hdl' localhost:8080/api/admin/settings/:Protocol
Em seguida, é necessário informar o Dataverse o prefixo handle através da configuração :Authority
# curl -X PUT -d '20.500.11959'
localhost:8080/api/admin/settings/:Authority
Configurar o estilo de geração do identificador, uma vez que o HANDLE funciona com números e o dataverse vem configurado de modo a gerar uma string de caracteres aleatórios para o doi, deve-se mudar a opção :IdentifierGenerationStyle com o comando:
# curl -X PUT -d 'sequentialNumber' localhost:8080/api/admin/settings/:IdentifierGenerationStyle
Após, baixe o arquivo createsequence.sql no link http://guides.dataverse.org/en/latest/_downloads/createsequence.sql e através do usuário postgres execute-o na tabela dvndb, para gerar o contador da sequência na base de dados.
Há dois modos de configurar as opções da JVM: via linha de comando através ou editando o arquivo domain.xml. A maior diferença entre um e outro é que editar o arquivo requer que o servidor seja reiniciado para que as alterações façam efeito. Por tanto, é preferível configurar via linha de comando. Caso seja necessário, o arquivo domain.xml fica no seguinte caminho:
/usr/local/glassfish4/glassfish/domains/domain1/config/domain.xml
Para acessar o aplicativo e configurar via linha de comando, é necessário estar no diretório /bin do servidor.
cd /usr/local/glassfish4/glassfish/bin
Dentro do diretório, é só executar o app asadmin passando os comandos como parâmetros.
Para listas as configurações atuais execute:
./asadmin list-jvm-options
Caso o sistema peça por senha, ela se encontra no arquivo local-password dentro da pasta glassfish/domains/domain1/config
Para alterar configurações já definidas, se faz necessário deletar a versão atual e depois cria-la novamente através dos comandos delete-jvm-options e create-jvm-options.
Como o dataverse vem configurado para doi, inicialmente não há a necessidade de substituir (deletar e criar novamente) sendo possível, somente criar as configurações do HANDLE
./asadmin create-jvm-options '- Ddataverse.handlenet.admcredfile=/hs/svr_1/admpriv.bin ./asadmin create-jvm-options '-Ddataverse.handlenet.admprivphrase=SENHA DO ADMPRIV AQUI' ./asadmin create-jvm-options '-Ddataverse.handlenet.index=300'
O Handle pode ser testado por linha de comando diretamente do servidor, isso é possível com a execução de uma arquivo de lote processado via hdl-batch
Para testar, crie uma pasta no servidor dentro de /hs com o nome /hs/cmd
mkdir /hs/cmd
Acesse este diretório:
cd /hs/cmd
Dentro dela crie o arquivo para ser processado como no exemplo abaixo (file: cmd.handle):
AUTHENTICATE PUBKEY:300:0.NA/
/hs/svr_1/admpriv.bin|
HOME:2641:TCP
0.NA/
CREATE/pgtest
100 HS_ADMIN 86400 1110 ADMIN 200:111111111111:0.NA/
3 URL 86400 1110 UTF8 https://
9 DESC 86400 1110 UTF8 Repositório de dados de pesquisa RNP
O primeiro bloco realiza a autenticação no servidor, a segunda faz a criação do registro Handle. Exemplos de valores atribuídos
- 20.500.12401
- : (senha utilizada para criar o servidor Handle)
-
- ex: 138.121.71.160
- IP do servidor local do Handle
Para executar o comando digite:
/hs/handle-9.0.1/bin/hdl-genericbatch cmd.handle
Resultado do comando batch(cmd):
process started ...
Batch process prints log on stdout ...
Start Time: Wed Feb 19 21:26:50 BRT 2020
Saving bootstrap handles to: /root/.handle/bootstrap_handles
==>SUCCESS[2]: home/unhome:0.NA/20.500.11959
==>SUCCESS[3]: create:20.500.11959/pgtest
==>FAILURE[4]: create:20.500.11959/FK2/7: Error(101): HANDLE ALREADY EXISTS
Successes/Total Entries: 1/2 Batch File Lines: 3
Finish Time: Wed Feb 19 21:26:57 BRT 2020
This batch took 6 seconds to complete at an average speed of 0.29784065524944153 operations/second
Last modified 2yr ago