napalm-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[NAPALM-dev] Concepto inicial


From: Javier Barrio
Subject: [NAPALM-dev] Concepto inicial
Date: Wed, 19 Sep 2007 22:58:21 +0200

Bueno chicos, vamos a ir entrando en materia, y qué mejor que copiar lo
que ya ha escrito Carlos para ahorrarme teclear un poco.

Ahí va:

NAPALM - Not Another Plesk/Pathetic Linux Admin Manager
-------------------------------------------------------

1. Introducción
2. Motivación
3. Ideas básicas y conceptos generales


1. Introducción
----------------

NAPALM es un panel de control para ISPs. Éste se desarrollará para
gestionar (inicialmente) los dominios que se pueden dar de alta en un
hosting, con todos los servicios que ésto incluye, como servidor web,
correo, FTP, etc. Tomaremos como punto de partida Plesk
(www.swsoft.com), un gran panel de control, pero de pago.

El desarrollo de NAPALM se iniciará en Python, lenguaje con el que se
desarrollará el núcleo (core) del sistema y el interfaz de línea de
comando (CLI), aprovechando la abstracción que facilitan la familia de
lenguajes de script sobre el sistema operativo y la sencillez con la
que permiten trabajar con el polimorfismo y sobrecarga de métodos. El
uso de Python es simplemente por afrontar el reto (lo sencillo sería
implementarlo en PHP, pero Python mola más :). Para el interfaz web,
aún no se ha decidido el lenguaje que se utilizará para la
implementación. 


2. Motivación
--------------

NAPALM surge debido a la falta de un panel de control para gestionar
servidores web que sea fiable y libre. Como contraejemplos, tenemos
CPANEL y PLESK, los cuales incumplen respectivamente estas dos
características.


3. Ideas básicas y conceptos generales
---------------------------------------

Desglosaremos NAPALM como una aplicación orientada a objetos, separando
en módulos las distintas capas de la aplicación. Así, distinguiremos en
3 niveles:

- Interfaz web
- Interfaz de línea de comando
- Núcleo del sistema

Todo el desarrollo se realizará desarrollando una jerarquía de clases
con el fin de ofuscar lo máximo posible el software utilizado para la
implementación, por ejemplo, para no depender de una única base de
datos. Se creará una clase de interfaz que defina los métodos básicos
de acceso a bases de datos (conectar, desconectar, ejecutar, etc.), la
cual será heredada en todas las clases que implementen el acceso a
distintas bases de datos (mysql, postgresql, oracle, etc). Luego, se
creará una superclase para la conexión a la base de datos, ofuscando el
sgdb que hay ejecutándose por debajo.

De momento, eso.

-- 
echo "dpefsAgmv{p/psh" | perl -pe 's/(.)/chr(ord($1)-1)/ge'
GnuPG key ID 0x6D2FF8B5 @ pgp.rediris.es
http://www.fluzo.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]