Suzie, xml, perl, lindezas

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)
suzie.png

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.

    Distribuir contenido