P. 1
Proyecto de Trabajo de Investigación

Proyecto de Trabajo de Investigación

|Views: 27.233|Likes:
PTI del proyecto de desarrollo de un sistema Web integral para la EAPISI de la Univerisidad Nacional del Santa
PTI del proyecto de desarrollo de un sistema Web integral para la EAPISI de la Univerisidad Nacional del Santa

More info:

Published by: Jonathan Muñoz Aleman on Jul 14, 2009
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/18/2015

pdf

text

original

UNIVERSIDAD NACIONAL DEL SANTA

FACULTAD DE INGENIERÍA
Escuela Académico Profesional de Ingeniería de Sistemas e Informática

“Desarrollo de un Sistema Web para Promover la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa” PROYECTO DE TRABAJO DE INVESTIGACIÓN
INVESTIGADORES: Muñoz Aleman Jonathan S. Paniagua Vilcarino Sarath Rosales Chinchihuara Beder Terrones España Carlos

ASESOR: Mg. Ing. Guillermo Gil Albarrán NUEVO CHIMBOTE – PERÚ Lunes, 13 de Julio de 2009

Índice de Contenido
1. Datos Generales........................................................................................................................... 5 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. Título ................................................................................................................................... 5 Autores ................................................................................................................................ 5 Asesor.................................................................................................................................. 5 Tipo de Investigación .......................................................................................................... 5 Régimen de la Investigación ............................................................................................... 5 Duración del Proyecto ......................................................................................................... 5 Fecha de Inicio ............................................................................................................ 5 Fecha de Término ........................................................................................................ 5

1.6.1. 1.6.2. 1.7.

Área de Desarrollo del Proyecto ......................................................................................... 5 Localidad ..................................................................................................................... 5 Institución .................................................................................................................... 5

1.7.1. 1.7.2. 1.8. 1.9. 1.10. 1.10.1. 1.10.2. 1.10.3. 1.11. 1.11.1. 1.11.2. 1.11.3. 1.11.4. 1.12. 2.

Unidad Académica .............................................................................................................. 5 Cronograma de Actividades ................................................................................................ 6 Recursos .......................................................................................................................... 6 Personal ....................................................................................................................... 6 Bienes y materiales...................................................................................................... 6 Servicios ...................................................................................................................... 6 Presupuesto...................................................................................................................... 7 Personal ....................................................................................................................... 7 Bienes y Materiales ..................................................................................................... 7 Servicios ...................................................................................................................... 7 Resumen ...................................................................................................................... 8 Financiamiento ................................................................................................................ 8

Plan de Investigación ................................................................................................................ 10 2.1. Problema ........................................................................................................................... 10 Realidad Problemática............................................................................................... 10 Análisis del Problema................................................................................................ 11 Formulación del Problema ........................................................................................ 11 Antecedentes ............................................................................................................. 12 Justificación............................................................................................................... 12 Limitaciones .............................................................................................................. 13

2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.1.5. 2.1.6.

2.2.

Objetivos ........................................................................................................................... 14 Objetivo General ....................................................................................................... 14 Objetivos Específicos ................................................................................................ 14

2.2.1. 2.2.2. 2.3. 2.4.

Hipótesis ............................................................................................................................ 14 Marco Teórico ................................................................................................................... 14 Aplicación Web ......................................................................................................... 14 Base de Datos ............................................................................................................ 17 Sistemas Gestores de Bases de datos ........................................................................ 21 Servidor MySQL ....................................................................................................... 23 Servidor Web............................................................................................................. 25 Servidor HTTP Apache ............................................................................................. 26 Lenguaje de Programación ........................................................................................ 28 Lenguaje de Programación PHP................................................................................ 32 Sistema de Gestión de Contenidos ............................................................................ 35 Framework Joomla!................................................................................................... 38

2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4.5. 2.4.6. 2.4.7. 2.4.8. 2.4.9. 2.4.10. 2.5. 2.6. 2.7.

Metodología a Seguir ........................................................................................................ 39 Diseño de Investigación .................................................................................................... 40 Cobertura del Estudio ........................................................................................................ 40 Población ................................................................................................................... 40 Muestra ...................................................................................................................... 40

2.7.1. 2.7.2. 2.8.

Fuentes, Técnicas e Instrumentos de Recolección de Datos ............................................. 40

Bibliografía y Linkografía................................................................................................................. 41

Índice de Tablas
Tabla 1. Cronograma de actividades del proyecto. ............................................................................. 6 Tabla 2. Presupuesto del personal. ...................................................................................................... 7 Tabla 3. Presupuesto de los bienes y materiales. ................................................................................ 7 Tabla 4. Presupuesto de los servicios. ................................................................................................. 7 Tabla 5. Presupuesto total resumido por categorías. ........................................................................... 8 Tabla 6. Técnicas e instrumentos utilizados en la investigación. ...................................................... 40

Capítulo I

1. Datos Generales
1.1. Título
―Desarrollo de un Sistema Web para Promover la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa‖

1.2.

Autores
Muñoz Aleman Jonathan S. Paniagua Vilcarino Sarath J. Rosales Chinchihuara Beder M. Terrones España Carlos

1.3. 1.4. 1.5.

Asesor
Mg. Ing. Guillermo Gil Albarrán

Tipo de Investigación
Aplicada/Tecnológica

Régimen de la Investigación
Libre, el presente Proyecto de Trabajo de Investigación es realizado por iniciativa de los autores.

1.6.

Duración del Proyecto
1.6.1. Fecha de Inicio 06/06/2009 1.6.2. Fecha de Término 06/11/2009

1.7.

Área de Desarrollo del Proyecto
1.7.1. Localidad Nuevo Chimbote 1.7.2. Institución Universidad Nacional del Santa

1.8.

Unidad Académica
Facultad de Ingeniería – Escuela Académico Profesional de Ingeniería de Sistemas e Informática

1.9.

