300 likes | 390 Views
EmpWeb – ABCD plugin. Curso de capacitación para transferencia tecnológica Sección de configuración de bases de datos de usuarios e información bibliográfica Emiliano Marmonti Febrero 2010 emarmonti@gmail.com. Parte 1. Grupo de servlets. Empweb Obj Serv. Axis 1.x front-end. dbws.
E N D
EmpWeb – ABCD plugin Curso de capacitación para transferencia tecnológica Sección de configuración de bases de datos de usuarios e información bibliográfica Emiliano Marmonti Febrero 2010 emarmonti@gmail.com
Parte 1. Grupo de servlets Empweb Obj Serv Axis 1.x front-end dbws Empweb Usr Serv IsisWrapper cisis MODS Local filesystem XML config Usuarios y Bib DB IsisDB – usuarios IsisDB – Obj Bib DB
Parte 1. Grupo de servlets Empweb admin service Empweb query service Axis 1.x front-end Empweb admin service engine XML config Engine Webservices IsisDb add MySql connection Transactions … Pipelines Groovy interpreter
Parte 1. Grupo de servlets TLD 1 XML config file GUI TLD 2 TLD 3 SOAP JSP files Empweb engine srvc
Análisis del archivo xml de configuración de usuarios. Marco conceptual 1 XML (field/tag) BDD ISIS Tr1 (xsl) XML (normalizado) EmpWeb
Análisis del archivo xml de configuración de usuarios <?xml version="1.0" encoding="UTF-8"?> <dbwsconf db="isis" type="users"> <!-- "location" is the directory where the Isis database resides. It may be an absolute path, or a path relative to the environment variable EMPWEB_HOME or the Java property empweb.home "collection" is the base name of the Isis database (the name of the .mst and all related files without the extension) --> <!-- Windows BBB version --> <location>/abcd/www/bases/users/data/</location> <collection>users</collection> <!-- Linux version <location>/var/empweb/db/isis/users</location> <collection>usu</collection> --> Como se relaciona con ABCD debe ir a buscar en el folder adecuado de usuarios la bdd users
Análisis del archivo xml de configuración de usuarios <encoding></encoding> <decoding>iso88591</decoding> <subfieldDelimiter>^</subfieldDelimiter> <!-- This stylesheet transforms from "standard" Isis XML output, to Empweb's User XML data --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://kalio.net/empweb/schema/users/v1"> <!-- The output format is a userCollection according to Empweb's User Schema, version 1.0. Namespace: http://kalio.net/empweb/schema/users/v1 Schema location: empweb.home/common/xml/schema/users/v1/empweb-users-1-0.xsd --> <!-- Use this <xsl:copy-of select="." /> instead of <xsl:apply-templates /> for debugging and to see the actual XML output --> <xsl:template match="/recordset" > <userCollection dbname="isis"> <xsl:apply-templates /> </userCollection> </xsl:template> Definición real de la estructura de los registros convertida a XML
Análisis del archivo xml de configuración de usuarios En color rojo están marcados los elementos con que cada registro ISIS de usuario será convertido a XML. <!-- para cada registro --> <xsl:template match="record" > <user> <xsl:variable name="idlength"> <xsl:value-of select="string-length(field[@tag='20']/occ/head)"/> </xsl:variable> <id><xsl:value-of select="substring(field[@tag='20']/occ/head, 1, $idlength)" /></id> <name><xsl:value-of select="field[@tag='30']/occ/head" /></name> <userClass><xsl:value-of select="field[@tag='10']/occ/subfield[@name='b']" /></userClass> <!-- The dates should have the YYYYMMDD format --> <expirationDate> <xsl:text> <xsl:value-of select="field[@tag='18']/occ/head" /> </xsl:text> </expirationDate> <login><xsl:text><xsl:value-of select="field[@tag='600']/occ/head" /></xsl:text></login> <password><xsl:text><xsl:value-of select="field[@tag='610']/occ/head" /></xsl:text></password> <email><xsl:text><xsl:value-of select="field[@tag='160']/occ/head" /></xsl:text></email> <photo><xsl:text><xsl:value-of select="field[@tag='620']/occ/head" /></xsl:text></photo>
Análisis del archivo xml de configuración de usuarios <xsl:if test="field[@tag='312']/occ/subfield[@name='s' and starts-with(., '99')]"> <state>inactive</state> </xsl:if> <!-- El v304 guarda un codigo de carrera (en el fdt aparece erroneamente como codigo de biblioteca) El v302 es la descripcion de la carrera del codigo que esta en v304 <ucvu:dependencia code="022">PERIODISMO</ucvu:dependencia> Suspensiones y multas que vienen en la base de usuarios. Son ocurrencias del v312 con este fomrato: ^aDF^bEDU^u5^cA^f20050412 ^b: Código de Biblioteca ^a: Tipo movimiento (DF: devolución fuera de plazo; MO: moroso; RO: robo; PN: préstamo no autorizado; AB: Abono a multa) ^u: Unidades de multa ^s: Suspensión ^m: Material ^c: Colección del material ^f: Fecha del movimiento ^r: Comprobante --> </user> </xsl:template> </xsl:stylesheet> </dbwsconf> En color rojo están marcados los elementos con que cada registro ISIS de usuario será convertido a XML.
Análisis del archivo xml de configuración de usuarios <query> <field name="id" db="primary">350</field> <field name="name" db="primary">300</field> <field name="userClass" db="primary">100</field> <field name="login" db="primary">600</field> </query> Esta sección define los diferentes criterios de búsqueda sobre esta base de datos y las líneas de la FST que se aplicará para hallar la expresión de búsqueda. O2/(350) Expresión de búsqueda
Actividades • Cambiar en la definición de users el nombre del usuario por el campo 100, el apellido por el campo 101 y concatenarlo en la definición a presentar para empweb. • En una biblioteca en la que quieren implementar EmpWeb generan un campo con observaciones especiales en el tag 88^a, si el mismo posee un valor 0 el usuario no está habilitado a operar, si posee valor 1, aplica la fecha de expiración que viene en formato dd-mm-aaaa en el campo 345, si posee valor 2, su carnet nunca expira.
Análisis del archivo xml de configuración de información bibliográfica. Marco conceptual 1 XML (fields/tag) BDD ISIS XSL Tr2 (ISIS 2 MODS) MODs XML Spec EmpWeb
Análisis del archivo xml de configuración de información bibliográfica <?xml version="1.0" encoding="UTF-8"?> <dbwsconf db="mxisis" type="objects"> <!-- "location" is the directory where the Isis database resides. It may be an absolute path, or a path relative to the environment variable EMPWEB_HOME or the Java property empweb.home "collection" is the base name of the Isis database (the name of the .mst and all related files without the extension) --> <!-- Windows BBB version --> <location>/abcd/www/bases/marc/data/</location> <collection>marc</collection> <join>/abcd/www/bases/loanobjects/data/loanobjects,959='MARC-',v1</join> <altlocation>/abcd/www/bases/loanobjects/data/</altlocation> <altcollection>loanobjects</altcollection> <altjoin>/abcd/www/bases/marc/data/marc,1/958=v1</altjoin>
Análisis del archivo xml de configuración de información bibliográfica BDD ISIS Ppal objetos Loan objects 1 «1» 10 «marc» 959 «^i10000^lAGR^oL^v1» 959 «^i10001^lAGR^oL^v2» 959 «^i10002^lAGR^oL^v3» 1 «1» 5 «19911017084055.4» 8 «911008s1989 bl a b f001 0 por » 10 « ^a 90743819 » 20 « ^a8570251270» 35 « ^9(DLC) 90743819» 40 « ^aDLC^cDLC» 43 « ^as-bl---» 50 «00^aRS164^b.P72 1989» 245 «00^aPlantas da medicina popular no Rio Grande do Sul /^cClßudia Maria Oliv eira Sim§es ... [et al.].» 250 « ^a3. ed.» 260 « ^a[Porto Alegre, RS] :^bEditora da Universidade, Universidade Federal do Rio Grande do Sul,^c[1989]» 300 « ^a173 p. :^bill. ;^c23 cm.»
Análisis del archivo xml de configuración de información bibliográfica - Ida mx marc join=loanobjects,959='MARC-',v1 <join>/abcd/www/bases/loanobjects/data/loanobjects,959='MARC-',v1</join> Acceso x registro bibliográfico 1 «1» 5 «19911017084055.4» 8 «911008s1989 bl a b f001 0 por » 10 « ^a 90743819 » 20 « ^a8570251270» 35 « ^9(DLC) 90743819» 40 « ^aDLC^cDLC» 43 « ^as-bl---» 50 «00^aRS164^b.P72 1989» 245 «00^aPlantas da medicina popular no Rio Grande do Sul /^cClßudia Maria Oliv eira Sim§es ... [et al.].» 250 « ^a3. ed.» 260 « ^a[Porto Alegre, RS] :^bEditora da Universidade, Universidade Federal do Rio Grande do Sul,^c[1989]» 300 « ^a173 p. :^bill. ;^c23 cm.» 959 «^i10000^lAGR^oL^v1» 959 «^i10001^lAGR^oL^v2» 959 «^i10002^lAGR^oL^v3»
Análisis del archivo xml de configuración de información bibliográfica - Vuelta mx loanobjects join=marc,1/958=v1 <altjoin>/abcd/www/bases/marc/data/marc,1/958=v1</altjoin> Acceso por inventario 959 «^i10000^lAGR^oL^v1» 1 «1» 5 «19911017084055.4» 8 «911008s1989 bl a b f001 0 por » 10 « ^a 90743819 » 20 « ^a8570251270» 35 « ^9(DLC) 90743819» 40 « ^aDLC^cDLC» 43 « ^as-bl---» 50 «00^aRS164^b.P72 1989» 245 «00^aPlantas da medicina popular no Rio Grande do Sul /^cClßudia Maria Oliv eira Sim§es ... [et al.].» 250 « ^a3. ed.» 260 « ^a[Porto Alegre, RS] :^bEditora da Universidade, Universidade Federal do Rio Grande do Sul,^c[1989]» 300 « ^a173 p. :^bill. ;^c23 cm.»
Actividades • Usando el editor de bases.dat de ABCD agregar la opción para cargar y editar loanobjects. Revisar el contenido de la base de datos. • Debatir si es que la relación biyectiva entre ambas bases se halla o no bien conformada.
Análisis del archivo xml de configuración de información bibliográfica <!-- para cada registro --> <xsl:template match="record"> <mods version="3.0"> <!-- ================ Codigo de registro/obra ================ --> <recordInfo> <recordIdentifier><xsl:value-of select="field[@tag='1']/occ/head" /></recordIdentifier> </recordInfo> <extension> <holdingsInfo version="1.0" xmlns="http://kalio.net/empweb/schema/holdingsinfo/v1"> <copies> <xsl:for-each select="field[@tag='959']/occ"> <copy> <copyId><xsl:value-of select="subfield[@name='i']" /></copyId> <xsl:if test="subfield[@name='v']"> <volumeId><xsl:value-of select="subfield[@name='v']" /></volumeId> </xsl:if> <copyLocation><xsl:value-of select="subfield[@name='l']" /></copyLocation> <subLocation><xsl:value-of select="subfield[@name='s']" /></subLocation> <objectCategory><xsl:value-of select="subfield[@name='o']" /></objectCategory> </copy> </xsl:for-each> </copies> </holdingsInfo> </extension> XML de inventario
Análisis del archivo xml de configuración de información bibliográfica <!-- ================ TITULO ================ --> <titleInfo> <title><xsl:value-of select="field[@tag='245']/occ/subfield[@name='a']" /></title> </titleInfo> <!-- ================ Informacion de origen ================ --> <originInfo> <publisher><xsl:value-of select="field[@tag='260']/occ/subfield[@name='b']" /></publisher> <xsl:if test="field[@tag='250']/occ"> <edition><xsl:value-of select="subfield[@name='a']" /></edition> </xsl:if> <dateIssued><xsl:value-of select="field[@tag='260']/occ/subfield[@name='c']" /></dateIssued> </originInfo> Información de Título, subtítulo, año de publicación, autores y otros datos para generar un XML MODS compatible con los datos de la publicación independientemente del formato bibliográfico de orígen
Actividades • Instalar en todas las máquinas Membrane SOAP Monitor. • Modificar el archivo engineconf.xml de tal forma de reorientar los servicios de consulta hacia el puerto 8089. • Abrir Membrane SOAP Monitor y configurar una regla de proxy tal que atienda el puerto 8089 y redirija al puerto 8085 (desde el que está atendiendo /edbws). • Iniciar empweb. • Realizar consultas desde empweb para usuarios y para publicaciones bibliográficas. • Analizar Requests y responses monitoreados por Membrane SOAP.
Integración de Empweb con ABCD ABCD users wxis • Footer para version (what.php) • Foto de los usuarios (photoproxy.php) • Lib PHP GD marc EmpWeb mxIsisWrapper Loan objects
Estructura de los registros de usuarios de ABCD (distro) mfn= 1 1 «users» 12 «^aF^bFemenino» 10 «^aes^bEstudiantes» 15 «02/02/2011» 18 «20110202» 30 «Guilßrte, Angela Margarita» 20 «01» 130 «Venezuela» 160 «msi@reacciun.ve» 600 «rosa» 620 «rosa.jpg» .. mfn= 2 12 «^aF^bFemenino» 10 «^aco^bConsultores» 15 «02/02/2011» 18 «20110202» 30 «Tanio Reyes, Josefa» 35 «445436789» 20 «02» 160 «msi@reacciun.ve» 600 «josefa» 620 «josefa.jpg» Dato textual con subcampos
Actividad • Comparar los datos predefinidos en el archivo XML de interconexión y los datos reales que provienen en users en la distro. • Agregar a bases.dat la base de datos user para poder ser cargada desde catalogación. • Agregar un campo Facultad a los usuarios de ABCD. Definir este nuevo campo en el tag 700, con dos subcampos (a y b al igual que sexo). Usar facultad.tab como tabla para el mismo. Definir el mismo en Empweb de forma tal de disponibilizarlo para la presentación de los datos del usuario. • Agregar en el MODS de envío el campo ISBN para ser luego incluído en la presentación usando JSP. Verificar los datos agregados usando membrane.
Actividad <faculty><xsl:value-of select="field[@tag='700']/occ/subfield[@name='a']" /></faculty>