V0.93 6-07-98 Manuel de Vega Barreiro. mbarreiro@red.madritel.es

Ideas para crear un conjunto descentralizado de paginas web Linux

1 - Introducción

De todos es conocida la dificultad de localizar información sobre Linux en el MMM (Léase Mundo Mundo Mundial, WWW), la cantidad de paginas con información duplicada, y el caos de organización. Durante un tiempo he visto distintas iniciativas para crear un directorio ordenado sobre Linux,a entre ellas la mía de Linux Landia, con resultados más o menos conseguidos. Lo que acaba quedando claro despues de mantener una página de este tipo, es que genera demasiado trabajo para una sola persona, y que por otro lado coordinar un grupo para mantenerla organizada es bastante complejo.

2 - Objetivos

Este documento pretende describir una estructura que permita descentralizar el mantenimiento del directorio, distribuir las paginas a lo largo de diferentes servidores de Web y mantener los enlaces al día de una forma automática.

De esta forma se conseguiría reutilizar las paginas existentes en la actualidad, aportar coherencia a la estructura del directorio, distribuir el mantenimiento entre todas la personas posibles y evitar la duplicidad de esfuerzos.

Las paginas no deben tener una imagen comun, solo deberan incluir en un lugar visible el logotipo del Directorio Linux Disperso (DLD). Este Logotipo sera el vinculo entre todas las paginas del directorio.

Se trata en definitiva conseguir que la información existente sobre Linux se aproveche y sea de utilidad al mayor numero posible de usuarios.

3 - Las bases.

El sistema seguirá la misma filosofía que DNS, dividiéndose el directorio en dominios jerárquicos. Cada dominio o grupo de dominios (zona) tendrá un administrador encargado de su mantenimiento, aunque podrá dividirlo y ceder la administración de los subdominios generados a terceras personas. Cada enlace se conocera por su FQDN (Full Qualified Directory Name), que definira de una forma unica la posicion de un enlace en el arbol del directorio.

4 - descripción de la estructura.

La estructura empieza en la pagina Raíz:

dld.es

debajo se creara un primer nivel de ordenación por temas que deberán ser decididos al principio para estabilidad al sistema. Por supuesto siempre se podrían crear nuevas entradas en este nivel. (Aquí un dibujo vendría de perlas).

dld.es.distribuciones
dld.es.documentacion
dld.es.ayudas
dld.es.comunicaciones
dld.es.grupos
dld.es.aplicaciones
dld.es....

Cada nivel puede a su vez dividirse en nuevos niveles para crear la estructura de directorio. Un administrador (o grupo de administradores) se ocupara de mantener este primer nivel, e ira delegando la administración de los niveles inferiores cuando surjan linuxeros dispuestos a hacerse cargo de una rama del árbol.

La persona que se haga cargo de una rama puede a su vez delegar el mantenimiento de zonas bajo su responsabilidad a otras personas.

4.1 Descripcion de la base de datos.

La base de datos usa la libreria DB_File basada en Berkeley DB, para crear una base de tipo hash.

La clave de cada registro es FQDN, y cada registro contiene los siguientes campos:

(*1). 1 indica pagina chequeada, 0 pagina no chequeada todavia, -1 pagina que no se chequea.
(*2). 1 indica pagina accesible, 0 estado indeterminado, y un numero negativo fallos en el enlace.El valor se ira decrementando despues de cada comprobacion fallada. De esta forma se podria notificar los errores despues de un numero determinado de fallos, o incluso eliminar automaticamente los enlaces rotos.

(*3) 1 paginas nuevas, 2 modificadas hace un dia, 3 hace 1 semana, 4 hace un mes, 5 no modificadas.

5 - Automatización del mantenimiento

Cada administrador dotara a los ficheros dld.html de entrada en los servidores (puede haber varios en un mismo servidor) de una cabecera que permitirá localizar la situación de la pagina en la estructura, los niveles inferiores que derivan del servidor y las paginas quiera anunciar como enlaces (paginas bien conocidas 'PBC').

Un usuario que quiera ofertar parte de su pagina e integrarla en el directorio sin colaborar directamente en la administración, deberá informar al administradir de su zona para que la incluya como pagina bien conocida.

