Avance - Proyecto Grado

166

description

avance del proyecto de grado

Transcript of Avance - Proyecto Grado

Page 1: Avance - Proyecto Grado
Page 2: Avance - Proyecto Grado

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE GRADO Y

PRÁCTICAS PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DE LA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

JOSÉ LUIS OVIEDO VARGAS.MARIO RAFAEL GUTIÉRREZ MENESES.

LUIS MIGUEL GOMEZ ACUÑA.

CORPORACION UNIVERSITARIA DEL CARIBE “CECAR”FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERIA DE SISTEMASSINCELEJO 2009

Page 3: Avance - Proyecto Grado

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE GRADO Y

PRÁCTICAS PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DE LA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

JOSÉ LUIS OVIEDO VARGAS.MARIO RAFAEL GUTIÉRREZ MENESES.

LUIS MIGUEL GOMEZ ACUÑA.

Trabajo como requisito para optar por el título de Ingeniero de Sistemas

CORPORACION UNIVERSITARIA DEL CARIBE “CECAR”FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERIA DE SISTEMASSINCELEJO 2009

Page 4: Avance - Proyecto Grado

Nota de aceptación:__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

___________________________

Firma del jurado

___________________________

Firma del jurado

Sincelejo. ___ De Septiembre del 2009

Page 5: Avance - Proyecto Grado

CONTENIDO

TITULO DEL PROYECTOINTRODUCCIÓN 1. LÍNEA DE INVESTIGACION Y NUCLEO TEMATICO1.1 LINEA DE INVESTIGACION

1.2 NÚCLEO TEMÁTICO

1.3 PROFESORES PARTICIPANTES

2 PLANTEAMIENTO DEL PROBLEMA 2.1 ANTECEDENTES

2.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA

2.3 OBJETIVOS DE LA INVESTIGACIÓN

2.3.1 OBJETIVO GENERAL

2.3.2 OBJETIVOS ESPECÍFICOS

2.4 JUSTIFICACIÓN

2.5 ALCANCES DEL PROYECTO

2.5.1 ALCANCES

3 MARCO DE REFERENCIA

3.1 MARCO TEÓRICO – CONCEPTUAL

3.2 MARCO LEGAL O NORMATIVO

4 METODOLOGÍA

4.1 ENFOQUE DE LA INVESTIGACIÓN

4.2 LÍNEA DE INVESTIGACIÓN DE /NUCLEO TEMÁTICO

DEL PROGRAMA

4.3 VARIABLES

4.3.1 VARIABLES DEPENDIENTES.

4.3.2 VARIABLE INDEPENDIENTE

5 DESARROLLO INGENIERIL

5.1 ANÁLISIS

5.1.1 PROCESOS ACADÉMICOS DE INSCRIPCIÓN Y SEGUIMIENTO DE

PROYECTOS

5.2 DESCRIPCIÓN SISTEMA PROPUESTO

5.2.1 DIAGRAMAS DE CASOS DE USO

5.3 DISEÑO

Page 6: Avance - Proyecto Grado

5.3.1 DIAGRAMAS DE SECUENCIA

5.4 MODELO LÓGICO DE LA BASE DE DATOS

5.4.1 DICCIONARIO DE DATOS

5.5 MODELO DE CASOS DE PRUEBA

5.6 MAPA DE NAVEGACIÓN

5.7 MANUAL DE USUARIO

MANUAL TECNICO

CONCLUCIONES

RECOMENDACIONES

BIBLIOGRAFIA

Page 7: Avance - Proyecto Grado

TITULO DEL PROYECTO

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE

INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE GRADO Y

PRÁCTICAS PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE

SISTEMAS DE LA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

Page 8: Avance - Proyecto Grado

INTRODUCCION

Actualmente, disponer de una dirección de e-mail o de acceso a la web ha

dejado de ser una excepción para convertirse en algo habitual en muchos

países del mundo. Por esta razón las empresas, instituciones y

administraciones públicas están migrando todos sus servicios y sus

aplicaciones a un entorno web que permita que sus usuarios y clientes accedan

mediante Internet. A pesar del moderado descenso en el ritmo de crecimiento,

Internet está llamado a convertirse en una especie de servicio universal de

comunicaciones.

Page 9: Avance - Proyecto Grado

LÍNEA DE INVESTIGACIÓN Y NÚCLEO DE INVESTIGACIÓN

LINEA DE INVESTIGACION:

- Ingeniería del software

NUCLEO TEMATICO:

- Desarrollo de Aplicaciones Web

PROFESORES PARTICIPANTES:

- Argemiro Martínez

- Namuel Solórzano

- Carlos Cohen Manrique

- John Jaime Méndez

Page 10: Avance - Proyecto Grado

PLANTEAMIENTO DEL PROBLEMA

ANTECEDENTES

La Corporación Universitaria Del Caribe CECAR y su programa de ingeniería

de sistemas lleva a cabo actividades académicas de tipo evaluativas como el

escalamiento de un pensum específico para cada facultad y que son requisitos

para todos los estudiantes de la institución.

Estos requisitos estipulados llevan como objetivo o meta, el desarrollo de

proyectos de grado, y prácticas profesionales; para la correcta gestión de esos

procesos se deben tener en cuenta algunas acciones, como el de ceñirse a

unos reglamentos que la Institución adopta para el seguimiento y evaluación de

que cada uno de estos proyectos se realice a cabalidad.

Los proyectos de grado deben ser inscritos por estudiantes que se encuentren

activos vigentes en el programa de ingeniería de sistemas y que se encuentren

cursando los semestres de octavo a decimo, esto regido en el reglamento

establecido para la corporación, cobijado por la ley 30 de 1992 articulo 28; ellos

eligen un tema con el fin de analizarlo, seleccionar un tema a resolver y

generar un planteamiento, así los estudiantes lograran definir el titulo de su

proyecto que aborda la investigación a lograr, mejorar la calidad de vida. Estos

proyectos deben presentarse como propuesta ante el comité de investigación

describiendo en ella unos lineamientos específicos o aspectos básicos a tener

en cuenta:

Título

Línea Y Núcleo De Investigación

Planteamiento del problema

o Antecedentes

o Justificación

Objetivos de la Investigación

o Objetivo General

o Objetivos Específicos

Referentes Bibliográficos

Page 11: Avance - Proyecto Grado

Estos proyectos deben estar enfocados para la innovación tecnológica;

destacando que el estudiante apueste a probar su creatividad en la

construcción y aplicación del conocimiento, la selección y creación de métodos,

instrumentos y conceptos, de acuerdo con las líneas y campos de investigación

definidos en la facultad.

En el mercado online ya existen aplicaciones web, los cuales facilitan la

conexión y visualización de muchos servicios, suministrados por entidades que

conocen el medio electrónico, su forma de comunicación y el mercado

existente.

Si se toman las instituciones educativas como grandes potenciales para el

suministro de información, se visualiza que son muchas las que cuentan con

estos servicios electrónicos; conectando a los estudiantes, sus dependencias y

demás entidades con la información que es necesaria para la formación,

crecimiento personal y laboral.

Entidades como la Universidad San Buenaventura, Javeriana, Católica Y

Nacional ya cuentan con servicios dentro de su portal web, los cuales facilitan

el suministro de la información y a su vez la actualización de sus bancos de

datos.

FORMULACION DEL PROBLEMA

¿Qué características debe tener el portal Web para facilitar los procesos de

inscripciones y seguimientos de proyectos de grado y prácticas profesionales,

llevados a cabo por el programa de Ingeniería de Sistemas de la Corporación

Universitaria del Caribe “CECAR”?

Page 12: Avance - Proyecto Grado

OBJETIVOS DE LA INVESTIGACIÓN

OBJETIVO GENERAL

Desarrollar una herramienta web para el apoyo a los procesos de inscripciones

y seguimiento de los proyectos de grado y prácticas profesionales para el

programa de ingeniería de sistemas de la Corporación Universitaria del Caribe

CECAR.

OBJETIVOS ESPECÍFICOS

Analizar el sistema actual que maneja el programa de ingeniería de

sistemas, enfatizando en su estructura y funcionamiento.

Establecer cuáles son los requisitos del sistema para dar una solución

más eficiente al problema.

Diseñar una base de datos para el almacenamiento necesario de la

información referente a los procesos que llevan a cabo los proyectos de

grado y prácticas profesionales.

Construir un modelo que permita esbozar la solución del problema y

comprenderla mejor previo a la implementación.

Desarrollar e implementar la aplicación Web, basada en los

requerimientos obtenidos durante la fase de análisis y en el modelo de

diseño construido.

Ejecutar cada una de las pruebas necesarias para lograr una aplicación

eficiente y confiable.

Page 13: Avance - Proyecto Grado

JUSTIFICACION

El programa de Ingeniería de Sistemas de la Corporación Universitaria Del

Caribe CECAR se ve en la necesidad de facilitar un aplicativo el cual almacene

de manera más ágil y segura toda la información de inscripciones y

seguimientos que hace referencia a los proyectos de grado y prácticas

profesionales como son:

- Los datos personales (nombres integrantes, titulo de su proyecto,

materias asociadas, objetivos, entre otras) de los estudiantes que se

inscriban a los proyectos de grado y prácticas profesionales.

- La información referente a los seguimientos de estos proyectos, tutor

a cargo, fechas de tutorías, procesos trabajados, observaciones y

cambios a realizar.

- El suministro de la información de las prácticas profesionales

(nombre del estudiante vinculado a la empresa, nombre de la

empresa, objetivos por parte del estudiante, seguimientos de las

actividades y horas trabajadas) realizadas por los estudiantes de

último semestre.

Con este proyecto se busca satisfacer las necesidades de todos los actores

que intervienen en los procesos que lleva a cabo el programa de ingeniería de

sistema, facilitando a la comunidad Cecarense la gestión de inscripciones y

seguimientos de los proyectos grado y prácticas profesionales.

Al desarrollar esta aplicación, los usuarios finales, como asesores y

estudiantes, lograrán realizar procesos que llevaran a cabo la visualización y

actualización de la información de los proyectos de grado y prácticas

profesionales, siendo el acceso a esta información más fácil y ágil.

En el caso de los estudiantes, estos tendrán la posibilidad de consultar e

inscribir toda la información referente a sus proyectos de grado como también

la información de las prácticas profesionales; esto podrá realizarse desde

cualquier ordenador que cuente con acceso a internet.

Page 14: Avance - Proyecto Grado

En el caso administrador (coordinador general PG, PP) tendrá la opción de

actualizar, consultar y registrar de manera más ágil y segura los datos

referentes a proyectos de grado como también las prácticas profesionales.

Los coordinadores de los proyectos también se verán beneficiados, ya que sus

labores de consulta de los proyectos vigentes y asesorías a proyectos de grado

se realizarán de una manera más ágil y segura.

Estos usuarios, utilizando esta aplicación; no se verán en la necesidad de

diligenciar manualmente estos procesos de seguimientos de asesorías y

podrán mantener actualizados los bancos de datos.

MARCO TEORICO - CONCEPTUAL

Ingeniería De Software Para Aplicaciones Web

Para el desarrollo de aplicaciones Web dentro de un ámbito ingenieril es

necesario utilizar diferentes tipos de herramientas para su correcto

funcionamiento en el momento de la interacción Usuario-Aplicación.

Después de tener un problema propuesto cuya solución sea el desarrollo de

una aplicación Web es conveniente el modelamiento de varios diagramas los

cuales ayudarán a identificar cada elemento, proceso o acción que debe

intervenir en el funcionamiento de la aplicación.

El diagrama de casos de uso es uno de los principales modelos que se deben

diseñar para identificar a los actores que posteriormente interactuarán con la

aplicación, con estos casos de uso mostramos las diferentes actividades que

realiza un usuario en el momento de interactuar con el aplicativo.

Los diagramas de secuencia es otra herramienta que se utiliza “para modelar

interacción entre objetos en un sistema y es preciso modelarlo para cada caso

de uso. Típicamente uno examina la descripción de un caso de uso para

determinar qué objetos son necesarios para la implementación del escenario.

Si tienes modelada la descripción de cada caso de uso como una secuencia de

varios pasos, entonces puedes "caminar sobre" esos pasos para descubrir qué

Page 15: Avance - Proyecto Grado

objetos son necesarios para que se puedan seguir los pasos. Y los diagramas

de casos de uso con clases que nos permite identificar las interfaces que el

usuario podrá visualizar junto con los procesos que llevan a cabo la aplicación

y sus respectivas entidades involucradas en este proceso.

Otro diagrama que es fundamental para una correcta implementación y

desarrollo de una aplicación Web es el de Entidad-Relación, el cual en su

modelado representa las entidades con su conjunto de datos o atributos por

medio de rectángulos y óvalos respectivamente, otro elemento que posee este

diagrama son las relaciones, que están representadas por un rombo y en su

interior se debe escribir con un verbo la relación entre las entidades, en el

modelo E-R podemos visualizar los objetos que pertenecen a una base de

datos y sus atributos.

Después de encontrar y verificar los principales actores, procesos, secuencias

de procesos, entidades y atributos es mucho mas sencillo iniciar con el

desarrollo de la aplicación, para este desarrollo es necesario seguir varias

teorías dentro de las cuales tenemos que implementar una Base de Datos, esto

nos permite generar una colección de datos interrelacionados que se pueden

utilizar por uno o más programas de aplicación.

Para realizar el diseño y la implementación de una Base de Datos es necesario

identificar los hechos básicos sobre los cuales se fundamenta las necesidades

de información y de igual manera el personal (Usuarios y Procedimientos). Los

procesos que se llevarán a cabo en el Software, ayudarán a diseñar las

diferentes interfaces que tienen como objetivo permitir al usuario final visualizar

las diferentes pantallas que le permitirán realizar las acciones requeridas. En el

proyecto, interactuarán diferentes tipos de usuarios los cuales podrán ingresar,

actualizar y consultar la información según su requerimiento, estos usuarios

son:

La practicidad de la era tecnológica o sistematizada ha ganado una gran

importancia, de igual manera ha permitido que en muchas instituciones, por

ejemplo en las universidades o centros educativos se almacene de una manera

Page 16: Avance - Proyecto Grado

más rápida, confiable y segura toda la información referente a los procesos

académicos que se llevan a cabo en cada facultad, programa o dependencia.

