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.
Contenido
¡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...):
Ejemplos reales de archivos CNML (exportados de la web de Guifi.net):
Referencias
- ↑ SNDX: Haciendo un XML-DTD para el intercambio de bases de datos de redes entre servidores
- ↑ CNML Roadmap, cnml.info
Enlaces externos
- Web oficial del proyecto CNML, cnml.info
- Primera implementación del CNML, por rroca.