6 - Elementos de la cabecera

Hay dos versiones de cabecera, la original de escritura un tanto engorosa, y una nueva version mucho mas compacta y sencilla.

De momento se pueden usar las dos, aunque se recomienda la segunda.

6.1 - Version de cabeceras 1.0

Se definen los siguientes tipos de registros:

RP		Registro de la pagina raiz
<FQDN>
<URL>
<MAIL>
<DES>

MP		Registro de la Pagina Maestra de la zona
<FQDN>
<URL>
<MAIL>
<DES>

AP		Registro de una pagina administrada
<FQDN>
<URL>
<MAIL>
<DES>

DP		Registro de una pagina delegada
<FQDN>
<URL>
<MAIL>
<DES>

PP		Registro de Pagina bien conocida.
<URL>
<DES>

El tipo AP existe para preparar el terreno a las futuras paginas delegadas DP.

El registro PP se ha simplificado al maximo, quedando en solo 3 lineas (ojo la descripcion es una unica linea de un maximo de 160 caracteres).

Las cabeceras de deben ponerse en una pagina independiente (llamada por defecto dld.html).

6.1.1- ejemplos

6.1.1.1 - Ejemplo de cabecera para el Raíz

<HTML>
<HEAD>
Version:1.0

<!-- descripción del raíz del directorio -->
RP
dld.es
http://www.linuxlots.com/~barreiro/dld/dld.html
mbarreiro@red.madritel.es
Directorio Linux Dispero Castellano

  <!-- descripcion de la pagina maestra -->
MP
dld.es
http://www.linuxlots.com/~barreiro/dld/dld.html
mbarreiro@red.madritel.es
Directorio Linux Dispero Castellano

    <!-- Paginas Bien Conocidas de dld.es -->
PP
http://www.linuxlots.com/~barreiro/presentacion.html
Presentacion del directorio Linux disperso
PP
http://www.linuxlots.com/~barreiro/indice.html
Indice del directorio Linux disperso


<!-- dominios que forman parte de la zona raiz y administrados por ella -->
AP
dld.es.ayudas
http://www.linuxlots.com/~barreiro/ayudas/index.html
mbarreiro@red.madritel.es
Ayudas para usuarios de Linux

  <!-- Paginas Bien Conocidas de ayudas-->
PP
http://www.linuxlots.com/~barreiro/ayudas/listas.html
Listas de ayudas para usuarios de Linux
PP
http://www.linuxlots.com/~barreiro/ayudas/news.html
News de ayudas para usuarios de Linux

AP
dld.es.distribuciones
http://www.distri.es/index.html
mbarreiro@red.madritel.es
distribuciones de Linux

  <!-- Paginas Bien Conocidas de distribuciones-->
PP
http://www.redhat.es/index.html
Pagina en Castellano de Red Hat

PP
http://www.debian.es/index.html
Pagina en Castellano de debian

<!-- dominios con administracion delegada -->
<!-- aqui no hay PBC por que se ha delegado -->
<!-- y cada administrador de zona mantiene la informacion -->
<!-- en la cabecera de su pagina maestra -->

DP
dld.es.documentacion
http://www.linuxlots.com/~barreiro/doc/dld.html
mbarreiro@red.madritel.es
Documentacion sobre Linux

DP
dld.es.aplicaciones
http://www.jet.es/jillona/aplica/dld.html
jillona@jet.es
Aplicaciones para Linux

Sobre documentacion y aplicaciones no hay nada, porque se ha delegado el mantenimiento.

6.1.1.2 - Ejemplo de cabecera para una zona delegada

<!-- descripcion del raiz del directorio -->
RP
dld.es
http://www.linuxlots.com/~barreiro/dld/dld.html
mbarreiro@red.madritel.es
Directorio Linux Dispero Castellano

<!-- descripcion de la pagina maestra -->
MP
dld.es.aplicaciones
http://www.jet.es/jillona/aplica/index.html
jillona@jest.es
Aplicaciones para Linux


  <!-- Paginas Bien Conocidas de aplicaciones-->
PP
http://www.jet.es/aplica/graficos.html
Aplicaciones graficas para Linux

PP
http://www.jet.es/aplica/internet.html
Aplicaciones para acceso a internet