Cronograma de Actividades
Para llevar a cabo el proyecto se hace necesario realizar diferentes actividades, las que serán mostradas en el siguiente Diagrama de Gantt, donde se establecen tiempos aproximados para el cumplimiento de dichas actividades. Para llevar a cabo el proyecto se hace necesario realizar diferentes actividades, las que serán mostradas en la Tabla 1, donde se establecen tiempos aproximados para el cumplimiento de dichas actividades. Las actividades realizadas para la culminación del proyecto son las siguientes:
Actividad Elaboración del PTI Revisión Bibliográfica Recopilación de datos Fase de Inicio Fase de Elaboración Fase de Construcción Fase de Transición Duración 5 días? 5 días 10 días? 10 días? 15 días? 55 días? 10 días? Inicio 08/06/2009 15/06/2009 22/06/2009 06/07/2009 20/07/2009 10/08/2009 26/10/2009 Fin 13/06/2009 20/06/2009 04/07/2009 18/07/2009 08/08/2009 24/10/2009 06/11/2009

Tabla 1. Cronograma de actividades del proyecto.

El diagrama de Gantt de las actividades programadas se muestra como un anexo al final de este documento.

1.10. Recursos
1.10.1. Personal Investigadores o Muñoz Aleman Jonathan S. o Paniagua Vilcarino Sarath J. o Rosales Chinchihuara Beder M. o Terrones España Carlos Asesor: Mg. Ing. Guillermo Gil Albarrán 1.10.2. Bienes y materiales Papel Bond A4 de 80 gr Lapiceros CR – RW Cartucho para Impresora HP 2460 Memoria USB 4GB Folders Manila tamaño A 4 Engrapador Clips 1.10.3. Servicios

Internet Fotocopiados Impresión Pasajes

1.11. Presupuesto
1.11.1. Personal Especificación Precio Unitario Muñoz Aleman Jonathan S. S/. 500.00 Paniagua Vilcarino Sarath J. Rosales Chinchihuara Beder Terrones España Carlos Total
Tabla 2. Presupuesto del personal.

Meses 4

Subtotal S/. 2,000.00 S/. 0.00 S/. 0.00 S/. 0.00 S/. 2,000.00

1.11.2. Bienes y Materiales Especificación Cantidad Bienes y Materiales Papel Bond A4 80 gr. 1 Lapiceros 4 CD - RW 1 Cartucho de tinta 2 Memoria USB 4 GB 1 Fólder Manila A4 1 Engrapador 1 Clips 1 Software Windows XP SP 3 1 Microsoft Office 2007 1 Total

Unidad Millar Unidad Docena Unidad Unidad Docena Unidad Caja Licencia Licencia

Precio Unitario S/. 22.00 S/. 0.50 S/. 9.00 S/. 120.00 S/. 45.00 S/. 6.00 S/. 5.00 S/. 3.00 S/. 300.00 S/. 255.00

Subtotal S/. 22.00 S/. 2.00 S/. 9.00 S/. 240.00 S/. 45.00 S/. 6.00 S/. 5.00 S/. 3.00 S/. 300.00 S/. 255.00 S/. 887.00

Tabla 3. Presupuesto de los bienes y materiales.

1.11.3. Servicios Especificación Internet Fotocopiado Impresión Movilidad Total

Cantidad Unidad S/. 440.00 Hora S/. 500.00 Copia S/. 200.00 Hoja S/. 21.00 Pasaje

Precio Unitario 1 0.1 0.1 12

Subtotal S/. 440.00 S/. 50.00 S/. 20.00 S/. 252.00 S/. 762.00

Tabla 4. Presupuesto de los servicios.

1.11.4. Resumen
ESPECIFICACIÓN Personal Bienes y Materiales Servicios Imprevistos Total SUBTOTAL S/. 2,000.00 S/. 887.00 S/. 762.00 S/. 364.90 S/. 4,013.90

Tabla 5. Presupuesto total resumido por categorías.

1.12. Financiamiento
El presupuesto del proyecto será financiado por los autores en su totalidad. Muñoz Aleman Jonathan S. Paniagua Vilcarino Sarath J. Rosales Chinchihuara Beder M. Terrones España Carlos 25% 25% 25% 25%

Capítulo II

2. Plan de Investigación
2.1. Problema
2.1.1. Realidad Problemática Hoy en día, la gran mayoría de instituciones y organizaciones cuentan con un sistema Web que les permita brindar al público información variada acerca de los productos y los servicios que ofrecen. También, se conciben estos sistemas de manera que ayuda al acercamiento a los clientes, actuales y potenciales, ya que es muy fácil distribuir la información por Internet. Debido al auge que se encuentra viviendo el mundo entorno a las comunicaciones mediante el Internet, el surgimiento de la necesidad de compartir información mediante los sitios de plataforma Web, hace que se torne indispensable la implementación de un sitio Web, Página o cualquier término afín, el cual nos proporcionará un medio de comunicación de masas, que puede influir, educar o informar de manera casi gratuita. La Universidad Nacional del Santa es una institución de servicios, que tiene como misión formar profesionales con adecuados conocimientos científicos, tecnológicos, humanísticos, con altos valores éticos-morales tendientes a desarrollar sus capacidades y destrezas para contribuir a satisfacer las necesidades de la sociedad, así como desarrollar investigación científica y extensión social. La Escuela Académico Profesional de Ingeniería de Sistemas e Informática, es el órgano encargado de formar profesionales en Ingeniería de Sistemas e Informática de alto nivel; críticos, comprometidos con la búsqueda de la vedad y la práctica de valores en su interrelación permanente con la sociedad. Buscando la excelencia académica a través de la investigación y la docencia, brindando el soporte educacional a la política de generación de empleo. Siguiendo los avances tecnológicos, y sobre todo los avances a pasos agigantados de las tecnologías de información, la Escuela Académica Profesional de Ingeniería de Sistemas e Informática no puede estar ajena a dichos avances, además teniendo como antecedentes las características de nuestra carrera que nos impulsa a la práctica constante de la investigación, adquisición de nuevos y mejores conocimientos para luego aplicarlos en el desarrollo de soluciones para problemas en el entorno laboral. Ante ésta situación tenemos el compromiso de proyectarnos y visionar un mejor futuro, en el cual la EAPISI, sea reconocida como una escuela comprometida con el desarrollo profesional de sus estudiantes, como punto de partida conviene el Desarrollo de un Portal Web, que permitirá la comunicación constante entre estudiantes, docentes y autoridades, además que de ésta manera se promueve el compromiso de los estudiantes.