Existen diferentes herramientas que permiten desarrollar aplicaciones Web, las

implementadas para nuestro proyecto fueron:

Uml: (lenguaje unificado de modelado): Es un lenguaje gráfico para

visualizar, especificar, construir y documentar un sistema de software.

Mediante este diagrama de modelado se construyeron los diagramas de

casos de uso en los cuales representamos los actores que intervienen

en el uso de la aplicación con sus respectivos procesos que llevan a

cabo dentro de ella, Modelos de secuencias que muestran la secuencia

de los procesos que lleva a cabo cada usuario.

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.

Visión general

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

Page 17: Avance - Proyecto Grado

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.3.0 (for Windows) del 30 de

junio 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.

Page 18: Avance - Proyecto Grado

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.

Historia

Fue originalmente diseñado en Perl, en base a la escritura de un grupo

de CGI binarios escritos en el lenguaje C por el programador danés-

canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum

vitae y guardar ciertos datos, como la cantidad de tráfico que su página

web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page

Tools" después de que Lerdorf lo combinara con su propio Form

Interpreter para crear PHP/FI.

PHP 3

Dos programadores israelíes del Technion, Zeev Suraski y Andi

Gutmans, reescribieron el analizador sintáctico (parser en inglés) en el

año 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje

Page 19: Avance - Proyecto Grado

a la forma actual. Inmediatamente comenzaron experimentaciones

públicas de PHP3 y fue publicado oficialmente en junio del 1998.

Para 1999, Suraski y Gutmans reescribieron el código de PHP,

produciendo lo que hoy se conoce como motor Zend. También fundaron

Zend Technologies en Ramat Gan, Israel.

PHP 4

En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend

Engine 1.0. El día 13 de julio de 2007 se anunció la suspensión del

soporte y desarrollo de la versión 4 de PHP, a pesar de lo anunciado se

ha liberado una nueva versión con mejoras de seguridad,la 4.4.8

publicada el 13 de enero del 2008 y posteriormente la versión 4.4.9

publicada el 7 de agosto de 2008.

PHP 5

El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend

Engine 2.0 (o Zend Engine 2). La versión más reciente de PHP es la

5.3.0 (30 de junio de 2009), que incluye todas las ventajas que provee el

nuevo Zend Engine 2 como:

Mejor soporte para la Programación Orientada a Objetos, que en

versiones anteriores era extremadamente rudimentario, con PHP

Data Objects.

Mejoras de rendimiento.

Mejor soporte para MySQL con extensión completamente reescrita.

Mejor soporte a XML ( XPath, DOM, etc. ).

Soporte nativo para SQLite.

Soporte integrado para SOAP.

Iteradores de datos.

Manejo de excepciones.

Page 20: Avance - Proyecto Grado

PHP 6

Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se

lance esta nueva versión quedarán solo dos ramas activas en desarrollo

(PHP 5 y 6), pues se abandonó el desarrollo y soporte de PHP 4 el 13 de

julio de 2007.

Las diferencias que encontraremos frente a PHP 5.* son:

soportará Unicode;

limpieza de funcionalidades obsoletas como register_globals,

safe_mode, etc.;

PECL;

mejoras en orientación a objetos;

etc.

Características de PHP

Ventajas

Es un lenguaje multiplataforma.

Completamente orientado a la web.

Capacidad de conexión con la mayoría de los motores de base de

datos que se utilizan en la actualidad, destaca su conectividad con

MySQL y PostgreSQL.

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 ([2]), entre la

cual se destaca que todas las funciones del sistema están explicadas

y ejemplificadas en un único archivo de ayuda.

Page 21: Avance - Proyecto Grado

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 aunque sus variables se

pueden evaluar también por el tipo que estén manejando en tiempo

de ejecución.

Tiene manejo de excepciones (desde PHP5).

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 (ver más abajo Frameworks en PHP).

Desventajas

La ofuscación de código es la única forma de ocultar los fuentes.

Ejemplo de Código PHP

En el siguiente ejemplo se muestra el típico Hola Mundo, que es una

simple impresión por pantalla del mismo mensaje:

<?php

echo "Hola Mundo";

?>

El ejemplo anterior escribiría simplemente "Hola Mundo" (sin comillas)

en la página web. Es importante recordar que todo bloque de código

Page 22: Avance - Proyecto Grado

PHP debe estar dentro de <?php(para abrir) y ?>(para cerrar) o

simplemente de una forma más corta <? <CÓDIGO_PHP> ?>, muy

parecido a las etiquetas en ASP <% <CÓDIGO_ASP> %>. Ahora bien,

el resultado que tendríamos en el navegador sería el siguiente:

Hola Mundo

A continuación un ejemplo de envío y recepción de datos en una misma

página con PHP:

<html>

<head>

<title>Ejemplo de uso simple en envío y recepción de parámetros con

PHP</title>

</head>

<body>

<?php

// Si existe la variable $_POST['muestra'], entonces muestra la comida

favorita

if (isset($_POST['muestra']))

{

echo 'Hola, '.$_POST['nombre'].', tu comida favorita es:'.

$_POST['comida'].'';

} else {

// Si no, muestra un formulario solicitando la comida favorita

?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?

>">

¿Cuál es tu nombre?

<input type="text" name="nombre" />

¿Cuál es tu comida favorita?

<select name="comida">

<option value="Spaguetis">Spaguetis</option>

<option value="Asado">Asado</option>

<option value="Pizza">Pizza</option>

Page 23: Avance - Proyecto Grado

</select>

<input type="submit" name="muestra" value="Seguir" />

</form>

<?php

} //Fin del bloque else

?>

</body>

</html>

En este código es posible observar las siguientes características:

Las variables enviadas por un formulario utilizando el método POST,

son recibidas en el lenguaje dentro de la matriz $_POST, lo cual

facilita la obtención de este tipo de datos. Este mismo método es

utilizado por el lenguaje para todas las fuentes de información en una

aplicación web, tales como cookies en la matriz $_COOKIES,

variables de URL en $_GET (que en formularios puede servir para

guardar los datos), variables de sesión utilizando $_SESSION, y

variables del servidor y del cliente por medio de la matriz $_SERVER.

El código PHP está incrustado dentro del HTML e interactúa con el

mismo, lo que permite diseñar la página Web en un editor común de

HTML y añadir el código dinámico dentro de las etiquetas <?php ?>.

El resultado muestra y oculta ciertas porciones del código HTML en

forma condicional.

Es posible utilizar funciones propias del lenguaje para aplicaciones

Web como htmlentitites(), que convierte los caracteres que tienen

algún significado especial en el código HTML o que podrían

desplegarse erróneamente en el navegador como acentos o diéresis,

en sus equivalentes en formato HTML..

Page 24: Avance - Proyecto Grado

Todas las variables en PHP llevan el símbolo de dolar como prefijo

(ejemplo: $variable1, $variable2, $variable3...,$variableN), los tipos

de variable no es necesario declararlas, ya que a medida que se

usan en la aplicación el servidor reconoce de que tipo son. Para

mostrar una cadena (en inglés string) debe estar dentro de comillas

dobles o simples (ejemplo: "Hola Mundo", 'Lo que quiero mostrar').

Cabe destacar que si se desea mostrar el símbolo " o ' debe

encerrarse en el otro tipo de comillas ("...'...", '..."...') o usarse un

escape (\', \").

Toda línea de instrucción siempre termina en un punto y coma (;), al

igual que el lenguaje C.

Para insertar un comentario de una sola línea, debe empezar por // o

por #. El resto de la línea es tratado entonces como un comentario.

Para insertar un bloque de comentario, de una o más líneas, se

utiliza la combinación /* y */, por ejemplo: /* <COMENTARIOS> */

Cronología

Versión Fecha Cambios más importantes

PHP 1.0 8 de junio de 1995

Oficialmente llamado "Herramientas

personales de trabajo (PHP Tools)".

Es el primer uso del nombre "PHP".

PHP

Version 2

(PHP/FI)

16 de abril de 1996

Considerado por el creador como la

"más rapida y simple herramienta"

para la creación de páginas webs

dinámicas .

PHP 3.0 6 de junio de 1998 Desarrollo movido de una persona a

muchos desarrolladores. Zeev Suraski

Page 25: Avance - Proyecto Grado

y Andi Gutmans reescriben la base

para esta versión.

PHP 4.0 22 de mayo de 2000

Se añade un sistema más avanzado

de análisis de etiquetas en dos fases

análisis/ejecución llamado el motor

Zend.

PHP 4.1 10 de diciembre de 2001

Introducidas las variables

superglobals ($_GET, $_SESSION,

etc.).

PHP 4.2 22 de abril de 2002Se deshabilitan register_globals por

defecto.

PHP 4.3 27 de diciembre de 2002 Introducido la CLI, en adición a la CGI.

PHP 4.4 11 de julio de 2005

PHP 5.0 13 de julio de 2004Motor Zend II con un nuevo modelo de

objetos.

PHP 5.1 25 de noviembre de 2005

PHP 5.2 2 de noviembre de 2006Habilitado el filtro de extensiones por

defecto.

PHP 5.2.4 30 de agosto de 2007

Page 26: Avance - Proyecto Grado

PHP 5.2.5 8 de noviembre de 2007

Versión centrada en mejorar la

estabilidad (+60 errores

solucionados).

PHP 5.2.8 8 de diciembre de 2008

PHP 5.2.9 26 de febrero de 2009Diversas mejoras en el ámbito de la

seguridad (+50 errores solucionados).

PHP 5.3 30 de junio de 2009

namespaces, late static binding,

closures, optional garbage collection

for cyclic references, nuevas

extensiones (+140 errores

solucionados).

PHP 6 S/D

Aplicaciones desarrolladas con PHP

Redes Sociales

o Facebook

E-Commerce

o Magento

o OsCommerce

Blogs

o WordPress

Burning Board

CMSformE

Page 28: Avance - Proyecto Grado

Symfony

Zend Framework

Kumbia (Completamente en español)

CakePHP

PHP Prado

Qcodo

PHP4ECore

CodeIgniter

Yii Framework

MfwLite

Tomates Framework

Rox PHP

SSAC

IDEs para PHP

Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE,

Integrated Development Environment), para PHP más conocidos o

habituales son:

PDT, plugin de Eclipse: GPL - (Sun).

NetBeans 6.8 , libre, para linux y windows - (Con Soporte para

Symfony).

Zend Studio: Comercial - (Zend).

Aptana Studio: GPL, existe una versión comercial. Debe instalarse el

plugin para PHP. Está basado en Eclipse, pero posee características

Page 29: Avance - Proyecto Grado

que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-

completado de código, auto-identador.

Komodo IDE: Komodo Edit, libre y gratuito, el IDE es licencia

comercial - (Mozilla).

NuSphere PhpED: Comercial, para linux y windows.

Quanta: GPL y gratuito, para GNU/linux con QT.

Bluefish: GPL y gratuito, para GNU/linux con GTK.

Geany:GPL, para linux. Sumamente liviano. Incluye autocompletado,

autoidentador, soporte para numerosos lenguages.

phpDesigner: Comercial y Freeware, para linux y windows. Incluye

integración con el manual, autocompletado en código y viene en

varios idiomas.

Rapid PHP: Comercial, para windows.

AJAX PHP IDE: Entorno de desarrollo para PHP que utiliza

funcionalidad AJAX en los eventos de los formularios diseñados.

Separación de la lógica y el html.

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.

Page 30: Avance - Proyecto Grado

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.

Historia del proyecto MySQL

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

Page 31: Avance - Proyecto Grado

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.

Lenguajes de programación

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.

Aplicaciones

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

Page 33: Avance - Proyecto Grado

Windows 95, Windows 98, Windows NT, Windows 2000, Windows

XP, Windows Vista y otras versiones de Windows.

OpenVMS (véase: www.pi-net.dyndns.org/anonymous/kits/).

Características de la versión 5.0.22

Un amplio subconjunto de ANSI SQL 99, y varias extensiones.

Soporte a multiplataforma

Procedimientos almacenados

Disparadores (triggers)

Cursores

Vistas actualizables

Soporte a VARCHAR

INFORMATION_SCHEMA

Modo Strict

Soporte X/Open XA de transacciones distribuidas; transacción en dos

fases como parte de esto, utilizando el motor InnoDB de Oracle

Motores de almacenamiento independientes (MyISAM para lecturas

rápidas, InnoDB para transacciones e integridad referencial)

Transacciones con los motores de almacenamiento InnoDB, BDB Y

Cluster; puntos de recuperación (savepoints) con InnoDB

Soporte para SSL

Query caching

Sub-SELECTs (o SELECTs anidados)

Réplica con un maestro por esclavo, varios esclavos por maestro, sin

soporte automático para múltiples maestros por esclavo.

Page 34: Avance - Proyecto Grado

indexing y buscando campos de texto completos usando el motor de

almacenamiento MyISAM

Embedded database library

Soporte completo para Unicode

Conforme a las reglas ACID usando los motores InnoDB, BDB y

Cluster

Shared-nothing clustering through MySQL Cluster

Características adicionales

Usa GNU Automake, Autoconf, y Libtool para portabilidad

Uso de multihilos mediante hilos del kernel.

Usa tablas en disco b-tree para búsquedas rápidas con compresión

de índice

Tablas hash en memoria temporales

El código MySQL se prueba con Purify (un detector de memoria

perdida comercial) así como con Valgrind, una herramienta GPL

Completo soporte para operadores y funciones en cláusulas select y

where.

Completo soporte para cláusulas group by y order by, soporte de

funciones de agrupación

Seguridad: ofrece un sistema de contraseñas y privilegios seguro

mediante verificación basada en el host y el tráfico de contraseñas

está cifrado al conectarse a un servidor.

Soporta gran cantidad de datos. MySQL Server tiene bases de datos

de hasta 50 millones de registros.

Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2).

Cada índice puede consistir desde 1 hasta 16 columnas o partes de

Page 35: Avance - Proyecto Grado

columnas. El máximo ancho de límite son 1000 bytes (500 antes de

MySQL 4.1.2).

Los clientes se conectan al servidor MySQL usando sockets TCP/IP

en cualquier plataforma. En sistemas Windows se pueden conectar

usando named pipes y en sistemas Unix usando ficheros socket

Unix.

En MySQL 5.0, los clientes y servidores Windows se pueden

