English  

CNML

De Guifi.net - Wiki Hispano

Community Network Mark Up Language (CNML) es un proyecto para definir un estándar ISO abierto y escalable para describir nubes mesh, aunque no está limitado a este tipo de redes y en la actualidad se usa también para redes de infraestructura punto a punto.

CNML es una especificación basada en XML, lo cuál hace que sea fácilmente entendible o legible por humanos además de por máquinas. Incluye algunas ideas de otras implementaciones y conceptos anteriores como el nodeXchange o el SNDX.[1]

Algunas ventajas de usar CNML es que permite desacoplar distintas funcionalidades independientemente de la aplicación web que se use para mostrar los datos, sin tener que depender de ésta, ni de sus tablas internas de las bases de datos.

¡Con cuidado!

Por favor, ten en cuenta que el proceso de generar un CNML para zonas grandes (como Guifi.net World, la zona raíz) lleva un tiempo y consume muchos recursos de la máquina que aloja la web (CPU, memoria, accesos a la base de datos...) y puede llegar incluso a tumbar completamente el servidor si se hace repetidas veces en poco tiempo. Por ello te pedimos que uses test.guifi.net en el caso de que quieras jugar con archivos CNML o hacer otras cosas relacionadas con el desarrollo.

Por otra parte, puedes aprovechar que snpservices genera cada 30 minutos el archivo CNML de la zona Guifi.net World y lo coloca en la siguiente URL:

http://test.guifi.net/snpservices/data/guifi.cnml

Nuestros servidores te agradecerán que descargues este archivo directamente y no les hagas volver a generarlo.

Historia

El alemán Alexander Klosch inicia el proyecto CNML en 2006 durante el evento internacional Wizards of OS 4, celebrado en Berlín. En aquel momento se creó una comunidad de gente interesada en desarrollar dicho estándar con participantes de toda Europa como hivenetworks, Wifidog, Guifi.net, B.A.T.M.A.N, OpenWRT o FreiFunk.[2]

¿Qué pinta tiene el Community Network Mark Up Language?

En el wiki de cnml.info podemos encontrar un borrador:

 <cnml>
  <hardware capabilty>
  <siftware services>
  <devices> cpu, memory, storage, devices, radio level etc. </devices>
  <mapping> gps, name </mapping>
  <statistics></statistics>	
  <network environment>
  <content sharing>
  <node information>
  <owner of device>
  <picopeer>
  <traffic>
  <scale of interest to the network>
  <personal keyring>(hold private, only given volountary)
 </cnml>

Implementaciones

Aunque la especificación no está acabada aún, Guifi.net permite desde hace tiempo exportar zonas y nodos a formato CNML desde su página web correspondiente. Además, el usuario puede especificar el grado de detalles con que lo quiere: solo nodos, solo zonas o los nodos detallados (incluyendo el hardware, etc...):

Guifi.net permite exportar zonas a formato CNML mediante su web Tipos de formato CNML, más o menos detallados

Ejemplos reales de archivos CNML (exportados de la web de Guifi.net):

Archivo CNML solo con zonas Archivo CNML con zonas y nodos Archivo CNML con zonas y nodos detallados

Referencias

  1. SNDX: Haciendo un XML-DTD para el intercambio de bases de datos de redes entre servidores
  2. CNML Roadmap, cnml.info

Enlaces externos

Herramientas personales