Sign inSign up

scieloorg/kernel-oaipmh

By scieloorg

•Updated over 6 years ago

Módulo OAI-PMH que obtém dados diretamente de uma instância do kernel (SciELO Publishing Framework)

Image
0

10K+

scieloorg/kernel-oaipmh repository overview

⁠OAI-PMH Data Provider

Provedor de dados OAI-PMH parte da suíte de aplicativos da Metodologia SciELO (SciELO Publishing Framework).

Principais objetivos:

  • Suportar por completo o protocolo OAI-PMH versão 2.0⁠;
  • Distribuir XMLs SciELO PS⁠ (JATS);
  • Flexibilidade na criação de novos sets e formatos de metadados;
  • Integração com o Kernel, considerado fonte autoritativa dos dados da coleção.

Para mais informação sobre a nova arquitetura de sistemas de informação da Metodologia SciELO consulte https://docs.google.com/document/d/14YBl7--4ouaWBQhxzUYWRuhmegwnSYrDgupsED6rhvM/edit?usp=sharing⁠

⁠Requisitos

  • Python 3.7
  • MongoDB

⁠Implantação local

Configurando a aplicação:

diretiva no arquivo .inivariável de ambientevalor padrão
oaipmh.mongodb.dsnOAIPMH_MONGODB_DSNmongodb://db:27017
oaipmh.mongodb.dbnameOAIPMH_MONGODB_DBNAMEoaipmh
oaipmh.mongodb.replicasetOAIPMH_MONGODB_REPLICASET
oaipmh.mongodb.readpreferenceOAIPMH_MONGODB_READPREFERENCEsecondaryPreferred
oaipmh.repo.nameOAIPMH_REPO_NAMESciELO - Scientific Electronic Library Online
oaipmh.repo.baseurlOAIPMH_REPO_BASEURLhttp://www.scielo.br/oai/scielo-oai.php⁠
oaipmh.repo.protocolversionOAIPMH_REPO_PROTOCOLVERSION2.0
oaipmh.repo.adminemailsOAIPMH_REPO_ADMINEMAILS[email protected]⁠
oaipmh.repo.deletedrecordOAIPMH_REPO_DELETEDRECORDno
oaipmh.repo.granularityOAIPMH_REPO_GRANULARITYYYYY-MM-DDThh:mm:ssZ
oaipmh.repo.compressionOAIPMH_REPO_COMPRESSIONidentity
oaipmh.resumptiontoken.batchsizeOAIPMH_RESUMPTIONTOKEN_BATCHSIZE100
oaipmh.site.baseurlOAIPMH_SITE_BASEURLhttps://www.scielo.br⁠

A configuração padrão assume o uso de uma instância standalone do MongoDB. Para uma instância de produção recomenda-se o uso de replica sets. Para mais detalhes acesse https://docs.mongodb.com/manual/replication/⁠.

Ao conectar-se a um replica set, a diretiva oaipmh.mongodb.replicaset deve ser definida com o nome do replica set. Além disso, é possível informar os diversos seeds do replica set por meio da diretiva oaipmh.mongodb.dsn, separando suas URIs com espaços em branco ou quebra de linha.

Configurações avançadas:

variável de ambientevalor padrão
OAIPMH_MAX_RETRIES4
OAIPMH_BACKOFF_FACTOR1.2
OAIPMH_HTTP_REQ_TIMEOUT5
⁠Executando via código-fonte e Pip:
$ git clone https://github.com/scieloorg/kernel-oaipmh.git
$ cd kernel-oaipmh
$ pip install -r requirements.txt && python setup.py develop
$ pserve development.ini

Esta configuração espera uma instância de MongoDB escutando localhost na porta 27017.

Na primeira vez será necessário criar os índices do banco de dados. Para tal execute o comando oaipmhctl create-indexesmongo-db-dsn dbname. Exemplo:

$ oaipmhctl create-indexes mongodb://localhost:27017 oaipmh

Para sincronizar o banco de dados da aplicação com o de uma instância do Kernel, execute o comando oaipmhctl syncsource-url mongo-db-dsn dbname. Exemplo:

$ oaipmhctl sync http://my-kernel:6543 mongodb://localhost:27017 oaipmh
⁠Executando via Docker:

$ docker-compose up -d

Na primeira vez será necessário criar os índices do banco de dados e sincronizar o banco de dados:

$ docker-compose exec webapp_oaipmh oaipmhctl create-indexesmongo-db-dsn dbname

$ docker-compose exec webapp_oaipmh oaipmhctl syncsource-url mongo-db-dsn dbname

A sincronização deverá ser executada periodicamente, de forma a manter o provedor de dados OAI-PMH sincronizado com a fonte autoritativa de dados. O utilitário de sincronização cuidará das informações relativas ao estado da sincronização, de forma que o usuário não necessitará controlar timestamps ou coisas do tipo.

Para testar se a instância foi instalada corretamente basta executar:

curl -X GET http://0.0.0.0:6543/?verb=Identify

⁠Licença de uso

Copyright 2020 SciELO [email protected]⁠. Licensed under the terms of the BSD license. Please see LICENSE in the source code for more information.

https://github.com/scieloorg/kernel-oaipmh/blob/master/LICENSE⁠

Tag summary

Content type

Image

Digest

Size

47.4 MB

Last updated

over 6 years ago

docker pull scieloorg/kernel-oaipmh:develop