<!-- dominios que forman parte de la zona raiz y administrados por ella -->
Descripcion de los subdominios gestionados directamente, incluyendo las
PBC.
<!-- dominios con administracion delegada -->
Descpricion de los subdominios con administracion delegada.
<!-- aqui no hay PBC por que se ha delegado -->

6.1.1.3- Ejemplo de pagina de usuario.

En el caso de un usuario que quiere incluir su pagina en el directorio, pero no quiere líos de administración, enviara información de su pagina al administrador de la zona que crea mas adecuada. Este le dará de alta o le remitirá al administrador adecuado.

El administrador incluirá la siguiente cabecera en su index

<!-- Paginas Bien Conocidas -->
PP
http://www.pepe.es/~pepe/infovia.html
Conexion a infovia con Linux

A partir de este momento la única obligación del usuario es comunicar el cambio de URL de la pagina a su administrador. El programa que comprueba los enlaces detectara las actualizaciones de forma automatica.

Por otro lado el administrador puede dar de baja la pagina, si esta desaparece.

6.1.2.4 Delegación de un dominio.

Cuando alguien quiera hacerse cargo de un dominio, solo hay que enviarle la definición propia del dominio, los subdominios que incluye y las PBC. Una vez dado de alta en el nuevo servidor, se deja en el padre solo la dirección del nuevo servidor. El resto de la información desaparece del padre, y pasa a ser responsabilidad de nuevo administrador, que deberá incluirla en su pagina de entrada y mantenerla al día.

esta previsto tambien que un administardor gestione una seccion sin que tenga pagina Web, copiando el fichero de descripcion a un directorio de DLD, pero este metodo no esta todavia operativo.

6.2 - Version de cabecera antigua

Hubo una primera propuesta de cabecera y se ha abandonado en favor de la descrita en el apartado anterior.

Las cabeceras hacian uso del campo tipo META previsto en la especificación de html, pero complicaban notablemente el mantenimeinto.

7 - Procesos automáticos.

7.1 - Creación automática de un índice del directorio

Partiendo de la cabecera del índice, es fácil recorrer cada rama y obtener así un índice global del directorio (perl). Este índice se pondría como un enlace en la pagina raíz del directorio, y en cualquier pagina que lo desee. Con el mismo programa los administradores de subdominios pueden a su vez crear sus propios índices. Ya en plan guapi se podría incluso hacer en plan gráfico.

Todos los programas se pueden ejecutar como un CGI en el servidor raiz de DLD, o bien en modo local, ejecutandolo desde la linea de comados (eso si con la conexion a internet activa).

7.1.1 Comprobador de cabeceras.

Comprueba la sintaxis de la cabecera de una zona. De momento trabaja leyendo el fichero del servidor, pero seria bueno una version que lea el fichero en local.
Beta dld_comprueba_url.cgi
Beta dld_comprueba_fichero.cgi

7.1.2 Generación de la base de datos con la información de cabeceras.

Lee la cabecera de cada zona delegada, comprueba la sintaxis y genera la base de datos. Realiza un busqueda recursiva de todas las paginas de tipo DP, pero no comrpueba los enlaces de ningun otro tipo.

De momento este programa se ejecuta en el servidor que contiene la pagina raíz del directorio y se lanza de forma manual. Tambien funciona si se ejecuta en local pero con conexion a internet.

La idea es que se ejecute de forma automatica en el servidor raíz en periodos concretos.

Beta dld_base_todo.cgi

Los administradores que lo deseen podrian ejecutar el programa en su propio servidor y crear un indice de su subdirectorio con sus dominios delegados.

Este programa se ejecuta ya de forma automatica todo las noches, para mantener al dia la estructura. 7.1.3 Lectura de la base.

Lee los datos de la base del servidor raíz y los presenta en la pantalla.

Beta dld_base_lee.cgi

7.1.4 Comprobador de estado de enlaces.

Comprueba el estado de cada enlace en la base de datos. El estado se almacena para su uso posterior. Los estados posibles son: Pagina accesible -> 1 Pagina no accesible -> 0 También comprueba cambios en las paginas, con el fin de presentar el correspondiente icono en las paginas nuevas o actualizadas.

Beta dld_ping_todo.pl