2.1.2. Análisis del Problema La Escuela Académico Profesional de Ingeniería de Sistemas e Informática forma profesionales en Ingeniería de Sistemas e Informática de alto nivel; críticos, comprometidos con la búsqueda de la vedad y la práctica de valores en su interrelación permanente con la sociedad para un desarrollo profesional eficiente. Actualmente presenta problemas en la administración de la información y la falta de integración entre todos los miembros de la escuela, ya que no cuenta con un Sistema vía Web que permita promover la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática, por lo que se genera un descontrol en sus actividades, provocando malestar entre la población estudiantil y la plana docente debido a que el acceso a la información y su difusión se logra únicamente en la EAPISI, lo que ocasiona pérdida de tiempo, un servicio deficiente en cuanto a la fluidez de la información, así como perjuicio a la imagen institucional ya que resulta paradójico que estando la carrera orientada a temas tecnológicos no cuente aun con un Portal Web, lo cual origina que no haya un debido reconocimiento tanto en el ámbito local como nacional. El presente proyecto de investigación titulado ―Desarrollo de un Sistema vía Web que permita promover la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa‖, ha sido propuesto con el objetivo de demostrar que es posible lograr la integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática, además servirá como instrumento de apoyo en el funcionamiento y mejora institucional lo que permitirá formalizar y dar a conocer las actividades que se llevan a cabo en la EAPISI, es importante también destacar que para la realización de este proyecto de investigación se decidió la utilización de herramientas de la categoría Open Source de tal modo que se eliminen costos de licencias, permitiendo un ahorro económico significativo para la institución haciendo factible su implementación. Por lo tanto, podemos concluir que la necesidad de la implementación de un Sistema de Información vía Web radica en el hecho de adoptar un medio el cual va a permitir una mejor gestión de la información (rapidez funcional y operativa), promoviendo la integración de todos sus miembros. 2.1.3. Formulación del Problema ¿En qué medida el Desarrollo de un Sistema vía Web promoverá la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa?

2.1.4. Antecedentes UNIVERSIA Universia es la mayor red iberoamericana de colaboración universitaria. Integra 1.100 universidades e instituciones de educación superior en 15 países. Las universidades socias de Universia forman el 75,6 % del colectivo universitario de los países donde está presente. Universia representa 10,2 millones de alumnos, 8 millones de usuarios mensualmente y 850.000 profesores. El Proyecto Universia fue presentado en Madrid el 9 de julio de 2000 con el mecenazgo del Grupo Santander, el apoyo de la Conferencia de Rectores de las Universidades Españolas (CRUE), el Consejo Superior de Investigaciones Científicas (CSIC) y la mayor parte de las universidades españolas. La Presidencia de la Sociedad creada a tal efecto (Portal Universia S. A.) la asumió Emilio Botín Sanz. A partir de principios de 2001, se inicia la extensión del "Modelo Universia" hacia Portugal y los países iberoamericanos. Como resultado de esa extensión, se formalizaron los diferentes portales que constituyen la red y la constitución paralela de casi todas las sociedades Universia (Argentina, Brasil, Chile, Colombia, España, México, Perú, Puerto Rico y Venezuela). Portugal lo hace un año más tarde y Uruguay se formalizó años más tarde en noviembre de 2005. Con el fin de expandir la red Universia hacia el mundo, la información básica de Universia fue publicada en 5 idiomas dentro del portal de Wikipedia durante el mes de marzo de 2009 bajo la edición y traducción de Pabsi González de Universia Puerto Rico. En la actualidad, Universia constituye la red universitaria más importante del mundo. (Wikimedia Foundation, Inc., 2009) 2.1.5. Justificación El proyecto parte de la necesidad de promover la integración de los alumnos, docentes y autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa, y así poder mejorar la relaciones entre ellos. Este proyecto se realizará con la finalidad de lograr la integración de los miembros de la escuela así como también proporcionar un medio de comunicación formal para difundir las actividades académicas de la EAPISI. Este Sistema vía Web permitirá una mejor administración de la información en lo que respecta al desarrollo de las actividades así como también se logrará

tener un merecido reconocimiento tanto en el ámbito local como nacional dando mayor realce y aceptación a la carrera, elevando la imagen institucional. La realización de este Sistema vía Web será de forma descriptiva dado que presenta valiosa información, será analizada dentro de las 4 fases que corresponden al proyecto Web, lo cual facilitará un mejor entendimiento de sus procesos, definiendo variables importantes como son los tiempos ponderados para la realización de cada actividad, los responsables de la realización y la dependencia en la que se desempeña el responsable, las observaciones y requisitos y los controles normativos en cada uno. El Desarrollo e Implementación de un Sistema de Información vía Web para la Escuela Académico Profesional de la Universidad Nacional del Santa permitirá adoptar un medio de comunicación el cual va a hará posible una mejor gestión de la información (rapidez funcional y operativa), promoviendo la integración de todos sus miembros. 2.1.6. Limitaciones El sistema se ocupara de los siguientes aspectos: Información General de la Escuela o Organización de la Escuela (Autoridades, etc) o Plana Docente o Perfil del Egresado o Plan Curricular o Grados y Títulos o Procesos de trámites documentarios. o Eventos relacionados a la carrera. Comunidad de Sistemas. Esta comunidad va a permitir la comunicación e integración entre los alumnos, egresados y docentes beneficiándolos en el aspecto profesional y laboral. Los alumnos de pregrado tendrán al alcance la información adecuada para desarrollar prácticas preprofesionales. Servicios o Centro de descargas de manuales y tutoriales relacionados a las asignaturas del Plan Curricular. o Descarga de formatos de trámites documentarios. o Grupos de Estudio. o Blog y foros

2.2.

