Beruflich Dokumente
Kultur Dokumente
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
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
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
3
Lección 11: Acceso a Base de Datos 101
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.
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.
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.
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.
7
PRIMERA UNIDAD
Sumario
8
Objetivos
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]
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.
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.
13
Lección 2: World Wide Web
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.
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.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.
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.
19
2.3.1 Versiones HTTP
a) Versión HTTP 0.9
Primera versión HTTP/0.9 solo soportaba el método GET.
- 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.
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).
21
g) Permite actuar como un excelente medio de publicidad y mercadeo.
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
23
Lección 3: Estándares Web
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:
25
Lección 4: Implementación de un Servidor Web
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.
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.
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:
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();
?>
29
Con esto podemos iniciar a desarrollar aplicaciones con php y mysql en una
distribución GNU/Linux ubuntu.
30
RESUMEN
31
LECTURA
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
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.
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
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
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
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
cd /root/Desktop
tar xzvf php-VERSIÓN1.tar.gz -C /usr/local
cd /root/Desktop
tar xzvf httpd-VERSION2.tar.gz -C /usr/local
cd /usr/local/httpd-VERSION2/
/configure --prefix=/usr/local/apache --enable-so
make
make install
/usr/local/apache/bin/apachectl start
38
Debe de mostrar una página con el texto Its Work
/usr/local/apache/bin/apachectl stop
cd /usr/local/php-VERSION1
make
make install
cp php.ini-dist /usr/local/lib/php.ini
cd /usr/local/apache/conf
vi httpd.conf
#ServerName www.example.com
ServerName INGRESE_IP_DE_SU_ORDENADOR
39
<IfModule dir_module>
DirectoryIndex index.htm
</IfModule>
<IfModule dir_module>
DirectoryIndex index.php index.htm index.html default.htm
</IfModule>
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
/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
vi info.php
<?php
phpinfo();
?>
40
Guardar los cambios.
http://IP_DE_SU_ORDENADOR/info.php
cd /usr/local/apache/htdocs
mv phpMyAdmin-VERSION3-all-languages phpmyadmin
http://IP_DE_SU_ORDENADOR/phpmyadmin
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
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
45
SEGUNDA UNIDAD
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
47
Lección 5: Fundamentos de la Web 2.0
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:
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.
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.
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.
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.
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
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.
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.
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.
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'
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.
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
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.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.
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)
67
Lección 7: Web Services
68
transacciones bajo el esquema de petición respuesta entre un cliente y un
servidor.
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.
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
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.
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.
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.
76
RESUMEN
77
LECTURA
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.
79
AUTOEVALUACIÓN
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
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.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
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
88
TERCERA UNIDAD
Sumario
89
Objetivos
90
Lección 9: Arquitectura Web
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.
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)
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
94
Lección 10: Lenguajes de Programación
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:
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.
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.
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
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.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.
106
RESUMEN
107
LECTURA
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.
109
AUTOEVALUACIÓN
110
6. Ofrece un modelo de trabajo basado en componentes UI:
a. XML
b. html
c. http
d. jsf
e. Servlet
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
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
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
Sumario
117
Objetivos
118
Lección 13: Seguridad en la Web
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
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):
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):
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
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.
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.
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:
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
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
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/
130
Lección 16: Sistema Operativo Web
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
135
LECTURA
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.
138
AUTOEVALUACIÓN
139
6. El protocolo SET utiliza el estándar:
a. SSL
b. Kerberos
c. TSL
d. XML
e. Socket
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
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
144
BIBLIOGRAFÍA COMENTADA
145
GLOSARIO
146