UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Voluntad, Conocimiento, Servicio
DESARROLLO DEL MÓDULO DE CONFIGURACIONES DEL SISTEMA DE INFORMACIÓN
DE PUNTOS DE INTERCONEXIÓN
}
Reporte de Estadía para obtener el Título de Técnico Superior Universitario
en Telemática
CAMPA GARCÍA SERGIO ORLANDO
Santiago de Querétaro Noviembre 2005
UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Voluntad, Conocimiento, Servicio
DESARROLLO DEL MÓDULO DE CONFIGURACIONES DEL SISTEMA DE INFORMACIÓN
DE PUNTOS DE INTERCONEXIÓN
Reporte de Estadía para obtener el Título de Técnico Superior Universitario
en Telemática
Asesor en la Universidad: ING. JORGE LUIS MORALES MONTES
Asesor en la Empresa: ING. ALEXANDRO CONDE MARTÍNEZ
Alumno: CAMPA GARCÍA SERGIO ORLANDO
Santiago de Querétaro Noviembre 2005
2
3
AGRADECIMIENTOS:
Durante el largo trayecto que es la vida, nos enfrentamos a
situaciones que pueden hacerla difícil o placentera, así mismo con
las personas que se van presentando a lo largo del camino, sin
embargo, también encontramos a las siempre llevaremos con
nosotros y que no podremos olvidar jamás.
Primero que nada quiero agradecer a DIOS, quien me concedió la
gracia de la vida, ya que sin Él, yo no sería nada.
A mis padres, que tuvieron que soportar los malos ratos que les
hice pasar durante algún periodo de mi vida, pero que me ofrecieron
su apoyo incondicional cuando por fin decidí retomar el camino.
Gracias por su apoyo en las cosas que realizo. Mis hermanos, por
los cuales daría mi vida sin siquiera pensarlo, los quiero mucho a
los 3 aunque no sea muy bueno demostrándolo y deje mucho que
desear a veces. A mi abuelita Carmen, a mis tíos Esperanza,
Martín, Marielena, Gabriela y Esther, así como a mis primos
“Nacho”, “Lupe”, “Pepe”, Myriam y Daniel.
Quiero agradecer también a todos los que han estado conmigo, a
todos los que fueron mi apoyo y me ayudaron siempre en las
situaciones más difíciles, de una manera especial a mi amigo
Daniel Pérez Luna, quien ha estado conmigo durante un largo
tiempo. Los chavos que conocí en la UTEQ, que puedo
considerarlos realmente como mis amigos de verdad: Jesús Adrián
Rubio Aguillón, Edith Adriana Rangel Hernández, Mario Balac
Castillo García, Lucila Alejandra Pérez Sánchez, quienes me
escucharon, estuvieron conmigo y me alentaron a seguir en los
momentos en los que mas lo necesitaba, así como a María de
4
Jesús Lule Hurtado quien aunque tiene una manera muy rara de
ser la aprecio mucho, y a mis profesores, Raúl, Julieta, Alejandra
que aunque los llegábamos a odiar, en base a sus regaños y
enseñanzas nos hicieron quienes somos ahora.
A mis compañeros de trabajo, Katya Rivero, por su paciencia
cuando no sabíamos nada, a Rafael Canchola quien siempre nos
ayudo, al ingeniero Alexandro Conde, por todas su paciencia y las
cosas que nos ha enseñado. De una manera especial a Iván Josué
Jiménez Zarazúa quien me ofreció su amistad y con quien compartí
muchas buenas experiencias en estos meses.
A la mujer más maravillosa, Thalía Briseida Callejas Martínez,
gracias por todos los momentos que me has brindado, por el tiempo
que has dado, así como por el cariño que me has obsequiado, por
todos los momentos buenos y malos que hemos pasado, muchas
gracias!!! Te quiero mucho niña!!!
De antemano muchas gracias a todos…..
5
AGRADECIMIENTOS
ÍNDICE
INTRODUCCIÓN
CAPÍTULO I DESARROLLO DEL MÓDULO DE CONFIGURACIONES DEL SISTEMA DE INFORMACIÓN DE PUNTOS DE INTERCONEXIÓN
1.1 Fonet Global
1.1.1. Giro de la Empresa
1.1.2. Organigrama de la Empresa
1.2 Análisis de necesidades
1.2.1. Definición del Proyecto
1.2.2. Objetivos
1.2.3. Justificación
1.3 Alternativas de solución
1.4 Elección de alternativa óptima
1.5 Plan de Trabajo
1.5.1. Diagrama de Gantt
6
1.5.2. Especificaciones
CAPÍTULO II DESARROLLO DEL PROYECTO
Capítulo II
2.1 Planeación del Proyecto
2.2 Bases de datos: Revisión y diseño
2.3 Documentación sobre los lenguajes a utilizar
2.4 Desarrollo del módulo
2.5 Detección, corrección y análisis de errores
CAPÍTULO III CONCLUSIONES
3.1 Dificultades
3.2 Logros obtenidos
3.3 Recomendaciones
3.4 Aportaciones
ANEXOS
GLOSARIO
MATERIAL DE CONSULTA
7
INTRODUCCIÓN
Las comunicaciones son una parte elemental en nuestra vida,
aunque los métodos cambian día a día, con todos los adelantos que
poseemos nos parece imposible el creer que alguna vez las
comunicaciones no eran más que señales de humo, aves y otros
artefactos, el pensar que para enterarte de algo que sucediera en
un lugar lejano tendrías que esperar días, semanas e inclusive
meses, todo cambio con el revolucionario invento llamado teléfono.
Las distancias se acortaron, pero esto trajo consigo mas avances
en otros campos. Conforme pasaron los años surgieron las
computadoras y uno de los avances más grandiosos e importantes
apareció en escena: Internet.
La telefonía e Internet parecen ir de la mano, es por esto que
surge Fonet Global, explotando el campo de la telefonía dentro de
Internet, tecnología que conforme pasa el tiempo parece hacerse
mas fuerte y con numerosas mejoras. Es así que se deben de hacer
numerosos avances y mejoras, siempre para mejorar. En el capítulo
1 de este trabajo se explican lo que son los planteamientos y sobre
que camino se va a seguir. En el segundo capítulo se revisa como
fue el desarrollo y algunas de las situaciones y cosas que se
tuvieron que resolver, y finalmente en el tercer capítulo se darán las
conclusiones de lo que fueron los logros más importante y que fue
lo que se enfrento.
8
CAPÍTULO I
DESARROLLO DEL MÓDULO DE
CONFIGURACIONES DEL SISTEMA DE INFORMACIÓN DE
PUNTOS DE INTERCONEXIÓN
9
1.1 Fonet Global
1.1.1 Giro de la empresa
Fundada en el año 2000, Fonet Global Inc. es una empresa líder
en servicios de telefonía por internet. La red de Servicios de Fonet
ofrece calidad y servicios equivalentes a los de la telefonía
convencional para los mercados residencial, empresarial y de alto
consumo.
La red vanguardista de voz sobre IP de Fonet ofrece a sus
clientes servicios mejorados de telefonía sobre IP, permitiéndoles
efectuar y recibir llamadas a través de un teléfono convencional y
una conexión de Internet por una fracción del costo de los servicios
telefónicos tradicionales.
Fonet también ofrece soluciones a los proveedores de servicios
de larga distancia, a los operadores de intercambio local competitivo
(CLEC´s) Centrales de Servicio y proveedores de servicios de IP
que les permiten integrar las más completas y avanzadas
características de voz a sus sistemas de redes y servicios.
10
1.1.2 Organigrama de la Empresa
La estadía fue llevada a cabo en el área del NOC de la empresa
(Network Operating Center – Centro de operaciones de la red).
Los dispositivos de la red, tanto interna como externa son
monitoreados, revisados y corregidos remotamente, así como a los
clientes y usuarios de la empresa.
El desarrollo del proyecto se llevó completamente a cabo en esta
área de la empresa, contando como una función en la prestación de
la estadía la atención y servicio a los Customers premises
equipment, ya que es aquí donde se configuran y se les da soporte
y mantenimiento a éstos.
El NOC es también quien coordina la instalación de nuevos
puntos de interconexión, como también su monitoreo, actualización
y mantenimiento.
11
1.2 Análisis de necesidades
1.2.1 Definición del proyecto
Actualmente la empresa cuenta ya con un sistema de información
basado en tecnologías Web, el cual contiene información de los
puntos de interconexión y los equipos utilizados en esos puntos. El
presente proyecto consiste en hacer las modificaciones necesarias
a dicho sistema para incluir en él un módulo que, tomando la
información contenida en el mismo sistema genere de forma
automática los comandos de configuración necesarios para realizar
algunas tareas rutinarias en los equipos necesarios para la
prestación del servicio en el punto correspondiente.
Dicho módulo deberá tener una validación de los datos contenidos
en el sistema, de forma que si falta algún dato o los datos
almacenados no son congruentes con los estándares de la
información requerida, el módulo no deberá generar configuración
alguna y notificará de la información faltante o errónea.
En lo referente a seguridad, el sistema ya cuenta con niveles de
usuarios y privilegios, los cuales para el módulo a desarrollar se
deberán de revisar y adecuar, de ser necesario, para dar un
tratamiento adecuado a la información contenida en el sistema.
Parte del proyecto incluye la generación del manual de usuario de
dicho módulo, asegurando así que todo el personal que requiera
acceso al sistema tenga la información necesaria para operar el
módulo correctamente.
12
1.2.2 Objetivos:
• Contar con un sistema de información que le permita al NOC
(Network Operating Center) de forma sencilla, hacer
cambios a las configuraciones de los equipos, basadas en la
información de estatus de los diferentes servicios instalados
en el punto de interconexión correspondiente.
• Mejorar los tiempos de respuesta a eventualidades por
medio de información actualizada y accesible en todo
momento por todo el personal técnico.
• Uniformizar las configuraciones de todos los equipos
existentes en los puntos de interconexión.
• Mejorar el proceso de instalación de los equipos de
interconexión al crear un proceso estandarizado de
configuración, basado en la información almacenada en el
sistema.
• Aumentar la confiabilidad de las instalaciones al eliminar
dentro de lo posible los errores humanos en el momento de
configuración de los equipos.
1.2.3 Justificación La optimización de un sistema se lleva a cabo en varias fases,
siempre se tiene que mejorar, implementando nuevas cosas y
regulando todo lo existente, en este caso con los sistemas de
interconexión o POP´s que para ofrecer un servicio al máximo y una
funcionalidad total requieren de un constante monitoreo y revisión
de configuraciones, para de esta manera poder brindar al usuario
final un servicio de la máxima calidad posible. Es por esto que para
13
poder regular de una manera más efectiva los sistemas, se busca
hacerlo de una forma automática que a su vez ayudará a evitar en
la medida de lo posible errores humanos que pudieran desembocar
en un servicio deficiente, amén de facilitar la configuración y
tiempos de respuesta ante problemas que los equipos pudieran
presentar, además de mostrar datos completos acerca de la
información existente en cada equipo.
1.3 Alternativas de solución Como la tecnología está en una constante evolución nos ofrece
muchas y cada vez más variadas formas de administración o
monitoreo de lo que sucede en nuestra red, algunas formas de esta
administración son dadas a manera de software adquirido por
medio de licencias, algunas otras son por la programación del
software o el sistema que será usado, como podría ser una página
Web.
1.4 Elección de alternativa óptima La empresa cuenta con un sistema elaborado con tecnología Web
(LAMP=Linux+Apache+PHP+Mysql), este sistema funciona de una
manera aceptable, pero debido al tiempo que tiene en
funcionamiento algunas cosas han quedado obsoletas. Teniendo en
cuenta esto, la realización del proyecto se realizará con base en lo
antes mencionado, adecuando y modificando lo existente a lo que
ahora se necesita; además de que PHP ofrece una programación
relativamente sencilla y accesible, aparte el sistema será utilizado
por varias personas que serán las encargadas de llevar a cabo una
14
revisión de lo que sucede con los equipos a cada momento, de esta
manera se otorgará una herramienta que tendrá un uso sencillo y
estará al alcance de todas las personas que requieran o que tengan
la autorización de usarlo; así mismo, se elaborará un manual para
que su uso sea de una manera correcta.
15
1.5 Plan de Trabajo 1.5.1 Diagrama de Gantt
16
1.5.2 Especificaciones
Actividad Explicación
1. Definición y planeación del proyecto.
Durante esta etapa se
establecerán los parámetros, así
como los puntos que se
requieren cubrir con la
elaboración de dicho proyecto.
2. Capacitación en el soporte a cpe´s.
Parte importante de la red de
Fonet son sus clientes y la
atención a problemas con sus
equipos, es una función
cotidiana en el área del NOC.
3. Planeación del proyecto.
En esta parte se establece la
forma en la que se trabajará y la
manera en la que se irá
elaborando el proyecto.
4. Análisis de las bases de
datos existentes, planeación y realización de nuevas bases
de datos.
La empresa cuenta con un
sistema que recolecta
información sobre sus puntos de
interconexión, al estar
cambiando día a día la
información que se requiere se
debe establecer los puntos y
17
tablas que se requieren.
5. Revisión a tutoriales en PHP.
Ya que el sistema requiere ser
flexible y las tecnologías Web
van en aumento, la realización
del sistema se elaborará por
completo en este lenguaje de
programación.
6. Desarrollo del Proyecto.
La elaboración del proyecto se
realizará en base a las nuevas
bases de datos que se requieran
y a la información sobre los
puntos de interconexión que se
deben de establecer, se
analizará si a las bases
anteriores se les debe realizar
alguna modificación y cuáles
seguirán vigentes y cuáles no.
7. Detección de errores.
Al final se realizará un
meticuloso examen para
detectar fallas y corregirlas.
18
CAPÍTULO II
DESARROLLO DEL PROYECTO
19
*Nota: Por motivos de seguridad de la empresa, los puntos mencionados en el Diagrama de Gantt no se mostrarán de la misma manera, se sustituirá con temas relacionados.
En este capítulo se explicarán y comentarán a detalle las
actividades a realizar en el capítulo anterior, definiendo de una
manera precisa lo realizado y la forma en la que se está llevando a
cabo el proyecto.
En este capítulo se aclararán los medios con los cuales se está
realizando, el método, la forma y el procedimiento, así como la
elección de los caminos por los cuales se está intentando llegar al
resultado final, así como los beneficios que dejará la
implementación de este sistema y cómo funcionará.
Pero antes de adentrarse en el desarrollo de este proyecto y su
elaboración, el lector debe tener algunos preceptos para
comprender todo lo que aquí se menciona.
Para comenzar debemos mencionar un concepto muy importante
en lo que a la Internet se refiere, la Voz sobre IP, o la transmisión
de voz utilizando los protocolos que se manejan dentro de la red de
redes, que día a día está ganando adeptos y su uso, que pasó de
ser un experimento de estudiantes, a un poderoso medio de
comunicación masiva, que sigue extendiendo sus fronteras y nos
muestra que las aplicaciones que puede haber dentro de ella aún
no terminan y siguen surgiendo nuevas que van mejorando o
desbancando otras ya existentes.
20
La idea de una red única que permita el flujo de voz y datos no es
nada nuevo, como se mencionó en el párrafo anterior, la continua
evolución de las tecnologías permite que con lo que ya se cuenta
tenga un mejor uso. Los nuevos estándares, uno definido hace
tiempo (H.323) y los nuevos (SIP), hacen que la transmisión de voz
a través de la red se mejore de una manera significativa, dando
pasos agigantados, ganando nuevo terreno frente a la telefonía
tradicional, ya que se abarata enormemente y ofrece una calidad
muy similar a lo ya existente.
El estándar VoIP (Voice over IP), fue definido desde 1996 por la
ITU (International Telecommunications Union) y proporciona a los
diversos fabricantes una serie de normas con el fin de que puedan
evolucionar en conjunto.
Los protocolos de VoIP por la estructura que proponen
proporcionan ciertas ventajas que se enumeran a continuación:
• Permiten el control del tráfico de red, con esto se disminuyen
las posibilidades de que se produzcan caídas importantes en
el rendimiento de las redes de datos.
• Proporcionan un enlace a las redes telefónicas tradicionales.
• Como se trata de una tecnología basada en el protocolo IP
presenta una serie de ventajas adicionales, las cuales son:
o Ser independiente del tipo de red física que la soporta.
permite la integración con las grandes redes IP
actuales.
o Es independiente del tipo de hardware utilizado.
o Permite una implementación tanto en software como en
hardware, manejándose en un principio a manera de
21
hardware para poder eliminar de esta manera el
impacto que supondrá para los usuarios el uso de esta
tecnología.
El estándar VoIP define una serie de elementos que son
fundamentales para su correcto desempeño:
• Terminales: son lo que vendría a sustituir a los teléfonos
actuales. Éstos pueden ser implementados tanto como por
software como por hardware.
• Gatekeepers: Éstos son los actores principales de una
organización VoIP, y son sustitutos de las grandes centrales
telefónicas. Éstas son implementadas por lo general en
software y todas las peticiones para enlazar una
comunicación son transmitidas a través de este punto.
• Gateways: éstos realizan la función de enlazar las llamadas
que circulan por medio del protocolo VoIP hacia las
centrales telefónicas tradicionales, mientras que ésto es
transparente para el usuario.
A continuación se muestra una estructura de red de VoIP:
Fig. 2.1
22
Los Gateways sirven de enlace entre las RTC (Red Telefónica
Conmutada)/RDSI(Red Digital de Servicios Integrados) y los
protocolos VoIP(Protocolos SIP/H.323). Los Gatekeepers se
encargan de realizar el control de las llamadas y el sistema de
direccionamiento. Un router permite enlazar llamadas con otras
redes que tengan implementados los protocolos SIP/H.323 y poder
realizar llamadas de forma gratuita, resultando esto en algo
satisfactorio en una empresa.
El diagrama a continuación muestra cómo sería una red VoIP en
lugares distintos:
Fig. 2.2
El proyecto lo enfocaremos en lo que son los gateways, o puntos
de interconexión, ya que se pretende tener un control más preciso
acerca de lo que sería su configuración y funcionamiento, esto para
poder brindar rutas más fiables, corregir problemas humanos, hacer
más viables y precisas las configuraciones.
Dentro de los servicios de VoIP podemos encontrar algunos
problemas que como siempre surgen en una nueva tecnología, el
23
garantizar el servicio que funciona en base a una red IP teniendo en
cuenta los retardos y banda ancha no es posible, ya que se
presentan algunos factores que pueden afectar. A continuación se
mencionan los problemas que podemos encontrar y cómo se
manejan:
Anchos de Banda:
En la siguiente tabla se muestra la relación existente entre los
distintos algoritmos de compresión de voz utilizados y el ancho de
banda requerido por los mismos:
VoCodecs Ancho de Banda (BW)
G.711 PCM 64 kbps
G.726 ADPCM 16, 24, 32, 40 kbps
G.727 E-ADPCM 16, 24, 32, 40 kbps
G.729 CS-ACELP 8 kbps
G.728 LD-CELP 16 kbps
G.723.1 CELP 6.3 / 5.3 kbps
Retardos:
Una vez que se establecen los retardos de procesado, retardos de
tránsito, la conversación se puede considerar aceptable por debajo
de los 150 ms.
Calidad de Servicio:
La calidad en el servicio se está logrando con base en los
siguientes criterios:
24
• La supresión de silencios, esto otorga más eficiencia a la
hora de realizar una transmisión de voz, ya que se
aprovecha mejor el ancho de banda.
• Compresión de las cabeceras aplicando los estándares
RTP/RTCP.
• Prioritización de los paquetes que requieran menor latencia.
Las tendencias actuales son: CQ (Custom Queuing) Asigna
un porcentaje del ancho de banda disponible. PQ (Priority
Queuing) Establece prioridad en las colas. WFQ (Weight Fair
Queuing) Se asigna la prioridad al tráfico de menos carga.
DiffServ: Evita tablas de encaminados intermedios y
establece decisiones de rutas por paquete.
• La implementación de Ipv6 que proporciona mayor espacio
de direccionamiento y la posibilidad de tunneling.
2.1 Planeación del proyecto
Ya que el proyecto se tiene que desarrollar en algo que ya existe
se tuvo que seguir sobre la misma línea; es decir, una página Web,
la cual por el tiempo que ha pasado desde que fue implementada
requiere tanto de cambios en su estructura al quedar obsoletos
algunos de los datos que ahí se manejan, así como la aplicación
necesaria de un nuevo módulo, que servirá para hacer ágiles las
configuraciones de los equipos y que se puedan evitar errores
humanos en lo posible, haciendo más confiable los equipos para de
esta manera poder brindar un servicio de calidad al cliente final. El
método Web además brinda un servicio de acceso desde cualquier
punto, que le da una versatilidad impresionante.
25
Con esto nos damos cuenta de que la disponibilidad es algo
esencial en cuanto al monitoreo de algún sistema de interconexión,
ya que deberá ser capaz de tener un control absoluto y a todo
momento de lo que sucede en cada sitio.
Se analizaron estas opciones para poder establecer qué se quería
y cómo se podría establecer, al ver como las crecientes tecnologías
se encaminan a la red de redes, se optó por la creación de una
pagina Web, que por el medio en el que se encuentra nos brinda
una serie de opciones, como por ejemplo:
• Poder tener la información inmediatamente y en todo
momento.
• La facilidad de acceso a esta información, medio y
manipulación de ésta.
• Un costo de mantenimiento relativamente bajo de una
página Web.
Por otro lado, la creación de un software que manipule
información clave dentro de la misma empresa, ofrece la posibilidad
de hacer las cosas “a la medida”, ya que sólo se manipulará la
información meramente requerida y no se tendrán que adaptar
forzosamente a un software elaborado, quizá con otros motivos, y
de esta manera hacer más sencillo el uso y su manipulación.
Fonet Global cuenta en este momento con un sistema de
monitoreo y administración de los puntos de interconexión o POP's,
dado que el sistema cuenta con más de un año y las tecnologías
informáticas y de la comunicación cambian constantemente,
26
algunas de las aplicaciones que tiene el actual sistema pasaron a
ser obsoletas, por lo que ciertos puntos o parámetros que ahí se
manejaban ya no son necesarios, por esta causa se requirió hacer
modificaciones en el sistema, además de añadir el módulo que sirve
de proyecto de estadía.
Como se requiere que la información que se maneja se pueda
elaborar de una manera dinámica y que se construya de una
manera donde se pueda aplicar, además cierta seguridad a la
información que ahí se maneje, se eligieron los lenguajes javascript,
php y la base de datos mysql, que en su interacción producen
resultados muy gratos.
2.2 Bases de datos: revisión y diseño
Fonet Global, al contar con un sistema de administración hacia
sus dispositivos, tiene ya un sistema de bases de datos activo y
funcionando.
La tecnología sigue su transcurso normal, dejando en desuso
algunas cosas, pero creando la necesidad de algo nuevo. Viendo
esto nos encontramos con que algunos detalles ya existentes
necesitaban algo nuevo para funcionar de una manera correcta, por
esto se realizó un análisis y se llegó a la conclusión acerca de
cuáles serían los nuevos parámetros o datos que se necesitan para
el correcto funcionamiento del módulo a elaborar.
Para la manipulación de las tablas y bases de datos el sistema que
se encuentra actualmente en funcionamiento utiliza la tecnología
MySql. Además MySql es una base de datos que se desarrolla
como código abierto; es decir, tiene a miles de programadores
27
detrás de su desarrollo, lo que le confiere capacidad de crecimiento
en un plazo de tiempo relativamente corto.
Este servidor de bases de datos en un principio carecía de
algunos elementos tales como una integridad referencial y de
transacciones. Pese a esto, los desarrolladores de páginas Web
dinámicas han sido atraídos hacia MySql debido a que presenta un
nivel de simplicidad que lo hace muy fácil de manejar.
Pero los elementos faltantes a MySql están siendo
implementados poco a poco, ya que al ser su código fuente abierto,
muchos programadores se interesan en contribuir con elementos
nuevos o inclusive, crear algo nuevo con miras a una mejora
posterior, esto hace que presente una serie de características
como:
• Amplio subconjunto del lenguaje SQL. Algunas extensiones
son incluidas igualmente.
• Disponibilidad en gran cantidad de plataformas y sistemas.
• Diferentes opciones de almacenamiento según si se desea
velocidad en las operaciones o el mayor número de
operaciones disponibles.
• Transacciones y claves foráneas.
28
• Conectividad segura.
• Replicación.
• Búsqueda e indexación de campos de texto.
Por las ventajas aquí presentadas y ya que el sistema actual
maneja MySQL se optó por el uso de esta base de datos, que
además ofrece una excelente compatibilidad con el lenguaje PHP
que ha probado alrededor del mundo tener una conectividad y
trabajo junto a MySQL de muy alto desempeño.
2.3 Documentación sobre los lenguajes a utilizar
La decisión acerca de qué lenguaje se utilizaría, nos mostró que
se necesitaba acceder a la información de una manera dinámica,
que ofrezca estabilidad y amplio rendimiento. Como se trata de una
página Web se requiere que interactué de una manera funcional
con el lenguaje html. Por esta causa se eligió PHP como lenguaje
principal.
PHP es un acrónimo de Hypertext Preprocesor y es un lenguaje de
programación interpretado. Es utilizado entre otras cosas para la
programación de páginas Web dinámicas, y se destaca por su
capacidad de mezclarse con el código HTML. Aunque su creación y
desarrollo se da en el ámbito de los sistemas libres, bajo la licencia
29
GNU, existe además un compilador comercial denominado (Zend
Optimizer).
El uso más extendido del lenguaje PHP, es el de formar parte de
una página Web con el propósito de agregarle características
dinámicas. Su interpretación y ejecución se da en el servidor en el
cual se encuentra almacenada la página y el cliente sólo recibe el
resultado de la ejecución. Cuando el cliente hace una petición al
servidor para que le envíe una página Web, enriquecida con código
PHP, el servidor interpretará las instrucciones mezcladas en el
cuerpo de la página y las sustituirá con el resultado de la ejecución
antes de enviar el resultado a la computadora del cliente. Además
es posible utilizarlo para generar archivos PDF, Flash o JPG, entre
otros.
Sección 1.01 Usos de PHP
Los principales usos del PHP son los siguientes:
• Programación de páginas Web dinámicas, habitualmente en
combinación con el motor de base datos MySQL, aunque
cuenta con soporte nativo para otros motores, incluyendo la
norma ODBC, lo que amplia en gran medida sus posibilidades
de conexión.
• Programación en consola, al estilo de Perl, en Linux,
Windows y Macintosh.
• Creación de aplicaciones gráficas independientes del
navegador, por medio de la combinación de PHP y GTK
(Gimp Tool Kit), que permite desarrollar aplicaciones de
escritorio tanto para los sistemas operativos basados en Unix,
como para Windows y Mac OS.
30
Plataformas adicionales
Para la realización del sistema se contó además con otro
lenguaje de programación, java script, que sirvió de apoyo en las
funciones que soportaron el sistema.
Este lenguaje al contar con una sintaxis similar al lenguaje de
programación C y permitir una compatibilidad con PHP permitió el
uso de funciones que hacen el uso de PHP aun más accesible y la
carga de trabajo que se tendría que realizar con PHP puro se redujo
considerablemente.
Dentro de los lenguajes y su elección queda demostrado las
ventajas o puntos fuertes que ofrecen todos los sistemas elegidos,
así que se procedió a la realización de todo y para esto se tenían
que establecer otro tipo de sistemas y parámetros con relación a los
datos que se tendrían que obtener.
2.4 Desarrollo del módulo
El sistema se implemento sobre una plataforma LAMP (Linux +
Apache + MySql + PHP). Esto porque gran parte de la
infraestructura de Fonet se basa en software libre, esto es, software
que cumple con ciertas características, se pueden mencionar
ventajas y desventajas de software libre haciendo comparación con
el software licenciado o patentado.
Uno de los problemas a los que nos enfrentamos como usuarios
de software patentado es la dependencia hacia un proveedor, esto
porque para poder corregir algún error en el software, agregar
nuevas funcionalidades o dependencias se necesita el código
31
fuente. Es obvio que, al ser la empresa proveedora la única que
dispone de dicho código, sólo ésta puede atender a los
requerimientos de un cliente insatisfecho con el producto del cual ha
adquirido una licencia de uso.
Esto pone al usuario en una clara situación de dependencia del
proveedor. Si el programa presenta algún defecto, éste debe
aceptar las condiciones de la empresa productora del programa (en
el supuesto caso de que dicha empresa reconozca el error y acceda
a repararlo).
Esto produce una falta de garantías ya que la empresa productora
al no responsabilizarse por los defectos que su programa pueda
presentar, ni garantizar su aplicación para ningún fin determinado,
el usuario queda imposibilitado de realizar ningún tipo de acción
contra el proveedor ante la eventualidad de que dichos errores o
defectos le ocasionen perjuicios, ya sea por indisponibilidad de sus
sistemas informáticos, pérdida de información, pérdida de la
confidencialidad de sus datos, etc.
El usuario ni siquiera puede reclamar por el cumplimiento de lo
que el proveedor dice en sus anuncios publicitarios o en los mismos
manuales del producto acerca de sus características.
Cabe recordar en este punto las cuantiosas pérdidas que se
producen cada año por ataques de virus informáticos.
En la mayoría de los casos, los programas propietarios de amplia
difusión son producidos por empresas transnacionales, que cuentan
con representantes o distribuidores en nuestro país. Uno de los
argumentos más fuertes esgrimidos por dichas empresas a la hora
32
de justificar el alto costo de las licencias, es la disponibilidad de
soporte técnico especializado. Dicho servicio supondría un respaldo
hacia el usuario, de cara a la solución de posibles problemas que
pudieran presentarse en el uso del producto adquirido por este
último.
La realidad nos muestra que en la mayoría de los casos, todo lo
que el usuario puede esperar del servicio de soporte técnico son
instrucciones de instalación, configuración y uso. La reparación de
errores detectados en el programa por lo general no está al alcance
de quien brinda el soporte: una subsidiaria o un asociado a la
empresa productora del software, que no dispone del código fuente
del programa. Aún en el caso de poder reportar el fallo a los
encargados del desarrollo del producto, en muchas oportunidades
la empresa no reconocerá que se trata de un defecto del programa,
ya que esto puede afectar a la imagen comercial del producto.
Recordando nuevamente el caso de los virus informáticos, este
problema aumenta año con año debido a la resistencia de las
empresas a reconocer y reparar los errores que posibilitan el
accionar de este tipo de programas.
El modelo de software libre tiene su origen en el mundo
académico. Desde hace más de treinta años, numerosos
programadores de distintas universidades han desarrollado
herramientas de forma cooperativa y abierta, intercambiando
libremente su código fuente. De esta manera se ha logrado
construir productos de software de gran envergadura y excelentes
cualidades técnicas.
33
Con el crecimiento de Internet, dicho movimiento ha sumado
adeptos en todo el mundo, trascendiendo el ámbito académico. En
la última década han surgido empresas que basan su negocio en el
desarrollo, la distribución y el soporte de Software Libre. En la
actualidad numerosas empresas que tradicionalmente han utilizado
el modelo propietario para el desarrollo y la comercialización de sus
productos, comienzan a incorporar productos de software libre. A
modo de ejemplo podemos citar a IBM, que basa todos sus
productos orientados a la Web en el servidor libre Apache.
Un programa puede considerarse “Software Libre”' si se distribuye
bajo una licencia que garantice a quien lo recibe las siguientes
libertades:
1. Libertad de ejecutar el programa, con cualquier propósito.
2. Libertad de estudiar cómo funciona el programa y de
adaptarlo a sus necesidades.
3. Libertad de redistribuir copias del programa.
4. Libertad de mejorar el programa y redistribuir dichas
modificaciones.
Estos últimos dos puntos deben tener una restricción: Si
redistribuye el programa, modificado o no, debe hacerse bajo las
mismas condiciones. Esta cláusula es la que garantiza la libertad
del programa, impidiendo que alguien tome un desarrollo libre y lo
transforme (o incluya) en un desarrollo propietario, limitando alguna
de las libertades citadas.
Aquí cabe mencionar (y por ende, no se limita) la posibilidad de
que quien desarrolla o distribuye un programa libre cobre por ello un
monto de dinero.
34
De esta manera vemos que el software libre permite como
empresa a Fonet Global, modificar los atributos o acciones de
ciertos programas para beneficio propio, y estas mismas ventajas
son las que hicieron que la decisión de uso se diera hacía este tipo
de software.
El sistema al ser una página Web necesita de un sistema
operativo que le brinde estabilidad y que no necesite de grandes
cambios cada que una nueva versión aparece, es por esto que el
servidor de páginas Web que se ha elegido es Apache, un servidor
que también es desarrollado como software libre y que actualmente
es utilizado en el 68% de los servidores de este tipo en el mundo y
sigue creciendo su uso en el mercado según las ultimas
estadísticas.
El servidor de base puede ser extendido con la inclusión de
módulos entre los cuales se encuentran:
• mod_perl - Páginas dinámicas en Perl.
• mod_php - Páginas dinámicas en PHP.
• mod_python - Páginas dinámicas en Python.
• mod_jk - Conector para enlazar con el servidor Jakarta
Tomcat de páginas dinámicas en Java (servlets y JSP).
35
• mod_ssl - Comunicaciones Seguras.
• mod_rewrite - reescritura de direcciones servidas.
Son todas estas ventajas las que ofrece y por las cuales se ha
elegido el apache Server y toda la infraestructura de software libre
para la implementación y desarrollo de este módulo.
La realización de las bases de datos que serán requeridas por el
módulo fueron analizadas y propuestas con base en lo que se
encuentra actualmente funcionando, por lo cual se respetaron
algunos parámetros y algunas bases de datos que seguirán
funcionando en conjunto con el nuevo módulo. Por el lado del
desarrollo de la página se estuvieron analizando diferentes formas
en las que se podría elaborar, por un lado se vio la forma en la que
la información pudiera ser digerida de una manera más rápida por el
usuario a quien está destinado el módulo, y también se pensó en
cómo las bases de datos podrían darnos información más clara,
pensando en un principio utilizar un sistema utilizando valores
booleanos, esto es 1 y 0´s, pero como se requiere agilidad de la
información y la lectura de ésta se va a expresar con texto plano.
Dentro de las cuestiones de trabajo se tuvieron que analizar las
necesidades de cada equipo para el cual se requiere realizar la
configuración, de acuerdo a esto algunos gateways en su
configuración activa cierto campo o lo desactiva de acuerdo a lo que
se esté necesitando en ese momento o el tipo de gateway a usar.
36
Fig. 2.3
Aquí podemos apreciar cómo al entrar a la configuración del
equipo 1005 los campos aparecen deshabilitados, lo cual cambiaría
si se selecciona el usar el equipo 1100.
Aquí también es importante aclarar que aparte de los mencionados
se requiere que la información tenga otro tipo de campos muy útiles
al momento en el que se realicen las configuraciones, estos
apartados son necesarios para poder detectar o analizar cualquier
cantidad de errores, tanto humanos como físicos dentro de las
mismas líneas en las que se esté implementando cada uno de estos
gateways.
Fig. 2.4
37
Otra característica importante es el conocer las configuraciones
que se tienen en el registro para, de esta manera, poder ya sea que
se monitoree de una manera remota, o una que nos muestre la
información de que estado debe tener el equipo y si se requiere
hacer cambios se puedan realizar de una manera más rápida,
constante que tiene el equipo, para con esto en caso de que surja
algún problema poder darle solución de una manera rápida, efectiva
que nos permita continuar con el seguimiento a dicho gateway.
Fig. 2.5
2.5 Detección, corrección y análisis de errores
Como cualquier programa informático, una página Web es
propensa a tener errores humanos, por esto se realizará un
minucioso análisis del código fuente, esto para que en un futuro si
se requiere hacer cambios en el sistema éstos puedan realizarse de
una manera más rápida, conociendo las partes que quizá puedan
ser más conflictivas, añadiendo cambios más rápidos y
enfocándose enteramente en seguridad.
38
Fig. 2.6
Debido a que el sistema fue hecho por otra persona, uno
inmediatamente se enfrenta al hecho de que cada quien desarrolla
una forma de programación diferente, de esta manera el primer reto
es comprender el código fuente y todas las funciones que realiza.
Una vez que se ha comprendido esto se puede comenzar a analizar
la forma de realizar los cambios, es decir, la comprensión es la
parte fundamental de la modificación a cualquier programa o
sistema.
Fig. 2.7
Esto también tiene una utilidad, ya que una vez que se ha
analizado el código y se conoce más a fondo, si se llegara a
presentar algún problema o algo inesperado, es más sencillo ir al
punto en el que se presume sucedió este error o tener una idea más
certera de qué fue lo que pasó y poder atacarlo frontalmente.
39
CAPÍTULO III
CONCLUSIONES
40
3.1 Dificultades
Durante los pasos iniciales la dificultad principal fue la existencia
de un antiguo sistema elaborado completamente por otra persona,
añadiendo su toque personal a la programación, haciendo que
algunas cuestiones quedaran un poco oscuras o siendo incluso algo
difícil de comprender.
La única forma de resolver esto es el análisis completo del
sistema, viendo en cada parte cómo fue desarrollado, en qué paso
se querían hacer las modificaciones y de qué manera se realizarían
éstas.
Dentro de la programación las bases de datos tenían su propio
apartado. Existiendo un sistema, las bases también existían, por lo
tanto, se requería hacer modificaciones a éstas para inclusive
implementar unas nuevas, que vendrían a suplir o bien, hacer
funcionar de una manera distinta a las bases existentes; por lo
tanto, una vez que se analizó minuciosamente todo lo que se
necesitaba, se comenzó una planeación de cómo se modificarían
paso a paso.
Una vez que se resolvió esto se pasó al siguiente punto, el
desarrollo.
Ya que cada servidor tiene un uso definido y de acción crítica no
se podían realizar las modificaciones sobre el servidor mismo, así
que se procedió a la instalación de uno, éste para facilitar la
compatibilidad con lo ya existente se instaló sobre una plataforma
Linux, pero al existir diversas distribuciones se buscó la más
adecuada, siendo Fedora Core 2 la elegida, ya que muestra su
41
eficiencia al ser el servidor que se tiene en funcionamiento desde
hace tiempo.
Al ser un sistema Linux los pasos de instalación difieren de una
manera impactante a como se realizaría sobre un sistema operativo
patentado, mostrando que para usuarios no expertos el poder
realizar una instalación de este tipo no es tan transparente e
inclusive un poco difícil. Como la instalación no quedaba
completada se siguió buscando información que mostrara
detalladamente cómo realizar ésta. Siguiendo estas instrucciones
se logró realizar que el servidor corriera de una manera exitosa,
mostrando que el poder de la plataforma Linux viene de su
amabilidad al permitirnos realizar cambios sobre las funciones del
sistema mismo al darnos acceso al código para realizar los cambios
que se requieran.
Una vez que se pudo utilizar el servidor de una manera efectiva se
procedió a realizar los cambios así como modificaciones a las bases
de datos, esta parte fue fundamental ya que se conoció a fondo
cada detalle que tenía implementado la base de datos existente.
Una vez efectuados todos los cambios comenzó la programación
de lo que sería el nuevo apartado del módulo. Primero se realizo
una práctica, elaborando un boceto de lo que se quería, de manera
que cuando éste funcionara se podría aplicar a lo que es el sistema
en sí.
3.2 Logros obtenidos
Algo muy gratificante en cuanto a logros es el conocer
directamente el poder de un sistema operativo tan estable, potente
42
y manipulable. Algo que también se puede contar como un logro es
el haber podido realizado la instalación de un servidor en un
sistema operativo que, si bien en este momento goza de una gran
popularidad a niveles programadores y usuarios experimentados,
no así en usuarios comunes, esto debido a que su nivel de
complejidad crece de una manera sorprendente, las prestaciones
son muy buenas, pero la complejidad para inclusive instalar un
programa lo hace un poco tedioso para usuarios de un nivel básico.
Conocer más de cerca un lenguaje como php también se puede
considerar como un logro importante, ver cómo interactúa con un
lenguaje como mysql, mostrando el poder que ejercen, así como la
compatibilidad que muestran el uno por el otro, conociendo la
facilidad relativa de uso que tiene mysql al permitirnos realizar tanto
una programación que vaya dirigida tanto a los objetos como a una
secuencia determinada. Otra cosa importante es el lenguaje java,
que da una facilidad de preprocesado importante, esto al realizar
validaciones al instante y no como php, que tendría que correr estas
validaciones en el servidor haciéndolo más lento con respecto a
java.
3.3 Recomendaciones
Un aspecto importante y que uno como estudiante, desarrollador
o usuario no toma seriamente en cuenta es la documentación.
Esta situación hace que algo que quizá fue difícil de instalar o de
crear se pueda olvidar o inclusive perder. Esto al verlo en el aspecto
como son las instalaciones en las distintas distribución Linux nos
pueden marear y perder, o como en los códigos fuente ya sea de un
43
programa o página Web, esto a la hora de necesitar hacer
correcciones, realizar cambios o inclusive la misma comprensión.
3.4 Aportaciones
Dentro de las diversas actividades que se llevaron a cabo dentro
de la estadía hubo una en la que se participó activamente, el
soporte y atención a los cpe´s de los clientes, esta actividad
permitió el conocimiento más profundo de cómo se realizan y
manejan las cosas dentro de la misma empresa.
La empresa mantiene autonomía a la hora de prestar sus servicios
Web, por lo tanto, dentro de fonet existen servidores propios tanto
de páginas Web como de algunos otros servicios; en consecuencia,
se requirió conocer cómo es que se activan este tipo de servicios
que funcionan sobre una plataforma Linux, por lo que se requirió
entre otras cosas aumentar un poco el conocimiento que nos brinda
este tipo de sistemas operativos.
Otro aspecto fue conocer la instalación del conmutador de
software asterisk, que es un conmutador poderoso que funciona
sobre la plataforma Linux, que ofrece un poder de desarrollo
importante, pero que tiene cierta dificultad desde la misma
instalación.
44
ANEXOS
45
ANEXO A
FEDORA CORE, INSTALACIÓN Y PRIMEROS PASOS
Introducción
Fedora Core comienza junto con lo que sería su antecesor: Red
Hat Linux (RHL). El Linux Red Hat se vendía en Internet junto con
un soporte técnico, el cual se ofrecía de 3 a 5 años, pero Red Hat
es una versión que se desarrolla demasiado rápido surgiendo
nuevas versiones cada 6 meses aproximadamente. De esta
manera, el número de clientes aumentaba día a día, provocando
que no se pudiera dar una atención adecuada. Por otro lado, los
nuevos clientes de Red Hat no tenían por que conocer todos los
secretos y trucos de Linux para utilizarlo, esta situación provocó que
los usuarios que se involucraban directamente en el diseño y
desarrollo de productos que envolvían al proyecto Red Hat, fueran
migrando a otras distribuciones. Por estas razones, Red Hat decidió
hacer 2 distribuciones. La primera sería una continuación de Red
46
Hat Linux, que tendría como enfoque principal a las grandes
empresas, este proyecto se bautizó como Red Hat Linux Enterprise
(RHE). Esta distribución tiene un periodo de mantenimiento y
soporte bastante extenso, 5 años, aunque tiene un nuevo
lanzamiento cada 15 meses aproximadamente. La segunda
distribución se enfocó directamente en los antiguos seguidores de
Red Hat, por lo que se creo un proyecto que fuera desarrollado por
y para la comunidad, dentro del cual todo el mundo podría
involucrarse, debido a esto se decidió que lo mejor sería crear una
distribución totalmente independiente de Red Hat, se le cambió el
nombre, se introdujeron los repositorios y la ayuda para el yum,
involucrándose totalmente en el proyecto, prometiendo una nueva
versión cada 6 u 8 meses, lo cual han cumplido con puntualidad.
Como nombre de la distribución se escogió Fedora, esto ya que
había un grupo de usuarios de Red Hat que construían sus propios
paquetes RPM (RedHat Package Manager), y los llamaban Fedora,
se habló con las personas que desarrollaban esos paquetes y se les
preguntó si se podía utilizar el nombre, además de fusionarse con
su grupo a lo cual accedieron y de ahí nació el nombre Fedora.
Instalación
Hay varias maneras para comenzar el proceso de instalación de
Fedora: Bootear desde el CD, desde FTP, HTTP, desde otra
partición del disco duro, etc.
Durante esta guía se asume que se está haciendo la instalación
arrancando desde el CD, aunque la mayoría de los pasos aplican a
cualquier medio.
47
Antes de comenzar la instalación necesitamos obtener las
imágenes ISO, entonces quemarlas en un CD. Uno puede
descargar las imágenes desde los sitios espejo (Fig.9) de la página
de Fedora:
http://fedora.redhat.com/download/mirrors.html
Fig. 9
Entonces tendremos que asegurarnos de que tenemos
principalmente los 3 archivos ISO:
• yarrow-i386-disc1.iso • yarrow-i386-disc2.iso • yarrow-i386-disc3.iso
Aquí podremos ver que aparte de los i386 existen otras
imágenes ISO, las SRPM. Los SRPM son básicamente paquetes
con el código fuente de las aplicaciones disponibles en los discos
i386. Uno como principiante no necesitará de las imágenes ISO
48
SRPM, así que sólo será necesario descargar las imágenes i386
ISO.
Será necesario “quemarlos” en un CD. Para usuarios de Windows
esto significa usar algo como el Easy CD Creator o el Nero. Los
actualmente usuarios de Linux pueden usar alguno de los
grabadores de CD, como el K3b, o simplemente grabar el disco
desde la línea de comandos. Una vez que se tenga el disco se
puede inserta el primer disco en la unidad lectora de CD y se
reinicia la máquina.
Una vez que la máquina ha reiniciado será presentada una
pantalla con varios mensajes de comandos. Habrá disponibles
varias opciones de instalación o simplemente se podrá presionar
‘Enter’ para continuar con las configuraciones preestablecidas. Para
ver las opciones que se le pueden dar al instalador se puede
presionar la tecla F2.
Después del instalador se preguntará si se quiere verificar la
integridad de los CD´s. Se podrá omitir este paso presionando en la
opción <Skip>, aunque es recomendable hacerlo. El instalador de
esta distribución de Linux se llama “Anaconda”, y se podrá observar
que realizará las comprobaciones de hardware.
A continuación aparecerá la primera pantalla del instalador
gráfico, cada paso en la instalación tiene un texto demasiado útil
describiendo las opciones de la etapa en la que se encuentre, para
continuar se presiona la tecla “Next” (Fig. 10).
49
Fig.10
Primero necesitamos seleccionar el lenguaje que se usará durante
la instalación, tiene un lenguaje predeterminado instalado.
Posteriormente estará disponible la opción de seleccionar lenguajes
adicionales para instalar (Fig. 11).
Fig. 11
50
Lo siguiente es hacer la selección del idioma del teclado que será
usado (Fig.12), así mismo el sistema por lo general hace una auto-
selección del tipo de Mouse que se está utilizando (Fig.13).
Fig. 12 Fig.13
Después de presionar el botón “Next” en la pantalla de
configuración del Mouse, el instalador buscará por versiones
anteriores de Fedora (Fig. 14) y probablemente de Red Hat Linux.
Fig. 14
51
A continuación se nos presentará el tipo de instalación (Fig. 15),
aquí es donde se determina qué tipo de sistema se requiere
instalar: Personal Desktop, Workstation, Server o establecer una
instalación personalizada. Si se selecciona una de las opciones
predefinidas no se puede hacer una selección personalizada de los
paquetes a instalar. Para hacer esto se selecciona la opción
Custom install.
Fig. 15
Ya que presionamos “Next” se nos mostrará la pantalla de
configuración del disco duro (Fig.16). Esta parte es crucial, así
como la más temida de cualquier instalador de Linux. No debemos
preocuparnos por los RAID´s y LVM´s, así que podremos ignorar
estos botones.
52
Si se está instalando Fedora en un disco duro individual, la mejor
opción es seleccionar la opción de “Automatic Partitioning”. Si se
quiere un arranque dual con Windows u otro sistema operativo se
necesitará crear otra partición vacía antes de comenzar ya que el
instalador de Fedora no puede redimensionar una partición de
Windows.
Si se están creando las particiones de una manera manual, las
particiones que se necesitarán son una partición root (“/”) así como
una Swap. La única restricción que tiene una partición root, la cual
contendrá todos los archivos del sistema, es que necesitará un gran
espacio para acomodar toda la instalación (usualmente de 2 a 4
gigas mínimo) y la partición Swap deberá ser aproximadamente 2.5
veces la cantidad de memoria Ram que tenga la máquina.
Aunque no es necesario se recomienda hacer una partición
“/home”. Esto es donde los usuarios almacenan sus archivos, como
en Windows se realizaría en la carpeta “Mis Documentos”. Creando
una partición home por separado, nos permitirá realizar re-instalar o
instalar otra distribución Linux sin perder archivos personales.
La terminología en Linux para etiquetar las unidades de disco
duro será hd(letra)(numero). La letra se refiere a la posición que la
unidad ocupa en la misma computadora. Así la primer unidad
mostrará la etiqueta hda. El número hará referencia a la partición de
la unidad. De esta manera, la primera partición del primer IDE se
etiquetará como hda1.
53
Fig. 16
Continuando se realizará la configuración de gestor de arranque
(Boot Loador, Fig. 17), que es el que nos permitirá elegir el sistema
operativo que cargará, esto claro si hay más de uno instalado. Se
pueden hacer modificaciones o dejar las que vienen
preestablecidas.
Fig. 17
54
Si uno se encuentra conectado a una LAN (Local Area Network =
Red de Área Local) o se cuenta con un modem ya sea cable o DSL
se necesitará configurar las aplicaciones de red. Por defecto el
instalador (Fig.18) tiene esta aplicación por DHCP (Domain Host
Control Protocol), lo cual obtiene información del ISP (Internet
Service Provider) automáticamente. Muchos proveedores de
Internet por Cable y de Banda Ancha proveen su servicio
proporcionado por DHCP, así que se puede dejar como está. Si se
necesita ingresar una IP de una manera manual, simplemente se
presiona el botón “Edit” y se realiza.
Fig. 18
Después de realizar la configuración del dispositivo Ethernet, se
continúa con la configuración del Firewall (Cortafuegos, Fig. 19).
Los Firewall´s es recomendable tenerlos activos todo el tiempo,
especialmente si se tiene una conexión de Banda Ancha o se
encuentra en una LAN. Si no se planea montar algún servidor con
la configuración preestablecida bastará, pero si este no es el caso
se tienen algunos parámetros que se pueden establecer para que el
55
Firewall les de libre acceso, ya sea a un servidor de mail, FTP, Web
o el acceso remoto SSH.
Fig.19
Ya establecidas las configuraciones de red y del Firewall se hará
la selección del lenguaje que se requiera para la máquina, se puede
seleccionar alguno, si se requiere se podrá hacer la instalación de
otro lenguaje posteriormente. Ya que el lenguaje haya sido
establecido, se continuará con una pantalla donde se pida
seleccionar los tiempos horarios apropiados para la máquina (Figs.
20 y 21).
Fig. 20 Fig.21
56
En el ambiente Linux/Unix “Root” (Fig. 22) es el administrador de
la máquina, sólo se utiliza este usuario para correr las tareas de
administración. El ejecutar Root como usuario es una idea muy
mala. No sólo es un riesgo de seguridad, sino que uno se enfrenta
al riesgo de cambiar o remover accidentalmente configuraciones
críticas del sistema o archivos que pueden hacer inútil el sistema y
hacer necesaria una reinstalación del sistema operativo.
Fig. 22
Una vez establecida la contraseña de root cambiará a una
pantalla de selección de paquetes (Fig.23), en esta sección
seremos capaces de seleccionar o deseleccionar los paquetes que
vienen en el sistema. Si se quieren seleccionar paquetes
individuales de algún grupo en específico sólo se presionará en el
botón de detalles y esto proveerá una lista de paquetes instalados
dentro de ese grupo. Aquí se pueden seleccionar o deseleccionar
los paquetes que uno desee.
57
Fig. 23
Antes de comenzar la instalación, Fedora preguntará si se desea
continuar (Fig.24), ya que se comenzará el formateo de la unidad o
de las particiones, así como las instalación de los paquetes
apropiados.
Fig.24
El instalador nos recordará que necesitamos los discos
necesarios para la instalación (Fig.25).
58
Fig.25
Entonces se comenzará con el formateo de todas las particiones
que lo requieran (Fig.26).
Fig. 26
Se transferirá una imagen al disco duro, que es una instalación
básica del sistema (Fig.27).
Fig. 27
59
Comienza la instalación de paquetes (Fig. 28), dependiendo de
cuántos paquetes se vayan a instalar y el desempeño de la
máquina será el tiempo que demore la instalación, ésta tomará de
15 a 40 minutos, dependiendo de los factores anteriormente
mencionados.
Fig.28
Después de haber cambiado los discos que se hayan necesitado
la instalación estará completa (Fig.29).
Fig.29
60
Después de completar la instalación y que la computadora se
reinició, se presentará un cuadro del primer arranque (Fig. 30).
Estas son tareas sencillas, como la configuración de la fecha y hora.
Fig. 30
Ya que le dimos siguiente, aparecerá la licencia del producto (Fig.
31).
Fig. 31
Configuración de Fecha y Hora (Fig. 32)
61
Fig. 32
Una vez que esto ha sido configurado se procede a la creación
del usuario corriente, este es un punto importante ya que este
usuario es lo que se recomienda para trabajar, el acceso con el
usuario “root” sólo es aconsejable para tareas administrativas
(Fig.33).
Fig. 33
62
A continuación se configurarán los dispositivos como la tarjeta de
sonido y ver si el instalador la reconoce, si no sucede ésto se puede
realizar una prueba con otro kernel, etc. (Fig. 34).
Fig. 34
Se podrán instalar paquetes de Cd´s adicionales (Fig. 35).
Fig. 35
Con esto termina la instalación de Fedora Core Linux (Fig. 36).
63
Fig. 36
Ahora uno sólo tiene que introducir su nombre de usuario y
contraseña y podrá comenzar a usar su distribución de Linux (Fig.
37).
Fig. 37
64
ANEXO B Introducción:
Un servidor Web (apache) es un programa que permite que una
página Web o un portal completo puedan ser visualizados desde
una computadora externa mediante un navegador. PHP es un
lenguaje de programación capaz, de entre otras cosas, interactuar
con bases de datos (MySQL). Un sistema gestor de bases de datos
(SGBD) es una aplicación que permite manejar bases datos.
Este manual hace referencia a Apache 1.3.33 y PHP 4.3.11 y
MySQL 3.23.58 (y 4.0.24) y versiones posteriores, ya que la
configuración, ni la sintaxis cambia, ni varia en nada.
a) Instalación Apache Web Server
Primero hay que descargar el programa Apache:
http://httpd.apache.org/download.cgi
Lo siguiente es realizar la descompresión, así como la
compilación
tar -xvzf apache_1.3.28.tar.gz
cd apache_1.3.28
./configure --enable-module=so
make
65
make install
El directorio donde se almacena por defecto es /usr/local/apache,
pero ésto se puede cambiar con ./configure –prefix=/www
Una vez que haya terminado de compilar el programa mostrará
una pantalla diciéndonos que se ha completado la instalación con
éxito.
b) Instalación PHP: Así como el apache, lo primero que hay que hacer es realizar la
descarga de PHP de:
http://www.php.net/get/php-4.3.1.tar.gz/from/bg.php.net/mirror
Ahora como siguiente paso, se procede a la descompresión y
compilación de PHP.
tar -xvzf php-4.3.1.tar.gz
cd php-4.3.1
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs
o bien:
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --
with-gd --with-zlib
66
make
make install
Cabe mencionar que se debe haber compilado el Apache con
module=SO para poder compilar el PHP y la ruta del apxs correcta,
si no también dará un error. Aquí se ha puesto la ruta por defecto,
si se ha instalado el Apache en otro sitio se puede hacer un "locate
apxs" y ver dónde fue instalado.
Hasta aquí ha sido todo instalado de una manera correcta, claro
está si no marcó ningún error por dependencias, pero ahora se le
tiene que indicar al Apache que debe de interpretar los scripts de
PHP. Esta configuración se realiza en el archivo httpd.conf, que por
lo general, si se eligió la ruta de instalación por default estará en la
carpeta /usr/local/apache/conf, una vez aquí buscamos la línea que
diga:
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
Y a continuación le añadimos esta línea:
AddType application/x-httpd-php .php
Debe de que quedar así:
<IfModule mod_dir.c>
67
DirectoryIndex index.html
AddType application/x-httpd-php .php
</IfModule>
Hay algunas páginas que usan .shtml (y son webs dinámicas),
sería muy fácil añadir un .shtml para que fuera equivalente a un
.php
Es suficiente con añadir esta línea:
AddType application/x-httpd-php .shtml
Se puede editar el php.ini en/etc/php.ini o /usr/local/lib/php.ini
Por defecto PHP usa sendmail para enviar e-mails con la función
mail() , pero si queremos usar qmail, tenemos que añadir la ruta del
ejecutable:
/usr/lib/qmail/qmail-inject
Para hacer iniciar el servidor Apache existen varias maneras:
/usr/local/apache/bin/apachectl start
/etc/rc.d/init.d/httpd start
/usr/local/apache/bin/httpd
Todas son válidas y con cualquier usuario, ya que en el conf ya se
incluye "User nobody" y "Group nogroup". Puedes comprobarlo con
el comando "ps -aux".
68
Instalar el MySQL bajo Linux, tampoco tiene mucho misterio. Hay
paquetes rpm o puedes instalarlo desde las fuentes.
Para arrancarlo si has instalado el RPM:
/etc/rc.d/init.d/mysql start
Para instalarlo desde las fuentes (recomendado para una máxima
estabilidad y rendimiento) bajaremos el tar.gz de:
http://dev.mysql.com/downloads/mysql/4.0.html
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf –
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
Las Bases de datos se guardan por defecto en:
69
/var/lib/mysql
Si quieres editar algún valor del MySQL:
ves al /etc/my.cnf y escribes la variable más el valor nuevo:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable = max_connections=250
set-variable = max_connect_errors=100
set-variable = interactive_timeout=14400
set-variable = wait_timeout=14400
set-variable = connect_timeout=1
[mysql.server]
#muy importante como siempre ejecutar este proceso con un
usuario con pocos privilegios
user=mysql
#donde tenemos las bases de datos, por si queremos ponerlas en
otra partición, por ejemplo.
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
70
pid-file=/var/run/mysqld/mysqld.pid
El max_connections por defecto es: 150, es más que suficiente
para según qué cosas, pero en una máquina grande con muchas
bases de datos, puede pasar que en un momento determinado
hayan 150 conexiones simultáneas. Entonces saldrá un error de
"Too many connections".
También se pueden cambiar otros valores (variables):
set-variable = variable = nuevovalor
Ejemplo:
set-variable = key_buffer=8M
Una valor muy imporante para optimizar el MySQL es el "query
caching". Creando una cache de las consultas podemos mejorar el
rendimiento de la cpu y la velociad de las consultas.
Primero debemos asegurarnos que está activado:
mysql> SHOW VARIABLES LIKE 'mysql_query_cache';
have_query_cache | YES
Si está que no:
query_cache_type = 1
71
Definimos el tamaño de la cache en el archivo /etc/my.cnf
query_cache_size=16M o query_cache_size=320M
O más grande si tenemos mucha más ram (1gb-2gb)
También le podemos decir qué querys, con qué tamaño mínimo
queremos que las guarde en cache:
query_cache_limit = 1M
Las consultas (querys) de más de 1 Mb no se guardarán en la
caché.
Variables que conviene mirar:
Querys en caché
mysql> SHOW STATUS LIKE 'Qcache_queries_in_cache';
Número de querys con caché servidas
mysql> SHOW STATUS LIKE 'Qcache_hits';
Memoria libre de la cache para las querys.
mysql> SHOW STATUS LIKE 'Qcache_free_memory';
72
Más variables a tener en cuenta:
http://www.mysql.com/doc/en/Query_Cache_Status_and_Maintenan
ce.html
El MySQL lleva 3 archivos de configuración de ejemplo, para
equipos pequeños (menos de 512 de ram), equipos medianos (más
de 512 de ram) y para equipos grandes (1,2 Gigas de ram).
Básicamente repercutirán en el consumo de ram del proceso
MySQL, ya que los ejemplos de configuración varían el tamaño de
la caché, de las consultas, etc.
# para equipos con =512 RAM
set-variable = key_buffer=256M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8
log-bin
server-id = 1
# para equipos con 1 o 2 GB de ram
key_buffer = 384M
73
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
Vamos a ver estos valores por otros "no oficiales" pero igualmente
válidos y que funcionan mejor:
#equipos con 512 de ram (editar siempre /etc/my.cnf)
thread_cache_size=50
key_buffer=40M
table_cache=384
sort_buffer_size=768K
read_buffer_size=512K
read_rnd_buffer_size=512K
thread_concurrency=2
#equipos con 1gb de ram (editar siempre /etc/my.cnf)
thread_cache_size=80
key_buffer=150M
table_cache=512
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=768K
thread_concurrency=2
74
GLOSARIO
75
VoIP: Conjunto de aplicaciones que permiten la transmisión de voz en
vivo a través de Internet utilizando los protocolos TCP/IP. Este tipo
de aplicaciones, todavía en una primera etapa de explotación
comercial, incurrirá en un enorme ahorro para los usuarios en
llamadas de larga distancia así como un potencial problema para
los operadores de telefonía de voz.
Gateway: Puerta de acceso o sistema de información que transfiere
información entre sistemas o redes incompatibles o de distinto
protocolo.
En telecomunicaciones, el término gateway puede referirse a:
• Una puerta de enlace, un nodo en una red informática que
sirve de punto de acceso a otra red.
• Una pasarela, un dispositivo dedicado a intercomunicar
sistemas de protocolos incompatibles.
Gatekeeper: Son los aditamentos que vienen a sustituir las centrales
telefónicas. Las peticiones de conexión se realizan a través de este
punto.
Ancho de Banda: Para señales analógicas, el ancho de banda es la anchura,
medida en hertz, del grupo de frecuencias que realizan trabajo útil.
Este grupo de frecuencias es en donde se encuentra concentrada la
mayor energía de la señal. También son llamadas frecuencias
76
efectivas las pertenecientes a este rango. Es común denominar así
a la cantidad de datos que se pueden transmitir en una unidad de
tiempo. Por ejemplo, una línea ADSL de 256 kbps puede,
teóricamente, enviar 256.000 bits (no bytes) por segundo. Esto es
en realidad la tasa de transferencia.
Un ejemplo de banda estrecha es la que se consigue por medio de
una conexión telefónica o dial-up; y un ejemplo de banda ancha es
la que se recibe por medio de una conexión DSL, microondas, cable
módem o T1. Cada clase de conexión tiene su propia amplitud
(capacidad) de banda. Ancho de banda y «saturación redil» son dos
factores que influyen directamente sobre la calidad de los
streamings.
Calidad en el Servicio (QoS):
En Internet y otras redes, designa la posibilidad de medir, mejorar
y, en alguna medida, garantizar por adelantado los índices de
transmisión y error. Es importante para la transmisión fluida de
información multimedia: por ejemplo, para los usos académicos de
Internet2.
77
MATERIAL DE CONSULTA
78
• Linux Reviews
http://linuxreviews.net/FedoraInstallGuide
• PHP: Hypertex Preprocessor
http://www.php.net
• El hacker.net
http://foro.elhacker.net
• Fedora Project, sponsored by Red Hat
http://fedora.redhat.com
79
AGRADECIMIENTOS
ÍNDICE
INTRODUCCIÓN
CAPÍTULO I DESARROLLO DEL MÓDULO DE CONFIGURACIONES DEL SISTEMA DE INFORMACIÓN DE PUNTOS DE INTERCONEXIÓN
1.1 Fonet Global
1.1.3. Giro de la Empresa
1.1.4. Organigrama de la Empresa
1.2 Análisis de necesidades
1.2.1. Definición del Proyecto
1.2.2. Objetivos
1.2.3. Justificación
1.3 Alternativas de solución
1.4 Elección de alternativa óptima
1.5 Plan de Trabajo
1.5.1. Diagrama de Gantt
80
1.5.2. Especificaciones
CAPÍTULO II DESARROLLO DEL PROYECTO
Capítulo II
2.1 Planeación del Proyecto
2.2 Bases de datos: Revisión y diseño
2.3 Documentación sobre los lenguajes a utilizar
2.4 Desarrollo del módulo
2.5 Detección, corrección y análisis de errores
CAPÍTULO III CONCLUSIONES
3.1 Dificultades
3.2 Logros obtenidos
3.3 Recomendaciones
3.4 Aportaciones
ANEXOS
GLOSARIO
MATERIAL DE CONSULTA
81
82