Objetivos
2.2.1. Objetivo General Desarrollar de un Sistema vía Web para promover la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa. 2.2.2. Objetivos Específicos Desarrollar una comunidad Web a través de la cual, alumnos, docentes, egresados y autoridad, accedan a la información e interactúen dinámicamente. Ayudar a elevar el nivel académico de los alumnos de la EAPISI, complementando los conocimientos impartidos en las aulas con contenido actualizado. Dar a conocer a nivel local, regional y nacional el potencial existente en los alumnos de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática. Permitir que la EAPISI sea reconocida a nivel regional por ayudar al desarrollo profesional de sus alumnos. Agilizar la toma de decisiones en base a los resultados ofrecidos por el sistema. Recolectar los datos necesarios para el procesamiento de la información que se brindará en el sistema Web. Utilizar la metodología RUP y el lenguaje UML con extensiones para Web para llevar a cabo el análisis, el diseño y la documentación del sistema. Utilizar herramientas de software libre para realizar la implementación del sistema Web. Demostrar que los alumnos de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática son capaces de participar en proyectos serios de desarrollo de software.

2.3.

Hipótesis
El Desarrollo de un Sistema vía Web permitirá la Integración de Alumnos, Docentes y Autoridades de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa.

2.4.

Marco Teórico
2.4.1. Aplicación Web Se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web (HTML, JavaScript, Java, ASP.NET, etc.) en la que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs y las tiendas en línea que son ejemplos bien conocidos de aplicaciones web. Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo. En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía su propio programa cliente que servía como interfaz de usuario que tenía que ser instalado por separado en cada ordenador personal de cada usuario. El cliente realizaba peticiones a otro programa -el servidor- que le daba respuesta. Una mejora en el servidor, como parte de la aplicación, requería normalmente una mejora de los clientes instalados en cada ordenador personal, añadiendo un coste de soporte técnico y disminuyendo la productividad. A diferencia de lo anterior, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, como HTML o XHTML, que soportan por los navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario. Generalmente cada página web en particular se envía al cliente como un documento estático, pero la secuencia de páginas ofrece al usuario una experiencia interactiva. Durante la sesión, el navegador web interpreta y muestra en pantalla las páginas, actuando como cliente para cualquier aplicación web. Las interfaces web tienen ciertas limitaciones en las funcionalidades que se ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar que no están soportadas por las tecnologías web estándar. Los desarrolladores web generalmente utilizan lenguajes interpretados o script en el lado del cliente para añadir más funcionalidades, especialmente para ofrecer una experiencia interactiva que no requiera recargar la página cada vez (lo que suele resultar molesto a los usuarios). Recientemente se han desarrollado tecnologías para coordinar estos lenguajes con tecnologías en el lado del servidor, como por ejemplo PHP. Como ejemplo, AJAX, es una técnica de desarrollo web que usa una combinación de varias tecnologías.

Una ventaja significativa es que las aplicaciones web deberían funcionar igual independientemente de la versión del sistema operativo instalado en el cliente. En vez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la aplicación web se escribe una vez y se ejecuta igual en todas partes. Sin embargo, hay aplicaciones inconsistentes escritas con HTML, CSS, DOM y otras especificaciones para navegadores web que pueden causar problemas en el desarrollo y soporte de las aplicaciones web. Adicionalmente, la posibilidad de los usuarios de personalizar muchas de las características de la interfaz (tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicación web. Otra aproximación es utilizar Adobe Flash Player o Java applets para desarrollar parte o toda la interfaz de usuario. Como casi todos los navegadores incluyen soporte para estas tecnologías (usualmente por medio de plug-ins), las aplicaciones basadas en Flash o Java pueden ser implementadas con aproximadamente la misma facilidad. Dado que ignoran las configuraciones de los navegadores, estas tecnologías permiten más control sobre la interfaz, aunque las incompatibilidades entre implementaciones Flash o Java puedan crear nuevas complicaciones. Por las similitudes con una arquitectura clienteservidor, con un cliente "no ligero", existen discrepancias sobre el hecho de llamar a estos sistemas ―aplicaciones web‖; un término alternativo es ―Aplicación Enriquecida de Internet‖. Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python (programming language) o Ruby on Rails) constituye la capa de enmedio. Por último, una base de datos constituye la tercera y última capa. El navegador web manda peticiones a la capa de enmedio que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario. Una estrategia que está emergiendo para las empresas proveedoras de software consiste en proveer acceso vía web al software. Para aplicaciones previamente distribuidas, como las aplicaciones de escritorio, se puede optar por desarrollar una aplicación totalmente nueva o simplemente por adaptar la aplicación para ser usada con una interfaz web. Estos últimos programas permiten al usuario pagar una cuota mensual o anual para usar la aplicación, sin necesidad de instalarla en el ordenador del usuario. Las compañías que siguen esta estrategia se denominan Proveedores de Aplicaciones de Servicio (ASP por sus siglas en inglés), un modelo de negocio que está atrayendo la atención de la industria del software. (Wikimedia Foundation, Inc., 2009)

2.4.2. Base de Datos Una base de datos o banco de datos (en inglés: database) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen unos programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental. Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo en España, los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD). Tipos de Bases de Datos Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación: Según la Variabilidad de los Datos Almacenados BASES DE DATOS ESTÁTICAS. Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones. BASES DE DATOS DINÁMICAS. Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc.

Según el Contenido BASES DE DATOS BIBLIOGRÁFICAS. Solo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque sino estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias—ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras. BASES DE DATOS DE TEXTO COMPLETO. Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas. DIRECTORIOS. Un ejemplo son las guías telefónicas en formato electrónico. BASES DE DATOS O "BIBLIOTECAS" DE INFORMACIÓN BIOLÓGICA. Son bases de datos que almacenan diferentes tipos de información proveniente de las ciencias de la vida o médicas. Se pueden considerar en varios subtipos: o Aquellas que almacenan secuencias de nucleótidos o proteínas. o Las bases de datos de rutas metabólicas o Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de biomoléculas. o Bases de datos clínicas o Bases de datos bibliográficas (biológicas) Modelos de Bases de Datos Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos:

Bases de Datos Jerárquicas Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base de Datos de Red Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. Base de Datos Relacional Éste es el modelo no utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser

recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos. Durante los años '80 (1980-1989) la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBASE no utilizaba SQL como lenguaje base para su gestión. Bases de Datos Multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar. Bases de Datos Orientadas a Objetos Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: ENCAPSULACIÓN. Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. HERENCIA. Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. POLIMORFISMO. Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se

especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. Se está trabajando en SQL3, que es el estándar de SQL92 ampliado, que soportará los nuevos conceptos orientados a objetos y mantendría compatibilidad con SQL92. Bases de Datos Documentales Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos. Base de Datos Deductivas Un sistema de bases de datos deductivas, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basa en lógica matemática. Gestión de Bases de Datos Distribuida La base de datos está almacenada en varias computadoras conectadas en red. Surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etcétera. (Wikimedia Foundation, Inc., 2009) 2.4.3. Sistemas Gestores de Bases de datos Los sistemas de gestión de base de datos (SGBD); (en inglés: DataBase Management System, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. Existen distintos objetivos que deben cumplir los SGBD: Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de

datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. Manejo de Transacciones. Una Transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. Ventajas Proveen facilidades para la manipulación de grandes volúmenes de datos. Algunas de estas facilidades son: Simplifican consistencia de los datos. Manejan las políticas de respaldo adecuadas garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores correctamente, etc. Permiten realizar una reorganización de los datos con un impacto mínimo en el código de los programas. Permiten bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores. Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Inconvenientes Típicamente, es necesario disponer de una o más personas que administren de la base de datos, en la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren de los sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una planilla de cálculo. Complejidad: el software muy complejo y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño, que requiere de gran cantidad de memoria para poder correr. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero. fecha de lanzamiento. (Wikimedia Foundation, Inc., 2009) 2.4.4. Servidor MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es propietario y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.

SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en 1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad. Michael Widenius en la década de los 90 trató de usar mSQL para conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable. La procedencia del nombre de MySQL no es clara. Desde hace más de 10 años, las herramientas han mantenido el prefijo My. También, se cree que tiene relación con el nombre de la hija del cofundador Monty Widenius quien se llama My. Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los fundadores de MySQL AB en el concurso ―Name the Dolphin‖. Este nombre fue enviado por Ambrose Twebaze, un desarrollador de Open source Africano, derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose. Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic (Mac), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una API específica. También existe un interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP. MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno

es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. (Wikimedia Foundation, Inc., 2009) 2.4.5. Servidor Web Un servidor web es un programa que implementa el protocolo HTTP (HyperText Transfer Protocol). Este protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para transferir lo que llamamos hipertextos, páginas web o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. Es un programa que se ejecuta continuamente en un ordenador (también se emplea el término para referirse al ordenador que lo ejecuta), manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. Instalar un servidor web en nuestro PC nos permitirá, entre otras cosas, poder montar nuestra propia página web sin necesidad de contratar hosting, probar nuestros desarrollos vía local, acceder a los archivos de nuestro equipo desde un PC remoto (aunque para esto existen otras opciones, como utilizar un servidor FTP) o utilizar alguno de los programas basados en web tan interesantes que están viendo la luz últimamente. El problema de usar nuestro ordenador como servidor web es que conviene tenerlo encendido permanentemente (para que esté accesible de forma continua como la mayoría de los sitios webs), con el consiguiente coste debido al consumo de electricidad (conviene tener en cuenta que hay alojamientos web gratuitos, incluso sin publicidad y con interesantes funciones). Sin embargo, el hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un lenguaje de marcas y HTTP es un protocolo. Un servidor web se mantiene a la espera de peticiones HTTP por parte de un cliente HTTP que solemos conocer como navegador. El cliente realiza una petición al servidor y éste le responde con el contenido que el cliente solicita. A modo de ejemplo, al teclear www.wikipedia.org en nuestro navegador, éste realiza una petición HTTP al servidor de dicha dirección. El servidor responde al cliente enviando el código HTML de la página; el cliente, una vez recibido el código, lo interpreta y lo exhibe en pantalla. Como vemos con este ejemplo, el cliente es el encargado de interpretar el código HTML, es decir, de mostrar las fuentes, los colores y la disposición de los textos y objetos de la página; el

servidor tan sólo se limita a transferir el código de la página sin llevar a cabo ninguna interpretación de la misma. Sobre el servicio web clásico podemos disponer de aplicaciones web. Éstas son porciones de código que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir entre: Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario. Son las aplicaciones tipo Java o JavaScript: el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje JavaScript y Java, aunque pueden añadirse más lenguajes mediante el uso de plugins. Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP. Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones JavaScript o Java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones. (Wikimedia Foudation, Inc., 2009) 2.4.6. Servidor HTTP Apache El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf eligió ese nombre porque quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft[]). La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache. Apache es usado primariamente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby). Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere Application Server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux. Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versión local de Apache en orden de previsualizar y probar código mientras éste es desarrollado. Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más

grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basada en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache. La licencia de software bajo la cual el software de la fundación Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su código fuente original. La Free Software Foundation no considera a la Licencia Apache como compatible con la versión 2 de la GNU General Public License (GPL), en la cual el software licenciado bajo la Apache License no puede ser integrado con software distribuido bajo la GPL Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le permite ser compatible con licencias que tienen claúsulas de represalia de patentes, incluyendo a la Licencia Apache. El nombre Apache es una marca registrada y puede ser sólo utilizada con el permiso expreso del dueño de la marca. (Wikimedia Foundation, Inc., 2009) 2.4.7. Lenguaje de Programación Con la aparición de las computadoras desaparecen las secuencias de posiciones de llaves mecánicas que debían desconectarse para obtener una acción determinada, una llave conectada era un 1 y una llave desconectada era un 0. Una sucesión de llaves en cualquiera de sus dos posiciones definía una secuencia de ceros y unos (por ejemplo: 0100011010011101...) que venía a representar una instrucción o un conjunto de instrucciones (programa) para el ordenador (o computador) en el que se estaba trabajando. A esta primera forma de especificar programas para una computadora se la denomina lenguaje máquina o código máquina. La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos. Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y

expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina. Aunque muchas veces se usan los términos 'lenguaje de programación' y 'lenguaje informático' como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación). Un lenguaje de programación permite a uno o más programadores especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa. Los procesadores usados en las computadoras son capaces de entender y actuar según lo indican programas escritos en un lenguaje fijo llamado lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras: Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como intérpretes. Traduciendo este programa, al programa equivalente escrito en lenguaje de máquina. A ese proceso se lo llama compilar y al programa traductor se le denomina compilador. Clasificación de los Lenguajes de Programación Los lenguajes de programación se pueden clasificar atendiendo a varios criterios: Según su Nivel de Abstracción LENGUAJES DE MÁQUINA. Están escritos en lenguajes directamente legibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas. LENGUAJES DE BAJO NIVEL. Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El

lenguaje de más bajo nivel por excelencia es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. LENGUAJES DE MEDIO NIVEL. Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel. LENGUAJES DE ALTO NIVEL. Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, uno de los lenguajes de alto nivel más conocidos, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Esta forma de trabajar puede dar la sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos. Según el Paradigma de Programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro. Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en: El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C o por BASIC. El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. El paradigma lógico, un ejemplo es PROLOG. El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk. NOTA: La representación orientada a objetos mejora la estructura de los datos y por lo tanto se ha aplicado a diferentes paradigmas como Redes de Petri, Imperativo Secuencial, Lógica de Predicados, Funcional, etc. No obstante, la manipulación no queda fundamentalmente afectada y por lo tanto el paradigma inicial tampoco a pesar de ser re-orientado a objetos. Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.

Actualmente el paradigma de programación más usado debido a múltiples ventajas respecto a sus anteriores, es la programación orientada a objetos. 1. Lenguajes imperativos. Son los lenguajes que dan instrucciones a la computadora, es decir, órdenes. 2. Lenguajes Funcionales. Paradigma Funcional: este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones. 3. Lenguajes Lógicos. La computación lógica direcciona métodos de procesamiento basados en el razonamiento formal. Los objetos de tales razonamientos son "hechos" o reglas "if then". Para computar lógicamente se utiliza un conjunto de tales estamentos para calcular la verdad o falsedad de ese conjunto de estamentos. Un estamento es un hecho si sus tuplas verifican una serie de operaciones. Un hecho es una expresión en la que algún objeto o conjunto de objetos satisface una relación específica. Una tupla es una lista inmutable. Una tupla no puede modificarse de ningún modo después de su creación. Un regla if then es un estamento que informa acerca de conjuntos de tuplas o estamentos relacionados que pueden predecir si otras tuplas satisfacerán otras relaciones. Un estamento que es probado verdadero como resultado de un proceso se dice que es una inferencia del conjunto original. Se trata por tanto de una descripción de cómo obtener la veracidad de un estamento dado que unas reglas son verdaderas. La computación lógica está por tanto relacionada con la automatización de algún conjunto de métodos de inferencia. 4. Lenguajes orientados a objetos. La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

Implementación La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: Compilación e interpretación. Compilación es la traducción a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente. La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código. (Wikimedia Foundation, Inc., 2009) 2.4.8. Lenguaje de Programación PHP PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. PHP es un lenguaje interpretado de propósito general ampliamente usado y que está diseñado especialmente para desarrollo web y puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores, aunque el número de sitios en PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo sitio web de Wikipedia está desarrollado en PHP. Es también el módulo Apache más popular entre las computadoras que utilizan Apache como servidor web. La versión más reciente de PHP es la 5.2.9-1 (for Windows) del 10 de Marzo de 2009. El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones. Aunque todo en su diseño está orientado a facilitar la creación de página web, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo, a esta versión de PHP se la llama PHP CLI (Command Line Interface). Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos. Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI. PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de Sun Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado) comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno integrado de desarrollo para PHP, denominado Delphi for PHP. Existe un módulo para Eclipse, uno de los IDE más populares. Ventajas Es un lenguaje multiplataforma. Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL. Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones). Posee una amplia documentación en su página oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Permite las técnicas de Programación Orientada a Objetos. Biblioteca nativa de funciones sumamente amplia e incluida. No requiere definición de tipos de variables (Esta característica también podría considerarse una desventaja del lenguaje). Tiene manejo de excepciones (desde PHP5). Desventajas Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes. (Wikimedia Foundation, Inc., 2009)

2.4.9. Sistema de Gestión de Contenidos Un Sistema de gestión de contenidos (Content Management System en inglés, abreviado CMS) es un programa que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en páginas web, por parte de los participantes. Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio. El sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier momento un diseño distinto al sitio sin tener que darle formato al contenido de nuevo, además de permitir la fácil y controlada publicación en el sitio a varios editores. Un ejemplo clásico es el de editores que cargan el contenido al sistema y otro de nivel superior (directorio) que permite que estos contenidos sean visibles a todo el público (los aprueba). CMS es el acrónimo en inglés, Content Management System, para sistema de gestión de contenidos. Los primeros sistemas de administración de contenidos fueron desarrollados por organizaciones que publicaban una gran cantidad de contenido en internet, y necesitaban de continuas actualizaciones; como revistas en línea, periódicos y publicaciones corporativas. En 1995, el sitio de noticias tecnológicas CNET sacó su sistema de administración de documentos y publicación y creó una compañía llamada Vignette, pionero de los sistemas de administración de contenido comerciales. La evolución de Internet hacia portales con más contenido y la alta participación de los usuarios directamente, a través de blogs y redes sociales, han convertido a los gestores de contenidos en una herramienta esencial en internet, tanto para empresas e instituciones como para las personas. Los wikis y los sistemas groupware también son considerados CMS. Hoy en día existen versiones desarrolladas en código abierto y versiones propietario. En ambos casos es necesaria una implantación para adaptar el gestor de contenidos al esquema gráfico y funcionalidades deseadas. Para ciertos gestores existen muchas plantillas disponibles que permite una sencilla implantación por parte de un usuario sin conocimientos de programación. El paradigma de este caso es Wordpress, gestor sobre el que hay una gran comunidad de desarrolladores de extensiones y plantillas. El gestor de contenidos es una aplicación informática usada para crear, editar, gestionar y publicar contenido digital en diversos formatos. El gestor de contenidos genera páginas dinámicas, mediante DHTML, (HTML dinámico); la aplicación interactúa con el servidor para generar la página web, bajo petición del usuario, con el formato predefinido y el contenido extraído de la base de datos del servidor.

