Grupo ARCO - Universidad de Castilla-La Mancha
Grupo ARCO - Universidad de Castilla-La Mancha
Grupo ARCO - Universidad de Castilla-La Mancha
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5. DESARROLLO DEL PROYECTO 44<br />
Figura 5.7: Diagrama <strong>de</strong> secuencia <strong>de</strong> una suscripción con filtros<br />
El uso <strong>de</strong> la fe<strong>de</strong>ración <strong>de</strong> canales permite una reducción <strong>de</strong>l número <strong>de</strong> publicadores. Un<br />
solo publicador pue<strong>de</strong> servir como publicador <strong>de</strong> eventos para varios canales.<br />
Implementación<br />
Para implementar esta funcionalidad no se pue<strong>de</strong> utilizar la propia operación link <strong>de</strong><br />
IceStorm porque solo permite la propagación <strong>de</strong> todos los eventos si se indica un coste 0<br />
o, en todo caso, restringir los eventos según el coste que lleven asociados. Por lo tanto, se<br />
implementa una nueva operación que permite indicar <strong>de</strong> algún modo un filtrado en los datos<br />
que pue<strong>de</strong>n ser propagados.<br />
<strong>La</strong> manera <strong>de</strong> conseguir una propagación acor<strong>de</strong> a <strong>de</strong>terminados filtros es similar al mecanismo<br />
realizado en la suscripción con filtros. <strong>La</strong> única diferencia presente es que los canales<br />
implicados existen en el dominio <strong>de</strong>l sistema o son creados previamente.<br />
<strong>La</strong> figura 5.8 representa el mecanismo <strong>de</strong> enlace <strong>de</strong> estas características. Existen dos canales:<br />
canal 1 y canal 2. El canal 2 quiere que ciertos eventos <strong>de</strong>l canal 1 sean propagados hacia<br />
él. Para que esto ocurra, se crea un publicador <strong>de</strong>l canal 2 que contenga los filtros con los que<br />
quiere realizar el enlace al canal 1. Por último, se hace una llamada a la función linkFiltered<br />
pasándole como parámetro el publicador creado. <strong>La</strong> propia función hace una suscripción<br />
<strong>de</strong> este publicador al canal 1. De este modo, el publicador actúa como un suscriptor filtrado<br />
<strong>de</strong>l canal 1 que a su vez filtra los eventos para propagarlos al canal 2.<br />
Al igual que un canal pue<strong>de</strong> enlazarse a otro, también existe la posibilidad <strong>de</strong> eliminar<br />
ese enlace, para ello, se implementa una funcionalidad cuyo procedimiento será cancelar