Sie sind auf Seite 1von 146

FACULTAD DE INGENIERÍA DE SISTEMAS, CÓMPUTO Y

TELECOMUNICACIONES

SISTEMA A DISTANCIA

TECNOLOGÍAS WEB
DANIEL ALEJANDRO YUCRA SOTOMAYOR
SANTIAGO RAÚL GONZALES SÁNCHEZ

2012
1
ÍNDICE
PRIMERA UNIDAD: Internet y World Wide Web 8

Lección 1: Evolución de Internet 10

1.1 Internet 11
1.2 Breve Historia de Internet 11
1.3 Protocolos de Internet 12
1.4 La Web como Tecnología de Internet 13

Lección 2: World Wide Web y Tecnologías Web 14

2.1 Historia de la World Wide Web 14


2.2 HTML 15
2.2.1 HTML Básico 15
2.2.2 Hojas de Estilo (CSS) 16
2.2.3 HTML Dinámico 17
2.2.4 HTML 5 17
2.3 Protocolo HTTP 18
2.3.1 Versiones de HTTP 20
2.4 Tecnología Web 21
2.5 Tecnologías para el desarrollo Web 22
2.5.1 Navegadores Web 22
2.5.2 Servidores Web 22
2.5.3 Lenguajes de programación para el desarrollo web 23
2.6 Arquitectura Cliente/Servidor 23

Lección 3: Estándares Web 24

3.1 Estándares y otras especificaciones técnicas 24


3.2 World Wide Web Consortium (W3C) 24

Lección 4: Implementación de un Servidor Web 26

4.1 Introducción a los Servidores Web 26


4.2 Servidor Web Apache 26
4.3 Implementación de un Servidor web 27
4.3.1 Compilación de las fuentes del Servidor Web 27
4.3.2 Instalación de un servidor web utilizando GNU/Linux 28

SEGUNDA UNIDAD: Web 2.0 y Web 3.0 46

Lección 5: Fundamentos de la Web 2.0 48

5.1 Historia y Evolución de la Web 48


5.2 Web 1.0 49
5.3 ¿Qué es la Web 2.0? 50
5.4 Aplicaciones más populares de la Web 2.0 50

2
5.5 Redes Sociales 52
5.6 Weblogs y Blogósfera 53
5.7 Implementación de un blog personal 53
5.8 Sistema de Gestión de Aprendizaje (LMS) 56
5.8.1 Implementación de un LMS 56
5.9 Sistema de Gestión de Contenidos 59
5.9.1 Implementación de un CMS 60

Lección 6: Fundamentos de la Web 3.0 63

6.1 ¿Qué es la Web 3.0? 63


6.2 Aplicaciones de la Web 3.0 64
6.2.1 SOA 64
6.2.2 Web 3D 65
6.2.3 Realidad Aumentada 65
6.2.4 Apps 66

Lección 7: Web Services 68

7.1 ¿Qué son los Web Services? 68


7.2 Estándares que usan los Web Services 68
7.2.1 Hypertext Transfer Protocol (HTTP) 68
7.2.2 Extensible Markup Language (XML) 69
7.2.3 Simple Object Access Protocol (SOAP) 69
7.2.4 Web Services Description Language (WSDL) 69
7.2.5 Universal Description, Discovery and Integration (UDDI) 69
7.3 Características de los Web Services 69
7.4 Arquitectura de los Web Services 70

Lección 8: Web Semántica 71

8.1 ¿Qué es la Web Semántica? 71


8.2 Componentes de la Web Semántica 75

TERCERA UNIDAD: Tecnologías para el desarrollo Web 89

Lección 9: Arquitectura Web 91

9.1 Presentación Distribuida 91


9.2 Aplicación Distribuida 91
9.3 Arquitectura de las aplicaciones Web 91

Lección 10: Lenguajes de Programación 95

10.1 Historia de las aplicaciones Web 95


10.2 CGI 96
10.3 PHP 97
10.4 Java Servlets 98
10.5 Java Server Pages (JSP) 99

3
Lección 11: Acceso a Base de Datos 101

11.1 PostgreSQL 101


11.2 MySQL 101
11.3 MariaDB 102
11.4 FirebirdSQL 102

Lección 12: Framework 104

12.1 JSF 104


12.2 Ruby On Rails 105
12.3 Web2Py 105
12.4 Zend Framework 106

CUARTA UNIDAD: Fundamentos de Seguridad Web y Aplicaciones


Empresariales 117

Lección 13: Seguridad en la Web 119

13.1 Consideraciones en la Seguridad en la Web 121


13.2 Control de acceso al Servidor Web 122

Lección 14: Protocolos de seguridad para la Web 123

14.1 Protocolo de comunicación cifrado (HTTPS) 123


14.2 Protocolo de seguridad para transacciones seguras (SET) 123
14.3 Certificados Digitales 125

Lección 15: Aplicaciones Web Empresariales 128

15.1 OpenBravo 128


15.2 OpenERP 128
15.3 Intalio BPM 128
15.4 Pentaho 129
15.5 OS-Commerce 129
15.6 Liferay 130
15.7 Alfresco 130
15.8 Drupal 130

Lección 16: Sistema Operativo Web 131

16.1 ¿Qué es el Sistema Operativo Web? 131


16.2 EyeOS 132

4
INTRODUCCIÓN
La Web se caracteriza por ser una tecnología muy utilizada y ampliamente
difundida en Internet. Después del correo electrónico es la herramienta que ha
tenido mucho auge y la que más ha evolucionado. En este contexto, los
desarrolladores, integradores y arquitectos de software web tienen un gran reto de
desarrollar aplicaciones y sistemas basada en la web.

Las tecnologías web han estado en función de la evolución de Internet.


Recientemente, la disponibilidad de mayor acceso a Internet, millones de
servidores web y una gran cantidad de tecnologías relacionadas para la web, ha
permitido el desarrollo del World Wide Web (www). Esta tendencia se ha
acelerado por el desarrollo de herramientas de software que permiten el diseño de
aplicaciones web. Estas tecnologías cuentan con estándares que ha permitido
consolidar el desarrollo de las aplicaciones web.

La World Wide Web es un sistema distribuido basado en hipertexto o hipermedias


enlazados y accesibles a través de Internet. Generalmente con un navegador
Web, un usuario visualiza la aplicación web que puede contener texto, imágenes,
videos u otros contenidos multimedia y navega a través de ellas usando
hiperenlaces.

El propósito de este texto es que el estudiante conozca el manejo de las


tecnologías web y alternativas orientadas al desarrollo de aplicaciones web,
además puedan conocer tecnologías distribuidas en entornos heterogéneos y e
interoperativos.

Los autores

5
ORIENTACIONES METODOLÓGICAS

SUMILLA
Internet y la World Wide Web han evolucionado rápidamente en su uso y
desarrollo gracias a la cantidad de herramientas, protocolos y estándares,
existentes.

El desarrollo de Internet, y la informática, han permitido que la Web sea uno de


los inventos más fructíferos de la historia en la humanidad, y lo que ahora vemos
es sólo el principio de un futuro influido por estas tecnologías, no solo ha
transformado a las personas también a las sociedades, las empresas y la cultura
de los pueblos.

En este contexto, resulta de vital relevancia, para la formación del Ingeniero de


Sistemas y Cómputo, conocer distintas aplicaciones o soluciones para
implementar con éxito proyectos de desarrollo basados en aplicaciones Web.

Esta asignatura, de formación profesional especializada, de naturaleza teórico-


práctica, tiene como propósito que el estudiante sintetice en un nivel de
competencia, los conceptos, las herramientas, las tecnologías que están
influyendo en el uso y desarrollo de la World Wide Web. Para este fin, la
asignatura desarrolla los siguientes temas centrales: Internet, World Wide Web,
Web 2.0, Web 3.0, Tecnologías para el desarrollo Web, Fundamentos de
Seguridad Web y descripción de las principales Aplicaciones Web Empresariales.

DESCRIPCIÓN DE UNIDADES
Los contenidos se han organizado en cuatro unidades temáticas. Éstas se
desarrollan en lecciones que incluyen conceptos, descripción de tecnologías,
estrategias de implementación y arquitecturas web, aplicaciones web y soluciones
web empresariales que ayuden a clarificar los contenidos desarrollados.

En la Unidad 1, comprende, eficientemente, los conceptos asociados al origen y


funcionamiento de la Internet y la World Wide Web, el papel que desempeña los
organismos de normalización de Internet a nivel mundial y el funcionamiento de
los Servidores Web.

En la Unidad 2, conoce las nociones básicas de la Web 2.0 y Web 3.0


implementando, eficientemente, distintas herramientas tecnológicas, apreciando
la trascendencia de los sistemas a través de Web Services, así mismo identifica
los componentes principales de la Web Semántica, permitiendo su comprensión
en su actividad personal.

En la Unidad 3, describe las distintas tecnologías aplicado para el desarrollo Web


permitiendo expandir su conocimiento para la selección de una mejor solución en
su formación profesional.

6
En la Unidad 4, conoce las características y consideraciones para la seguridad en
la Web, tales como: control de acceso a los Servidores Web, principales
Protocolos de comunicación y seguridad; y Certificados Digitales, así mismo,
aplicaciones Empresariales en entorno Web permitiendo con ello mejorar su
capacidad y desarrollo profesional.

OBJETIVO DE LA ASIGNATURA
El objetivo general es que el estudiante identifique los principios de la Tecnología
Web, en conocer aplicaciones y tipos lenguajes de programación, que permitan el
desarrollo de sistemas basados en Web, de las distintas herramientas
tecnológicas y medidas de seguridad que debe adoptar, implementando
soluciones reales, permitiendo con ello mejorar su capacidad y desarrollo
profesional.

METODOLOGÍA
En cada unidad, el estudiante encontrará la sumilla y los objetivos, permitiendo
valorar sus alcances y logros, también se presentan los fundamentos y elementos
esenciales que permita poner en práctica a través de las propuestas tecnológicas.
Al finalizar la unidad, se brinda un resumen, una lectura seleccionada, ejercicios
propuestos, así como un apartado de autoevaluación que fortalezca el proceso
del aprendizaje.

ESTRATEGIAS DE APRENDIZAJE Y EVALUACIÓN


El estudiante, bajo esta modalidad debe planificar el tiempo en el desarrollo de
cada unidad, poniendo en práctica los ejercicios propuestos, compartiendo sus
experiencias con el tutor y realizando actividades de auto aprendizaje. En tal
sentido, el tutor dispondrá de un horario que permita interactuar con el alumno
resolviendo consultas o dudas, a través de Internet.

Respecto a la evaluación del aprendizaje, el alumno dispone, al finalizar de cada


unidad una serie de preguntas de autoevaluación que permita medir su
aprendizaje. Al mismo tiempo, se dispone de ejercicios propuestos que deberá
desarrollar para un mejor entendimiento de las lecciones. Esto será un indicador
para el tutor que se está poniendo en práctica lo aprendido. Para obtener el
promedio final de la asignatura se suman el examen parcial, final y el promedio de
las actividades planteadas en la asignatura.

7
PRIMERA UNIDAD

Internet y World Wide Web

Sumario

La presente unidad sintetiza la evolución de la Internet y la World Wide Web como


las tecnologías más innovadores de los últimos tiempos. Además, sus protocolos
de comunicación, las tecnologías para su uso y desarrollo, estándares web,
navegadores y servidores web.
También presenta a HTML en sus diferentes versiones y evoluciones, como
explica la importancia del protocolo web HTTP con sus métodos y la arquitectura
Cliente/Servidor que trabaja.
Al finalizar la unidad describe las alternativas para instalar, configurar y poner en
marcha un Servidor Web sobre plataformas GNU/Linux.

8
Objetivos

Al finalizar esta unidad, el estudiante será capaz de:

Definir y describir los diferentes conceptos relacionados a Internet y la World


Wide Web.
Conceptualizar las terminologías que están relacionas con las Tecnologías
Web.
Identificar y conocer los estándares involucrados que participan en las
tecnologías web.
Conocer los aspectos técnicos para la implementación de un servidor web y
los componentes que participan.
Comprender, analizar y evaluar las diferentes formas de implementación de un
servidor web.
Identificar las principales aplicaciones Web Empresariales.

9
Lección 1: Evolución de Internet

1.1 Internet
El término Internet viene del inglés “Interconnected Networks”, vale decir, Redes
interconectadas, a veces podemos definir como la red de redes, y es la suma de
diversas redes de ordenadores de todo el mundo que, gracias a las innovaciones
tecnológicas, hace posible que puedan comunicarse los usuarios que hay por
todo el mundo.
Esta red de ordenadores está repartida geográficamente en diferentes partes del
mundo que utilizan las mismas normas y protocolos de comunicación.
Según, el diario Wall Street Journal describe al Internet como “... la cadena de
redes que es, en general, la forma más fácil y barata de que los negocios se
comuniquen electrónicamente con el mundo exterior”, esta definición es descrito
desde el punto de vista empresarial.
La trascendencia de Internet radica en su cobertura a escala mundial, además de
su superestructura que comprende contenidos, herramientas y utilidad para todos
los usuarios; para muchos es considerado como herramienta de trabajo pasando
como una herramienta para vender productos o incluso de ocio, etc.
"Internet constituye un fenómeno sociocultural de importancia creciente, una
nueva manera de entender las comunicaciones que están transformando el
mundo, gracias a los millones de individuos que acceden a la mayor fuente de
información que jamás haya existido y que provocan un inmenso y continuo
trasvase de conocimiento entre ellos" (Vertices, 2008, p. 7).
Se pueden destacar cuatro características de Internet:
- Cambiante: Siempre se adapta continuamente a las nuevas necesidades y
circunstancias de sus usuarios.
- Grande: Es la mayor red de computadoras del planeta.
- Descentralizada: Nadie controla oficialmente a Internet.
- Diversa: Todos están involucrados máquinas, software y personas de
diferentes índoles, fabricantes de diferentes tecnologías, medios físicos de
transmisión y comunicación, usuarios, etc.
Según Hervo (2007), “Internet, también llamado Autopista de la información, Net,
Ciberespacio..., designa un conjunto de redes informáticas relacionadas entre sí y
cuya finalidad es de permitir a los usuarios de todo el mundo comunicarse entre
sí. Se trata de conjuntos de redes interconectadas más vasto del mundo. Internet
es una red abierta, todo lo contrario de la mayor parte de las redes: todo el mundo
puede conectarse a ella para disfrutar de sus servicios” (p. 3).
Internet está regido por organismos que definen las normas técnicas a seguir,
reparten las direcciones IP, crean continuamente estándares y nuevos protocolos
que regulan la red de redes.
Internet crece solo a un ritmo vertiginoso, prácticamente incalculable, siendo un
severo problema para los seguimientos y estadistas y un caldo de cultivo para las
exageraciones (Odlyzko, 2000, p. 15).

10
Figura 1.1: Arquitectura de Internet [Raymond, 2000]

1.2 Breve Historia de Internet


El departamento estadounidense de defensa en el año de 1969, decide
desarrollar una red experimental que permita el intercambio de información entre
sus centros de investigación y desarrollo alejados remotamente entre sí y que
funcione sin interrupciones incluso en una hipotética guerra nuclear. Esta nueva
red se llamó ARPANET.
La descentralización de las transmisiones de comunicaciones eran la piedra
angular de esta red, cada vez que una línea de comunicación no puede utilizarse,
los equipos buscan una nueva ruta para transferir los datos.
En 1972, como resultado de una conferencia sobre la posibilidad de
intercomunicar todos los ordenadores y todas las redes entre sí, nace el protocolo
TCP/IP (Mañas, 2004, p. 25).
A principio de los 80, al intercomunicar varias redes entre sí, ARPANET se
convierte en INTERNET (International Network), (Mañas, 2004, p. 25).
Con la aparición, en 1992, de la web y otras herramientas de sencillo manejo, la
red ha crecido a una velocidad vertiginosa.
El éxito de internet es evidente, según Mañas (2004) "El crecimiento exponencial
de equipos conectados debe interpretarse en tres fases. Entre 1968 y 1984
pasamos de 4 a 1.000 equipos, que son experimentos de laboratorio para
demostrar que conmutación de paquetes funciona mientras se diseñan los
protocolos adecuados. Entre 1985 y 1992 la red crece hasta 1.000.000 de
equipos con un carácter pre comercial: se usa con cargo a proyectos de
investigación. A partir de los 90 la red es una realidad comercial madura" (p. 27).

11
1.3 Protocolos de Internet
Internet tiene varias formas de comunicación entre los ordenadores y éstas se
realizan mediante Protocolos, que son reglas y normas de comunicación que han
de adoptarse para ser entendido por las otros ordenadores de la red.
Para Cancelo y Giraldez (2007), "Lo que hace que una red funcione
adecuadamente no es la conexión física de cables, como podría pensarse, sino el
mantenimiento de los estándares de comunicación llamados protocolos, para que
los distintos ordenadores se comuniquen entre sí" (p. 94).
Los dos protocolos más importantes son Protocolo de Control de Transmisión
(Transfer Control Protocol) y el Protocolo de Internet (Internet Protocol). El
protocolo TCP más conocido como de transporte, divide en paquetes los
mensajes generados en origen, asignándoles un número de secuencia y la
dirección de destino, y los recompone en destino, mientras que IP se ocupa del
direccionamiento de los paquetes, que pueden recorrer el camino por rutas
diversas, incluso con tecnologías diferentes. Usualmente, se trata a estos dos
protocolos como si fueran uno solo TCP/IP, porque ambos se complementan.
La aparición a principios de los noventa de la World Wide Web (WWW) significó
un gran impulso para que los usuarios particulares se conectaran a Internet. Con
esta aparición, se tuvo que proponer nuevos protocolos como el HyperText
Transfer Protocol (HTTP), que comenzó a extenderse y el crecimiento del tráfico
de Internet ha sido exponencial hasta estos tiempos.

Tabla 1: Protocolos más usados en Internet


Fuente: Atelin, P. (2007) TCP/IP y protocolos de Internet (p.47)
Nombre Acrónimo Puerto Descripción
File Transfer FTP 21 Transferencia de ficheros
Protocol
Secure Shell SSH 22 Permite las comunicaciones
seguras entre dos sistemas usando
una arquitectura cliente/servidor
Simple Mail SMTP 25 Envío de correo electrónico
Transfer Protocol

Domain Name DNS 53 Resolución de nombres de dominio


System

HyperText Transfer HTTP 80 Transferencia de páginas


Protocol Web

Post Office POP3 110 Recepción de correo electrónico


Protocol v3

Network News NNTP 119 Acceso a foros de discusión


Transfer Protocol

12
1.4 La Web como tecnología de Internet
Las empresas están migrando hoy en día rápidamente todos sus servicios,
aplicaciones, servicios, sus tiendas, correo electrónico, etc., a un entorno Web
que permita a sus clientes y usuarios acceder a todo ello a través de Internet.
Internet está destinado a convertirse en un servicio universal de comunicaciones,
permitiendo una comunicación universal por lo tanto la Web, se ha convertido,
junto con el correo electrónico, en las principales herramientas de internet. Ésta
ha dejado de ser una inmensa “biblioteca” de páginas estáticas para convertirse
en un servicio que permite acceder a multitud de prestaciones y funciones.
Este sistema, al que ya nos hemos referido, ha sido creado para navegar por la
red Internet y acceder a miles de servidores donde los usuarios pueden encontrar
información simplificada en su proceso de búsqueda y que proporciona
información como: texto, sonido, video, color, movimiento, etc.
Al igual que Internet, el desarrollo de la Web no se debe a una sola persona. El
padre de la Web, es Tim Berners-Lee un científico que trabajaba en el Laboratorio
Europeo de Física de Partículas de Ginebra (CERN), crea el World Wide Web
(WWW). A él se debe los tres elementos que fueron importantes en el nacimiento
de la Web.
− HTML, como lenguaje para crear los contenidos de la Web, basado en
Standard Generalized Markup Language (SGML).
− HTTP, como protocolo de comunicación entre las computadoras de la Web,
encargado de la trasferencia de las páginas Web y demás recursos.
− URL, como medio de localización de los distintos recursos de Internet.

Figura 1.2: Elementos pilares de la World Wide Web

13
Lección 2: World Wide Web

2.1 Historia de la World Wide Web


La Web es una parte esencial en nuestras vidas, y las aplicaciones son
herramientas indispensables para esta sociedad de información, así como fue en
su momento el teléfono.
En 1989 Tim Berners-Lee crea la WWW (World Wide Web), desarrollando las
especificaciones de tres recursos esenciales: el lenguaje de marcas de hipertexto
HTML (HyperText Markup Language), el protocolo de transferencia de hipertexto
HTTP (HyperText Transfer Protocol) y un software cliente denominado navegador
Web.
En 1992 en Estados Unidos, se crea la ISOC (Internet Society), organismo sin
fines de lucrativos que asumió las responsabilidades por la parte técnica y
directiva de Internet determina protocolos para las computadoras como para las
aplicaciones de software (De Viveiros, 2011, p.18).
El 25 de noviembre de 1991, la Internet Assigned Numbers Authority (IANA) y la
Internet Corporation for Assigned Names and Numbers (ICANN) le asignaron a la
Red Científica Peruana la administración de nombres de dominio para el Perú,
conocido actualmente como el .pe. De esta manera el Perú puede registrar
dominios para sitios Web (En el portal Punto.pe, http://punto.pe/history.php, se
muestra una reseña de la Evolución del dominio .pe en Perú).
Luego, en 1993 nacen los sitios Web oficiales de la Casa Blanca
(http://www.whitehouse.gov) y las Naciones Unidas (http://www.un.org), de esta
manera Internet empieza a ser tomada en consideración por los medios de
comunicación y el sector empresarial. Así mismo, la National Science Foundation
(NSF) crea INTERNIC (INTERnet Network Information Center), organismo de
administración de Internet, dedicado a proveer servicios específicos de Internet,
como bases de datos y directorios, registro de dominios e información. (De
Viveiros, 2011, p. 17).
En este mismo año se incorporan los dominios regionales de Bulgaria (.bg), Costa
Rica (.cr), Egipto (.eg), Emiratos Árabes Unidos (.ae), Fiyi (.fj), Ghana (.gh), Guam
(.gu), Indonesia (.id), Islas Vírgenes (.vi), Kazajstán (.kz), Kenia (.ke),
Liechtenstein (.li), Perú (.pe), Rumanía (.ro), Rusia (.ru), Turquía (.tr) y Ucrania
(.ua).
El 1 de Octubre de 1994 se constituyó el organismo de coordinación, W3C (World
Wide Web Consortium). Liderado inicialmente desde el Laboratory for Computer
Science del MIT por el mismo creador de la WWW, Tim Berners-Lee y Al Vezza,
el W3C ha tomado bajo su responsabilidad la evolución de varios protocolos y
estándares relacionados con el Web. (Aubry, 2009, p. 12).
En el mismo año, se da inicio al desarrollo de los buscadores el primero en ser
presentado fue Yahoo, (un directorio de internet) desarrollado por dos estudiantes
de maestría de la Universidad de Stanford (David Filo y Jerry Yang), que
inmediatamente tuvo un éxito masivo.
En septiembre de 1998 se constituyó la compañía 'Google Inc.', con Larry Page
como Director General y Sergey Brin como Presidente [Lester, 2011].

14
2.2 HTML
2.2.1 HTML Básico
HTML es un lenguaje de etiquetas que está conformado por documentos de texto
plano, donde el formato del texto se especifica mediante marcas de texto
(llamados etiquetas, tags), que delimitan los contenidos a los que afecta la
etiqueta, por lo tanto tenemos etiquetas de inicio o apertura y etiquetas de
marcado final o cierre.
Ejemplos de etiquetas de HTML son:
<title>Título de documento</title>
<P>Este es un párrafo </P>
<B>Negrilla<I>Itálica</I>Negrilla</B>
Los atributos de las etiquetas, que especifican parámetros adicionales a la
etiqueta, se incluyen en la etiqueta de inicio de la siguiente forma:
<ETIQUETA parametro1=”ATRIBUTO” parametro2=”ATRIBUTO” ...> Contenido
</ETIQUETA>
Por ejemplo:
<A HREF=“http://www.w3c.org”>Enlace</A>
<IMG SRC=“miimagen.jpg” BORDER=”1” ALT=“NOMBRE IMAGEN”>
HTML permite omitir en algunos casos la etiqueta de cierre, como es el caso de la
etiqueta IMG. Muchos visualizadores o programas clientes Web que utilizamos no
entiende alguna etiqueta, la ignorará y hará lo mismo con todo el texto afectado
por ésta etiqueta, por consiguiente es importante tener actualizado el navegador
para que entienda el lenguaje HTML.
Todos los documentos HTML siguen aproximadamente la misma estructura. Todo
el documento debe ir contenido en una etiqueta HTML, dividiéndose en dos
partes: la cabecera, contenida en una etiqueta HEAD y el cuerpo del documento
(donde está la información del documento), que está envuelto por una etiqueta
BODY.
Un documento en HTML básico contiene básicamente las siguientes etiquetas:

<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
Texto del documento
</BODY>
</HTML>

15
A la hora de desarrollar páginas HTML básico, se debe tener presente el tipo de
visualizador que utilizarán los potenciales usuarios.

2.2.2 Hojas de Estilo (CSS)


Las hojas de estilo o simplemente llamados CSS son estándares creador por la
W3C, que sirve para separar el formato de representación y presentación del
contenido de un documento HTML o XML. Eso se consigue asociando atributos
de presentación a cada una de las etiquetas de HTML.
Por ejemplo, si deseamos que todos los párrafos de nuestro documento (definidos
por <P></P>) tengan el fondo azul (blue en ingles) y el texto en amarillo (yellow
en ingles) usaremos el siguiente código:
<STYLE TYPE=“text/css”>
P {color: blue; background:yellow;}
</STYLE>
Para indicar qué estilos debemos usar en una página, disponemos de la etiqueta
STYLE, la etiqueta LINK, que nos permite indicar un fichero externo que
contendrá nuestros estilos.
La etiqueta STYLE tiene que estar en la cabecera de la página. Dispondremos de
un parámetro TYPE que nos permite indicar qué sintaxis usaremos para definir los
estilos, que en nuestro caso será text/css. La etiqueta LINK, para poder definir
una hoja de estilos externa, tiene la siguiente apariencia:
<LINK REL=“stylesheet” HREF=“estilo.css” TYPE=“text/css”>
Es recomendable usar la etiqueta LINK para la definición de las hojas de estilo
asociadas a una página, ya que de ese permitirá mejor la actualización o el
mantenimiento de las páginas web que invocan hojas de estilo.
Es importante resaltar que la sintaxis de las hojas de estilo (CSS) es sensible a
mayúsculas y minúsculas.
Es importante entender que esta sintaxis nos permitiría definir el formato que
deseamos para los párrafos de nuestra Web. Existe una extensión de dicha
sintaxis que hace posible definir un estilo que sólo se aplicará a ciertas partes de
nuestro documento.
En concreto, nos permite definir clases de elementos a los que aplicaremos el
estilo.
Por ejemplo, para definir una clase de párrafo que llamaremos destacado:
P.destacado {color: blue; background:yellow;}
Podemos usar luego el atributo CLASS que HTML 4.0 añadió a HTML para definir
la clase de cada párrafo:
<P>Un párrafo normal sin el atributo CLASS</P
<P CLASS=“destacado”>Este es un párrafo especial</P>
<P CLASS=“destacado”>Otro también destacado</P>

16
En resumen, “Las hojas de estilo definen cómo se muestran los elementos HTML,
tal como lo hacia la etiqueta <font> o el atributo de color en HTML 3.2. Las hojas
de estilo se guardan, normalmente, en archivos CSS externos. Estas hojas de
estilo externas están disponibles para cambiar la apariencia y la maquetación de
todas las páginas de un sitio web, solamente editando un documento CSS (Egea,
2007, p. 134).

2.2.3 HTML Dinámico


El HTML dinámico (DHTML o del inglés dynamic HTML) no es un estándar
definido por el W3C, sino que es un término de marketing que utilizaron Netscape
y Microsoft para referirse al conjunto de nuevas tecnologías de Web. Dicho
conjunto comprende:
- HTML, especialmente la versión HTML 4.0.
- Hojas de estilo (CSS o Hoja de estilo).
- Javascript (Lenguaje de programación).
También se suele denominar como DHTML a este conjunto de tecnologías,
especialmente en aquellos casos en que operan conjuntamente para enriquecer
la experiencia Web del usuario. La propuesta es ofrecer al usuario interfaces
gráficas mucho más ricas y complejas, controlar formularios de forma más
eficiente. El código Javascript se ejecuta en el lado del cliente, para mejorar el
rendimiento de la página DHTML.
Uno de los puntos claves de DHTML es DOM (document object model), que
define una jerarquía de objetos accesibles mediante Javascript, que representan
todos y cada uno de los elementos del documento HTML.

2.2.4 HTML 5
HTML 5 es la quinta versión importante de HTML. Es una tecnología creada para
modernizar la web y el desarrollo de las aplicaciones web, en línea y fuera de
línea. Se ha elaborado en base a la versión HTML 4, XHTML 1 y DOM Nivel 2
(DOM - Document Objetc Model), (Ramos, 2011, p. 30).
Esta es la primera vez que HTML y XHTML se han desarrollado en paralelo.
Todavía se encuentra en modo experimental, según menciona la misma W3C;
aunque ya es usado por múltiples desarrolladores y arquitectos web por sus
notables mejoras, avances y ventajas.
Por el momento son pocos los navegadores que reconocen las etiquetas HTML
como: Internet Explorer 9, Mozilla Firefox 8, Google Chrome 16. Por lo tanto se
recomienda al usuario común actualizar a la versión más actual, para poder
disfrutar de todo el potencial que trae HTML 5.
El desarrollo de esta versión es controlado y regulado por el Consorcio World
Wide Web Consortium (W3C).
Entre las características de HTML 5, podemos citar:
a) Estructura del cuerpo: HTML 5 permite agrupar elementos como cabecera,
pie, bloques arriba, bloques abajo, bloque derecha, bloque izquierda, etc.

