examen unidad 1. arquitectura - Instituto Tecnólogico de La Laguna

Anuncio
EXAMEN UNIDAD 1. ARQUITECTURA
1.1. Evolución de las aplicaciones Web
El objetivo era crear una red de comunicaciones militar capaz de seguir
funcionando después de un ataque nuclear.
Los primeros pasos fueron:
• En 1964 Paul Baran, de Rand Corporation propuso la utilización de una red de
conmutación de paquetes.
• En 1968 se puso en funcionamiento el NPL (National Physics Laboratory) en el
Reino Unido.
• En 1969 se creó ARPANET, una red para comunicar los distintos centros
implicados en el proyecto ARPA.
Los miembros de ARPANET fueron:
• Stanford Research Institute (SRI).
• Universidad de California, Santa Bárbara.
• Universidad de California, Los Ángeles (UCLA).
• Universidad de Utah.
Evolución de ARPANET:
• 1973. Primera conexión internacional con Inglaterra y Noruega.
• Surge el protocolo TCP/IP para estandarizar la comunicación entre redes.
• 1986. Surge NSFNET (National Science Foundation Network) para interconectar
5 grandes centros de supercomputación.
Miembros de NSFNET:
• Prinston
• Pittsbourgh
• UCSD
• UIUC
• Cornell
Evolución:
• 1990. Desmantelamiento de ARPANET.
• 1992. Tim Berners-Lee, físico del CERN (Suiza), inventa la Word Wide Web
(WWW).
• 1993. Surge InterNIC.
• 1995. Sun Microsystems presenta un nuevo lenguaje de programación (Java).
Internet nació a partir de una red denominada ARPANET, diseñada y desarrollada
en 1969 para el Departamento de Defensa de Estados Unidos, creada para
mantener la comunicación entre ordenadores en caso de guerra. Según el
Pentágono suponía un gran peligro el hecho de que todas las comunicaciones
dependieran de un gran centro neurálgico que podría ser destruido con una sola
bomba, quedando así sin posibilidades ante el enemigo. Debido a todas estas
circunstancias, la red fue diseñada sin centro neurálgico.
Estados Unidos fue capaz de desarrollar una red que funcionara (la antecesora de
la actual Internet) y los usuarios académicos e investigadores que tenían acceso a
ella rápidamente se volvieron adictos. La demanda por la red muy pronto se
esparció. Los desarrolladores de Internet en Estados Unidos, el Reino Unido y
Escandinavia, en respuesta a las presiones del mercado, empezaron a poner el
software de IP (Internet Protocol) en todo tipo de computadoras. Se llegó a
convertir en el único método práctico para comunicar computadoras de diferentes
fabricantes. Al mismo tiempo que Internet se consolidaba, al mismo tiempo,
muchas compañías y otras organizaciones empezaron a construir redes privadas
usando los mismos protocolos de ARPAnet. Parecía obvio que si estas redes
podían comunicarse entre sí, los usuarios de una red podrían comunicarse con
usuarios de otra y todo el mundo sería beneficiado.
De estas nuevas redes, una de las más importantes fue la NSFNET, auspiciada
por la Fundación Nacional de la Ciencia (National Science Foundation), una
agencia del gobierno de Estados Unidos. Al final de los ochenta la NSF creó cinco
centros de supercómputo en universidades importantes. Hasta ese entonces, las
computadoras más rápidas del mundo sólo estaban a disposición de los
fabricantes de armamento y de algunos investigadores de compañías muy
grandes. Con la creación de centros de supercómputo, la NSF ponía éstas a
disposición de cualquier investigación escolar. Al principio, la NSF trató de utilizar
la red ARPAnet para la comunicación de los centros, pero esta estrategia falló
debido a problemas burocráticos. En respuesta a esto, la NSF decidió construir su
propia red basada en la tecnología IP de ARPAnet, ésta red conectaba los centros
mediante enlaces telefónicos de 56,000 bits por segundo. El costo de la línea
telefónica depende de la distancia por esta razón, se decidió crear redes
regionales. En cada región del país las escuelas podían conectarse a su vecino
más cercano. Cada cadena estaba conectada a un centro de supercómputo en un
solo punto.
El hecho de compartir supercomputadoras permitió a los centros de cómputo
compartir recursos no relacionados con los centros. Repentinamente, las escuelas
que participaban en la red contaron con un amplio universo de información y
colaboradores al alcance de sus manos. El tráfico en la red se incrementó con el
tiempo hasta que las computadoras que la controlaban y las líneas de teléfono
conectadas a ellas se saturaron. . En 1987 se celebró un contrato para administrar
y actualizar la red, con la compañía Merit Network Inc., en colaboración con IBM y
MCI. La vieja red fue mejorada con líneas telefónicas de mayor velocidad (por un
factor de 20) y con computadoras más poderosas.
1.1.1. WEB 1.0 1.1.2 WEB 2.0 1.1.3 WEB 3.0
Cuando en 1989 se creó la WWW (World Wide Web) por Tim Berners-Lee, era
sólo un sistema para compartir información entre miembros de la CERN
(Organización Europea de Investigación Nuclear).
Para comienzo de los años 90’s, la web era un sistema en el cual los usuarios solo
podían leer lo que el dueño de la página (Webmaster) escribía, es decir, de sólo
lectura, ya que los usuarios no podían contestar u opinar; y fue llamada Web 1.0.
Más tarde se implementó la Web 2.0 o Web Social, en la que al ver las
necesidades de la sociedad, era ya un sistema donde lo que informaba el
webmaster podía ser opinado, y ocasionar un intercambio de información entre
los usuarios, ejemplo de esto es lo que hoy conocemos como Redes Sociales,
Blogs, etc.
Cuando se determina el término de Web 3.0 o Web Semántica, se pretende que
este sistema sea capaz de manejar información entre una gran comunidad de
usuarios, enlazando temas de varias páginas, permitir el uso de etiquetas e
implementar las Ontologías, para lograr que el sistema por sí solo, reconozca las
etiquetas y se convierta en un sistema automatizado, y realice búsquedas más
complejas.
La evolución de la Web nos ha ayudado a saber más sobre temas que antes se
desconocían, sin embargo aún no se logra realizar consultas complejas, o
consultas en las cuales requerimos un resultado muy específico, es aquí donde las
Ontologías nos ayudan a enlazar los conceptos sobre un cierto dominio, y lo que
la Web Semántica quiere lograr.
1.2.
Arquitectura de las aplicaciones Web
La arquitectura del WWW se puede ver desde dos puntos de vista Arquitectura
física y Arquitectura lógica
Dentro de la arquitectura física podemos mencionar los diferentes tipos de redes:
– Computadoras personales (PCs)
– Redes de área local (LAN’s)
– Redes de área global (WANs)
Las Computadoras personales tienen las siguientes características
• Conexión esporádica a Internet.
• Necesaria la colaboración de otra computadora que esté conectada de forma
continua a Internet (ISP).
• Debe establecerse un diálogo con el ISP a través de algún canal de
comunicación.
Las formas de conexión pueden ser:
1.- Línea telefónica estándar.
 Necesario el uso de un hardware que actúe de interfaz entre el ordenador y la
línea telefónica (módem).
 Módems internos o externos.
 Velocidad baja