conectar usando memoria compartida.

MySQL contiene su propio paquete de pruebas de rendimiento

proporcionado con el código fuente de la distribución de MySQL.

Características (versión 4.0)

Inicialmente, MySQL carecía de elementos considerados esenciales en

las bases de datos relacionales, tales como integridad referencial y

transacciones. A pesar de ello, atrajo a los desarrolladores de páginas

web con contenido dinámico, justamente por su simplicidad.

Poco a poco los elementos de los que carecía MySQL están siendo

incorporados tanto por desarrollos internos, como por desarrolladores de

software libre. Entre las características disponibles en las últimas

versiones se puede destacar:

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.

Conectividad segura.

Replicación.

Page 36: Avance - Proyecto Grado

Búsqueda e indexación de campos de texto.

MySQL es un sistema de administración de bases de datos. Una base

de datos es una colección estructurada de tablas que contienen datos.

Esta puede ser desde una simple lista de compras a una galería de

pinturas o el vasto volumen de información en una red corporativa. Para

agregar, acceder a y procesar datos guardados en un computador, usted

necesita un administrador como MySQL Server. Dado que los

computadores son muy buenos manejando grandes cantidades de

información, los administradores de bases de datos juegan un papel

central en computación, como aplicaciones independientes o como parte

de otras aplicaciones.

MySQL es un sistema de administración relacional de bases de datos.

Una base de datos relacional archiva datos en tablas separadas en vez

de colocar todos los datos en un gran archivo. Esto permite velocidad y

flexibilidad. Las tablas están conectadas por relaciones definidas que

hacen posible combinar datos de diferentes tablas sobre pedido.

MySQL es software de fuente abierta. Fuente abierta significa que es

posible para cualquier persona usarlo y modificarlo. Cualquier persona

puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier

interesado puede estudiar el código fuente y ajustarlo a sus

necesidades. MySQL usa el GPL (GNU General Public License) para

definir que puede hacer y que no puede hacer con el software en

diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir

código MySQL en aplicaciones comerciales, usted puede comprar una

versión comercial licenciada.

Mejoras futuras

El mapa de ruta de MySQL 5.1 indica soporte para:

Particionado de la base de datos

Backup en línea para todos los motores de almacenamiento

Page 37: Avance - Proyecto Grado

Replicación segura

Restricciones a nivel de columna

Planificación de eventos

Funciones XML

Características distintivas

Las siguientes características son implementadas únicamente por

MySQL:

Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB,

BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV,

Blackhole y Example en 5.x), permitiendo al usuario escoger la que

sea más adecuada para cada tabla de la base de datos.

Agrupación de transacciones, reuniendo múltiples transacciones de

varias conexiones para incrementar el número de transacciones por

segundo.

Tipos de compilación del servidor

Hay tres tipos de compilación del servidor MySQL:

Estándar: Los binarios estándar de MySQL son los recomendados

para la mayoría de los usuarios, e incluyen el motor de

almacenamiento InnoDB.

Max (No se trata de MaxDB, que es una cooperación con SAP): Los

binarios incluyen características adicionales que no han sido lo

bastante probadas o que normalmente no son necesarias.

MySQL-Debug: Son binarios que han sido compilados con

información de depuración extra. No debe ser usada en sistemas en

producción porqué el código de depuración puede reducir el

rendimiento.

Especificaciones del código fuente

Page 38: Avance - Proyecto Grado

MySQL está escrito en una mezcla de C y C++. Hay un documento que

describe algunas de sus estructuras internas en

http://dev.mysql.com/doc/internals/en/ (en inglés).

Desarrollo del proyecto MySQL

El desarrollo de MySQL se fundamenta en el trabajo de los

desarrolladores contratados por la empresa MySQL AB quienes se

encargan de dar soporte a los socios comerciales y usuarios de la

comunidad MySQL y dar solución a los problemas encontrados por los

usuarios. Los usuarios o miembros de la comunidad MySQL pueden

reportar bugs revisando el manual en línea que contiene las soluciones a

problemas encontrados; el historial de cambios; la base de datos bugs

que contiene bugs reportados y solucionados y en las listas de correo

MySQL.

A través de las listas de correo los usuarios pueden enviar preguntas y

éstas serán contestadas por desarrolladores brindándoles soporte.

Otras funcionalidades de las listas de correo

Anuncios: informan sobre nuevas versiones de MySQL y programas

relacionados.

MySQL: lista principal de discusión de MySQL.

Bugs: permite a la gente buscar y arreglar bugs.

Temas internos: para gente que trabaja con el código de MySQL. Es

el fórum para discutir sobre el desarrollo de MySQL.

MySQLdoc: para gente que trabaja en documentación.

Pruebas de rendimiento: para gente interesada en temas de

rendimiento no solo de MySQL, sino de otros motores de bases de

datos.

Empaquetadores: para discusiones sobre empaquetamiento y

distribución de MySQL.

Page 39: Avance - Proyecto Grado

Java: discusiones sobre MySQL Server y Java.

Otras listas de correo son: MyODBC, Herramientas GUI, Cluster, Dotnet,

PlusPlus y Perl.

Adicional a las listas de correo, se encuentra el soporte de IRC de la

comunidad MySQL. Además, hay soporte a través de foros agrupados

en categorías tales como: Migración, Uso de MySQL, Conectores

MySQL, Tecnología MySQL y Negocios.

Estructuras organizativas/asociativas o de decisión

La dirección y el patrocinio de los proyectos MySQL están a cargo de la

empresa MySQL AB quien posee el copyrigth del código fuente MySQL,

su logo y marca registrada. MySQL, Inc. y MySQL GmbH son ejemplos

de empresas subsidiarias de MySQL AB. Están establecidas en los

Estados Unidos y Alemania respectivamente. MySQL AB, cuenta con

más de 200 empleados en más de 20 países y funcionan bajo la

estrategia de teletrabajo.

En enero del 2008 Sun Microsystems anuncia su compra.

Industria relacionada

La industria radica en la venta de productos software y de algunos

servicios relacionados a numerosas empresas que utilizan estos

productos.

MySQL AB clasifica los productos así:

MySQL Enterprise: incluye MySQL Enterprise Server , Monitoreo de

la red MySQL, servicios de consulta y soporte de producción MySQL

MySQL Cluster

MySQL Embedded Database

MySQL Drivers: para JDBC, ODBC y .Net

Page 40: Avance - Proyecto Grado

MySQL Tools: MySQL Administrator, MySQL Query Browser, and the

MySQL Migration Toolkit

MaxDB: MaxDB es una base de datos open source certificada para

SAP/R3

Los ingresos de esta empresa por la venta de licencias privativas de sus

productos y los servicios suma los U$12 millones.

MySQL en cifras

Según las cifras del fabricante, existirían más de seis millones de

copias de MySQL funcionando en la actualidad, lo que supera la

base instalada de cualquier otra herramienta de bases de datos.

El tráfico del sitio web de MySQL AB superó en 2004 al del sitio de

IBM.

Qué licencia utilizar

La licencia GNU GPL de MySQL obliga a que la distribución de cualquier

producto derivado (aplicación) se haga bajo esa misma licencia. Si un

desarrollador desea incorporar MySQL en su producto pero desea

distribuirlo bajo otra licencia que no sea la GNU GPL, puede adquirir una

licencia comercial de MySQL que le permite hacer justamente eso.

Estado actual

La serie en desarrollo de MySQL Server actualmente, es la 5.1 al cual se

añaden nuevas características en relación a la serie 5.0. La serie de

producción actual de MySQL es 5.0, cuya penúltima versión estable es

la 5.0.26 lanzada en octubre de 2006. Actualmente, se puede descargar

la serie 5.0.27. La serie de producción anterior fue la 4.1, cuya versión

estable es 4.1.7 lanzada en octubre de 2004. A estas versiones de

producción sólo se arreglan problemas, es decir, ya no se añaden

nuevas características. Y a las versiones anteriores solamente se les

corrigen bugs críticos.

Page 41: Avance - Proyecto Grado

Usuarios destacados

Amazon.com

Cox Communications - La cuarta televisión por cable más importante

de EEUU, tienen más de 3.600 tablas y aproximadamente dos

millones de inserciones cada hora.

Craigslist

CNET Networks

Digg - Sitio de noticias.

flickr, usa MySQL para gestionar millones de fotos y usuarios.

Google - Para el motor de búsqueda de la aplicación AdWords.

Joomla!, con millones de usuarios.

phpBB, Uno de los más famosos sitios de foros, con miles de

instalaciones y con millones de usuarios.

LiveJournal - Cerca de 300 millones de páginas servidas cada día.2

NASA

NetQOS, usa MySQL para la gestión de algunas de las redes más

grandes del mundo como las de Chevron, American Express y

Boeing.

Nokia, usa un cluster MySQL para mantener información en tiempo

real sobre usuarios de redes de móviles.

Omniture

Sabre, y su sistema de reserva de viajes Travelocity

Slashdot - con cerca de 50 millones de páginas servidas cada día.

Wikipedia, sirve más de 200 millones de consultas y 1,2 millones de

actualizaciones cada día, con picos de 11.000 consultas por

segundo.

Page 42: Avance - Proyecto Grado

WordPress, con cientos de blogs alojados en él.

Yahoo! - para muchas aplicaciones críticas.

AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript

asíncrono y XML), es una técnica de desarrollo web para crear

aplicaciones interactivas o RIA (Rich Internet Applications). Estas

aplicaciones se ejecutan en el cliente, es decir, en el navegador de los

usuarios mientras se mantiene la comunicación asíncrona con el

servidor en segundo plano. De esta forma es posible realizar cambios

sobre las páginas sin necesidad de recargarlas, lo que significa

aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos

adicionales se requieren al servidor y se cargan en segundo plano sin

interferir con la visualización ni el comportamiento de la página.

JavaScript es el lenguaje interpretado (scripting language) en el que

normalmente se efectúan las funciones de llamada de Ajax mientras que

el acceso a los datos se realiza mediante XMLHttpRequest, objeto

disponible en los navegadores actuales. En cualquier caso, no es

necesario que el contenido asíncrono esté formateado en XML.

Ajax es una técnica válida para múltiples plataformas y utilizable en

muchos sistemas operativos y navegadores, dado que está basado en

estándares abiertos como JavaScript y Document Object Model (DOM).

Tecnologías incluidas en AJAX

AJAX es una combinación de cuatro tecnologías ya existentes:

XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño

que acompaña a la información.

Document Object Model (DOM) accedido con un lenguaje de

scripting por parte del usuario, especialmente implementaciones

Page 43: Avance - Proyecto Grado

ECMAScript como JavaScript y JScript, para mostrar e interactuar

dinámicamente con la información presentada.

El objeto XMLHttpRequest para intercambiar datos de forma

asíncrona con el servidor web. En algunos frameworks y en algunas

situaciones concretas, se usa un objeto iframe en lugar del

XMLHttpRequest para realizar dichos intercambios.

XML es el formato usado generalmente para la transferencia de

datos solicitados al servidor, aunque cualquier formato puede

funcionar, incluyendo HTML preformateado, texto plano, JSON y

hasta EBML.

Como el DHTML, LAMP o SPA, AJAX no constituye una tecnología en

sí, sino que es un término que engloba a un grupo de éstas que trabajan

conjuntamente.

Antecedentes de AJAX

A pesar de que el término «AJAX» fuese creado en 2005, la historia de

las tecnologías que permiten AJAX se remonta a una década antes con

la iniciativa de Microsoft en el desarrollo de Scripting Remoto. Sin

embargo, las técnicas para la carga asíncrona de contenidos en una

página existente sin requerir recarga completa remontan al tiempo del

elemento iframe (introducido en Internet Explorer 3 en 1996) y el tipo de

elemento layer (introducido en Netscape 4 en 1997, abandonado durante

las primeras etapas de desarrollo de Mozilla). Ambos tipos de elemento

tenían el atributo src que podía tomar cualquier dirección URL externa, y

cargando una página que contenga javascript que manipule la página

paterna, pueden lograrse efectos parecidos al AJAX.

El Microsoft's Remote Scripting (o MSRS, introducido en 1998) resultó

un sustituto más elegante para estas técnicas, con envío de datos a

través de un applet Java el cual se puede comunicar con el cliente

usando JavaScript. Esta técnica funcionó en ambos navegadores,

Internet Explorer versión 4 y Netscape Navigator versión 4. Microsoft la

Page 44: Avance - Proyecto Grado

utilizó en el Outlook Web Access provisto con la versión 2000 de

Microsoft Exchange Server.

La comunidad de desarrolladores web, primero colaborando por medio

del grupo de noticias microsoft.public.scripting.remote y después usando

blogs, desarrollaron una gama de técnicas de scripting remoto para

conseguir los mismos resultados en diferentes navegadores. Los

primeros ejemplos incluyen la librería JSRS en el año 2000, la

introducción a la técnica imagen/cookie en el mismo año y la técnica

JavaScript bajo demanda (JavaScript on Demand) en 2002. En ese año,

se realizó una modificación por parte de la comunidad de usuarios al

Microsoft's Remote Scripting para reemplazar el applet Java por

XMLHttpRequest.

Frameworks de Scripting Remoto como el ARSCIF aparecieron en 2003

poco antes de que Microsoft introdujera Callbacks en ASP. NET.

Desde que XMLHttpRequest está implementado en la mayoría de los

navegadores, raramente se usan técnicas alternativas. Sin embargo,

todavía se utilizan donde se requiere una mayor compatibilidad, una

reducida implementación, o acceso cruzado entre sitios web. Una

alternativa, el Terminal SVG (basado en SVG), emplea una conexión

persistente para el intercambio continuo entre el navegador y el servidor.

Navegadores que permiten AJAX

Ha de tenerse en cuenta que ésta es una lista general, y el soporte de

las aplicaciones AJAX dependerá de las características que el

navegador permita.

Navegadores basados en Gecko como Mozilla, Mozilla Firefox,

SeaMonkey, Camino, K-Meleon,IceWeasel,Flock, Epiphany, Galeon

y Netscape versión 7.1 y superiores

Google Chrome

Page 45: Avance - Proyecto Grado

Microsoft Internet Explorer para Windows versión 5.0 y superiores, y

los navegadores basados en él

Navegadores con el API KHTML versión 3.2 y superiores

