miércoles, 27 de agosto de 2014

Actividad #4


Aplicaciones web

En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.

Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.


 
Evolución de las aplicaciones web


La programación web es un término adecuado para describir el proceso general que engloba el diseño y la creación de un sitio web.

Hace algunos años, los sitios web no eran mucho más que folletos digitales. Actualmente los sitios son más grandes y complejos. 

Con la introducción de comercio electrónico y las páginas dinámicas, los sitios ya han dejado atrás los folletos y han pasado a ser auténticas aplicaciones de software.


La web 1.0
La Web 1.0 (1991-2003) es la forma más básica que existe, con navegadores de sólo texto bastante rápidos ya que es de sólo lectura. El usuario no puede interactuar con el contenido de la página (nada de comentarios, respuestas, citas, etc), estando totalmente limitado a lo que el Webmaster sube a ésta.

Algunos elementos de diseño típicos de un sitio Web 1.0 incluyen:
  • Páginas estáticas en vez de dinámicas por el usuario que la visita
  • El uso de framesets o Marcos.
  • Extensiones propias del HTML como <bilnk> y <marquee>, etiquetas introducidas durante la guerra de navegadores web.
  • Libros de visitas online o guestbooks
  • botones GIF, casi siempre a una resolución típica de 88x31 pixels en tamaño promocionando navegadores web u otros productos.
  • formularios HTML enviados vía email. Un usuario llenaba un formulario y después de hacer clic se enviaba a través de un cliente de correo electrónico, con el problema que en el código se podía observar los detalles del envío del correo electrónico.
  • No se podían adherir comentarios ni nada parecido
  • Todas sus páginas se creaban de forma fija y muy pocas veces se actualizaban.
  • No se trata de una nueva versión, sino de una nueva forma de ver las cosas.


La web 2.0

El término Web 2.0 comprende aquellos sitios web que facilitan el compartir información, la interoperabilidad, el diseño centrado en el usuario y la colaboración en la World Wide Web. Un sitio Web 2.0 permite a los usuarios interactuar y colaborar entre sí como creadores de contenido generado por usuarios en una comunidad virtual, a diferencia de sitios web estáticos donde los usuarios se limitan a la observación pasiva de los contenidos que se han creado para ellos. Ejemplos de la Web 2.0 son las comunidades web, los servicios web, las aplicaciones Web, los servicios de red social, los servicios de alojamiento de videos, las wikis, blogs, mashups y folcsonomías.


 
Servicios asociados:
  • Blogs: Un blog es un espacio web personal en el que su autor puede escribir cronológicamente artículos, noticias...(con imágenes y enlaces).
  • Wikis: Una wiki es un espacio web corporativo, organizado mediante una estructura hipertextual de páginas donde varias personas elaboran contenidos de manera asíncrona. 
  • Redes sociales: Sitios web donde cada usuario tiene una página donde publica contenidos y se comunica con otros usuarios. Ejemplos: Facebook, Twitter, Tuenti, Hi5, Myspace, etc. 
  • Entornos para compartir recursos: Entornos que nos permiten almacenar recursos o contenidos en Internet, compartirlos y visualizarlos cuando nos convenga. Existen de diversos tipos, según el contenido que albergan o el uso que se les da:
    • Documentos: Google Drive y Office Web Apps (SkyDrive), en los cuales podemos subir nuestros documentos, compartirlos y modificarlos.
    • Videos: Youtube, Vimeo, Dailymotion, Dalealplay... Contienen miles de vídeos subidos y compartidos por los usuarios.
    • Fotos: Picassa, Flickr... Permiten disfrutar y compartir las fotos también tenemos la oportunidad de organizar las fotos con etiquetas, separándolas por grupos como si fueran álbumes, podemos seleccionar y guardar aparte las fotos que no queremos publicar.
    • Agregadores de noticias: Digg... Noticias de cualquier medio son agregadas y votadas por los usuarios.
    • Almacenamiento online: Dropbox, Google Drive, SkyDrive
    • Presentaciones: Prezi, Slideshare.
    • Plataformas educativas
    • Aulas virtuales (síncronas)
    • Encuestas en línea


La web 3.0

Web 3.0 es una expresión que se utiliza para describir la evolución del uso y la interacción de las personas en internet a través de diferentes formas entre los que se incluyen la transformación de la red en una base de datos, un movimiento social hacia crear contenidos accesibles por múltiples aplicaciones non-browser, el empuje de las tecnologías de inteligencia artificial, la web semántica, la Web Geoespacial o la Web 3D.