17
en nuevas etiquetas que representarán cada uno de las partes típicas de
una página web.
b) Etiquetas para contenido específico: Generalmente se utiliza una única
etiqueta para incorporar tipos de contenido enriquecido, como
animaciones, aplicaciones con flash o incluso vídeos. En HTML se utiliza
etiquetas específicas para cada tipo de contenido en particular, como
audio, vídeo, animaciones, etc.
c) Canvas: Se trata de una nueva una gran innovación que permite dibujar en
la web, utilizando las funciones de un API, estos dibujos o formas pueden
estar animadas y responder a interacción del usuario. La idea central es
reemplazar lo que hace Flash, pero dentro de la especificación de esta
versión HTML.
d) Bases de datos locales: Si la idea es trabajar offline (sin conexión a
internet), HTML 5 permitirá el uso de una base de datos local, con la que
se podrá trabajar en una página Web por medio del cliente y a través de un
API.
e) Web Workers: Se trata de procesos que requieren bastante tiempo de
procesamiento por parte del navegador, pero que se podrán realizar en un
segundo plano, para que el usuario no tenga que esperar que se terminen
para empezar a usar la página.
f) Geolocalización: Las páginas Web se podrán localizar geográficamente por
medio de un API que permita la Geolocalización.
g) API para mejorar la interfaz de usuario: Se trata de dar enfoque al uso de
"drag & drop" (arrastrar y soltar) en las interfaces de usuario de los
programas convencionales, también incorporadas por medio de un API.
h) Fin de las etiquetas de presentación: Todas las etiquetas que tienen que
ver con la presentación del documento, es decir, que modifican estilos de la
página, serán depuradas. La definición del aspecto de una Web estará a
cargo únicamente de una hoja de estilo (CSS).
i) Video: La presentación de los videos en la web ya no dependerá más de un
plugin correspondiente, en ocasiones cuando encontramos videos en
algunas páginas web nos solicita la instalación del plugin. HTML 5 permitirá
la presentación y reproducción de videos e incrustarlos en páginas sin la
necesidad de un plugin.

2.3 Protocolo HTTP


HTTP (HyperText Transfer Protocol) es el protocolo de transferencia de
hipertexto, se trata de un conjunto de reglas que rigen la transferencia de datos en
una comunicación Web de un servidor web y un cliente web.
Se trata de un protocolo de aplicación para transferencia de hipertexto, basado en
peticiones de URL.
Este protocolo de transferencia de hipertextos basado fundamentalmente en
HTML, fue implementado inicialmente en el año de 1991 y se denomino HTTP
0.9. El protocolo fue definido en 1992 e implementado en marzo de 1993. La

18
versión 1.0, esta primer versión fue desarrollado por Tim Berners-Lee y la última
versión es la 1.1 desarrollada en la RFC 2616, (Salavert, 2003, p. 142).
Entre las características más importantes que podemos citar:
- Liviano: Capaz de ser implementado en cualquier servidor y utilizado por
un cliente web sin consumir enormes cantidades de recursos
computacionales
- Rápido: Para facilitar la recuperación rápida de información.
- Sin Estado: Basado en peticiones y respuestas. Cada nueva solicitud
establece una nueva conexión con el servidor.
En el Internet, las comunicaciones HTTP generalmente toman lugar sobre
conexiones TCP. El puerto por omisión es el 80, pero también pueden ser usados
otros puertos.

Figura 2.1: Protocolo HTTP en una arquitectura Cliente/Servidor

El intercambio de mensajes de solicitud y de respuestas entre el servidor y cliente


consta de 4 fases:
a. Apertura de la conexión mediante el empleo del navegador por parte del
usuario.
b. Petición de una solicitud al servidor por parte del usuario desde su navegador.
Esto incluye la versión del protocolo, el método, el URL y otros parámetros
tales como las MIME y la información del usuario.
c. El servidor envía la respuesta al usuario, con los mensajes de error si son
necesario.
d. Finalmente se cierra la conexión.

19
2.3.1 Versiones HTTP
a) Versión HTTP 0.9
Primera versión HTTP/0.9 solo soportaba el método GET.

b) Versión HTTP 1.0


El desarrollo de HTTP 1.0. se inició en 1992 pero la versión final fue liberada en
1996. (Salavert, 2003, p. 143)
La primera versión sólida se conoce como HTTP 1.0. Protocolo inicial (HTTP 0.9.)
resultaba insatisfactorio. No había como devolver de vuelta la información sobre el
pedido Era imposible para un cliente enviar información al servidor.
Además incorpora la mayor parte de los elementos de lo que se conoce en la
actualidad.
Concepto tipo de medio (adoptó MIME - Multipurpose Internet Mail Extensions, en
español - Extensiones de Correo Internet Multipropósito).
Además se introduce por primera vez la autentificación básica.
Se crean los métodos: GET, POST y HEAD, además de los tipos de peticiones
que los clientes pueden enviar.

- Método GET
Es un tipo de petición simple y muy usada por las aplicaciones web, que sirve
para recuperar recursos estáticos del servidor.
Puede usarse para recuperar recursos dinámicos enviando parámetros al
servidor:
http://www.somoslibres.org/aplicacionDinamica?parametro=valor
Los parámetros van codificados en la misma URL

- Método POST
Se usa para mandar parámetros al servidor web, generalmente sirve para
recuperar recursos generados dinámicamente. Su funcionamiento es igual al
de GET, sólo que los parámetros se envían en el cuerpo de la petición, no son
visibles en la URL.

- Método HEAD
Sólo devuelve cabeceras (no el cuerpo), se usa para implementar cachés de
navegadores, informar al usuario del tamaño del recurso antes de intentar
recuperarlo.

c) La versión HTTP 1.1


HTTP 1.0 presentaba algunas limitaciones importantes:

20
- Lentitud de establecer TCP.
- Una transacción por conexión.
- Modelo simple y primitivo de caché.
- Mecanismos de autentificación débil.
Con la presentación de HTTP 1.1, desarrollado en 1997, incorpora un modelo de
conexión persistente, además tiene soporte para manejo de servidores virtuales,
un sistema de caché más sofisticado y esquema seguro de autentificación
(Salavert, 2003, p. 143).

Figura 2.2: Comparación de versiones del protocolo HTTP

2.4 Tecnología Web


Son las aplicaciones web que hacen uso de las Tecnologías Web, las mismas que
ofrecen ventajas enormes en cuanto a eficiencia, además el Software basado en
esta tecnología, flexible y rápido.
Las tecnologías relacionadas a la Web su gestión se simplifica mucho y el soporte
al usuario se puede realizar a distancia.
La Tecnología Web se ha convertido un área de investigación donde se
incorporan técnicas, métodos, metodologías, mecanismos para su desarrollo.
Las funciones habituales con la tecnología Web podemos citar:
a) Permite facilitar la búsqueda y localización de información.
b) Acceso a diferentes tipos de recursos de información en línea.
c) Posibilitar la comunicación con otras personas.
d) Permite publicar información en Internet.
e) Permite el aprendizaje de diferente tipo de conocimientos.
f) Posibilita realizar negocios, actividades comerciales y telegestión.

21
g) Permite actuar como un excelente medio de publicidad y mercadeo.

2.5 Tecnologías para el desarrollo Web


Las tecnologías Web son un conjunto de herramientas que permiten lograr el
proceso de desarrollo de un sitio Web de gran calidad, eficiencia, seguridad,
usabilidad, funcionamiento y capacidad de rendimiento. Existe un gran número de
herramientas para el uso y desarrollo web que desarrolladores utilizan para el
comercio, marketing, educación, salud, entre otros.
Entre las que se destacan tenemos: navegadores web, servidores web y sobre
todo lenguaje de programación

2.5.1 Navegadores Web


Son herramientas que nos permiten visualizar el contenido web, interpretando la
información de archivos y sitios Web. De esta forma 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 mediante enlaces
o hipervínculos.
Existen un gran número de navegadores, tales como: Mozilla Firefox, Google
Chrome, Amaya, Epiphany, Galeon, Internet Explorer, Konqueror, Opera, Safari,
Seamonkey, Shiira, Flock, Arora, K-Meleon, entre otros.
La mayoría de estos navegadores también funcionan en los dispositivos móviles y
tablet PC.

2.5.2 Servidores Web


Un servidor Web es un sistema distribuido que procesa una aplicación del lado del
servidor. El código recibido por el cliente suele ser compilado y ejecutado por un
navegador Web. Para la comunicación entre el servidor y cliente se utiliza el
protocolo de comunicación HTTP, perteneciente a la capa de aplicación del
modelo OSI.
Para Mateu (2004), “Un servidor web es un programa que atiende y responde a
las diversas peticiones de los navegadores, proporcionándoles los recursos que
solicitan mediante el protocolo HTTP o el protocolo HTTPS (la versión segura,
cifrada y autenticada de HTTP)”, (p. 23).
Un servidor Web básico tiene un esquema de funcionamiento muy sencillo,
ejecutando de forma infinita el bucle siguiente:
a) Espera peticiones en el puerto TCP asignado
b) Recibe una petición de un cliente web.
c) Busca el recurso en la cadena de petición.
d) Envía el recurso por la misma conexión por donde ha recibido la petición.
e) Vuelve a recibir otra petición.

22
Un servidor Web que sigue este esquema cumple con los requisitos básicos de
los servidores HTTP.
Algunos servidores web importantes son: Apache, IIS, Cherokee, Tomcat, ighttpd,
thttpd y muchos más

2.5.3 Lenguajes de programación para el desarrollo Web


Existen un gran número de lenguajes de programación para el desarrollo web en
el lado del servidor, entre los que podemos citar: PHP, Java Servlets y JavaServer
Pages (JSP), Javascript, Perl, Ruby, Python, ASP/ASP.NET, C#, entre otros
lenguajes.

2.6 Arquitectura Cliente/Servidor


Este esquema de comunicaciones "cliente-servidor“, es utilizado por las
tecnologías Web, donde el protocolo de comunicación común es el HTTP, tal
como se muestra en la figura 2.2.
La arquitectura cliente/servidor es un modelo de aplicación en un sistema
distribuido, y es la arquitectura común que más utilizan las tecnologías Web,
donde las tareas se reparten entre los proveedores denominado “servidores” y
los que solicitan la información denominados “clientes”. Un cliente realiza
peticiones a otra aplicación, el servidor, que devuelve una respuesta.
De acuerdo a Sommerville (2006) "En una arquitectura cliente-servidor, una
aplicación se modela como un conjunto de servicios proporcionados por los
servidores y un conjunto de clientes que usan estos servicios" (p. 245).
Los clientes necesitan conocer qué servidores están disponibles. Pero
normalmente no conocen la existencia de otros clientes. Clientes y Servidores son
procesos diferentes, como se muestra en la figura 2.3, que representa un modelo
lógico de una arquitectura distribuida cliente/servidor.

Figura 2.3: Arquitectura Cliente/Servidor


La mayoría de los servicios de Internet son tipo de cliente/servidor. Tan solo el
hecho de visitar un sitio Web requiere una arquitectura cliente/servidor, ya que el
servidor Web muestra las páginas Web al navegador.

23
Lección 3: Estándares Web

3.1 Estándares y otras especificaciones técnicas


La Web se basa de una gran diversidad de tecnologías y estándares, en ese
sentido ninguna tecnología puede pretender cubrir todas las necesidades de la
Web, la construcción de los inicios de la Web requiere seguir un proceso
imprescindible para asegurar la interoperabilidad de las tecnologías, por la
cantidad de sistemas operativos, lenguajes de programación, gestores de base de
datos y demás tecnologías. Por lo tanto la Web debe ser de carácter universal y
accesible para todo el mundo.
Los estándares y demás especificaciones técnicas aplicadas a la Web definen y
describen aspectos sobre el uso y desarrollo de la World Wide Web, asociado con
la tendencia de aprobar un conjunto de mejores prácticas estandarizadas para
construir y desarrollar sitios de contenido Web, diseño y desarrollo que incluyan
modelos, metodologías, técnicas, métodos y especificaciones abiertas.
Estas especificaciones y estándares no sólo son para la World Wide Web,
también para otras herramientas y tecnologías de Internet, que en su mayoría
consideran aspectos vinculados a la interoperabilidad, la accesibilidad y la
usabilidad de los sitios.
Esta es la lista de las organizaciones (Zeldman, 2005) que regulan y estandarizan
la web:
- Recomendaciones publicadas por la World Wide Web Consortium (W3C).
- Engineering Task Force (IETF), aplicada para estándares de Internet en
general.
- Request For Comments (RFC), petición de comentarios documentos
publicados por la IETF.
- ISO, estándares publicados por la Organización Internacional para la
Estandarización.
- Ecma, estándares publicados por Ecma International.
- Internet Assigned Numbers Authority (IANA), estándares aplicados para
nombres.

3.2 World Wide Web Consortium (W3C)


W3C se guía por los principios de accesibilidad, internacionalización, e
independencia de dispositivo, entre otros. Esto facilita que el acceso a la Web sea
posible desde cualquier lugar, en cualquier momento y utilizando cualquier
dispositivo.
W3C (World Wide Web Consortium) es el encargado de formular la especificación
de números estándares para la World Wide Web entre las que desatacan: HTML,
CSS y XML.

24
a. HTML
HTML, siglas en inglés HyperText Markup Language (Lenguaje de Marcas de
Hipertexto), es el lenguaje de marcado utilizado para la construcción de páginas
web.

b. XML
XML, siglas en inglés de eXtensible Markup Language (Lenguaje de marcas
extensible), es un metalenguaje extensible de etiquetas desarrollado por el World
Wide Web Consortium (W3C). XML no es un lenguaje en particular, es una
manera de definir lenguajes para diferentes necesidades. Algunos de estos
lenguajes que usan XML para su definición son XHTML, XPDL, BPEL, XSD, RSS,
SVG, MathML y muchos formatos derivados a partir de este lenguaje de marcas.
Se trata de un estándar para el intercambio de datos, interoperabilidad y utilizado
para la integración de datos, aplicaciones y procesos.

c. CSS
Las hojas de estilo en cascada (en inglés Cascading StyleSheets), es un lenguaje
para definir la presentación de un documento estructurado escrito en HTML o
XML y por extensión en XHTML.
A continuación los resultados de los estándares que formulo hasta el año 2004 la
W3C:

Figura 3.1: Estándares propuestos por la W3C hasta el año 2004


Fuente: W3C http://www.w3c.es/Presentaciones/2005/0314-estandares-JA/7.html

25
Lección 4: Implementación de un Servidor Web

4.1 Introducción a los Servidores Web


El servidor Web es uno de los componentes más importantes del ecosistema
Web, también conocido como servidor HTTP es un programa que procesa una
aplicación del lado del servidor realizando conexiones bidireccionales y
unidireccionales. El código recibido por el cliente suele ser compilado y ejecutado
por un navegador Web.
Los servidores Web se componen básicamente de los siguientes componentes:

Figura 4.1: Componentes de un Servidor Web


Fuente: Elaboración propia

Núcleo: Es el servidor como tal, y es el centro del servidor Web. Siempre está
cargado y funcionando cuando el servidor está encendido.
Módulos: Los servidores Web son bastante complejos. Estos módulos,
conocidos como extensiones del servidor, se instalan cuando se configuran los
servidores Web.
Páginas: En una determinada carpeta están alojados las páginas webs donde
está guardada la información, están estructurados en forma de árbol de
directorios.

4.2 Servidor Web Apache


Apache es un servidor Web de código libre robusto cuya implementación se
realiza de forma colaborativa, con prestaciones y funcionalidades equivalentes a
las de los servidores comerciales. El proyecto está dirigido y controlado por un
grupo de voluntarios de todo el mundo que, usando Internet y la web para
comunicarse, planifican y desarrollan el servidor y la documentación relacionada
(Rivera, 2008, p.8).

26
Se trata de un proyecto de software libre más utilizado en internet, desarrollado
por el grupo Apache Software Foundation. Este servidor ha sido creado sobre los
principales sistemas operativos Unix y Linux, para ello los creadores ha
desarrollado el servidor con los requerimientos de: seguridad, eficiencia,
extensibilidad y estandarización. Estos objetivos junto con sus características de
producto de código abierto han conseguido situarlo como uno de los servidores
web líderes en el mercado.

4.3 Implementación de un Servidor Web


Tenemos dos opciones principales para instalar Apache: podemos compilar el
código fuente o podemos instalarlo a partir de un paquete binario adecuado a
nuestro sistema operativo basado en GNU/Linux.

4.3.1 Compilación de las fuentes del Servidor Web


Para compilar apache, a partir de código fuente sobre plataforma GNU/Linux
Centos, debemos obtener, previamente, de la web de apache la versión del
siguiente sitio web: http://www.apache.org/dyn/closer.cgi, seleccione uno de los
mirrors, por ejemplo: http://apache.osuosl.org/httpd/ y luego descargue el paquete
httpd-2.2.21.tar.gz (corresponde a la última versión estable). Las versiones cuya
denominación en el nombre figura como beta, esta no es recomendable para
implementar servidores en producción.
Una vez descargado, seguiremos los siguientes pasos:
- Descomprimiremos el fichero que acabamos de descargar, que nos creará un
directorio donde estarán las fuentes del servidor.
# tar xzvf httpd-2.2.21.tar.gz -C /usr/local
- Luego ingresar al directorio donde se encuentra el programa fuente.
# cd /usr/local/httpd-2.2.21
A continuación, configuraremos el código para su compilación. Para ello
ejecutaremos:
# ./configure --prefix=/usr/local/apache --enable-so
Disponemos de algunos parámetros para ajustar la compilación de apache.
- Una vez configurado el código fuente, si no se han producido errores
procederemos a compilarlo. Para ello ejecutaremos:
# make
Para compilar apache solo se requiere como mínimo, GNU Make y GNU CC.
- Una vez compilado, podemos instalarlo en el directorio que hemos
designado como destino de acuerdo a la configuración anterior, con el
comando configure. Este paso se realiza usando uno de los objetivos que
ya tiene definido make. Concretamente lo realizaremos con:
# make install

27
- Una vez instalado, dispondremos, dentro del subdirectorio bin del directorio
de instalación, especificado con prefix, un programa llamado apachectl que
nos permitirá controlar el servidor. Para iniciar el servicio ejecutar los
siguientes comandos:
# cd /usr/local/apache/bin
# ./apachectl start
Para probar, si se ha procedido correctamente, colocar el nombre del servidor
“localhost” o la dirección ip del servidor en el navegador, donde debe mostrar la
siguiente imagen:

Figura 4.2: Probando el servidor web apache httpd

Finalmente para detener el servicio ejecutamos:


# cd /usr/local/apache/bin
# ./apachectl stop

4.3.2 Instalación de un servidor Web utilizando GNU/Linux Ubuntu


La segunda opción es instalar los archivos binarios sin necesidad de compilar las
fuentes, a continuación se instalará Apache, PHP y MYSQL desde la línea de
comandos de Linux, utilizando una conexión a internet.
Durante la instalación puede que se necesite descargar archivos desde el sitio
web de la distribución de Linux, en este caso ubuntu, por lo que es necesario
disponer de conexión a Internet; (Ramos, 2011, p. 12) los pasos a seguir son:
a. Se abre la consola, se escribe la orden sudo "su" y se pulsa la tecla "intro". A
continuación, se escribe la contraseña del usuario del sistema operativo. Una
vez como súper usuario se escribe la orden para instalar Apache:
# apt-get install apache2
b. A continuación, se escribe la orden para instalar MYSQL:
# apt-get install mysql-server
Al final, nos pide escribir una contraseña para el usuario root, el cual elegimos
a nuestra consideración.

28
c. A continuación, se escribe la siguiente orden para instalar PHP:
# apt-get install php5
d. A continuación se escribe la siguiente instrucción en consola para instalar el
módulo de Apache para autentificación MYSQL:
# apt-get install libapache2-mod-auth-mysql
e. Finalmente, se escribe la siguiente instrucción para instalar el módulo de
MYSQL para PHP:
# apt-get install php5-mysql
Para comprobar si el servidor web está funcionando, se abre el navegador web y
se escribe la URL http://localhost, debe aparecer la pantalla de apache.
Para comprobar si el servidor Mysql está trabajando, se escribe:
# mysql -u root -p
Y pulsar la tecla "Enter", nos pedirá la contraseña del usuario "root" (por defecto
presionar la tecla “Enter” en vista que por defecto se encuentra sin clave).
Para salir del editor de comando de MySQL, escribir el comando “exit”.
Finalmente, para probar la instalación de PHP se crea un archivo de nombre
"prueba.php" en la carpeta /var/www/html
# touch prueba.php
Utilizando el editor vi ingresar las siguiente líneas:
# vi prueba.php

<?
phpinfo();
?>

A continuación, abrir el navegador e ingresar el siguiente URL


http://localhost/prueba.php, debiendo mostrar la siguiente figura:

Figura 4.4: Información de la Configuración de php

29
Con esto podemos iniciar a desarrollar aplicaciones con php y mysql en una
distribución GNU/Linux ubuntu.

30
RESUMEN

La unidad desarrollada nos brinda una revisión de los fundamentos más


importantes de Internet y la World Wide Web. Se describe históricamente su
evolución, los protocolos de comunicación y las tecnologías relacionadas a la
web.
Además se plantea a la World Wide Web como el mejor referente de Internet,
gracias a la evolución del HTML, HTTP y componentes como los Navegadores
Web y Servidores Web que han permitido rápidamente la evolución y el desarrollo
de Internet. Se hace énfasis a la arquitectura cliente/servidor como un modelo de
referente para las Tecnologías Web, además de los lenguajes de programación
que permiten el desarrollo de aplicaciones.
Se describe los estándares web que regulan el crecimiento y perfeccionamiento
de la web además se presenta a la World Wide Web Consortium como la
institución referente en definir y regular los estándares de la Web.
Finalmente, en esta unidad se describe y detalla la forma de implementar un
servidor web, conociendo sus componentes, para luego compilar el código fuente
del servidor web apache o alternativamente instalando y configurando el Servidor
Web, utilizando una distribución GNU/Linux Ubuntu.

31
LECTURA

UNA BREVE HISTORIA DE INTERNET

Autores: Barry M. Leiner, Vinton G. Cerf, David D. Clark, Robert E. Kahn, Leonard
Kleinrock, Daniel C. Lynch, Jon Postel, Lawrence G. Roberts, Stephen Wolff

La primera descripción documentada acerca de las interacciones sociales que


podrían ser propiciadas a través del networking (trabajo en red) está contenida en
una serie de memorándums escritos por J.C.R. Licklider, del Massachusetts
Institute of Technology, en Agosto de 1962, en los cuales Licklider discute sobre
su concepto de Galactic Network (Red Galáctica). El concibió una red
interconectada globalmente a través de la que cada uno pudiera acceder desde
cualquier lugar a datos y programas. En esencia, el concepto era muy parecido a
la Internet actual. Licklider fue el principal responsable del programa de
investigación en ordenadores de la DARPA desde Octubre de 1962. Mientras
trabajó en DARPA convenció a sus sucesores Ivan Sutherland, Bob Taylor, y el
investigador del MIT Lawrence G. Roberts de la importancia del concepto de
trabajo en red.
En julio de 1961 Leonard Kleinrock publicó desde el MIT el primer documento
sobre la teoría de conmutación de paquetes. Kleinrock convenció a 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ó un ordenador 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
ordenadores de área amplia jamás construida. El resultado del experimento fue la
constatación de que los ordenadores de tiempo compartido podían trabajar juntos
correctamente, ejecutando programas y recuperando datos a discreción en la
máquina remota, pero que el sistema telefónico de conmutación de circuitos era
totalmente inadecuado para esta labor. La convicción de Kleinrock acerca de la
necesidad de la conmutación de paquetes quedó pues confirmada.
A finales de 1966, Roberts se trasladó a la DARPA a desarrollar el concepto de
red de ordenadores y rápidamente confeccionó su plan para ARPANET,
publicándolo en 1967. En la conferencia en la que presentó el documento se
exponía también un trabajo sobre el concepto de red de paquetes a cargo de
Donald Davies y Roger Scantlebury del NPL. Scantlebury le habló a Roberts
sobre su trabajo en el NPL así como sobre el de Paul Baran y otros en RAND. El
grupo RAND había escrito un documento sobre redes de conmutación de
paquetes para comunicación vocal segura en el ámbito militar, en 1964. Ocurrió
que los trabajos del MIT (1961-67), RAND (1962-65) y NPL (1964-67) habían
discurrido en paralelo sin que los investigadores hubieran conocido el trabajo de
los demás. La palabra packet (paquete) fue adoptada a partir del trabajo del NPL
y la velocidad de la línea propuesta para ser usada en el diseño de ARPANET fue
aumentada desde 2,4 Kbps hasta 50 Kbps.

32
En Agosto de 1968, después de que Roberts y la comunidad de la DARPA
hubieran refinado la estructura global y las especificaciones de ARPANET,
DARPA lanzó un RFQ para el desarrollo de uno de sus componentes clave: los
conmutadores de paquetes llamados interface message processors (IMPs,
procesadores de mensajes de interfaz). El RFQ fue ganado en Diciembre de 1968
por un grupo encabezado por Frank Heart, de Bolt Beranek y Newman (BBN). Así
como el equipo de BBN trabajó en IMP con Bob Kahn tomando un papel principal
en el diseño de la arquitectura de la ARPANET global, la topología de red y el
aspecto económico fueron diseñados y optimizados por Roberts trabajando con
Howard Frank y su equipo en la Network Analysis Corporation, y el sistema de
medida de la red fue preparado por el equipo de Kleinrock de la Universidad de
California, en Los Ángeles.
A causa del temprano desarrollo de la teoría de conmutación de paquetes de
Kleinrock y su énfasis en el análisis, diseño y medición, su Network Measurement
Center (Centro de Medidas de Red) en la UCLA fue seleccionado para ser el
primer nodo de ARPANET. Todo ello ocurrió en Septiembre de 1969, cuando BBN
instaló el primer IMP en la UCLA y quedó conectado el primer ordenador host. El
proyecto de Doug Engelbart denominado Augmentation of Human Intelect
(Aumento del Intelecto Humano) que incluía NLS, un primitivo sistema hipertexto
en el Instituto de Investigación de Standford (SRI) proporcionó un segundo nodo.
El SRI patrocinó el Network Information Center, liderado por Elizabeth (Jake)
Feinler, que desarrolló funciones tales como mantener tablas de nombres de host
para la traducción de direcciones así como un directorio de RFCs (Request For
Comments). Un mes más tarde, cuando el SRI fue conectado a ARPANET, el
primer mensaje de host a host fue enviado desde el laboratorio de Leinrock al
SRI. Se añadieron dos nodos en la Universidad de California, Santa Bárbara, y en
la Universidad de Utah. Estos dos últimos nodos incorporaron proyectos de
visualización de aplicaciones, con Glen Culler y Burton Fried en la UCSB
investigando métodos para mostrar funciones matemáticas mediante el uso de
"storage displays" (N. del T.: mecanismos que incorporan buffers de
monitorización distribuidos en red para facilitar el refresco de la visualización) para
tratar con el problema de refrescar sobre la red, y Robert Taylor e Ivan Sutherland
en Utah investigando métodos de representación en 3-D a través de la red. Así, a
finales de 1969, cuatro ordenadores host fueron conectados conjuntamente a la
ARPANET inicial y se hizo realidad una embrionaria Internet. Incluso en esta
primitiva etapa, hay que reseñar que la investigación incorporó tanto el trabajo
mediante la red ya existente como la mejora de la utilización de dicha red. Esta
tradición continúa hasta el día de hoy.
Se siguieron conectando ordenadores rápidamente a la ARPANET durante los
años siguientes y el trabajo continuó para completar un protocolo host a host
funcionalmente completo, así como software adicional de red. En Diciembre de
1970, el Network Working Group (NWG) liderado por S. Crocker acabó el
protocolo host a host inicial para ARPANET, llamado Network Control Protocol
(NCP, protocolo de control de red). Cuando en los nodos de ARPANET se
completó la implementación del NCP durante el periodo 1971-72, los usuarios de
la red pudieron finalmente comenzar a desarrollar aplicaciones.
En octubre de 1972, Kahn organizó una gran y muy exitosa demostración de
ARPANET en la International Computer Communication Conference. Esta fue la

33
primera demostración pública de la nueva tecnología de red. Fue también en 1972
cuando se introdujo la primera aplicación "estrella": el correo electrónico.
En marzo, Ray Tomlinson, de BBN, escribió el software básico de envío-recepción
de mensajes de correo electrónico, impulsado por la necesidad que tenían los
desarrolladores de ARPANET de un mecanismo sencillo de coordinación. En
Julio, Roberts expandió su valor añadido escribiendo el primer programa de
utilidad de correo electrónico para relacionar, leer selectivamente, almacenar,
reenviar y responder a mensajes. Desde entonces, la aplicación de correo
electrónico se convirtió en la mayor de la red durante más de una década. Fue
precursora del tipo de actividad que observamos hoy día en la World Wide Web,
es decir, del enorme crecimiento de todas las formas de tráfico persona a
persona.

Documento extraído de "A Brief History of Internet".