implementado, incluyendo Konqueror versión 3.2 y superiores, Apple

Safari versión 1.2 y superiores, y el Web Browser for S60 de Nokia

tercera generación y posteriores

Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser

versión 8.0 y superiores.

Navegadores que no permiten AJAX

Opera 7 y anteriores

Microsoft Internet Explorer para Windows versión 4.0 y anteriores

Safari, cualquier versión anterior a la 1.2

Dillo

Navegadores basados en texto como Lynx y Links

Navegadores para incapacitados visuales (Braille)

JQuery es una biblioteca o framework de Javascript, creada inicialmente

por John Resig, que permite simplificar la manera de interactuar con los

documentos HTML, manipular el árbol DOM, manejar eventos,

desarrollar animaciones y agregar interacción con la tecnología AJAX a

páginas web. Fue presentada en enero de 2006 en el BarCamp NYC.

jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades

basadas en Javascript que de otra manera requerirían de mucho más

código. Es decir, con las funciones propias de esta biblioteca se logran

grandes resultados en menos tiempo y espacio.

Page 46: Avance - Proyecto Grado

Las empresas Microsoft y Nokia anunciaron que incluirán la biblioteca en

sus plataformas. Microsoft la añadirá en su IDE Visual Studio y la usará

junto con los frameworks ASP.NET AJAX y ASP.NET MVC, mientras

que Nokia los integrará con su plataforma Web Run-Time.

Características

Selección de elementos DOM.

Interactividad y modificaciones del árbol DOM, incluyendo soporte

para CSS 1-3 y un plugin básico de XPath.

Eventos.

Manipulación de la hoja de estilos CSS.

Efectos y animaciones.

AJAX.

Soporta extensiones.

Utilidades varias como obtener información del navegador, operar

con Objetos y Arrays, función trim() (elimina los espacios en blanco

del principio y final de una cadena de caracteres), etc.

Compatible con los navegadores Firefox 2.0+, Internet Explorer 6+,

Safari 2.0.2+ y Opera 9+.

Uso

jQuery consiste en un único fichero JavaScript que contiene las

funcionalidades comunes de DOM, eventos, efectos y AJAX.

La característica principal de la biblioteca es que permite cambiar el

contenido de una página web sin necesidad de recargarla, mediante la

manipulación del árbol DOM y peticiones AJAX. Para ello utiliza las

funciones $() o jQuery().

Función $

Page 47: Avance - Proyecto Grado

La forma de interactuar con la página es mediante la función $() (un alias

de jQuery()) que recibe como parámetro una expresión CSS o el nombre

de una etiqueta HTML y devuelve todos los nodos (elementos) que

concuerden con la expresión.

$("#tablaAlumnos") //Devolverá el elemento con id="tablaAlumnos"

$(".activo") //Devolverá una matriz de elementos que contenga el

estilo "activo"

Una vez obtenidos los nodos, se les puede aplicar cualquiera de las

funciones que facilita la librería.

// Una vez obtenidos todos los nodos que contenga el estilo "activo"

// se les elimina ese estilo (removeClass()) y se les aplica uno nuevo

(addClass())

$(".activo").removeClass("activo").addClass("desactivo");

jQuery Team

Detrás de la biblioteca existe un grupo de personas divididas en 5

equipos:

Equipos Descripción Componentes

 Desarrollo

 Encargado del mantenimiento del

núcleo de la biblioteca (desarrollo,

testeo, documentación, etc).

John Resig

Brandon

Aaron

Ariel Flesler

Jörn Zaefferer

 Evangelista Responsables de la comunicación entre

los usuarios y el resto de equipos.

Rey Bango

Karl

Page 48: Avance - Proyecto Grado

Swedberg

Cody Lindley

 jQuery UI Desarrollo y mantenimiento de jQuery

UI.

Paul Bakaus

Richard D.

Worth

Scott

González

Todd Parker

Otros5

 Plugins Responsables oficiales de los plugins

desarrollados para la biblioteca.

Yehuda Katz

Klaus Hartl

Mike Alsup

 Diseño

página web

 Responsable del diseño y

mantenimiento de la página web de

jQuery.

Scott Jehl

Mike Hostetler

Licencia

jQuery usa las licencias MIT y GPL permitiendo su uso en proyectos

libres y privativos

Versiones

El primer prototipo de jQuery, llamado Selectors in JavaScript, vio la luz

el 22 de agosto de 2005. La última versión estable es la 1.3.2 y fue

lanzada el 20 de febrero de 2009.

Actualmente existe la versión candidata a definitiva 1.5, lanzada el 2 de

junio de 2008.

Page 49: Avance - Proyecto Grado

HTML, siglas de HyperText Markup Language (Lenguaje de Marcas de

Hipertexto), es el lenguaje de marcado predominante para la

construcción de páginas web. Es usado para describir la estructura y el

contenido en forma de texto, así como para complementar el texto con

objetos tales como imágenes. HTML se escribe en forma de "etiquetas",

rodeadas por corchetes angulares (<,>). HTML también puede describir,

hasta un cierto punto, la apariencia de un documento, y puede incluir un

script (por ejemplo Javascript), el cual puede afectar el comportamiento

de navegadores web y otros procesadores de HTML.

HTML también es usado para referirse al contenido del tipo de MIME

text/html o todavía más ampliamente como un término genérico para el

HTML, ya sea en forma descendida del XML (como XHTML 1.0 y

posteriores) o en forma descendida directamente de SGML (como HTML

4.01 y anteriores).

Por convención, los archivos de formato HTML usan la extensión .htm o

.html.

Historia de HTML

Primeras especificaciones

La primera descripción de HTML disponible públicamente fue un

documento llamado HTML Tags (Etiquetas HTML), publicado por

primera vez en Internet por Tim Berners-Lee en 1991. Describe 22

elementos comprendiendo el diseño inicial y relativamente simple de

HTML. Trece de estos elementos todavía existen en HTML 4.

Berners-Lee consideraba a HTML una ampliación de SGML, pero no fue

formalmente reconocida como tal hasta la publicación de mediados de

1993, por la IETF, de una primera proposición para una especificación

de HTML: el boceto Hypertext Markup Language de Berners-Lee y Dan

Page 50: Avance - Proyecto Grado

Connolly, el cual incluía una Definición de Tipo de Documento SGML

para definir la gramática. El boceto expiró luego de seis meses, pero fue

notable por su reconocimiento de la etiqueta propia del navegador

Mosaic usada para insertar imágenes sin cambio de línea, reflejando la

filosofía del IETF de basar estándares en prototipos con éxito.

Similarmente, el boceto competidor de Dave Raggett HTML+ (Hypertext

Markup Format) (Formato de marcaje de hipertexto), de 1993 tardío,

sugería, estandarizar características ya implementadas tales como

tablas.

Marcado HTML

HTML consiste de varios componentes vitales, incluyendo elementos y

sus atributos, tipos de data, y la declaración de tipo de documento.

Elementos

Los elementos son la estructura básica de HTML. Los elementos tienen

dos propiedades básicas: atributos y contenido. Cada atributo y

contenido tiene ciertas restricciones para que se considere válido al

documento HTML. Un elemento generalmente tiene una etiqueta de

inicio (p.ej. <nombre-de-elemento>) y una etiqueta de cierre (p.ej.

</nombre-de-elemento>). Los atributos del elemento están contenidos

en la etiqueta de inicio y el contenido está ubicado entre las dos

etiquetas (p.ej. <nombre-de-

elemento atributo="valor">Contenido</nombre-de-elemento>). Algunos

elementos, tales como <br>, no tienen contenido ni llevan una etiqueta

de cierre. Debajo se listan varios tipos de elementos de marcado usados

en HTML.

Page 51: Avance - Proyecto Grado

Estructura general de una línea de código en el lenguaje de etiquetas

HTML

El marcado estructural describe el propósito del texto. Por ejemplo,

<h2>Golf</h2> establece a "Golf" como un encabezamiento de segundo

nivel, el cual se mostraría en un navegador de una manera similar al

título "Marcado HTML" al principio de esta sección. El marcado

estructural no define cómo se verá el elemento, pero la mayoría de los

navegadores web han estandarizado el formato de los elementos. Un

formato específico puede ser aplicado al texto por medio de hojas de

estilo en cascada.

El marcado presentacional describe la apariencia del texto, sin importar

su función. Por ejemplo, <b>negrita</b> indica que los navegadores web

visuales deben mostrar el texto en negrita, pero no indica qué deben

hacer los navegadores web que muestran el contenido de otra manera

(por ejemplo, los que leen el texto en voz alta). En el caso de

<b>negrita</b> e <i>itálica</i>, existen elementos que se ven de la

misma manera pero tienen una naturaleza más semántica:

<strong>enfásis fuerte</strong> y <em>énfasis</em>. Es fácil ver cómo

un lector de pantalla debería interpretar estos dos elementos. Sin

embargo, son equivalentes a sus correspondientes elementos

presentacionales: un lector de pantalla no debería decir más fuerte el

nombre de un libro, aunque éste esté en itálicas en una pantalla. La

mayoría del marcado presentacional ha sido desechada con HTML 4.0,

en favor de Hojas de estilo en cascada.

El marcado hipertextual se utiliza para enlazar partes del documento

con otros documentos o con otras partes del mismo documento. Para

crear un enlace es necesario utilizar la etiqueta de ancla <a> junto con el

atributo href, que establecerá la dirección URL a la que apunta el enlace.

Por ejemplo, un enlace a la Wikipedia sería de la forma <a

href=”es.wikipedia.org”>Wikipedia</a>. También se pueden crear

Page 52: Avance - Proyecto Grado

enlaces sobre otros objetos, tales como imágenes <a

href=”enlace”><img src=”imagen” /></a>.

Atributos

La mayoría de los atributos de un elemento son pares nombre-valor,

separados por un signo de igual "=" y escritos en la etiqueta de

comienzo de un elemento, después del nombre de éste. El valor puede

estar rodeado por comillas dobles o simples, aunque ciertos tipos de

valores pueden estar sin comillas en HTML (pero no en XHTML). De

todas maneras, dejar los valores sin comillas es considerado poco

seguro. En contraste con los pares nombre-elemento, hay algunos

atributos que afectan al elemento simplemente por su presencia (tal

como el atributo ismap para el elemento img).

Códigos HTML básicos

<html>: define el inicio del documento HTML, le indica al

navegador que lo que viene a continuación debe ser interpretado

como código HTML.

<head>: define la cabecera del documento HTML, esta cabecera suele

contener información sobre el documento que no se muestra

directamente al usuario. Como por ejemplo el título de la ventana del

navegador. Dentro de la cabecera <head> podemos encontrar:

Page 53: Avance - Proyecto Grado

Un ejemplo de código HTML con coloreado de sintaxis

<title>: define el título de la página. Por lo general, el título

aparece en la barra de título encima de la ventana

<link>: para vincular el sitio a hojas de estilo o iconos Por

ejemplo:<link rel="stylesheet" href="/style.css" type="text/css">

<style>: para colocar el estilo interno de la página, ya sea usando

CSS, JavaScript u otros lenguajes similares. No es necesario

colocarlo si se va a vincular a un archivo externo usando la

etiqueta <link>

<body>: define el contenido principal o cuerpo del documento.

Esta es la parte del documento html que se muestra en el

navegador; dentro de esta etiqueta pueden definirse propiedades

comunes a toda la página, como color de fondo y márgenes.

Dentro del cuerpo <body> podemos encontrar numerosas

etiquetas. A continuación se indican algunas a modo de ejemplo:

<h1> a <h6>: encabezados o títulos del documento con diferente

relevancia.

<table>: define una tabla

<tr>: fila de una tabla

<td>: celda de datos de una tabla

<a>: Hipervínculo o enlace, dentro o fuera del sitio web. Debe

definirse el parámetro de pasada por medio del atributo href. Por

ejemplo: <a href="http://www.wikipedia.org">Wikipedia</a> se

representa como Wikipedia)

<div>: área de la página

Page 54: Avance - Proyecto Grado

<img>: imagen. Requiere del atributo src, que indica la ruta en la

que se encuentra la imagen. Por ejemplo: <img

src="./imagenes/mifoto.jpg" />

<li><ol><ul>: Etiquetas para listas.

<b>: texto en negrita (Etiqueta desaprovada. Se recomienda usar

la etiqueta <strong>)

<i>: texto en cursiva (Etiqueta desaprovada. Se recomienda usar

la etiqueta <em>)

<s>: texto tachado (Etiqueta desaprovada. Se recomienda usar la

etiqueta <del>)

<u>: texto subrayado

La mayoría de etiquetas deben cerrarse como se abren, pero con

una barra ("/") tal como se muestra en los siguientes ejemplos:

<table><tr><td>Contenido de una celda</td></tr></table>

<script>Código de un script integrado en la página</script>

Nociones básicas de HTML

El lenguaje HTML puede ser creado y editado con cualquier editor de

textos básico, como puede ser Gedit en Linux, el Bloc de Notas de

Windows, o cualquier otro editor que admita texto sin formato como GNU

Emacs, Microsoft Wordpad, TextPad, Vim, Notepad++, entre otros.

Existen además, otros programas para la realización de sitios Web o

edición de código HTML, como por ejemplo Microsoft FrontPage, el cual

tiene un formato básico parecido al resto de los programas de Office.

Page 55: Avance - Proyecto Grado

También existe el famoso software de Macromedia (que adquirió la

empresa Adobe) llamado Dreamweaver, siendo uno de los más

utilizados en el ámbito de diseño y programación Web. Estos programas

se les conoce como editores WYSIWYG o What You See Is What You

Get (en español: “lo que ves es lo que obtienes”). Esto significa que son

editores en los cuales se ve el resultado de lo que se está editando en

tiempo real a medida que se va desarrollando el documento. Ahora bien,

esto no significa una manera distinta de realizar sitios web, sino que una

forma un tanto más simple ya que estos programas, además de tener la

opción de trabajar con la vista preliminar, tiene su propia sección HTML

la cual va generando todo el código a medida que se va trabajando.

Combinar estos dos métodos resulta muy interesante, ya que de alguna

manera se ayudan entre sí. Por ejemplo; si se edita todo en HTML y de

pronto se olvida algún código o etiqueta, simplemente me dirijo al editor

