570 likes | 686 Views
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.
E N D
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. • 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.
Arquitectura(simplificada) Users Objects External Database Layer Services for access database Isis driver Empweb’s Engine Driver Transactions DB Services for engine Other interfaces GUI Empweb user interface
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)
Biblio Format / Tech Agnostic Non-Isis Tech RDBMS, XML Database ??? EmpWeb Mods XML Mods XML Mods XML Mods XML ISIS Tech Filters CEPAL LILACS MARC
3. Base de datos de copias para circulación
Copies como base de datos relacionada con la entidad bibliográfica ppal 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.»
Como es que Empweb conecta con las base de datos Isis? 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»
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) 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…” summer winter 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. Books Values For Limits … Limits published by Pipeline 1 Limits published by Pipeline 2 Limits published by Pipeline 3 … Students
Policy EmpWeb concept Policy n Policy 1 (Books, Students) 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. (Books, Researchers) (Reference, *) (*,*)
¿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
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 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) Rollback Begin Commit See if there are reservations confirmed Unlock Steps Begin of transaction End of transaction Lock User See if the user is suspended or not Lock Object Update DB New steps (rules or processes) in the pipeline could be inserted
Complex Policies in EmpWebA world of objects Transaction Context The object Loans Reserves The user Current Loans Suspensions Fees Reserves The location (library) The calendar Fees, Suspensions Scripting solutions Using each object we can make a new step In a pipeline that checks for complex rules or add new objects (fee, suspensions) to the Transaction Context
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 where what
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. Cancel Reservation Pipeline Step X Limits X is a Limit for this step Code … … The_Reservation was confirmed? Yes Fine (X) No
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.