Publicado en el número de Mayo/Junio de 1997, revista de la Internet Society,
http://www.internetsociety.org/internet/internet-51/history-internet/brief-history-internet
y se publica con la debida autorización.
El artículo está basado en otro publicado en el número de Febrero de 1997 de la revista
Communications de la ACM

34
AUTOEVALUACIÓN
1. Según Vértices, Internet se constituye como un fenómeno:
a. Político
b. Cultural
c. Social
d. Gubernamental
e. Sociocultural

2. Según Hervo, Internet es considerado como una red:


a. Centralizada
b. Privada
c. Abierta
d. Restringuida
e. Cerrada

3. Es el encargado de administrar los dominios .pe en Perú:


a. IANA
b. ISOC
c. RCP
d. El Estado Peruano
e. W3C

4. Para Cancelo y Giraldez “lo que hace que una red funcione
adecuadamente es el mantenimiento de los estándares de comunicación
llamados …”:
a. Ordenadores
b. Protocolos
c. Conexiones
d. Telecomunicaciones
e. Centro Procesamiento de Datos

5. El protocolo TCP de acuerdo al modelo TCP/IP corresponde a la capa:


a. Aplicación
b. Transporte
c. Internet
d. Red
e. Enlace de datos

6. El siguiente ejemplo:
body {
padding-left: 11em;
font-family: Georgia, "Times New Roman", serif;
color: red;
background-color: #d8da3d;
}

h1 {
font-family: Helvetica, Geneva, Arial, sans-serif;
}

35
Corresponde a:

a. html
b. java
c. css
d. html5
e. php

7. Se define como procesos que requieren bastante tiempo de


procesamiento por parte del navegador, pero que se podrán realizar en
un segundo plano:
a. APIS
b. Base de Datos
c. Aplicaciones Web
d. Web Workers
e. HTML

8. Aplicada para estándares de Internet en general.


a. W3C
b. RFC
c. IANA
d. IETF
e. ISO

9. Considerado un metalenguaje cuya simplificación y adaptación del SGML


permite definir la gramática de lenguajes específicos:
a. html
b. jsp
c. xml
d. css
e. php

10. Es un modelo de aplicación que más utilizan las tecnologías web:


a. Petición y Respuesta
b. Sistema Distribuido
c. Protocolo de Comunicación
d. Cliente/Servidor
e. Estándares Web

36
RESPUESTAS DE CONTROL

1. e 2. c 3. c 4. b 5. b 6. c 7. d 8. d 9. c 10. d

37
EJERCICIOS PROPUESTOS

Caso: Instalación y Configuración del Servidor Web en GNU/Linux

Realizar la ejecución de comandos como usuarios “root”.

1. Ingresar al sitio de internet http://www.php.net/downloads.php y descargar la


versión (Current stable) de php con extensión .tar.gz.

Ingresar al mirror ó Sitio Canadá y descargar el paquete.

Para desempaquetar y descomprimir el paquete php-VERSION1.tar.gz ejecute


las siguientes líneas de comando:

Nota: reemplazar VERSION1 por la que corresponde. Ejemplo: VERSION1 =


5.3.8 ó superior.

cd /root/Desktop
tar xzvf php-VERSIÓN1.tar.gz -C /usr/local

2. Ingresar al sitio de internet http://www.apache.org/dyn/closer.cgi y luego dar


clic en cualquiera de los enlaces que muestra en pantalla. Un vez que ingreso
busque e identifique la carpeta httpd para luego dar clic sobre ella. Descargar
la última versión de httpd (apache) con extensión .tar.gz.

Para desempaquetar y descomprimir el paquete httpd-VERSION2.tar.gz en


/usr/local ejecute las siguientes líneas de comando:

Nota: reemplazar VERSION2 por la que corresponde. Ejemplo: VERSION2 =


2.2.21 ó superior.

cd /root/Desktop
tar xzvf httpd-VERSION2.tar.gz -C /usr/local

Para compilar, configurar e instalar apache ejecute las siguientes líneas de


comando:

cd /usr/local/httpd-VERSION2/
/configure --prefix=/usr/local/apache --enable-so
make
make install

3. Para activar el servicio del apache ejecute:

/usr/local/apache/bin/apachectl start

Luego abrir el browser y escriba en la barra de dirección lo siguiente:


http://localhost

38
Debe de mostrar una página con el texto Its Work

Bajar el servicio de apache ejecutando la línea de comando:

/usr/local/apache/bin/apachectl stop

4. Ingrese al directorio /usr/local/php-VERSION1

cd /usr/local/php-VERSION1

5. Ejecute la siguiente línea de comando para la configuración:

./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql --with-gd


--with-jpeg-dir --with-png-dir --with-zlib --with-zlib-dir --with-freetype-dir
--with-kerberos --with-openssl-dir --with-pear=/usr/local/php-VERSION1/pear
--with-bz2 --with-iconv --enable-mbstring --enable-zip --with-gettext
--enable-gd-native-ttf --with-curl --with-xmlrpc --with-mysqli
6. Ejecute el comando make para la compilación

make

7. Ejecute make install para la instalación

make install

8. Copiar el archivo php.ini-development a /usr/local/lib/ como php.ini

cp php.ini-dist /usr/local/lib/php.ini

9. Editar el archivo de configuración del Servidor Web Apache httpd.conf. Ingrese


al directorio /usr/local/apache/conf:

cd /usr/local/apache/conf
vi httpd.conf

a. A continuación en la modifique la línea:

#ServerName www.example.com

Retirar la almohadilla (#) e ingrese la IP o el HOSTNAME de su ordenador


quedando de la siguiente manera.

ServerName INGRESE_IP_DE_SU_ORDENADOR

Nota.- Para obtener la dirección IP del ordenador ejecute el comando


ifconfig

b. Identifique a continuación el siguiente módulo:

39
<IfModule dir_module>
DirectoryIndex index.htm
</IfModule>

Y modifíquelo de la siguiente manera:

<IfModule dir_module>
DirectoryIndex index.php index.htm index.html default.htm
</IfModule>

c. Comprobar que la siguiente línea se encuentre habilitada:

LoadModule php5_module modules/libphp5.so

Nota.- En caso de no visualizar la línea anterior deberá volver a ejecutar los


comandos a partir desde el paso 4.

d. Agregar al final, del archivo de configuración de apache, lo siguiente:

<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

Guardar los cambios.

10. Levantar el servicio de apache, ejecute la siguiente línea de comando:

/usr/local/apache/bin/apachectl start

11. Para comprobar la configuración del Servidor crear el siguiente archivo dentro
del directorio /usr/local/apache/htdocs

cd /usr/local/apache/htdocs
touch info.php

Con el editor vi crear el archivo

vi info.php

Agregue el siguiente contenido:

<?php
phpinfo();
?>

40
Guardar los cambios.

12. En el browser o navegador ingrese el siguiente URL

http://IP_DE_SU_ORDENADOR/info.php

13. Ingresar al sitio de Internet


http://www.phpmyadmin.net/home_page/downloads.php y descargar el
paquete phpMyAdmin-VERSION3-all-languages.tar.gz

Nota: reemplazar VERSION3 por la que corresponde. Ejemplo: VERSION3 =


3.4.9 ó superior.

tar xzvf phpMyAdmin-VERSION3-all-languages.tar.gz -C


/usr/local/apache/htdocs

14. Renombrar la carpeta phpMyAdmin-VERSION3-all-languages de la siguiente


manera:

cd /usr/local/apache/htdocs
mv phpMyAdmin-VERSION3-all-languages phpmyadmin

En el browser abrir el siguiente URL

http://IP_DE_SU_ORDENADOR/phpmyadmin

Caso: Instalación de otros servidores Web

a. Instalar y configurar el servidor Web Jetty y Apache Tomcat


b. Realizar una comparación técnica entre los servidores Web: thttpd, Roxen,
AOLServer y Glassfish

Caso: Versiones HTML

a. Desarrollar un formulario en versiones HTML básico, HTML Dinámico y


HTML5 y mostrarlo en el servidor Web.
b. Crear un formulario utilizando HTML 4.0, su hoja de estilo más su control
dinámico utilizando java script.

Caso: Hoja de Estilos (CSS)

Crear una página web con una hoja de estilo, donde caracterice el tipo de fuente,
tamaño, justificación y defina como background una imagen.

41
EXPLORACIÓN ON LINE

URL: http://www.w3c.es/
Sitio oficial de la World Wide Web Consortium (W3C) donde se definen los
estándares web como html, xml y rss. Recientemente definieron el estándar
HTML 5.0.
URL: http://www.internetsociety.org/
Sitio oficial de la Internet Society organización no gubernamental y sin ánimo
de lucro, constituida como la única organización dedicada exclusivamente al
desarrollo mundial de Internet
URL: https://developer.mozilla.org/en/Canvas_tutorial
Tutorial de Canvas desarrollado por la empresa Mozilla que promueve el uso
del estándar HTML 5.0, este componente permite crear imágenes incluso en
3D utilizando HTML
URL: http://cmapspublic2.ihmc.us/rid=1239136955718_1163871558_10281/
Publicación acerca de la historia y evolución de internet
URL: http://httpd.apache.org
Sitio oficial The Apache HTTP Server Project Apache, donde encontrará
documentación para el proceso de instalación, configuración y soporte técnico
de este servidor

42
REFERENCIA BIBLIOGRÁFICA

Aubry, C. (2009) CSS 2.1: adopte las hojas de estilo


para dominar los estándares de la Web.
Barcelona: Editorial Casa del Libro.
Atelin, P. (2007) TCP/IP y protocolos de internet.
Barcelona: Ediciones ENI
Bravo, C. y Redondo, M. A. (2005) Sistemas interactivos y
colaborativos en la web. Cuenca:
Ediciones de la Universidad de Castilla-La
Mancha
Cancelo, P. y Giraldez, J. A. (2007) La tercera Revolución. La Coruña:
Editorial NetBiblio, S.L.
De Viveiros, J.M. (2011) La Integración de Internet en el
Aula. Alicante: Editorial Club Universitario.
Egea, C. (2007) Diseño Web para tod@s I:
accesibilidad al contenido en la Web.
Barcelona: Icaria Editorial
Hervo, C. (2007) Microsoft Internet Explorer 7.
Barcelona: Ediciones ENI
Lester, David. (2011) Como empezaron. 18 Buenas
ideas que se convirtieron en grandes
empresas, Ediciones PROFIT, Barcelona.
Mañas, J.A. (2004) Mundo IP: Introducción a los
secretos de internet y las redes de datos.
Madrid: Ediciones Nowtiles, S.L.
Mateu, C. (2004) Desarrollo de Aplicaciones Web.
Barcelona: Eureca Media, SL
Odlyzko, A.M. (2000) The history of communications and
its implications for the Internet. Minnesota
Ramos, A. (2011) Aplicaciones Web. Madrid:
Editorial Paraninfo
Raymond McLeod, Jr. (2000) Sistemas de Información
Gerencial, Séptima Edición, Ediciones
Pearson Educación.
Rivera, R. N. (2008) Tesis: Desarrollo de un sistema
automatizado para mejorar la eficiencia en
la gestión de pacientes del ISRI-CRIOR
de la ciudad de San Miguel. El Salvador:
Universidad de Oriente del San Salvador
Salavert, A. (2003) Los protocolos en las redes de
ordenadores. Barcelona: Ediciones UPC.

43
Sommerville, I. (2006) Ingeniería de Software (Séptima
Edición). Madrid: Pearson Educación, S.A.
Vértices S.L. (2008) Introducción a Internet. Málaga:
Publicaciones Vértice S.L.
Zeldman, J. (2005) Diseño con Estándares Web.
Madrid: Grupo Anaya Comercial.
W3C (2008) Guía Breve de Estándares
Web.URL:
www.w3c.es/divulgacion/guiasbreves/Esta
ndares. Obtenido 2 de Diciembre 2012)

44
BIBLIOGRAFÍA COMENTADA

- Cafasi, E. (1998) Internet: Políticas y Comunicaciones. Buenos Aires: Editorial


Biblos.
Puede revisar el capítulo I, sobre la redefinición de las esferas públicas y
privadas a partir de la ampliación del uso de internet. Además la página 205
hasta la 220 sobre el Internet y las publicaciones científicas
- Coulouris, G., Dollimore, J., & Kindberg, Tim (2007) Sistemas Distribuidos
Conceptos y Proyecto 4ta Edición. Madrid: Addison Wesley.
Puede revisar la unidad 2, sobre los modelos de arquitectura de los sistemas
distribuidos.
- Lackerbauer, I. (2000) Internet. Barcelona: Marcombo S.A.
Puede revisar el capítulo I sobre la historia y formación de internet, además de
la página 253 donde le explican cómo crear su propia página.
- Eck, M. (2002) Tecnología: Mapas para el Futuro, La internet por dentro y por
fuera. New York: The Rosen Publishing Group.
Puede revisar la página 16, sobre el nacimiento de la World Wide Web, la
página 22 sobre la administración de Internet y la página 40 sobre una
cronología sobre Internet.
- Fernández, A. (1998) Producción y diseño gráfico para la World Wide Web.
Barcelona: Editorial Paidós.
Se recomienda revisar la unidad 6, sobre la estructura de la información en la
World Wide Web, además de las Guías de estilo para diseño gráfico en la
World Wide Web.

45
SEGUNDA UNIDAD

Web 2.0 y Web 3.0

Sumario

La siguiente unidad describe los fundamentos de la Web 2.0 y Web 3.0 y las
aplicaciones utilizadas para la gestión de contenidos y aplicaciones de inteligencia
artificial.
Así mismo, se realiza la definición de los Web Services, el uso de los estándares
más utilizados, cuales son las características más resaltantes y su arquitectura a
través los componentes básicos relacionados a los protocolos de comunicación.
Al finalizar la unidad, definimos la Web Semántica y sus principales componentes
y mecanismos que ayudan a convertir la Web en una gran infraestructura global
para los usuarios.

46
Objetivos

Al finalizar esta unidad, el estudiante será capaz de:

Conocer los fundamentos de la Web 2.0 y las aplicaciones que se relacionan,


tales como: Redes Sociales, Sistema de Gestión de Contenidos y Aprendizaje.
Conocer los fundamentos de la Web 3.0 y las aplicaciones utilizadas en el
entorno Web.
Reconocer estándares, características y arquitectura de los Web Services.
Identificar los componentes de la Web Semántica.

47
Lección 5: Fundamentos de la Web 2.0

5.1 Historia y Evolución de la Web


Los acontecimientos más importantes en el nacimiento de la Web se remontan en
los años cuarenta:
− 1945: Vannevar Bush escribe el artículo "As We May Thik" en el Atlantic
Monthñy sobre un dispositivo fotoeléctrico y mecánico, llamado menex, capaz
de crear y seguir enlaces entre distintos documentos almacenados en
microfichas (un sistema parecido a lo que hoy se conoce como hipertexto),
(Luján, 2002, p. 15).
− 1965: Ted Nelson acuña el término "hipertexto" en el artículo "A File Structure
for the Complex, the Changing and the Indeterminate". Comienza el desarrollo
del proyecto Xanadu, un sistema basado en hipertexto que nunca llegó a
completarse (Luján, 2002, p. 15).
− 1980: Mientras trabaja en el CERN, Tim Berners-Lee escribe un programa
llamado Enqure-Within-Upon-Everuthing, que permite crear enlaces entre
nodos. (Luján, 2002, p. 15-16).
− 1989 (marzo): Tim Berners-Lee escribe "Information Management:A proposal",
un informe interno que circula por el CERN (Luján, 2002, p. 16).
− 1990 (septiembre): Mike Sendll, jefe de Tim Berners-Lee da el visto bueno a la
compra del ordenador NeXT, lo que permite a Tim seguir adelante y crear un
sistema global de hipertexto (Luján, 2002, p. 16).
− 1990 (octubre): Tim Berners-Lee inicia el desarrollo de un editor y navegador
gráfico de hipertexto para NEXTStep, el sistema operativo con entorno gráfico
de los ordenadores NeXT. Elige WorldWideWeb como nombre del programa
"World Wide Web" como nombre del proyecto, después de descartar una serie
de nombre: Information Mesh, Mine of Information e Information Mine (Luján,
2002, p. 16).
− 1990 (noviembre): se instala el primer servidor Web y se pública la primera
página Web.
− 1991 (junio): se celebra un seminario sobre WWW en el CERN
− 1991 (agosto): se publica en Internet los ficheros del primer navegador.
− 1991 (diciembre): Paul Kunz instala el primer servidor Web fuera de Europa en
Stanford Linear Accelerator Center (SLAC), (García, 2007, p. 19).
− 1992: aparecen los primeros navegadores de terceras partes, Erwise, Viola y
Midas.
− 1992: Marc Andreesen y Eric Bina comienzan a trabajar en un nuevo
navegador gráfico para Unix en la Nation Center for Supercomputing
Applications (NSCA), (García, 2007, p. 20).
− 1993 (febrero): se publica el navegador gráfico NCSA Mosaic para X-Window
sobre Unix, dando inicio a Nestcape y al resto de navegadores de hoy en día
(Aguilar, 2003, p. 131).

48
A continuación las tecnologías y estándares que han permitido la evolución de la
Web hasta la versión Web 4.0:

Figura 2.1: Evolución de la Web


Fuente: Radas Networks y Nova Spivack 2007

Como hemos visto, la Web ha pasado por tres etapas o generaciones muy claras:
a) Primer Generación de Contenido estático
b) Segunda Generación de Contenido Dinámico o Interactivo
c) Tercera Generación o de Contenido Colaborativo
Sin embargo, la evolución continúa y desde el año 2010 estamos en pleno
desarrollo de la web 3.0 donde destaca la Web Semántica e Inteligencia Web.

5.2 Web 1.0


La Web se inicia con la versión 1.0 o simplemente Web 1.0, donde las páginas
eran estáticas y el usuario todavía no podía interactuar con las páginas. Sus
características son:
− Las páginas Web estaban escritas en un simple editor de texto utilizando solo
código HTML. Las tareas de añadir, cambiar o actualizar algo en la página
web requería mucho tiempo y trabajo.
− Los usuarios eran simples lectores que podían ver contenidos como textos e
imágenes y no podían registrarse ni comentar o añadir contenidos a las
páginas, era una labor técnica y en algunos casos sin herramientas de apoyo.

49
− Todavía no se definía alguna norma de diseño, con lo que era fácil
encontrarse página con múltiples colores y diseños incluso extravagantes.
− En su inicio no se utilizaban gestores de base de datos para guardar o
almacenar información, por lo tanto no existían los usuarios ni el registro de
usuarios, todos eran visitantes.
En la Web 1.0 no existía Google, Altavista o Yahoo u otros buscadores. Tampoco
existía Facebook, Myspace, Messenger, menos mensajería instantánea.
Existiendo, en aquel momento, canales de IRC.
Los contenidos y el diseño estaban juntos en el código HTML de las páginas. Si
alguien deseaba cambiar alguna característica de la página, como el color o el
tipo de letra de un párrafo, era necesario cambiarlo en cada uno de ellas y se
incrementaba la labor por la gran cantidad de páginas que había que mantener.

5.3 ¿Qué es la Web 2.0?


El termino Web 2.0 fue utilizado por primera vez por una diseñadora, Dacy
Dinucci, en 1999. Lo usó en un artículo titulado <<Fragmented Future>> para
referirse a los cambios estéticos y de diseño que empezaban a apreciarse en la
Web, ya que comenzaba a acceder a ella con diferentes tipos de dispositivos, no
sólo ordenadores. Tim O'Reilly, el presidente de O'Reilly Media, en 2004, lo
acuño, como título de una conferencia que estaba organizando. (Barza y Capella,
2010, pp. 20-21).
La Web 2.0 es la representación de la evolución de las aplicaciones tradicionales
hacia aplicaciones Web enfocadas al usuario final. La Web 2.0 es una actitud y no
necesariamente precisa de una tecnología.
La Web 2.0 es la transición que se ha dado de aplicaciones tradicionales hacia
aplicaciones que funcionan a través de la Web enfocada al usuario final. Todo el
alto grado de interactividad es el común denominador. Se trata de aplicaciones
que generen colaboración y de servicios que reemplacen las aplicaciones de
escritorio desarrolladas en esa época.
Es una etapa que ha definido nuevos proyectos en Internet y está preocupándose
por brindar mejores soluciones para el usuario final. Muchos aseguran que hemos
reinventado lo que era el Internet, otros hablan de burbujas e inversiones, pero la
realidad es que la evolución natural del medio realmente ha propuesto cosas más
interesantes como lo analizamos diariamente en las notas de actualidad.
La Web 2.0 no se trata de una nueva Internet ó tecnología ó herramienta, se trata
de enfocar la Web en un nuevo rumbo con más participación de los usuarios que
lo utilizan.
Se trata de pensar la Web como una plataforma, plantea una arquitectura y una
visión de los intereses y necesidades de los usuarios.

5.4 Aplicaciones más populares de la Web 2.0


Las aplicaciones Web 2.0 usan diferentes tecnologías que dan inicio a la
transformación de Internet, cuyas características se pueden resaltar:

50
- Transformar las aplicaciones de escritorio hacia una plataforma
completamente Web.
- El uso de los estándares como el XHTML.
- Separación de contenido del diseño con uso de hojas de estilo.
- Sindicación de contenidos utilizando RSS.
- Uso de técnicas como Ajax (combinación de javascript asincrónico y xml) para
crear aplicaciones interactivas.
- Uso de los framework como Ruby on Rails para desarrollar otras aplicaciones
Web utilizando el patrón de diseño arquitectónico MVC.
- Utilización de redes sociales como facebook, twitter, identica y redes sociales
especializadas de acuerdo a alguna especialidad.
- Los usuarios toman el control del manejo de la información.
- Proveer API utilizando XML para que las aplicaciones puedan ser manipuladas
por otros.
- Uso de XML como lenguaje para la interoperabilidad e intercambio de datos.

Por lo tanto las aplicaciones más significativas de la Web 2.0 podemos citar:
− Wiki: Se trata de un tipo de aplicación colaborativa que bajo la estructura de
un procesador de texto en línea permite que cualquier usuario pueda escribir,
publicar o editar archivos o enlaces, sin ninguna complejidad.
− Repositorios: Es una herramienta que permite compartir conocimientos entre
investigadores y académicos. Creados bajo la filosofía colaborativa, ofrecen la
posibilidad de subir o descargar de la Web, herramientas tales como: archivos
de multimedia, textos, sonidos o videos que pueden ser utilizadas con fines
científicos o pedagógicos, principalmente en universidades y centros de
estudios.
− Flickr: Es el nombre de una empresa que planteó la posibilidad de compartir
imágenes a través de Internet. También se caracteriza por ofrecer un espacio
de almacenamiento gratuito y por contar con una interfaz intuitiva, permite
subir fotografías sin necesidad de instalar algún tipo de aplicación en el
computador.
− YouTube: Es una herramienta que le permite al usuario subir y compartir
videos o imágenes animadas sin contar con grandes recursos tecnológicos.
YouTube usa un reproductor en línea basado en Adobe Flash, actualmente
puede utilizar también un reproductor HTML.
− Lectores RSS: Las aplicaciones RSS permiten que los usuarios se suscriban
y enlacen a una página con notificaciones cada vez que la página cambia o se
actualiza. Muy utilizado por todos los medios de comunicación.
− Podcasting: Método distribución de archivos en formatos de audio o video a
través de Internet, para ser escuchados en dispositivos portátiles. La diferencia
entre un podcast y una descarga de audio o video es la suscripción. Las
subscripciones se actualizan de manera sin visitar el sitio Web origen. Las
radios comerciales proporcionan sus contendidos con esta tecnología.

51
− Redes Sociales: Se trata de comunidades participativas y colaborativas
donde se establecen relaciones entre usuarios en base a sus intereses
comunes. Se trata de aplicaciones muy visitadas e interactivas por los
usuarios de internet.
− Weblogs: Es un espacio de comunicación personal donde sus contenidos
abarcan cualquier tipo de tema y el usuario publica información de interés,
además presentan una marcada estructura cronológica, donde hay enlaces a
sitios web de referencia que tienen relación con los contenidos del blog.

5.5 Redes Sociales


Se trata de uno de los desarrollos más innovadores de la Web 2.0. Desde que
fueron concebidas, su finalidad ha sido la de crear un lugar de encuentro para que
miles de usuarios con interés comunes puedan comunicarse.
Actualmente, millones de usuarios comparten aficiones, amistades, ideas,
fotografías, vídeos y elementos multimedia de todo tipo. Su crecimiento ha si sido
tan enorme que se ha convertido en un fenómeno social.
Para Fernández (2010) "Las redes sociales son Web que permiten a los usuarios
entrelazarse para poder comunicarse entre sí, con los amigos que se encuentren
dentro de su propia red, en la cual pueden intercambiar fotos, video, mensajes
instantáneos, comentarios en fotos, etc. Existen diferentes tipos de redes, éstas
son las redes profesionales, temáticas, mixtas, de ocio, personas, entre otros., y
aún hoy siguen creciendo nuevos tipos de redes. Las redes que suelen utilizar los
jóvenes son las redes personales de ocio." (p. 7).
Aplicaciones como Youtube, Myspace, Facebook, Twitter, este último en ocupar
los primeros puestos en el ranking absoluto de los lugares más visitados de
Internet, están cambiando totalmente la forma de relacionarnos con nuestros
amigos, vecinos, conocidos, clientes, seguidores y compañeros de trabajo
(Ramos, 2011, p. 22).
El funcionamiento es sencillo. Una persona se registra en una red social (por
ejemplo en facebook) y empieza a invitar amigos y conocidos a formar parte de la
red para compartir intereses, preocupaciones, fotos, mensajes, etc.; los amigos y
conocidos reciben invitaciones y deciden unirse a la red; estos a su vez invitan a
otros amigos, proporcionando la posibilidad de interactuar y compartir intereses
con personas que no conocemos. Las redes sociales son sistemas abiertos que
se va construyendo con lo que cada miembro aporta y rompe el aislamiento de
muchas personas en una sociedad tan tecnificada como el actual, donde ha
tenido un uso masivo en los teléfonos móviles.
Las ventajas de las redes sociales son numerosas, entre las que podemos
destacar:
a) Permiten la relación e interacción con otras personas.
b) Permite establecer contacto profesional e incluso encontrar oportunidad
laboral.
c) Plataforma ideal para el entretenimiento y ocio.
d) Posibilidad de publicar todo tipo de contenido, incluso la capacidad de
hacer una transmisión en vivo (lifestreaming).

52
Sin embargo, como cualquier aplicación, también tiene sus puntos débiles, entre
los que destaca:
a) Nuestra privacidad puede verse en peligro, en caso que dejemos abierta el
perfil todo el mundo podría verlo.
b) Otro riesgo es la suplantación de personalidad, que es una forma de
engaño en la que una persona pretende ser o hacerse pasar por otra.
c) Falta de control de datos, sobre todo cuando publicamos, este puede
convertirse en propiedad de las redes sociales.

5.6 Weblogs y Blogósfera


Un blog, es una bitácora donde el usuario publica información, se trata de un
espacio o sitio Web periódicamente actualizado 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.
Un blog constituye una herramienta de colaboración asincrónica que permite que
cualquiera pueda expresar ideas y poner contenidos a disposición de otros en la
Web de una manera sencilla (Martínez, 2009, p.121).
Por lo general los blogs son entornos:
− Colaborativos: ya que permiten que otros internautas añadan comentarios a
las entradas iniciadas por el creador del blog.
− Definibles: es decir, se puede delimitar quiénes pueden añadir comentarios, lo
que hace posible que se creen entornos restringidos aunque a la vez sean
públicos y visibles a cualquier otro usuario Web.
− Interactivos: desde ellos pueden enlazarse otros sitios Web, videos, audios,
etc. dando acceso a otros contenidos y permitiendo la puesta en práctica de
otras habilidades lingüísticas. Algunos espacios permiten incluso que se suban
archivos de audio (podcasts).
− Gratuitos: al menos existe un gran número de espacios donde crear blogs que
incluso no incluyen ningún tipo de publicidad.
Blogósfera como un sistema virtual, en el que se establecen comunidades de
weblogs, categorizados temáticamente o por perfiles de interés. Estos conforman,
pues, el mensaje y la blogosfera, el lugar para habitar en Internet (Cabero, 2006,
p.234)

5.7 Implementación de un blog personal


Crear un blog es simple y fácil de editar a menudo, a continuación estas son las
consideraciones que debe seguir, antes de iniciar la creación de un blog:
1. Escoger un tema.
2. Escoger un buen nombre para tu blog.
3. Escoger una buena plataforma tecnológica para tu blog.
4. Escoger una plantilla adecuada de acuerdo al tema.

53
5. Definir un tiempo de frecuencia para publicar los post.
6. Intentar ser perseverante y activo en la blogósfera.
7. Redactar artículos interesantes para tus lectores y de calidad.
Si puedes hacer esto, tu blog puede tener éxito en la blogósfera.
A continuación los pasos para crear un blog personal utilizando el sitio de
“blogger.com” de Google.
Lo primero que se debe hacer es escribir en la barra de direcciones del navegador
la siguiente URL http://www.blogger.com
Entonces aparecerá la página principal del sitio Blogger, en la que vas a realizar
tres sencillos pasos para crear tu blog. Lo único que necesitas es una cuenta de
correo electrónico de Google la empresa dueña de este servicio de blogs.
A continuación los pasos a seguir para crear el blog personal:
a. Crear una cuenta
Una vez en la página del sitio Blogger, nos invitan a crearnos un blog con el
lema: "Crea un blog. Es gratuito", la primera fase sólo será necesaria si no
tenemos cuenta en Google. Si la tenemos, hay que hacer clic en el enlace
"comenzar ", desde donde accederemos al segundo paso. A continuación
aparece un formulario que debe completar la información requerida:
− Una cuenta de correo electrónico existente, que tendremos que repetir en
el siguiente campo de texto. Aquí se escribe la dirección completa de la
cuenta.
− Una contraseña escrita dos veces para evitar errores. Tiene que incluir
ocho caracteres como mínimo, y puede verificarse su fortaleza, es decir, su
calidad como contraseña, haciendo clic en el enlace correspondiente.
− El nombre que aparecerá como autor del blog y de los artículos. Se puede
optar por un apodo o por nuestro nombre real.
− Una verificación, que consiste en escribir las letras que aparecen en una
pequeña imagen, lo cual se hace para evitar que se creen cuentas
automáticamente.
− Activar la casilla de aceptación de las condiciones. Conviene leer estas
"Condiciones y usos del servicio de Blogger", que muchos encuentran
abusivas.
Una vez completado los campos hacemos clic en la flecha “Continuar”, y
continuamos con el siguiente paso

