empweb plug-in para abcd 1.0 presentación general
DESCRIPTION
EmpWeb plug-in para ABCD 1.0 Presentación General. ¿Que es EmpWeb?. Desarrollo alternativo para administrar la circulación de materiales, conectado con las bases de datos que administra ABCD. - PowerPoint PPT PresentationTRANSCRIPT
EmpWeb plug-in para ABCD 1.0Presentación General
¿Que es EmpWeb?
Desarrollo alternativo para administrar la circulación de materiales, conectado con las bases de datos que administra ABCD.
• Administra las operaciones de préstamo, devolución, reservas, suspensiones, multas, préstamos por hora, calendarios y admite políticas multibiblioteca.
• Agnóstico tecnológicamente. Se conecta a través de webservices con las fuentes de datos, incluso entre la interfaz de presentación y el motor del software en sí.
• Interactúa con dos fuentes de datos a las cuales accede solo en modo lectura (objetos y usuarios)
¿Que es EmpWeb? (contd)• A diferencia de otros sistemas de gestión para el área de
circulación es altamente configurable, tanto en las fuentes de datos, como en su comportamiento permitiendo la implementación de reglas complejas de circulación.
• Se halla implementado en el lenguaje de programación Java, siendo que es posible agregar scripts de comportamiento en un lenguaje de scripting denominado Groovy sin recompilar ni reiniciar el servlet-container.
• Por su misma arquitectura, la interfaz se halla completamente separada de la lógica de negocio, pudiendo cambiar el layout, agregar fácilmente nuevos idiomas o alterarse las leyendas que se incluyen en la distribución.
Historia del desarrollo
Usado en la PUCV de Chile desde 2003 en adelante soportando una carga de múltiples transacciones diarias.
Presentado en ISIS 2. Adquirido por VLIR (Consorcio de Universidades
Belgas) para su adopción en el programa DOCBIBLAS como plug-in opcional de ABCD.
Customizado y adaptado a ABCD desde Diciembre de 2008 a fines de Julio de 2009.
Entregado a BIREME para su inclusión en el paquete ABCD.
Interfaz de administración
1. Arquitectura del software
Arquitectura(simplificada)
UsersExternal Database Layer
Services for access database
Empweb’s Engine
GUI Empweb user interface
Services for engine
Other interfaces
Objects
Isis driver
TransactionsDB
Driver
2. Estándares que el software usa
Estándares Usados en EmpWeb
Registros bibliográficos. Formato agnóstico, “estabilizado” en MODS.
XML. Tanto para configuración de todos los seteos del software como en la modelización interna de las entidades.
SOAP. Protocolo de comunicación para implementar webservices.
UTF-8 y Unicode internamente (propio de Java)
ISIS Tech
Biblio Format / Tech Agnostic
EmpWeb
LILACSMARC
CEPAL
Mods XML Mods
XML
Mods XML
Non-Isis TechRDBMS,
XML Database
???Mods XML
Filters
MODS (Metadata Object Description Schema)
2. Integración con ABCD
Objetos
Usuarios
3. Base de datos de copias para circulación
Copies como base de datos relacionada con la entidad bibliográfica ppal
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»
Como es que Empweb conecta con las base de datos Isis?
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
4. Funcionalidad Específica de EmpWeb
Funciones Básicas
Funciones Básicas (II)
Funciones Básicas (III)
Aspectos funcionales
• Administra múltiples políticas para circulación, Ej: Política de circulación para época de exámen, política para época de verano, política para fines de semana, etc.
• Administra calendarios con pre y post comprobación de las fechas/horas. Administra horarios de las bibliotecas del sistema.
•Cada política se compone de un conjunto de perfiles. El perfil se compone de una dupla (Tipo de Usuario, Tipo de Objeto), en cada perfil se determinan los valores apropiados para la circulación. Ejemplo:
(Política de verano / usuario docente / tipo de objeto DVD) =
(10 días de préstamo, 0.20 USD de multa por día de atraso, renovable hasta 3 veces desde el sitio de usuario).
Sistemas de circulación tradicionales Policies, Array of values
object categories and user types (2 dimensions)
Suspensions/Overdue
1 day 2 days >3 days
Books 3 days 5 days 17 days
CD’s 5 days … …
Loan days Student Teachers Researchers
books 10 days 12 days 17 days
CD’s 5 days … …
2D
Políticas ComplejasAlgunos ejemplos
“…Well, normally the books object category can be loaned to students users for 10 days, but near summer, let’s say from 1st December, the period is reduced to 7 days…”
Loan days Student Teachers Researchers
books 10 days 12 days 17 days
CD’s 5 days … …
winter
Loan days Student Teachers Researchers
books 7 days 12 days 17 days
CD’s 5 days … …
summer
3D
Concepto de Perfil incluído en EmpWeb A combination of Object Type & User Category makes a
Profile. A profile is the set of values for pipeline Limits in a combination of user types & categories.
Students
Books
Values For Limits…Limits published by Pipeline 1Limits published by Pipeline 2Limits published by Pipeline 3…
Policy EmpWeb concept
(Books, Students)
(Books, Researchers)
(Reference, *)
Policy 1
(*,*)
A policy is conceived as a conceptual set of profiles.
For instance the library could have a policy for summer, another for winter.
Another example could be in a multiple deploys of Empweb, each one with one and only one active policy.
Policy n
Políticas
Perfiles
Valores específicos para los perfiles (Límites)
¿Que sucede si se realiza una transacción con un perfil o una política y luego esta se altera?
La transacción siempre conserva la información de los límites del perfil con que fue aplicado, lo cual es válido para todas las transacciones que de allí se desprendan
5. Funcionalidades integradas con IAH
Aspectos funcionales
• Incluye una interfaz para consultar la disponibilidad de cada copia integrable a IAH a través de los shortcuts.
• Agrega a ABCD central funcionalidad de “Mi sitio” para el usuario final, a partir del cual es posible realizar operaciones de gestión de la circulación en forma remota (consultar el estado de cuenta, realizar reservas o cancelar las mismas).
• Administra préstamos configurables por tipo de usuario y tipo de objeto a los cuales se les calcula en forma automática el plazo y las condiciones de validación para realizar la transacción. Aplica en forma automática las penalidades (suspensiones y/o multas) en caso de resultar apropiado.
• Incluye un conjunto de reportes básicos para la gestión y reclamo de los materiales aún no devueltos.
interconexión con el catálogo
Autogestión por parte del usuario “Mi sitio”
Interconexión entre el sitio de usuario y la interfaz de
administración
6. Concepto de Pipeline como modelo de una transacción
Flexibilidad
• Conceptualiza cada transacción como un conjunto de reglas y procesos. Las reglas representan condiciones a validar y los procesos acciones a realizar. La salida de un proceso es la entrada del siguiente (a menos que alguna regla de validación lo interrumpa).
• Posee un lenguaje de scripting interno (Groovy) con el cual es posible intervenir para modificar o agregar nuevas reglas y procesos sin necesidad de recompilar.
• Lo anterior permite implementar políticas complejas de circulación e implementar nuevos servicios en la biblioteca. Un ejemplo:
“En época de exámen, un usuario que alcanzó su límite máximo de publicaciones prestadas puede llevar una publicación por el fin de semana
siempre y cuando no tenga reservas pendientes y ningún plazo de las publicaciones actualmente prestadas esté vencido…”
Transacciones como Pipelines
Pipeline concept (example simplified)
End of transaction
Lock User Lock
Object
See if there are reservations confirmed
See if the user is suspended or not
Update DB
Unlock
New steps (rules or processes) in the pipeline could be inserted
Steps
Begin CommitRollback
Begin of transaction
Pipelines & Groovy
7. ¿Porqué es tan flexible EmpWeb?
Complex Policies in EmpWebA world of objects
The userCurrent LoansSuspensionsFeesReserves
The objectLoans Reserves
Transaction Context
Fees, SuspensionsThe calendar
The location(library)
Using each object we can make a new stepIn a pipeline that checks for complex rulesor add new objects (fee, suspensions) to the Transaction Context
Scripting solutions
Presenting some “complex” rules
The Engeneering library (ING acronym) is included in the summer policy that we designed previously, but for the user class “Coordinadores”, it will loan BKS for 20 days.
Please, control the validity of the users previous to make any operation!!! If the expiration date is blank, Empweb is not doing actually any control!
The Agronomics library (AGR) does not admit to make on-line reservations for users which validity expire in 6 months or less.
All the libraries in the system agree that if a confirmed reservation is cancelled or expired a suspension and/or a fee should be applied. If there are < 2 reservations for the same title will apply a fee of $10, if there are >=2 reservations, will apply the fee and a suspension of 5 days.
Expressing the rules in the Empweb’s World of Objects.
If object.library = ‘ING’ and user.type=‘Cordinadores’ then loan.days=20– @loan pipeline.
If user.validity ==“” or user.validity is null then transaction.stop– @ loan,reservation pipelines
If month_difference_between (today,user.validity)<=6 and transaction.comesfrom==‘web’ then transaction.stop.
– @reservation pipeline
Create_new_fee();If reservations.count()>2 then
Create_suspension()
@cancelreservation pipeline
what
where
LimitesAdding a few a more complexity
All the libraries in the system agree that if a confirmed reservation is cancelled or expired, if there are < 2 reservations for the same title will apply a fee of $10, if there are >=2 reservations, will apply the fee and a suspension of 5 days.
These are 2 variables that could change for the combination of object/user class
In Empweb’s WoO these are Limits for the rule
Pipelines. Exposing limits to the profiles.
Step X
… …
Code
Limits
The_Reservation was confirmed?
Cancel Reservation Pipeline
Yes
No
Fine (X)
X is a Limit for this step
LimitsRefactoring the rule
All the libraries in the system agree that if a confirmed reservation is cancelled or expired,a suspension and/or a fee should be applied. If there are < 3 reservations for the same title will apply a fee of X$, if there are >=3 reservations, will apply the fee and a suspension of Y days.
BKS CDR
Coordinadores X=5 / Y=7 X=7 / Y=8
Directores X=3 / Y=4 X=2 / Y=3
8. ¿Qué informes trae EmpWeb?
Informes (I)
Informes (UserStatus)
Informes (RecordStatus)
8. Aspectos Tecnológicos
Aspectos tecnológicos
• Realizado en Java, implementa conectividad con bdd ISIS a través de CISIS.
•Construído como un conjunto de componentes (servlets) que se comunican a través del consumo de web-services. Estos web-services pueden ser potencialmente consumidos por otras aplicaciones (Ej: PHP+NuSOAP para el MySite).
• Incluye un intérprete Groovy al cual le publica la jerarquía de objetos con los que puede componer una transacción. Luego esa transacción es serializada en MySql y compuesta en forma dinámica.
• Es posible “pluggear” conectividad con otras fuentes de información como insumo. En la distro de ABCD 1.0 se ha incluído un bridge de conectividad con base de datos de usuarios en MySql, consumido por EmpWeb como un webservice.
Concurrence & Transactions
End of transaction
Lock User Lock
ObjectUpdate DB
UnlockSteps
PID 52627 PID 78282
Process running transaction
Process waiting for userStatus and/or ObjectStatus
mySql
start
commit
rollback
Installing & Configuring Requirements (Technical & non-tech)
– JDK 1.5– MySql version 4.0 or >– Mapping of bibliographic database fields to
MODs.– Connection with users database or source of
data. Fields (or services) for photo, login & password.
– Recommended: Testing & Production deploy to model & implement the “business logic” of the circulation logic.
9. ¿En que consistirá esta capacitación?
En que consistirá esta capacitación?
Realizar un entrenamiento intensivo sobre los aspectos internos de EmpWeb de modo de dotar a BIREME de las capacidades para mantener el código fuente y realizar adaptaciones al mismo.
Detallar la integración entre ABCD y EmpWeb de modo que las subsiguientes versiones del producto se puedan integrar fácilmente con el plug-in.
Documentar y centralizar el conocimiento sobre EmpWeb, el cual ha estado reflejado en diferentes documentos, diversas capacitaciones, pero en ninguna transversal que lo abarque completamente.
Muchas gracias por su atención