Esto permite gestionar, bajo un formato padronizado, la información del servidor, reduciendo el tamaño de las páginas para descarga y reduciendo el coste de gestión del portal con respecto a una página estática, en la que cada cambio de diseño debe ser realizado en todas las páginas, de la misma forma que cada vez que se agrega contenido tiene que maquetarse una nueva página HTML y subirla al servidor. Entendido como un sistema de soporte a la gestión de contenidos; ya que, en realidad, son las estrategias de comunicación las que realmente llevan a gestionar contenidos de forma efectiva; los sistemas informáticos pueden a lo sumo proporcionar las herramientas necesarias para la publicación en línea, o bien incluir servicios de soporte a la toma de decisiones por lo que a la gestión de contenidos se refiere. El gestor de contenidos se aplica generalmente para referirse a sistemas de publicación, pudiendo subestimarse las funcionalidades de soporte, en detrimento de las funcionalidades relacionadas con la optimización de los tiempos de publicación. La correcta implantación del sistema, con arreglo a las necesidades del cliente es necesaria, y es necesario entender el proyecto de un portal web en el seno de un proyecto de comunicación estructurado y bien planteado por parte del cliente. La elección de la plataforma correcta será vital para alcanzar los objetivos del cliente, ya que exentan particularidades diferenciales tanto en su adaptabilidad a esquemas gráficos como la posible integrabilidad de funcionalidades y extensiones adicionales. El posicionamiento en buscadores está altamente relacionado con el volumen de contenidos de un portal y con la forma en la que éste se presenta. Es importante tener eso en cuenta para la estructura del portal para garantizar un correcto posicionamiento orgánico. Un sistema de administración de contenido siempre funciona en el servidor web en el que esté alojado el portal. El acceso al gestor se realiza generalmente a través del navegador web, y se puede requerir el uso de FTP para subir contenido. Cuando un usuario accede a una URL, se ejecuta en el servidor esa llamada, se selecciona el esquema gráfico y se introducen los datos que correspondan de la base de datos. La página se genera dinámicamente para ese usuario, el código HTML final se genera en esa llamada. Normalmente se predefine en el gestor varios formatos de presentación de contenido para darle la flexibilidad a la hora de crear nuevos apartados e informaciones. Dependiendo de la plataforma escogida se podrá escoger diferentes niveles de acceso para los usuarios; yendo desde el administrador del portal hasta el usuario sin permiso de edición, o creador de contenido. Dependiendo de la

aplicación podrá haber varios permisos intermedios que permitan la edición del contenido, la supervisión y reedición del contenido de otros usuarios, y etc. El CMS controla y ayuda a manejar cada paso de este proceso, incluyendo las labores técnicas de publicar los documentos a uno o más sitios. En muchos sitios con CMS una sola persona hace el papel de creador y editor, como por ejemplo los blogs. Los gestores de contenido se pueden segmentar según diferentes criterios: Según el lenguaje de programación empleado: Active Server Pages, Java, PHP, ASP.NET, Ruby On Rails Según la propiedad del código o Open Source (código abierto); permite que se desarrolle sobre el código, o Código propietario; sólo su desarrollador puede desarrollar la aplicación. Según el tipo de uso o funcionalidades: o Plataformas generales o Sistemas específicos o Blogs; pensados para páginas personales o Wikis; pensados para el desarrollo colaborativo o e-learning; plataforma para contenidos de enseñanza on-line o e-commerce; plataforma de gestión de usuarios, catálogo, compras y pagos o Publicaciones digitales o Difusión de contenido multimedia Dentro de los portales se han realizado procesos de estandarización encaminados a la homogeneización en las interfaces de programación de los mismos de tal manera que un servicio desarrollado para un portal pueda ejecutarse en cualquier otro portal compatible con el estándar. El objetivo es obtener portales interoperables evitando desarrollos propietarios. Las dos iniciativas más importantes son la Portlet Specification API JSR-168 y la Content Repository API JSR-170. El gestor de contenidos facilita el acceso a la publicación de contenidos a un rango mayor de usuarios. Permite que sin conocimientos de programación ni maquetación cualquier usuario pueda indexar contenido en el portal. Además permite la gestión dinámica de usuarios y permisos, la colaboración de varios usuarios en el mismo trabajo, la interacción mediante herramientas de comunicación.

Los costes de gestión de la información son mucho menores ya que se elimina un eslabón de la cadena de publicación, el maquetador. La maquetación es hecha al inicio del proceso de implantación del gestor de contenidos. La actualización, backup y reestructuración del portal son mucho más sencillas al tener todos los datos vitales del portal, los contenidos, en una base de datos estructurada en el servidor. (Wikimedia Foundation, Inc., 2009) 2.4.10. Framework Joomla! Joomla! es principalmente una herramienta de desarrollo web, calificada como C.M.S o Content Management System, sistema de administración de contenidos. Es una aplicación de código abierto construida mayoritariamente en PHP bajo una licencia GPL. Este administrador de contenidos puede trabajar en Internet o intranets y requiere de una base de datos MySQL, así como preferiblemente, de un servidor HTTP Apache. En Joomla! se incluyen características como: hacer caché de páginas para mejorar el rendimiento, indexamiento web, feed RSS, versiones imprimibles de páginas, flash con noticias, blogs, foros, polls (encuestas), calendarios, búsqueda en el sitio web, e internacionalización del lenguaje. Su nombre es una pronunciación fonética para anglófonos de la palabra swahili jumla que significa "todos juntos" o "como un todo". Se escogió como una reflexión del compromiso del grupo de desarrolladores y la comunidad del proyecto. La primera versión de Joomla! (Joomla! 1.0.0) fue publicada el 16 de septiembre de 2005 y se trataba de una evolución (fork) mejorada de Mambo 4.5.2.3 combinada con modificaciones de seguridad y anti-bugs. Actualmente los programadores han publicado Joomla! 1.5 estable, con un código completamente reescrito y construido bajo PHP 5. Se está desarrollando. Joomla corresponde al grupo de soluciones de código abierto, es un producto de software libre. Para el desarrollo de sus múltiples frentes, usa diferentes formas de comunicación como son: los encuentros por medio de IRC, foros, listas de correo, "wikis" y blogs. Este gestor de contenidos sigue las pautas marcadas por el bazar, con su objetivo principal de dar solución a las necesidades de todos aquellos que participan de una u otra forma en el proyecto. De forma similar a otros proyectos, Joomla mantiene dos versiones de la aplicación: una estable y otra Beta o en desarrollo. La versión estable es la que se considera para usuarios y a medida que aparecen errores se corrigen, esta versión se publica sin nuevas funcionalidades. La versión Beta, incluye nuevas funcionalidades y mejoras a las fallas reportadas en versiones anteriores, de igual forma se tiene que en este tipo de versión se reflejan las directivas del proyecto para usuarios avanzados y desarrolladores.