2.- RDSI.
 Línea digital.
 Sigue siendo necesario un hardware específico que actúe de interfaz entre la
línea y la computadora.
 Hardware distinto del usado para la línea telefónica estándar (módem RDSI).
 Posibilidad de conexión a Internet y al mismo tiempo disponibilidad de línea
telefónica.
 Posibilidad de videoconferencia punto a punto.
3.- ADSL.
Línea de comunicación de alta velocidad.
Utiliza como soporte el par de cables de cobre de la línea telefónica estándar.
Velocidad de comunicación asimétrica
4.- Cable.
Utiliza uno de los canales de vídeo de un suministrador de acceso a cable.
Suele suministrarse en unión de otros servicios (televisión, teléfono, etc.).
5.- Satélite.
Al igual que ADSL, se trata de un canal de comunicación asimétrico.
Los datos de salida viajan generalmente a través de teléfono.
La recepción se realiza a través de uno o más canales de vídeo emitidos por un
satélite.
Redes de Área Local (LAN’s)
• Sirve para unir ordenadores situados en general en un mismo edificio o grupo de
edificios.
• En la red pueden cohexistir sistemas actuando como servidores y como clientes.
• Los ordenadores se unen formando topologías (lineales, anillo, estrella,...).
• Sigue siendo necesario un hardware dedicado que actúe como interfaz entre la
computadora y la red (tarjeta de red).
• Velocidades típicas
– Ethernet: 10 Mbaudios.
– Token Ring: 4 y 16 Mbaudios.
– Fast Ethernet: 100 Mbaudios.
– Giga Ethernet: 1 Gbaudio.
• Nuevas tendencias: redes inalámbricas
Redes de Área Global (WAN)
• Unión de múltiples LAN’s.
• La unión de múltiples WANs a nivel mundial es lo que se conoce como Internet.
Arquitectura lógica de Internet
La arquitectura de Internet a nivel lógico está estructurada por lo que se conoce
como capas de servicio.
Modelo OSI de 7 capas:
7 Capa de aplicación
6 Capa de presentación
5 Capa de Sesión
4 Capa de transporte
3 Capa de red
2 Capa de datos
1 Capa física
1.2.1. El modelo cliente-servidor o de dos capas
Gran parte de la aplicación corre en el lado del cliente (fat client).
Las capas son:
 Cliente (fat client): La lógica de negocio está inmersa dentro de la aplicación
que realiza el interfaz de usuario, en el lado del cliente.
 Servidor: Administra los datos.
Las limitaciones de este modelo son:
 Es difícilmente escalable
 Número de conexiones reducida
 Alta carga de la red.
 La flexibilidad es restringida
 La funcionalidad es limitada.
1.2.2. Arquitectura de tres capas
Está diseñada para superar las limitaciones de las arquitecturas ajustadas al
modelo de dos capas, introduce una capa intermedia (la capa de proceso) entre
presentación y los datos, los procesos pueden ser manejados de forma separada
a la interfaz de usuario y a los datos, esta capa intermedia centraliza la lógica de
negocio, haciendo la administración más sencilla, los datos se pueden integrar de
múltiples fuentes, las aplicaciones web actuales se ajustan a este modelo.
Las capas de este modelo son:
1.- Capa de presentación (parte en el cliente y parte en el servidor)
 Recoge la información del usuario y la envía al servidor (cliente)
 Manda información a la capa de proceso para su procesado
 Recibe los resultados de la capa de proceso
 Generan la presentación
 Visualizan la presentación al usuario (cliente)
2.- Capa de proceso (servidor web)
 Recibe la entrada de datos de la capa de presentación
 Interactúa con la capa de datos para realizar operaciones
 Manda los resultados procesados a la capa de presentación
3.- Capa de datos (servidor de datos)
 Almacena los datos
 Recupera datos
 Mantiene los datos
 Segura la integridad de los datos
1.3.
Tecnologías para el desarrollo de aplicaciones Web
Tanto el web server como el web browser son dependientes de la plataforma. Sin
embargo, existen distribuciones gratuitas de ambos prácticamente para cualquier
plataforma.
Se aplican las mismas consideraciones que en modelo clásico para la aplicación
corriendo en el servidor.
Para el desarrollo del componente puede optarse por dos tecnologías similares en
funcionalidad, de diferentes proveedores; estas son ActiveX (Microsoft) y Java
Applet (Sun).
La elección de la tecnología en el cliente puede determinar el cliente universal
(Netscape Navigator no soporta ActiveX), la plataforma del cliente (ActiveX corre
sobre plataforma Windows), y el middleware a utilizar entre el componente y la
aplicación en el servidor (a no ser que se utilicen bridges que enmascaren una
tecnología sobre otra).
Dependiendo de la tecnología utilizada la aplicación servidor deberá residir en el
mismo nodo que el servidor web. Esto se debe a restricciones en las tecnologías
que limitan al componente alojado en el cliente a comunicarse únicamente con el
servidor desde el cual fue descargado. Otras limitaciones incluyen acceso a disco
del cliente.
1.3.1. Servidores
Un servidor web es un programa informático que procesa una aplicación del lado
del servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas
o asíncronas con el cliente generando o cediendo una respuesta en cualquier
lenguaje
o Aplicación
del
lado
del
cliente.
Los tipos de servidores que existen son:
Servidor dedicado: Que se refiere a una computadora servidor dedicada
exclusivamente al sitio del cliente
Servidor Compartido: Quiere decir que en un mismo servidor se usara para a
varios clientes compartiendo los recursos
Entre los tipos más encontrados de servidores Web podemos encontrar:
»
Apache: Este es el más común y más utilizado en todo el
mundo. Además, es gratuito (cómo no), y de código abierto, así que
podríamos decir que corre sobre cualquier plataforma.
»
Microsoft
IIS: Sólo
funciona
sobre
sistemas Windows, como ya habréis imaginado.
Si quieres empalarlo sobre otro sistema, tendrás
que utilizar una máquina virtual.
» Sun Java System Web Server: Este producto pertenece a la casa Sun, y suele
empalarse sobre entorno de este sistema. Sin embargo, como Apache, es
multiplataforma, y recientemente Sun ha decidido distribuirlo con licencias de
código
abierto
(BSD
concretamente).
» Ngnix: Este es un servidor Web muy ligero y corre sobre sistemas Unix y
Windows. Se ha convertido en el 4º servidor HTTP más popular de la red y
también
se
distribuye
bajo
licencia
BSD.
» Lighttp: Este servidor Web es otro de los más ligeros que hay en el mercado.
Está especialmente pensado para hacer cargas pesadas sin perder balance,
utilizando poca RAM y poca de CPU. Algunas páginas populares que lo usan
son Youtube, Wikipedia y otras que soportan gran tráfico diariamente. También
es gratuito y se distribuye bajo licencia BSD.
1.3.2. Lenguajes de Programación Web (HTML, XHTML, XML, PHP,
ASP, JSP, JSCRIPT, VBSCRIPT, AJAX, entre otros)
a) Lenguajes de programación del lado del cliente.
Los lenguajes de programación del lado cliente se usan para su integración en
páginas web. Un código escrito en un lenguaje de script se incorpora directamente
dentro de un código HTML y se ejecuta interpretado, no compilado.
Con la programación del lado del cliente se pueden validar algunos de los datos
en la máquina cliente antes de enviarlos al servidor. Esto proporciona a los
usuarios informes de error inmediatos, mientras siguen en esa página de
formulario y sin necesidad de volver atrás tras recibir un mensaje de error. Puede
resultar necesario acceder a una base de datos para validar determinados valores,
mientras que no suele disponer de un acceso directo a la base de datos en la
máquina del cliente, aunque ese acceso a la base de datos es factible.
Para incorporar un fragmento de código script en una página HTML se introduce el
script entre los tags <SCRIPT> y </SCRIPT>. Dos son los lenguajes de script que
hay en la actualidad: el VBScript (derivado de Visual Basic) y el JavaScript
(derivado de Java).
Vbscript (Visual Basic Script): Es un lenguaje de script, directamente derivado
de Visual Basic. Para insertar código VBScript en una página HTML se añade al
tag <SCRIPT> el parámetro LANGUAGE="VBScript", que determina cuál de los
lenguajes
de
script
se
utiliza.
Decimos que los lenguajes de script se ejecutan interpretados, no compilados.
Esto significa que un código escrito en un lenguaje de script no sufre ninguna
transformación previa a su ejecución. Cada línea de código es traducida a
lenguaje máquina justo antes de su ejecución. Después es ejecutada y la
traducción no se conserva en ningún sistema de almacenamiento (como discos,
cintas, etc). Si es necesaria otra ejecución, el intérprete se verá abocado a realizar
una nueva traducción de cada línea de código. Sin embargo el lenguaje Visual
Basic, del cual deriva el VBScript, es un leguaje compilado. Esto significa que un
código en Visual Basic sufre un proceso global de traducción a lenguaje máquina.
Todo el código es traducido de una sola vez y el resultado de esa traducción se
almacena
en
el
disco
con
la
extensión
.EXE.
Cuando llega el momento de la ejecución, se ejecuta el código compilado, no el
código original del programa (llamado código nativo o código fuente). Cada
sistema tiene sus ventajas e inconvenientes.
Las ventajas e inconvenientes de la interpretación son:
 El código es cómodo para depurar, ya que no es necesario volver a compilar