b. Elegir adecuadamente el nombre del blog


En esta fase simplemente escribiremos un nombre para nuestro blog, que
podremos cambiar más tarde, y le asignaremos una dirección de Internet, Es
importante que la dirección sea corta, fácil de recordar y generalmente con
letras minúsculas, sin caracteres especiales como tildes. La dirección suele
ser el nombre del blog o el nombre del autor, pero se puede poner lo que se
quiera.

54
Por ejemplo un nombre de prueba puede ser “tecnologiaweb". Después
Blogger añade la parte final hasta quedar así:
http://tecnologiaweb.blogspot.com
Antes de continuar hay que hacer clic en el enlace que dice Comprobar la
disponibilidad para ver si ese nombre ya está elegido por otro usuario; y suele
ocurrir con frecuencia que ya esté utilizado.

c. Elegir una plantilla


En este último paso tendremos que elegir una plantilla o conocido un theme,
que es el diseño general del blog. Elegiremos la que más nos guste, pero más
adelante podremos cambiarla siempre que lo deseemos..

d. Acceder al blog
La forma más sencilla es ir a la página principal de Blogger
http://www.blogger.com, y allí nos presentan un formulario con un campo de
texto y otro de contraseña. En el primero escribimos nuestro nombre de
usuario, en este caso nuestra cuenta de Google o la dirección completa de la
cuenta de correo con que registramos nuestro blog. Cuando hagamos clic en
el enlace Acceder, llegaremos a nuestro Escritorio del blog.
Escribiendo la dirección completa del nuevo blog como, por ejemplo:
http://tecnologiaweb.blogspot.com. En este caso, aparecerán unos enlaces en
la parte superior del blog. Hay que hacer clic en Acceder, que está en la parte
derecha, y entonces llegaremos a la página principal de Blogger para incluir
nuestros datos.
Y encima de ella veremos la barra de Blogger, con la que podremos entrar a la
sección de Administración y escribir una Nueva Entrada en el blog o elegir la
opción “Personalizar el Diseño”, además de otras funciones.

e. Panel de control
Cuando accedemos a nuestro blog, recién creado, nos encontramos con el
Escritorio, que nos da acceso a la parte privada del blog o administración.
Desde aquí controlamos todos nuestros blogs y también, a la izquierda,
nuestro perfil de usuario y cuenta.
El perfil de usuario es importante para formar parte de la comunidad de
Blogger, que es muy extensa en todo el mundo. Estos datos personales los
podrán ver los visitantes de nuestro blog, pero también se verán mediante un
enlace cuando escribamos un comentario en otro blog. Siempre es
conveniente que escribamos algunos datos nuestros para que los demás nos
conozcan, aunque sea un poco, pues no hay que olvidar que el carácter
personal es importante en los blogs.
En el panel de control, aparecen otros enlaces importantes, que corresponden
a las principales secciones de la administración del blog:

55
− Nueva entrada, para escribir un nuevo texto en nuestro blog.
− Editar entradas, para ver todas las entradas escritas en el blog y editarlas.
− Comentarios, si los hubiera, para mostrar todos los comentarios de nuestro
blog.
− Configuración, para configurar nuestro blog, es decir, una serie de opciones
para personalizarlo según nuestros gustos y necesidades.
− Diseño: para modificar el diseño elegido o escoger otro nuevo.
− Monetizar: es una nueva opción para ganar dinero con la publicidad de
AdSense, propia de Google.
− Estadísticas, que nos proporciona unas breves estadísticas de las visitas a
nuestro blog.

5.8 Sistema de Gestión de Aprendizaje (LMS)


Sistema de Gestión de Aprendizaje, (Learning Management System - LMS) es
una aplicación instalado en un servidor, que se emplea para administrar, distribuir
y controlar las actividades de formación a distancia de una institución u
organización.
Las principales funciones del LMS son: gestionar usuarios, recursos así como
materiales y actividades de formación, administrar el acceso, controlar y hacer
seguimiento del proceso de aprendizaje, realizar evaluaciones, generar informes,
gestionar servicios de comunicación como foros de discusión, videoconferencias,
entre otros.
Un LMS se focaliza en gestionar contenidos creados por fuentes diferentes, en
este caso un docente. La labor de crear los contenidos para las asignaturas se
desarrolla mediante un LCMS (Learning Content Management Systems). La
mayoría de los LMS funciona con tecnología internet cuya plataforma tecnología
en un sistema cliente servidor web.
Un LMS es una aplicación residente en un Servidor Web, en la que se desarrollan
acciones formativas. Es sinónimo de plataforma virtual. Es el lugar donde
alumnos, tutores, profesores o coordinadores se conectan a través de Internet
(navegador web) para descargar contenidos, ver el programa de asignaturas,
enviar correos al profesor, charlar con los compañeros, debatir en un foro,
participar en una tutoría, etc. (Varela, 2007, p. 54).

5.8.1 Implementación de un LMS


Para iniciar el proceso de instalación es necesario conocer los requisitos
necesarios en este caso vamos a proceder a utilizar el LMS Chamilo, una
aplicación web de Software Libre.

a) Prerrequisitos
Chamilo puede ser instalado indiferentemente en servidores Windows, Linux, Mac
OS X y UNIX. Sin embargo, recomendamos el uso de un servidor Linux para una

56
óptima flexibilidad, control remoto y escalabilidad. (Chamilo puede ser instalado
indiferentemente en servidores Windows o Linux.
Chamilo es un LMS que se ejecuta con Apache, MySQL y PHP (trilogía también
llamada AMP).
Puede ser enriquecida con la conversión a PowerPoint (característica llamada
Dokeos Oogie) mediante el uso de OpenOffice.org + Java. Quizás también quiera
agregar el plugin de Videoconferencia de Chamilo mediante el uso de RED5
servidor de código abierto de Flash.
Todo este software es software de código abierto y está disponible libremente.
Para ejecutar Chamilo LMS en su servidor, necesita instalar WAMP, LAMP o
MAMP:
- Para instalar WAMP (AMP en Windows), recomendamos el instalador XAMPP
.exe
- Para instalar LAMP (AMP en Linux), use el administrador de paquetes de su
distribución favorita (Synaptic, RPMFinder etc.). Por ejemplo, en un servidor
Ubuntu, use Shell o Synaptic siguiendo la Ubuntu guide on Apache y las
secciones siguientes.
- Para instalar MAMP (AMP en Mac OS X), referirse al sitio web dedicado a
MAMP.

b) Servidor de Base de Datos MySQL


Se necesitará una cuenta de acceso y una contraseña que le permita administrar
y crear al menos una base de datos. De manera predeterminada, Chamilo creará
una nueva base de datos para cada curso. Usted también puede instalar Chamilo
con una sola base de datos, en ese caso, deberá seleccionar esta opción durante
la instalación.
Para aprovechar la ventaja de la conversión Oogie de PowerPoint / Impress,
necesita:
− OpenOffice.org y Java Runtime Environment
Para aprovechar la ventaja de la Videoconferencia de Chamilo se necesita:
Servidor de Flash de Código Abierto RED5.

c) Proceso de Instalación de Chamilo LMS


