Upload
gregory-pallas
View
92
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 [email protected]. Parte 1. Grupo de servlets. Empweb Obj Serv. Axis 1.x front-end. dbws. - PowerPoint PPT Presentation
Citation preview
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 MarmontiFebrero [email protected]
Local filesystem
Parte 1. Grupo de servlets
dbws
IsisWrapper
IsisDB –usuarios
IsisDB –Obj Bib DB
XML config Usuarios y
Bib DB
Axis 1.x front-end
cisis
MODS
Empweb Obj Serv
Empweb Usr Serv
Parte 1. Grupo de servlets
engine
Axis 1.x front-end
Empweb admin service
Empweb query service
Empweb admin service
XML config Engine
Webservices IsisDb addMySql connection
Transactions…
Pipelines
Groovy interpreter
Parte 1. Grupo de servlets
GUI
TLD 1
TLD 2
TLD 3
JSP filesEmpweb engine srvc
XML config file
SOAP
Sección dbws
Análisis del archivo xml de configuración de usuarios. Marco conceptual 1
BDD ISISTr1
(xsl)
XML (normalizado)
EmpWeb
XML(field/tag)
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
<!-- 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>
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
<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
BDD ISIS
XML(fields/tag)
XSL Tr2(ISIS 2 MODS)
MODs XMLSpec
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 ISISPpal objetos
Loanobjects
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 Oliveira 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.»
1 «1» 10 «marc»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 - Ida
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 Oliveira 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»
mx marc join=loanobjects,959='MARC-',v1
<join>/abcd/www/bases/loanobjects/data/loanobjects,959='MARC-',v1</join>
Acceso x registro bibliográfico
Análisis del archivo xml de configuración de información bibliográfica - Vuelta
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 Oliveira 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»
mx loanobjects join=marc,1/958=v1<altjoin>/abcd/www/bases/marc/data/marc,1/958=v1</altjoin>
Acceso por inventario
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.
Request
Response
Response
Integración de Empweb con ABCD
ABCD
EmpWeb
users
marc
Loanobjects
mxIsisWrapper
wxis
•Footer para version (what.php)•Foto de los usuarios (photoproxy.php)•Lib PHP GD
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 «[email protected]»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 «[email protected]»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
Actividad
<faculty><xsl:value-of select="field[@tag='700']/occ/subfield[@name='a']" /></faculty>
Actividad