Revisa todas las noches una septima parte de los enlaces, de forma que en una semana se revisan el total de las paginas de dld.

7.1.5 Generación del índice de directorio.

Basándose en la información de la base de datos, genera un pagina web con la estructura del directorio.

Esta no es mas que una implementacion de referencia, la presentación del directorio podría hacerse de muchas formas, por niveles en una sola pagina, por niveles en varias paginas, con distintos grados de profundidad, por busqueda de cadenas de caracteres.

Beta dld_file_c_crea.cgi indice principal Beta dld_file_t_crea.cgi resto de paginas indice

Las paginas de la estructura se generan cada noche.

7.1.6 Revisión de una zona por petición.

Una vez que el administrador de una zona realiza cambios, deberia poder indicarselo al directorio raíz, para que este actualice la informacion.

Beta dld_revisa_dp.cgi

paralizado hasta que se incorpore una clave de acceso.

7.1.7 Avisos de enlaces desconocidos

una vez a la semana se notifica a los administradores de grupos de los enlaces a los que no se puede acceder. Beta dld_aviso.pl

7.2 - Librerias comunes.

Variables globales y directivas de ejecucion.

Beta dld_fun.pm

Rutinas de uso general.

Alpha dld_disperso_lib.pm

7.3 - Detección de enlaces rotos en las zonas delegadas.

Se puede automatizar fácilmente la detección de enlaces rotos para cualquier zona de administración (perl), facilitando de esta manera la consistencia del directorio. Esta operación puede realizarse desde cualquier nivel del directorio y con cualquier profundidad.

Beta dld_compro_todo.cgi

8 - Colaboraciones

Para poner en marcha este invento y después mantenerlo se necesita por supuesto colaboración.

8.1 Programadores

Para discutir y revisar los distintos módulos de mantenimiento. El lenguaje escogido es Perl 5.x. Motivo, lo uso a menudo para administración, y para los CGI de mis paginas. De cualquier forma nada impediría usar otros lenguajes, pero por el momento mejor usar solo uno.

8.2 Administradores de zona

Esto seria lo prioritario en estos momentos.

Gente con espacio propio de Web (la zona personal que suelen ceder los proveedores de Internet) que quieran hacerse cargo de zonas de primer nivel y segundo nivel.

No solo se puede, si no que se recomienda utilizar como base tu pagina personal o de grupo (el grupo de seguridad es un buen ejemplo).

Se trata de hacer paginas de introduccion a cada tema, y comentar los enlaces que se incluyen. Por supuesto se puede dividir el grupo o seccion en los apartados tematicos que consideres oportunos, y delegar parte de su mantenimiento cuando lo creas necesario.

Este tipo de colaboracion requiere cierta estabilidad en el trabajo.

De forma semanal os llegara un mensaje de correo con el estado de los enlaces de vuestro grupo o seccion. Por otro lado os llegara informacion de usuarios de DLD sobre enlaces que pueda interesar incluir en el la zona que adminitrais.

Como aproximacion una revision mensual de los enlaces seria mas que suficiente para mantener al dia una seccion.

8.3 Gente que aporte sus paginas.

Cualquier trabajo que tengas en tus paginas personales será bienvenido, Solo tienes que ponerte en contacto con el administrador de la zona que mas se adapte al contenido e indicarle la dirección URL.

8.4 Gente que revise y aporte documentación.

Necesitamos gente que revise la información que vayamos incluyendo, nos aporte información de paginas interesantes, y nos envíe cualquier comentario de interés.

8.5 Diseñadores gráficos.

Hay que dar una imagen a Linux disperso: cabecera y pie de pagina, estructura de las paginas, y por supuesto un logotipo.
El logo y la imagen de DLD están ya en marcha, aunque por supuesto se admiten comentarios. Los dibujos actuales solo intentan dar una idea de por donde van los tiros.

Como veis hay de todo y para todos los gustos.

9 - Conclusión.

Evidentemente hay que currarse el tema, crear los programas en perl, lanzar una prueba piloto con tres o cuatro servidores, etc. Pero creo que la base es buena y se podría llegar a algo interesante.

Si tienes comentarios sobre el tema, me encantaría recibirlos. Si lo ves viable se podría pensar en crear un mini-grupo para la prueba piloto.