- Descargar Chamilo LMS (http://www.chamilo.org/es/download-es)
- Descomprimirlo.
- Copiar el directorio de Chamilo en su directorio web de Apache. Este puede
ser C:\xampp\htdocs\ en un servidor Windows o /var/www/html/ en un servidor
Linux.
- Abrir su navegador web (Internet Explorer, Firefox...) y escribir
http://localhost/chamilo/ si se instala de manera local o
http://www.domain.com/chamilo/ si se instala remotamente.

57
- Seguir el proceso de instalación web. Usted puede aceptar todos los valores
predeterminados. Considere cambiar la contraseña de administrador y
recuérdela.
Los siguientes directorios necesitan tener permisos de lectura, escritura y
ejecución para todo el mundo (remplace [chamilo] por el directorio en el cual está
ubicado su Chamilo):
[chamilo]/main/inc/conf/
[chamilo]/main/upload/users/
[chamilo]/main/default_course_document/images/
[chamilo]/archive/
[chamilo]/courses/
[chamilo]/home/
Opcionalmente, puede hacer lo mismo a los directorios siguientes si desea activar
la subida de paquetes de estilos CSS y la definición de sub-idiomas:
[chamilo]/main/css/
[chamilo]/main/lang/
En Linux, Mac OS X y sistemas operativos BSD puede usar el comando CHMOD
0777. En Windows, es probable que necesite revisar las propiedades de los
directorios (mediante el uso del clic derecho en ellos).
Los siguientes archivos necesitan tener permisos de lectura y escritura para el
navegador web, sólo durante la instalación de Chamilo:
chamilo/main/inc/conf/configuration.php
En Linux, Mac OS X y sistemas operativos BSD usted puede usar el comando
CHMOD 666 para esto (aunque nosotros recomendamos que busque la ayuda de
un administrador de sistemas con experiencia). En Windows, es probable que
usted necesite revisar las propiedades de los directorios (mediante el uso del clic
derecho en ellos).

d) Configuración PHP
Para obtener lo mejor de Chamilo, necesita ajustar la configuración de PHP.
Considere:
Editar el archivo php.ini (en Windows puede estar ubicado en
C:\xampp\php\php.ini, en Ubuntu Linux : /etc/php5/apache2/php.ini
Buscar la palabra "max" y incrementar los valores para optimizar el servidor
Quizás desee terminar con los siguientes valores:
max_execution_time = 300 ; Tiempo máximo de ejecución para cada script, en
segundos
max_input_time = 600 ; Tiempo máximo que cada script que puede emplear para
analizar los datos solicitados

58
memory_limit = 256M ; Máxima cantidad de memoria que un script puede
consumir (128MB)
post_max_size = 64M
upload_max_filesize = 100M
Algunos usuarios pueden encontrar problemas si en sus configuraciones de PHP
no se ajustan a las siguientes:
short_open_tag = On
safe_mode = Off
magic_quotes_gpc = On
magic_quotes_runtime = Off
En versiones de Chamilo/Dokeos anteriores se requerirá que register_globals
estuviera configurada en On. Esto ya no necesario, puede estar configurado en
Off y Chamilo funcionará bien.
Si usa PHP 5.3 o superior, se necesita configurar la variable date.timezone a la
zona horaria de su servidor. Por ejemplo, si su servidor está en la zona horaria
'America/Lima', modificar en el php.ini:
date.timezone = 'America/Lima'

5.9 Sistema de Gestión de Contenidos


Popularmente conocido con su acrónimo CMS, es la herramienta software que
permite al usuario gestionar dinámicamente los elementos que componen un sitio
web. Desde la creación de páginas, redacción, diseño, archivos a permisos
(Rojas, 2006, p. 95).
Un Sistema de Administración de Contenidos (CMS) provee las herramientas
necesarias para gestionar el ciclo de vida de los contenidos: creación, gestión,
presentación, mantenimiento y actualización de un portal web.
Los Sistemas de Administración de Contenidos son programas que permite crear
una estructura de soporte para la creación y administración de contenidos por
parte de los participantes de un sitio web de manera sencilla, flexible y sin muchos
conocimientos técnicos.
Consiste en una interfaz que controla una o varias bases de datos donde se aloja
el contenido del sitio. El sistema permite manejar de manera independiente el
contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier
momento un diseño distinto al sitio sin tener que darle formato al contenido de
nuevo, además de controlar la publicación en el sitio. Un ejemplo clásico son los
editores que cargan el contenido al sistema y otro de nivel superior que permite
que estos contenidos sean visibles a todo el público (Moro y Torres, 2008, p. 95).
Originalmente usado para la publicación de sitios web, los primeros sistemas de
administración de contenidos fueron desarrollados internamente por
organizaciones que publicaban en Internet, como revistas en línea, periódicos y
publicaciones de algunas empresas. En 1995, CNET sacó su sistema de primer

59
CMS y creó una compañía llamada Vignette, que abrió el mercado para los
sistemas de administración de contenido comerciales.
Las ventajas de los CMS:
− Mantenimiento completamente descentralizado.
− Los autores de los contenidos con pocos conocimientos técnicos.
− Consistencia del diseño y flexible su cambio.
− Contenido almacenado en una sola base de datos.
− Contenido dinámico y altamente actualizable.
− Actualizaciones permanentes.
− Coordinación de tareas para publicar entradas entre los usuarios del CMS.
− Programación de contenido de acuerdo a un calendario establecido.
A continuación se muestra una comparación de cinco CMS en función de los
requerimientos del sistema, de la aplicación del servidor, del costo y de las bases
de datos que utiliza cada CMS.

Tabla 5.1: Comparación de CMS


Fuente: Adaptado de http://multimedia.uoc.edu/~wordpress/wp-content/uploads/cms.pdf
Bricolage Drupal Poseidon
CMS Joomla! 1.5.6 OLAT 5.2
1.10 6.4 0.6.1
Requerimientos
Bricolage Drupal Joomla! OLAT Poseidon
del sistema
Supports PHP
Aplicación de PHP PHP
mod_perl (Apache Tomcat
servidor 4.3.5+ 4.3.0+
recommended)
Open-
Costo Source Gratuito Gratuito 0 Gratuito
(Gratuito)
MySQL,
Postgres,
MySQL, MySQL
Bases de datos PostgreSQL MySQL mSQL,
Postgres 4.0.3+
Interbase,
Sybase

5.9.1 Implementación de un CMS


Se puede instalar en Windows ó Linux y estos son los requerimientos que se
necesitan:
− Descarga alguna versión actual, del URL: http://www.joomlaspanish.org/
− Un Servidor local Apache, previamente instalado, por lo menos una versión de
PHP 5.XX.XX o superior

60
A continuación, los pasos a seguir para la instalación:
a. Una vez descargado Joomla, lo descomprimiremos en la carpeta www., de
nuestro servidor local, o en la carpeta de inicio del servidor web, o en la
carpeta donde está la configuración de su localhost.
b. El segundo paso, será crear la base de datos, para este paso es necesario
tener instalado "phpmyadmin"
c. En "phpmyadmin", elegiremos un nombre para nuestra base de datos, por
ejemplo “joomla”, y haremos clic en el botón “crear”.
d. Una vez creada la base de datos, empezaremos con la instalación de Joomla,
para esto escribiremos en nuestro navegador la siguiente URL
“http://localhost/index.php”, nos mostrará una pantalla donde tendremos que
elegir el idioma de instalación, y después haremos clic en el botón siguiente,
situado en la parte superior derecha.
e. En la siguiente pantalla, debemos verificar que todos los campos estén de
color verde, para así tener una instalación completamente funcional y sin
ningún error. Si todo está bien, hacemos clic en siguiente.
f. El siguiente paso es leer la licencia del programa, y hacer clic en siguiente.
g. En la siguiente pantalla, debemos rellenar los campos con la información de
nuestra base de datos creada anteriormente. Para el tipo de la base de datos,
elegiremos la opción, MySQL, en nombre del servidor escribiremos “localhost”,
en este campo casi siempre el nombre será localhost,. En nombre de usuario y
contraseña, escribiremos los datos del usuario para conectarnos a nuestra
base de datos, como estamos en localhost, utilizaremos “root”, y colocamos la
contraseña correspondiente. El siguiente campo, será ingresar el nombre de
nuestra base de datos antes creada, en este caso "joomla". Es importante
llenar completamente los campos y presionamos el botón siguiente.
h. Después encontraremos una pantalla para la configuración de la cuenta FTP,
este paso no es necesario llenarlo por ahora.
i. El paso siguiente será llenar el nombre que tendrá nuestro sitio web, el correo
del administrador, así como su contraseña. También existe una opción de
instalar los datos de ejemplo, esto es recomendado para principiantes, pero si
deseas hacer una instalación limpia, no hagas clic sobre ese botón. Una vez
llenados los campos con los datos correctos, hacemos clic en el botón
siguiente.
j. En la siguiente pantalla, nos aparecerá un mensaje que nos indica que
debemos eliminar completamente el directorio de instalación.
k. Para eliminarlo, debemos entrar a los archivos de Joomla, que se encuentran
dentro de la carpeta www., y eliminar completamente la carpeta llamada
“installation”.
l. Con esto hemos terminado nuestra instalación de Joomla, y podremos
acceder a nuestro panel de administración desde la siguiente URL,
“http://localhost/administrator/index.php”, después ingresamos nuestro nombre
de usuario que es “Admin”, y nuestra contraseña que ingresamos en el paso
donde se le asigno un password al administrador.

61
m. Una vez ingresado, ya estaremos en la administración de Joomla. Y colocando
el URL http://localhost, tendremos el sitio web instalado con Joomla

62
Lección 6: Fundamentos de la Web 3.0

6.1 ¿Qué es la Web 3.0?


La expresión Web 3.0 fue acuñada por John Markoff, periodista que hace las
veces de corresponsal del New York Times en Silicon Valley, en el año 2006. La
expresión se refería a la futura tercera generación de servicios basados en
Internet que podrían caracterizarse por una Web Inteligente y que incluirían
algunos conceptos como la Web Semántica, las búsquedas en lenguaje natural, el
aprendizaje de las máquinas, los agentes recomendadores y las tecnologías
relacionadas con inteligencia artificial, entre otras (Miltiadis, Lytras y Ordoñez,
2009, p. 33).
Para Castello (2010), "La Web 3.0 representa una evolución lógica de la Web 2.0,
en la que las capacidades de la Web participativa se acentúa más si cabe y la
interacción a través de espacios 3.0 se multiplican. Se trata de la próxima
generación web que está aquí y cuyo estudio, por tanto, debe ser abordado desde
el ámbito científico en sus diversas vertientes: social, comunicativa, tecnológica,
etc." (p. 111),
La base de esta interpretación de la Web 3.0 es que las máquinas podrán
procesar la información de una forma más inteligente, dándonos mayor
productividad y una experiencia de usuario más instintiva.
Sobre esta definición de la Web 3.0, debemos extraer algunos conceptos para
explicarlos y reflexionar un poco más sobre en qué medida estamos o no en ese
camino: la Web Semántica, el Lenguaje Natural y las Máquinas Inteligentes.
En resumen, se muestra algunas aplicaciones de las diferentes evoluciones de la
Web, en la siguiente tabla:

Tabla 5.1: Aplicaciones web en sus diferentes versiones


Fuente: Albalá, E. (2011) Bienvenida Web 3.0: Guía para sobrevivir en la Internet 2011.
(pp. 12-13)
Web 1.0 Web 2.0 Web 3.0
Double click Google AdSense Publicidad Personalizada
Ofoto Flickr Búsquedas Visuales
Mp3.com Napster iTunes
Britannica Wikipedia Inteligencia Colectiva
Online
Páginas Web Blogs Twitter a través de dispositivos
Personales móviles
Evite Upcoming-org Twitter y redes con
y EVDB Geoposicionamiento
Especulación Optimización Posicionamiento social y en
con los en buscadores las tiendas de aplicaciones
nombres de
dominio
Páginas vistas Coste por clic Número de seguidores o de
descargas de Apps
Publicación Participación Interacción dentro

63
del círculo social
Sistemas de gestión Wikis Apps de publicación en redes
de sociales desde dispositivos
Contenidos móviles
Directorios Etiquetados Búsqueda semántica
(taxonomía) (folksonomía) (imágenes / App Stores) y
búsquedas sociales
Recuerdo de Sindicación Vinculación en redes,
direcciones web seguimiento en Twitter y
suscripción en iTunes

6.2 Aplicaciones de la Web 3.0


La Web3.0 está centrado en motores de búsqueda visuales y con multimedia,
además de la aplicación de la inteligencia artificial Web, los juegos en 3D a través
de la Web, la realidad aumentada transformará la Web, los mundos virtuales
serán un entorno común donde los usuarios y estos podrán interactuar de manera
virtual y mucho más interactiva que la Web 2.0.

6.2.1 SOA
"Una aplicación SOA (Arquitectura Orientada a Servicios) es una colección de
servicios y un servicio es la unidad atómica de una SOA, los servicios encapsulan
procesos de negocios, los proveedores de servicios se registran solos, un servicio
involucra: Find, Bind, Execute y las instancias más conocidas son los web
services" (Brooks, 2008).
La arquitectura orientada a servicios (SOA), es un marco de trabajo conceptual
que permite a las organizaciones unir los objetivos de negocio con la
infraestructura de TI integrando los datos y la lógica de negocio de sus sistemas
separados.
"Permite la creación de sistemas altamente escalables que reflejan el negocio de
la organización, brinda una forma estándar de exposición e invocación de
servicios (comúnmente pero no exclusivamente con Web Services), lo cual facilita
la interacción entre diferentes sistemas propios o de terceros" (Bieberstein, 2003).
Con SOA, una empresa puede mantener sus inversiones en los sistemas
heredados y a la gente necesaria para mantenerlos, es una solución prometedora
para los problemas de integración de sistemas de información y aplicaciones.
La propuesta SOA implica, descomponer la lógica de negocio de una
organización en partes más pequeñas. Donde cada una de ellas contiene su
propia unidad lógica.
SOA es un enfoque para diseñar y desarrollar soluciones de negocio, a partir de
componentes independientes que exponen funciones como servicios accesibles
por otros componentes a través de interfaces estándares.
SOA permite alinear las capacidades de TI con los objetivos de negocio y visión
del negocio, donde provee una infraestructura técnica para responder a los
cambios de requerimientos del negocio.

64
6.2.2 Web 3D
Según Revuelta y Pérez (2009) "Se menciona que la Web 3D, liderada por el Web
3D Consortium (http://www.web3d.org/), forma parte de la Web 3.0” (p. 149).
El desarrollo de entornos virtuales 3D es un paradigma propio de los videojuegos
y de difícil aplicabilidad a la Web. El 3D en la Web por ahora se encuentra en fase
de desarrollo. Los principales estándares Web que se están desarrollando van
enfocados a incluir el 3D como un estándar.
Los mundos virtuales requieren de una identidad virtual encarnada en un avatar,
con esta forma de identidad interactúan los usuarios entre sí. Los Mundos
virtuales generalmente son gratuitos aunque incluyen la posibilidad de compra
con dinero real bienes virtuales, formación y otras funcionalidades.
La consultora KZero Worldswide (http://www.kzero.co.uk) afirma que las cuentas
abiertas en los diferentes mundos virtuales superan ya la cifra de los mil millones.
Los mil millones de cuentas pertenecen a niños y adolescentes (la mitad del
mundo a la que no escuchamos según Marc Prensky, inventor del término nativos
digitales).
Se listan algunos de los principales mundos virtuales según la consultora KZero
(Albalá, 2011, p. 45) a finales del tercer trimestre de 2010:
- Poptropica (110 millones). Juego online de Pearson Education dirigido a niños
de entre 6 y 15 años, donde los jugadores pueden viajar a través del mundo
virtual, competir en diferentes juegos y comunicarse con los demás niños en
un entorno seguro.
- Moshi Monsters (27 millones). Juego gratuito en red para niños de 7 a 12 años
en el que el jugador adopta y cuida como mascota a un monstruo. Los
jugadores ganan puntos y pasan a nuevos niveles, resolviendo pruebas
educacionales.
- BarbieGirls.com (19 millones). Mundo virtual para niñas de entre 6 y 13 años,
lanzado por Mattel y con las muñecas Barbie como principal gancho.
- Neopets (63 millones). Otro sitio de mascotas virtuales que permite adoptar a
una de las 54 diferentes especies de mascotas virtuales y jugar a cientos de
juegos flash y otras actividades que posee, para así ganar neopntos, con los
que comprar diferentes objetos.
- Habbo (176 millones). Ya entrando en el ámbito adolescente (el 90% de los
visitantes tiene entre 13 y 18 años), Habbo es el mundo virtual líder por
número de usuarios. Tiene dos tipos de salas de chat virtual, las públicas
(representan escenas tales como restaurantes, parques, cines, clubes y
discotecas) y las privadas, que son habitaciones que los usuarios pueden
personalizar a través de decoración y enseres que se compran con créditos.

6.2.3 Realidad Aumentada


Se trata de recreaciones virtuales donde el usuario recibe información
suplementaria virtual mientras recorren por el espacio físico real. El ejemplo más
destacado es el proyecto Archeoguide, en el que los visitantes al recinto de
Olimpia (Grecia) pueden ver una construcción virtual del santuario en un PDA,

65
junto con información asociada, mientras recorren entre los restos del yacimiento
(Carreras y Munilla, 2007, p. 87).
La realidad aumentada consiste en recrear virtualmente contenidos añadidos a los
objetos que tenemos por delante. Podemos distinguir dos vertientes principales:
- La generación de objetos virtuales tridimensionales y en movimiento a partir de
una información física en dos dimensiones.
- La incorporación de información sobre el entorno que nos rodea.
Se puede visualizar claramente la primera funcionalidad a través del vídeo
http://www.youtube.com/watch?v=m3SJo2u7tQo
Otro ejemplo de este tipo de aplicaciones (en este caso enfocada a un público
diferente) la tenemos en http://www.youtube.com/watch?v=Y4M-vmA_m18
En el vídeo se puede ver un dispositivo instalado en tiendas de juguetes y como,
enfocando una caja de Lego cerrada a través del mismo, se muestra en una
pantalla cómo será el juguete una vez montadas todas las piezas.
La segunda posibilidad (la incorporación de información sobre el entorno que nos
rodea) se explota precisamente saliendo de casa, y está muy ligada a los
dispositivos móviles. A través de dispositivos móviles, permite reinterpretar la
realidad que nos circunda, ofreciendo datos añadidos sobre la imagen que
obtenemos desde el visor de la cámara.
El turismo es uno de los sectores que pueden salir muy beneficiados de este tipo
de aplicaciones. Un ejemplo puede verse en
http://www.youtube.com/watch?v=GTgocMYUiK8
En España ya están surgiendo algunas propuestas en este sentido como
http://www.gps.huescalamagia.es desarrollada por Trackglobe. Donde el turista
realiza una visita virtual y en directo por la provincia de Huesca, de la forma más
cómoda, utilizando incluso su propio dispositivo móvil.

6.2.4 Apps
Se trata de programas que se instala en un dispositivo móvil en teléfonos móviles
o tablet PC y se puede integrar a los equipos. Estos programas se pueden
actualizar automáticamente.
Las Apps, para los dispositivos móviles, son pequeños programas que se
descargan para ejecutar alguna tarea concreta. Entre las Apps más populares
podemos encontrar los accesos directos a sitios como Facebook, Youtube,
Twitter, incluso aplicaciones de geolocalización. (Albalá, 2011, p. 70).
Andreas Constantinou director de investigación de la consultora Vision Mobile,
considera que las Apps pueden considerarse como la nueva Web, ya que añaden
no sólo nuevas formas de interacción sino de descubrimiento, monetización y
utilización del contexto. Podemos ver un resumen de las diferencias que apunta
entre la Web y las Apps en la siguiente tabla

66
Tabla 5.1: Comparaciones Apps y la Web convencional
Fuente: Albalá, E. (2011) Bienvenida Web 3.0: Guía para sobrevivir en la Internet 2011.
(p. 74)

Descripción Apps Web


Descubrimiento App Store Búsquedas o
direcciones URL
Utilización del contexto Geolocalización, Información
contexto social, proporcionada de forma
agenda… explícita
Acceso Online / offile Online

Monetización Micropagos Publicidad

Diseño del interfaz A medida del usuario Buscando la


compatibilidad con los
navegadores y
buscadores

Interacción Pantalla táctil, Teclado y ratón


sensores de
movimiento, teclado,
cámara…
Usabilidad Enfocada en fines Enfocada en la
concretos navegación
Modelo Económico Consecución de Economía de la
descargas atención

67
Lección 7: Web Services

7.1 ¿Qué son los Web Services?


Se trata de aplicaciones que utilizan los mismos estándares de internet y
protocolos que intercambian información entre diferentes sistemas, muchos
consideran como una "caja negra" a la que hay que proveer datos de entrada
específica y obtener una respuesta determinada.
"...Los Servicios Web son aplicaciones ofrecidos a través del Web, no son por
tanto nada nuevo, sino más bien una re-invención de la rueda con ideas
prestadas de Corba y DCOM" (Moliner, 2005, p. 238).
Un Web Services o Servicio Web se comunica por medio de mensajes, utilizando
el protocolo SOAP entre diferentes computadoras a través de una red, de manera
transparente, independiente del lenguaje de programación, independiente del
sistema operativo y de la plataforma.
"Los Servicios Web significan la evolución de la informática distribuida, cuyo
principio arquitectónico es permitir que aplicaciones de un entorno se conecten y
compartan datos y contenido con aplicaciones de otro entorno distinto" (Munilla y
García, 2003, p. 72).
Los Web Services se diseñan para permitir que los componentes se comuniquen
con otros una vez conectados, además de ofrecer servicios de información y
operaciones transaccionales. Este tipo de tecnología utiliza XML como formato
estándar para compartir información y datos, basado en estándares de Internet
(WSDL, SOAP y UDDI) para el registro de comunicaciones. Este tipo de
aplicaciones interactúan con otras aplicaciones usando los protocolos de internet.
Como soluciones de intercambio de datos, usa la red de internet como plataforma
operacional y sirve como una práctica para implementar SOA (Arquitectura
Orientada a Servicios).

7.2 Estándares que usan los Web Services


Los Web Services, utilizan los mismos estándares de internet para construir y
habilitar Web Services, las que podemos mencionar a continuación:
− HTTP ((HyperText Transfer Protocol).
− XML (Extensible Markup Language).
− SOAP (Simple Object Access Protocol).
− WSDL (Web Services Description Language).
− UDDI (Universal Description, Discovery and Integration).

7.2.1 Hypertext Transfer Protocol (HTTP)


El Protocolo de transferencia de hipertexto, es un mecanismo más extendido
utilizado por los servidores y los navegadores web para comunicarse. Este
protocolo regula las solicitudes de los navegadores y las transferencias de
ficheros HTML por parte de los servidores. Se encuentra orientado a las

68
transacciones bajo el esquema de petición respuesta entre un cliente y un
servidor.

7.2.2 Extensible Markup Language (XML)


El Lenguaje de Marcas Extendida es un estándar para estructurar datos, formatos
y contenido para documentos electrónicos, donde se definen etiquetas
semánticas para organizar un documento. Además XML es un metalenguaje que
permite diseñar un lenguaje propio de etiquetas.
A diferencia de un lenguaje de etiquetas normal HTML, utilizando XML te permite
definir su propio lenguaje.
XML es considerado como un lenguaje universal que sirve para intercambio de
datos e información entre aplicaciones, sistemas y dispositivos sobre la red de
Internet.

7.2.3 Simple Object Access Protocol (SOAP)


El Protocolo de Acceso de Objeto Simple, es un tipo de protocolo de mensajería
basada y construido en XML que se usa para codificar información de los
requerimientos de los Web Services, además permite responder los mensajes
antes de enviarlos por la red.
Estos mensajes SOAP codificados en XML son independientes de los sistemas
operativos y pueden ser transportados por los protocolos que funcionan con
Internet, como SMTP, MIME y HTTP.

7.2.4 Web Services Description Language (WSDL)


El Lenguaje para la Descripción de Web Services, es un formato basado en XML,
que permite definir la interfaz pública para los servicios Web. Esta descripción
definida en XML sirve para establecer una comunicación con los Web Services.

7.2.5 Universal Description, Discovery and Integration (UDDI)


Es un directorio distribuido que opera en la Web, ofrece servicios para registrar,
publicar y buscar Web Services, además de comprobar qué servicios web están
disponibles. Es utilizado como mecanismo de descubrimiento de Web Services y
averiguar si están disponibles.

7.3 Características de los Web Services


Los Web Services presentan diferencias sobre sistemas distribuidos tradicionales,
entre los que podemos citar:
− Interoperabilidad: Los Web Services Consumidores pueden ser utilizados
para recuperar información de diferentes Web Services Proveedores que se
ejecutan en diferentes plataformas.

69
− Tipos de datos de las Interfaces: Los tipo de datos definidos para los
Servicios Web se corresponde con los tipos de datos definidos por la mayoría
de lenguajes de programación.
− Acceso externo desde Internet: Los Web Services Proveedores realizan una
buena gestión para los accesos que provienen de los Web Services
Consumidores desde Internet.
− Soporte de cualquier lenguaje de programación: La puesta en marcha de
un Web Services no está ligada a un lenguaje de programación en particular,
por lo tanto se puede implementar o usar un Web Services
independientemente del lenguaje de programación en el que fue
implementado, por ejemplo: Java, Python, php ó .Net.
− Uso de los estándares de Internet: Los Web Services utilizan los estándares
de Internet y estas soluciones evitan, en su medida de lo posible, reinventar
soluciones a problemas que ya están resueltas.
− Soporte para cualquier infraestructura de componentes distribuidas: Los
Web Services no están ligados a una arquitectura de componentes
determinados. Los protocolos que utilizan estas soluciones facilitan las
comunicaciones entre las distintas infraestructuras de los objetos distribuidos.

7.4 Arquitectura de los Web Services


Los Web Services, en vez de obtener peticiones desde un navegador y devolver
páginas web como respuesta, recibe peticiones, mediante un mensaje formateado
con SOAP, desde otras aplicaciones realiza la labor que le han pedido y devuelve
un mensaje de respuesta en formato SOAP.
En la figura 7.1 muestra los componentes básicos, sus relaciones protocolos de
comunicación de los Web Services.

Figura 7.1: Arquitectura de un Web Services


Fuente: Adaptación propia

70
La arquitectura básica del modelo de Web Services describe a un consumidor, un
proveedor. Relacionados con estos agentes están las operaciones para publicar,
encontrar y enlazar, tal como se muestra en la figura 7.1.
Básicamente consiste en que un Web Services Proveedor pública sus servicios
en un corredor en este caso el WSDL, luego un consumidor se conecta al
corredor utilizando el URL del WSDL para encontrar los servicios deseados
expresados en operaciones y una vez que lo hace esta conexión se realiza un
lazo entre el consumidor y el proveedor.

71
Lección 8: Web Semántica

8.1 ¿Qué es la Web Semántica?


La Web semántica que promulga la Web 3.0 no depende del funcionamiento de
los buscadores sino de la estructura de la propia Web (ya que sus elementos
deben tener asociados atributos que otorguen significado).
La Web Semántica es la confluencia de la inteligencia Artificial y las tecnologías
Web que proponen introducir descripciones explícitas sobre el significado de los
recursos, para permitir que las propias máquinas tengan un nivel de comprensión
de la Web suficiente como para hacerse cargo de una parte, la más costosa,
rutinaria, o físicamente inabarcable, del trabajo que actualmente realizan
manualmente los usuarios que navegan e interactúan con la Web. A partir de la
situación actual de la Web y sus limitaciones, en este articulo se motivan y
explican las propuestas de la Web semántica, se describen las tecnologías más
importantes desarrolladas para llevarlas a cabo, así como el punto en el que se
encuentra este proyecto promovido por el propio inventor de la Web (Bravo y
Redondo, 2005, p. 195).
En poco más de una década desde su aparición, la World Wide Web se ha
convertido en un instrumento de uso cotidiano en nuestra sociedad, comparable a
otros medios tan importantes como la radio, la televisión o el teléfono, a los que
aventaja en muchos aspectos. La Web es hoy un medio extraordinariamente
flexible y económico para la comunicación, el comercio y los negocios, ocio y
entretenimiento, acceso a información y servicios, difusión de cultura, etc.
Paralelamente al crecimiento espectacular de la Web, las tecnologías que la
hacen posible han experimentado una rápida evolución. Desde las primeras
tecnologías básicas: HTML y HTTP, hasta nuestros días, han emergido
tecnologías como CGI, JavaScript, ASP, JSP, PHP, Flash, J2EE, XML, por citar
algunas de las más conocidas, que permiten una Web mejor, amplia, potente,
flexible, o fácil de mantener. Estos cambios influyen, y son al mismo tiempo
influidos por la propia transformación de lo que entendemos por WWW. La
generación dinámica de páginas, el acoplamiento con bases de datos, la mayor
interactividad con el usuario, la concepción de la Web como plataforma universal
para el despliegue de aplicaciones, la adaptación al usuario, son algunas de las
tendencias evolutivas destacadas en los últimos años.
Entre las últimas tendencias que pueden repercutir en el futuro de la Web a medio
plazo, a finales de los 90 surge la visión de lo que se denomina la Web semántica
(Berners-Lee 2001). Se trata de una corriente, promovida por el propio inventor
de la Web y presidente del consorcio W3C, cuyo fin es lograr que las máquinas
puedan entender, por tanto utilizar, lo que la Web contiene. Esta nueva Web
estaría poblada por agentes o representantes de software capaces de navegar y
realizar operaciones por nosotros para ahorrarnos trabajo y optimizar los
resultados. Para conseguir esta meta, la Web semántica propone describir los
resultados de la Web con representaciones procesales (es decir, entendibles) no
sólo por personas, sino por programas que puedan asistir, representar, o
reemplazar a las personas en tareas rutinarias o inabarcables para un humano,
Las tecnologías de la Web semántica buscan desarrollar una Web más
cohesionada, donde sea aún más fácil localizar, compartir e integrar información y

72
servicios, para sacar un partido todavía mayor de los recursos disponibles en la
Web.
Se basa en un conjunto de tecnologías pensadas en volver el contenido de los
recursos (imágenes, textos, vídeos, etc.) de la Web para que sean accesibles y
utilizables por los internautas. La Web Semántica fue creada por la World Wide
Web Consortium (W3C), el organismo de estandarización de los lenguajes web.
Este sistema permite unir las informaciones que hasta ese momento fueron
tratadas por separado. El funcionamiento de la Web Semántica integra en la Web
actual la posibilidad de agregar varios datos relacionados entre ellos, ya sea
semánticamente o por atributos que los determinan. Por ejemplo, para la siguiente
búsqueda "actor de Nueva York de 20 años de edad", un motor de metadatos
será capaz de producir una lista de referencias que corresponderá exactamente a
los criterios solicitados de búsqueda.
Según la W3C: “La Web Semántica es una Web extendida, dotada de mayor
significado en la que cualquier usuario en Internet podrá encontrar respuestas a
sus preguntas de forma más rápida y sencilla gracias a una información mejor
definida. Al dotar a la Web de más significado y, por lo tanto, de más semántica,
se pueden obtener soluciones a problemas habituales en la búsqueda de
información gracias a la utilización de una infraestructura común, mediante la
cual, es posible compartir, procesar y transferir información de forma sencilla”.
(W3C http://www.w3c.es/divulgacion/guiasbreves/websemantica)
Esta Web extendida, se apoya en lenguajes universales que resuelven los
problemas ocasionados por una Web carente de semántica en la que, en
ocasiones, el acceso a la información se convierte en una tarea difícil y frustrante.
La Web ha cambiado profundamente la forma en la que nos comunicamos,
hacemos negocios y realizamos nuestro trabajo. La comunicación prácticamente
con todo el mundo en cualquier momento y a bajo coste es posible hoy en día.
Podemos realizar transacciones económicas a través de Internet. Tenemos
acceso a millones de recursos, independientemente de nuestra situación
geográfica e idioma. Todos estos factores han contribuido al éxito de la Web. Sin
embargo, al mismo tiempo, estos factores que han propiciado el éxito de la Web,
también han originado sus principales problemas: sobrecarga de información y
heterogeneidad de fuentes de información con el consiguiente problema de
interoperabilidad.
La Web Semántica ayuda a resolver estos dos importantes problemas
permitiendo a los usuarios delegar tareas en software. Gracias a la semántica en
la Web, el software es capaz de procesar su contenido, razonar con este,
combinarlo y realizar deducciones lógicas para resolver problemas cotidianos
automáticamente.

Ejemplo:
Supongamos que la Web tiene la capacidad de construir una base de
conocimiento sobre las preferencias de los usuarios y que, a través de una
combinación entre su capacidad de conocimiento y la información disponible en
Internet, sea capaz de atender de forma exacta las demandas de información por

73
parte de los usuarios en relación, por ejemplo, a reserva de hoteles, vuelos,
médicos, libros, etc.
Si esto ocurriese así en la vida real, el usuario, en su intento, por ejemplo, por
encontrar todos los vuelos a Praga para mañana por la mañana, obtendría unos
resultados exactos sobre su búsqueda. Sin embargo la realidad es otra.
La figura 8.1 muestra los resultados inexactos que se obtendrían con el uso de
cualquier buscador actual, el cual ofrecería información variada sobre Praga pero
que no tiene nada que ver con lo que realmente el usuario buscaba. El paso
siguiente por parte del usuario es realizar una búsqueda manual entre esas
opciones que aparecen, con la consiguiente dificultad y pérdida de tiempo.

Figura 8.1: Resultados de un buscador actual sin web semántica


Fuente: http://www.w3c.es/divulgacion/guiasbreves/websemantica

Con la incorporación de semántica a la Web los resultados de la búsqueda serían


exactos. La figura 8.2 muestra los resultados obtenidos a través de un buscador
semántico. Estos resultados ofrecen al usuario la información exacta que estaba
buscando. La ubicación geográfica desde la que el usuario envía su pregunta es
detectada de forma automática sin necesidad de especificar el punto de partida,
elementos de la oración como "mañana" adquirirían significado, convirtiéndose en
un día concreto calculado en función de un "hoy".

74
Figura 8.2: Resultados de un buscador actual sin web semántica
Fuente: http://www.w3c.es/divulgacion/guiasbreves/websemantica

Algo semejante ocurriría con el segundo "mañana", que sería interpretado como
un momento determinado del día. Todo ello a través de una Web en la que los
datos pasan a ser información llena de significado. El resultado final sería la
obtención de forma rápida y sencilla de todos los vuelos a Praga para mañana por
la mañana.

8.2 Componentes de la Web Semántica


Para obtener esa adecuada definición de los datos, la Web Semántica utiliza
esencialmente RDF, SPARQL, y OWL, mecanismos que ayudan a convertir la
Web en una infraestructura global en la que es posible compartir, y reutilizar datos
y documentos entre diferentes tipos de usuarios.
− RDF: Proporciona información descriptiva simple sobre los recursos que se
encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros,
directorios, colecciones personales de música, fotos, eventos, etc.
− SPARQL: Es lenguaje de consulta sobre RDF, que permite hacer búsquedas
sobre los recursos de la Web Semántica utilizando distintas fuentes datos.
− OWL: Es un mecanismo para desarrollar temas o vocabularios específicos en
los que asociar esos recursos. Lo que hace OWL es proporcionar un lenguaje
para definir ontologías estructuradas que pueden ser utilizadas a través de
diferentes sistemas.
Las ontologías, que se encargan de definir los términos utilizados para describir y
representar un área de conocimiento, son utilizadas por los usuarios, las bases de
datos y las aplicaciones que necesitan compartir información específica, es decir,
en un campo determinado como puede ser el de las finanzas, medicina, deporte,
etc. Las ontologías incluyen definiciones de conceptos básicos en un campo
determinado y la relación entre ellos.
Otra tecnología que ofrece la Web Semántica para enriquecer los contenidos de
la Web tradicional es RDF. Mediante esta tecnología se pueden representar los
datos estructurados visibles en las páginas Web (eventos en calendarios,
información de contacto personal, información sobre derechos de autor, etc.), a
través de unas anotaciones semánticas incluidas en el código e invisibles para el
usuario, lo que permitirá a las aplicaciones interpretar esta información y utilizarla

75
de forma eficaz. Por ejemplo, una aplicación de calendario podría importar
directamente los eventos que encuentra al navegar por cierta página Web, o se
podrían especificar los datos del autor de cualquier foto publicada, así como la
licencia de cualquier documento que se encuentre. Para extraer el RDF se podría
utilizar GRDDL, una técnica estándar para extraer la información expresada en
RDF desde documentos XML, y en particular, de las páginas XHTML.
Desde el 2004 existe un buscador temático sobre web semántica, una iniciativa
que espera ordenar las ontologías web.

Figura 8.3: Buscador temático sobre web semántica http://swoogle.umbc.edu/

76
RESUMEN

La unidad desarrollada describe los acontecimientos más importantes del


nacimiento de la Web. Los inicios de la Web 1.0 y sus características más
resaltantes. La evolución de las aplicaciones tradicionales hacia aplicaciones web
enfocadas al usuario final mediante la Web 2.0 y de aquellas aplicaciones que
permitieron mejorar la administración de la información, la comunicación, los
contenidos y la enseñanza, a través de las redes sociales, los blogs, los sistemas
de gestión para los contenidos y el aprendizaje. Así mismo, se sintetiza las
principales nociones de la futura tercera generación de servicios basados en
Internet, la Web 3.0, describiendo las principales aplicaciones de desarrollo y
servicio.
Se aborda, además, los Web Services cuyo diseño permite que los componentes
se comuniquen con otros, además de ofrecer servicios de información y
operaciones transaccionales, como también características que los diferencia de
los Sistemas Distribuidos, tales como: interoperabilidad, acceso a la información,
uso de estándares, entre otros.
Finalmente, en esta unidad se abordó el tema de la Web Semántica que permite
integrar, a la Web actual, la posibilidad de agregar varios datos relacionados entre
ellos, ya sea semánticamente o por atributos que los determinan.

77
LECTURA

Semántica, el Lenguaje Natural y las Máquinas Inteligentes

Autor: Eduardo Albalá Ubiergo

La Web Semántica define a una Internet con la información mejor definida, que
permitiría a cualquier usuario encontrar respuestas de forma más rápida y
sencilla, gracias a que todos los contenidos tendrían significado asociado.
La búsqueda en la Web actual está basada en el HTML (siglas de HyperText
Markup Language o Lenguaje de Marcado de Hipertexto). Este lenguaje permite
hacer descripciones textuales, así como incorporar imágenes y enlaces a otras
páginas, pero no permite definir atributos o características de un objeto.
Por ejemplo, podríamos tener una página web (que llamaremos Página1) con el
texto: “Tenemos ofertas de zapatos rojos de la talla 32 y con tacón pero tenemos
agotadas los botas negras”
En esta Web actual, y siguiendo con el ejemplo, podemos introducir en Google la
búsqueda: “ofertas de botas negras de la talla 32 y con tacón”
En este caso, podríamos llegar a la página web Página1 porque Google busca
palabra por palabra, no por el significado global. El resultado sería erróneo.
En la Web semántica, un producto de un catálogo online podría tener asociado en
su definición intrínseca elementos como talla, color, precio, etc., llevando a que
las búsquedas fueran por esos atributos y evitando así los errores de
interpretación de los buscadores.
En los últimos tiempos han aparecido muchos buscadores de imágenes, de ropa,
de restaurantes o de aplicaciones para dispositivos móviles (Apps) que no se
limitan a buscar en el texto sino que ya realizan búsquedas semánticas en base a
información que define a los objetos.
El Lenguaje Natural. En los ejemplos clásicos de la Web Semántica, al hablar de
la utilización de Lenguaje Natural, se supone que introduciendo en un buscador
“Quiero ir esta noche al cine por la zona de Santa Fé pero que me dé tiempo a
llegar a la cena que tengo a las 9:30”, dicho buscador entendería correctamente la
petición, dando una respuesta adecuada. Sin embargo, me surgen serias dudas
sobre que la tecnología tenga que evolucionar necesariamente por ese camino. A
veces nos equivocamos en la evolución de la tecnología.
Todas las películas futuristas incluyen coches que vuelan, pero la verdad es que
no necesitamos un transporte tan caro, peligroso, antiecológico y caótico, sino
más metros subterráneos, tranvías o metrobuses, coches eléctricos, carriles para
bicicletas y zonas peatonales, esas son las verdaderas necesidades. Ha pasado
algo similar con la comunicación a través de la voz con dispositivos, casi nadie
utiliza la marcación por voz de los teléfonos móviles y todavía no he visto a nadie
que le hable a su PC (aunque fue uno de los grandes avances con los que se
promocionó el Windows Vista). De igual forma, el Lenguaje Natural que utilizamos
en la comunicación entre personas, quizá no tenga que ser el mismo que

78
utilicemos con las máquinas. Nadie “le dice” a un ascensor a que piso ir, se lo
indica con el dedo.
Y es que precisamente (y esto es una opinión personal) creo que el Lenguaje
Natural para comunicarse con los dispositivos electrónicos no debe consistir en
escribir largas frases. Cualquier sátrapa sabe que es mucho más sencillo
simplemente señalar con el dedo y que los súbditos, en función del contexto,
interpreten los deseos como órdenes. De hecho, mi hijo que tiene apenas tres
meses, ya empieza a señalar para indicar aquellas cosas que quiere, eso parece
lenguaje más natural todavía.
Parece que tanto las nuevas formas de búsqueda de información y navegación,
como los dispositivos que las incorporan y hacen posible, van mucho más hacia
esta tendencia de señalar información y no tanto escribir.
Un ejemplo de esta tendencia en búsquedas es Boutiques.com.
Este nuevo sitio de Google destinado a la moda tiene uno de sus principales
activos en las búsquedas visuales. Esto quiere decir que seleccionando unas
cuantos estilos que nos gustan, el sistema devuelve resultados de prendas,
diseñadores y tiendas online, y todo sin escribir una sola palabra.
La última generación se acostumbró a manejar los dedos con una extrema
velocidad para escribir mensajes de texto. La próxima generación posiblemente
conserve esa habilidad pero incorporará nuevas para buscar la información y
disfrutar de su ocio de una forma que hasta ahora no habíamos contemplado (sin
escribir).
Las Máquinas Inteligentes. Fenómeno que podría ser definido como la aparición
de máquinas, dispositivos, aplicaciones e interfaces que permiten nuevos tipos de
comunicación y que también se comunican entre ellos. No necesitamos sirvientes
tremendamente inteligentes, sino que hagan muy bien su tarea específica. En
este sentido, hay una frase de moda que define bien la situación “las Apps son la
nueva Web".
Las Apps son aplicaciones para descargar principalmente en dispositivos móviles,
así como también se tratarán otras cuestiones asociadas a esta tendencia de las
máquinas inteligentes e interconectadas como el Cloud Computing, el M2M
(comunicación máquina a máquina), la inteligencia colectiva, la inteligencia
artificial, o el Internet de las cosas.

Bienvenida. Web 3.0 Guía para sobrevivir en la Internet del 2011


Eduardo Albalá Ubiergo
Editado por Grupo Barrabés
Pp. 8-12

79
AUTOEVALUACIÓN

1. No es considerado como característica principal de la Web 1.0:


a. Las páginas web estaban escritas en código HTML
b. El contenido y el diseño estaban separados del código HTML
c. No se utilizaba acceso a una Base de Datos
d. Los usuarios tenían acceso solo lectura
e. Considerado de forma estática

2. Corresponde a una aplicación de la Web 2.0:


a. Evite
b. iTunes
c. Blogs
d. App Stores
e. Direcciones Web

3. No corresponde a una aplicación de la Web 3.0:


a. Taxonomía
b. Inteligencia Colectiva
c. Geoposicionamiento
d. Búsquedas Visuales
e. Vinculación de Redes

4. La siguiente definición “…su finalidad ha sido la de crear un lugar de


encuentro para que miles de usuarios con interés comunes se
comuniquen” corresponde a:
a. LMS
b. CMS
c. Weblogs
d. Redes Sociales
e. Podcasts

5. Son programas que permite crear una estructura de soporte para la


creación y administración de contenidos por parte de los participantes:
a. LMS
b. CMS
c. Weblogs
d. Wikis
e. RSS

6. Permite a las organizaciones unir los objetivos de negocio con la


infraestructura de TI integrando los datos y la lógica de negocio de sus
sistemas:
a. W3D
b. APPS
c. SOA
d. Habbo
e. Second Life

80
7. No corresponde a una características de los APPS:
a. Online/Offline
b. Geolocalización
c. Publicidad
d. Pantalla Táctil
e. Enfocadas en fines concretos

8. Corresponde a la definición de los Web Services:


a. Se comunica por medio de mensajes, utilizando el protocolo HTTPP entre
diferentes computadoras a través de una red.
b. Una evolución de las Ciencias de la Computación.
c. Uso de la red de internet como plataforma CMS.
d. Diseñados para permitir que los componentes se comuniquen con otros
una vez conectados.
e. Son aplicaciones que utilizan diferentes estándares de internet.

9. No corresponde a un estándar de los Web Services:


a. WSLD.
b. HTTP
c. UDDI
d. SSH
e. XML

10. El funcionamiento de la Web semántica es considerado como:


a. Una Web Integrada.
b. Una Web basada en estándares.
c. Una Web desarrollada en XML.
d. Una Web centrado en el Usuario.
e. Una Web Extendida.

81
RESPUESTAS DE CONTROL

1. b 2. c 3. a 4. d 5. b 6. c 7. c 8. d 9. d 10. e

82
EJERCICIOS PROPUESTOS

1. Marcar la respuesta correcta


1.1. Considerado como un gran espacio de información universal y vitrina
con acceso a información pública y privada
a. La Internet
b. Los Portales
c. La Intranet
d. La Web
e. Google

1.2. Flickr, sugarcrm, paypal, amazon y facebook son considerados


como:
a. Sistemas gratuitos
b. Aplicaciones Web
c. Extranet
d. Herramientas colaborativas
e. Plataformas

1.3. Protocolo que permite la transferencia de archivos desde el Servidor


hacia el Cliente o del Cliente hacia el Servidor:
a. http
b. www
c. smtp
d. ftp
e. ssh

1.4. La definición: “Posibilidad de conectar distintas aplicaciones entre


sí”, corresponde a:
a. Prosumidores
b. Usabilidad
c. Interoperabilidad
d. E-learning
e. Trackback

1.5. Permite trabajar con Roles para los usuarios (administrador, autor,
editor, lector):
a. Joomla
b. Moodle
c. Wordpress
d. Drupal
e. Sólo “a” y “d”

83
Desarrollar:
2. Defina 04 ventajas del uso de las Tecnologías Web.
3. Mencione y explique 04 características sobre las Aplicaciones Web.
4. Porqué en la Web 2.0 el usuario es considerado como el principal
protagonista.
5. Instalar la Plataforma Moodle y describa los pasos para su implementación.
Descargar el paquete del siguiente enlace http://download.moodle.org.

84
EXPLORACIÓN ON LINE

URL: http://www.w3c.es/Presentaciones/2005/0314-estandares-JA/
Sitio oficial de la W3C donde explica y muestra los estándares de la web
URL: http://internality.com/web20/
Este sitio muestra un mapa visual de la web 2.0 además agrupa los principales
conceptos de la Web 2.0, junto con una breve explicación. Además se han
seleccionado algunos ejemplos de servicios de la Internet hispana que suelen
enmarcarse en la Web 2.0.
URL: http://www.web2summit.com/web2011
En este sitio oficial del evento más importante de la web 2.0, Summit Web 2.0,
donde se reúnen investigadores, desarrolladores, empresas que presentan
los últimos avances de la web 2.0.
URL: http://web30websemantica.comuf.com/
Portal web sobre RECUPERACIÓN Y ACCESO A LA INFORMACIÓN, de la
Universidad Carlos III de Madrid. Donde explican sobre los avances de la Web
3.0, sus tecnologías y las diferencias con las web 2.0 y web 1.0
URL: http://support.chamilo.org/issues/3798
Sitio oficial de toda la documentación en formato PDF sobre soporte,
instalación, configuración del LMS Chamilo
URL: http://www.joomlaspanish.org/
Sitio oficial en español del CMS Joomla, donde puede descarga la última
versión, encontrar manuales, preguntas y respuestas frecuentes y descargar
documentación y foros sobre Joomla
URL: http://www.w3.org/2002/ws/
Sitio Web de la World Wide Web Consortium (W3C), el sitio oficial de los
estándares de Internet y de los Web Services
URL: http://www.w3c.es/divulgacion/guiasbreves/websemantica
Guía Breve de Web Semántica, aplicaciones XML, RDF, donde explica sobre
el futuro de la web.
URL: http://jax-ws.java.net/
Sitio web de del proyecto JAX-WS donde describe su implementación y
documentación. También puede encontrar la última versión de esta solución.

85
REFERENCIA BIBLIOGRÁFICA

Aguiar, M. (2003) Sociedad de la Información y


Cultura Mediática. La Coruña:
NETBIBLIO, S.L.
Albalá, E. (2011) Bienvenida Web 3.0: Guía para
sobrevivir en la Internet 2011.
Barza, C. y Capella, S. (2010) Ordenadores en las aulas.
Barcelona: Editorial GRAO
Bravo, C. y Redondo, M. A. (2005) Sistemas interactivos y
colaborativos en la web. Cuenca:
Ediciones de la Universidad de Castilla-La
Mancha
Cancelo, P. y Giraldez, J. A. (2007) La Tercera Revolución. La Coruña:
Editorial NetBiblio, S.L.
Castelo, A. (2010) Estrategias Empresariales en la
Web 2.0. Las redes sociales Online.
Alicante: Editorial Club Universitario.
Fernández, B. (2010) Las Redes Sociales. Lo que hacen
sus hijos en Internet. Alicante: Editorial
Club Universitario.
García, F. (2007) Ética e Internet: manzanas y
serpientes. Madrid: Ediciones RIAL, S.A.
Luján, S. (2002), Programación de aplicaciones
web: historia, principios básicos y clientes
web. Alicante: Editorial Club Universitario.
Martinez, J.A. (2009) La web 2.0 Como Recurso Para la
Enseñanza del Francés Como Lengua
Extranjera. Madrid: Ediciones Graficas
Arial
Miltiadis, D. Lytras, E. y Ordoñez, P. (2009) Web 2.0: The Business Model.
Patras: Springer
Moliner, F.J. (2005) Informáticos Generalitat
Valenciana Grupos A y B. Sevilla: Editorial
MAD. S.L.
Moro, M. y Torres, J. (2008) La adaptación al espacio europeo
de educación superior en la Facultad de
traducción y documentación. Salamanca:
Ediciones Universidad de Salamanca.
Munilla, E. y García, I. (2003) E-Bussiness Colaborativo. Madrid:
Editorial Confemetal

86
Ramos, A. (2011) Aplicaciones Web. Madrid:
Ediciones Paraninfo, SA
Rojas, O. I. (2006) Blogs: la conversación en Internet
que está revolucionando medios,
empresas y a ciudadanos (Segunda
Edición). Madrid: ESIC Editorial.
Varela, R.A. (2007) Una metodología para el desarrollo
de cursos en línea. México, D.F.: D.R.
Universidad Nacional Autónoma de
México

87
BIBLIOGRAFÍA COMENTADA

- Rojas, O. I. (2007) Web 2.0. Madrid: ESIC Editorial.


Revisar el Capítulo I sobre las redes sociales y wikis, además el capítulo 2
¿Cómo crear y optimizar un blog?
- Castelló, A. (2010) Estrategias empresariales en la Web 2.0. Las redes
sociales Online. Alicante: Editorial Club Universitario.
Revisar la unidad 6 las estrategias empresariales en redes sociales online y la
unidad 7 sobre los casos prácticos en la Web 2.0.
- Newcomer, E. (2002) Understanding Web Services: XML, WSDL, SOAP, and
UDDI. Addison-Wesley.
Revisar la Unidad 1, sobre los conceptos de los Web Services, Unidad 4 sobre
accesibilidad de los Web Services utilizando SOAP, además de la Unidad 7
sobre las Arquitectura de los Web Services.
- Gurugé, A. (2003) Web Services: Theory and Practice. British Library.
En este libro explica el desarrollo de Web Services, revisar la unidad 3 donde
muestra ejemplos y casos prácticos utilizando tecnología .NET, además
revisar la Unidad 6 sobre el desarrollo de Web Services utilizando Java.
- Márquez, S. (2007) La Web Semántica. Madrid: Editorial Lulú.
Revisar el capítulo 2 sobre la web actual, capítulo 3 sobre la web semántica,
ontologías y lenguajes para la descripción de ontologías. Además puede
revisar el capítulo 8 sobre el Modelado de servicios web semánticos el futuro
de la Web.

88
TERCERA UNIDAD

Tecnologías para el desarrollo Web

Sumario

La siguiente unidad describe la arquitectura de la Web a través de la presentación


y aplicación distribuida, y las aplicaciones web basado en el tipo de arquitectura
Cliente/Servidor.
Se sintetiza los tipos de lenguaje de programación para el desarrollo de
Aplicaciones Web, así mismo, de los motores de bases de datos existentes para
la realización de almacenamiento de datos, transacciones, consultas, entre otros.
Al finalizar la unidad, conocerá las nociones del Framework que son un conjunto
de bibliotecas orientadas a la reutilización de componentes de software para el
desarrollo de aplicaciones.

89
Objetivos

Al finalizar esta unidad, el estudiante será capaz de:

Conocer la arquitectura de la Web para el desarrollo de aplicaciones basado


en esta tecnología.
Conceptualizar los lenguajes de programación para el desarrollo de
aplicaciones web.
Reconocer los tipos de Bases de Datos para el almacenamiento y acceso de
información basada en aplicaciones web.
Conceptualizar un framework para el desarrollo de aplicaciones web.

90
Lección 9: Arquitectura Web

9.1 Presentación Distribuida


En los apartados anteriores, se describió la arquitectura básica de una aplicación
web como el modelo cliente/servidor. A continuación se describe la presentación
distribuida de este modelo.
Para este caso el cliente sólo mantiene la presentación, el resto de la aplicación
se ejecuta remotamente. La presentación distribuida, en su forma más simple, es
una interfaz gráfica de usuario a la que se le pueden acoplar controles de
validación de datos, para evitar la validación de los mismos en el servidor.

Figura 9.1: Presentación distribuida

9.2 Aplicación Distribuida


Es el modelo que proporciona máxima flexibilidad, además permite al servidor,
como al cliente, mantener la lógica realizando cada una de las funciones más
apropiadas, tanto por organización o por mejorar el rendimiento del sistema.

Figura 9.2: Aplicación distribuida

9.3 Arquitectura de las aplicaciones Web


Las aplicaciones web se basan en una arquitectura del tipo cliente/servidor. Por
un lado está el cliente (el navegador o visualizador) y por otro lado el servidor
web.
Existen diversas variantes de la arquitectura básica, según como se implementen
las diferentes funcionalidades de la parte del servidor.
Entre las arquitecturas comunes, mencionamos:

91
1. Todo en un Servidor: Un único ordenar aloja el servidor HTTP, la lógica de
negocio y la lógica de datos; y los datos. El software que ofrece el servicio de
HTTP gestiona también la lógica de negocio. Las tecnologías que emplea esta
tecnología generalmente son ASP y PHP.

Figura 9.3: Arquitectura de la aplicación, todo en un solo servidor


Fuente: Luján, S. (Programación de aplicaciones web: historia, principios básicos y
clientes web. p.56)

2. Servidor de datos separado: a partir de la arquitectura anterior, se separa la


lógica de datos; y los datos a un servidor de base de datos específico. Las
tecnologías que emplean esta arquitectura generalmente son ASP y PHP.

Figura 9.4: Arquitectura de la aplicación, todo en un solo servidor


Fuente: Luján, S. (Programación de aplicaciones web: historia, principios básicos y
clientes web. p.56)

3. Todo en un servidor, con servicios de aplicaciones: en la primera arquitectura


se separa la lógica de negocio del servicio de HTTP y se incluye el servicio de
aplicaciones para gestionar los procesos que implementan la lógica de
negocio. La tecnología que emplea esta arquitectura es JSP y Servlets.
Se le conoce como la arquitectura de 4 capas, donde destaca el servidor de
aplicaciones.

92
Figura 9.5: Arquitectura de la aplicación, todo en un solo servidor, con servicio de
aplicaciones
Fuente: Luján, S. (Programación de aplicaciones web: historia, principios básicos y
clientes web. p.57)

4. Servidor de datos separado, con servicio de aplicaciones: a partir de la


arquitectura número 3, se separa la lógica de datos y los datos a un servidor
de base de datos específica. La tecnología que emplea es JSP y los servlets.

Figura 9.6: Arquitectura de las aplicaciones, con separación del servidor de datos y con
servicio de aplicaciones
Fuente: Luján, S. (Programación de aplicaciones web: historia, principios básicos y
clientes web. p.57)

5. Todo separado: las tres funcionalidades básicas del servidor web se separan
en tres servidores específicos. La tecnología que emplea esta arquitectura es
JSP.

93
Figura 9.3: Arquitectura de las aplicaciones, con separación del servidor de datos y
separado el servicio de aplicaciones
Fuente: Luján, S. (Programación de aplicaciones web: historia, principios básicos y
clientes web. P.55

El objetivo de separar las distintas funcionalidades en distintos servidores es


aumentar la escalabilidad del sistema, con el propósito de obtener mayor
rendimiento. Al separar las funciones, cada uno de ellos permite configurar de
forma adecuada los requisitos que presentan.

94
Lección 10: Lenguajes de Programación

10.1 Historia de las Aplicaciones Web


Inicialmente la Web consistía en la colección de páginas estáticas, documentos,
etc., que podían consultarse o descargarse.
El siguiente paso en su evolución fue la inclusión de un método para confeccionar
páginas dinámicas que permitiesen que lo mostrado fuese dinámico, generado a
partir de los datos de una petición. Dicho método fue conocido como CGI
(Common Gateway interface) y definía un mecanismo mediante el cual podíamos
pasar información entre el servidor HTTP y programas externos. Los CGI siguen
siendo muy utilizados, puesto que la mayoría de los servidores web los soportan
debido a su sencillez. Además, nos proporcionan total libertad a la hora de
escoger el lenguaje de programación para desarrollarlos.
CGI es el nombre de una aplicación que recibe sus parámetros utilizando el
estándar Common Gateway Interface, de ahí su nombre. El estándar establece
cómo han de comunicarse las aplicaciones con el Servidor Web. Por extensión,
se denomina CGI a un programa tradicional como C. En realidad, un CGI se
encarga únicamente de implementar la respuesta de la aplicación web a un tipo
concreto de solicitud proveniente del cliente. Por tanto, una aplicación web estará
conformada, por muchos CGIs diferentes. Cada uno de ellos serán responsable
de un contexto de interacción de la aplicación con el usuario (Berzal, Cubero y
Cortijo, 2009, p. 21).
El esquema de funcionamiento de los CGI tenía un punto débil: cada vez que
recibíamos una petición, el servidor web lanzaba un proceso que ejecutaba el
programa CGI. Como, por otro lado, la mayoría de CGI estaban escritos en algún
lenguaje interpretado (Perl, Python, etc.) o en algún lenguaje que requería runtime
environment (VisualBasic, Java, etc.), esto implicaba una gran carga para la
máquina del servidor (Mateu, 2004, p. 13).
Además, si la Web cuenta con varios accesos al CGI, esto suponía problemas
graves. Por ello se empiezan a desarrollar alternativas a los CGI para solucionar
este grave problema de rendimiento. Las soluciones vienen principalmente por
dos vías. Por un lado se diseñan sistemas de ejecución de módulos más
integrados con el servidor, que evitan que éste tenga que instanciar y ejecutar
multitud de programas. La otra vía consiste en dotar al servidor de un intérprete
de algún lenguaje de programación que nos permita incluir las páginas en el
código de manera que el servidor sea quien lo ejecute, reduciendo así el tiempo
de respuesta.
A partir de este momento, se vive una explosión del número de arquitecturas y
lenguajes de programación que nos han permitido el desarrollar de aplicaciones
web. Todas ellas siguen alguna de las dos vías ya mencionadas. De ellas, las
más útiles y las que más se utilizan son aquellas que permiten mezclar los dos
sistemas, es decir, un lenguaje de programación integrado que permita al servidor
interpretar comandos que “incrustemos” en las páginas HTML y un sistema de
ejecución de programas más enlazado con el servidor que no presente los
problemas de rendimiento de los CGI.

95
10.2 CGI
Uno de los primeros mecanismos para generar contenido dinámico para la web es
el API llamado CGI (acrónimo de Common Gateway interface, interfaz de
pasarelas común).
Éste mecanismo simple permite que un Servidor Web ejecute un programa escrito
en cualquier lenguaje de programación, que le pueda pasar unos parámetros que
hace posible que el resultado de la ejecución de este programa sea enviado al
usuario como una página web o cualquier otro tipo de contenido.
Al contrario de lo que sucede con los Servlets de Java y otros lenguajes, no existe
ningún tipo de limitación al lenguaje de programación que podemos utilizar para
escribir un CGI. Podemos usar desde scripts escritos en el lenguaje de shell del
sistema operativo hasta programas escritos en ensamblador, pasando por todo el
abanico de lenguajes de programación existentes: C, C++, Perl y Python. Hasta
ahora, el lenguaje más popular para la escritura de CGI es Perl, ya que
proporciona utilidades al programador que simplifican la tarea de escribir
programas CGI.
Perl es un lenguaje de programación basado de varios lenguajes como el
lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un
grado inferior, de muchos otros lenguajes de programación. Este fue el lenguaje
que popularizó los CGI, y se inició el desarrollo de las primeras Aplicaciones Web.
Los CGI deben responder a las peticiones construyendo ellos mismos parte de la
respuesta HTTP que recibirá el cliente. Es decir, deben indicar, en primer lugar, el
tipo MIME del contenido que sirven. Pueden añadir posteriormente algunos
campos adicionales (los especificados en el estándar HTTP). Después de una
línea en blanco separadora, debe aparecer el contenido.
El CGI más simple posible, en este caso escrito en shell script y que enumera las
variables de entorno comentadas anteriormente, son:

#!/bin/sh
echo Content-type: text/plain
echo
echo
echo SERVER_NAME=$SERVER_NAME
echo SERVER_PROTOCOL=$SERVER_PROTOCOL
echo REQUEST_METHOD=$REQUEST_METHOD
echo PATH_INFO=$PATH_INFO
echo PATH_TRANSLATED=$PATH_TRANSLATED
echo SCRIPT_NAME=$SCRIPT_NAME
echo REMOTE_ADDR=$REMOTE_ADDR
echo REMOTE_HOST=$REMOTE_HOST
echo REMOTE_USER=$REMOTE_USER
echo AUTH_TYPE=$AUTH_TYPE
echo CONTENT_TYPE=$CONTENT_TYPE
echo CONTENT_LENGTH=$CONTENT_LENGTH
echo QUERY_STRING=$QUERY_STRING

96
Como podemos ver en este ejemplo (la sintaxis utilizada de Shell script es muy
simple), para listar las variables de entorno recibidas enviamos el tipo de
contenido, seguido de la línea en blanco obligatoria de todas y cada una de las
variables de entorno mencionadas.
La ejecución de este servidor, resulta:

Figura 10.1: Resultado de las variables de entorno del CGI

10.3 PHP
PHP, cuyas siglas representan a un acrónimo recursivo (PHP: hypertext
preprocessor), es un lenguaje sencillo, de sintaxis cómoda y similar a la de otros
lenguajes como Perl, C y C++.
Es un lenguaje rápido, interpretado, orientado a objetos y multiplataforma. Existe
prácticamente para todos los sistemas operativos, altamente portable.
PHP es un lenguaje ideal para el desarrollo de Aplicaciones Web, incluso para
desarrollar Aplicaciones Web Complejas. PHP contiene diversos módulos y gran
cantidad de librerías desarrolladas disponibles en su código fuente, con lo que el
programador de PHP dispone de abundantes referencias y módulos para
desarrollar las aplicaciones.
PHP suele ser utilizado conjuntamente con Apache, MySQL o PostgreSQL en
sistemas operativos como GNU/Linux, formando una combinación que se
denomina LAMP (Linux, Apache, MySQL y Php), que se hace potente y versátil
cuando se utilizan como uno solo.
El Servidor Web Apache, puede incorporar PHP como un módulo propio del
servidor, lo que permite que las aplicaciones escritas en PHP resulten mucho más
rápidas que las aplicaciones CGI habituales.

97
Para usar PHP como lenguaje de desarrollo de Aplicaciones Web, la primera
necesidad que tenemos es saber cómo interactuará PHP con nuestro usuario
Web. Podemos dividir dicha interactuación en dos partes, mostrando información
al usuario y recogiendo información de éste.
PHP es una alternativa a las tecnologías de Microsoft ASP, JSP, y demás
lenguajes de programación para la Web.

10.4 Java Servlets


Los Servlets de Java son la propuesta de la tecnología Java para el desarrollo de
Aplicaciones Web. Un Servlet es un programa que se ejecuta en un Servidor Web
generalmente en Apache Tomcat. Su uso se ha popularizado por generar páginas
web de forma dinámica a partir de los parámetros de la petición que envíe el
navegador web.
Los Servlets Java presentan una serie de ventajas sobre los CGI. Éstos son más
portables, potentes, eficientes, fáciles de usar, más escalables y utilizan menos
recursos que un CGI.
El entorno donde se ejecutan, se arranca al iniciar el servidor, permaneciendo
durante toda la ejecución del mismo. Para atender cada petición no inicia un
nuevo proceso, sino un hilo, un proceso ligero de Java mucho más rápido.
El siguiente ejemplo nos muestra la estructura básica de un Servlet básico que
maneja peticiones GET de HTTP (los Servlets también pueden manejar peticiones
POST).

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletBasico extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Disponemos del requerimiento para acceder a los datos de la
// petición HTTP.
// Disponemos de la respuesta para modificar la respuesta HTTP
// que generar el Servlet.
PrintWriter out = response.getWriter();
// Podemos usar out para devolver datos al usuario
out.println(“¡Hola Mundo Cruel!\n”);
}
}

Para escribir un Servlet debemos escribir una clase de Java que extienda (por
herencia) la clase HttpServlet (o la clase más genérica Servlet) y que sobrescriba
el método service o alguno de los métodos de petición más específicos (doGet,
doPost, etc.).

98
10.5 Java Server Pages (JSP)
Java Server Pages (JSP) es una tecnología que permite mezclar HTML estático
con HTML generado dinámicamente mediante código Java embebido en las
páginas webs.
Cuando se programa Aplicaciones Web con CGI, gran parte de la página que
generan los CGI es estática y no varía de ejecución en ejecución. Por su parte, la
parte variable de la página es realmente dinámica y muy pequeña (Mateu, 2004,
p. 207).
Tanto los CGI como los Servlet nos obligan a generar la página por completo
desde nuestro código de programa, dificultando así las tareas de mantenimiento,
diseño gráfico, comprensión del código, etc.
Los JSP, por otro lado, nos permiten crear las páginas fácilmente.

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>


<HTML>
<HEAD>
<TITLE>Bienvenido UIGV.</TITLE>
</HEAD>
<BODY>
<H1>Bienvenido UIGV</H1>
<SMALL>Welcome,
< % out.println(Utiles.leerNombreDeCookie(request)); %>
</SMALL>
</BODY>
</HTML>

Como podemos ver en el ejemplo, una página JSP no es más que una página
HTML donde, merced a unas marcas especiales < % y %>, podemos incluir
código Java.
Esto presenta una serie de ventajas obvias: por un lado disponemos de
prácticamente las mismas ventajas que al usar Java Servlets; de hecho, los
servidores JSP “traducen” éstos a Servlets antes de ejecutarlos.
Otro ejemplo simple de página JSP es la siguiente:

<HTML>
<BODY>
<H1>Bienvenido. Día: < %= fecha %> </H1>
<B>
<% if(nombre==null)
out.println(“Nuevo Usuario”);
else
out.println(“Bienvenido de nuevo”);
%>
</B>
</BODY>
</HTML>

99
Las páginas JSP normalmente tienen extensión .jsp y suelen colocarse en el
mismo directorio que los ficheros HTML. Como podemos ver, una página .jsp no
es más que una página HTML en la que incrustamos trozos de código Java,
delimitados por < % y %>. Las construcciones delimitadas por < % y %> pueden
ser de tres tipos:
- Elementos de script que nos permiten introducir un código que formará parte
del Servlet que resulte de la traducción de la página.
- Las directivas nos permiten indicar al contenedor de Servlets cómo queremos
que se genere el Servlet.
- Las acciones nos permiten especificar componentes que deberán ser usados.
- Cuando el servidor/contenedor de Servlets procesa una página JSP, convierte
ésta en un Servlet en el que todo el HTML que hemos introducido en la página
JSP es impreso en la salida, para a continuación compilar este Servlet y
pasarle la petición.

100
Lección 11: Acceso a Base de Datos

11.1 PostgreSQL
PostgreSQL es un sistema de gestión de bases de datos del tipo objeto-relacional
(ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. El
actual director de este proyecto es el profesor Michael Stonebraker, y fue
patrocinado por DAROA (Defense Advanced Research Projects Agency, además
Army Research Office (ARO) y la National Science Foundation (NSF).
PostgreSQL es una herramienta de software libre y utiliza el lenguaje
SQL92/SQL99, se trata de uno de los gestores de base de datos más consistes,
estables y altamente escalables.
En 1996 se eligió un nuevo nombre que resistiera el paso de los años y reflejara
la relación del proyecto con el original Postgres (aún disponible) y las nuevas
diferencias básicamente, el uso de lenguaje SQL.
Las características más destacadas de PostgreSQL que podemos citar son:
- Soporte para transacciones.
- Soporte para vistas
- Integridad referencial
- Herencia de tablas
- Tipos definidos por el usuario
- Soporte de objetos binarios grandes (mayores de 64 KB).
- Y muchas más características técnicas.
Fue el pionero en muchos de los conceptos existentes en el sistema objeto-
relacional incluido, más tarde en otros sistemas de gestión comerciales.
PostgreSQL. A pesar de todo esto PostgreSQL no es un sistema de gestión de
bases de datos puramente orientado a objetos.
PostgreSQL compite con los gestores comerciales, haciendo de él una muy
buena alternativa, utiliza la licencia GPL y es común ver a alguna aplicación web
utilizando este gestor de base de datos.
Generalmente es muy usado combinando con los lenguajes de programación
ejemplo C, C++, Java, Python, PHP, Java, JSP, etc.

11.2 MySQL
MySQL, al igual que PostgreSQL, son muy populares por los desarrolladores de
aplicaciones web. MySQL es un SGBD desarrollado por la empresa MySQL AB,
de origen sueco que lo desarrolló bajo licencia de software libre, pero puede ser
adquirido con licencia comercial para ser incluido en proyectos no libres.
Actualmente pertenece a la empresa Oracle.
MySQL es un sistema gestor de base de datos extremadamente rápido. Aunque
no ofrece las mismas capacidades y funcionalidades que otras muchas bases de
datos, compensa esta pobreza de prestaciones con un rendimiento excelente que

101
hace de ella la base de datos de elección en aquellas situaciones en las que
necesitamos sólo unas capacidades básicas en una aplicación.
Las funcionalidades más destacadas de MySQL son:
- Soporte de transacciones.
- Soporte de replicación.
- Librería para uso embebido.
- Búsqueda por texto.
- Proporciona sistemas de almacenamientos transaccionales y no
transaccionales.
- Las funciones SQL están implementadas usando una librería altamente
optimizada y deben ser tan rápidas como sea posible. Normalmente no hay
reserva de memoria tras la inicialización de consultas.
- El servidor está disponible como un programa separado para usar en un
entorno de red cliente/servidor. Disponible como biblioteca y puede ser
insertado o agregado en aplicaciones autónomas. Dichas aplicaciones pueden
usarse por sí mismas o en entornos donde no hay red disponible.
MySQL se combina con muchos lenguajes de programación como Java, Php;
python, ruby, Jsp, etc.

11.3 MariaDB
MariaDB es un gestor de base de datos derivado de MySQL con licencia GPL
versión 2. Su principal desarrollador es Michael “Monty” Widenius, quien
desarrolló previamente MySQL.
MariaDB es totalmente compatible con MySQL y posee los mismos comandos,
interfaces, API y bibliotecas de MySQL. Además tiene soporte NoSQL.
MariaDB tiene soporte y asistencia de la comunidad de Software Libre y está
abierto a los desarrolladores de software. Este gestor de base de datos incluye
motores de almacenamiento alternativo (Storage Engines), mejoras en las
optimizaciones del servidor y los nuevos parches de MySQL. Este gestor de base
de datos es una alternativa perfecta para MySQL

11.4 FirebirdSQL
FirebirdSQL es una base de datos de software libre surgida a partir de la versión
de código libre de Interbase que la empresa Borland liberó en el verano de 2000.
El primer objetivo que se marcaron los desarrolladores de FirebirdSQL fue
estabilizar el código y eliminar multitud de bugs, así como aumentar el número de
plataformas en las que funcionaba la base de datos.
En la actualidad algunas de las funcionalidades más destacadas son:
- Arquitectura de versiones que evita bloqueos entre lectores y escritores.
- Alerta de eventos para reaccionar a cambios en la base de datos.
- Tipos de datos muy ricos por ejemplo BLOBS.

102
- Procedimientos almacenados y triggers.
- Compatibilidad ANSI SQL-92.
- Integridad referencial.
- Transacciones.

103
Lección 12: Framework

Los framework constituyen un marco de trabajo que guía al programador en la


construcción de un programa. Es framework ofrece generalmente parte de una
biblioteca que hace las veces de nuevo zócalo para simplificar el acceso a las
funciones más útiles. El framework impone una estructura a las aplicaciones, en
especial separando representación de los datos, tratamientos y presentación
[Guérin, 2005, p. 355].
El término framework se refiere a una estructura de software compuesta de
componentes personalizables e intercambiables para el desarrollo de una
aplicación. Así mismo, se puede considerar como una aplicación genérica
incompleta y configurable a la que podemos añadirle los últimos elementos para
construir una aplicación concreta.
Un framework web podemos definirlo como un conjunto de componentes que
componen un diseño reutilizable que facilita y agiliza el desarrollo de Sistemas
Web.
Entre las características de un framework podemos mencionar:
− Estar enfocado en un tema específico y ser altamente reutilizable.
− Incluye múltiples clases y componentes, cada una de las cuales provee una
abstracción de un determinado concepto.
− Describe cómo esas abstracciones trabajan en conjunto para resolver las
necesidades a las que da solución.
− Los componentes de un Framework son altamente reutilizable.

12.1 JSF
JSF es un framework para crear aplicaciones java basadas en el patrón MVC
(Modelo – Vista – Controlador). Forma parte del estándar J2EE, existen muchas
alternativas para crear la capa de presentación y control de una aplicación web
java, como el framework struts y Spring pero solo JSP forma parte del estándar.
Con JSF se puede construir interfaces de usuario en aplicaciones web, de esta
manera nos facilita el desarrollo de aplicaciones, separando las diferentes capas
de una arquitectura: presentación, reglas de negocio y la base de datos.
JSF fue creado dentro del Java Community Process de SUN, en el que han
participado líderes de la industria como Oracle, BEA, IBM y muchas más
empresas relacionadas a Java.
También conocido por ser el framework oficial de SUN para el desarrollo de
aplicaciones web con 4 capas.
JSF ofrece un modelo de trabajo basado en componentes UI (user interface),
definidos por medio de etiquetas y XML, entre sus principales características
podemos citar:
a) Una arquitectura basada en el patrón MVC.

104
b) Asocia (de forma modular) cada componente gráfico con los datos (beans
de respaldo).
c) Incluye la capa de control, definida de forma declarativa en archivos XML.
d) Validación en cliente y en servidor.
e) Control de mensajes y roles.
Las principales implementaciones de JSF son: JSF Reference Implementation de
Sun Microsystems y MyFaces proyecto de Apache Software Foundation.