tras un cambio.
 No es necesario disponer de un compilador, ya que el intérprete (que forma
parte del navegador) ejecuta el script.
 El mantenimiento es fácil y rápido, por parte del autor o de otro programador.
 La ejecución se realiza, al ser necesaria la interpretación línea a línea cada vez.
 El código es visible y puede ser objeto de plagio por parte de otras personas.
 El usuario tiene acceso al código y puede modificarlo, estropeando alguna
operación.
Las ventajas e inconvenientes de la compilación son:
 El código compilado se ejecuta muy rápido, al no ser necesaria una traducción
cada vez.
 El código compilado no puede ser "abierto" por otras personas. No es necesario
transmitir el código fuente.
 El código compilado puede estar, íntegramente, incluido en un solo fichero.
 Es necesario disponer de un compilador-linkador para el proceso de la
compilación.
 El código compilado suele ocupar bastante en disco, ya que incorpora en el
propio código algunas librerías del sistema.
 Depurar un programa implica volver a compilar tras los cambios.
El código en VBScript puede, además, estar diseñado para su ejecución en el lado
del cliente o en el del servidor. La diferencia es que un código que se ejecuta en el
lado del servidor no es visible en el lado del cliente. Este recibe los resultados,
pero no el código. El código que se debe de ejecutar en el lado del servidor estará
incluido en la página web correspondiente entre los tags <% y %>. Además habrá
que renombrar la página para aplicarle la extensión .asp (Active Server Page página activa en servidor-). El funcionamiento intrínseco de la ASP se especificará
con mayor detalle en el capítulo 4. Lenguajes del servidor
Un ejemplo de una sencillísima página web que incluye código VBScript:
<HTML>
<HEAD>
<TITLE>Cuadro de mensaje</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
MSGBOX ("Ejemplo de mensaje")
</SCRIPT>
</BODY>
</HTML>
Este código incluye la instrucción MSGBOX ("Cuadro de mensaje"), que genera en
pantalla lo siguiente:
JavaScript:
JavaScript es un lenguaje de scripts compacto basado en objetos (y no orientado
a objetos). Originariamente era denominado LiveScript, y fue desarrollado por
Netscape para su navegador Netscape Navigator 2.0. Fue éste el primer cliente en
incorporarlo. Se ejecuta sobre 16 plataformas diferentes, incluyendo los entornos
de Microsoft.
Las diferentes versiones de JavaScript han sido finalmente integradas en un
estándar denominado ECMAScript-262. Dicho estándar ha sido realizado por la
organización ECMA dedicada a la estandarización de información y sistemas de
comunicación. Las versiones actuales de los navegadores soportan este estándar.
JavaScript permite la realización de aplicaciones de propósito general a través de
la WWW y aunque no está diseñado para el desarrollo de grandes aplicaciones es
suficiente para la implementación de aplicaciones WWW completas o interfaces
WWW hacia otras más complejas.
Por ejemplo, una aplicación escrita en JavaScript puede ser incrustada en un
documento HTML proporcionando un mecanismo para la detección y tratamiento
de eventos, como clics del ratón o validación de entradas realizadas en
formularios.
Sin existir comunicación a través de la red una página HTML con JavaScript
incrustado puede interpretar, y alertar al usuario con una ventana de diálogo, de
que las entradas de los formularios no son válidas. O bien realizar algún tipo de
acción como ejecutar un fichero de sonido, un applet de Java, etc.
<html>
</head>
<body>
<br>
Este es un documento HTML normal
<br>
<script language="JavaScript">
document.write("Esto es JavaScript!")
</script>
<br>
En HTML otra vez.
</body>
</html>
Este primer programa se limita a escribir en pantalla un determinado texto para lo
que se emplea el código document.write. En este código, document es un objeto
creado por el sistema que hace referencia al propio documento y write es uno de
los métodos que proporciona para interactuar con él. El resultado de cargar este
documento en un visualizador que interprete JavaScript será la aparición de los
dos textos, el escrito en JavaScript y el escrito en HTML, sin que el usuario sea
consciente del proceso.
Podemos hablar también de páginas dinámicas del servidor, que son reconocidas,
interpretadas
y
ejecutadas
por
el
propio
servidor.
b)
Lenguajes
de
programación
del
lado
del
servidor.
Los Lenguajes de programación del lado del servidor son especialmente útiles en
trabajos que se tiene que acceder a información centralizada, situada en una base
de datos en el servidor, y cuando por razones de seguridad los cálculos no se
pueden
realizar
en
la
computadora
del
usuario.
Es importante destacar que los lenguajes de programación del lado del servidor.
Son necesarias porque para hacer la mayoría de las aplicaciones web se debe
tener acceso a muchos recursos externos a la computadora del cliente,
principalmente bases de datos alojadas en servidores de Internet. Un caso claro
es un banco: no tiene ningún sentido que el cliente tenga acceso a toda la base de
datos,
sólo
a
la
información
que
le
concierne.
Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML,
mezclado con el código HTML, al igual que ocurría en las páginas del cliente.
Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los
scripts y se genera una página resultado, que solamente contiene código HTML.
Este resultado final es el que se envía al cliente y puede ser interpretado sin lugar
a errores ni incompatibilidades, puesto que sólo contiene HTML
Luego es el servidor el que maneja toda la información de las bases de datos y
cualquier otro recurso, como imágenes o servidores de correo y luego envía al
cliente una página web con los resultados de todas las operaciones.
Las ventajas de este tipo de programación son que el cliente no puede ver los
scripts, ya que se ejecutan y transforman en HTML antes de enviarlos. Además
son independientes del navegador del usuario, ya que el código que reciben es
HTML
fácilmente
interpretable.
Como desventajas se puede señalar que será necesario un servidor más potente y
con más capacidades que el necesario para las páginas de cliente. Además, estos
servidores podrán soportar menos usuarios concurrentes, porque se requerirá más
tiempo de procesamiento para cada uno.
Para escribir páginas dinámicas de servidor existen varios lenguajes.
 Practical Extraction and Report Language (PERL): es un lenguaje de
