2. Nace a mediados de la década de los setenta,
bajo los auspicios de DARPA, la Agencia de
Proyectos Avanzados para la Defensa de Estados
Unidos. DARPA inició un programa de
investigación de técnicas y tecnologías para unir
diversas redes de conmutación de paquetes,
permitiendo así a los ordenadores conectados a
estas redes comunicarse entre sí de forma fácil y
transparente.
3. De estos proyectos nació un protocolo de
comunicaciones de datos, IP o Internet Protocol,
que permitía a ordenadores diversos comunicarse
a través de una red, Internet, formada por la
interconexión de diversas redes.
4. A mediados de los ochenta la Fundación Nacional
para la Ciencia norteamericana, la NSF, creó una
red, la NSFNET, que se convirtió en el backbone
(el troncal) de Internet junto con otras redes
similares creadas por la NASA (NSINet) y el U.S.
5. DoE (Department of Energy) con la ESNET. En
Europa, la mayoría de países disponían de back
bones nacionales (NORDUNET, RedIRIS,
SWITCH, etc.) y una serie de iniciativas
paneuropeas (EARN y RARE).
En esta época aparecen los primeros
proveedores de acceso a Internet privados que
ofrecen acceso pagado a Internet.
6. A partir de esta época, gracias entre otras cosas a
la amplia disponibilidad de implementaciones de
la suite de protocolos TCP/IP (formada por todos
los protocolos de Internet y no sólo por TCP e IP),
algunas de las cuales eran ya de código libre,
Internet empezó lo que posteriormente se
convertiría en una de sus características
fundamentales, un ritmo de crecimiento
exponencial, hasta que a mediados del 2002
empieza a descender ligeramente.
7. A mediados de los noventa se inició el boom de
Internet. En esa época el número de proveedores
de acceso privado se disparó, permitiendo a
millones de personas acceder a Internet, que a
partir de ese momento ya se empezó a conocer
como la Red, desbancado a las demás redes de
comunicación existentes (Compuserve,
FidoNet/BBS, etc.)
8. El punto de inflexión vino marcado por la
aparición de implementaciones de TCP/IP
gratuitas (incluso de implementaciones que
formaban parte del sistema operativo) así como
por la popularización y abaratamiento de medios
de acceso cada vez más rápidos (módems de
mayor velocidad, RDSI, ADSL, cable, satélite.)
9. El efecto de todos estos cambios fue de “bola de
nieve”: a medida que se conectaban más
usuarios, los costes se reducían, aparecían más
proveedores e Internet se hacía más atractivo y
económico, con lo que se conectaban más
usuarios, etc.
A pesar del ligero descenso en su ritmo de
crecimiento, Internet está destinado a convertirse
en “un servicio universal de comunicación”
11. En 1989, mientras trabajaba en el CERN (Centro
Europeo de Investigación Nuclear), Tim Berners-
Lee empezó a diseñar un sistema para hacer
accesible fácilmente la información del CERN.
Dicho sistema empleaba el hipertexto para
estructurar una red de enlaces entre los
documentos. Una vez obtenida la aprobación para
continuar el proyecto, nació el primer navegador
web, llamado WorldWideWeb.
12. En 1992 el sistema ya se había extendido fuera
del CERN. El número de servidores “estables”
había aumentado, alcanzando la sorprendente
cifra de veintiséis.
A partir de este punto, el crecimiento es
espectacular. En 1993 la web ya era merecedora
de un espacio en el New York Times.
13. Éste es el año del lanzamiento de Mosaic, un
navegador para X-Window/Unís que con el tiempo
se convertiría en Netscape y que fue un
factor clave de popularización de la web. En 1994
se fundó el WWWConsortium, que se convertiría
en el motor de desarrollo de los estándares
predominantes en la web (http://www.w3c.org).
14. A partir de ese momento, el crecimiento ya fue
constante, convirtiéndose hacia finales de los
noventa en el servicio insignia de Internet y dando
lugar al crecimiento imparable de los servicios en
línea que estamos experimentado actualmente.
16. El protocolo HTTP (hypertext tranfer protocol) es
el protocolo base de la WWW. Se trata de un
protocolo simple, orientado a conexión y sin
estado.
17. Está orientado a conexión por que emplea para
su funcionamiento el TCP de modo conectado,
que establece un canal de comunicaciones de
extremo a extremo (entre el cliente y el servidor)
por el que pasa el flujo de bytes (los datos que
hay que transferir), en contraposición a los
protocolos de datagrama (no orientados a
conexión) que dividen los datos en pequeños
paquetes (datagramas) y los envían, pudiendo
llegar por vías diferentes del servidor al cliente.
18. El protocolo no mantiene estado, es decir, cada
transferencia de datos es una conexión
independiente de la anterior, sin relación alguna
entre ellas, hasta el punto de que para transferir
una página web tenemos que enviar el código
HTML del texto, así como las imágenes que la
componen.
19. En la especificación HTTP 1.0, se abrían y
usaban tantas conexiones como componentes
tenía la página, trasfiriéndose por cada conexión
un componente (el texto de la página o cada una
de las imágenes)
20. HTTPS (S por secure) que 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.
21. El funcionamiento de HTTP es el siguiente: el
cliente establece una conexión TCP hacia el
servidor, hacia el puerto HTTP (o el indicado en la
dirección de conexión), envía un comando HTTP
de petición de un recurso (junto con algunas cabe
ceras informativas) y por la misma conexión el
servidor responde con los datos solicitados y con
algunas cabeceras informativas.
22.
23. El protocolo define además cómo codificar el paso
de parámetros entre páginas, el tunelizar las
conexiones (para sistemas de firewall), define la
existencia de servidores intermedios de cache,
etc.
Las directivas de petición de información que
define HTTP 1.1 (la versión considerada estable y
al uso) son:
24. GET Petición de recurso.
POST Petición de recurso pasando parámetros.
HEAD Petición de datos sobre recurso.
PUT Creación o envío de recurso.
DELETE Eliminación de recurso.
TRACE Devuelve al origen la petición tal como se ha
recibido en el receptor, para depurar errores.
OPTIONS Sirve para comprobar las capacidades del
servidor.
CONNECT Reservado para uso en servidores
intermedios capaces de funcionar como túneles.
25. Las peticiones en HTTP pueden realizarse usando dos
métodos. El método GET, en caso de enviar parámetros
junto a la petición, las enviaría codificadas en la URL.
Por su parte, el método POST, en caso de enviarlos, lo
haría como parte del cuerpo de la petición.
Una petición GET sigue el siguiente formato:
26. GET /index.html HTTP/1.1
Host: www.ejemplo.com
User-Agent: Mozilla/4.5 [en]
Accept: image/gif, image/jpeg, text/html
Accept-language: en
Accept-Charset: iso-8859-1
27. Podemos ver que está formada por:
1. Línea de petición: contiene el recurso solicitado.
2. Cabecera de petición: contiene información adicional
sobre el cliente.
3. Cuerpo de petición: en las peticiones de tipo POST, y
otras, contiene información adicional.
28. • Línea de petición
La línea de petición está formada por los siguientes
elementos:
1. Método: nombre del método de HTTP llamado (GET,
POST, etc.).
2. Identificador de recurso: URL (uniform resource
locator) del recurso solicitado.
3. Versión de protocolo: versión del protocolo solicitada
para la respuesta.
29. • Cabecera de petición
Contiene información adicional que puede ayudar al
servidor (o a los servidores intermedios, los proxies y
caches) a procesar adecuadamente la petición.
La información se proporciona en forma de:
Identificador: valor
30. De estos identificadores, los más conocidos e
importantes son:
Host: nombre del servidor solicitado.
User-Agent: nombre del navegador o programa usado
para acceder al recurso.
Accept: algunos formatos de texto e imagen aceptados
por el cliente.
Accept-Language: idiomas soportados (preferidos) por el
cliente, útil para personalizar la respuesta
automáticamente.
31. • Parámetros de petición
Una petición HTTP puede también contener parámetros,
como respuesta, por ejemplo, a un formulario de registro,
a una selección de producto en una tienda electrónica,
etc. Estos parámetros pueden pasarse de dos formas:
– Como parte de la cadena de petición, codificados
como parte de la URL.
– Como datos extra a la petición.
32. Para codificar los parámetros como parte de la URL,
éstos se añaden a la URL detrás del nombre del recurso,
separados de éste por un carácter ?.
Los diferentes parámetros se separan entre sí por el
carácter &. Los espacios se sustituyen por +. Por último,
los caracteres especiales (los mencionados antes de &,
+ y ?, así como los caracteres no impprimibles, etc.) se
representan con %xx, donde xx representa al código
ASCII en hexadecimal del carácter.
33. Por ejemplo:
http://www.ejemplo.com/indice.jsp?nombre=John+Doe&OK=1 que
en la petición HTTP quedaría:
GET /indice.jsp?nombre=John+Doe&OK=1 HTTP/1.0
Host: www.ejemplo.com
User-Agent: Mozilla/4.5 [en]
Accept: image/gif, image/jpeg, text/html
Accept-language: en
Accept-Charset: iso-8859-1
Para pasar los parámetros como datos extra de la
petición, éstos se envían al servidor como cuerpo de
mensaje en la petición.
34. Por ejemplo, la petición anterior quedaría:
POST /indice.jsp HTTP/1.0
Host: www.ejemplo.com
User-Agent: Mozilla/4.5 [en]
Accept: image/gif, image/jpeg, text/html
Accept-language: en
Accept-Charset: iso-8859-1
nombre=John+Doe&OK=1
35. Para pasar los parámetros como cuerpo de la petición,
ésta debe realizarse como POST y no como GET,
aunque una petición POST también puede llevar
parámetros en la línea de petición.
Los parámetros pasados como cuerpo de la petición
están codificados, al igual que en el ejemplo anterior,
como URL, o pueden usar una codificación derivada del
formato MIME (multipurpose internet mail extensions),
en lo que se conoce como codificación multiparte.
36. POST /indice.jsp HTTP/1.0
Host: www.ejemplo.com
User-Agent: Mozilla/4.5 [en]
Accept: image/gif, image/jpeg, text/html
Accept-language: en
Accept-Charset: iso-8859-1
Content-Type: multipart/form-data,
delimiter=“----ALEATORIO----”
----ALEATORIO----
Content-Disposition: form-data; name=“nombre”
Perico Palotes
----ALEATORIO----
Content-Disposition: form-data; name=“OK”
1
----ALEATORIO------
Esta codificación es exclusiva del método POST. Se
emplea para enviar ficheros al servidor.
37. • Respuestas en HTTP
Las respuestas en HTTP son muy similares a las
peticiones. Una respuesta estándar a una petición de
una página sería similar a lo siguiente:
HTTP/1.1 200 OK
Date: Mon, 06 Oct 2031 15:19:10 GMT
Server: Apache/2.0.40 (Red Hat Linux)
Last-Modified: Tue, 09 Sept 2031 08:52:53 GMT
Accept-Ranges: bytes
Content-Length: 428
Connection: close
<HTML>
...
38. La primera línea nos responde con la versión del
protocolo empleada para enviarnos la página, seguida
de un código de retorno y una frase de retorno. El código
de retorno puede adoptar uno de los siguientes valores:
– 1xx Petición recibida, continúa en proceso.
– 2xx Correcta. Petición procesada correctamente.
– 3xx Redirección. La petición debe repetirse o
redirigirse.
– 4xx Error de cliente. No se puede procesar la petición
porque ésta
es incorrecta, no existe, etc.
– 5xx Error de servidor. El servidor ha fallado intentando
procesar
la petición, que a priori es correcta.
39. La frase de retorno dependerá de la implementación,
pero sólo sirve como aclaratorio del código de retorno.
Después del estatus aparece una serie de campos de
control, con el mismo formato que en las cabeceras de la
petición que nos informan del contenido (fecha de
creación, longitud, versión del servidor, etc.) A
continuación viene el contenido solicitado.
41. Se trata de un lenguaje de marcas que permite
representar de forma rica el contenido y también
referenciar otros recursos (imágenes, etc.), enlaces a
otros documentos (la característica más destacada del
WWW), mostrar formularios para posteriormente
procesarlos, etc.
Empieza a proporcionar funcionalidades más avanzadas
para crear páginas más ricas en contenido.
42. Historia de las aplicaciones web.
Inicialmente la web era simplemente una colección de
páginas estáticas, documentos, etc, que podían consultarse
o descargarse.
Su siguiente paso evolutivo fue la inclusión de un método
para confeccionar páginas dinámicas que permitiesen que
lo mostrado fuese dinámico (generado o calculado a partir
de los datos de la petición). Dicho método fue conocido
como CGI (Common Gateway Interface) y definía un
mecanismo mediante el cual podía pasarse información
entre el servidor HTTP y programas externos.
43. Los CGI siguen siendo muy utilizados, puesto que la
mayoría de los servidores web los soportan debido a su
sencillez. Además, nos proporcionan total libertad a la
hora de escoger el lenguaje de programación para
desarrollarlos.
El esquema de funcionamiento de los CGI tenía un punto
débil: cada vez que recibíamos una petición, el servidor
web lanzaba un proceso que ejecutaba el programa CGI.
44. Por otro lado, la mayoría de CGI estaban escritos en
algún lenguaje interpretado (Perl, Python, etc.) o en
algún lenguaje que requería run-time environment
(VisualBasic, Java, etc.), esto implicaba una gran carga
para la máquina del servidor. Además, si la web tenía
muchos accesos al CGI, esto suponía problemas graves.
Por ello se empiezan a desarrollar alternativas a los CGI.
Las soluciones vienen principalmente por dos vías. Por
un lado se diseñan sistemas de ejecución de módulos
más integrados con el servidor, que evitan que éste
tenga que instanciar y ejecutar multitud de programas.
45. La otra vía consiste en dotar al servidor de un intérprete
de algún lenguaje de programación (RXML, PHP,
VBScript, etc.) que permita incluir las páginas en el
código de manera que el servidor sea quien lo ejecute,
reduciendo así el tiempo de respuesta.
A partir de este momento, se vive una explosión del
número de arquitecturas y lenguajes de programación
que nos permiten desarrollar aplicaciones web. Todas
ellas siguen alguna de las dos vías ya mencionadas.
46. De ellas, las más útiles y las que más se utilizan son
aquellas que permiten mezclar los dos sistemas, es
decir, un lenguaje de programación integrado que
permita al servidor interpretar comandos que “incruste”
en las páginas HTML y un sistema de ejecución de
programas más enlazado con el servidor que no
presente los problemas de rendimiento de los CGI.
47. Sun Microsystems con su sistema Java, que está
integrada por dos componentes; a saber, un lenguaje
que permite incrustar código interpretable en las páginas
HTML y que el servidor traduce a programas ejecutables,
JSP (Java server pages) y un mecanismo de
programación estrechamente ligado al servidor, con un
rendimiento muy superior a los CGI convencionales,
llamado Java Servlet.
48. Una de las que más se utiliza en Internet es el lenguaje
de programación interpretado por el servidor PHP. Se
trata de un lenguaje que permite incrustar HTML en los
programas, con una sintaxis que proviene de C y Perl.
Además, habida cuenta de su facilidad de aprendizaje,
su sencillez y potencia.
49. Servidor web.
Es un programa que atiende y responde a las diversas
peticiones de los navegadores, proporcionándoles los
recursos que solicitan mediante el protocolo HTTP o el
protocolo HTTPS (la versión segura, cifrada y
autenticada de HTTP). Un servidor web básico tiene un
esquema de funcionamiento muy sencillo, ejecutando de
forma infinita el bucle siguiente:
50. 1. Espera peticiones en el puerto TCP asignado (el estándar
para
HTTP es el 80).
2. Recibe una petición.
3. Busca el recurso en la cadena de petición.
4. Envía el recurso por la misma conexión por donde ha
recibido la
petición.
5. Vuelve al punto 2.
51. Un servidor web que siguiese el esquema anterior
cumpliría los requisitos básicos de los servidores HTTP,
aunque, eso sí, sólo podría servir ficheros estáticos.
A partir del esquema anterior se han diseñado y
construido todos los programas servidores de HTTP que
existen, variando sólo el tipo de peticiones (páginas
estáticas, CGI, Servlets, etc.) que pueden atender, en
función de que sean o no multi-proceso, multi-hilados,
etc. Algunas de las características principales de los
servidores web, que extienden, el esquema anterior son:
52. Servicio de ficheros estáticos
Todos los servidores web deben incluir, al menos, la
capacidad para servir ficheros estáticos que se
encuentren en alguna parte concreta del disco.
Imprescindible es la capacidad de especificar qué parte
del disco se servirá. Absolutamente no es recomendable
que el servidor obligue a usar un directorio concreto, si
bien puede tener uno por defecto. La mayoría permiten,
además, añadir otros directorios para servir,
especificando en qué punto del “sistema de ficheros”
virtual del servidor se ubicarán.
53. Puede existir la siguiente situación:
En este caso, el servidor debería traducir las siguientes
direcciones web de la siguiente manera:
54. Algunos servidores web permiten, además, especificar
directivas de seguridad (para qué direcciones, usuarios,
etc., está visible un directorio, etc.), mientras que otros
hacen posible especificar qué ficheros se considerarán
como índice del directorio.
55. Seguridad y autenticación.
La mayoría de los servidores web modernos permiten
controlar desde el programa servidor aquellos aspectos
relacionados con la seguridad y la autenticación de los
usuarios. El modo más simple de control es por el uso de
ficheros .htaccess. Proviene de uno de los primeros
servidores web (del NCSA httpd), que consiste en poner
un fichero .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.
56. Como el servidor de NCSA fue el servidor más usado
durante mucho tiempo, la mayoría de servidores
modernos permiten utilizar el fichero .htaccess
respetando la sintaxis del servidor de NCSA.
Otros servidores permiten especificar reglas de servicio
de directorios y ficheros en la configuración del servidor
web, indicando allí qué usuarios, máquinas, etc., pueden
acceder al recurso indicado.
57. “Introducción a los Sistemas basados en
la Web (WIS)”
La World Wide Web
Modelo Cliente/Servidor
Paginas Estáticas vs. paginas Dinámicas
Lenguajes del lado del servidor
Lenguajes del lado del Cliente
58. Diseño de Sistemas en Internet
Un sistema de información es un conjunto de elementos
orientados al tratamiento y administración de datos e
información, organizados y listos para su uso posterior,
generados para cubrir una necesidad o un objetivo.
59. Diseño de Sistemas en Internet
Dichos elementos formarán parte de alguna de las
siguientes categorías:
Personas.
Datos.
Actividades o técnicas de trabajo.
Recursos materiales en general (generalmente
recursos informáticos y de comunicación, aunque no
necesariamente.)
60. Diseño de Sistemas en Internet
lEl web como sistema de información
lLa evolución de Internet como red de comunicación
global y el surgimiento y desarrollo del Web como
servicio imprescindible para compartir información, creó
un excelente espacio para la interacción del hombre con
la información hipertextual, a la vez que sentó las bases
para el desarrollo de una herramienta integradora de los
servicios existentes en Internet.
61. Diseño de Sistemas en Internet
lLos sitios Web, como expresión de sistemas de
información, deben poseer los siguientes componentes:
Usuarios.
Mecanismos de entrada y salida de la información.
Almacenes de datos, información y conocimiento.
Mecanismos de recuperación de información.
62. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Interactividad: La red genera un modelo bilateral,
debido a su arquitectura cliente-servidor. Así, los
proveedores de contenidos y los usuarios pueden
establecer un vínculo bilateral, porque sus funciones
resultan intercambiables.
63. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Multimedialidad: La tecnología digital permite la
integración de todos los formatos de información
(texto, audio, video, gráficos, animaciones) en un
mismo soporte.
64. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Personalización: Los servicios de información en
línea no sólo se orientan a objetivos con perfiles
demográficos, profesionales o económicos similares,
sino a individuos, porque la red permite responder a
las demandas de información específicas de cada
usuario en particular.
65. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Multimedialidad: La tecnología digital permite la
integración de todos los formatos de información
(texto, audio, video, gráficos, animaciones) en un
mismo soporte.
66. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Hipertextualidad: Los soportes digitales permiten un
modelo de construcción narrativa caracterizado por la
distribución de la información en unidades discretas
(nodos) y su articulación mediante órdenes de
programación (enlaces.)
67. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Mediación: La red cuestiona el paradigma de la
mediación profesional de los comunicadores en los
procesos de acceso del público a las fuentes y a los
propios medios.
68. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Actualización: La red posibilita el seguimiento al
minuto de la actualidad informativa, y se utiliza en
paralelo con la televisión para retransmitir
acontecimientos a escala mundial en tiempo real.
69. Diseño de Sistemas en Internet
lExisten siete paradigmas que caracterizan el nuevo
paisaje mediático que emerge en la red:
Abundancia: Los medios digitales trastocan el
argumento del recurso escaso, porque multiplican los
canales disponibles y trasmiten mayor cantidad de
información en menor tiempo y a escala universal.
70. Diseño de Sistemas en Internet
lDesde el punto de vista tecnológico, uno de los problemas
que afronta la visión de intercambio en el web, radica en la
calidad de la recuperación de información una vez más.
lBuscar información en Internet, con los buscadores
tradicionales puede compararse con arrastrar una red en
la superficie de un océano: “ no se podrá obtener muchos
peces de aguas profundas”.
71. Diseño de Sistemas en Internet
lWeb superficial versus web profundo
lEn 1994, la Dra. Jill Ellsworth, especializada en el estudio
de Internet, utilizó el término web invisible, por primera vez,
para denominar a la información que resultaba “invisible”
para los motores de búsqueda convencionales en la web.
lTambién, se denomina “web profunda” (Deep Web), por
oposición a la “web superficial” (Surface Web) cuya
información puede recuperarse con los buscadores de
Internet.
72. Diseño de Sistemas en Internet
lWeb superficial versus web profundo
lLa existencia de esta denomina red profunda es un
producto de la metodología que utilizan los buscadores
para indexar las páginas. El mecanismo se basa en
programas llamados robots o arañas, que recorren las
páginas de la red siguiendo los enlaces que presentan o se
dirigen hacia ellas. Cuando se utiliza alguno de los
buscadores conocidos, no se busca en toda la red, sino en
su base de datos, construida gracias a la acción de los
robots.
73. Diseño de Sistemas en Internet
lWeb superficial versus web profundo
lA pesar de su pretendida exhaustividad, se calcula que los
mayores motores de búsqueda indizan sólo entre un tercio y
la mitad de los documentos disponibles.
lEl Web profundo almacena páginas dinámicas que se
obtienen como respuesta a interrogantes directas a bases
de datos, así como documentos en diversos formatos (mp3.
doc, pdf, wma, avi, entre otros), la mayor parte de esta
información no se recupera por medio de los directorios y
buscadores tradicionales.
74. Diseño de Sistemas en Internet
lWeb superficial versus web profundo
lActualmente, existen herramientas orientadas
específicamente a la labor de recuperar información en el
Web profundo como: buscadores, agentes de búsquedas,
índices generales y portales verticales. Estas herramientas
facilitan el acceso a una mayor parte del Web, porque,
además de buscar en el Web superficial, buscan en el Web
profundo también, inaccesible para la mayor parte de los
buscadores tradicionales. Entre los principales, se
encuentran:
75. Diseño de Sistemas en Internet
lWeb superficial versus web profundo: Complete Planet.
lPerteneciente a la compañía BrightPlanet, dispone de la
lista más completa de todas las máquinas de la Web
superficial y de las bases de datos del Web profundo.
Creado como un servicio público y como banco de pruebas
para el Gestor de Consultas del Web Profundo (Deep Query
Manager o DQM), que es un servicio para abonados y una
poderosa herramienta para gestionar y descubrir contenido
en Internet.
76. Diseño de Sistemas en Internet
lWeb superficial versus web profundo: Profusión.
lCreado en 1995 en la Universidad de Kansas como un
metabuscador inteligente para el Web, adquirido por
Intelliseek, en abril de año 2000. Busca en algunas de las
mayores máquinas de búsqueda del web superficial y en un
gran número de fuentes del Web profundo. Permite orientar
las búsquedas al definir tópicos generales donde deben
realizarse. También puede personalizar un grupo de
buscadores correspondientes a determinadas materias y
obtener resultados de los principales buscadores.
77. Diseño de Sistemas en Internet.
lWeb superficial versus web profundo: Copernic Agent.
lEs un agente inteligente disponible comercialmente que
consulta simultáneamente las más importantes máquinas de
búsquedas en Internet. Posee la versión Copernic Agent
Basic, que es gratuita, además de una versión Profesional.
Copernic Agent Pro, por suscripción y con mayores
capacidades de recuperación de la información; reúne sus
búsquedas en más de 120 categorías especializadas.
78. Diseño de Sistemas en Internet.
lProcesamiento y recuperación de información: nuevas
aplicaciones.
lResulta de gran importancia traducir esos grandes
volúmenes de datos en información. Los resúmenes
estadísticos no son la única cosa oculta en el mar de datos.
La identificación de patrones comunes, asociaciones, reglas
generales y nuevo conocimiento tiene actualmente un gran
interés para disciplinas como la minería de texto y el
descubrimiento del conocimiento en bases de datos.
79. Diseño de Sistemas en Internet.
La minería de texto es una de las aplicaciones que, desde
su formulación a principios de la década de los años 90' del
pasado siglo, ha tenido mayor impacto en las actividades de
la inteligencia militar.
Emplea distintas técnicas de la recuperación de información
y la lingüística computacional para facilitar la identificación y
extracción de nuevo conocimiento a partir de colecciones
documentales.
80. Diseño de Sistemas en Internet.
Tiene como objetivo descubrir información y conocimiento
previamente desconocido y que no existe en ningún
documento previo.
La minería de datos, pretende extraer conocimiento a partir
de patrones observables en grandes colecciones de datos
estructurados que se almacenan en bases de datos
relacionales mientras que la minería de texto realiza la
extracción del nuevo conocimiento a partir de grandes
volúmenes de información no estructurada.
81. Diseño de Sistemas en Internet.
El alcance de la minería textual no está determinado por el
desarrollo de la Inteligencia Artificial propiamente dicha, sino
que propone un equilibrio entre el análisis humano y
automático a la vez, es decir, un enfoque semiautomático
cuyo objetivo intermedio - previo al descubrimiento del
conocimiento - es procesar y presentar información
disponible en grandes colecciones documentales en un
formato que facilite su comprensión y análisis.
82. Diseño de Sistemas en Internet.
Funciones de la Minería de Texto:
dentificar hechos y datos puntuales a partir del texto de
los documentos.
Agrupar documentos similares (análisis de clusters).
Determinar tema o temas tratados en un documento
mediante categorización automática de textos.
Identificar conceptos tratados en documentos y crear
redes de conceptos.
Visualizar y navegar a través de colecciones de texto.
83. Diseño de Sistemas en Internet.
Aunque los diferentes campos de aplicación de la minería
de datos demandan el desarrollo de poderosas y costosas
herramientas para crear métodos de búsqueda de patrones,
no es el único camino existente.
84. Diseño de Sistemas en Internet.
La web, como se conoce hoy, requiere una visión más
integral de los problemas de organización y recuperación de
información, sobre todo, si se considera que se encuentra
estructurado mediante lenguajes de etiquetado que
prácticamente describen sólo la forma en que la información
debe presentarse al usuario (colores, maquetación,
tipografía, etcétera) y dicen muy poco sobre su significado:
semántica.
85. Diseño de Sistemas en Internet.
El proyecto denominado web semántica (Semantic Web)
busca que la información pueda reunirse de forma que un
buscador pueda comprenderla en lugar de ponerla
simplemente en una lista, donde el trabajo que hasta hoy se
realizaba en función del usuario (el humano), se centrará en
otro tipo de usuario que se valdrá de grandes cúmulos de
información, clasificada, descrita y estructurada para una
eficiente recuperación: el agente inteligente.
86. Diseño de Sistemas en Internet.
La web actual requiere nuevas formas de organización de la
información y el conocimiento para mejorar la capacidad de
acceso, uso y recuperación de información.
La Web semántica persigue una Web más inteligente, cuyo
objetivo es convertir la información en conocimiento sobre la
base del marcado semántico y descriptivo de la información,
y de los datos, por medio de metadatos, información
estructurada y legible automáticamente.
87. Diseño de Sistemas en Internet.
La web actual requiere nuevas formas de organización de la
información y el conocimiento para mejorar la capacidad de
acceso, uso y recuperación de información.
La Web semántica persigue una Web más inteligente, cuyo
objetivo es convertir la información en conocimiento sobre la
base del marcado semántico y descriptivo de la información,
y de los datos, por medio de metadatos, información
estructurada y legible automáticamente.
88. Diseño de Sistemas en Internet.
La Ingeniería Web.
En años recientes, se ha visto un incremento considerable en el
desarrollo de software basado en la web, así como la necesidad de
migrar sistemas de software ya existentes a estos ambientes.
Lo anterior, debido al crecimiento e impacto de Internet y
particularmente de la World Wide Web en las áreas de negocios,
comercio, industria, finanzas, educación, gobierno, entretenimiento y
personales, entre otras; lo cual ha provocado que los requerimientos
de los usuarios de software se vean influenciados y cambien hacia
estos ambientes.
Ingeniería Web (IW), definida como “el establecimiento y uso de
principios científicos, de ingeniería y de administración, así como un
enfoque sistemático y disciplinado para el desarrollo, implantación y
mantenimiento exitoso de sistemas y aplicaciones basados en Web
de alta calidad”
89. Diseño de Sistemas en Internet.
La Ingeniería Web.
Cabe destacar que la ingeniería web hace una diferencia entre un
webSite y una aplicación, ya que la ingeniería web no se dedica a la
construcción de sitios web sino a la construcción de aplicaciones
web.
La principal característica que los distingue (aplicaciones de sitios
web) es que los sitios web son sitios en la web en donde se publica
contenido generalmente estático o un muy bajo nivel de
interactividad con el usuario, mientras que las aplicaciones son
lugares con alto contenido de interactividad y funcionalidades
que bien podrían ser de un software convencional.
La aplicación web más sencillo seria una que contenga formularios y
subiendo de nivel encontramos los que realizas conexión con bases
de datos remotas
90. Diseño de Sistemas en Internet.
La Ingeniería Web.
La ingeniería web es la aplicación de metodologías sistemáticas,
disciplinadas y cuantificables al desarrollo eficiente, operación y
evolución de aplicaciones de alta calidad en la World Wide Web.
Los expertos en la web necesitan utilizar herramientas y técnicas
basadas en la ingeniería del software, para poder garantizar el buen
funcionamiento y administración de los sitios web.
Éstos debe contar con ciertos atributos y características que en
conjunto formen un concepto muy importante, para alcanzar el éxito
en cualquier organización: calidad. que con atributos como,
usabilidad, navegabilidad, seguridad, mantenibilidad, entre otros,
hace posible por un lado la eficiencia del artefacto web y por ende la
satisfacción del usuario final.
91. Diseño de Sistemas en Internet.
La Ingeniería Web.
La ingeniería de la Web no es un clon o subconjunto de la ingeniería
de software aunque ambas incluyen desarrollo de software y
programación, pues a pesar de que la ingeniería de la Web utiliza
principios de ingeniería de software, incluye nuevos enfoques,
metodologías, herramientas, técnicas, guías y patrones para cubrir
los requisitos únicos de las aplicaciones web.
92. Diseño de Sistemas en Internet.
La Ingeniería Web.
El desarrollo de aplicaciones Web posee determinadas
características que lo hacen diferente del desarrollo de aplicaciones
o software tradicional y sistemas de información.
La ingeniería Web es multidisciplinar y aglutina contribuciones de
diferentes áreas: arquitectura de la información, ingeniería de
hipermedia/hipertexto, ingeniería de requisitos, diseño de interfaz de
usuario, usabilidad, diseño gráfico y de presentación, diseño y
análisis de sistemas, ingeniería de software, ingeniería de datos,
indexado y recuperación de información, testeo, modelado y
simulación, despliegue de aplicaciones, operación de sistemas y
gestión de proyectos.
93. Diseño de Sistemas en Internet.
La Ingeniería Web.
Cuando un software se desarrolla adecuadamente, satisface las
necesidades de los usuarios, funciona impecablemente durante
mucho tiempo, es fácil de usar y modificar, y también es entregado
en el tiempo y costos planeados.
Para tener artefactos de calidad, a esa misma se le debe planificar,
programar y controlar, es decir la calidad no podrá ser agregada a un
artefacto web o a cualquier otro producto, al final del proceso de
desarrollo, si no que se deberá implementar durante todo el ciclo de
vida del desarrollo.
Se requiere del conocimiento de las metodologías y herramientas
que permitan analizar, planear, modelar e implementar un sistema de
calidad que responda a los requerimientos del usuario en forma,
tiempo y costos y que además permita en forma sencilla su
mantenimiento, crecimiento y evolución
94. Diseño de Sistemas en Internet.
La Ingeniería Web.
Paso a seguir.
La formulación comienza al establecer comunicación con el
consumidor (accionista) que plantea las razones para la WebApp.
¿Cuál es la necesidad del negocio, cuales usuarios finales son el
objetivo , que características y funciones se desean, que sistemas y
bases de datos existentes tendrán acceso, el concepto es realizable,
como se medirá el éxito?.
La planeación establece un plan de trabajo, desarrolla estimaciones
para valorar la factibilidad de las fechas de entrega deseadas,
considera riesgos define un programa y establece mecanismos
para rastreo y control.
95. Diseño de Sistemas en Internet.
La Ingeniería Web.
Producto obtenido.
Puesto que el trabajo de la ingeniería Web con frecuencia adopta
una filosofía ágil, los productos obtenidos para la formulación y la
planeación usualmente son parcos, pero existen y deben registrarse
en forma escrita.
La recopilación de información durante la formulación se registra en
un documento escrito en el cual se basan la planeación y el
modelado de análisis.
El plan del proyecto extiende el programa de este y presenta
cualquier otra información que sea necesario comunicar a los
miembros del equipo de ingeniería Web y al personal externo.
96. Diseño de Sistemas en Internet.
La Ingeniería Web.
Formulación de sistemas basados en web.
Representa una secuencia de acciones de ingeniería Web que
comienza con la identificación de las necesidades del negocio, se
mueve hacia una descripción de los objetivos de la WebApp,
define grandes características y funciones y realiza la
recopilación de requisitos que conducen al desarrollo de un
modelo de análisis.
La formulación permite que los clientes y el equipo de ingeniería
Web establezcan un conjunto común de metas objetivos para la
construcción de la WebApp.
97. Diseño de Sistemas en Internet.
La Ingeniería Web.
Recopilación de requisitos para WebApps.
Los objetivos globales de la recopilación de requisitos propuestos
para la ingeniería de software permanecen inalterados, adaptados
para las WebApp, dichos objetivos se convierten en:
Identificar requisitos de contenido.
Identificar requisitos funcionales.
Definir escenarios de interacción para diferentes clases de
usuarios.
98. Diseño de Sistemas en Internet.
La Ingeniería Web.
Recopilación de requisitos para WebApps...
Los siguientes pasos de la recopilación de requisitos se dirigen para
lograr estos objetivos:
1.Pedir a los clientes que definan las categorías de usuario y
describan cada categoría.
2.Comunicarse con los clientes para definir los requisitos básicos de
la WebApp
3.Analizar la información recopilada y utilizar la información para
realizar un seguimiento con los clientes.
4.Definir casos de uso que describan escenarios de interacción para
cada clase de usuario.
99. Diseño de Sistemas en Internet.
La Ingeniería Web.
Recopilación de requisitos para WebApps...
Se puede argumentar que la complejidad de la WebApp es
directamente proporcional al número de categorías de usuario para
el sistema. La definición de una categoría de usuario requiere
formular un conjunto de preguntas fundamentales:
¿Cual es el objetivo global del usuario cuando usa la WebApps?
¿Cuáles son los antecedentes y la pericia del usuario en relación
con el contenido y la funcionalidad de la WebApp? .
¿Cómo llegará el usuario a la WebApp?.
¿Qué características genéricas de la webApps le gustan o
disgustan al usuario?
100. Diseño de Sistemas en Internet.
La Ingeniería Web.
Los principales aspectos de la ingeniería de la Web incluyen,
entre otros, los siguientes temas:
Diseño de procesos de negocio para aplicaciones web.
Herramientas CASE para aplicaciones web.
Generación de código para aplicaciones web.
Desarrollo web colaborativo.
Modelado conceptual de aplicaciones web.
Diseño de Modelos de datos para sistemas de información web.
Entornos de desarrollo de aplicaciones web integrados.
Herramientas de autor para contenido multimedia.
Pruebas de rendimiento de aplicaciones basadas en web.
Personalización y adaptación de aplicaciones web.
Herramientas y métodos de prototipado.
Control de calidad y pruebas de sistemas.
101. Diseño de Sistemas en Internet.
La Ingeniería Web.
… Los principales aspectos de la ingeniería de la Web incluyen,
entre otros, los siguientes temas:
Ingeniería de requisitos para aplicaciones web.
Aplicaciones para la Web Semántica.
Factorías de software para la web.
Métodos, herramientas y automatización de pruebas.
Aplicaciones web móviles.
Usabilidad de aplicaciones web.
Accesibilidad para la web.
Metodologías de diseño web.
Formación en ingeniería de la web.
Diseño de interfaces de usuario.
Métricas para la web, estimación de costes y medición.
Gestión de proyectos web y gestión de riesgos.
Desarrollo y despliegue de servicios web.
102. Diseño de Sistemas en Internet.
La Ingeniería Web.
Pressman sugiere un proceso de ingeniería web compuesto por las
siguientes fases:
lPlanteamiento y formulación. Identificamos los objetivos de nuestra
aplicación, y delimitamos el alcance de la primera iteración.
lPlanificación. Una vez planteado el problema, podremos estimar
costos, riesgos y esfuerzo durante el desarrollo. Recordemos que en
la planeación iterativa solamente se detalla la iteración actual, y las
iteraciones subsecuentes sólo se plantean de forma general.
lAnálisis. Durante esta etapa establecemos los requerimientos
técnicos, gráficos, y de contenido, que incorporaremos en la
iteración.
103. Diseño de Sistemas en Internet.
La Ingeniería Web.
Pressman sugiere un proceso de ingeniería web compuesto por las
siguientes fases:
Ingeniería. La actividad de ingeniería incorpora dos grupos de
tareas que se realizan en paralelo: el diseño del contenido y la
producción, se enfocan en el diseño, producción y adquisición del
contenido de texto, gráfico y video que se vayan a integrar en la
aplicación. Estas tareas son realizadas por personal no técnico.
Por otro lado, están el diseño arquitectónico, de navegación e
interfaz, el cual lidia con los aspectos técnicos.
Generación de páginas y pruebas. Se prueba que el contenido
dinámico se genere correctamente, utilizando las plantillas,
interfaces y contenidos diseñados en la fase de ingeniería.
Posteriormente se realizan las pruebas pertinentes, que
dependerán del tipo de aplicación y requerimientos no funcionales
(por ejemplo, pruebas de desempeño, etcétera).
104. Diseño de Sistemas en Internet.
La Ingeniería Web.
Pressman sugiere un proceso de ingeniería web compuesto por las
siguientes fases:
Evaluación del cliente. Al final de cada iteración se debe realizar
una evaluación con el cliente, para validar el avance y determinar
los cambios o mejoras –en caso de ser necesarios–, que se
aplicarán en las siguientes iteraciones.
105. Diseño de Sistemas en Internet.
La Ingeniería Web.
Las fases que se deben llevar acabo son:
Análisis de Requisitos: Fija los requisitos funcionales de la
aplicación Web para reflejarlos en un modelo de casos de uso.
Diseño Conceptual: Materializado en un modelo de dominio,
considerando los requisitos reflejados en los casos de uso.
Diseño Navegacional: Lo podemos subdividir en :
Modelo del Espacio de Navegacional.
Modelo de la Estructura de navegación: Muestra la forma
de navegar ante el espacio de navegación.
Diseño de Presentación: Representa las vistas del interfaz del
usuario mediante modelos estándares de interacción UML.
106. Diseño de Sistemas en Internet.
La Ingeniería Web.
Se han propuesto diferentes métodos con diferentes enfoques para
el desarrollo de aplicaciones. Algunas de las principales
metodologías son:
UWE que se basa en el uso de diagramas UML, la notación de
UML y los mecanismos de extensión de UML.
Hipermedia Orientado a Objetos (Object-orientedHypermedia,
OOH) proporciona un conjunto de nuevas vistas que extienden el
UML para modelar únicamente la interfase de aplicaciones Web
OOHDM con un enfoque basado en modelos para construir
aplicaciones hipermedia.
WebML es una notación visual para el diseño de aplicaciones Web
complejas. Provee especificaciones gráficas formales para un
proceso de diseño completo que puede ser asistido por
herramientas de diseño visuales.
107. Diseño de Sistemas en Internet.
La Ingeniería Web.
ADM que combina el proceso de diseño centrado en el usuario y
modelado [5].
Al mismo tiempo, ha aumentado la construcción de herramientas que
faciliten el desarrollo de webapps, tales como: AriadneTool [6]
herramienta para el método ADM y MagicUWE plugin para
MagicDraw herramienta para la metodología UWE
108. Diseño de Sistemas en Internet.
Seguridad en las aplicaciones
web
1. Cross Site Scripting (XSS.)
2. Injection Flaws.
3. Malicious File Execution.
4. Insecure Direct Object Reference.
5. Cross Site Request Forgery (CSRF.)
6. Information Leakage and Improper Error Handling.
7. Broken Authentication and Session Management.
8. Insecure Cryptographic Storage.
9. Insecure Communications.
10. Failure to Restrict URL Access.