12.2 Ruby On Rails


Ruby on Rails o RoR es un framework de aplicaciones web basado en software
libre escrito en el lenguaje de programación Ruby.
Con este framework se puede desarrollar aplicaciones web con base de datos de
acuerdo con el patrón de diseño arquitectónico MVC (Modelo – Vista –
Controlador).
Rails te da un entorno de desarrollo de Ruby. Para probarlo, solo se necesita de
una base de datos y un servidor web.
El framework se acopla perfectamente en cualquier tipo de aplicación web,
además trabaja con varios servidores web y bases de datos. Para el servidor web,
recomendamos Apache o lighttpd incluso suele venir con su propia
implementación denominada WebRick. Para la base de datos, se puede usar
MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, o Firebird.
Es multiplataforma y funciona prácticamente en cualquier sistema operativo, pero
recomendamos alguno basado en Linux.
Ruby on Rails ha popularizado el uso de los framework por la simplicidad y poco
código que utiliza al momento de realizar las aplicaciones con el framework.

12.3 Web2Py
Es un framework desarrollado en python basado software libre. Su principal
objetivo es dar soporte al desarrollo ágil de aplicaciones web escalables, seguras
y portables enfocadas en bases de datos.
Web2py fue originalmente diseñado como una herramienta de enseñanza con
énfasis en la facilidad de uso y despliegue, no tiene ningún archivo de
configuración a nivel de proyecto.
Es sencillo, de fácil uso y aprendizaje, como cualquier otro framework incluye el
patrón de diseño arquitectónico MVC, además de plantillas, librerías en javascript,
ajax, hojas de estilo, etc. que lo convierten en una solución completamente
funcional para crear aplicaciones Web 2.0 de manera totalmente interactiva
dividiendo el diseño y la programación.
Web2py hace al desarrollo web rápido, fácil y más eficiente, permite enfocarse en
la lógica del negocio y no en temas técnicos triviales, además se destacan estas
características:
- Instalación muy simple, prácticamente sin configuración.

105
- Intuitivo y con curva de aprendizaje muy baja.
- Ideal para ser enseñado en el aula a nivel de principiantes.
- Su capa de abstracción a la base de datos permite definir tablas sin necesidad
de clases complejas.
- Su lenguaje de consulta es muy cercano a SQL otorgando gran poder
declarativo y flexibilidad, en Python.
- Estructura sólida todo incluido, incluyendo hasta ajax, menús, formularios,
caching, GAE, servicios web, etc.
- Diseño integrado, limpio y seguro.
Por las características de Python, web2py es menos verboso que los frameworks
desarrollados en Java, y su sintaxis tiende a ser más limpia mucho más que los
desarrollados en php.

12.4 Zend Framework


Zend es otro framework basado en software libre desarrollado íntegramente en
php, entre las principales características podemos citar:
- 100% orientado a objetos y sus componentes tienen un bajo acoplamiento por
lo que los puede ser utilizado de forma independiente.
- Cuenta con soporte para internalización y localización de aplicaciones.
- Cada componente está construido con una baja dependencia de otros
componentes, permitiendo a los desarrolladores utilizar los componentes por
separado.
El principal patrocinador del proyecto Zend Framework es Zend Technologies,
pero muchas empresas han contribuido con componentes o características
importantes para el framework.
Microsoft y Google se han asociado con Zend para proporcionar interfaces de
servicios web y otras tecnologías que desean poner a disposición de los
desarrolladores de Zend Framework.
Existen muchos otros framework desarrollados en php, en este caso Zend
Framework está respaldado por la misma empresa que ha desarrollado el
lenguaje php.

106
RESUMEN

La unidad desarrollada describe la presentación y aplicación distribuida del


modelo de la arquitectura Web. Existiendo diversas variantes de la arquitectura de
las aplicaciones Web, de acuerdo como se implementen las diferentes
funcionalidades en la parte del servidor.
Se define los lenguajes de programación, tales como: CGI, php, Java Servlets,
JSP como lenguajes para el desarrollo de aplicaciones Web.
Así mismo, se describe los principales sistemas de gestión de Base de Datos,
tales como: PostgreSQL, MySQL, MariaDB y FirebirdSQL.
Al término de la unidad se explica de forma clara y sencilla en la definición de un
framework para sistemas Web y de sus principales características.

107
LECTURA

XML: Transformando la Web en una Base de Datos

Autor: Marcelo Arenas

Una de las razones para la popularización de la Web ha sido el desarrollo de una