El 22 de enero de 2008 se ha lanzado la versión 1.5 estable de Joomla, que incorpora notables mejoras en el área de seguridad, administración y cumplimiento con estándares W3C. Si bien es cierto que para esta sección todavía no existen gran cantidad de componentes, módulos y plugins (mambots para Joomla! 1.0.X). Por ello, existe la posibilidad de activar un plugin incluido por defecto que mejora considerablemente (no por completo) la compatibilidad con la mayoría de ampliaciones. Hoy en día es el CMS más utilizado del mundo, el más seguro y con mayor crecimiento que cualquier otro. Una de sus mayores potencialidades que tiene este CMS es la gran cantidad de extensiones existentes programadas por su comunidad de usuarios que aumentan las posibilidades de Joomla con nuevas características y que se integran fácilmente en él. (Wikimedia Foundation, Inc., 2009)

2.5.

Metodología a Seguir
En el desarrollo del proyecto se hará uso de la metodología RUP para documentar los artefactos del sistema. RUP (Rational Unified Process en inglés, Proceso Unificado Racional en español) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. (Wikimedia Foundation, Inc., 2009) El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. La metodología consta de 4 fases: FASE DE INICIO. En esta fase se desarrollan los requisitos del producto desde la perspectiva de los usuarios, los cuales son establecidos en el artefacto Visión. Los principales casos de uso serán identificados y se hará un refinamiento del Plan de Desarrollo del Proyecto. La aceptación cliente/usuario del artefacto Visión y el Plan de Desarrollo marcan el final de esta fase. FASE DE ELABORACIÓN. En esta fase se analizan los requisitos y se desarrolla un prototipo de arquitectura (incluyendo las partes más relevantes y/o críticas del sistema). Al final de esta fase, todos los casos de uso correspondientes a requisitos que serán implementados en la primera release de la fase de Construcción deben estar analizados y diseñados (en el Modelo de Análisis/Diseño). La revisión y aceptación del prototipo de la arquitectura del sistema marca el final de esta fase. FASE DE CONSTRUCCIÓN. Durante la fase de construcción se terminan de analizar y diseñar todos los casos de uso, refinando el Modelo de Análisis / Diseño. El producto se construye en base a iteraciones, cada una produciendo

una release a la cual se le aplican las pruebas y se valida con el cliente / usuario. Se comienza la elaboración de material de apoyo al usuario. FASE DE TRANSICIÓN. En esta fase se prepararán los releases para distribución, asegurando una implantación y cambio del sistema previo de manera adecuada, incluyendo el entrenamiento de los usuarios. El hito que marca el fin de esta fase incluye, la entrega de toda la documentación del proyecto con los manuales de instalación y todo el material de apoyo al usuario, la finalización del entrenamiento de los usuarios y el empaquetamiento del producto.

2.6.

Diseño de Investigación
GC: MI --------------------------- X --------------------------- M3 GE: M2 --------------------------- X --------------------------- M4 Donde: X: Variable independiente GC: Grupo Control GE: Grupo Experimental M1: Medición previa de la variable dependiente para el Grupo Control. M2: Medición previa de la variable dependiente para el Grupo Experimental. M3: Medición posterior de la variable dependiente para el Grupo Control. M4: Medición posterior de la variable dependiente para el Grupo Experimental. M4 – M3: Contrastación de la hipótesis.

2.7.

Cobertura del Estudio
2.7.1. Población Los alumnos de todos los ciclos de la Escuela Académico Profesional de Ingeniería de Sistemas e Informática de la Universidad Nacional del Santa. 2.7.2. Muestra

2.8.

Fuentes, Técnicas e Instrumentos de Recolección de Datos
Las técnicas e instrumentos utilizados son: TÉCNICAS Observación Entrevistas Encuestas Investigación Bibliográfica INSTRUMENTOS Hoja de anotaciones Grabadora Hoja de cuestionario Libros, revistas, manuales

Tabla 6. Técnicas e instrumentos utilizados en la investigación.

Bibliografía y Linkografía
Wikimedia Foudation, Inc. (25 de Mayo de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Servidor_Web Wikimedia Foundation, Inc. (24 de Junio de 2009). Universia. Recuperado el 9 de Julio de 2009, de http://es.wikipedia.org/wiki/Universia Wikimedia Foundation, Inc. (6 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Aplicacion_web Wikimedia Foundation, Inc. (10 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Base_de_datos Wikimedia Foundation, Inc. (12 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Sistema_Gestor_de_Bases_de_Datos Wikimedia Foundation, Inc. (5 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/MySQL Wikimedia Foundation, Inc. (29 de Abril de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Servidor_HTTP_Apache Wikimedia Foundation, Inc. (11 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n Wikimedia Foundation, Inc. (11 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/PHP Wikimedia Foundation, Inc. (6 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenido Wikimedia Foundation, Inc. (11 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/Joomla Wikimedia Foundation, Inc. (12 de Junio de 2009). Wikipedia, la enciclopedía libre. Recuperado el 13 de Junio de 2009, de Wikipedia, la enciclopedía libre: http://es.wikipedia.org/wiki/RUP

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->