{"id":737,"date":"2012-09-21T22:07:00","date_gmt":"2012-09-21T22:07:00","guid":{"rendered":"http:\/\/www.arvo.es\/dspace\/?p=737"},"modified":"2012-09-23T18:32:50","modified_gmt":"2012-09-23T18:32:50","slug":"interfaces-e-integraciones-con-dspace","status":"publish","type":"post","link":"https:\/\/www.arvo.es\/dspace\/interfaces-e-integraciones-con-dspace\/","title":{"rendered":"Interfaces e integraciones con DSpace"},"content":{"rendered":"<p>La pregunta primera que nos debemos hacer es \u00bfcuando necesitamos tener un interface con DSpace? y no estamos hablando solamente de interfaz de usuario (l\u00e9ase XMLUI o JSPUI) sino de interfaces sistema-sistema o integraciones. Bien, en ciertas ocasiones necesitaremos integrarnos con sistemas o aplicaciones web, como CMS, DMS, LMS, dise\u00f1ar interfaces de usuario sustancialmente diferentes, como las m\u00f3viles, lograr una interacci\u00f3n entre repositorios, etc. Un conjunto m\u00e1s amplio de lo que inicialmente se piensa.<br \/>\nDe hecho, una gran parte de repositorios se interconectan mediante OAI-PMH. Llevamos toda la vida usando servicios de integraci\u00f3n y ni nos hab\u00edamos dado cuenta&#8230;<br \/>\nBien, este post es un repaso (con la impresi\u00f3n de que no es exhaustivo) a las diversas alternativas y sabores existentes.<\/p>\n<p><strong>Integraci\u00f3n directa contra la Base de Datos y el sistema de Ficheros<\/strong><br \/>\nEsto podr\u00edamos consideralo b\u00e1sicamente una declaraci\u00f3n del tipo: \u00abno me sirve nada el c\u00f3digo java de Dspace y me voy a programar otra cosa\u00bb. El proyecto, excepto si pensamos para el acceso a funciones muy b\u00e1sicas, ser\u00e1 largo, pero claro, pr\u00e1cticamente podr\u00e9is usar cualquier framework de desarrollo para el proyecto.<\/p>\n<p><strong>JavaAPI<\/strong><br \/>\nCualquier aplicaci\u00f3n que sea capaz de llamar al JavaAPI de Dspace, podr\u00e1 usarse para este tipo de integraci\u00f3n. As\u00ed es como surgi\u00f3 XMLUI y est\u00e1n surgiendo continuamente nuevos proyectos. El problema es que la JavaAPI no proporciona una separaci\u00f3n completa o n\u00edtida y normalmente se requerir\u00e1 re-escribir parte de la l\u00f3gica de negocio de DSPACE en la nueva aplicaci\u00f3n. Ejemplo de ello es la duplicidad existente en el c\u00f3digo XMLUI y JSPUI, indicaci\u00f3n clara de esta insuficiencia o \u00abimperfecci\u00f3n\u00bb del JavaAPI.<br \/>\nPero aparte de eso, ese el camino para el uso de Frameworks de Aplicaciones Web o de desarrollo r\u00e1pido, como el framework Play!, la nueva interface anunciada en agosto de este a\u00f1o para Dspace, Freemarker WebMVC o incluso el uso de frameworks no-Java como Ruby on Rails.<\/p>\n<p><strong>OAI-PMH <\/strong><br \/>\nSimplificando, OAI-PMH permite la recolecci\u00f3n de los metadatos DSpace en otro sistema. El OAI-PMH, OAI\u2019s Protocol for Metadata Harvesting, es la base de los proyectos de cooperaci\u00f3n entre repositorios de diferente nivel (regional, nacional , tem\u00e1ticos&#8230;). OAI-PMH define los est\u00e1ndares para describir los intercambios de metadatos entre sistemas y con la creciente disponibilidad de librer\u00edas OAI-PMH para una diversidad de plataformas, pues es una opci\u00f3n siempre valorable.<br \/>\nCuriosamente siempre tenemos presente la recolecci\u00f3n de nuestro DSpace, ya que la aplicaci\u00f3n OAI se despliega de forma est\u00e1ndar en el proceso normal de construcci\u00f3n de DSpace, pero (creo que desde la versi\u00f3n 1.6) podemos configurar nuestro DSpace para recolectar otros repositorios que expongan sus contenidos mediante este interface. Por ejemplo, arXIv posibilita su recolecci\u00f3n para proveer acceso a los metadatos de todos sus art\u00edculos. Guarden la debida precauci\u00f3n con los derechos y licencias.<\/p>\n<p><strong>OAI-ORE<\/strong><br \/>\nOAI-ORE, Open Archive Initiative\u2019s Object Reuse and Exchange, es la especificaci\u00f3n para describir agregaciones de recursos web y el intercambio de recursos digitales. El soporte de este protocolo en<a href=\"https:\/\/wiki.duraspace.org\/display\/DSDOC18\/OAI#OAI-OAIPMH%2FOAIOREHarvester\"> Dspace<\/a> se propociona desde la versi\u00f3n 1.6.<br \/>\nSi se usa en combinaci\u00f3n con OAI-PMH el contenido de un repositorio (metadatos + ficheros) puede ser recolectado desde\/hacia otro sistema. Como uso, quiz\u00e1 un poco raro, lo hemos usado para migraciones, obtener nuevas unidades de agregaci\u00f3n de contenidos, y sincronizaci\u00f3n de instancias, sin necesidad de recurrir a procesos de import-export o similares.<\/p>\n<p><strong>REST-API<\/strong><br \/>\nExiste una\u00a0<a href=\"https:\/\/wiki.duraspace.org\/display\/DSPACE\/REST+API\">REST API<\/a> en fase de desarrollo avanzado que permite la integraci\u00f3n basada en REST: Transferencia de Estado Representacional (Representational State Transfer).\u00a0 El c\u00f3digo se\u00a0 puede descargar para la 1.8 y previsiblemente ir\u00e1 incluido en el DSpace 3.0, pero ya hay una serie de proyectos interesantes sobre esta interfza, incluido una integraci\u00f3n Moodle.<\/p>\n<p><strong>SWORD <\/strong><br \/>\nSWORD (Simple Web-service Offering Repository Deposit) es un protocolo, basado en atompub, Atom Publish Protocol, que define el dep\u00f3sito remoto de items en un repositorio por otras aplicaciones. Ya nos hemos explayado bastante en este blog sobre SWORD, est\u00e1 claro que nos gusta. La disponibilidad de librerias Sword en diversos lenguajes, (PHP, java&#8230;) promueve el uso de este tipo de integraci\u00f3n, p.ej, en el dep\u00f3sito de publicaciones desde sistemas de investigaci\u00f3n, y otros escenarios.<br \/>\nDspace implementa el protocolo <a href=\"http:\/\/swordapp.org\/\">SWORD<\/a> de diversas formas:<\/p>\n<ul>\n<li>Servidor compatible con el protocolo SWORD v1, disponible desde la versi\u00f3n 1.6 de Dspace<\/li>\n<li>Servidor compatible SWORD V2, disponible desde la versi\u00f3n 1.8 de Dspace.<\/li>\n<li>Cliente SWORD, para hacer que DSPACE deposite items en otros sistemas que acepten este protocolo.  <\/li>\n<\/ul>\n<p><strong>LNI (Lightweight Network Interface)<\/strong><br \/>\nEste interface permite la integraci\u00f3n de un sistema con DSpace via el protocolo WebDAV. Puedes encontrar m\u00e1s informaci\u00f3n <a href=\"https:\/\/wiki.duraspace.org\/display\/DSPACE\/LightweightNetworkInterface\">aqu<\/a>\u00ed. La \u00faltima actualizaci\u00f3n del c\u00f3digo se realiz\u00f3 en la versi\u00f3n 1.5, su uso parece minoritario y hay reportados problemas de rendimiento (literalmente:\u00a0\u00a0\u00a0 <em>suffers horrible performance issues<\/em>).\u00a0 Desarrollado por el MIT, su proyecto m\u00e1s visible parece ser CWspace, una plataforma de este Instituto de contenidos OpenCourseware.<\/p>\n<p><strong>SOLR<\/strong><br \/>\nEn el Open Repositories 2012, Stuart Lewis present\u00f3 <a href=\"http:\/\/skylightui.org\/\">SkylightUI<\/a>, que es un front-end sobre DSpace, desarrollado en CodeIgnitor(PHP), y que usa el \u00edndice SOLR de DSpace como una API. Como nunca nos podemos resistir a las propuestas de Stuart, pues lo probaremos lo antes que podamos, y os seguiremos contando.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La pregunta primera que nos debemos hacer es \u00bfcuando necesitamos tener un interface con DSpace? y no estamos hablando solamente de interfaz de usuario (l\u00e9ase XMLUI o JSPUI) sino de interfaces sistema-sistema o integraciones. Bien, en ciertas ocasiones necesitaremos integrarnos &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/www.arvo.es\/dspace\/interfaces-e-integraciones-con-dspace\/\">Leer m\u00e1s &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[4,60,56,19,58,15],"class_list":["post-737","post","type-post","status-publish","format-standard","hentry","category-documentacion_tecnica","tag-dspace","tag-javaapi","tag-lni","tag-oai","tag-rest","tag-sword"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/comments?post=737"}],"version-history":[{"count":27,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/737\/revisions"}],"predecessor-version":[{"id":817,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/737\/revisions\/817"}],"wp:attachment":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/media?parent=737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/categories?post=737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/tags?post=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}