programación desarrollado por Larry Wall (lwall at netlabs.com) inspirado en
otras herramientas de UNIX. PERL es el lenguaje más utilizado para la creación
de programas CGI en los servidores web. Es más rápido que los programas
shell script de UNIX, puede leer y escribir ficheros binarios, y puede procesar
ficheros grandes. La ventaja más importante de PERL sobre C es que PERL no
necesita ser recompilado, es un lenguaje interpretado.
 Active Server Pages (ASP): es una tecnología del lado servidor de Microsoft
para páginas web generadas dinámicamente, que ha sido comercializada como
un anexo a Internet Information Server (IIS). EL estándard ASP permite poder
utilizar cualquier lenguaje para la programación, si bién Microsoft favorece que
se utilice el VBScript, y en segundo término el JScript (versión del estándard
Javascript hecha por Microsoft). En teoría, y mediante la programación, es
posible adaptar versiones de lenguajes como Pascal, C y otros, para utilizarlos
dentro de páginas ASP.
 Java Server Pages (JSP): es la tecnología para generar páginas web de forma
dinámica en el servidor, desarrollado por Sun Microsystems, basado en scripts
que utilizan una variante del lenguaje Java. La tecnología JSP, o de JavaServer
Pages, es una tecnología Java que permite a los programadores generar
dinámicamente HTML, XML o algún otro tipo de página web. Esta tecnología
permite al código Java y a algunas acciones predefinidas ser embebidas en el
contenido estático. La principal ventaja de JSP frente a otros lenguajes es que
permite integrarse con clases Java (.class) lo que permite separar en niveles las
aplicaciones web, almacenando en clases java las partes que consumen
más recursos así como las que requieren más seguridad, y dejando la parte
encargada de formatear el documento 'html ' en el archivo jsp. Además Java se
caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo
que sumado a jsp le da mucha versatilidad.
Hipertext Preprocesor (PHP): PHP (acrónimo recursivo de "PHP: Hypertext
Preprocessor", originado inicialmente del nombre PHP Tools, o Personal Home
Page Tools) es un lenguaje de programación interpretado. Aunque fue concebido
en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el día 8 de Junio
de 1995 que fue lanzada la versión 1.0. Se utiliza entre otras cosas para la
programación de páginas web activas, y se destaca por su capacidad de
mezclarse con el código HTML. Aunque su creación y desarrollo se da en el
ámbito de los sistemas libres, bajo la licencia GNU, existe además un compilador
comercial denominado (Zend Optimizer). El desarrollo del código abierto por un
lado y el firme respaldo comercial por el otro, han llevado a PHP a alcanzar una
popularidad más que notable. El nuevo soporte JAVA y DCOM, las avanzadas
características de XML y las mejoras de la programación orientada a objetos
(POO) que incorpora su última versión PHP5, han incrementado la aceptación de
PHP en entornos comerciales, y lo han convertido en una herramienta viable para
la programación en entornos empresariales.
1.3.3. Entornos de Programación Web
Un ambiente de desarrollo para aplicaciones web es una estructura definida,
reusable en el que sus componentes facilitan la creación de aplicaciones web. En
cierto sentido podemos afirmar que nos proveen una capa de abstracción sobre la
arquitectura original ocultándola o adaptándola para no tener que utilizar el
protocolo http de manera nativa y así acelerar los tiempos de desarrollo y
mantenimiento.
Struts: consta de un servlet que actúa de controlador central que recibe todas las
peticiones de los clientes. Las facilidades de desarrollo que ofrece son:
1. Lógica de navegación entre páginas
2. Binding entre java y el html
3. Validación de entradas
4. Internacionalización
5. Independencia del motor de visualización
6. Maquetación
Su funcionamiento básico es el siguiente:
 El cliente solicita una página que contiene datos a completar
 El servidor le envía la página.
 El cliente, con los datos completados envía de regreso la página. El
ActionServlet verifica la ruta con la que se lo invocó y extrae el path de esa ruta
y busca en los actionMappings cuál es la Acción a invocar y que formulario
necesita recibir como entrada.
 El controlador crea o reutiliza el Formulario dependiendo el ámbito en que es
ejecutada la petición, carga los datos en el formulario, los valida y luego crea la
acción y le pasa el formulario como parámetro.
 La acción recibe el formulario y con sus datos invoca a las reglas del negocio
(generalmente delegadas en otros objetos).
 A partir de la respuesta recibida, carga los valores de salida y selecciona la
siguiente vista a enviar.
Tapestry: es una herramienta de código abierto de Apache que está pensado
para realizar aplicaciones web en Java que sean dinámicas, robustas y altamente
escalables, que funciona en todo contenedor de servlets o servidor de
aplicaciones. La filosofía de Tapestry se basa en lo siguiente:
 Simplicidad en la creación de aplicaciones web.
 Consistencia a la hora de que distintos desarrolladores pueden encontrar
soluciones similares a problemas similares.
 Eficiencia, las aplicaciones deben ser escalables.
 Reacción ante los errores, aportando modos de diagnósticos.
ASP.NET: es un conjunto de tecnologías definidas por Microsoft para la capa de
presentación WEB que forma parte del .NET Framework. En pocas palabras, una
página ASP.NET es un archivo de texto con extensión aspx que el servidor sabe
que debe procesar de una manera especial. El texto de las páginas puede ser html
junto con código scripting que se compila dinámicamente y se ejecuta en el
servidor. La página aspx se compila (sólo la primera vez) a código ejecutable .net
cuando algún cliente la solicita al servidor. Para incluir código embebido en la
página se utilizan los separadores <% y %>. En este sentido es similar al
funcionamiento de las páginas JSP de java. Las páginas ASP.NET pueden tener
controles que se ejecutan del lado del servidor (server controls) que son objetos
que representan elementos de la interfaz de usuario que se ejecutan en el servidor
y generan código html como resultado de su ejecución. Los controles tienen
propiedades, métodos y eventos a los que pueden responder y mediante los que
se puede modificar su estado y comportamiento. Este comportamiento se puede
declarar en los atributos de su declaración html o de manera programática.
Los controles permiten contener otros controles dentro de ellos y es posible, al
igual que cualquier objeto, heredar y redefinir parte de su comportamiento.
Un control de servidor se identifica en una página html por su atributo
runat="server". De esta manera un webform es una página html que contiene en
algún lado una etiqueta del estilo:
Trabajar con ASP.NET permite
 Separación del html y el código .NET.
 Binding entre los elementos de la vista y el código .net
 Validación de entradas
 Manejo de eventos
 Creación de componentes propios
 Internacionalización (*)
 Maquetación (*)