visual o WYSIWYG y se continúa ahí la edición, o viceversa, ya que hay

casos en que sale más rápido y fácil escribir directamente el código de

alguna característica que queramos adherirle al sitio, que buscar la

opción en el programa mismo.

Existe otro tipo de editores HTML llamados WYSIWYM (Lo que ves es lo

que quieres decir) que dan más importancia al contenido y al significado

que a la apariencia visual. Entre los objetivos que tienen estos editores

es la separación del contenido y la presentación, fundamental en el

diseño Web.

HTML utiliza etiquetas o marcas, que consisten en breves instrucciones

de comienzo y final, mediante las cuales se determina la forma en la que

debe aparecer en su navegador el texto, así como también las imágenes

y los demás elementos, en la pantalla del ordenador.

Toda etiqueta se identifica porque está encerrada entre los signos menor

que y mayor que (<>), y algunas tienen atributos que pueden tomar

algún valor. En general las etiquetas se aplicarán de dos formas

especiales:

Page 56: Avance - Proyecto Grado

Se abren y se cierran, como por ejemplo: <b>negrita</b> que se

vería en su navegador web como negrita.

No pueden abrirse y cerrarse, como <hr> que se vería en su

navegador web como una línea horizontal.

Otras que pueden abrirse y cerrarse, como por ejemplo <p>.

Las etiquetas básicas o mínimas son:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html lang="es">

<head>

<title>Ejemplo</title>

</head>

<body>

<p>ejemplo</p>

</body>

</html>

Historia del estándar HTML

En 1989 existían dos técnicas que permitían vincular documentos

electrónicos, por un lado los hipervínculos (links) y por otro lado un

poderoso lenguaje de etiquetas denominado SGML. Por entonces un

usuario conocedor de ambas opciones, Tim Berners-Lee físico nuclear

del Centro Europeo para la Investigación Nuclear da a conocer a la

prensa que estaba trabajando en un sistema que permitirá acceder a

ficheros en línea, funcionando sobre redes de computadoras o máquinas

electrónicas basadas en el protocolo TCP/IP.

A principios de 1990, Tim Berners-Lee define por fin el HTML como un

subconjunto del conocido SGML y crea algo más valioso aún, el World

Wide Web. En 1991, Tim Berners-Lee crea el primer navegador de

HTML que funcionaría en modo texto y para UNIX.

Page 57: Avance - Proyecto Grado

Los trabajos para crear un sucesor del HTML, denominado HTML +,

comenzaron a finales de 1993. HTML+ se diseñó originalmente para ser

un superconjunto del HTML que permitiera evolucionar gradualmente

desde el formato HTML anterior. A la primera especificación formal de

HTML+ se le dio, por lo tanto, el número de versión 2 para distinguirla de

las propuestas no oficiales previas. Los trabajos sobre HTML+

continuaron, pero nunca se convirtió en un estándar, a pesar de ser la

base formalmente más parecida al aspecto compositivo de las

especificaciones actuales.

El borrador del estándar HTML 3.0 fue propuesto por el recién formado

W3C en marzo de 1995. Con él se introdujeron muchas nuevas

capacidades, tales como facilidades para crear tablas, hacer que el texto

fluyese alrededor de las figuras y mostrar elementos matemáticos

complejos. Aunque se diseñó para ser compatible con HTML 2.0, era

demasiado complejo para ser implementado con la tecnología de la

época y, cuando el borrador del estándar expiró en septiembre de 1995,

se abandonó debido a la carencia de apoyos de los fabricantes de

navegadores web. El HTML 3.1 nunca llegó a ser propuesto

oficialmente, y el estándar siguiente fue el HTML 3.2, que abandonaba la

mayoría de las nuevas características del HTML 3.0 y, a cambio,

adoptaba muchos elementos desarrollados inicialmente por los

navegadores web Netscape y Mosaic. La posibilidad de trabajar con

fórmulas matemáticas que se había propuesto en el HTML 3.0 pasó a

quedar integrada en un estándar distinto llamado MathML.

El HTML 4.0 también adoptó muchos elementos específicos

desarrollados inicialmente para un navegador web concreto, pero al

mismo tiempo comenzó a limpiar el HTML señalando algunos de ellos

como 'desaprobados'.

Accesibilidad Web

El diseño en HTML aparte de cumplir con las especificaciones propias

del lenguaje debe respetar unos criterios de accesibilidad web, siguiendo

Page 58: Avance - Proyecto Grado

unas pautas, o las normativas y leyes vigentes en los países donde se

regule dicho concepto. Se encuentra disponible y desarrollado por el

W3C a través de las Pautas de Accesibilidad al Contenido Web 1.0

WCAG, aunque muchos países tienen especificaciones propias como

España con la Norma UNE 139803.

JavaScript es un lenguaje de programación interpretado, es decir, que

no requiere compilación, utilizado principalmente en páginas web, con

una sintaxis semejante a la del lenguaje Java y el lenguaje C.

Al igual que Java, JavaScript es un lenguaje orientado a objetos

propiamente dicho, ya que dispone de Herencia, si bien ésta se realiza

siguiendo el paradigma de programación basada en prototipos, ya que

las nuevas clases se generan clonando las clases base (prototipos) y

extendiendo su funcionalidad.

Todos los navegadores modernos interpretan el código JavaScript

integrado dentro de las páginas web. Para interactuar con una página

web se provee al lenguaje JavaScript de una implementación del DOM.

El lenguaje fue inventado por Brendan Eich en la empresa Netscape

Communications, que es la que desarrolló los primeros navegadores

web comerciales. Apareció por primera vez en el producto de Netscape

llamado Netscape Navigator 2.0.

Tradicionalmente, se venía utilizando en páginas web HTML, para

realizar tareas y operaciones en el marco de la aplicación únicamente

cliente, sin acceso a funciones del servidor. JavaScript se ejecuta en el

agente de usuario al mismo tiempo que las sentencias van

descargándose junto con el código HTML.

Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero

fue rebautizado como JavaScript en un anuncio conjunto entre Sun

Microsystems y Netscape, el 4 de diciembre de 1995.

Page 59: Avance - Proyecto Grado

En 1997 los autores propusieron JavaScript para que fuera adoptado

como estándar de la European Computer Manufacturers' Association

ECMA, que a pesar de su nombre no es europeo sino internacional, con

sede en Ginebra. En junio de 1997 fue adoptado como un estándar

ECMA, con el nombre de ECMAScript. Poco después también lo fue

como un estándar ISO.

JScript es la implementación de ECMAScript de Microsoft, muy similar al

JavaScript de Netscape, pero con ciertas diferencias en el modelo de

objetos del navegador que hacen a ambas versiones con frecuencia

incompatibles.

Para evitar estas incompatibilidades, el World Wide Web Consortium

diseñó el estándar Document Object Model (DOM, ó Modelo de Objetos

del Documento en castellano), que incorporan Konqueror, las versiones

6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla

desde su primera versión.

Dónde y cómo incluir JavaScript en un documento

Javascript se puede incluir en cualquier documento y es compatible con

cualquier S.O.HTML, o todo aquel que termine traduciéndose en HTML

en el navegador del cliente; ya sea PHP, ASP,JSP,SVG... Incluir código

directamente en una estructura HTML es una práctica invasiva, y no

recomendada. El método correcto que define la W3C es incluir javascript

como un archivo externo, tanto por cuestiones de accesibilidad, como

practicidad y velocidad en la navegación. Bastará con escribir en el

documento HTML:

<script type="text/javascript" src="[URL]"></script>

Siendo [URL] la URL relativa o absoluta del recurso con código

JavaScript, el cual tendrá extensión js.

También es posible incluir código directamente en el documento entre

los elementos <script> y </script>, aunque no se recomienda:

Page 60: Avance - Proyecto Grado

<script type="text/javascript">

<!--

// código JavaScript

-->

</script>

Para validar el código en un validador HTML es necesario incluir los

comentarios HTML ‹!-- y --> para que no se interpreten los símbolos < y

> como inicio y fin de etiqueta.

Historia y denominación

JavaScript fue desarrollado originalmente por Brendan Eich de Netscape

con el nombre de Mocha, más tarde renombrado a LiveScript, y

finalmente a JavaScript. El cambio de nombre de LiveScript a JavaScript

coincidió aproximadamente con el momento en que Netscape agregó

soporte para la tecnología Java en su navegador web Netscape

Navigator. JavaScript fue presentado y desarrollado en el navegador

Netscape versión 2.0B3 en diciembre de 1995. La denominación ha

causado confusión, dando la impresión de que el lenguaje es una

prolongación de Java, y se ha caracterizado por muchos como una

estratagema de marketing de Netscape para obtener prestigio e innovar

en lo que eran los nuevos lenguajes de programación web.

Microsoft dio como nombre a su dialecto de javascript JScript para evitar

cuestiones relacionadas con el trademark. JScript fue adoptado en la

versión 3.0 de Internet Explorer, liberado en agosto de 1996, e incluyó

compatibilidad con el Efecto 2000 con las funciones de fecha, a

diferencia de los que se basaban en java.util.Date en ese momento. Los

dialectos pueden parecer tan similares que los términos "JavaScript" y

"JScript" a menudo se utilizan indistintamente, pero la especificación de

JScript es incompatible con la de ECMA en muchos aspectos.

Netscape presentó Javascript a Ecma para su normalización, resultando

la versión normalizada llamada ECMAScript.

Page 61: Avance - Proyecto Grado

Versiones

Versión

Fecha de lanzamiento

EquivalenciaNetscape

MozillaFirefox

InternetExplorer

Opera

Safari

1.0Marzo de

19962.0 3.0

1.1Agosto de

19963.0

1.2Junio de

19974.0-4.05

1.3Octubre de

1998

Especificación

ECMA-262 1st

/

Especificación

ECMA-262 2nd

4.06-

4.7x4.0

1.4

Netscap

e

Server

1.5 Noviembre

de 2000

Especificación

ECMA-262 3rd

6.0 1.0 5.5

(JScript

5.5),

6

(JScript

6.0,

7.0,

8.0,

9.0

Page 62: Avance - Proyecto Grado

5.6),

7

(JScript

5.7),

8

(JScript

6)

1.6Noviembre

de 2005

1.5 + Arrays

extras +

Arrays y

Strings

genéricos +

E4X

1.5

1.7Octubre de

2006

1.6 +

Generadores

de Python +

Iteradores +

let

2.0 3.x

1.8Junio de

2008

1.7 +

Generador de

expresiones +

Clausuras de

expresiones

3.0

1.8.1

1.8 +

actualizacione

s menores

3.5

Page 63: Avance - Proyecto Grado

1.9

1.8.1 +

compatibilidad

con

ECMAScript 5

4

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, abreviados, 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

Page 64: Avance - Proyecto Grado

Las bases de datos pueden clasificarse de varias maneras, de acuerdo

al contexto que se esté manejando, o la utilidad de la misma:

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.

Según el contenido

Bases de datos bibliográficas

Solo contienen un surrogante (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 si no estaríamos en presencia de una base de datos a

texto completo (o de fuentes primarias—ver más abajo). Como su

Page 65: Avance - Proyecto Grado

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:

Aquellas que almacenan secuencias de nucleótidos o proteínas.

Las bases de datos de rutas metabólicas

Bases de datos de estructura, comprende los registros de datos

experimentales sobre estructuras 3D de biomoléculas

Bases de datos clínicas

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

Page 66: Avance - Proyecto Grado

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

Page 67: Avance - Proyecto Grado

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.

Bases de datos Transaccionales

Son bases de datos cuyo único fin es el envío y recepción de datos a

grandes velocidades, estas bases son muy poco comunes y están

dirigidas por lo general al entorno de análisis de calidad, datos de

producción e industrial, es importante entender que su fin único es

recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto

la redundancia y duplicación de información no es un problema como

con las demás bases de datos, por lo general para poderlas aprovechar

al máximo permiten algún tipo de conectividad a bases de datos

relacionales.

Base de datos relacional

Éste es el modelo 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"

Page 68: Avance - Proyecto Grado

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:

Page 69: Avance - Proyecto Grado

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.

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 base 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

Page 70: Avance - Proyecto Grado

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.

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 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.

Page 71: Avance - Proyecto Grado

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.

Ventajas

Modular

Open source

Multi-plataforma

Extensible

Popular (fácil conseguir ayuda/soporte)

Módulos

La arquitectura del servidor Apache es muy modular. El servidor consta

de una sección core y diversos módulos que aportan mucha de la

funcionalidad que podría considerarse básica para un servidor web.

Algunos de estos módulos son:

mod_ssl - Comunicaciones Seguras vía TLS.

mod_rewrite - reescritura de direcciones (generalmente utilizado para

transformar páginas dinámicas como php en páginas estáticas html

para así engañar a los navegantes o a los motores de búsqueda en

cuanto a cómo fueron desarrolladas estas páginas).

Page 72: Avance - Proyecto Grado

mod_dav - Soporte del protocolo WebDAV (RFC 2518).

mod_deflate - Compresión transparente con el algoritmo deflate del

contenido enviado al cliente.

mod_auth_ldap - Permite autentificar usuarios contra un servidor

LDAP.

mod_proxy_ajp - Conector para enlazar con el servidor Jakarta

Tomcat de páginas dinámicas en Java (servlets y JSP).

El servidor de base puede ser extendido con la inclusión de módulos

externos 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_rexx - Páginas dinámicas en REqXX y Object REXX.

mod_ruby - Páginas dinámicas en Ruby.

mod_aspdotnet - Páginas dinámicas en .NET de Microsoft (Módulo retirado).

mod_mono - Páginas dinámicas en Mono

mod_security - Filtrado a nivel de aplicación, para seguridad.

Uso

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).

Page 73: Avance - Proyecto Grado

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á

basado en una versión modificada de Apache, denominada Google Web

Server (GWS). Muchos proyectos de Wikimedia también se ejecutan

sobre servidores web Apache.

Configuración

Page 74: Avance - Proyecto Grado

La mayor parte de la configuración se realiza en el fichero apache2.conf

o httpd.conf, según el sistema donde esté corriendo. Cualquier cambio

en éste archivo requiere reiniciar el servidor, o forzar la lectura de los

archivos de configuración nuevamente.

Licencia

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:

Este es software libre pero es incompatible con la GPL. La Apache

