Suzie, xml, perl, lindezas

Filed under:

Ultimos dias en los que le he podido pegar un empujon grande a suzie aka "mi proyecto de bot multiprotocolo/servidor de mini-aplicaciones".

Creo que ha llegado la hora de explicar un poco en que consiste suzie:

Muchas veces he tenido mini-aplicaciones (en adelante scripts) para realizar pequeñas tareas, tales como una consulta para ver que correo tengo, que tiempo hará mañana, consultar la cartelera del cine y demás.

Todos estos scripts están bien, pero no tienen APIs ni código compartido y su formato es irregular y no utilizable.

Suzie intenta ser todo esto, una capa comun para aportar a todos estos scripts estas cualidades, además de un repositorio común donde unirlas todas.

Otra cualidad de suzie es que no se limita a la consola, ni esta enganchado a un protocolo. Los scripts que se integran en suzie no conocen nada del canal por el que escuchan y por el que contestan, esta parte se ha abstraído a otro nivel: los Monitors.

Básicamente este el esquema del funcionamiento de suzie (click para ampliar)
NOT FOUND: 1 link

Nuestros Workers únicamente manejan mensajes, que contienen quien lo ha enviado, para quien de ellos y lo que ha enviado, ellos simplemente tienen que escribir en el mensaje su contestación.

Todo esto entra y sale del sistema por los monitores. Todos ellos están vigilados por el Core, en cuanto se recibe algo por alguno de ellos se lee el mensaje y se mete en el túnel de procesado del cual saldrá mas tarde por el otro lado con la respuesta adecuada y el Core enviara esta contestación por el mismo canal por el cual ha llegado.

Todo esto junto hace que:
- Escribiendo un nuevo monitor para el protocolo X todos los scripts se puedan utilizar desde el.
- Cada nuevo script o worker esta accesible desde el primer momento para todos los protocolos o monitores sin distinción

Además hay cosas algo mas marcianas que dan para otro post como:
- Enrutamiento dentro del túnel en base a targets y verbos de la pareja mensaje/worker.
- Mensajes a posteriori para transferencias.
- Devolución de mensajes extra por parte de los workers.
- Almacenes de datos en XML

Al final el post me ha superado y el resto lo dejo para otro día.

Comments are closed