Cocoon: Está desarrollado en java y es completamente diferente a los que se
detallaron anteriormente. Se basa en un modelo de componentes y en el concepto
de tuberías (pipelines) de componentes. Este concepto se asemeja a una línea de
producción donde cada componente se especializa en una operación en particular
(existen componentes generadores, transformadores, serializadores, etc). El
contenido ingresa en la tubería y es modificado por las sucesivas etapas hasta
generar la respuesta que es enviada al cliente. De esta manera se busca separar
el contenido, el estilo, la lógica y la administración de un sitio web basado en
contenido XML.
Esta herramienta tiene varios componentes:
 Generadores (generators): generan XML como eventos SAX y dan inicio al
procesamiento del pipeline
 Transformadores (transformers): transforman los eventos SAX recibidos en
otros eventos SAX
 Serializadores (serializers): transforman los eventos SAX en streams binarios o
de texto que pueden ser entendibles por el cliente.
 Selectores (selectors): permiten implementar lógica condicional básica (if-then o
switch)
 Mapeadores (matchers): mapea un patrón de entrada con un recurso
 Acciones (actions): son invocadas desde el pipeline y ejecutan algun tipo de
operación antes de continuar con el resto del proceso. Las acciones tienen un
método act() en donde ejecutan su lógica y devuelven un conjunto de
resultados en forma de diccionario (map). Generalmente son las encargadas de
invocar a la lógica del negocio.
El mecanismo básico de trabajo de Cocoon es tomar un documento XML y ponerlo
en una tubería que lo transformará hasta generar la salida correspondiente. Cada
tubería empieza con un generador, sigue con cero o más transformadores y
termina con un serializador. Los mapeadores y selectores permiten seleccionar la
tubería a utilizar y las vistas permiten definir puntos de salida dentro de cada
tubería. Además, es posible definir cómo manejar los flujos de excepción si ocurre
algún error durante el procesamiento dentro de la tubería.
Construir aplicaciones con Cocoon permite
 Control de flujo de navegación
 Separación de incumbencias
 Internacionalización
 Independencia del dispositivo de presentación
 Validación de entradas
1.4. Instalación y administración de servidores.
1.4.1. Instalación y configuración de un servidor en ambiente
Windows
Servidor Web IIS. Internet Information Services
Es una serie de servicios para los ordenadores que funcionan con Windows.
Los servicios que ofrece son:
 FTP
 SMTP
 NNTP
 HTTP/HTTPS.
Ventajas:
 Fácil de usar.
 ASP preparado en la instalación por defecto.
 Soporte ODBC integrado.
 Configuración gráfica y en línea de comandos
Desventajas:
x Multitud de nuevos fallos de seguridad.
x La mayoría de funcionalidad extra debe ser comprada separadamente.
x Sólo funciona en Windows
¿Para qué sirve?
Este servicio convierte a un ordenador en un servidor de Internet , con este
servicio instalado se pueden publicar páginas web tanto local como remotamente
(servidor web).
Instalación IIS
Presionamos Windows + R
Escribimos lo siguientes appwiz.cpl
Se abrirá la ventana programa y características, después hacemos clic en "Activar
las características de Windows o desactivar.
Ahora haga clic en la casilla de verificación Servicios de Internet Information
Server.
Vamos al navegador.
1.4.2. Instalación y configuración de un servidor en ambiente Linux
LAMP
Acrónimo de Linux Apache MySQL PHP. Hay que tener en
cuenta que la mayoría de los sitios de internet, hoy en día,
utiliza estos servidores LAMP o su versión para
Windows WAMP.
APACHE
Servidor de páginas web.
Un servidor de páginas web es un programa que permite acceder a
páginas web alojadas en un ordenador.
MYSQL
Gestor de bases de datos de código abierto.
PHP
Lenguaje de código abierto muy popular, adecuado para desarrollo
web y que puede ser incrustado en HTML.
1.5.
Planificación de aplicaciones Web
1.5.1. Análisis de requerimientos
A la hora del desarrollo de un sitio Web se debe comenzar por dar respuesta a un
grupo muy concreto de interrogantes, que permitirán aclarar y definir de manera
básica las expectativas existentes en torno a la aplicación Web e interacción que
se va a generar. Dichas preguntas podrían ser las siguientes:
 ¿Se necesita realmente el sitio Web?
 ¿Para qué se necesita el sitio Web?
 ¿Qué es lo que buscarán los usuarios en el sitio Web?
 ¿Qué imagen se quiere proyectar con el sitio Web a los usuarios?
 ¿Qué servicios interactivos se integrarán a través del sitio Web?
 ¿Con qué recursos se cuenta para el desarrollo del sitio Web?
 ¿Cuánto tiempo debe ser invertido en el desarrollo del sitio Web?
 ¿Qué impacto causará el sitio Web en los usuarios?
Selección de Objetivos
Todo proyecto debe contar con objetivos definidos, contra los cuales puede
medirse la efectividad de las acciones que se desarrollen.
Green, Chilcott y Flick (2003) denominan esta etapa, resumen de objetivos, donde
establecen tres puntos primordiales para esta selección, los cuales son definir los
usuarios, lo que los usuarios esperan de la visita, y qué se pretende comunicar a
través del sitio Web (p. 39). Puntos que para este escrito serán denominados:
selección de usuarios, expectativas de usuario y expectativas de la organización;
se describen a continuación:
 Selección de usuarios
Los usuarios o la audiencia, se refiere a aquella parte de la población a la que se
pretende alcanzar o influir con el sitio Web; esto está estrechamente vinculado con
la naturaleza del sitio que se propone. Toda la información que se obtenga servirá
para establecer parte de los criterios de diseño de contenido, lenguajes, estética,
entre otros.
“El modelado del usuario se basa en definir clases o perfiles de los usuarios, y así
poder diseñar con el objetivo de satisfacer las necesidades propias de cada grupo
de usuarios” (Montero, Y. y Martín, F., 2003).
 Expectativas de Usuario
La organización puede o no, ser conocida por los usuarios en potencia del sitio. Al
plantearse la puesta en marcha de un sitio Web es necesario conocer hacia quién
va dirigido éste y qué podrían esperar dichos usuarios al visitarlo.
“Tómese un tiempo para contactar con sus clientes, proveedores y amigos, con el
fin de averiguar cómo harían ellos para encontrar su sitio Web y qué les gustaría
ver en él” (Morris, S. y Dickinson, P., 2002, p. 28).
 Expectativas de la organización
Es vital establecer o fijar qué resultados pretende conseguir la organización con la
creación del sitio Web. Con ello se busca definir el propósito del sitio Web, y se
deben incluir aspectos que van desde los más generales, relacionados con el
público de destino, hasta los más específicos, relacionados con la organización.
Morris y Dickinson (2001) indican que se debe decidir si lo que se busca con el
sitio Web es: aumentar ventas, ofrecer servicios especializados y conocimientos,
publicidad y patrocinio, incentivos (productos gratis para promoción), o para
publicitar (p.p. 29-32).
Fase de Planificación
Todo proyecto posee una fase de planificación. En ella se deben definir cuáles son
los requerimientos técnicos para este fin, quiénes serán los miembros del equipo,
seleccionar la estructura, planear un sitio bien organizado, y realizar estudios de
mercadeo comparativo.
 Selección de Software