Software License es incompatible con la GPL porque tiene un

requerimiento específico que no está incluido en la GPL: tiene ciertos

casos de terminación de patentes que la GPL no requiere. No

consideramos que dichos casos de terminación de patentes son

inherentemente una mala idea, pero a pesar de ello son incompatibles

con la GNU 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.

Adobe Dreamweaver (Dw) Es una aplicación en forma de estudio

(Basada por supuesto en la forma de estudio de Adobe Flash®) pero

Page 75: Avance - Proyecto Grado

con más parecido a un taller destinado para la construcción y edición de

sitios y aplicaciones Web basados en estándares. Creado inicialmente

por Macromedia (actualmente producido por Adobe Systems). Es el

programa de este tipo más utilizado en el sector del diseño y la

programación web, por sus funcionalidades, su integración con otras

herramientas como Adobe Flash y, recientemente, por su soporte de los

estándares del World Wide Web Consortium. Su principal competidor es

Microsoft Expression Web y tiene soporte tanto para edición de

imágenes como para animación a través de su integración con otras

herramientas

Hasta la versión MX, fue duramente criticado por su escaso soporte de

los estándares de la web, ya que el código que generaba era con

frecuencia sólo válido para Internet Explorer, y no validaba como HTML

estándar. Esto se ha ido corrigiendo en las versiones recientes.

Se vende como parte de la suite Adobe Creative Suite 3 y 4

La gran base de este editor sobre otros es su gran poder de ampliación y

personalización del mismo, puesto que en este programa, sus rutinas

(como la de insertar un hipervinculo, una imagen o añadir un

comportamiento) están hechas en Javascript-C, lo que le ofrece una

gran flexibilidad en estas materias. Esto hace que los archivos del

programa no sean instrucciones de C++ sino, rutinas de Javascript que

hace que sea un programa muy fluido, que todo ello hace, que

programadores y editores web hagan extensiones para su programa y lo

ponga a su gusto.

Las versiones originales de la aplicación se utilizaban como simples

editores WYSIWYG. Sin embargo, versiones más recientes soportan

otras tecnologías web como CSS, JavaScript y algunos Framework del

lado servidor.

Dreamweaver ha tenido un gran éxito desde finales de los 90 y

actualmente mantiene el 90% del mercado de editores HTML. Esta

aplicación está disponible tanto para la platafoma MAC como para

Page 76: Avance - Proyecto Grado

Windows, aunque también se puede ejecutar en plataformas basadas en

UNIX utilizando programas que implementan las API's de Windows, tipo

Wine.

Como editor WYSIWYG que es, Dreamweaver oculta el código HTML de

cara al usuario, haciendo posible que alguien no entendido pueda crear

páginas y sitios web fácilmente.

Algunos desarrolladores web critican esta propuesta ya que crean

páginas HTML más largas de lo que solían ser al incluir mucho código

inútil, lo cual va en detrimento de la ejecución de las páginas en el

navegador web. Esto puede ser especialmente cierto ya que la

aplicación facilita en exceso el diseño de las páginas mediante tablas.

Además, algunos desarrolladores web han criticado Dreamweaver en el

pasado porque creaba código que no cumplía con los estándares del

consorcio Web (W3C).

No obstante, Adobe ha aumentado el soporte CSS y otras maneras de

diseñar páginas sin tablas en versiones posteriores de la aplicación.

Dreamweaver permite al usuario utilizar la mayoría de los navegadores

Web instalados en su ordenador para previsualizar las páginas web.

También dispone de herramientas de administración de sitios dirigidas a

principiantes como, por ejemplo, la habilidad de encontrar y reemplazar

líneas de texto y código por cualquier tipo de parámetro especificado,

hasta el sitio web completo. El panel de comportamientos también

permite crear JavaScript básico sin conocimientos de código.

Con la llegada de la versión MX, Macromedia incorporó herramientas de

creación de contenido dinámico en Dreamweaver. En lo fundamental de

las herramientas HTML WYSIWYG, también permite la conexión a

Bases de Datos como MySQL y Microsoft Access, para filtrar y mostrar

el contenido utilizando tecnología de script como, por ejemplo, ASP

(Active Server Pages), ASP.NET, ColdFusion, JSP (JavaServer

Pages),PHP sin necesidad de tener experiencia previa en programación.

Page 77: Avance - Proyecto Grado

Un aspecto de alta consideración de Dreamweaver es su arquitectura

extensible. Es decir, permite el uso de "Extensiones". Las extensiones,

tal y como se conocen, son pequeños programas, que cualquier

desarrollador web puede escribir (normalmente en HTML y Javascript) y

que cualquiera puede descargar e instalar, ofreciendo así

funcionalidades añadidas a la aplicación. Dreamweaver goza del apoyo

de una gran comunidad de desarrolladores de extensiones que hacen

posible la disponibilidad de extensiones gratuitas y de pago para la

mayoría de las tareas de desarrollo web, que van desde simple efectos

rollover hasta completas cartas de compra.

También podría decirse, que para un diseño mas rápido y a la vez fácil

podría complementarse con fireworks en donde podría uno diseñar un

menú o para otras creaciones de imágenes (gif web, gif websnap, gif

adaptable,jpeg calidad superior, jpeg archivo mas pequeño, gif animado

websnap) para un sitio web y después exportar la imagen creada y así

utilizarla como una sola, en donde ya llevara los vínculos a un dicho sitio

en especifico que uno le haya dado.(MRR - U.P.C.)

Dato Curioso: Su nombre en español significa "tejesueños o tejedor de

sueños"

Características

Además de sus capacidades WYSIWYG, tiene las funciones típicas de

un editor de código fuente para la web:

Un administrador de sitios, para agrupar los archivos según el

proyecto al que pertenezcan.

Un cliente FTP integrado, que permite subir los archivos editados

inmediatamente al sitio en Internet.

Función de autocompletar y resaltado de la sintaxis para

instrucciones en HTML y lenguajes de programación como PqHP,

JSP o ASP.

Page 78: Avance - Proyecto Grado

Historial de Versiones

Dreamweaver 1.0 (Lanzado en diciembre de 1997; Dreamweaver 1.2

marzo de 1998)

Dreamweaver 2.0 (Lanzado en diciembre de 1998)

Dreamweaver 3.0 (Lanzado en diciembre de 1999)

Dreamweaver UltraDev 1.0 (Lanzado en junio de 2000)

Dreamweaver 4.0 (Lanzado en diciembre de 2000)

Dreamweaver UltraDev 4.0 (Lanzado en diciembre de 2000)

Dreamweaver MX [Numero interno de version: 6.0] (Lanzado en

mayo de 2002)

Dreamweaver MX 2004 [Numero interno de version: 7.0] (Lanzado el

10 de septiembre en 2003)

Dreamweaver 8 (Lanzado el 13 de septiembre de 2005)

Dreamweaver CS3 (Lanzado el 16 de abril de 2007)

Dreamweaver CS4 (Lanzado el 23 de septiembre de 2008)

Page 79: Avance - Proyecto Grado

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

Concepto

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).

Page 80: Avance - Proyecto Grado

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 el nivel de abstracción

Según el paradigma de programación que poseen cada uno de ellos

Según su nivel de abstracción

Page 81: Avance - Proyecto Grado

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. Ejemplo:

Lenguaje ensamblador, sintaxis Intel para procesadores x86

mov eax,1 ;mueve a al registro eax el valor 1

xor ebx, ebx ;pone en 0 el registro ebx

int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)

Ejecutar ese código en sistemas UNIX o basados en él equivale a una

función exit(0) (terminar el programa retornando el valor 0)

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. Ejemplo:

/*Lenguaje C*/

/*declaración de las funciones estandars de entrada y salida*/

#include <stdio.h>

Page 82: Avance - Proyecto Grado

int main(int argc, char **argv)

{

char *p; /*creamos un puntero a un byte*/

if(argc == 1){

printf("\nIngrese un argumento al programa\n");/*imprimimos el

texto*/

return 1;

}

p = 0x30000 /*el puntero apunta a 0x30000 */

*p = argv[1][0] /*el primer caracter del primer argumento lo copiamos a

la posición 0x30000 */

return 0;

}

El ejemplo es muy simple y muestra a los punteros de C, éstos no son

muy utilizados en lenguajes de alto nivel, pero en C sí.

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. Ejemplo:

{Lenguaje Pascal}

program suma;

var x,s,r:integer; {declaración de las variables}

begin {comienzo del programa principal}

Page 83: Avance - Proyecto Grado

writeln('Ingrese 2 números enteros');{imprime el texto}

readln(x,s); {lee 2 números y los coloca en las variables x y s}

r:= x + s; {suma los 2 números y coloca el resultado en r}

writeln('La suma es ',r); {imrpime el resultado}

readln;

end.{termina el programa principal}

Ese es el lenguaje Pascal, muy utilizado por principiantes al aprender a

programar.

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.

Page 84: Avance - Proyecto Grado

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.

Lenguajes imperativos

Son los lenguajes que dan instrucciones a la computadora, es decir,

órdenes.

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.

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.

Page 85: Avance - Proyecto Grado

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.

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

Page 86: Avance - Proyecto Grado

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.

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

Page 87: Avance - Proyecto Grado

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).

Servidor web de la Wikimedia

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.

Page 88: Avance - Proyecto Grado

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.

Algunos conceptos relacionados con las aplicaciones web son:

PHP

ASP

Perl

Python/WSGI

CGI

.NET

Page 89: Avance - Proyecto Grado

JSP (Tecnología Java )

CF (Adobe Coldfusion)

Algunos servidores web importantes son:

Apache

IIS

Cherokee

Otros servidores, más simples pero más rápidos, son:

lighttpd

thttpd

NAVEGADOR WEB

El WorldWideWeb para equipos basados en NeXT, fue el primer

navegador web (1991).

Un navegador, navegador red o navegador web (del inglés, web

browser) es un programa que permite visualizar la información que

contiene una página web (ya esté está alojada en un servidor dentro de

la World Wide Web o en uno local).

Page 90: Avance - Proyecto Grado

El navegador interpreta el código, HTML generalmente, en el que está

escrita la página web y lo presenta en pantalla permitiendo al usuario

interactuar con su contenido y navegar hacia otros lugares de la red

mediante enlaces o hipervínculos.

La funcionalidad básica de un navegador web es permitir la visualización

de documentos de texto, posiblemente con recursos multimedia

incrustados. Los documentos pueden estar ubicados en la computadora

en donde está el usuario, pero también pueden estar en cualquier otro

dispositivo que esté conectado a la computadora del usuario o a través

de Internet, y que tenga los recursos necesarios para la transmisión de

los documentos (un software servidor web). Tales documentos,

comúnmente denominados páginas web, poseen hipervínculos que

enlazan una porción de texto o una imagen a otro documento,

normalmente relacionado con el texto o la imagen.

El seguimiento de enlaces de una página a otra, ubicada en cualquier

computadora conectada a la Internet, se llama navegación; que es de

donde se origina el nombre de navegador. Por otro lado, hojeador es

una traducción literal del original en inglés, browser, aunque su uso es

minoritario.

Historia

El primer navegador, desarrollado en el CERN a finales de 1990 y

principios de 1991 por Tim Berners-Lee, era bastante sofisticado y

gráfico, pero sólo funcionaba en estaciones NeXT.

El navegador Mosaic, que funcionaba inicialmente en entornos UNIX

sobre X11, fue el primero que se extendió debido a que pronto el NCSA

preparó versiones para Windows y Macintosh. Sin embargo, poco más

tarde entró en el mercado Netscape Navigator que rápidamente superó

en capacidades y velocidad a Mosaic. Este navegador tiene la ventaja

de funcionar en casi todos los UNIX, así como en entornos Windows.

Page 91: Avance - Proyecto Grado

Estimación del uso en el período 1996-2006

Internet Explorer (anteriormente Spyglass Mosaic) fue la apuesta tardía

de Microsoft para entrar en el mercado y hoy en día ha conseguido

desbancar al Netscape Navigator entre los usuarios de Windows. En los

últimos años se ha vivido una auténtica explosión del número de

navegadores, que ofrecen cada vez mayor integración con el entorno de

ventanas en el que se ejecutan. Netscape Communications Corporation

liberó el código fuente de su navegador, naciendo así el proyecto

Mozqilla.

Finalmente Mozilla fue reescrito desde cero tras decidirse a desarrollar y

usar como base un nuevo conjunto de widgets multiplataforma basado

en XML llamado XUL y esto hizo que tardara bastante más en aparecer

de lo previsto inicialmente, apareciendo una versión 1.0 de gran calidad

y para muchísimas plataformas a la vez el 5 de junio del 2002.

A finales de 2004 aparece en el mercado Firefox, una rama de desarrollo

de Mozilla que pretende hacerse con parte del mercado de Internet

Explorer. Se trata de un navegador más ligero que su hermano mayor.

Funcionamiento de los navegadores

La comunicación entre el servidor web y el navegador se realiza

mediante el protocolo HTTP, aunque la mayoría de los hojeadores

soportan otros protocolos como FTP, Gopher, y HTTPS (una versión

cifrada de HTTP basada en Secure Socket Layer o Capa de Conexión

Segura (SSL)).

Page 92: Avance - Proyecto Grado

La función principal del navegador es descargar documentos HTML y

mostrarlos en pantalla. En la actualidad, no solamente descargan este

tipo de documentos sino que muestran con el documento sus imágenes,

sonidos e incluso vídeos streaming en diferentes formatos y protocolos.

Además, permiten almacenar la información en el disco o crear

marcadores (bookmarks) de las páginas más visitadas.

Algunos de los navegadores web más populares se incluyen en lo que

se denomina una Suite. Estas Suite disponen de varios programas

integrados para leer noticias de Usenet y correo electrónico mediante los

protocolos NNTP, IMAP y POP.

Los primeros navegadores web sólo soportaban una versión muy simple

de HTML. El rápido desarrollo de los navegadores web propietarios

condujo al desarrollo de dialectos no estándares de HTML y a problemas

de interoperabilidad en la web. Los más modernos (como Amaya,

Mozilla, Netscape, Opera y versiones recientes de Internet Explorer)

soportan los estándares HTML y XHTML (comenzando con HTML 4.01,

los cuales deberían visualizarse de la misma manera en todos ellos).

Los estándares web son publicados por el World Wide Web Consortium.