infinidad de páginas que entregan distintos servicios; buscadores como Yahoo y
Google, grandes repositorios de información como Wikipedia, tiendas electrónicas
como Amazon, diarios y revistas electrónicas, página personales, etc. Bajo este
desarrollo ha estado HTML, un lenguaje que permite estructurar tanto la
información como las posibilidades de navegación en una página Web.
Durante los últimos años, la cantidad de información almacenada en la Web ha
ido creciendo de manera dramática. Hoy ningún usuario tiene la capacidad de
recorrer la Web entera en busca de información, y es necesario utilizar
buscadores automáticos como Yahoo! y Google para poder revisar una fracción
significativa de esta red.
Nadie puede negar la importancia y utilidad que tienen los buscadores para
encontrar información en la Web. Sin embargo, muchos usuarios pueden de-cir
que su experiencia con ellos no ha sido completamente satisfactoria. A medida
que las consultas que se quiere realizar son más complejas, la búsqueda de
información puede requerir de varios, o muchos, intentos en los cuales es
necesario jugar con distintos parámetros. Piense por ejemplo en la consulta “dé la
lista de libros de Ariel Rubinstein”. Para realizar esta consulta basta con poner
“Ariel Rubinstein” en un buscador y usar los primeros elementos de la lista de
respuesta (probablemente el primero) para encontrar la página de este autor, y
ahí la lista de sus libros. Pero ahora piense en la pregunta “dé la lista de libros de
Ariel Rubinstein y sus precios”. ¿Qué colocaría en un buscador para encontrar la
respuesta? Peor aún, piense en una pregunta como la siguiente “dé la lista de
libros de Ariel Rubinstein que han bajado de precio en los últimos años”. ¿Cómo
se puede buscar esta información usando Yahoo o Google?
¿Por qué los buscadores tienen dificultades en los ejemplos anteriores? Una de
las razones es el uso de HTML; este es un lenguaje que permite desplegar
información que es fácil de entender para los usuarios, pero que en general es
difícil de interpretar para los computadores. Estas dificultades ya pueden verse en
ejemplos tan sencillos como el siguiente:
<html>
<body bgcolor="#FFFFFF">
<center>
<h2> Todo Libros </h2>
</center>
<ul>
<li><b>Teor&iacute;a de Juegos.</b>
Martin Osborne y Ariel Rubinstein. Precio: 16000.</li>
</ul>
</body>
</html>

108
Este archivo es usado para mostrar la lista de libros vendidos por la librería “Todo
Libros”. Nótese que este archivo ha sido indentado (espaciado) de manera que
sea fácil visualizar la estructura jerárquica del documento. Por ejemplo, <li>
corresponde a un ítem en la lista definida por <ul>. En un browser tal como
FireFox o Explorer, esta lista será desplegada de la siguiente forma:

Todo Libros
Teoría de Juegos. Martin Osborne y Ariel Rubinstein.
Precio: 16000.

Para un usuario la información en esta lista es fácil de entender; es claro que hay
una lista de libros, cada uno con sus autores y su precio. Sin embargo, para un
computador esta información no es tan clara. Una de las razones es que el
computador no tiene la información de contexto, o metainformación, que tiene el
usuario. ¿Cómo puede un computador deducir que está frente a una lista de
libros? Y aun si sabe esto, ¿cómo puede extraer información desde el documento,
por ejemplo los precios de los libros? Es importante notar aquí que el documento
HTML no tiene ninguna indicación sobre dónde buscar esta información,
simplemente dice cómo debe ser desplegada la lista de libros. Así, el computador
debe tratar de interpretar el texto para poder extraer la lista de precios. Por
ejemplo, puede buscar la palabra “Precio” y el número que lo sigue (o antecede).
Aunque en este caso esto puede dar buenos resultados, la situación puede
volverse más complicada si la lista contiene varios precios para un mismo libro
(precio sin descuento, con descuento por compra electrónica, con descuento a
clientes frecuentes, etc.), o aun más complicada si se requiere de hacer algunos
cálculos para saber el precio final (precio después del 15% de descuento por
compra electrónica).
La búsqueda de información en la Web puede mejorarse si los formatos usados
para almacenar información pueden ser fácilmente interpretados por los
computadores. Una propuesta para hacer esto es el uso de XML.

Cómo funciona la Web


Centro de Investigación de la Web
Departamento de Ciencias de la Computación
Universidad de Chile
Pp. 75-78

109
AUTOEVALUACIÓN

1. La aplicación distribuida por el cliente, está conformado por:


a. Presentación – Lógica de Datos – Gestión de Datos
b. Lógica de presentación – Lógica de Negocio – Lógica de Datos
c. Lógica de presentación – Lógica de Negocio – Gestión de Datos
d. Presentación – Lógica de presentación – Lógica de Negocio
e. Presentación – Lógica de Negocio – Lógica de Datos

2. La arquitectura de la aplicación “todo en un solo servidor” está


compuesto por una arquitectura de:
a. 02 capas
b. 03 capas
c. 04 capas
d. 05 capas
e. 06 capas

3. Es un lenguaje rápido, interpretado, orientado a objetos y


multiplataforma:
a. CGI
b. Html
c. Javascript
d. Php
e. XML

4. Es una herramienta de software libre y utiliza el lenguaje SQL92/SQL99:


a. SQL Server
b. MySQL
c. Oracle
d. PostgreSQL
e. MariaDB

5. De las siguientes definiciones de framework ¿cuál es la correcta?:


a. El término framework se refiere a varios componentes personalizables e
intercambiables para el desarrollo de un API.
b. El término framework se refiere a una estructura de elementos compuesto
de componentes intercambiables para el desarrollo de una página Web.
c. El término framework se refiere a una estructura de software compuesta de
componentes personalizables e intercambiables para el desarrollo de una
aplicación.
d. El término framework se refiere a una aplicación genérica completa y no
configurable a la que podemos añadirle los últimos elementos para
construir una aplicación.
e. El término framework se refiere a una estructura de aplicaciones donde se
juntan la representación de los datos, tratamientos y presentación.

110
6. Ofrece un modelo de trabajo basado en componentes UI:
a. XML
b. html
c. http
d. jsf
e. Servlet

7. Es un framework para crear aplicaciones java basadas en el patrón MVC:


a. Ruby on Rails
b. jsf
c. zend
d. Web2py
e. Ajax

8. Ruby on Rails es un framework escrito en el lenguaje de programación:


a. php
b. asp
c. javascript
d. ruby
e. html

9. Web2Py es un framework escrito en el lenguaje de programación:


a. jsp
b. python
c. C++
d. css
e. java

10. Zend es un framework escrito en el lenguaje de programación:


a. php
b. asp
c. python
d. jsp
e. ruby

111
RESPUESTAS DE CONTROL

1. d 2. c 3. d 4. d 5. c 6. d 7. b 8. d 9. b 10. a

112
EJERCICIOS PROPUESTOS

1. Implementar un Servidor Web con soporte para JSP utilizando apache


Tomcat.
2. Realizar una aplicación Web utilizando Base de Datos (MySQL, Postgresql o
MariaDB) permitiendo ingresar, modificar, consultar y eliminar datos.
3. Realizar una aplicación Web utilizando un framework.

113
EXPLORACIÓN ON LINE

URL: http://php.net/manual/es/index.php
Manual oficial de desarrollo del lenguaje de programación PHP
URL: http://www.oracle.com/technetwork/java/javaee/jsp/index.html
Sitio oficial de JSP, donde se publican las últimas versiones del framework
además pueden encontrar documentación.
URL: http://www.postgresql.org.es/documentacion
En este sitio encontrará información official del gestor de base de datos
PostGreSQL en español, además de libros, descargas y foros que discuten el
uso y desarrollo.
URL: http://php.net/manual/es/book.mysql.php
Documentación oficial php con mysql sobre las funciones que se utilizan para
generar aplicaciones web con esta solución
URL: http:/ downloads.mysql.com/docs/refman-5.0-es.a4.pdf
Manual oficial de Mysql para la versión 5.0 en español
URL: http://kb.askmonty.org/es/mariadb
Documentación oficial del gestor de base de datos MariaDB en español
URL: http://www.firebird.com.mx/modules/mydownloads/
Documentación en español sobre el gestor de base de datos firebird

114
REFERENCIA BIBLIOGRÁFICA

Berzal, F., Cubero, J.C. y Cortijo, F.J. (2009) Desarrollo Profesional de


Aplicaciones Web con ASP.NET. Madrid:
iKor Consulting
Cancelo, P. y Giraldez, J. A. (2007) La tercera Revolución. La Coruña:
Editorial NetBiblio, S.L.
Castelo, A. (2010) Estrategias Empresariales en la
Web 2.0. Las redes sociales Online.
Alicante: Editorial Club Universitario.
Guerin, Brice-Arnaud (2005) Lenguaje C++. Programación Unix
& Windows Standard Template Library.
Ediciones ENI
Mateu, C. (2004) Desarrollo de Aplicaciones Web.
Barcelona: Eureca Media, SL

115
BIBLIOGRAFÍA COMENTADA

- Coulouris, G., Dollimore, J., & Kindberg, Tim (2007) Sistemas Distribuidos
Conceptos y Proyecto 4ta Edición. Madrid: Addison Wesley.
Puede revisar la Unidad 1 y 2, sobre los modelos de arquitectura de los
sistemas distribuidos.
- Fernández, D. (2004) Arquitectura web en aplicaciones Java/j2ee. Madrid:
IberLibro.
Revisar las unidades 1 y 2 sobre las arquitecturas de 4 capas en N niveles,
además de la arquitectura de las aplicaciones JSP, Servlet y framework
basados en esta tecnología.
- Barranco, J. (2001) Metodología del análisis estructurado de sistemas. Madrid:
Universidad Pontificia.
Revisar el capítulo 9, sobre el estudio de una arquitectura de software además
de las características de arquitectura de una aplicación web en la página 284
- Mateu, C. (2004) Desarrollo de Aplicaciones Web. Barcelona: Eureca Media,
SL.
Revisar la unidad 5 sobre el desarrollo de Contenido dinámico con los CGI,
PHP y JSP. Además de la unidad 6 sobre el acceso a base de datos utilizado
JDBC.

116
CUARTA UNIDAD

Fundamentos de Seguridad Web y Aplicaciones Empresariales

Sumario

La presente unidad describe las consideraciones elementales para la Seguridad


en la Web y los tipos de acceso utilizados.
Se define el uso del Protocolo de comunicación cifrado, denominado https y
Protocolo de seguridad para la realización de transacciones seguras, como por
ejemplo el Comercio Electrónico.
Se muestra una lista de aplicaciones Web Empresariales desarrollado en
Software Libre, que se ofrecen como propuesta para los Sistemas de Gestión
Empresarial.
Finalmente se describe el caso del Sistema Operativo EyeOS, una aplicación
desarrollada en entorno Web.

117
Objetivos

Al finalizar esta unidad, el estudiante será capaz de:

Reconocer las principales medidas de seguridad para un Servidor Web.


Conceptualizar los protocolos de Seguridad en aplicaciones Web, como https y
set.
Identificar aplicaciones Web desarrolladas en Software Libre, como alternativa
a las soluciones desarrollados en Software Privativo.
Contar con las nociones del funcionamiento del Sistema Operativo Web
EyeOS.

118
Lección 13: Seguridad en la Web

13.1 Consideraciones en la seguridad en la web


La World Wide Web trabaja en una arquitectura cliente/servidor que se ejecuta en
Internet, Intranet y Extranet, utilizando el protocolo TCP/IP. Como tal, las
herramientas de seguridad y los enfoques discutidos anteriormente en este
documento son importantes para la seguridad de la web. La web presenta nuevos
retos que generalmente no se aprecian en el contexto de la seguridad de los
ordenadores y la red:
- Internet en bidireccional. Al contrario que los entornos de publicación
tradicionales, incluso los sistemas de publicación electrónica que hacen uso
de teletexto, respuesta de voz o respuesta de fax, la web es vulnerable a los
ataques a los servidores web desde Internet.
- La Web se emplea cada vez más para presentar información de empresas y
de productos y como plataforma para transacciones de negocios. Se puede
perjudicar la imagen y ocasionar pérdidas económicas si se manipulan de la
forma incorrecta los servidores web.
- Aunque los navegadores web son fáciles de usar, los servidores relativamente
sencillos de configurar y gestionar y los contenidos web cada vez más fáciles
de desarrollar, el software subyacente es extraordinariamente complejo. Éste
puede ocultar muchos posibles fallos de seguridad.
- La corta historia de la web está llena de ejemplos de sistemas nuevos y
actualizados constantemente, instalados de manera adecuada, que son
vulnerables a una serie de ataques a la seguridad.
- Un servidor web puede utilizarse como plataforma de acceso a todo el
complejo de ordenadores de una empresa. Una vez comprometida la
seguridad del servidor web, un atacante podría tener acceso a datos y
sistemas fuera del propio servidor pero que están conectados a éste en el sitio
local.
Habitualmente, los clientes de servicios basados en la web son usuarios
ocasionales y poco preparados (en lo que a seguridad se refiere). Estos usuarios
no tienen por qué ser conscientes de los riesgos que existen y no tienen las
herramientas ni los conocimientos necesarios para tomar medidas efectivas.
A continuación una lista de amenazas sus consecuencias y medidas que se
deben aplicar.

Amenazas Consecuencias Contramedidas


Integridad − Modificación de datos de − Pérdida de − Suma de
usuarios información comprobación
− Navegador caballo de − Máquina en (checksum)
Troya peligro criptográfica
− Modificación de memoria. − Vulnerabilidad al
− Modificación del tráfico resto de
del mensaje en tránsito amenazas

119
Confidencialidad − Escuchas ocultas en la − Pérdida de − Cifrado, proxy
red información web
− Robo de información del − Pérdida de
servidor privacidad
− Robo de datos del cliente
− Información sobre la
configuración de la red
− Información sobre que
cliente se comunica con
el servidor
Denegación de − Interrupción de procesos − Destructivo − Difícil de
servicios del usuario − Molesto prevenir
− Inundar la máquina con − Impide que los
amenazas fraudulentas usuarios finalicen
− Llenar el espacio de su trabajo
disco o la memoria
− Alistar la máquina
mediante ataques de
DNS
Autentificación − Suplantación de usuarios − Falsificación de − Técnicas
legítimos usuario criptográficas
− Falsificación de datos − Creer que la
información falsa
es válida

Tabla 4.1. Comparación de amenaza en la web


Fuente: Stalling, W (2003) Fundamentos en Seguridad en Redes.

Una manera de clasificar las amenazas a la seguridad de la web es en función de


la ubicación de las amenazas: servidor web, navegador web y tráfico de red entre
navegador y servidor. Los aspectos referentes a la seguridad del servidor y del
navegador se enmarcan dentro de la categoría de los sistemas de computadoras.
(Stallings, 2003, p. 226).
A continuación los diferentes protocolos de internet y ubicación de los protocolos
de seguridad para la World Wide Web:

Figura 13.1: Ubicación relativa de las herramientas de seguridad en la pila de protocolos


TCP/IP
Fuente: Stallings, W. (2000) Fundamentos de seguridad en redes (Segunda Edición). P.
226.

120
13.2 Control de Acceso al Servidor Web
La mayoría de los servidores web modernos nos permiten controlar todo desde el
mismo servidor web los aspectos relacionados con la seguridad y la autenticación
de los usuarios.
En este sentido el modo más simple de control es el proporcionado por el uso de
ficheros .htaccess. Éste es un sistema de seguridad que proviene de uno de los
primeros servidores web (del NCSA httpd), que consiste en poner un fichero de
nombre .htaccess en cualquier directorio del contenido web que se vaya a servir,
indicando en este fichero qué usuarios, máquinas, etc., tienen acceso a los
ficheros y subdirectorios del directorio donde está el fichero.
Como el servidor de NCSA fue el servidor más usado durante mucho tiempo, la
mayoría de servidores en la actualidad ha heredado este mecanismo y permiten
utilizar el fichero .htaccess respetando la sintaxis del servidor de NCSA.
En algunos casos los otros servidores permiten especificar reglas de servicio de
directorios y ficheros en la configuración del servidor web, indicando allí qué
usuarios, máquinas, puertos, etc., pueden acceder al recurso indicado.
Por lo que respecta a la autenticación es decir validación del nombre de usuario y
contraseña proporcionados por el cliente, las prestaciones ofrecidas por los
diversos servidores web son de lo más variado y cada una posee mecanismos de
autentificación en diferentes niveles e incluso a nivel de aplicación.
Como mínimo, proporcionan al servidor web un fichero con nombres de usuario y
contraseñas luego puede ser validado por el servidor. Por otro lado es frecuente
que los servidores proporcionen pasarelas que permitan delegar las tareas de
autenticación y validación a otro software. Por ejemplo sistemas Radius y Ldap. Si
usamos un sistema operativo como GNU/Linux, que dispone de una
infraestructura de autenticación como PAM (pluggable authentication modules),
podemos usar esta funcionalidad como modo de autenticación del servidor web,
permitiéndonos así usar los múltiples métodos disponibles en PAM para
autenticar contra diversos sistemas de seguridad.
Un fichero .htaccess (hypertext access), también conocido como archivo de
configuración distribuida permite definir diferentes directivas de configuración para
cada directorio.
Para proceder a crear archivo .httaccess, se debe crear un fichero con el mismo
nombre en cada directorio cuyos ficheros requieran protección.
Por ejemplo:
AuthUserFile /home/juan/usuarios
AuthGroupFile /home/juan/grupos
AuthName ByPassword
AuthType Basic
<LIMIT GET POST>
requiere user juan
allow from .uigv.edu.pe
deny from .hackers.uigv.edu.pe
</LIMIT>

121
Como se puede ver, el control de acceso afecta a todos los ficheros del directorio
protegido. Se puede conceder o denegar el acceso en función de direcciones IP,
en cuyo caso se utilizaría un fichero de control de acceso de la forma (all equivale
a cualquier petición):

<Limit GET POST>


deny from all
allow from pc1.usuarios.uigv.edu.pe
</Limit>

Además, NCSA soporta los sistemas de autentificación básico (en el que las
claves circulan de forma visible por la red) o MD5 (que añade una codificación a
estas claves). Los ficheros de usuarios y claves se crean con la aplicación
htpasswd, que permite editar un fichero de claves (similar al passwd de UNIX):

htpasswd –c /users/luis/usuarios juan

Ahora se teclearía la clave de acceso para Juan, de esta manera queda restringir
el acceso a directorios, también puede restringir el acceso a IPs o ISPs incluso
puede crear URL amigables.

122
Lección 14: Protocolos de Seguridad para la Web

14.1 Protocolo de comunicación cifrado (HTTPS)


Para comunicarse con el servidor web que contiene información sensible es
recomendable usar protocolos que utilicen cifrado. El más utilizado es el HTTPS
(HTTP seguro), que usa un cifrado en la comunicación, a diferencia del protocolo
HTTP, en que la información circula visible, por lo cual con un detector o sniffer se
puede ver toda la sesión.
En aplicaciones como de correo electrónico vía web, transacciones electrónicas,
información privada sensible en la web, es recomendable instalar el módulo
HTTPS.
De acuerdo a Colobran, M. (2008): ”El HTTPS es una versión cifrada de HTTP,
implementada por medio de estándares como SSL/TLS. La conexión cifrada se
lleva a cabo simplemente con una conexión HTTP ordinaria por encima de una
conexión SSL cifrada. Por lo demás HTTPS y HTTP son iguales” (p. 203)
El puerto estándar de conexión HTTPS es el 443.

Figura 14.1: Ubicación del protocolo HTTPS

HTTPS utiliza el protocolo de seguridad SSL (secure socket layer) para cifrar y
autenticar el tráfico entre cliente y servidor, siendo ésta muy usada por los
servidores web de comercio electrónico, así como por aquellos que contienen
información personal o confidencial.

14.2 Protocolo de seguridad para transacciones seguras (SET)


SET (Secure Electronic Transaction; en español, Transacción Electrónica Segura)
es un protocolo desarrollado por Visa y Mastercard y que utiliza el estándar SSL
(Secure Socket Layer).
El estándar SET (Secure Electronic Transaction) fue desarrollado en 1995 por
Visa y MasterCard, con la colaboración de gigantes de la industria del software,
como Microsoft, IBM y Netscape. La gran ventaja de este protocolo es que ofrece
autenticación de todas las partes implicadas (el cliente, el comerciante y los
bancos, emisor y adquiriente); confidencialidad e integridad, gracias a técnicas
criptográficas robustas, que impiden que el comerciante acceda a la información
de pago (eliminando así su potencial de fraude) y que el banco acceda a la
información de los pedidos (previniendo que confeccione perfiles de compra); y

123
sobre todo gestión del pago, ya que SET gestiona tareas asociadas a la actividad
comercial de gran importancia, como registro del titular y del comerciante,
autorizaciones y liquidaciones de pagos, anulaciones, etc. (Revista IDEA, 2000, p.
52)
SET se basa en el uso de una firma electrónica del comprador y una transacción
que involucra, no sólo al comprador y al vendedor, sino también a sus respectivos
bancos.
Según España (2003), "En un entorno interactivo se asume que exista un proceso
de iniciación que activa el protocolo SET. Este proceso permite a las partes
comerciantes (comprador y comerciante) intercambiarse información requerida
para ejecutar correctamente el protocolo, como por ejemplo, las marcas de
tarjetas aceptadas, una descripción del pedido, la suma a la que este asciende,
etc. En la especificación del protocolo SET no se describe el proceso de
iniciación; no obstante, se define unos mensajes de iniciación susceptibles de
emplearse en dicho proceso. Estos mensajes son los siguientes: iniciación de
registro, iniciación de consulta de registro, iniciación de pago y iniciación de
consulta de pago" (p. 659).
Cuando se realiza una transacción segura por medio de SET, los datos del cliente
son enviados al servidor del vendedor, pero dicho vendedor sólo recibe la orden.
Los números de la tarjeta del banco se envían directamente al banco del
vendedor, quien podrá leer los detalles de la cuenta bancaria del comprador y
contactar con el banco para verificarlos en tiempo real.
El protocolo SSL (iWorld, número de julio/agosto 1999, Seguridad con SSL),
actualmente es el más utilizado y más extendido en Internet que SET, no fue
diseñado para interacciones entre múltiples partes, como las transacciones
comerciales, que pueden llegar a involucrar hasta seis partes. SSL se limita a
cifrar el número de tarjeta de crédito cuando es transmitido desde el navegador
del cliente hasta el servidor del comerciante, resultando insuficiente para los
requisitos de seguridad de un comercio electrónico fiable.
Esta situación no se podía mantener por más tiempo, por lo que en 1995 Visa y
MasterCard, con la colaboración de otras compañías líderes en el mercado de las
tecnologías de la información, como Microsoft, IBM, Netscape, RSA, o VeriSign,
unieron sus fuerzas para desarrollar Secure Electronic Transaction (SET), un
protocolo estandarizado y respaldado por la industria, diseñado para salvaguardar
las compras pagadas con tarjeta a través de redes abiertas, incluyendo Internet.
El protocolo SET ofrece una serie de servicios que convierten las transacciones a
través de Internet en un proceso seguro y fiable para todas las partes implicadas:
− Autenticación: todas las partes involucradas en la transacción económica (el
cliente, el comerciante y los bancos, emisor y adquiriente) pueden verificar
mutuamente sus identidades mediante certificados digitales. De esta forma, el
comerciante puede asegurarse de la identidad del titular de la tarjeta y el
cliente, de la identidad del comerciante. Se evitan así fraudes debidos a usos
ilícitos de tarjetas y a falsificaciones de comercios en Internet (web spoofing),
que imitan grandes web comerciales. Por su parte, los bancos pueden
asimismo comprobar la identidad del titular y del comerciante.
− Confidencialidad: la información de pago se cifra para que no pueda ser
espiada mientras viaja por las redes de comunicaciones. Solamente el número

124
de tarjeta de crédito es cifrado por SET, de manera que ni siquiera el
comerciante llegará a verlo, para prevenir fraudes. Si se quiere cifrar el resto
de datos de la compra, como por ejemplo qué artículos se han comprado o a
qué dirección deben enviarse, debe recurrirse a un protocolo de nivel inferior
como SSL.
− Integridad: garantiza que la información intercambiada, como el número de
tarjeta, no podrá ser alterada de manera accidental o maliciosa durante su
transporte a través de redes telemáticas. Para lograrlo se utilizan algoritmos
de firma digital, capaces de detectar el cambio de un solo bit.
− Intimidad: el banco emisor de la tarjeta de crédito no puede acceder a
información sobre los pedidos del titular, por lo que queda incapacitado para
elaborar perfiles de hábitos de compra de sus clientes.
− Verificación inmediata: proporciona al comerciante una verificación
inmediata, antes de completarse la compra, de la disponibilidad de crédito y de
la identidad del cliente. De esta forma, el comerciante puede cumplimentar los
pedidos sin riesgo de que posteriormente se invalide la transacción.
− No repudio para resolución de disputas: la mayor ventaja de SET frente a
otros sistemas seguros es la adición al estándar de certificados digitales
(X.509v3), que asocian la identidad del titular y del comerciante con entidades
financieras y los sistemas de pago de Visa, MasterCard, etc. Estos certificados
previenen fraudes para los que otros sistemas no ofrecen protección, como el
repudio de una transacción (negar que uno realizó tal transacción),
proporcionando a los compradores y vendedores la misma confianza que las
compras convencionales usando las actuales redes de autorización de
créditos de las compañías de tarjetas de pago.
El pago mediante tarjeta es un proceso complejo en el cual se ven implicadas
varias entidades:
− El banco emisor: emite la tarjeta del cliente, extiende su crédito y es
responsable de la facturación, recolección y servicio al consumidor. En el
artículo 46 de la Ley de Comercio Minorista se establece que cuando el
importe de una compra hubiese sido cargado utilizando el número de una
tarjeta de crédito, sin que ésta hubiese sido presentada directamente o
identificada electrónicamente (por ejemplo por un hacker que robó el número
en Internet), su titular podrá exigir la inmediata anulación del cargo.
− El banco adquiriente: forma relación con el comerciante, procesando las
transacciones con tarjeta y las autorizaciones de pago.
− El titular de la tarjeta: posee la tarjeta emitida por el banco emisor y realiza y
paga las compras.
− El comerciante: vende productos, servicios o información y acepta la
transacción.

14.3 Certificados Digitales


Conocido también como certificado de clave pública o certificado de identidad, se
trata de un documento digital mediante el cual un tercero confiable (una autoridad
de certificación) garantiza la vinculación entre la identidad de un persona o