En esta etapa de la metodología se busca determinar los requerimientos en
cuanto al software que se utilizará para el desarrollo de la aplicación; es decir,
sistemas operativos, servidor (software), editores para diseño Web, lenguajes de
programación, animaciones y otros componentes. Esta definición dependerá de
muchos aspectos como la existencia de licencias de software o los recursos
técnicos y hardware.
 Selección de Hardware
Antes de emprender el desarrollo de una aplicación Web, se deben determinar los
requerimientos de hardware de la aplicación, el equipo servidor, la capacidad de
respuesta, terminales, requerimientos de red si la aplicación ha de disponerse en
una intranet o extranet. En el caso que la aplicación vaya a estar publicada en
Internet, se debe reservar el dominio y ubicar el servicio de hospedaje de
empresas que se especializan en este servicio (Morris y Dickinson, 2002, p.p. 4950).
Selección del Equipo Adecuado
“El entorno de trabajo en equipo surge de la necesidad de segmentar el proceso
de producción en varias funciones diferenciadas” (Green, Chilcott y Flick, 2003, p.
43).
Cada miembro del Equipo Web debe estar capacitado en su campo de trabajo (la
presencia o el nivel de experiencia de ciertos miembros del equipo puede variar
dependiendo del proyecto). Green, Chilcott y Flick (2003) sugieren una lista de
miembros que podrían ser parte de este equipo, de esta lista se extrajeron los
siguientes:
 Jefe de Proyecto: Encargado de la supervisión y control del resto del equipo.
Actúa como enlace entre el usuario y los demás miembros.
 Productor: Este se encarga de establecer el aspecto, percepción y
funcionalidad del sitio.
 Editor: Ayuda a establecer y mantener el estilo, además de la integridad del
sitio. Tiene la responsabilidad de controlar la corrección y el flujo de texto y en
algunos casos el contenido multimedia del sitio.
 Escritor: Los escritores deben interesarse por los detalles técnicos y la
incorporación al desarrollo de estándares con respecto al sitio, utilización de las
palabras apropiadas, ortografía y gramática. Es necesario que el escritor tenga
conocimiento de HTML, o de herramientas con FrontPage u otra aplicación.
 Diseñador de bases de datos: Desarrolla las bases de datos que gestiona el
sitio Web, se ocupa de definir sus relaciones.
 Diseñador de scripts: Trabaja en conjunto con el diseñador de la base de
datos. Desarrolla y depura los scripts, los componentes Activex y otros
elementos interactivos de la Web.
 Diseñador gráfico: Se encarga de crear los archivos visuales del sitio, también
puede encargarse de la creación de los archivos de sonido y de película.
Trabaja con imágenes y pequeñas labores de programación.
 Técnico de hardware: Configura, prueba, opera y mantiene las computadoras,
impresoras y máquinas necesarias para la ejecución y mantenimiento del sitio.
 Técnico de prueba: Si se dispone de un sitio grande o complejo, puede