Uso actual de navegadores web

Actualmente el navegador más utilizado en el mundo es Internet

Explorer en su versión 7, algunas empresas indican que esta ventaja se

debe a que viene integrado con Windows, detrás de éste está el

navegador de Mozilla Firefox, el cual se está popularizando cada vez

más. Firefox es un competidor serio al producto de Microsoft que ya

alcanza una quinta parte de la cuota total. Luego le sigue la versión 6 de

Internet Explorer, con una cuota de poco menos de 19,21% (si se juntan

todas las versiones de Internet Explorer se obtendría un 67% de cuota

siendo, por lejos, la serie de navegadores más usada). Safari con más

del 8% es otro navegador en rápida progresión. Existen también los

navegadores, Netscape Navigator, Opera y Chrome los cuales tienen un

Page 93: Avance - Proyecto Grado

uso de menos del 2% en el mercado. Además existe Konqueror del

proyecto KDE en GNU/Linux, y Epiphany el navegador oficial de Gnome.

Ejemplos de navegadores web

Existe una lista detallada de navegadores, motores de renderización y

otros temas asociados en la categoría asociada.

Amaya del W3C

Internet Explorer y derivados:

o Avant Browser

o Maxthon

o G-Browser

o Slim Browser

o AOL Explorer

Mozilla (Gecko) y derivados:

o Mozilla Firefox

o Iceweasel

o Beonex

o Navegador web IBM para OS/2

o Flock

o Galeon (Proyecto abandonado)

o Skipstone

o K-Meleon para Windows

o Camino para Mac OS X

Konqueror (KHTML)

Page 94: Avance - Proyecto Grado

o Abrowse

Basado en WebKit

o Safari

o Google Chrome

o Epiphany

Netscape Navigator (hasta la versión 4.xx)

Opera

iCab

OmniqWeb

Dillo

IBrowse

AWeb

Voyager

Espial Escape

HotJava

IEs4Linux

SpaceTime

Navegadores web basados en texto:

Links

Lynx

Netrik

w3m

Primeros navegadores (que ya no se están desarrollando):

Page 95: Avance - Proyecto Grado

Cello

CyberDog

MidasWWW

Mosaic

o Spyglass Mosaic

ViolaWWW

OHT-Erwise

APLICACIÓN WEB

En la ingeniería software se denomina aplicación web a aquellas

aplicaciones que los usuarios pueden utilizar accediendo a un servidor

Page 96: Avance - Proyecto Grado

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, tiendas en línea y la propia Wikipedia 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.

Page 97: Avance - Proyecto Grado

Durante la sesión, el navegador web interpreta y muestra en pantalla las

páginas, actuando como cliente para cualquier aplicación web.

Interfaz

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.

Consideraciones técnicas

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

Page 98: Avance - Proyecto Grado

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 cliente-servidor,

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”.

Estructura de las aplicaciones web

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.

Page 99: Avance - Proyecto Grado

Uso empresarial

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.

Lenguajes de programación de Aplicaciones Web

Existen numerosos lenguajes de programación empleados para el

desarrollo de Aplicaciones Web, entre los que destacan:

PHP

ASP/ASP.NET

Java, con sus tecnologías Java Servlets y JavaServer Pages

(JSP)

Perl

Ruby

Python

HTML

XML

ASP no es un lenguaje de programación en sí mismo, sino una

arquitectura de desarrollo web en la que se pueden usar por debajo

distintos lenguajes (por ejemplo VB.NET o C# para ASP.NET o

VBScript/JScript para ASP).

Page 100: Avance - Proyecto Grado

Ejemplos de aplicaciones web

eyeOS por Equipo eyeOS. Escritorio virtual

Flickr por Ludicorp. Administrador de fotografías.

Gmail por Google. Correo electrónico.

SugarCRM CRM

Webramientas Directorio con miles de Aplicaciones Web listadas

por Categorías

WORLD WIDE WEB CONSORTIUM

El World Wide Web Consortium, abreviado W3C, es un consorcio

internacional que produce recomendaciones para la World Wide Web.

Está dirigida por Tim Berners-Lee, el creador original de URL (Uniform

Resource Locator, Localizador Uniforme de Recursos), HTTP

(HyperText Transfer Protocol, Protocolo de Transferencia de HiperTexto)

y HTML (Lenguaje de Marcado de HiperTexto) que son las principales

tecnologías sobre las que se basa la Web.

Organización de la W3C

Page 101: Avance - Proyecto Grado

Creada el 1 de octubre de 1994 por Tim Berners-Lee en el MIT, actual

sede central del consorcio. Uniéndose posteriormente en abril de 1995

INRIA en Francia, reemplazado por el ERCIM en el 2003 como el

huésped europeo del consorcio y Universidad de Keio (Shonan Fujisawa

Campus) en Japón en septiembre de 1996 como huésped asiatico.

Estos organismos administran el consorcio, el cual está integrado por:

Miembros del W3C. A marzo de 2009 contaba con 407 miembros

(lista completa)

Equipo W3C (W3C Team) 65 investigadores y expertos de todo el

mundo (Directorio)

Oficinas W3C (W3C Offices). Centros regionales establecidos en

Alemania y Austria (oficina conjunta), Australia, Benelux (oficina

conjunta), China, Corea del Sur, España, Finlandia, Grecia, Hong

Kong, Hungría, India, Israel, Italia, Marruecos, Suecia y Reino Unido

e Irlanda (oficina conjunta) (Oficinas W3C.)

La oficina española del W3C, establecida en el 2003, está albergada por

la Fundación CTIC en el Parque Científico Tecnológico de Gijón

(Principado de Asturias).

INTERNET

Page 102: Avance - Proyecto Grado

Internet es un conjunto

descentralizado de redes de

comunicación interconectadas,

que utilizan la familia de

protocolos TCP/IP, garantizando

que las redes físicas

heterogéneas que la componen

funcionen como una red lógica

única, de alcance mundial. Sus

orígenes se remontan a 1969,

cuando se estableció la primera

conexión de computadoras,

conocida como ARPANET, entre

tres universidades en California y

una en Utah, Estados Unidos.

Uno de los servicios que más

éxito ha tenido en Internet ha sido

la World Wide Web (WWW, o "la

Web"), hasta tal punto que es

habitual la confusión entre ambos

términos. La WWW es un

conjunto de protocolos que

permite, de forma sencilla, la consulta remota de archivos de hipertexto.

Ésta fue un desarrollo posterior (1990) y utiliza Internet como medio de

transmisión.

Existen, por tanto, muchos otros servicios y protocolos en Internet,

aparte de la Web: el envío de correo electrónico (SMTP), la transmisión

de archivos (FTP y P2P), las conversaciones en línea (IRC), la

mensajería instantánea y presencia, la transmisión de contenido y

comunicación multimedia -telefonía (VoIP), televisión (IPTV)-, los

boletines electrónicos (NNTP), el acceso remoto a otras máquinas (SSH

y Telnet) o los juegos en línea.

Idiomas

más

empleados

Inglés (29,4%), chino (18,9%),

español (8,5%),

japonés (6,4%),

francés (4,7%),

alemán (4,2%),

árabe (4,1%),

portugués (4,0%)

Usuarios

por

continente

(2005)

Asia (40%),

Europa (26%),

América del Norte

(17%)

Page 103: Avance - Proyecto Grado

Historia

En el mes de julio de 1961 Leonard Kleinrock publicó desde el MIT el

primer documento sobre la teoría de conmutación de paquetes.

Kleinrock convenció a Lawrence Roberts de la factibilidad teórica de las

comunicaciones vía paquetes en lugar de circuitos, lo cual resultó ser un

gran avance en el camino hacia el trabajo informático en red. El otro

paso fundamental fue hacer dialogar a los ordenadores entre sí. Para

explorar este terreno, en 1965, Roberts conectó una computadora TX2

en Massachusetts con un Q-32 en California a través de una línea

telefónica conmutada de baja velocidad, creando así la primera (aunque

reducida) red de computadoras de área amplia jamás construida.

1969. La primera red interconectada nace el 21 de noviembre de 1969,

cuando se crea el primer enlace entre las universidades de UCLA y

Stanford por medio de la línea telefónica conmutada, y gracias a los

trabajos y estudios anteriores de varios científicos y organizaciones

desde 1959 (ver ARPANET). El mito de que ARPANET, la primera red,

se construyó simplemente para sobrevivir a ataques nucleares sigue

siendo muy popular. Sin embargo, este no fue el único motivo. Si bien es

cierto que ARPANET fue diseñada para sobrevivir a fallos en la red, la

verdadera razón para ello era que los nodos de conmutación eran poco

fiables, tal y como se atestigua en la siguiente cita:

A raíz de un estudio de RAND, se extendió el falso rumor de que

ARPANET fue diseñada para resistir un ataque nuclear. Esto nunca fue

cierto, solamente un estudio de RAND, no relacionado con ARPANET,

consideraba la guerra nuclear en la transmisión segura de

comunicaciones de voz. Sin embargo, trabajos posteriores enfatizaron la

robustez y capacidad de supervivencia de grandes porciones de las

redes subyacentes. (Inteqrnet Society, A Brief History of the Internet)

1972. Se realizó la Primera demostración pública de ARPANET, una

nueva red de comunicaciones financiada por la DARPA que funcionaba

de forma distribuida sobre la red telefónica conmutada. El éxito de ésta

Page 104: Avance - Proyecto Grado

nueva arquitectura sirvió para que, en 1973, la DARPA iniciara un

programa de investigación sobre posibles técnicas para interconectar

redes (orientadas al tráfico de paquetes) de distintas clases. Para este

fin, desarrollaron nuevos protocolos de comunicaciones que permitiesen

este intercambio de información de forma "transparente" para las

computadoras conectadas. De la filosofía del proyecto surgió el nombre

de "Internet", que se aplicó al sistema de redes interconectadas

mediante los protocolos TCP e IP.

1983. El 1 de enero, ARPANET cambió el protocolo NCP por TCP/IP.

Ese mismo año, se creó el IAB con el fin de estandarizar el protocolo

TCP/IP y de proporcionar recursos de investigación a Internet. Por otra

parte, se centró la función de asignación de identificadores en la IANA

que, más tarde, delegó parte de sus funciones en el Internet registry que,

a su vez, proporciona servicios a los DNS.

1986. La NSF comenzó el desarrollo de NSFNET que se convirtió en la

principal Red en árbol de Internet, complementada después con las

redes NSINET y ESNET, todas ellas en Estados Unidos. Paralelamente,

otras redes troncales en Europa, tanto públicas como comerciales, junto

con las americanas formaban el esqueleto básico ("backbone") de

Internet.

1989. Con la integración de los protocolos OSI en la arquitectura de

Internet, se inició la tendencia actual de permitir no sólo la interconexión

de redes de estructuras dispares, sino también la de facilitar el uso de

distintos protocolos de comunicaciones.

En el CERN de Ginebra, un grupo de físicos encabezado por Tim

Berners-Lee creó el lenguaje HTML, basado en el SGML. En 1990 el

mismo equipo construyó el primer cliente Web, llamado WorldWideWeb

(WWW), y el primer servidor web.

2006. El 3 de enero, Internet alcanzó los mil cien millones de usuarios.

Se prevé que en diez años, la cantidad de navegantes de la Red

aumentará a 2.000 millones.

Page 105: Avance - Proyecto Grado

WEB 2.0

El término Web 2.0 fue acuñado por Tim O'Reilly en 2004 para referirse

a una segunda generación en la historia del desarrollo de tecnología

Web basada en comunidades de usuarios y una gama especial de

servicios, como las redes sociales, los blogs, los wikis o las

folcsonomías, que fomentan la colaboración y el intercambio ágil de

información entre los usuarios de una comunidad o red social. La Web

2.0 es tambièn llamada web social por el enfoque colaborativo y de

construcciòn social de esta herramienta.

Introducción

El concepto original del contexto, llamado Web 1.0 era páginas estáticas

HTML que no eran actualizadas frecuentemente. El éxito de las .com

dependía de webs más dinámicas (a veces llamadas Web 1.5) donde los

CMS Sistema de gestión de contenidos (Content Management System

en inglés, abreviado CMS) servían páginas HTML dinámicas creadas al

vuelo desde una actualizada base de datos. En ambos sentidos, el

conseguir hits (visitas) y la estética visual eran considerados como

factores importantes.

Los propulsores de la aproximación a la Web 2.0 creen que el uso de la

web está orientado a la interacción y redes sociales, que pueden servir

contenido que explota los efectos de las redes, creando o no webs

interactivas y visuales. Es decir, los sitios Web 2.0 actúan más como

Page 106: Avance - Proyecto Grado

puntos de encuentro, o webs dependientes de usuarios, que como webs

tradicionales.

Origen del término

El término fue acuñado por Dale Dougherty de O'Reilly Media en una

lluvia de ideas con Craig Cline de MediaLive para desarrollar ideas para

una conferencia. Dougherty sugirió que la web estaba en un

renacimiento, con reglas que cambiaban y modelos de negocio que

evolucionaban. Dougherty puso ejemplos — "DoubleClick era la Web

1.0; Google AdSense es la Web 2.0. Ofoto es Web 1.0; Flickr es Web

2.0." — en vez de definiciones, y reclutó a John Battelle para dar una

perspectiva empresarial, y O'Reilly Media, Battelle, y MediaLive lanzó su

primera conferencia sobre la Web 2.0 en Octubre del 2004. La segunda

conferencia se celebró en octubre de 2005.

En 2005, Tim O'Reilly definió el concepto de Web 2.0. El mapa meme

mostrado (elaborado por Markus Angermeier) resume el meme de Web

2.0, con algunos ejemplos de servicios.q

En su conferencia, O'Reilly y Battelle resumieron los principios clave que

creen que caracterizan a las aplicaciones web 2.0: la web como

plataforma; datos como el "Intel Inside"; efectos de red conducidos por

Page 107: Avance - Proyecto Grado

una "arquitectura de participación"; innovación y desarrolladores

independientes; pequeños modelos de negocio capaces de redifundir

servicios y contenidos; el perpetuo beta; software por encima de un solo

aparato.

En general, cuando mencionamos el término Web 2.0 nos referimos a

una serie de aplicaciones y páginas de Internet que utilizan la

inteligencia colectiva para proporcionar servicios interactivos en red

dando al usuario el control de sus datos.

Así, podemos entender como 2.0 -"todas aquellas utilidades y servicios de Internet que se sustentan en una base de datos, la cual puede ser modificada por los usuarios del servicio, ya sea en su contenido (añadiendo, cambiando o borrando información o asociando datos a la información existente), pues bien en la forma de presentarlos, o en contenido y forma simultáneamente."- (Ribes,

2007)

Mapa mental de la Web 2.0

Tecnología

Page 108: Avance - Proyecto Grado

La infraestructura de la Web 2.0 es muy compleja y va evolucionando,

pero incluye el software de servidor, redifusión de contenidos, protocolos

de mensajes, navegadores basados en estándares, y varias aplicaciones

para clientes.

Una web se puede decir que está construida usando tecnología de la

Web 2.0 si se caracteriza por las siguientes técnicas:

Web 2.0 buzz words

Técnicas:

o CSS, marcado XHTML válido semánticamente y

Microformatos

o Técnicas de aplicaciones ricas no intrusivas (como AJAX)

o Java Web Start

o XUL

o Redifusión/Agregación de datos en RSS/ATOM

o URLs sencillas con significado semántico

o Soporte para postear en un blog

o JCC y APIs REST o XML

Page 109: Avance - Proyecto Grado

o JSON

o Algunos aspectos de redes sociales

o Mashup (apliqcación web híbrida)

General:

o El sitio no debe actuar como un "jardín cerrado": la información

debe poderse introducir y extraer fácilmente

o Los usuarios deberían controlar su propia información

o Basada exclusivamente en la Web: los sitios Web 2.0 con más

éxito pueden ser utilizados enteramente desde un navegador

Servicios Web

Los protocolos de mensajes bidireccionales son uno de los elementos

clave de la infraestuctura de la Web 2.0. Los dos tipos más importantes

son los métodos RESTful y SOAP. REST indican un tipo de llamada a un

servicio web donde el cliente transfiere el estado de todas las

transacciones. SOAP y otros métodos similares dependen del servidor

para retener la información de estado. En ambos casos, el servicio es

llamado desde un API. A veces este API está personalizado en función

de las necesidades específicas del sitio web, pero los APIs de los

servicios web estándares (como por ejemplo escribir en un blog) están

también muy extendidos. Generalmente el lenguaje común de estos

servicios web es el XML, si bien puede haber excepciones.

Recientemente, una forma híbrida conocida como Ajax ha evolucionado

para mejorar la experiencia del usuario en las aplicaciones web basadas

en el navegador. Esto puede ser usado en webs propietarias (como en

Google Maps) o en formas abiertas utilizando un API de servicios web.

Software de servidor

Page 110: Avance - Proyecto Grado

La funcionalidad de Web 2.0 se basa en la arquitectura existente de

servidor web pero con un énfasis mayor en el software dorsal. La

redifusión sólo se diferencia nominalmente de los métodos de

publicación de la gestión dinámica de contenido, pero los servicios Web

requieren normalmente un soporte de bases de datos y flujo de trabajo

mucho más robusto y llegan a parecerse mucho a la funcionalidad de

internet tradicional de un servidor de aplicaciones. El enfoque empleado

hasta ahora por los fabricantes suele ser bien un enfoque de servidor

universal, el cual agrupa la mayor parte de la funcionalidad necesaria en

una única plataforma de servidor, o bien un enfoque plugin de servidor

Web con herramientas de publicación tradicionales mejoradas con

interfaces API y otras herramientas. Independientemente del enfoque

elegido, no se espera que el camino evolutivo hacia la Web 2.0 se vea

alterado de forma importante por estas opciones.

Relaciones con otros conceptos

La web 1.0 principalmente trata lo que es el estado estático, es decir los

datos que se encuentran en esta no pueden cambiar, se encuentran

fijos, no varían, no se actualizan.

Comparación con la "Web 1.0"

De acuerdo con Tim O'Reilly, la Web 2.0 puede ser comparada con la Web

1.0 de esta manera:

Web 1.0 Web 2.0

DoubleClick Google AdSense

Ofoto Flickr

Terratv Youtube

Page 112: Avance - Proyecto Grado

MARCO LEGAL O NORMATIVO

Colombia cuenta con una legislación que regula y establece de manera

imperativa las políticas de uso y empleo del Software Libre en sus sistemas de

información, al interior de las entidades e instituciones del Estado, esta

legislación busca regular y obtener un control sobre los sistemas de

información evitando depender de proveedores únicos.

Este proyecto está amparado por el Decreto 1360 de 1989 el cual en su

artículo primero define como software libre al programa licenciado por su autor

para ofrecer a sus usuarios la libertad de ejecutar el programa para cualquier

propósito, estudiar la manera de opera el programa y mejora del programa al

igual que las distribuciones de las mismas. Todas estas definiciones implican

que la licencia del software no incluya ninguna restricción al número de

usuarios que pueden ejecutarlo.

Para la realización de este proyecto no se incurrirá en asuntos legales de

licenciamiento de software ya que todas las herramientas utilizadas están

regidas bajo licencias Open-Source.

.

Page 113: Avance - Proyecto Grado

ASPECTOS METODOLÓGICOS

ENFOQUE DE LA INVESTIGACIÓN

Este proyecto tiene un enfoque Empírico - Analítico ya que el aplicativo va de la

mano de la tecnología o grandes computadoras que procesan la información en

tiempos de respuesta más rápidos, logrando mostrar el conocimiento en un

desarrollo implementado, permitiéndose interpretar el uso de patrones como,

medios de información.

LÍNEA DE INVESTIGACIÓN / NÚCLEO TEMÁTICO DEL PROGRAMA

Línea de Investigación: Ingeniería del Software

Núcleo Temático: Desarrollo de Aplicaciones Web

VARIABLES

Variables Dependientes.

• Velocidad de respuesta en tiempo real.

• Velocidad de procesamiento de la información.

• Información actualizada y veraz.

Variable Independiente.

Page 114: Avance - Proyecto Grado

• Portal Web, que gestionara de forma ágil el proceso de

actualización del Banco de Datos de la Corporación, el cual

administra la información referente a los históricos de los

proyectos de grado y prácticas profesionales.

ALCANCES Y LIMITACIONES DEL PROYECTO

Alcances

La aplicación permite la inscripción de los proyecto de grado por parte de los

estudiantes de noveno a decimo semestre, de igual manera consultar todas las

asesorías realizadas a su proyecto, visualizar los reglamentos estipulados por

el programa al que pertenece, para su presentación y modificar su clave al

igual que todos los usuarios que intervienen en esta aplicación.

El Estudiante: Con respecto a la inscripción de proyectos tienen la facilidad de

inscribir sus proyectos de grado y perfiles para el desarrollo de la práctica

profesionales, consultar las asesorías de su proyecto de grado, los reglamentos

que hay que tener en cuenta para la presentación, artículos y documento RAE.

El Comité de Investigación: Grupo de usuarios finales que mediante esta

aplicación tienen la facilidad de consultar los proyectos inscritos por parte de

los estudiantes para aprobarlos, consultar todas las asesorías registradas por

los directores quienes realizan y consultar asesorías a los diferentes proyectos

y verificar los reglamentos.

El Director de Proyectos: Son otro grupo de usuarios finales que mediante esta

aplicación tienen la facilidad de consultar los proyectos asignados a el por parte

del Comité de Investigación, quien con anterioridad evaluó y aprobó los

proyectos inscritos por parte del estudiantado, consultar todas las asesorías

registradas a un grupo especifico de trabajo y verificar los reglamentos.

Page 115: Avance - Proyecto Grado

El Coordinador General: De las prácticas profesionales puede consultar los

perfiles inscritos por los estudiantes que aspiran a realizar la práctica

profesional, enviar la terna de estudiantes a las diferentes empresas que

solicitan vinculación, visualizar los datos de las prácticas que ingresan los jefes

inmediatos, vincular empresas nuevas, consultar las solicitudes de las

empresas que con anterioridad vincularon, realizar los seguimientos de las

prácticas que se hacen mes a mes y consultar las evaluaciones que se hicieron

a los practicantes.

El Jefe Inmediato: De las prácticas profesionales puede consultar la terna de

perfiles de estudiantes que aspiran a realizar la práctica profesional, enviada

con anterioridad por el Coordinador de Practicas, realizar los seguimientos de

las prácticas que se hacen mes a mes y consultar las evaluaciones que se

hicieron a los practicantes.

POBLACIÓN

La población sobre la cual se trabajará en la toma de información para la

realización del proyecto, son el administrador de la plataforma tecnológica de

CECAR, los decanos y profesores de las diferentes facultades de la CECAR,

ya que son ellos quienes conocen a fondo las problemáticas que se presentan

al momento de evaluar, aprobar y calificar los distintos proyectos de grado y

prácticas profesionales.

Cabe destacar que la población a la cual está dirigida la aplicación es la

Corporación Universitaria del Caribe - CECAR.

Page 116: Avance - Proyecto Grado

CRONOGRAMA DE ACTIVIDADES

ACTIVIDADES MESES (SEMANAS)

Junio Julio Agosto Septiembre Octubre Noviembre

Analizar el sistema actual

que maneja el programa de

ingeniería de sistemas,

enfatizando en su estructura

y funcionamiento.

* * * * * *

Establecer cuáles son los

requisitos del sistema para

dar una solución más

eficiente al problema.

* * * *

Diseñar una base de datos

para el almacenamiento

necesario de la información

referente a los procesos

que llevan a cabo los

proyectos de grado y

prácticas profesionales.

* * * *

Page 117: Avance - Proyecto Grado

Construir un modelo que

permita esbozar la solución

del problema y

comprenderla mejor previo

a la implementación.

Desarrollar e implementar la

aplicación Web, basada en

los requerimientos

obtenidos durante la fase de

análisis y en el modelo de

diseño construido.

Ejecutar cada una de las

pruebas necesarias para

lograr una aplicación

eficiente y confiable.

Page 118: Avance - Proyecto Grado

REFERENTES BIBLIOGRÁFICOS

COMITÉ DE INVESTIGACIÓN DE LA FACULTAD DE LA FACULTAD DE

INGERNIERIA DE CECAR, Documento Guía De Desarrollo Metodológico Para

Los Proyectos De Grado de la Facultad de Ingeniería de la Corporación

Universitaria Del Caribe - CECAR, Sincelejo, 2005.

COMITÉ DE INVESTIGACIÓN DE LA FACULTAD DE LA FACULTAD DE

INGERNIERIA DE CECAR, Documento de Opciones de Grado de la Facultad

de Ingeniería de la Corporación Universitaria Del Caribe – CECAR, Sincelejo,

(DOGFIC V 3.13). 2007.

McConnell, Steve. Desarrollo Y Gestión de Proyectos Informáticos. Madrid –

España: McGraw-Hill. Primera Edición.

Page 119: Avance - Proyecto Grado

RECURSOS

RECURSOS FÍSICOS

Hardware

Computador personal Pentium IV

Velocidad: 3.5 GHz

Memoria RAM DDR2: 1.5 GB

Disco Duro: 80 GB

Quemador LG de 32x

Tarjeta de red: Intel(R) PRO/100 VE Network Connection

Computador personal AMD Cemprom

Velocidad: 2.5 GHz

Memoria RAM DDR: 256 MB

Disco Duro: 40 GB

Quemador LG de 52x

Tarjeta de red: Adaptador Fast Ethernet compatible VIA

Impresoras

HP Deskjet 656 C

EPSON LX-300+

Memorias USB

2 Kingston de 2 GB

Page 120: Avance - Proyecto Grado

Papelaria e insumos

Resmas de papel tamaño carta

Lapiceros

Fotocopias

Grapadora

Tinta

Cinta para impresión

Grapas

CD’s

Diskettes

Page 121: Avance - Proyecto Grado

RECURSOS ECONÓMICOS

Numero RecursoCantidad/

unidadValor Unitario Subtotal

1Resmas de papel tamaño

carta de 500 hojas4 $ 8.500 $ 34.000

2 Lapiceros 4 2.000 8.000

3 Fotocopias 500 80 40.000

4 Grapadora 1 3.500 3.500

5 Grapas 1 caja 5.000 5.000

6 Cartucho de tinta negra 1 150.000 150.000

7 Cartucho de tinta a color 1 190.000 190.000

8Recargas cartucho de

tinta negra2 22.000 44.000

9 Cinta para impresión 3 8.000 24.000

10 CD’s 2 caja 10.000 20.000

11 Diskettes 1 caja 8.000 8.000

12 Transporte 300 1.000 30.000

13 Fluido eléctrico 810 KWH 239 193.590

14 Internet 20 horas 1.500 30.000

15 Asesorías 5 10.000 50.000

16 Llamadas telefónicas 110 min. 250 37.500

Total $ 867.590

Page 122: Avance - Proyecto Grado

RECURSOS HUMANOS

Estudiantes de ingeniería de sistemas

JOSÉ LUIS OVIEDO VARGAS.

C.C. 92’547.737 SINCELEJO – SUCRE.

ESTUDIANTE INGENIRIA DE SISTEMAS

MARIO RAFAEL GUTIÉRREZ MENESES.

C.C. 1`102.799.471 SINCELEJO – SUCRE.

ESTUDIANTE INGENIRIA DE SISTEMAS

LUIS MIGUEL GOMEZ ACUÑA

C.C. 1`102.799.471 SINCELEJO – SUCRE.

ESTUDIANTE INGENIRIA DE SISTEMAS

Director

OSCAR JOSE HERNANDEZ CASTILLO.

C.C. 92’539.305 SINCELEJO – SUCRE.

TÍTULO: INGENIERO SISTEMAS

CARGO: ADMINISTRADOR DE LA PLATAFORMA TECNOLOGICA.

Page 123: Avance - Proyecto Grado

Asesor(es):

NAMUEL SOLORZANO.

C.C. 92´555.606

TÍTULO: INGENIERO SISTEMAS

CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.

JHON JAIME MENDEZ LANDAETA

C.C.

TÍTULO: INGENIERO SISTEMAS

CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.

RAFAEL MERLANO

C.C

TITULO: INGENIERO INDUSTRIAL

CARGO: DIRECTOR DEL PROGRAMA DE INGENIRIA INDUSTRIAL