23.04.2015 Views

Grupo ARCO - Universidad de Castilla-La Mancha

Grupo ARCO - Universidad de Castilla-La Mancha

Grupo ARCO - Universidad de Castilla-La Mancha

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Estudio IceStorm<br />

E<br />

Durante la fase <strong>de</strong>l proyecto en la cual se realiza un aprendizaje <strong>de</strong>l middleware ZeroC Ice<br />

y en particular <strong>de</strong>l servicio IceStorm, se realizó una comunicación entre un subscriptor y un<br />

publicador pero con la particularidad <strong>de</strong> que el sirviente sea <strong>de</strong> un <strong>de</strong>terminado tipo.<br />

Esto asegura que los suscriptores serán <strong>de</strong> un tipo <strong>de</strong>terminado, por lo que la información<br />

que maneja el canal pue<strong>de</strong> ser manipulada atendiendo a dicho tipo.<br />

<strong>La</strong> aplicación <strong>de</strong> este comportamiento al mo<strong>de</strong>lo <strong>de</strong> comunicaciones <strong>de</strong>sarrollado en este<br />

proyecto conllevaría a asegurar los tipos <strong>de</strong> datos que esperan los suscriptores, así como los<br />

datos que envían los publicadores. Por lo tanto, no sería necesario comunicar al canal el tipo<br />

<strong>de</strong> datos que manejará.<br />

E.1.<br />

Implementación<br />

Para conseguir este comportamiento se cuenta con un componente que actúa como intermediario<br />

(Delegate) entre los suscriptores/publicadores y el servicio IceStorm. Este componente<br />

es el que garantiza que los suscriptores serán <strong>de</strong> un tipo específico. En el listado E.1<br />

se muestra las interfaces que entran en juego en este sistema. <strong>La</strong> interfaz Listener es el sirviente<br />

y la interfaz ASDA es la que implementa el componente que actúa <strong>de</strong> intermediario.<br />

module ASD {<br />

interface Listener {<br />

void adv(string name);<br />

};<br />

interface ASDA {<br />

void addListener(ASD::Listener∗ listener);<br />

Listener∗ getPublisher();<br />

};<br />

};<br />

Listado E.1: Interfaces utilizadas para establecer un <strong>de</strong>terminado tipo <strong>de</strong> suscriptor)<br />

En el listado E.2 se muestra la implementación <strong>de</strong> la interfaz ASDA y la clase Delegate.<br />

Aquí, se crea el canal que será el que establezca la comunicación entre publicadores<br />

y suscriptores. <strong>La</strong> operación addListener se encarga <strong>de</strong> realizar la suscripción al canal<br />

89

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!