resultar provechosa la incorporación de un Técnico de prueba al equipo. Su
labor consiste en garantizar que todo funcione como debería, se encarga de
probar los elementos de todas las páginas.
Aunque estas funciones podrían tomarse como esenciales, la estructura siempre
vendrá determinada por el alcance del proyecto.
Benchmarking
Es una manera de detallar, observar y evaluar todas aquellas páginas
Web calificadas como las mejores que se encuentren en la red, con la finalidad de
diseñar una forma que permita crear un producto de alta calidad, productividad y
competitividad.
Una manera práctica de realizar el benchmarking es plantearse una serie de
preguntas al momento de visitar las páginas que se han seleccionado como las
mejores del ramo, Morris y Dickinson (2002) sugieren las siguientes:
¿Cuáles son los objetivos del sitio?
¿Cuánto tiempo tardo en descargar?
¿Se descargó en un orden lógico?
¿Es un sitio Web interesante?
¿Cómo son los gráficos?
¿Refleja el género de la empresa o compañía?
¿Es de fácil uso y es cómodo navegar en él?
¿El contenido está estructurado de manera lógica?
¿Hay demasiados o insuficientes niveles de información?
En conjunto ¿el sitio es un éxito?
1.5.2. Usabilidad
Se refiere a la experiencia del usuario al interactuar con un sitio web.
Un sitio web con usabilidad es aquél que muestra todo de una forma clara y
sencilla de entender por el usuario. Aunque es imposible crear un sitio que sea
claro y eficiente para cada usuario, el diseñador debe enfocarse para mostrar las
cosas tan claramente como sea posible, de tal modo que reduzca al mínimo
cualquier aspecto que pueda ser confuso.
1.5.3. Diseño del sitio
“La base de un sitio bien diseñado es una estructura definida con precisión”
(Green, Chilcott y Flick, 2003, p. 107).
Las relaciones de las páginas entre sí configuran la estructura del sitio. A partir de
la página principal se vinculan mediante enlaces al resto de las páginas, esto es
bastante sencillo mediante código HTML, pero es más complicado decidir el
orden, de qué manera y con qué configuración se establecerán los vínculos.
La estructura de un conjunto de páginas Web es muy importante, ya que permitirá
al lector visualizar todos los contenidos de una manera fácil y clara (buena
estructura), o provocar en el lector una sensación de estar perdido, por lo cual no
encontrará rápidamente lo que busca y terminará por abandonar el sitio (mala
estructura).
Los autores Green, Chilcott y Flick (2003), destacan los tipos de estructura de
navegación:
Estructura Lineal
Esta estructura consiste en una
línea recta que recorre el sitio
desde la página de inicio hasta la página final, de esta manera lo definen Green,
Chilcott y Flick (2003, p. 107). Esto se puede apreciar en la figura 1.
Es muy útil cuando se desea que el lector siga un camino fijo y guiado, además el
de impedir que se distraiga con enlaces a otras páginas. Por otra parte se puede
causar al lector la sensación de estar encerrado si el camino es muy largo o poco
interesante. Este tipo de estructura sería válido para tutoriales de aprendizaje o
tours de visita guiada.
Estructura Jerárquica
La estructura jerárquica, como se observa
en la figura 2, es la típica estructura de
árbol, en el que la raíz es la página de
bienvenida, ésta se puede también
sustituir por la de contenido, en la que se
exponen las diferentes secciones que
contiene el sitio.
Para Green, Chilcott y Flick (2003) la
ventaja de esta estructura es que el usuario siempre está ubicado y puede
moverse fácilmente por el sitio.
Gracias a que la mayoría de las páginas secundarias permiten regresar a la
página de inicio, los visitantes controlan completamente la navegación. (p.
108).
Estructura Radial
En este modelo las páginas secundarias no se
conectan entre sí, y se debe navegar por la
página principal para ir de una secundaria a otra,
es decir, la principal contiene enlaces a todas las
secundarias, pero las secundarias sólo
contienen un retorno a la principal, tal cual se
aprecia en la figura que sigue.
La ventaja de esta estructura es que facilita la
navegación, los visitantes sólo tendrán que
efectuar uno o dos clics para retornar a la página
principal; sin embargo esto podría también ser un inconveniente porque obliga al
usuario a regresar siempre a la página de inicio.
Estructura de Red
En ella se plantea un modelo en el que todas las
páginas están relacionadas entre sí. Es una
estructura ideal para sitios especializados en un
tema, en la que se le permite al usuario una
navegación libre y sin limitaciones. La estructura
de red se aprecia en la figura 4.
10 factores para incrementar la productividad
o
o
o
o
o
o
o
o
o
o
Visual
Audio
Cinestésico
Simbólico
Calidad Técnica
Calidad Institucional
Calidad de Marketing
Mensaje
Receptor
Retroalimentación
1.5.4. Estándares
Un estándar es un conjunto de reglas normalizadas que describen los requisitos
que deben ser cumplidos por un producto, proceso o servicio, con el objetivo de
establecer un mecanismo base para permitir que distintos elementos hardware o
software que lo utilicen, sean compatibles entre sí.
El W3C, organización independiente y neutral, desarrolla estándares relacionados
con la Web también conocidos como Recomendaciones, que sirven como
referencia para construir una Web accesible, interoperable y eficiente, en la que se
puedan desarrollar aplicaciones cada vez más robustas.
En la creación de las Recomendaciones del W3C participan sus Miembros (más
de 400 organizaciones, distribuidas a lo largo de todo el mundo y de diversos
ámbitos: grandes empresas de hardware o software, centros investigadores,
universidades, administraciones públicas, etc.), el Equipo del W3C, expertos
invitados, y cualquier usuario de la Web que quiera mostrar su opinión. Todos
ellos trabajan conjuntamente a través de un proceso basado en el consenso, la
neutralidad y la transparencia de la información.
El resultado: más de 110 tecnologías desde 1996.
Algunos de los estándares Web más conocidos y ampliamente utilizados son:
HTML (HyperText Markup Language), para definir la estructura de los
documentos; XML (eXtensible Markup Language), que sirve de base para un gran
número de tecnologías; y CSS (Cascading Style Sheets), que permite asignar
estilos para la representación de los documentos.
¿Para qué sirven?
La finalidad de los estándares es la creación de una Web universal, accesible, fácil
de usar y en la que todo el mundo pueda confiar. Con estas tecnologías abiertas y
de uso libre se pretende evitar la fragmentación de la Web y mejorar las
infraestructuras para que se pueda evolucionar hacia una Web con la información
mejor organizada.
Acceso Universal
El W3C se guía por los principios de accesibilidad, internacionalización, e
independencia de dispositivo, entre otros. Esto facilita que el acceso a la Web sea
posible desde cualquier lugar, en cualquier momento y utilizando cualquier
dispositivo. No importa si se utiliza hardware, software, o una infraestructura de
red específica. Además de las posibles restricciones técnicas, se tiene en cuenta
la existencia de múltiples idiomas, las diversas localizaciones geográficas, y las
diferencias culturales o tradiciones, así como las posibles limitaciones físicas,
psíquicas o sensoriales de los usuarios.
La concienciación de que no todas las personas acceden a la Web de la misma
forma, permite centrarse en determinados colectivos que tienen necesidades
concretas, como pueden ser las personas de edad avanzada en el caso de
limitaciones psíquicas, físicas o sensoriales.
El avance de las tecnologías inalámbricas, así como la gran variedad de
dispositivos con acceso a la Web presentes en sectores como el de la telefonía
móvil, en el de automoción (navegadores en los salpicaderos de automóviles), en
los electrodomésticos (refrigeradores con pantallas táctiles) o en los televisores,
fomenta la ubicuidad de la Web. Esto pone de manifiesto la necesidad de utilizar
tecnologías y lenguajes unificados, libres y gratuitos, cuyo uso no esté limitado por
patentes comerciales.
Una Web con significado
Tradicionalmente, se podría considerar la Web como un conjunto de documentos
conexos entre sí a través de términos léxicos y sintácticos. Estos documentos
están expresados en lenguaje natural y contienen contenido destinado a personas.
Esto limita a las máquinas a la hora de procesar la información de forma eficiente,
ya que no pueden evitar las ambigüedades del lenguaje natural. Gracias al nuevo
enfoque del W3C, la Web evoluciona hacia lo que se denomina Web Semántica,
una ampliación de la Web tradicional, que ofrece mecanismos para añadir
significado a los recursos (documentos, imágenes, vídeos, etc.), de forma que
cualquier máquina pueda interpretar los datos existentes en la Web de una forma
similar a como lo hacen los humanos. La información no sólo está especificada
como una serie de información textual o gráfica inconexa entre sí, sino que la Web
se puede considerar como una gran base de datos organizada y estructurada
teniendo en cuenta la naturaleza semántica de los elementos que la componen.
La Web Semántica fomenta una mejora en el rendimiento y eficiencia de la Web,
lo que se transmite en una experiencia más satisfactoria para el usuario, el que
obtendrá mayor precisión en sus búsquedas y operaciones, y podrá tener acceso
a mayores cantidades de información específica y útil. De la misma forma, esta
estructuración y tratamiento de los datos más preciso evitará las tareas frustrantes
y difíciles, como es la búsqueda, obtención y mezcla de información desde
distintas fuentes.
Confianza en la Web
La Web es un medio colaborativo, donde los usuarios interactúan creando
contenidos (en wikis, blogs o foros), realizan transacciones (compras online,
operaciones bancarias), o crean redes sociales (de amistad o laborales), donde se
relacionan entre sí.
Estas actividades requieren que los usuarios confíen entre sí y han promovido el
desarrollo de ciertas tecnologías para asegurar esta confianza: firmas digitales de
documentos que fomentan la responsabilidad de las personas que se declaran
autores de estos; encriptación de los datos para la confidencialidad; y mecanismos
de establecimiento y declaración de las políticas de privacidad de los datos de los
sitios Web.
¿Cómo funcionan?
La creación de un estándar Web requiere un proceso controlado, que consta de
varias etapas que aseguran la calidad de la especificación. Este proceso permite
la intervención de todos los usuarios de las tecnologías, con el objetivo de que
puedan aportar su conocimiento y opiniones para la mejora de los documentos.
Tras este proceso, elaborado por especialistas en la materia, se obtienen unos
estándares de calidad, y al estar disponible para todo el mundo, las
especificaciones se depuran exhaustivamente antes de ser consideradas como
Recomendación.
Estos estándares, están sujetos a la Política de Patentes del W3C, lo que permite
que sean utilizados libremente por toda la comunidad Web. Al utilizar las mismas
tecnologías, las máquinas se entienden entre sí y cualquier usuario puede
interactuar con el resto.
1.5.5. Revisión y mantenimiento
1.5.6. Accesibilidad
Hablar de Accesibilidad Web es hablar de un acceso universal a la Web,
independientemente del tipo de hardware, software, infraestructura de red, idioma,
cultura, localización geográfica y capacidades de los usuarios.
Con esta idea de accesibilidad nace la Iniciativa de Accesibilidad Web, conocida
como WAI (Web Accessibility Initiative). Se trata de una actividad desarrollada por
el W3C, cuyo objetivo es facilitar el acceso de las personas con discapacidad,
desarrollando pautas de accesibilidad, mejorando las herramientas para la
evaluación y reparación de accesibilidad Web, llevando a cabo una labor
educativa y de concienciación en relación a la importancia del diseño accesible de
páginas Web, y abriendo nuevos campos en accesibilidad a través de la
investigación en este área.
¿Para qué sirve?
La idea principal radica en hacer la Web más accesible para todos los usuarios
independientemente de las circunstancias y los dispositivos involucrados a la hora
de acceder a la información. Partiendo de esta idea, una página accesible lo sería
tanto para una persona con discapacidad, como para cualquier otra persona que
se encuentre bajo circunstancias externas que dificulten su acceso a la
información (en caso de ruidos externos, en situaciones donde nuestra atención
visual y auditiva no están disponibles, pantallas con visibilidad reducida, etc.).
¿Cómo funciona?
Para hacer el contenido Web accesible, se han desarrollado las
denominadas Pautas de Accesibilidad al Contenido en la Web (WCAG), cuya
función principal es guiar el diseño de páginas Web hacia un diseño accesible,
reduciendo de esta forma barreras a la información. WCAG consiste en 14 pautas
que proporcionan soluciones de diseño y que utilizan como ejemplo situaciones
comunes en las que el diseño de una página puede producir problemas de acceso
a la información. Las Pautas contienen además una serie de puntos de verificación
que ayudan a detectar posibles errores.
World Wide Web Consortium
Es una asociación internacional formada por organizaciones miembro del
consorcio, personal y el público en general, que trabajan conjuntamente para
desarrollar estándares Web.
Guiar la Web hacia su máximo potencial a través del desarrollo de protocolos y
pautas que aseguren el crecimiento futuro de la Web.
 Principio 1: El contenido debe ser contemplado de la siguiente manera:
 1.1 Proveer Alternativas de Texto para todos los contenidos no textuales
 1.2 Proveer Alternativas sincronizadas para multimedia
 1.3 Asegurarse que la información y la estructura puedan ser separadas de
la presentación
 1.4 Fácil distinción entre el fondo y la información contenida en la página.
 Principio 2: Los componentes de la interfaz en el contenido deben ser
manejables
 2.1 Elaborar todo funcionalmente manejable vía teclado
 2.2 Permitir a los usuarios controlar límites de tiempo en su lectura o
interacción.
 2.3 Permitir que los usuarios eviten el contenido que podría causar fallas
debido a la fotosensibilidad
 2.4 Proveer mecanismos para ayudar a los usuarios a encontrar los
contenidos de su interés y navegar a través de ellos.
 2.5 Ayudar a los usuarios a evitar errores y facilitarles la corrección de
errores que pudieran ocurrir.
 Principio 3 : El Contenido y controles deben ser entendibles
 3.1 Elaborar el contenido del texto legible y entendible.
 3.2 Definir la colocación y la funcionalidad del contenido predecible.
 Principio 4: El contenido debe ser lo suficientemente fuerte para trabajar con
agentes de usuario actuales y futuros (incluyendo tecnologías asistentes).
 4.1 Soporte de compatibilidad con agentes de usuario actuales y futuras
(incluyendo tecnologías asistentes)
 4.2 Asegurarse que el contenido sea accesible o que contenga una
alternativa accesible.
Cada punto de verificación está asignado a uno de los tres niveles de prioridad
establecidos por las pautas.
1. Prioridad 1: son aquellos puntos que un desarrollador Web tiene que cumplir
ya que, de otra manera, ciertos grupos de usuarios no podrían acceder a la
información del sitio Web.
2. Prioridad 2: son aquellos puntos que un desarrollador Web debería cumplir ya
que, si no fuese así, sería muy difícil acceder a la información para ciertos
grupos de usuarios.
3. Prioridad 3: son aquellos puntos que un desarrollador Web debería cumplir ya
que, de otra forma, algunos usuarios experimentarían ciertas dificultades para
acceder a la información.
En función a estos puntos de verificación se establecen los niveles de
conformidad:
 Nivel de Conformidad "A": todos los puntos de verificación de prioridad 1 se
satisfacen.
 Nivel de Conformidad "Doble A": todos los puntos de verificación de prioridad
1 y 2 se satisfacen.
 Nivel de Conformidad "Triple A": todos los puntos de verificación de prioridad
1,2 y 3 se satisfacen.
Las pautas describen cómo hacer páginas Web accesibles sin sacrificar el diseño,
ofreciendo esa flexibilidad que es necesaria para que la información sea accesible
bajo diferentes situaciones y proporcionando métodos que permiten su
transformación en páginas útiles e inteligibles.
Igualmente, se han desarrollado Pautas de Accesibilidad para Herramientas de
Autor, cuyo objetivo es ayudar a los desarrolladores de software a la hora de crear
herramientas de autor para producir contenido Web accesible. También se han
desarrollado Pautas de Accesibilidad para XML, donde se explica cómo asegurar
la accesibilidad de aplicaciones basadas en XML. Y por último, Pautas de
Accesibilidad para Agentes de Usuario 1.0, donde se explica cómo hacer
accesible los navegadores, reproductores multimedia y otras tecnologías asistivas.
Por otro lado, se han desarrollado otro tipo de documentos como las Técnicas
para Pautas de Accesibilidad al Contenido en la Web, que ofrecen una serie de
ejemplos de etiquetado y explicaciones muy detalladas de cómo implementar las
Pautas de Accesibilidad al contenido en la Web. Entre ellas se pueden
destacar Técnicas esenciales para Pautas de Accesibilidad al Contenido en la
Web 1.0, las Técnicas HTML para Pautas de Accesibilidad al Contenido a la Web
1.0 y las Técnicas CSS para Pautas de Accesibilidad al Contenido en la Web 1.0.
Ejemplos
Un ejemplo de prioridad 1 sería la identificación clara de cualquier cambio de
idioma que se pueda producir en el texto de un documento. Es decir, si se utilizan
diferentes idiomas es necesario que cualquier cambio esté claramente señalado
con el atributo lang:
Un ejemplo de código correcto sería el siguiente:
<p>
<q>Buenos días Philip</q>
<q lang="en">Good morning</q>. Respondió
Philip en inglés.
<q>¿Qué tal estás?</q>
<q
lang="fr">Très
bien.</q>
Volvió
a
responder, pero esta vez en francés.
</p>
Otro ejemplo de prioridad 1 sería la utilización del atributo alt para incorporar texto
equivalente al contenido de una imagen cuando se quieren utilizar gráficos; esto
permitiría que dispositivos o personas que no pueden visualizar los gráficos,
obtengan una representación alternativa textual. El código correspondiente sería:
<img src="wai.png" alt="Web Accessibility Initiative"
lang="en"/>
Referencias:
http://moodle2.unid.edu.mx/dts_cursos_mdl/pos/TI/LP/AM/01/Arquitecturas_y_tecnologias
_para_el_desarrollo_de_aplicaciones_web.pdf
http://w3c.es/Divulgacion/GuiasBreves/Estandares
http://w3c.es/Divulgacion/GuiasBreves/Accesibilidad
http://www.casupo.org.ve/CV/may/tesis/web.pdf
http://www.itlalaguna.edu.mx/academico/carreras/sistemas/prograweb/accesibilidad%20w
eb.ppt
http://servidoreswebalh.blogspot.mx/
http://servidoresswebb.blogspot.mx/2013/02/tipos-de-servidores-web.html
Descargar