Como podeis ver ya estamos realizando pruebas usando dos servidores:

con resultados bastante esperanzadores.

A - Primeros y segundos niveles.


Administración
	redes
	seguridad
	unix	
Colaboraciones
Comunicaciones
	HamRadio
	Hardware
Directorios
Distribuciones
	servidores
Documentación
	Manuales
	Guías Como
	Libros
	Cursos
	Revistas
	Estándares
empresas
grupos
	PaginasPersonales
Hardware
Juegos
	emuladores
Noticias
	eventos
	proyectos
Novatos
Plataformas
	multiproceso
	portatiles
Programacion
	bases de datos
	entornos
	lenguajes
	librerias
Software
	Aplicaciones
        emuladores
        graficos
        Nucleo
X11
        comercial
        desarrollo
        directorio
        escritorios
        gestores

B - Recursos reutilizables.

B.1 - Linux en Movimiento y Glub.

lista de software ordenado

lista de Guías Como

la pagina de recursos en castellano

seguridad

B.2 - Linux Landia

Listas de correo Linux.

Comunicaciones en Linux.

Paginas personales.

revistas.

C - Estudio de tiempos.

Estas pruebas se han realizado con un modem 14400, usando infovia para acceder a mi proveedor habitual. Hay que tener tambien en cuenta que las paginas web de Linux Landia estan albergadas en USA.

C.1 - Lectura de los datos de zonas.

Los datos de las cabeceras no ocupan mucho, unos 250 Bytes por registro. Una cabecera de una zona grande podria tener digamos 50 registros, o sea en total 12,5KB. Una cabecera media unos 25, o sea 6KB.

ZG ->	18 sg    (tiempo de conexion 5 sg, velocidad 1KB).
ZM ->	11 sg
Condiderando un directorio con 10 primeros niveles (ZM) y 100 niveles de segundo nivel (ZG), se tardaria unos 30 minutos en generar la base de datos con todos los enlaces. No es un tiempo excesivo teniendo en cuenta que hablamos de unos 5000 enlaces supervisados y tiempo de conexion tomados de un enlace a internet tipo RTB.

C.2 - Comprobacion de enlaces.

Aquí la cosa se complica, si bien solo hay que conectar con la pagina y leer las primeras lineas, codigo de respuesta, fechas de modifcacion y creacion, la operacion global puede resultar mucho mas lenta por los fallos en las respuestas.

Cuando la respuesta de una pagina sea correcta la respuesta seria rapida, pogamos unos 10 sg. Ahora bien las paginas que no respondan apropiadamente pueden provocar la salida por temporizacion. La interrogacion de estas paginas se iria a los 90 sg (es el tiempo que he fijado en el temporizador).

Sin considerar los fallos los tiempos ya son de escandalo:

(5000 * 10) = 13 horas :-(

Si consideramos que un 5% de las paginas tengan problemas que provoquen temporizaciones, los tiempos para chequear todos los enlaces se disparan aun mas:
(5000 * 0.05) * 90 + 4750 * 10 = 19 Horas :-(

Por lo visto aqui hay un problema gordo.

Supongo que si el procedimiento se ejecuta como un proceso Unix normal y con un ancho de banda mayor, los tiempos serian mucho mas discretos.

M - Colaboradores y agradecimientos.

Bueno de momento estoy yo sólito (solo se ha anunciado de forma muy restringida), pero espero que haya pronto mas gente:

Aunque de momento no han entrado a saco en el proyecto, si han hecho interesantes comentarios, incluido las primeras cabeceras y/o cedido paginas de su web:

N - Derechos de autor.

En principio no tengo claro que hacer con este tema. En general no tengo ningún problema en que se utilice la idea y los programas para cualquier tema relacionado con Linux, siempre con la idea GPL detrás. Esto es puedes modificarlo a tu gusto siempre que lo indiques, sigas incluyendo el código completo y cites mi nombre o el del grupo de trabajo.

Si tienes intención de usar la idea y los programas para cualquier otro fin, deberías ponerte en contacto conmigo primero.
Mailto Home Home Buscadores Home Home Home
mbarreiro@red.madritel.es Manuel de Vega Barreiro. ©