125
organización utilizando un nombre, dirección y otros aspectos de identificación y
una clave pública.
Los navegadores web saben que es seguro mediante certificados digitales. Hay
organismos como el CA (Autoridad Certificadora) que certifican a empresas o
personas y estos certificados se almacenan en nuestro navegador, de tal manera
que cuando entramos a una web, nuestro navegador se valida con el certificado
del servidor web y cifra la comunicación.
Para que un certificado digital tenga validez legal, el prestador de Servicios de
Certificación debe acreditarse en cada país de acuerdo a la normativa que cada
se defina, en el caso peruano el responsable es el Instituto Nacional de Defensa
de la Competencia y de la Protección de la Propiedad Intelectual. Actualmente las
empresas usan prestigiosas empresas internacionales para que les provea los
certificados digitales.
Para entender mejor, ingresamos al sitio de pagos Paypal (URL:
http://www.paypal.com), en ese momento el certificado que hay en ese servidor
manda a nuestro navegador de manera transparente al usuario, como información
acerca de ese certificado y nuestro navegador lo valida. Entonces se establece
entre ellos una comunicación segura y cifrada.
Si hacemos doble clic sobre el candado dorado del sitio web de paypal, podremos
ver la información del certificado:

Figura 14.2: Certificado Digital de paypal

Luego, si hacemos un clic información del certificado aparece la empresa que lo


emite y más detalles del certificado:

126
Figura 14.3: Detalles del Certificado Digital

En ocasiones podemos navegar y ver que al acceder a un sitio web, nos pregunta
si queremos aceptar este certificado. Cuando un servidor web de una página hace
esto, quiere decir que no es un certificado legal emitido por una CA oficial, pero
esto no significa que no sirva para encriptar nuestras comunicaciones hacer
seguras. Cuando ocurre esto debemos tener claro cuál es el origen del mismo, ya
que si no es de nuestra confianza no debemos decirle que si acepte, ya que
entonces nuestro navegador adquiere ese certificado y lo valida como bueno y
esto nos puede lleva a estafas.
Lo que ocurre es que solicitar un certificado digital no es gratuito y muchas
empresas se crean su propia CA para crear con ella sus propios certificados.
Estos se los dan a los usuarios para que los carguen en su navegador para que
de esta manera no nos diga que no es un certificado valido y registrado.

127
Lección 15: Aplicaciones Web Empresariales

15.1 OpenBravo
Es un sistema de gestión empresarial integrado (ERP) que integra procesos de
negocio. Es una herramienta empresarial basada en software libre y trabaja en un
entorno web, que ofrece una propuesta de valor radicalmente distinta,
proporcionando por otros sistemas de gestión empresarial.
El sistema está orientado a pequeñas y medianas empresas que buscan una
solución integrada de gestión empresarial de su negocio, que les permita una
completa administración de sus operaciones diarias, la optimización de los
procesos operativos, el aumento de la satisfacción de sus clientes y, en definitiva,
un incremento de su rentabilidad.
Desarrollado bajo el modelo MVC (Modelo Vista Controlador), lo que facilita el
desacoplamiento de las áreas de desarrollo, posee módulos SCM, CRM, logística,
ventas, gestión de servicios, proyectos, puntos de venta y mucho más.
Openbravo ERP ha sido implantado con éxito en compañías de distinto tamaño, y
de sectores y actividades muy diversas. Todo ello ha sido posible gracias a la red
cualificada de Partners a los que Openbravo ofrece la oportunidad de desarrollar
un negocio realmente diferenciado.
El sitio oficial de OpenBravo es: http://www.openbravo.com

15.2 OpenERP
OpenERP es una potente herramienta para la planificación y gestión de los
recursos empresariales, en entorno web. Desde el punto de vista técnico y
funcional está preparada para trabajar en casi cualquier proceso de negocio, en
donde se precise dar respuesta a las áreas: Gestión Logística y de
aprovisionamientos, Gestión comercial y Marketing, Gestión de proyectos,
Gestión de la Producción y Gestión Económico-Financiera.
Todo ello en un entorno “multi” es decir, es multi-empresa, multi-idioma, multi-
plataforma…,.
Bajo modelo de software libre, la adaptación y personalización a las necesidades
de cada proceso de negocio está siempre garantizada, al tiempo que este modelo
de desarrollo colaborativo, ha propiciado su crecimiento a nivel mundial, y su
rapidísima integración con distintas plataformas
El sitio oficial de Open ERP es: http://www.openerp.com/es

15.3 Intalio BPM


Intalio BPM (Business Process Manager) es un sistema de gestión y
automatización de procesos de negocio, basado en software libre y desarrollado
íntegramente en eclipse con el lenguaje de programación Java. Está construido
en torno a las normas basadas en BPMN (Business Process Modeling Notation) y
BPEL (Business Process Execution Language). Proporciona todos los

128
componentes necesarios para el diseño, despliegue y gestión en cualquier
proceso de negocio.
Intalio permite modelar, diseñar, implementar, simular, ejecutar y mejorar
procesos de negocios en un entorno web basado en estándares como XML,
WSDL, SOAP, XPDL y BPEL. El proceso automatizado es una aplicación web
donde interactúan los usuarios.
El sitio oficial de Intalio es: http://www.intalio.com

15.4 Pentaho (Business Intelligence)


Pentaho es una herramienta de Business Intelligence desarrollada bajo la filosofía
del software libre para la gestión y toma de decisiones empresariales y trabaja en
entorno completamente web. Está compuesta de diferentes programas que
satisfacen los requisitos de la Inteligencia de Negocios. Entre los módulos
podemos destacar la gestión y análisis de la información, incluyendo el análisis
multidimensional con OLAP, presentación de informes, minería de datos y
creación de cuadros de mando para el usuario.
La plataforma ha sido desarrollada bajo el lenguaje de programación Java,
haciendo así que Pentaho sea una solución muy flexible al cubrir una alta gama
de necesidades empresariales.
Los productos destacados ofertados en la Suite de Business Intelligence son los
siguientes: Pentaho Data Integration, pentaho Analisys Services, Pentaho
Reporting, Pentaho Data Mining y Pentaho DashBoard.
El sitio oficial de Pentaho http://www.pentaho.com/

15.5 OS-Commerce (Comercio Electrónico)


Se trata de una aplicación web basada en software libre que te permite montar
una tienda virtual rápidamente y ofrecer productos para vender en Internet.
Desarrollado en php y mysql, ha tenido un gran éxito sobre todo para las
empresas que inician en el mundo del comercio electrónico.
Consta de dos partes principalmente el front y el back-end, es decir, la parte que
vemos todo el mundo, la tienda virtual en sí, y la parte de administración, donde
podrás mantener su propia tienda virtual, actualizando productos, insertando
nuevas ofertas, categorías, idiomas, monedas, consultar los pedidos, los clientes
y sin coste ninguno por parte del vendedor y sin necesidad ninguna de saber
programación.
Es uno de los sistemas que constantemente está siendo actualizada por su
comunidad, añadiendo contribuciones de todo tipo. Módulos de pago, de envío,
contribuciones para el diseño, como templates, así como nuevas funcionalidades,
noticias, lector de rss y mucho más.
En la actualidad las empresas de Hosting ofrecen una solución con Os-Commerce
ya instalada, aunque es realmente fácil instalar.
El sitio oficial de de OS-Commerce es: http://www.oscommerce.com/

129
15.6 Liferay (Gestión de contenidos java)
Liferay es un portal de gestión de contenidos basada en la filosofía del software
libre escrito en Java. Se ejecuta en la mayoría de los servidores de aplicaciones y
contenedores de servlets, base de datos y sistemas operativos, con más de 700
combinaciones posibles. Construido dentro del Sistema de manejo de contenido
(CMS) y Suite Colaborativa y páginas personalizadas para todos los usuarios.
Liferay ha servido para crear entornos colaborativos on-line. Actualmente está
respaldado por una extensa red de servicios profesionales que ofrece desarrollos
a medida, soporte y capacitación.
Liferay ofrece una arquitectura de temas o plantillas, que permite llevar a cabo
cambios en la apariencia del portal sin cambiar el código fuente. Es posible
desplegar nuevos temas sin necesidad de tener que detener la ejecución al portal.
El sitio oficial de Liferay es: http://www.liferay.com/es/

15.7 Alfresco (Sistema de gestión documental)


Sistema de gestión de contenido empresarial basado en software libre que incluye
la gestión de documentos, la gestión de contenidos empresarial. Alfresco
desarrolla, comercializa y pone a disposición de los usuarios dos versiones, o
ediciones, del producto Alfresco ECM:
- Alfresco Community (edición comunitaria de Alfresco): 100% código abierto,
de descarga y uso gratuitos.
- Alfresco Enterprise (edición empresarial de Alfresco): de código abierto, con
asistencia comercial y ampliaciones empresariales.
Esta íntegramente desarrollado en Java y funciona en múltiples plataformas,
posee una licencia GPL versión 2.
El sitio oficial de Alfresco es: http://www.alfresco.com/

15.8 Drupal (Sistema de Administración de Contenido)


Es un sistema de gestión de contenido modular multipropósito y muy configurable
que permite publicar artículos, imágenes, u otros archivos y servicios añadidos
como foros, encuestas, votaciones, blogs y administración de usuarios y
permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos
en archivos estáticos en el sistema de ficheros del servidor de forma fija, el
contenido textual de las páginas y otras configuraciones son almacenados en una
base de datos y se editan utilizando un entorno Web.
Es un programa libre, con licencia GNU/GPL, escrito en php, desarrollado y
mantenido por una activa comunidad de usuarios. Destaca por la calidad de su
código y de las páginas generadas, el respeto de los estándares de la web, y un
énfasis especial en la usabilidad y consistencia de todo el sistema.
El sitio oficial de drupal es: http://drupal.org/

130
Lección 16: Sistema Operativo Web

16.1 ¿Qué es el sistema operativo web?


Web Operating System o WebOS es un proyecto de investigación de computación
que empezó en la Universidad de California (Berkeley) para desarrollar un
programa para aplicaciones abstractas usadas en Internet. Las abstracciones que
provee incluyen:
- Un sistema de archivos que identifica la información mediante localizadores
uniformes de recursos (URL).
- Un sistema de nombramiento de recursos independiente de la localización.
- Ejecución remota y segura de sus aplicaciones.
- Acceso seguro a la información en un modelo de computación en la nube.
- Transacciones libres de error en el lado del cliente.
La Universidad de Duke, la Universidad de Texas (Austin) y la Universidad de
Washigton son las que han iniciado esta línea de investigación.
La característica más sobresaliente de este tipo de escritorio virtual en la web,
funcionando en un navegador web como software.
Generalmente, el término WebOS ha sido empleado para referirse a una
plataforma que interactúa con el usuario a través del navegador web y no
depende del sistema operativo. Tales predicciones datan desde mediados de los
90, cuando Marc Andreessen predijo que Microsoft Windows estaba destinado a
ser un "pobre conjunto de drivers ejecutándose en Netscape Navigator.".
Recientemente, esta tecnología ha suscitado un importante interés gracias a que
Google está produciendo una nueva plataforma. (Revista: Qué pasa, 2006, p.
44).
Los sistemas operativos web generalmente también se los conoce como
escritorios Web:
"Un Escritorio Web o Webtop es un sistema de aplicación de red para integrar
aplicaciones web en un espacio de trabajo basado en web. Es un escritorio virtual
en la web, corriendo en un navegador de web como software. Los escritorios web
a menudo están caracterizados por un entorno similar al de Windows, Mac, o
Linux, pero ahora se considera que tiene mucha más funcionalidad al depender
de la Internet. Los beneficios típicos incluyen la habilidad de guardar trabajo y
configuraciones en la Internet en vez de hacerlo en un escritorio local."
Es importante resaltar que no tiene nada que ver este tema con HP WebOS que
es un sistema operativo para móviles.
Cuando oímos hablar de Sistemas Operativos en Web, suele ser en futuro. Por
eso sorprende encontrar esta lista confeccionada por FranticIndustries
(http://franticindustries.com/blog/2006/12/21/big-webos-roundup-10-online-
operating-systems-reviewed/), en la que encontramos 10 de estos sistemas que
funcionan hoy:

131
1. Craythur. Completamente nuevo y en español. Tiene un cuidado especial en
el diseño de escritorios y ventanas. Sin embargo, las aplicaciones aún están
en sus inicios.
2. Desktoptwo. Basado en Flash, requiere registro para probarlo. Las
aplicaciones son lentas y falta usabilidad en algunas aplicaciones.
3. EyeOS. Puede descargar los archivos de este sistema operativo para
instalarlos en su servidor web y utilizarlos para múltiplos propósitos, los
usuarios pueden probar en línea esta aplicación. Es uno de los mejores
proyectos de sistema operativo web y ha tenido mucho impacto en la industria
tecnológica pro sus avances.
4. Glide. Ofrece en versión gratis y de pago. Basado en Flash, permite subir o
almacenar hasta 1GB. Incluye las aplicaciones más comunes, está bien
diseñado. Muchas aplicaciones se abren en ventanas emergentes, otras no
están bien terminadas en cuanto a los gráficos su proceso de desarrollo va por
buen camino.
5. Goowy. Basado en Flash, con muchas aplicaciones construidas y con buena
usabilidad. Todo funciona en la misma ventana con una barra de
herramientas. Los autores de la selección lo consideran de lejos el mejor de la
lista por su funcionalidad, usabilidad y escasos fallos.
6. Orca. Orca está en proceso de desarrolla y no estaba compatible con mozilla
firefox e internet explorer en algunas versiones.
7. Purefect. Incluye aplicaciones que imitan el estilo de Windows. A pesar de sus
fallos.
8. SSOE. Parece un proyecto con vistas al futuro, el autor ha admitido que lleva
construido el 10% del sistema, y de momento ofrece una versión relativamente
estable y otra más nueva pero menos estable.
9. XinDESK. Aún no hay disponible una demo o una versión Alpha. Pero según
su desarrollador, intenta ser una plataforma abierta, accesible a todos, con
aplicaciones que puedan instalarse en cualquier versión de Windows.
10. YouOS. Se ve que hay trabajo serio invertido en este sistema, que cuenta con
una serie de aplicaciones útiles y funcionales como un buen cliente de chat,
buscador de archivos, lector RSS y otros. El fallo está en el diseño, que no es
lo que se dice bonito. La consultora FranticIndustries lo colocan en el segundo
puesto.

16.2 EyeOS
EyeOS es un escritorio virtual multiplataforma, libre y gratuito, basado sobre el
estilo del escritorio de un sistema operativo. El paquete básico de aplicaciones
que vienen por defecto, incluye toda la estructura de un sistema operativo y
algunas aplicaciones de tipo suite ofimática como un procesador de textos, un
calendario, un gestor de archivos, un chat, un navegador, una calculadora y más.
El paquete íntegro está autorizado bajo la licencia libre AGPL. Existe un sitio
paralelo que proporciona aplicaciones externas para eyeOS, llamadas eyeApps.

132
Se trata de un nuevo concepto en almacenaje virtual, el cual se considera como
revolucionario al ser un servicio clave para el Web 2.0 ya que dentro de una web
que combina el poder del actual HTML, PHP, AJAX y JavaScript para crear un
entorno gráfico de tipo escritorio.
La diferencia entre otros entornos escritorio al hacer posible iniciar el escritorio
eyeOS y todas sus aplicaciones desde un navegador web. No se requiere instalar
ningún software adicional, ya que solo se necesita un navegador que soporte
AJAX, Java y Adobe Flash (dependiendo de las aplicaciones que se deseen
ejecutar).
El escritorio en la nube de eyeOS presenta, organiza y gestiona los datos,
archivos y aplicaciones del usuario.
EyeOS Professional Edition es el camino más rápido para virtualizar entorno de
trabajo del usuario en la empresa, a la vez que mantiene todos los datos bajo
control en la nube privada de eyeOS. La nueva edición asegura una más alta
satisfacción de los usuarios ya que facilita el acceso a su espacio de trabajo
desde cualquier dispositivo, mientras que todos sus datos y los archivos se
sincronizan y las copias de seguridad se llevan a cabo en un solo lugar en la
empresa. Frente a una solución de virtualización de escritorio tradicional,
implementando eyeOS Professional Edition la empresa ahorra considerablemente
en servidores y licencias de software.
El software, tanto en su versión Open Source como la Professional Edition, es un
software enterprise que se instala en los servidores del cliente para prestar
servicio a los empleados, colaboradores externos y/o clientes.
El software de eyeOS crea una nube privada, así los datos de los usuarios están
en todo momento bajo el control del administrador del sistema. El propio
administrador decide cuanto espacio de storage quiere reservar a los usuarios, a
qué aplicaciones quiere que accedan, de qué privilegios gozan y de qué
funcionalidades pueden disfrutar.
El escritorio de eyeOS es totalmente personalizable, no sólo en términos de
aspecto visual sino en la estructura y contenidos de los menús, bien sea en la
barra de menús o en las acciones accesibles desde el botón derecho del ratón.
El software está programado en php, Javascript y Ajax. La versión Professional
Edition está compilada.
La arquitectura funcional de EyeOS es la que se muestra a continuación:

133
Figura 14.4: Arquitectura funcional de EyeOS
Fuente: http://eyeos.org/es/¿que-es-eyeos/

134
RESUMEN

La unidad desarrollada describe los retos que generalmente no se aprecian en el


contexto de la seguridad de los ordenadores y la red, la descripción de amenazas
que estamos expuestos y las medidas adoptar.
En la comunicación con servidores web, que contiene información de suma
importancia, es recomendable usar protocolos que utilicen cifrado, como el https
que utiliza un cifrado en la comunicación que lo diferencia del protocolo http y del
protocolo SET desarrollado por Visa y Mastercard para la realización de
transacciones seguras, así mismo de los Certificados Digitales utilizado para el
tratamiento de documentos en digital, garantizando la confidencialidad de la
información.
Se define un conjunto de aplicaciones Web Empresariales, que permitan
accesibilidad, multiplataforma, portable, colaborativas, entre otros; tales como:
OpenBravo, OpenERP, Intalio, Alfresco, Drupal, entre otros.
Al término de la unidad se conceptualiza el Sistema Operativo Web cuyo objetivo
es proveer una plataforma que permita a los usuarios acceder a los mismos
recursos y aplicaciones a través de la nube (Cloud Computing), para ello se ha
tomado como ejemplo la plataforma EyeOS.

135
LECTURA

Internet de las cosas y M2M

Una de los conceptos más citados a la hora de hablar del futuro de la Web es el
Internet de las cosas. Este concepto implica que los objetos reciban y emitan
información, formando así parte de la red. Dentro del Internet de las cosas es
necesario definir y distinguir varios conceptos: los objetos hipervinculados, los
objetos inteligentes y la comunicación M2M (machine to machine o máquina a
máquina).
Al igual que un hipervínculo o link en un documento nos permite saltar hacia otra
web para obtener más información, la idea de objetos hipervinculados se refiere a
la capacidad de las cosas de ofrecer información sobre sí mismas a través de
Internet. Para conseguir esta capacidad, es necesario etiquetar estos objetos de
alguna forma. Conforme la naturaleza de dichas etiquetas, podemos tener varios
tipos de objetos hipervinculados:
Etiquetas gráficas. La etiqueta que permite la vinculación a Internet está impresa
y es físicamente visible en el objeto (o junto a él). El propio código de barras
podría servir como etiqueta hiperviculadora. Por ejemplo, Barcode Scanner es
una App de Android (hay otras similares para otros sistemas operativos) que sirve
como lector de códigos de barras. Para ello utiliza la cámara del teléfono y el
programa muestra opciones para buscar el producto en Internet. Si, por poner un
ejemplo, el transformador del cargador de mi equipo portátil ya no funciona,
podría utilizar esta App para buscar un lugar donde vendan esa pieza.
Otra opción de etiquetas gráficas son los códigos QR (del inglés Quick Response
o respuesta rápida). Estos códigos son similares a los de barras pero cuentan con
dos dimensiones en lugar de una (cuadros en lugar de líneas) y por tanto, son
capaces de acumular más información. Mientras que un código de barras sólo
puede proporcionar un número (el que suele estar escrito debajo del propio
código), un código QR puede tener la información suficiente para una URL (o
dirección de página web) y por lo tanto enlazarnos directamente con un
determinado sitio web, sin que se necesite para ello ningún otro servicio como
intermediario.
Hay muchos teléfonos que incorporan ya de serie programas de lectura para
estos códigos, que también pueden ser adquiridos en cualquier App Store de los
diferentes sistemas operativos. De igual forma, hay multitud de sitios web en los
que se puede generar uno de estos códigos para una determinada URL (un
ejemplo es www.tgbe.ws). Barrabés, dentro del Plan Avanza del Ministerio de
Industria de España, desarrolló en el 2008 un programa, que incluye esta
tecnología, para bodegas productoras y comercializadoras de vino, denominado
AvanzaVino. Las etiquetas de las botellas (o bien las cajas u otros elementos)
incorporan uno de estos códigos que, consultados desde un Smartphone
conectado a Internet, ofrece una completa hoja de cata de dicho vino en
específico.
Etiquetas transmisoras. La etiqueta que permite la vinculación a Internet no
tiene porque ser físicamente visible sino que utiliza transmisión por radio. En este

136
sentido, la tecnología RFID (siglas de Radio Frequency IDentification, o
identificación por radiofrecuencia) es un sistema de almacenamiento y consulta de
datos en remoto a través de etiquetas. El propósito fundamental de la tecnología
RFID es transmitir la identidad de un objeto mediante ondas de radio.
Se trata de pequeñas etiquetas que se adhieren o incorporan a un producto (o
incluso a un animal o a una persona). Algunas cadenas de supermercados ya
están realizando pruebas para sustituir los actuales lectores de códigos de barras
por este sistema (lo que produciría un paso por caja mucho más rápido al no tener
que pasar los productos uno por uno). Además podemos ver un par de
aplicaciones que pueden utilizarse ya en casa. Una de ellas es el dispositivo
conectado al ordenador, capaz de reconocer los objetos etiquetados que se
pongan sobre ella. Una vez identificados, se envía la información a la plataforma
online de Violet, y se desencadenan diferentes aplicaciones o acciones
(previamente configuradas). Por ejemplo, podemos hacer que cuando
acerquemos un determinado libro de cuentos, el sistema busque imágenes o
sonidos de ese cuento.
Otra iniciativa similar es Touchatag de Alcatel-Lucent (también francesa). El lector
y 10 etiquetas tiene un precio de 29,95€ + impuestos, mientras que 25 etiquetas
tienen un precio de 19,95€, y 500 cuestan 379€ (por debajo de un euro la
etiqueta).
Una tecnología que parte del RFID y que está teniendo gran desarrollo es el NFC
(Near Field Communication o comunicación de campo cercano). Para simplificar,
podemos decir que es sistema de RFID que funciona cuando los objetos están
muy cerca (menos de diez o veinte centímetros). Lo interesante es que ya hay
varios teléfonos en el mercado (de Nokia, Samsung, LG o Motorola, entre otros)
capaces de leer estas etiquetas (como las mencionadas de Touchatag). En el
capítulo dedicado a los nuevos medios de pago hablaremos un poco más de esta
tecnología.
Etiquetas geográficas. En realidad no hay etiqueta como tal sino que se
referencia una ubicación (para objetos inmóviles como una estatua o un árbol por
ejemplo) y el sistema busca la información correspondiente a ese lugar.
Una vez explicados los objetos hipervinculados, pasamos a los objetos
inteligentes que son aquellos que pueden tanto transmitir información o estados
en lo que se encuentran (no sólo su identidad), como recibir órdenes para ejecutar
acciones.
Es curioso ver cómo cierta evolución de estos objetos inteligentes se ha dado a
través de Twitter con iniciativas de lo más variopinto. Algunas parecen buenas
ideas y otras simplemente bromas pero la verdad es que siempre hay algún nicho
de mercado con gente dispuesta a comprar las cosas más inverosímiles. Ahí van
unas cuantas de estas iniciativas:
KogiBBQ (http://kogibbq.com). A principios del 2009 se hizo bastante conocido
el caso de este negocio sobre ruedas que opera en Los Ángeles. Se trata de
una camioneta que vende de forma ambulante tacos de comida coreana a la
barbacoa. Conforme se mueve va twitteando su posición para atraer a los
clientes que estén cerca en ese momento. La cosa funciona, porque su cuenta
en Twitter (http://twitter.com/KOGIBBQ) ya cuentan con más de 80.000
seguidores.

137
BakerTweet (www.bakertweet.com). A todos nos gusta llegar a la panadería
justo en el momento en el que nuestra pieza favorita sale caliente del horno.
Esa es la base de BakerTweet, el horno de que avisa por Twitter. El sistema se
maneja desde una pequeña caja que se instala junto al horno.
Desde la web de bakertweet, se configuran los diferentes productos que pueden
salir del horno, junto con el mensaje asociado a cada uno de ellos. Con un simple
movimiento en la pequeña rueda del dispositivo, se emite el tweet
correspondiente al producto que vaya a salir del horno en ese momento. El
establecimiento pionero en implantar este sistema a principios del 2009 fue el
Albion Café de Londres (www.albioncaff.co.uk) a través de
http://twitter.com/albionsoven.
Hasta ahora estamos viendo aplicaciones en las que las maquinas sólo hablan
(no escuchan) pero no sería nada raro ver comunicación a través de mensajes de
Twitter en los que ordenáramos una determinada acción, como regar la planta del
ejemplo anterior, o pedir a la casa que encienda la calefacción.
Fuera de estas iniciativas de Twitter también podemos encontrar otros objetos
inteligentes, un buen ejemplo sería el sensor Nike+iPod
(www.apple.com/es/ipod/nike). Este sensor se coloca en un compartimento bajo la
plantilla de la zapatilla y se conecta con el iPod o el iPhone. El sensor hace un
seguimiento de la carrera y envía la información al iPod. Es posible elegir un
programa determinado con objetivos de tiempo, distancia o calorías, así como una
lista de canciones. Durante la carrera, el iPod va informando del tiempo, la
distancia, la velocidad y las calorías quemadas, ofreciendo también comentarios
tanto al alcanzar la mitad del entrenamiento, como en el tramo final.
Después de la carrera, el iPod se sincroniza con nikeplus.com, lo que permite ver
todas las carreras, controlar los progresos, establecer objetivos, así como
compartir información con otros usuarios.
En otra novedosa iniciativa, Google tiene disponible en diferentes partes de
Estados Unidos, Alemania y Reino Unido, Google PowerMeter que, en alianza
con varias compañías eléctricas, permite monitorear el consumo eléctrico del
hogar desde cualquier parte, por medio de Internet.

Bienvenida. Web 3.0 Guía para sobrevivir en la Internet del 2011


Eduardo Albalá Ubiergo
Editado por Grupo Barrabés
Pp. 118-129

138
AUTOEVALUACIÓN

1. Una contramedida para la confidencialidad de un sistema web es:


a. Cifrado, proxy web
b. No se puede prevenir
c. Encriptar la base de datos
d. Colocar un Firewall físico
e. Utilizar alguna técnica de criptografía

2. El protocolo Kerberos se encuentra ubicado en el nivel de:


a. Red
b. Físico
c. Transporte
d. Aplicación
e. Sesión

3. El protocolo SET actúa solo en el nivel:


a. Transporte
b. Red
c. Transporte
d. Físico
e. Aplicación

4. El comando htpasswd nos permite:


a. crear usuarios web
b. Proteger el navegador web
c. crear un archivo de contraseñas
d. Crear password para el sistema Linux
e. Crear usuarios para el protocolo HTTP

5. El puerto del protocolo HTTPS es:


a. 442
b. 443
c. 8080
d. 80
e. 43

139
6. El protocolo SET utiliza el estándar:
a. SSL
b. Kerberos
c. TSL
d. XML
e. Socket

7. OpenBravo es una aplicación empresarial del tipo:


a. CMS
b. LMS
c. Gestión documental
d. ERP
e. BI

8. Intalio es una solución del tipo:


a. ERP
b. SCM
c. ERP
d. BPM
e. BI

9. OS-Commerce ha sido desarrolla en el lenguaje:


a. Java
b. Php
c. Python
d. C#
e. ASP

10. EyeOS está desarrollado con las siguientes tecnologías:


a. HTML - PHP - AJAX
b. HTML - Java - AJAX
c. HTML - JSP - AJAX
d. Solo PHP
e. PHP - AJAX - XML

140
RESPUESTAS DE CONTROL

1. a 2. d 3. c 4. c 5. b 6. a 7. d 8. d 9. b 10. a

141
EJERCICIOS PROPUESTOS

1. Implementar un Servidor Web utilizando el protocolo HTTPS


2. Implementar el ERP Openbravo y describa los módulos de SCM, CRM y
Ventas
3. Implementar una tienda virtual para productos deportivos, utilizando OS-
Commerce
4. Implementar el CMS Drupal y hacer una breve comparación con el CMS
Joomla.
5. Implementar EyeOS, y mencionar sus ventajas como sistema operativo web

142
EXPLORACIÓN ON LINE

URL: http://httpd.apache.org/docs/2.2/howto/htaccess.html#how
Puede encontrar una guía oficial sobre el uso de htaccess para el servidor web
httpd 2.2
URL: http://www.arcert.gov.ar/webs/manual/manual_de_seguridad.pdf
Un manual sobre seguridad en redes
URL: http://www.iec.csic.es/criptonomicon/ssl.html
Sitio web del Departamento de Tratamiento de la Información y Codificación
del Instituto de Física Aplicada del Consejo Superior de Investigaciones
Científicas de España, que explica de manera detalla el protocolo SSL
URL: http://www.cl.cam.ac.uk/~lp15/papers/Auth/SET-overview-2002.pdf
Paper original sobre el protocolo de Secure Electronic Transaction (SET),
planteado por Lawrence C. Paulson del Computer Laboratory, University of
Cambridge
URL: http://tools.ietf.org/html/rfc2818
Este documento describe cómo utilizar TLS para garantizar las conexiones
HTTP más Internet. La práctica actual es la capa HTTP.

143
REFERENCIA BIBLIOGRÁFICA

Colobran, M. (2008) Administración de sistemas operativos en


red. Barcelona: Editorial UOC.
España, M.C. (2003) Servicios avanzados de
telecomunicaciones. Madrid: Ediciones Díaz de
santos, S.A.
Revista IDEA (2000) Protocolos SET. Editorial IberLibro.
Revista: Qué pasa (2006) WebOS. Editorial IberLibro.
Stallings, W. (2003) Fundamentos de Seguridad en Redes
(Segunda Edición). Madrid: Pearson Educación,
S.A.

144
BIBLIOGRAFÍA COMENTADA

- Molcalvo, A. (2007) Administración de Negocios Digitales. Editorial Libros en


red.
Revisar el capítulo y sobre la diferencia de aplicaciones de e-commerce y e-
bussiness además del capítulo 8, sobre estrategias digitales
- Cabrera, M. A. (2010) Evolución tecnológica y cibermedios. Zamora: Ediciones
Comunicación Social.
Revisar la unidad 5, sobre los efectos de la tecnología sobre la participación
de las audiencias.
- Bravo, C. y Redondo, M.A. (2005) Sistemas interactivos y colaborativos en la
web. Castilla de la Mancha: Ediciones de la Universidad Castilla de la Mancha.
Revisar el capítulo 1, sobre el diseño y desarrollo de aplicaciones
colaborativas y la página 51, sobre herramientas y técnicas para la
construcción de sistemas colaborativos.
- Stallings, W. (2003) Fundamentos de Seguridad en Redes (Segunda Edición).
Madrid: Pearson Educación, S.A.
Revisar el capítulo 2, sobre criptografía de clave pública y autentificación de
mensajes. Además revisar el capítulo 4 sobre aplicaciones de autentificación.
- Asensio, G. (2006) Seguridad en Internet: una guía práctica y eficaz para
proteger su PC con software gratuito. Madrid: Ediciones Nowtilus S.L.
Revisar la unidad 2, sobre seguridad informática para todos, unidad 11 sobre
Amenazas en Internet.

145
GLOSARIO

API Application Programming Interface


BPEL4WS Business Process Execution Language for Web
Services
GPL General Public License
HTML Hyper Text Markup Language
HTTP Hyper Text Transfer Protocol
JDBC Java Data Base Connectivity
JNDI Java Naming Directory Interface
LGPL Lesser General Public License
OWL Ontology Web Language
RMI Remote Method Invocation
RPC Remote Procedure Call
SAX Simple API for XML
SOAP Simple Object Access Protocol
UDDI Universal Description, Discovery and Integration
URL Uniform Resource Locator
WSP Web Services Proveedor
WSC Web Services Consumidor
WSDL Web Service Definition Language
WWW World Wide Web
XML Extensible Markup Language
XSD XML Schema Definition
XSL Extensible Stylesheet Language

146

Das könnte Ihnen auch gefallen