Se basa en la idea de añadir metadatos semánticos y ontológicos a la World Wide Web. Esas informaciones adicionales —que describen el contenido, el significado y la relación de los datos— se deben proporcionar de manera formal, para que así sea posible evaluarlas automáticamente por máquinas de procesamiento. El objetivo es mejorar Internet ampliando la interoperabilidad entre los sistemas informáticos usando "agentes inteligentes". Agentes inteligentes son programas en las computadoras que buscan información sin operadores humanos. Con la web 3.0 se busca que los usuarios puedan conectarse desde cualquier lugar, cualquier dispositivo y a cualquier momento.

Entre sus innovaciones destacan:
·         Bases de datos
·         Inteligencia artificial
·         Web semántica y SOA
·         Evolución al 3D



La web 4.0

Las aplicaciones ya no estarán en nuestras PC’s, estarán en la internet y por ende en todos lados. Pasaremos de una red “tonta” a una red “inteligente” donde el objetivo primordial será el de unir las inteligencias donde tanto las personas como las cosas se comuniquen entre sí para generar la toma de decisiones. Para el 2020 o quizás antes se espera que haya “agentes” en la Web que conozcan, aprendan y razonen como lo hacemos las personas.La Web Ubicua es un concepto que está aún en desarrollo, pero me llama curiosamente la atención como se van complementando algunas tecnologías que nos permiten imaginar o soñar lo que podemos esperar en un futuro no muy lejano. Imagínese recibir información en su celular en la calle por la que camina y que su propio equipo le haga una reservación en el restaurant de la esquina con solo saber sus gustos.



Arquitectura de las aplicaciones web

La arquitectura tradicional de cliente/servidor tamién es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y se ejecuta en una PC o estación de trabajo y envía solicitudes a un servidor para ejecutar operaciones complejas.
Por ejemplo, una estación de trabajo utilizada como cliente puede ejecutar una aplicación de interfaz de usuario que interroga a un servidor central de ases de datos.

Ventajas del Sistema de Dos Capas:
El desarrollo de aplicaciones en un amibente de dos capas funciona adecuadamente, pero no es necesariamente lo más eficiente. Las herramientas para el desarrollo con dos capas son robustas y ampliamente evaluadas.
Las técnicas de ingeniería de software de prototipo se emplean fácilmente. Las soluciones de dos capas trabajan ien en ambientes no dinámicos estales, pero no se ejecutan bien en organizaciones rápidamente cambiantes.
Desventajas del sistema de dos capas:
Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distriución de la aplicación cuando se les hacen camios. Esto se dee al hecho de que la mayoría de la aplicación lógica existe en la estación de trabajo del cliente.
La seguridad del sistema en un diseño de dos capas es compleja y a menudo requiere administración de las bases de datos; esto es deido al número de dispositivos con acceso directo al amibente de esas bases de datos.
Las herramientas del cliente y de la base de datos, utilizadas en diseños de dos capas, constantemente están cambiando. La dependencia a largo plazo de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones.
Arquitectura de tres capas
La arquitectura de tres capas es un diseño reciente que introduce una capa intermedia en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura asada en Web transforma la interfaz de búsqueda existente (el explorador de Web), en la interfaz del usuario final.
La arquitectura de las aplicaciones Web suelen presentar un esquema de tres niveles
  • El primer nivel consiste en la capa de presentación que incluye no sólo el navegador, sino tamién el servidor web que es el responsale de presentar los datos un formato adecuado.
  • El segundo nivel está referido haitualmente a algún tipo de programa o script.
  • Finalmente, el tercer nivel proporciona al segundo los datos necesarios para su ejecución. Una aplicación Web típica recogerá datos del usuario (primer nivel), los enviará al servidor, que ejecutará un programa (segundo y tercer nivel) y cuyo resultado será formateado y presentado al usuario en el navegador (primer nivel otra vez).

Las diferentes capas suelen ser:
  • Capa 1: Cliente de aplicación: Navegador Web
  • Capa 2 : Servidor de Aplicaciones: Apache, Servidor Tomcat con servlet’s
  • Capa 3 : Servidor de Datos: base de datos, servidor SMTP…
Ventajas de la arquitectura de tres capas:
Las llamadas de la interfaz del usuario en la estación de trabajo, al servidor de capa intermedia, son más flexiles que en el diseño de dos capas, ya que la estación solo necesita transferir parámetros a la capa intermedia.
Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC.
El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseíado en formato modular.
La separación de roles en tres capas, hace más fácil reemplazar o modificar una capa sin afectar a los módulos restantes.

Desventajas de las Arquitecturas de Tres Capas y asadas en Web
Los ambientes de tres capas pueden incrementar el tráfico en la red y requiere más balance de carga u tolerancia a las fallas.
Los exploradores actuales no son todos iguales.
La estandarización entre diferentes proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas.