Consulta el material completo - E-campus :: FCA-UNAM

Anuncio
Módulo 5
Desarrollo de
Aplicaciones en Internet
5.1. Introducción y conceptos básicos
5.1.1 Definiciones
5.1.1.1 Aplicación
5.1.1.2 Tecnología
5.1.1.3 Internet
5.1.1.4 Página Web
5.1.1.5 Sitio Web
5.1.1.6 Portal
5.1.1.7 Dominio
5.1.1.8 Red Social
5.1.1.9 Blog
5.1.1.10 Wiki
5.1.1.11 Servidor Web
5.1.1.12 Cliente Web (navegador o bowser)
5.1.2 Protocolos
http (HyperText Transfer Protocol) y https
(Hyper Text Transfer Protocol Secure)
5.1.3 URI (Uniform Resource Identifier), URL (Uniform Resource
Locator) y URN (Uniform Resource Name)
5.1.4. Lenguajes de marcado de documentos y el estándar SGML
(Standard Generalized Markup Language)
5.1.5 Interfaz DOM (Document Object Model)
5.2 Tecnología de desarrollo para Internet
5.2.1 Tecnologías utilizadas en el cliente
5.2.1.1 HTML
5.2.1.2. DHTML
5.2.1.3. Javascript
5.2.1.4. Hojas de estilo en cascada (CSS)
5.2.2 Tecnologías utilizadas en el servidor
5.2.2.1 Patrón MVC (Modelo vista controlador)
5.2.2.2 Lenguages de programación y marcos de trabajo
Frame works
5.2.2.2.1 PHP y Cake (CakePHP)
5.2.2.2.2 Java, J2EE, strut, Hibernate o spring
5.2.2.2.3 C#, C++, VB, J#y, NET
5.2.2.2.4 Coldfusion
5.2.2.2.5 Ruby on Rails
5.2.2.3. Servidores
5. 2.2.3.1. Servidores Web
5.2.2.3.2. Servidores contenedores
5.2.3.3.3 Servidores aplicativos
5. 2.2.3.4. Manejadores de bases de datos
5.2.3 Tecnologías RIA
5.2.3.1 Concepto de RIA
5.2.3.2 Web 1.0 vs. Web 2.0
5.2.3.3. Programación Multimedia : Flash, Flex, SilverLight
5.2.3.4. XML (Extensible Markup Language)
5. 2.3.4.1 DTD (Document Type Definition)
5.2.3.4.2 XML Schema (XSDL)
5.2.3.4.3
¿Cómo
dar
Formatos
a
los
documentos XML?
5.2.3.4.3.1 Hojas de estilo en cascada
5.2.3.4.3.2
XSL
(Extensible
Stylesheet language)
5.2.3.5. AJAX (Asynchronous JavaScript and XML)
5.2.3.5.1. JSON (JavaScript Object Notation)
5.2.3.5.2. Prototype
5.3. Estudio Práctico para el desarrollo de una aplicación para
internet.
Objetivos particulares del módulo
Al finalizar el estudio del módulo el alumno será capaz de desarrollar una
aplicación para Internet de mediano alcance a partir del estudio de las
tecnologías más usadas en el mercado laboral: observando sus ventajas y
desventajas, arquitecturas, especificaciones, así como sus tendencias e
innovaciones.
Introducción al módulo
Las aplicaciones y los sistemas de información que dan soporte a las operaciones
sustantivas y a la toma de decisiones de las organizaciones, tienden cada día a ser
implementadas sobre una arquitectura basada en los servicios de Internet (Web,
correo electrónico, FTP). Es imperativo que el licenciado en Informática conozca las
tecnologías que existen en el mercado para apoyar el desarrollo de dichas
aplicaciones.
En este módulo el alumno aprenderá los conceptos básicos empleados en las
tecnologías para el desarrollo e implementación de las aplicaciones; el lugar que
ocupan en las arquitecturas más usadas y sus usos más frecuentes. Posteriormente,
hará un análisis de sus ventajas y desventajas con relación al rendimiento, soporte,
escalabilidad, actualidad, confiabilidad, rapidez de implementación.
La mayoría de las aplicaciones y sistemas de información (si no es que todas) tienen
como base para su funcionamiento la interacción con bases de datos. El alumno
conocerá cómo el detalle de hacer dicha interacción cuando se aborden las
tecnologías, arquitecturas y los RMDBS más usados.
Finalmente, en una actividad de reforzamiento, se pedirá al alumno que desarrolle
una pequeña aplicación que integre todos los conocimientos vistos en el módulo.
Desarrollo de contenido
5. Desarrollo de Aplicaciones en Internet
5.1. Introducción y conceptos básicos
Antes de comenzar es importante definir algunos conceptos que nos sirvan como
marco de referencia.
5.1.1.1 Aplicación
En informática una aplicación es un programa o conjunto de programas (sistemas
informáticos), con los cuales el usuario final interactúa; es decir, son aquellas
instrucciones que permiten la interacción entre el usuario y la computadora
facilitándole la realización de diversas actividades de forma automática. Una
aplicación puede desarrollarse en distintos lenguajes y en distintas plataformas y con
fines u objetivos específicos. Las aplicaciones necesitan de un sistema operativo
para poder funcionar. Existen varios tipos de aplicaciones: procesadores de texto,
bases de datos, hojas de cálculo, correo electrónico, etc.
5.1.1.2. Tecnología
Tecnología es el conjunto de saberes que permiten fabricar objetos y modificar el
medio ambiente, incluyendo las plantas y animales, para satisfacer las necesidades y
los deseos humanos. Es una palabra de origen griego, formada por tekne (arte,
técnica u oficio) y logos (conjunto de saberes). Aunque hay muchas tecnologías muy
diferentes entre sí, es frecuente usar el término en singular para referirse a una
cualquiera de ellas o al conjunto de todas1.
Pero para nuestros intereses hablemos de Tecnología Informática (TI), podemos
decir que es un conjunto de inventos, técnicas y conocimientos organizados que
se usan para realizar algún tipo de producto o servicio. La TI es aquella que se ocupa
del uso de computadoras y del software electrónico de convertir, de almacenar, de
1
Fuente: http://es.wikipedia.org/wiki/Tecnología [Consulta: abril 2 de 2008]
proteger, de procesar, de transmitir y de recuperar la información. Hay tecnologías
que sirven para desarrollar aplicaciones para Internet, como lenguajes de
programación, software especializado, técnicas de diseño, modelos de arquitectura y
marcos de trabajo.
5.1.1.3. Internet
“Internet es una red de redes de alcance mundial que utiliza el protocolo TCP/IP2
para las comunicaciones. Fue creada para facilitar la comunicación entre el gobierno
y los investigadores”.
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. Pero realmente su auge se alcanzo alrededor de 1990.
Para 2007, según las Estadísticas Mundiales Internet3, la red de redes cuenta con
la nada despreciable cantidad de 6,574,666,417 internautas, divididos de la siguiente
manera.
2
El nombre TCP/IP proviene de dos de los protocolos más importantes de la familia de protocolos
Internet: el Transmission Control Protocol (TCP) y el Internet Protocol (IP), José Luís Raya, TCP/IP
para Windows 2000 Server Colombia 2001, p. 59.
3
Fuente: http://www.exitoexportador.com/stats.htm [Consulta: abril 2 de 2008]
ESTADISTICAS MUNDIALES DEL INTERNET Y DE POBLACION
Regiones
Africa
Poblacion
( 2007 Est.)
%
Usuarios,
Crecimiento
% Población % Uso
Poblacion
dato
( 2000-2007
(Penetración) Mundial
Mundial más reciente
)
933,448,292
14.2 %
43,995,700
4.7 %
3.5 %
874.6 %
3,712,527,624
56.5 %
459,476,825
12.4 %
36.9 %
302.0 %
Europa
809,624,686
12.3 %
337,878,613
41.7 %
27.2 %
221.5 %
Oriente Medio
193,452,727
2.9 %
33,510,500
17.3 %
2.7 %
920.2 %
Norte America
334,538,018
5.1 %
234,788,864
70.2 %
18.9 %
117.2 %
Latinoamerica
/ Caribe
556,606,627
8.5 %
115,759,709
20.8 %
9.3 %
540.7 %
Oceania /
Australia
34,468,443
0.5 %
19,039,390
55.2 %
1.5 %
149.9 %
TOTAL
MUNDIAL
6,574,666,417
18.9 % 100.0 %
244.7 %
Asia
100.0 % 1,244,449,601
Cuadro 5.1 Distribución mundial de la población de internautas. Fuente:
http://www.exitoexportador.com/stats.htm [Consulta: abril 2 de 2008]
Como ya lo mencionamos anteriormente, gracias a Internet es posible se
comuniquen miles de máquinas de diferentes lugares del mundo, utilizando un el
protocolo TCP/IP, además garantiza que redes físicas heterogéneas funcionen como
una red lógica única de alcance mundial.
Internet proporciona la infraestructura necesaria para la comunicación e intercambio
de información, haciendo posible la existencia de muchos servicios, entre los que se
encuentran:







World Wide Web
Correo electrónico
Listas de distribución
Foros Web
Weblogs
FTP Transferencia de
archivos
Archie







Chats o IRC
Telnet
Gopher
Redes sociales
Wikis
Spaces
Transmisión de archivos
P2P y P2M
5.1.1.4. Página Web
Una página Web es un documento para el WWW (que intenta ser estandarizada por
el World Wide Web Consortium, también llamado W3C), normalmente en formato
HTML (que proviene del estándar SGML) o en formato XHTML (que proviene del
estándar XML), accesible mediante un navegador de Internet.
Las páginas Web pueden ser cargadas de un equipo local o remoto, llamado
Servidor Web, el cual servirá de HOST. El servidor Web puede restringir las páginas
a una red privada, por ejemplo, una Intranet o puede publicar las páginas en el World
Wide Web. Las páginas Web son solicitadas por los clientes y ser transferidas a
éstos por los servidores usando el Protocolo de Transferencia de Hipertexto o HTTP
(Hypertext Transfer Protocol). La acción de guardar una página Web en el Servidor
“host” se denomina “hosting”.
Las páginas Web pueden consistir de archivos de texto estático o de una serie de
archivos con código que instruya al servidor sobre cómo construir el HTML para cada
página que es solicitada, a esto se le conoce como página Web dinámica.
5.1.1.5. Sitio Web
Un sitio Web4, es una fuente de información que puede contener: textos, imágenes,
animaciones, videos, hiperligas, entre otras. Adaptada para la World Wide Web
(WWW), se accede a ellas mediante el "navegador", el "browser", "visualizador" o
"cliente" (Netscape, Internet Explorer, FireFox Mozilla, Ópera, Navigator, etc.) de
preferencia de cada uno de los usuarios. Puede contener “hiperenlaces”, “hiperligas”
o también conocidos como “link” convenientemente enlazadas por el contenido a
otras páginas Web dentro del mismo sitio o uno externo, constituyendo así la red de
redes.
4
No hay que confundir sitio Web con página Web; esta última es un sólo archivo HTML (o XHTML), y
forma parte de un sitio Web.
En general los sitios pueden ser de cuatro tipos: comercio, entretenimiento,
informativo y educativo. Un sitio Web puede ser desde muy simple (algunas páginas
estáticas con texto, imágenes, animaciones, etc.) hasta ya algo más complejo,
utilizando páginas dinámicas que muestran información actualizada obtenida de
alguna fuente (base de datos); mostrando imágenes, cuadros estadísticos, consultas
de diversos tipos, etc.
La forma de conectarnos a un sitio Web es con una dirección o nombre (URL), el
cual apunta a un servidor, a través de nuestra computadora que solicita ver el
contenido, el servidor envía los datos y el usuario esta listo para navegar.
Esta información se presentaba generalmente en formato HTML, más recientemente
es presentada en su mayoría por el XHTML, el cual ha cambiado en cuanto sintaxis y
estándares (el código es mucho más limpio).
Los sitios Web5 pueden ser visualizados desde un abanico de dispositivos con
disponibilidad de Internet como computadoras personales, computadoras portátiles,
PDAs, dispositivos de video juegos portátiles (consolas portátiles) y teléfonos
móviles.
5.1.1.6. Portal
Portal es un término, sinónimo de puente, para referirse a un Sitio Web que sirve o
pretende servir como un sitio principal de partida para las gente que se conectan a
través de el, ofreciéndole una gama muy amplia de posibilidades y temas. Son sitios
que los usuarios tienden a visitar como sitios ancla. Los portales tienen gran
reconocimiento en Internet por el poder de influencia que tienen sobre grandes
masas humanas. Un portal se considera un sitio robusto. Entonces podemos definir a
un portal como una plataforma de despegue para la navegación en la Web. Existen
5
Para publicar un sitio Web, se requiere del servicio de Web hosting que le ofrecen los Proveedores
de Presencia Internet.
los generales y los especializados o de lugar. Algunos portales6 generales muy
conocidos son: Yahoo, Netscape, Lycos, CNET, la red de Microsoft, y América en
línea (AOL).
Los servicios típicos ofrecidos por los portales incluyen un directorio de sitios Web,
un buscador, noticias, encuestas, chats, foros, blogs, correo electrónico, información
del tiempo, e-mail, cotizaciones de acciones, mapa, y a veces de un foro para la
comunidad.
5.1.1.7. Dominio
El nombre del dominio es la dirección en Internet. Esta formado por 3 campos: el
subdominio, el dominio y la extensión, separados por un punto. El subdominio nos
muestra el protocolo que estamos usando, el dominio es la marca identificativa de
esa dirección y por último la extensión nos puede mostrar localización, función o tipo,
por ejemplo: .com (comercial), .net (network) , .org (organización) y .edu (educación)
Un cuarto campo es la extensión que se pueden ubicar por el país de origen como:
.es España, .mx México, .arg Argentina, etc
También hay subdominios y es algo que se escribe antes del nombre del dominio y
podría funcionar para indicar una parte muy especial de un site en Internet como el
apartado de "Foros" de casadomo.com: http://foro.casadomo.com.
5.1.1.8. Red Social
Son sitios basados en la web que permiten a los usuarios compartir contenido,
interactuar y crear comunidades sobre intereses similares.
5.1.1.9. Blog
Este término inglés blog o weblog proviene de las palabras web y log ('log' en inglés
= diario). Aplicación web destinada a la publicación periódica de noticias, editoriales,
6
“Excite” está entre los primeros portales que ofrecen a usuarios la capacidad de crear un portal que
se personalice de acuerdo a intereses individuales de cada visitante.
comentarios.
Bitácora
de
internet
periódicamente
actualizada
que
recopila
cronológicamente textos o artículos de uno o varios autores, apareciendo primero el
más reciente, donde el autor conserva siempre la libertad de dejar publicado lo que
crea pertinente
5.1.1.10. Wiki
Es un sitio web en el que se permite a los usuarios editar libremente los contenidos.
Es un término tomado de la lengua hawaiana que significa “rápido”.
5.1.1.11. Servidor Web
Un servicio Web (Web service), es un recurso de software que se ejecuta en un
servidor Web remoto, en respuesta a la solicitud hecha por un cliente -a través de un
navegador-. Los servicios Web son equivalentes a cualquier aplicación que corre en
un equipo local, sólo que la información necesaria para llevar a cabo una tarea
específica es enviada al servidor y el resultado de esa tarea, devuelto al usuario,
ambos en la forma de contenido Web.
Es una colección de protocolos y estándares que sirven para intercambiar datos
entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los
servicios Web para intercambiar datos en redes de computadoras como Internet.
5.1.1.12. Cliente Web
Un cliente Web es una interfaz, conocida como navegador o browser la cual se utiliza
para acceder o comunicarse con ciertos programas, alojados en un servidor remoto.
Se requiere específicamente una conexión a otro programa al que se denomina
servidor y que suele estar en otra máquina. “…Ya7 no se utilizan por criterios de
costo, sino para obtener datos externos (por ejemplo páginas Web, información
bursátil o bases de datos), interactuar con otros usuarios a través de un gestor
central, compartir información con otros usuarios (servidores de archivos y otras
7
Fuente: http://es.wikipedia.org/wiki/Cliente [Consultado: abril 8 de 2008]
aplicaciones Groupware) o utilizar recursos de los que no se dispone en la máquina
local (por ejemplo para la impresión)”.
5.1.2
Protocolos http (HyperText Transfer Protocol) y https (Hyper Text
Transfer Protocol Secure)
¿Cómo implementar nuestras aplicaciones Web? Primero, hay que instalar un
servidor Web, que es un programa que implementa el protocolo HTTP (HyperText
Transfer Protocol). Este protocolo está diseñado para transferir hipertextos, páginas
Web o páginas HTML: textos complejos con enlaces, figuras, formularios, botones y
objetos incrustados como animaciones o reproductores de música.
El que HTTP y HTML estén íntimamente ligados no significa que sean lo mismo.
HTML es un lenguaje de marcado y HTTP es un protocolo, los dos para
hipertexto.
El protocolo de transferencia de hipertexto: (HTTP, HyperText Transfer Protocol) es
el protocolo usado en cada transacción de la Web (WWW). HTTP fue desarrollado
por el consorcio W3C y la IETF, colaboración que culminó en 1999 con la publicación
de una serie de RFC, siendo el más importante de ellos el RFC 2616, que especifica
la versión 1.1.
HTTP define la sintaxis y la semántica que utilizan los elementos software de la
arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo
orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y
un servidor.
Hypertext Transfer Protocol Secure: (Protocolo seguro de transferencia de
hipertexto), es un protocolo de red basado en el protocolo HTTP, destinado a la
transferencia segura de datos de hipertexto, es decir, es la versión segura de HTTP.
El sistema HTTPS utiliza un cifrado basado en las Secure Socket Layers (SSL) para
crear un canal cifrado (cuyo nivel de cifrado depende del servidor remoto y del
navegador utilizado por el cliente) más apropiado para el tráfico de información
sensible que el protocolo HTTP. Usa el puerto 443.
5.1.3. URI (Uniform Resource Identifier), URL (Uniform Resource Locator) y
URN (Uniform Resource Name)
Uniform Resource Identifier, identificador uniforme de recurso, definido en RFC 2396
(Uniform Resource Identifiers: Generic Syntax). Un URI es una cadena corta de
caracteres que identifica inequívocamente un recurso (servicio, página, documento,
dirección de correo electrónico, enciclopedia, etc.). Normalmente estos recursos son
accesibles en una red o sistema.
URL significa Uniform Resource Locator, es decir, localizador uniforme de recurso.
Es una secuencia de caracteres, de acuerdo a un formato estándar, que se usa para
nombrar recursos, como documentos e imágenes en Internet, por su localización.
Los URL fueron una innovación fundamental en la historia de la Internet. Fueron
usadas por primera vez por Tim Berners-Lee en 1991, para permitir a los autores de
documentos establecer hiperenlaces en la World Wide Web (WWW o Web). Desde
1994, en los estándares de la Internet, el concepto de URL ha sido incorporado
dentro del más general de URI (Uniform Resource Identifier - Identificador Uniforme
de Recurso), pero el término URL aún se utiliza ampliamente.
URN es un acrónimo inglés de Uniform Resource Name, al español "Nombre de
recurso uniforme". Un URN trabaja de manera similar a un URL (Localizadores
Universales de Recursos), estos identifican recursos en la web, pero a diferencia de
un URN, no indica exactamente donde se encuentra ese objeto. Básicamente un
URI(Uniform Resource Identifier) = URL + URN
5.1.4. Lenguajes de marcado de documentos y el estándar SGML (Standard
Generalized Markup Language)
Lenguaje de Marcado: Un conjunto de símbolos y reglas que se usan para
especificar el formato y delimitar el contenido de un documento dado, que después
será interpretado por un programa específico. Por ejemplo, el lenguaje HTML es
usado para especificar el formato de las páginas web que serán presentadas en un
explorador.
SGML: SGML son las siglas de Standard Generalized Markup Language o "Lenguaje
de Marcado Generalizado". Consiste en un sistema para la organización y etiquetado
de documentos. La Organización Internacional de Estándares (ISO) normalizó este
lenguaje en 1986.
El lenguaje SGML sirve para especificar las reglas de etiquetado de documentos y no
impone en sí ningún conjunto de etiquetas en especial.
5.1.5 Interfaz DOM (Document Object Model)
Modelo de objetos en documentos. Interface independiente de la plataforma y del
lenguaje que permite que los programas y scripts tengan acceso dinámicamente y
actualicen el contenido, la estructura y estilo de los documentos.
5.2 Tecnología de desarrollo para Internet
Es momento de estudiar las diversas tecnologías que existen para el desarrollo de
aplicaciones para Internet. En este punto se desarrollarán las más importantes.
5.2.1 Tecnologías utilizadas en el cliente
Generalmente se separan en 2 tipos las tecnologías cuando se habla de Web, el
cliente y el servidor. Cuando hablamos de cliente, nos referimos a aquellas
tecnologías que corren a través del navegador (por lo general). La ubicación de los
datos o de las aplicaciones es totalmente transparente para el cliente.
El cliente inicia un requerimiento de servicio. Este requerimiento puede llegar a
convertirse en variados requerimientos de trabajo a través de redes LAN o WAN.
Ejemplo: El navegador es una especie de aplicación conocida como “cliente”, el
cual se encarga de interpretar las etiquetas HTML, para mostrarlas al usuario
solicitante.
Figura 5.1 Aplicaciones de la WEB hacia el cliente
8
IBM define al modelo Cliente/Servidor 9
Es la tecnología que proporciona al usuario final el acceso transparente a las
aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de
trabajo y/o, a través de la organización, en múltiples plataformas. El modelo
8
Fuente:
http://www.adelat.org/media/docum/nuke_publico/lenguajes_del_lado_servidor_o_cliente.html
[Consultado: abril 8 de 2008]
9
Fuente: http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5038/defi.HTM [Consulta: abril 3 de
2008]
soporta un medio ambiente distribuido en el cual los requerimientos de servicio
hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo
realizado por otros computadores llamados servidores".
5.2.1.1 HTML
HTML acrónimo de HyperText Markup Language, (Lenguaje de Marcado de
HiperTexto). Es un lenguaje diseñado para estructurar textos y presentarlos en
forma de hipertexto. Para realizar una página Web se puede hacer de diferentes
formas, desde convertirse en un experto y teclear cada una de las etiquetas desde el
Block de Notas (NOTEPAD) de Windows, debido a que una página Web es
simplemente un texto al que se le añaden etiquetas con el objeto de indicar
diferentes propiedades o características, o bien utilizar un editor para realizar páginas
Web. Dichos editores permiten por medio de menús e iconos incluir etiquetas de
HTML sin necesidad de teclearlas.
Son tres las etiquetas o tags que describen la estructura básica de un documento
HTML. Estas tags no afectan la apariencia del documento y solo interpretan y filtran
los archivos HTML. Todas las etiquetas necesitan cerrarse con línea diagonal ("/").
Como se puede ver en el ejemplo siguiente.
La estructura queda de esta manera
<html>
<head>
<title> titulo del sitio </title>
</head>
<body>
Contenido del documento HTML
</body>
</html>
1. <HTML>: Limita el documento, se escriben al inicio y al final e indican que se
encuentra escrito en este lenguaje.
2. <HEAD>: (cabeza) Especifica el prólogo del resto del archivo. Define la cabecera
del documento HTML, esta cabecera suele contener información sobre el
documento que no se muestra directamente al usuario. Dentro de la etiquete
<head> podemos encontrar a su ves la etiqueta.
<title>: Define el título de la página. Por lo general, el título aparece en la
barra de título, arriba de la ventana, también es con el nombre que se
guarda en los favoritos. Solo puede haber un título por documento,
preferiblemente corto pero significativo, y no caben otras tags dentro de
él.
3. <BODY> </BODY>: Dentro de este par de etiquetas se coloca el contenido o
cuerpo del documento que se desea se visualice a través del navegador, dentro
de esta etiqueta pueden definirse propiedades comunes de toda la página, como
color de fondo, alineación y márgenes. Dentro de ella se insertan todas las
etiquetas necesarias para darle formato al contenido (texto, imágenes,
animaciones, etc.) de la hoja HTML.
5.2.1.2 DHTML
Imaginemos por un momento que tuviéramos entre manos un gran proyecto: La
creación masiva de páginas, como puede ser un periódico, donde diariamente hay
que cambiar los contenidos por completo; o una enciclopedia online, con miles de
páginas y referencias, por poner dos ejemplos. Si utilizáramos únicamente HTML
necesitaríamos un regimiento de programadores Web para poder llevar a cabo el
trabajo de crear tantas páginas y su actualización.
Asimismo, si quisiéramos desarrollar una aplicación en Web donde el usuario tuviese
que interaccionar con la página; o una aplicación que ofreciese algún servicio, como
un buscador o un gestor de correo a través de la Web, también nos veríamos muy
limitados con el HTML.
Además, también estamos muy limitados con el HTML en el momento de crear
efectos en las páginas, animaciones que llamen un poco la atención del usuario y
que permitan hacer que las mismas sean más divertidas.
DHTML es lo que hace posible crear páginas Web que salven todas las limitaciones
del HTML como las comentadas anteriormente. Como vemos, el DHTML es muy
amplio y engloba muchas técnicas que se pueden realizar con multitud de lenguajes
de programación y programas distintos.
Vamos a hacer una clasificación de DHTML para acotar sus usos.
DHTML de cliente
Por un lado tenemos el DHTML que se desarrolla en el ámbito de una página Web,
cuando ésta se
ve en la pantalla del equipo del usuario, es decir, en los
navegadores. En estos casos, para realizar cualquier tipo de efecto o interactividad
en la página tenemos como recurso el navegador, por eso se llama “de cliente”.
La programación en el cliente sirve para muchas cosas, ejemplo de ello son los
efectos diversos en las páginas, sonidos, videos, menús interactivos, control y
respuesta a las acciones de un usuario en la página, control sobre los formularios.
Para hacerlas podemos utilizar diversos lenguajes de programación como JavaScript
y VBScript, o incluso podemos insertar aquí programas como Flash.
Pero no basta poder programar del lado del cliente, puesto que estos lenguajes no
permiten el desarrollo de cualquier proyecto en Internet, debido a que al ser
ejecutados en el navegador del cliente no tienen acceso a todos los recursos del
sistema del usuario (para evitar agujeros de seguridad) ni a los recursos del servidor
en los que están alojadas las páginas. Esta limitación, añadida a la ya comentada de
su dependencia del navegador, los hace insuficientes para desarrollos avanzados,
siendo más bien un complemento de programación que el núcleo de verdaderas
aplicaciones en el Web.
DHTML de servidor
Por otro lado, existen una serie de lenguajes que se basan en el servidor para
ejecutar sus scripts, al igual que la programación del cliente se basa en el navegador.
Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los
scripts y genera una página resultado, que envía al cliente. La página resultado
contiene únicamente el código HTML, por lo que puede ser interpretada por cualquier
navegador sin lugar a errores, independientemente de su versión.
Esta independencia del navegador ya es una ventaja significativa con respecto a la
programación en el cliente, pero lo es aún más porque contamos con todos los
recursos del servidor donde están alojadas las páginas. Estos recursos, como
gestores de bases de datos, servidores de correo o el propio sistema de archivos del
servidor, son los que nos van a permitir construir todo tipo de aplicaciones.
Como ventajas adicionales se puede destacar que el código de las páginas con los
scripts nunca llega al cliente, recordamos que al navegador sólo le llega HTML, y
esto implica que nuestros visitantes nunca van a poder acceder al corazón de las
aplicaciones que hayamos desarrollado, es decir, a los scripts del lado del servidor.
Hay muchos lenguajes del lado del servidor que podemos usar: ASP, desarrollado
por Microsoft, PHP de código libre, JSP para programar en Java, o alguna otra
interfaz como CGI, que se desarrolla en lenguajes como C o Perl.
5.2.1.3 Javascript
JavaScript es un lenguaje interpretado, es decir, que no requiere compilación, se
utiliza principalmente en páginas Web, con una sintaxis semejante a los lenguajes
Java y C.
Al contrario que Java, JavaScript no es un lenguaje orientado a objetos propiamente
dicho, ya que no dispone de Herencia; es más bien un lenguaje basado en
prototipos, ya que las nuevas clases se generan clonando las clases base
(prototipos) y extendiendo su funcionalidad.
Todos los navegadores 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 (para evitar incompatibilidades, el World Wide Web
Consortium diseñó el estándar Document Object Model).
Podemos usar JavaScript para programar todas las validaciones que requiere un
formulario hecho con HTML, como evitar el ingreso de caracteres no válidos, campos
no llenados.
5.2.1.4. Hojas de estilo en cascada (CSS Cascading Style Sheets )
Son un lenguaje formal usado para definir la presentación de un documento
estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World
Wide Web Consortium) es el encargado de formular la especificación de las hojas de
estilo que servirán de estándar para los agentes de usuario o navegadores.
5.2.2 Tecnologías utilizadas en el servidor
En una red de computadoras, un servidor es un equipo que pone diversos recursos a
disposición de otras computadoras conocidas como “los clientes”. Estos recursos
pueden ser: acceso a bases de datos, a diversas aplicaciones, impresoras, fax,
procesamiento de imágenes, etc.
En Internet, este término se utiliza a menudo para designar los sistemas que
proporcionan información a los usuarios de la red. Los servidores pueden estar
conectados a los clientes a través de redes LANs o WANs y son los encargados de
alojar los sitios Web junto con todas sus aplicaciones.
5.2.2.1 Patrón MVC (Modelo vista controlador)
Es un patrón de arquitectura de software que separa los datos de una aplicación, la
interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón
MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y
el código que provee de datos dinámicos a la página. El modelo es el Sistema de
Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable
de recibir los eventos de entrada desde la vista.
5.2.2.2 Lenguages de programación y marcos de trabajo . Frame
works
Lenguaje de programación: Conjunto de reglas semánticas y sintácticas utilizadas
para dar instrucciones a un ordenador.
Framework: estructura de soporte definida, mediante la cual otro proyecto de
software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de
programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a
desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las
entidades del dominio. Provee una estructura y una metodología de trabajo la cual
extiende o utiliza las aplicaciones del dominio.
5.2.2.2.1 PHP y Cake (CakePHP)
Framework de desarrollo de aplicaciones web escrito en PHP, facilita al usuario la
interacción con la base de datos mediante el uso de ActiveRecord. Además hace uso
del patrón Modelo Vista Controlador.
PHP es un lenguaje de programación interpretado, usado para la creación de
aplicaciones para servidores o para la creación de contenido dinámico para sitios
Web. Últimamente también para la creación de otro tipo de programas incluyendo
aplicaciones con interfaz gráfica usando las librerías Qt o GTK+.
El fácil uso y la similitud con los lenguajes más comunes de programación
estructurada, como C y Perl, permiten a la mayoría de los programadores
experimentados crear aplicaciones complejas con una curva de aprendizaje muy
suave. También les permite involucrarse con aplicaciones de contenido dinámico sin
tener que aprender todo un nuevo grupo de funciones y prácticas.
Debido al diseño de PHP, también es posible crear aplicaciones con una Interfaz
Gráfica para el Usuario (GUI), 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, esta versión de PHP se llama PHP Command Line Interface (CLI).
Su interpretación y ejecución se da en el servidor Web, en el cual se encuentra
almacenado el script y el cliente sólo recibe el resultado de la ejecución. Cuando el
cliente hace una petición al servidor para que le envíe una página Web, generada por
un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script
solicitado que generará el contenido de manera dinámica, pudiendo modificar el
contenido por enviar, y regresa el resultado al servidor, el cual se encarga de
regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF,
Flash, así como imágenes en diferentes formatos, entre otras cosas.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como
MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite;
lo cual permite la creación de Aplicaciones Web muy robustas.
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.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que
utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Adobe (antes
Macromedia), a JSP/Java de Sun Microsystems, y al famoso CGI/Perl.
5.2.2.2.2
Java, J2EE, struts, Hibernate o spring
Java: lenguaje multiplataforma para el desarrollo de software creada por Sun
Microsystems, ampliamente extendida hoy en día, que otorga independencia de
plataforma al software creado en ella y lo provee de una gran cantidad de APIs
estandarizados.
J2EE Define un estándar para el desarrollo de aplicaciones empresariales multicapa
diseñado por Sun Microsystems. J2EE simplifica las aplicaciones empresariales
basándolas en componentes modulares y estandarizados, proveyendo un completo
conjunto de servicios a estos componentes, y manejando muchos de las funciones
de la aplicación de forma automática, sin necesidad de una programación compleja.
Java Platform Enterprise Edition o Java EE (anteriormente conocido como Java 2
Platform Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de
programación para desarrollar y ejecutar software de aplicaciones en Java con
arquitectura de n niveles distribuidos, basándose ampliamente en componentes de
software modulares ejecutándose sobre un servidor de aplicaciones.
Esta tecnología soporta una gran variedad de tipos de aplicaciones, desde
aplicaciones Web de gran escala, hasta pequeñas aplicaciones cliente-servidor. El
objetivo principal de la tecnología J2EE es crear un simple modelo de desarrollo para
aplicaciones empresariales utilizando componentes basados en el modelo de
aplicación. En este modelo dichos elementos utilizan servicios proporcionados por el
contenedor, que de otro modo tendrían que estar incorporados en el código de la
aplicación. Pero observa que esto podría no ser lo ideal para todos los escenarios:
por ejemplo, una pequeña aplicación se cubriría mejor utilizando una solución de la
tecnología Java de peso ligero utilizando Servlets y JSPs en lugar de toda la
arquitectura J2EE.
Strut: es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el
patrón MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Struts se
desarrollaba como parte del proyecto Jakarta de la Apache Software Foundation,
pero actualmente es un proyecto independiente conocido como Apache Struts. Struts
permite además reducir el tiempo de desarrollo.
Hibernate: es una herramienta de Mapeo objeto-relacional para la plataforma Java
(y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo
de atributos entre una base de datos relacional tradicional y el modelo de objetos de
una aplicación, mediante archivos declarativos (XML) que permiten establecer estas
relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia
GNU LGPL.
5.2.2.2.3 C#, C++, VB, J#y, NET
C#. Lenguaje de programación diseñado por Microsoft en 2001 como parte de
su plataforma .NET. Combina el lenguaje de bajo nivel de C y la velocidad de
la programación de alto nivel de Visual Basic.
C++. Lenguaje de programación diseñado a mitad de los años 80 como
extensión del lenguaje C. Está considerado como el lenguaje más potente ya
que permite trabajar tanto a alto como a bajo nivel, aunque no está casi nada
automatizado, por lo que hay que hacerlo casi todo manualmente, como en C.
Visual Basic es un lenguaje de programación desarrollado por Alan Cooper
para Microsoft. El lenguaje de programación es un dialecto de BASIC, con
importantes añadidos. Constituye un IDE (entorno de desarrollo integrado o en
inglés Integrated Development Enviroment) que ha sido empaquetado como
un programa de aplicación, es decir, consiste en un editor de código
(programa donde se escribe el código fuente), un depurador (programa que
corrige errores en el código fuente para que pueda ser bien compilado), un
compilador (programa que traduce el código fuente a lenguaje de máquina), y
un constructor de interfaz gráfica o GUI (es una forma de programar en la que
no es necesario escribir el código para la parte gráfica del programa, sino que
se puede hacer de forma visual).
J#. lenguaje transicional para programadores del lenguaje de programación
Java y del lenguaje J++ de Microsoft, creado con la intención de que ambos
puedan usar sus conocimientos actuales para crear aplicaciones en la
plataforma .NET de Microsoft.
.NET. es un proyecto de Microsoft para crear una nueva plataforma de
desarrollo de software con énfasis en transparencia de redes, con
independencia de plataforma de hardware y que permita un rápido desarrollo
de aplicaciones.
5.2.2.2.4 Coldfusion
Es un lenguaje de script o lenguaje de programación Web que se ejecuta en un
servidor y devuelve una respuesta a un cliente en formato HTML.
Cold Fusion10 es una interfaz creada por Allaire que sirve para conectarse a bases de
datos desde el Web, de esta manera es posible que se distribuya información desde
Internet o una Intranet. Es una potente herramienta para realizar las funciones de
acceso a la información alojada en bases de datos, utilización de programación
personalizada, y presentación de la información utilizando formatos muy avanzados.
Cold Fusion11 centra su potencialidad en la confiabilidad y el control del manejo de
datos. Reconoce la complejidad del manejo e interacción de escritos CGI,
ofreciendo una potente seguridad, veloz carga de datos, procesamiento rápido de
escritos CGI que posibilita el cumplimiento de tareas de entrada o devolución de
datos.
Entre las funciones de Cold Fusion están:

Sirve a cualquier requisición de datos una vez cuente con la instalación y
configuración de las fuentes de datos ODBC de 32-bits.

Detecta errores producidos por la mala configuración o por el registro
completo de la bitácora del servidor SQL.

Funciona correctamente en una máquina remota. Se ejecuta sin problemas
en el Microsoft Internet Information Server, aún teniendo gran cantidad de
10
http://www.adobe.com/products/coldfusion/
Fuente: http://www.uca.edu.sv/investigacion/bdweb/reportes/coldfusion.html [Consulta: abril 7 de
2008]
11
solicitudes. Gracias a ello brinda un correcto funcionamiento tanto en
Internet como en Intranets.

Provee de ayuda para la configuración que permita generar páginas HTML
en forma dinámica.

Crea estructuras condicionales dinámicamente para personalizar la solicitud
de datos y el envío de los mismos hacia el cliente. Así mismo, diseña
cadenas de datos para crear dinámicamente menús desplegables y para
llenar listas de selección y listas de documentos.
12
Cómo funciona Cold Fusion
Una vez se ha realizado la instalación de este paquete, se pueden realizar
requisiciones a través de un URL, las cuales son enviadas al servidor Web, y éste a
su vez la hace a la interfaz de Cold Fusion, la que se conecta a una fuente de datos
ODBC, a la cual solicita los datos que requiere extraer de la base de datos.
Como puede verse, Cold Fusion utiliza fuentes de datos ODBC, de las que incluye
una versión dentro del software de instalación, para poder manipular la información
dentro de las bases de datos.
Una vez se ha obtenido la información que se ha solicitado, la interfaz envía los
datos hacia el Servidor Web y éste al browser, en donde los mismos son
desplegados gráficamente.
En la siguiente figura se muestra el proceso que sigue Cold Fusion al momento de
recibir y responder a una requisición.
12
ídem
Arquitectura de Cold Fusion para acceder bases de datos en el Web.
Análisis de integración: servidores Web y manejadores de bases de datos
5.2.2.2.4 Ruby on Rails
Ruby on Rails, también conocido como RoR o Rails es un framework de
aplicaciones Web de código abierto escrito en el lenguaje de programación Ruby,
siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC). Trata de
combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real
escribiendo menos código que con otros frameworks y con un mínimo de
configuración. El lenguaje de programación Ruby permite la metaprogramación, de la
cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios
encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato
oficial de paquete y canal de distribución de librerías y aplicaciones Ruby.
Ruby es un lenguaje de programación reflexivo y orientado a objetos creado por el
programador japonés Yukihiro "Matz" Matsumoto en 1993. Combina una sintaxis
inspirada en Python, Perl con características de programación orientada a objetos
similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de
programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación
interpretado en una sola pasada y su implementación oficial es distribuida bajo una
licencia de software libre.
Goza de gran popularidad para el desarrollo de aplicaciones de tipo Web 2.0 puesto
que automatiza las tareas más comunes y permite ciclos cortos para el desarrollo de
prototipos.
5.2.2.3. Servidores
5. 2.2.3.1. Servidores Web
5.3.1. Servidores Web
Un servidor Web, es un programa que implementa el protocolo HTTP (HyperText
Transfer Protocol).
Cabe mencionar que la palabra servidor identifica tanto al programa como a la
máquina en la que dicho programa se ejecuta. Existe, por tanto, cierta ambigüedad
en el término, aunque no será difícil diferenciar a cuál de los dos nos referimos en
cada caso.
Un servidor Web se encarga de mantenerse a la espera de peticiones HTTP llevada
a cabo por un cliente HTTP (nuestro navegador). El navegador realiza una petición al
servidor y éste le responde con el contenido que el cliente solicita. El servidor
responde enviando el código HTML de la página; el cliente, una vez recibido el
código, lo interpreta y lo muestra en pantalla. 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 sólo se limita a transferir el código de la
página sin llevar a cabo ninguna interpretación de la misma.
Sobre el servicio Web clásico podemos montar aplicaciones Web, que son
fragmentos 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). Normalmente, los navegadores permiten ejecutar
aplicaciones escritas en lenguaje JavaScript y Java, aunque pueden añadirse
más lenguajes mediante el uso de plug-in.

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 suelen ser la opción por la que se opta en la mayoría
de las ocasiones 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 adicional, 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 de los servidores Web más usados son:
IIS
Apache + Tomcat
Apache
Sun Java System (antes iPlanet
y Sun One)
 Cherokee
5.2.2.3.2. Servidores contenedores
Es la implementación que hace cumplimiento del contrato de componentes web de la
arquitectura J2EE. Este contrato especifica un entorno de ejecución para
componentes web que incluye seguridad, concurrencia, gestión del ciclo de vida,
procesamiento de transacciones, despliegue y otros servicios. Un contenedor web
suministra los mismos servicios que el contenedor de JSP así como también una
vista federada de las APIs de la plataforma J2EE.
5.2.3.3.3 Servidores aplicativos
Se denomina servidor de aplicaciones a un servidor en una red de computadoras que
ejecuta ciertas aplicaciones y proporciona servicios de aplicación a las computadoras
cliente. Un servidor de aplicaciones generalmente gestiona la mayor parte (o la
totalidad) de las funciones de lógica de negocio y de acceso a los datos de la
aplicación. Los principales beneficios de la aplicación de la tecnología de servidores
de aplicación son la centralización y la disminución de la complejidad en el desarrollo
de aplicaciones. Si bien el término es aplicable a todas las plataformas de software,
hoy en día el término servidor de aplicaciones se ha convertido en sinónimo de la
plataforma J2EE de Sun Microsystems.
Los servidores de aplicación típicamente incluyen también un middleware (o software
de conectividad) que les permite intercomunicarse con variados servicios, para
efectos de confiabilidad, seguridad, no-repudio. Los servidores de aplicación también
nos brindan a los desarrolladores una Interfaz para Programación de Aplicaciones
(API), de tal manera que no tengamos que preocuparnos por el sistema operativo o
por la gran cantidad de interfaces requeridas en una aplicación Web moderna.
Los servidores de aplicación también brindan soporte a una gran variedad de
estándares, tales como HTML, XML, IIOP, JDBC, SSL, lo cual permite su
funcionamiento en ambientes Web además de la conexión a una gran variedad de
fuentes de datos, sistemas y dispositivos.
5.2.2.3.4. Manejadores de bases de datos
Un sistema manejador de bases de datos es la parte más importante del software de
un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de
software interrelacionadas, cada una de las cuales es responsable de alguna tarea
específica.
Las funciones principales de un DBMS son:

Crear y organizar la base de datos.

Establecer y mantener las trayectorias de acceso a la base de datos de tal
forma que los datos puedan ser accedidos rápidamente.

Manejar los datos de acuerdo a las peticiones de los usuarios.

Registrar el uso de las bases de datos.

Interacción con el manejador de archivos a través de las sentencias en
DML al comando del sistema de archivos. Así el Manejador de base de
datos es el responsable del verdadero almacenamiento de los datos.

Respaldo y recuperación que consiste en contar con mecanismos
implantados que permitan la recuperación fácilmente de los datos en caso
de ocurrir fallas en el sistema de base de datos.

Control de concurrencia que se basa en controlar la interacción entre los
usuarios concurrentes para no afectar la inconsistencia de los datos.

Seguridad e integridad que consiste en contar con mecanismos que
permitan el control de la consistencia de los datos evitando que estos se
vean perjudicados por cambios no autorizados o previstos.
Para las aplicaciones que se desarrollen en este diplomado podemos utilizar
cualquier DBMS y más concretamente RDBMS. Como vimos en el módulo tres de
bases de datos, existen muchos manejadores que podemos instalar sin ningún
problema en nuestras computadoras como MySQL o PostgreSQL.
5.2.3
Tecnologías RIA
5.2.3.1 Concepto de RIA
¿Qué es RIA? (Rich Internet Aplications): tipo de aplicaciones con más ventajas que
las tradicionales aplicaciones Web. Esta surge como una combinación de las
ventajas que ofrecen las aplicaciones Web y las aplicaciones tradicionales.
En los entornos RIA, no se producen recargas de página, ya que desde el principio
se carga toda la aplicación, y sólo se produce comunicación con el servidor cuando
se necesitan datos externos como datos de una Base de Datos o de otros ficheros
externos.
5.2.3.2 Web 1.0 vs. Web 2.0
Web 1.0 Potenciación de presencia informativa y accesible a través de la Red.
Internet se convierte en un servidor de conocimiento estático de acceso limitado por
razones técnicas, económicas y geográficas. Páginas creadas a partir del código
HTML difícilmente actualizables y con nula interacción del usuario en las mismas.
Mientras que Web 2.0 es la segunda generación de Web basada en comunidades de
usuarios y una gama especial de servicios, que fomentan la colaboración y el
intercambio ágil de información entre los usuarios. interacción del usuario con la Red
pudiendo él mismo incluir su propia información en el sistema, creando o no Web
interactivas y visuales.
5.2.3.3. Programación multimedia, Flash, Flex, SilverLight.
Programación multimedia: se refiere a la realización de un programa capaz de
manipular archivos multimedia, reproducirlos y aplicarles efectos.
Algunos de estos son los siguientes:
Flash. Es una aplicación que trabaja sobre "Fotogramas" destinado a la
producción de animación. Es actualmente escrito y distribuido por Adobe
Systems, y utiliza gráficos vectoriales e imágenes ráster, sonido, código de
programa, flujo de vídeo y audio bidireccional (el flujo de subida sólo está
disponible si se usa conjuntamente con Macromedia Flash Communication
Server). En sentido estricto, Flash es el entorno y Flash Player es el programa de
máquina virtual utilizado para ejecutar los archivos generados con Flash.
Los archivos de Flash, que tienen generalmente la extensión de archivo SWF,
pueden aparecer en una página web para ser vista en un navegador, o pueden
ser reproducidos independientemente por un reproductor Flash. Los archivos de
Flash aparecen muy a menudo como animaciones en páginas Web y sitios Web
multimedia, y más recientemente Aplicaciones de Internet Ricas. Son también
ampliamente utilizados en anuncios de la web.
En versiones anteriores, Macromedia amplió a Flash más allá de las animaciones
simples, convirtiéndolo en una herramienta de desarrollo completa, para crear
principalmente elementos multimedia e interactivos para Internet.
Fue hasta 2005 perteneciente a la empresa Macromedia conocido hasta
entonces como Macromedia Flash® y adquirido por Adobe Systems® (desde
entonces conocido como Adobe Flash®) ampliando con ello su portafolio de
productos dentro del mercado.
Flex: agrupa una serie de tecnologías publicadas por Macromedia para dar soporte al
despliegue y desarrollo de Aplicaciones Enriquecidas de Internet, basadas en su
plataforma propietaria Flash.
Microsoft Silverlight es un complemento para navegadores de Internet, competirá
directamente con Flash, le agrega algunas de las funciones del Windows
Presentation Foundation como la reproducción de vídeos, gráficos vectoriales,
animaciones y otros elementos, será un pluggin multinavegador y multiplataforma,
estará disponible para MacOS y Windows. A marzo 2008 no incluye a Linux y aún le
falta soporte en varias plataformas y navegadores, de los más populares.
Algunas de las “ventajas” que tiene sobre Flash es, que viene con DRM integrado de
modo nativo. Otra más importante es que esta basado en XML, algo que resulta mas
fácilmente indexable (en flash esto era un grave problema).
El objetivo de la nueva aplicación, es brindar una aplicación similar a la que da
Adobe Flash Player. Silverlight compite directamente con los siguientes programas:
Adobe Flex, Nexaweb, OpenLaszlo y algunas presentaciones de componentes
AJAX.
Si deseas probar la potencia de esta herramienta, Microsoft ya ha liberado una beta,
en la siguiente dirección.
http://www.microsoft.com/silverlight/resources/InstallationFiles.aspx
5.2.3.4. XML
XMLsignifica eXtensible Markup Language, o Lenguaje de Marcado Extensible. Ya
conocemos el lenguaje HTML, que nos permite la navegación tipo hipertexto; sin
embargo, XML no es sólo un lenguaje, es una forma de especificar éstos, de ahí lo
de “extensible”. Todo lenguaje que se exprese de una forma determinada puede ser
XML. Por lo tanto, no es un lenguaje para hacer mejores páginas Web, sino para
información auto-descrita, al menos si las etiquetas están bien puestas.
¡Es un error pensar que XML es para crear páginas Web, o algo parecido a las
páginas Web!
XML es un lenguaje que cambia el paradigma de programación tradicional basado en
funciones u objetos a la programación basada en el documento. Se puede usar para
cambiar totalmente la forma de publicación: de un programa que recibe unas
entradas y produce unas salidas, se pasa a otro que genera un documento más, o
bien programas que toman documentos y producen otros.
Ventajas

Es extensible, lo que quiere decir que una vez diseñado un lenguaje y
puesto en producción, igual es posible extenderlo con la adición de
nuevas etiquetas de manera de que los antiguos consumidores de la
vieja versión todavía puedan entender el nuevo formato.

El analizador es un componente estándar, no es necesario crear un
analizador específico para cada lenguaje. Esto posibilita el empleo de
uno de los tantos disponibles. De esta manera se evitan bugs y se
acelera el desarrollo de la aplicación.

Si un tercero decide usar un documento creado en XML, es sencillo
entender su estructura y procesarlo. Mejora la compatibilidad entre
aplicaciones.
5. 2.3.4.1 DTD (Document Type Definition)
Es una descripción de estructura y sintaxis de un documento XML o SGML. Su
función básica es la descripción del formato de datos, para usar un formato común y
mantener la consistencia entre todos los documentos que utilicen la misma DTD.
5.2.3.4.2
XML Schema (XSDL
Sirven para definir el esquema o estructura de un documento XML (para determinar
qué elementos y atributos son válidos, que pueden contener los elementos, etc.).
5.2.3.4.3
¿Cómo dar Formatos a los documentos XML?
5.2.3.4.3.1 Hojas de estilo en cascada
5.2.3.4.3.2
XSL
(Extensible
Stylesheet
language)
"Lenguaje extensible de hojas de estilo”, es una familia de lenguajes basados en el
estándar XML que permite describir como la información contenida en un documento
XML cualquiera debe ser transformada o formateada para su presentación en un
medio.
5.2.3.5. AJAX (Asynchronous JavaScript and XML)
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). Éstas se ejecutan en el cliente, es decir, en el navegador de
los usuarios y mantiene comunicación asíncrona13 con el servidor en segundo plano.
De esta forma es posible realizar cambios sobre la misma página sin necesidad de
recargarla. Esto significa aumentar la interactividad, velocidad y uso en la misma.
AJAX es una combinación de tres 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 como JavaScript y JScript, para mostrar e interactuar
dinámicamente con la información presentada.

El objeto XMLHttpRequest para intercambiar datos asincrónicamente 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 comúnmente para la transferencia de vuelta al
servidor, aunque cualquier formato puede funcionar, incluyendo HTML
preformateado o texto plano.
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.
5.2.3.5.1. JSON (JavaScript Object Notation)
Es un formato ligero para el intercambio de datos, un subconjunto de la notación
literal de objetos de JavaScript que no requiere el uso de XML
13
Asíncrona se refiere que no es necesario que los usuarios se conecten al mismo tiempo, un
ejemplo de esto podría ser el FORO.
5.2.3.5.2. Prototype
Es un framework escrito en JavaScript que se orienta al desarrollo sencillo y
dinámico de aplicaciones web. Una herramienta que implementa las técnicas AJAX y
su potencial es aprovechado al máximo cuando se desarrolla con Ruby On Rails.
Bibliografía específica sugerida (lecturas básicas)
Tema de la
unidad
5.1.
5.2.
Bibliografía núm.
Wyatt, Allen L., La magia de Internet, McGraw Hill, 1995.
Bobadilla, Sancho, et al, HTML dinámico, ASP y JavaScript a
través de ejemplos, Alfaomega, 2000.
Bobadilla, Sancho, et al, Superutilidades para Webmasters,
McGraw Hill, 1999.
Fábrega, Pedro Pablo, PHP 4, Prentice Hall, 2000.
Frentzen, Jeff y Sobotka, Henry, Superutilidades para
JavaScript, McGraw Hill, 1999.
Hobbs, Asthon, Aprendiendo programación para bases de
datos con JDBC, Prentice Hall, 1998.
Morrison, Michael, et al, XML al descubierto, Prentice Hall,
2000.
Palacio Bañeres, Juan, PERL páginas Web interactivas,
Alfaomega, 1999.
Rowe, Jeff, Creación de servidores de bases de datos para
Internet con CGI, Prentice Hall, 1996.
5.2.
Weinman, William E., El libro de CGI, Prentice Hall, 1996.
Adkoli, Anand y Velpuri, Rama, Manual de Oracle 8 para
windows NT, McGraw Hill, 1999.
Bowen, Rich y Coar, Ken, Servidor Apache al descubierto,
Prentice Hall, 2000.
Hall, Marty, Servlets y JavaServer Pages, Prentice Hall, 2001.
Maruyama, Hiroshi, et al, Sitios Web con XML y Java, Prentice
Hall, 2000.
5.3.
Hall, Marty, Servlets y JavaServer Pages, Prentice Hall, 2001.
5.3.
Maruyama, Hiroshi, et al, Sitios Web con XML y Java, Prentice
Hall, 2000.
Hall, Marty, Servlets y JavaServer Pages, Prentice Hall, 2001.
Maruyama, Hiroshi, et al, Sitios Web con XML y Java, Prentice
Hall, 2000.
Sitios de Internet
Sitio
http://www.uca.edu.sv/investigacion
/bdweb/reportes/coldfusion.html
http://www.w3.org/
http://www.inei.gob.pe/biblioineipub/
bancopub/inf/lib5038/indice.HTM
http://www.buscandohost.com/hosti
ng_glosario.php
http://www2.uca.es/manual-html/
http://www.php.net/
http://www.mysql.com/
http://www.java.com/es/
http://www.ruby-lang.org/es/
Descripción
Guía didáctica para la integración de
Bases de Datos en Internet
Sitio oficial del W3C, donde se desarrollan
los estándares Web.
Glosario:
TECNOLOGIA
CLIENTE
SERVIDOR
Diccionario, glosario de hosting
Manual de HTML
Sitio oficial de PHP, uno de los lenguajes
más usados para el desarrollo de
aplicaciones Web.
Sitio oficial de MySQL, uno de los
manejadores de bases de datos más
usados para el desarrollo de aplicaciones
Web.
Sitio oficial de Sun Microsystems. En este
sitio se puede bajar todo lo necesario para
la creación de aplicaciones Web con Java.
Sitio oficial de Ruby, que es un lenguaje
de programación orientado a objetos muy
popular en los últimos años.
Actividades
5.1 Elabora un mapa conceptual que relacione los siguientes conceptos:
Aplicación, Tecnología, Internet, Página Web, Sitio Web, Portal, Dominio, Red Social,
Blog, Wiki, servidor Web, Cliente Web (navegador o browser)
Sugerencia: ubica “Internet” en el centro de tu mapa.
5.2 Actividad de Foro
¿Qué tipo de aplicaciones Web requieren la implementación de un protocolo seguro
(https)?
¿Crees que todas las aplicaciones Web deberían implementarlo; porqué?
Elabora un documento Word y envíalo a la plataforma.
5.3 Actividad de Foro
¿En tu lugar de trabajo emplean blogs o wikis como herramientas para trabajar?
¿Consideras que el uso de este tipo de herramientas pudiera proporcionar alguna
ventaja en tu organización; porqué? Elabora en documento Word tu participación y
envíala a la plataforma
5.4 Tu jefe te ha designado como encargado del desarrollo de una nueva aplicación
Web para la empresa. Parte de tu responsabilidad consiste en elegir que tecnología
o lenguaje de programación se deberá utilizar.
Por los apuntes sabes que existen muchos lenguajes de programación del lado del
servidor (tecnologías) que podrían ayudarte a tu propósito:
J2EE/JSP
PHP
.Net
C++
C#
J#
Coldfusion
Ruby on rails
¿Cuáles crees que son los factores que podrían ayudarte a determinar que
tecnología o lenguaje de programación son los más adecuados?
¿Cuáles no son los indicados para este tipo de desarrollo, porqué?
Entrega tus respuestas en un documento Word (máximo 1 cuartilla).
5.5. Actividad de Foro
El desarrollo consolidado de RIAs es algo relativamente reciente. Visita las siguientes
páginas y explora algunas de las aplicaciones desarrolladas con Silverlight y Flex
Silverlight
http://silverlight.net/Showcase/
Flex
http://flex.org/showcase/
Responde a las siguientes preguntas:
En general ¿Cómo te pareció la experiencia?
¿Consideras que las páginas Web como las conocemos hoy serán reemplazadas por
estas tecnologías?
¿Qué desventajas podrían tener estas tecnologías respecto a las páginas HTML
tradicionales?
De estas dos tecnologías ¿Cuál escogerías y porqué?
Nota:
Para ver las aplicaciones desarrolladas con Silverlight necesitarás el plug-in que
podrás descargar de la siguiente dirección: http://silverlight.net/
Para ver las aplicaciones desarrolladas con Flex necesitarás la última versión del
plug-in
de
flash
http://www.adobe.com
que
podrás
descargar
de
la
siguiente
dirección:
5.6 Desarrolla una aplicación web que envíe un correo electrónico desde un
formulario. Los pasos para crear la aplicación son los siguientes:
a) En el editor de tu preferencia crea un formulario en html (contacto.html) con
los siguientes campos:
a. Nombre -> input type=”text” name=”nombre”
b. Apellido -> input type=”text” name=”apellido”
c. Edad -> input type=”text” name=”edad”
d. Estado civil -> input type=”text” name=”edo_civil”
b) Crea un script en php (correo.php) que reciba los campos del formulario
contacto.html y los envíe a una dirección de correo electrónico (de preferencia
la propia).
Cuestionario de Reforzamiento
1. Define el concepto de Tecnología
2. Explica brevemente lo que se entiende por aplicación informática
3. ¿Qué significan estas siglas WWW, y cuál es su repercusión para las TIC´s?
4. ¿Qué es una página Web?
5. Explica que es un sitio web y como se localiza en la WWW
6. Menciona los principales servicios que ofrece un portal
7. Explica los elementos que conforman un dominio
8. Que debemos de entender por redes sociales en la web y para que sirven en
el uso de las TIC´s
9. Menciona por lo menos 5 sitios WEB y explica de que manera son
visualizados
10.Explica ampliamente los protocolos http
11. Explica las siguientes siglas: URI y URN
12. Explica el uso que se le da a la modelo DOM
13. Desarrolla brevemente el uso del lenguaje Javascript
14.Explica brevemente las funciones de Cold Fusion
15. Menciona la importancia de los servidores aplicativos en una red de
computadoras.
16. Menciona brevemente el
contenido general del paquete que conforma el
lenguaje de Visual Basic.
17. Explica ampliamente el uso y manejo de Silverlight
18. ¿Que son los documentos XML?
19. Menciona las tres tecnologías que conforman AJAX
20. ¿Que es el JSON?
Examen de autoevaluación
1. En la informática una aplicación es el conjunto de hardware utilizado para el
desarrollo de un proyecto (
)
2. La tecnología informática está conformada por inventos, técnicas y
conocimientos organizados para el logro de un producto y/o servicio. (
)
3. ARPANET Es la red de redes con un alcance mundial y que utiliza protocolos
como el TCP/IP´ (
)
4. Las páginas Web pueden ser cargadas de un equipo remoto o local llamado
servidor web (
)
5. Los sitios web pueden ser de 4 tipos: comercio, entretenimiento y educativo
(
)
6. Son tres los campos que conforma un dominio: tamaño, ubicación y extensión.
(
)
7. Cuando encontramos la extensión .com, .gob, etcétera estamos hablando del
portal de un internet (
)
8. La red social está conformadas por comunidades sobre intereses similares
(
)
9. Un servidor Web es una interfaz, conocida como navegador o browser la cual
se utiliza para acceder o comunicarse con ciertos programas, alojados en un
servidor remoto. (
)
10.HTML es un lenguaje de marcado para hipertexto. (
)
11.La URL es un localizador uniforme de recurso. Es una secuencia de
caracteres, de acuerdo a un formato estándar, que se usa para nombrar
recursos, como documentos e imágenes en Internet, por su localización. (
)
12. SGML. Interface independiente de la plataforma y del lenguaje que permite
que los programas y scripts tengan acceso dinámicamente y actualicen el
contenido, la estructura y estilo de los documentos. (
)
13. JavaScript no es un lenguaje orientado a objetos propiamente dicho, ya que
no dispone de Herencia. (
)
14. PHP es un lenguaje de programación interpretado, usado para la creación de
aplicaciones para servidores o para la creación de contenido dinámico para
sitios Web (
15. C++
)
es un lenguaje de programación, dialecto de BASIC que ha sido
empaquetado como un programa de aplicación, es decir, consiste en un editor
de código, un depurador, un compilador y un constructor de interfaz gráfica.
(
)
16. Colfusión es un lenguaje de script o lenguaje de programación Web que se
ejecuta en un servidor y devuelve una respuesta a un cliente en formato HTML
(
)
17. Los servidores de aplicación también brindan soporte a una gran variedad de
estándares, tales como HTML, XML, IIOP, JDBC, SSL, lo cual permite su
funcionamiento en ambientes Web. (
)
18. Silverlight. Es una aplicación que trabaja sobre "Fotogramas" destinado a la
producción de animación, utiliza gráficos vectoriales e imágenes ráster,
sonido, código de programa, flujo de vídeo y audio bidireccional. (
)
19. AJAX, Es un formato ligero para el intercambio de datos, un subconjunto de la
notación literal de objetos de JavaScript que no requiere el uso de XML (
)
20. Prototype es un framework escrito en JavaScript que se orienta al desarrollo
sencillo y dinámico de aplicaciones web. implementa las técnicas AJAX y su
potencial es aprovechado al máximo cuando se desarrolla con Ruby On Rails.
(
)
Respuestas al examen de autoevaluación
1
F
2
V
3
F
4
V
5
V
6
F
7
F
8
V
9
F
10
V
11
V
12
F
13
V
14
V
15
F
16
V
17
V
18
F
19
F
20
V
Descargar