30
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]

EmpWeb – ABCD plugin

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

Page 1: EmpWeb – ABCD plugin

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]

Page 2: EmpWeb – ABCD plugin

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

Page 3: EmpWeb – ABCD plugin

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

Page 4: EmpWeb – ABCD plugin

Parte 1. Grupo de servlets

GUI

TLD 1

TLD 2

TLD 3

JSP filesEmpweb engine srvc

XML config file

SOAP

Page 5: EmpWeb – ABCD plugin

Sección dbws

Page 6: EmpWeb – ABCD plugin

Análisis del archivo xml de configuración de usuarios. Marco conceptual 1

BDD ISISTr1

(xsl)

XML (normalizado)

EmpWeb

XML(field/tag)

Page 7: EmpWeb – ABCD plugin

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

Page 8: EmpWeb – ABCD plugin

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

Page 9: EmpWeb – ABCD plugin

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.

Page 10: EmpWeb – ABCD plugin

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.

Page 11: EmpWeb – ABCD plugin

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

Page 12: EmpWeb – ABCD plugin

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.

Page 13: EmpWeb – ABCD plugin

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

Page 14: EmpWeb – ABCD plugin

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>

Page 15: EmpWeb – ABCD plugin

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»

Page 16: EmpWeb – ABCD plugin

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

Page 17: EmpWeb – ABCD plugin

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

Page 18: EmpWeb – ABCD plugin

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.

Page 19: EmpWeb – ABCD plugin

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

Page 20: EmpWeb – ABCD plugin

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

Page 21: EmpWeb – ABCD plugin

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.

Page 22: EmpWeb – ABCD plugin

Request

Page 23: EmpWeb – ABCD plugin

Response

Page 24: EmpWeb – ABCD plugin

Response

Page 25: EmpWeb – ABCD plugin

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

Page 26: EmpWeb – ABCD plugin

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

Page 27: EmpWeb – ABCD plugin

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.

Page 28: EmpWeb – ABCD plugin

Actividad

Page 29: EmpWeb – ABCD plugin

Actividad

<faculty><xsl:value-of select="field[@tag='700']/occ/subfield[@name='a']" /></faculty>

Page 30: EmpWeb – ABCD plugin

Actividad