Tarea

viernes, 9 de octubre de 2009

Desarrollo de Aplicaciones Web

Con la introducción de Internet y del Web en concreto, se han abierto infinidad de posibilidades en cuanto al acceso a la información desde casi cualquier sitio. Esto representa un desafío a los desarrolladores de aplicaciones, ya que los avances en tecnología demandan cada vez aplicaciones más rápidas, ligeras y robustas que permitan utilizar el Web.

Afortunadamente, tenemos herramientas potentes para realizar esto, ya que han surgido nuevas tecnologías que permiten que el acceso a una base de datos desde el Web, por ejemplo, sea un mero trámite. El único problema es decidir entre el conjunto de posibilidades la correcta para cada situación.

El viejo CGI ha cumplido con el propósito de añadir interactividad a las páginas Web pero sus deficiencias en el desarrollo de aplicaciones y en la escalabilidad de las mismas ha conducido al desarrollo de APIs específicos de servidor como Active Server Pages, ASP, y PHP, que son más eficientes que su predecesor CGI.

Para aprovechar el potencial de estas tecnologías y ofertar una solución de servidor más extensible y portable, Sun ha desarrollado la tecnología llamada servlet. Los servlets Java son muy eficientes, debido al esquema de threads en el que se basan y al uso de una arquitectura estándar como la JVM, Java Virtual Machine.

Otra nueva tecnología viene a sumarse a las que extienden la funcionalidad de los servidores Web, llamada Java Server? Pages, JSP. Los JSP permiten juntar HTML, aplicaciones Java, y componentes como las Java Beans creando una página Web especial que el servidor Web compila dinámicamente en un servlet la primera vez que es llamada.

‘+¿Qué es la Web 2.0?+‘

La Web 2.0 es la representación de la evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final. El Web 2.0 es una actitud y no precisamente una tecnología.

Cuando el web inició, nos encontrábamos en un entorno estático, con páginas en HTML que sufrían pocas actualizaciones y no tenían interacción con el usuario.

La Web 2.0 es la transición que se ha dado de aplicaciones tradicionales hacia aplicaciones que funcionan a través del web enfocadas al usuario final. Se trata de aplicaciones que generen colaboración y de servicios que reemplacen las aplicaciones de escritorio.

Todo inició cuando Dale Dougherty de O’Reilly Media utilizó este término en una conferencia en la que compartió una lluvia de ideas junto a Craig Cline de Media Live? en la que hablaba del renacimiento y evolución de la web. Constantemente estaban surgiendo nuevas aplicaciones y sitios con sorprendentes funcionalidades. Y así se dio la pauta para la Web 2.0 conference de 2004. Esta conferencia no solo fue exitosa sino que ya tuvo seguimiento en la Web 2.0 Conference del 2005 celebrada en Octubre.

En la charla inicial del Web Conference se habló de los principios que tenían las aplicaciones Web 2.0:

La web es la plataforma

La información es el procesador

Efectos de la red movidos por una arquitectura de participación.

La innovación surge de características distribuidas por desarrolladores independientes.

El fin del círculo de adopción de software (“Servicios en beta perpetuo”)

La Web 2.0 con ejemplos

La forma más fácil de comprender lo que significa la Web 2.0 es a través de ejemplos. Podemos comparar servicios web que marcan claramente la evolución hacia el Web 2.0:

Web 1.0 > Web 2.0

Doubleclick → Google Ad Sense? (Servicios Publicidad)

Ofoto → Flickr (Comunidades fotográficas)

Akamai → Bit Torrent? (Distribución de contenidos)

mp3.com → Napster (Descargas de música)

Britannica Online → Wikipedia (Enciclopedias)

Sitios personales → Blogs (Páginas personales)

Especulación con dominios → Optimización en motores de búsqueda

Page views → Cost per click

CMSs → Wikis (Manejo de contenidos)

Categorías/Directorios → Tagging

¿Qué tecnologías apoyan a la Web 2.0?

El Web 2.0 no significa precisamente que existe una receta para que todas nuestras aplicaciones web entren en este esquema. Sin embargo, existen varias tecnologías que están utilizándose actualmente y que deberíamos de examinar con más cuidado en busca de seguir evolucionando junto al web.

Algunas tecnologías que dan vida a un proyecto Web 2.0:

Transformar software de escritorio hacia la plataforma del web.

Respeto a los estándares del XHTML.

Separación de contenido del diseño con uso de hojas de estilo.

Sindicación de contenidos.

Ajax (Asincronical javascript and xml).

Uso de Flash, Flex o Lazlo.

Uso de Ruby on Rails para programar páginas dinámicas.

Utilización de redes sociales al manejar usuarios y comunidades.

Dar control total a los usuarios en el manejo de su información.

Proveer A Pis? o XML para que las aplicaciones puedan ser manipuladas por otros.

Facilitar el posicionamiento con URL sencillos.

¿En qué nos sirve la Web 2.0?

El uso de el término de Web 2.0 está de moda, dándole mucho peso a una tendencia que ha estado presente desde hace algún tiempo. En Internet las especulaciones han sido causantes de grandes burbujas tecnológicas y han hecho fracasar a muchos proyectos.

Además, nuestros proyectos tienen que renovarse y evolucionar.

El Web 2.0 no es precisamente una tecnología, sino es la actitud con la que debemos trabajar para desarrollar en Internet.

Tal vez allí está la reflexión más importante del Web 2.0 y como los webmasters deberían de prepararse. Yo ya estoy trabajando en renovar y mejorar algunos proyectos, no por que busque etiquetarlos con nuevas versiones, sino por que creo firmemente que la única constante debe ser el cambio, y en Internet, el cambio debe de estar presente más frecuentemente.

Cuando Tim Berners-Lee inventó la Web moderna en CERN, se pretendía que ésta sirviera como un sistema que hiciera posible que los documentos estáticos se almacenaran en un sistema basado en la red con vínculos al mismo. Con el paso de los años, se fueron incorporando innovaciones y el siguiente paso lógico fueron los documentos “activos” que se generan en el momento en que se solicitan, con información específica del momento o del usuario. Tecnologías como CGI activaron este aspecto. Más adelante, la capacidad para generar documentos en la Web se convirtió en algo primordial y la tecnología evolucionó de CGI, a Java, ASP y, posteriormente, a ASP.NET. ASP.NET supuso un hito en la capacidad de los desarrolladores para desarrollar aplicaciones web de calidad con un paradigma de desarrollo de servidores y con las mejores herramientas de la línea de productos Visual Studio.

La experiencia del usuario resultó ser una gran barrera en las aplicaciones web, donde las restricciones técnicas evitaban que éstas pudieran ofrecer la misma variedad de uso que una aplicación cliente con datos locales.

El objeto XML Http Request?, que Microsoft lanzó como parte de Internet Explorer en 2000, se convirtió en la base de la tecnología asíncrona de Java Script y XML (AJAX) que hizo posible que las aplicaciones web pudieran proporcionar una respuesta más dinámica a las entradas de los usuarios, mediante la actualización de pequeñas porciones de una página web sin necesidad de volver a cargar totalmente los contenidos. Las soluciones innovadores que se generaron con AJAX, como los mapas regionales de Windows Live, llevaron a las aplicaciones web a dar un paso adelante en su capacidad para lograr un uso similar a las aplicaciones cliente.

Silverlight representa el paso siguiente en el desarrollo del potencial de riqueza en utilización que los desarrolladores y diseñadores de aplicaciones pueden presentar a sus clientes. Esto se consigue permitiendo a los diseñadores expresar su creatividad y guardar su trabajo en un formato que funcione directamente en la Web. En el pasado, los diseñadores creaban un sitio web y ofrecían una utilización a los usuarios a través de herramientas que proporcionaban resultados variados, pero el desarrollador tenía que solventar las restricciones de la plataforma web siendo capaz de ofrecer tales resultados. En el modelo de Silverlight, los diseñadores pueden generar el tipo de utilización para el usuario que desean y expresarlo como XAML. Un desarrollador puede incorporar este XAML directamente en una página web mediante el tiempo de ejecución de Silverlight. De esta forma, ambos pueden trabajar más estrechamente que antes con el fin de proporcionar una utilización completa y variada al usuario.

Como XAML es XML, está basado en texto, lo cual proporciona una descripción de sus ricos contenidos fácil de inspeccionar y totalmente compatible con los firewall. Aunque se pueden usar otras tecnologías —como subprogramas en Java, Active X y Flash— para implementar contenidos más ricos que DHTML, CSS y Java Script, todas ellas envían contenidos binarios al explorador. Esto resulta difícil de auditar, sin mencionar la dificultad de actualización, ya que para cualquier cambio es necesario que la aplicación se vuelva a instalar, lo que no es tan fácil para el usuario y podría provocar estancamientos en las páginas. Cuando se usa Silverlight y es necesario realizar un cambio en el contenido enriquecido, se genera un nuevo archivo XAML en el servidor. La próxima vez que el usuario vaya a la página, se descargará este XAML y se actualizará la experiencia sin ninguna reinstalación.

En el núcleo de Silverlight está el módulo de mejora del explorador que genera XAML y ofrece los gráficos resultantes en la superficie del explorador. Se trata de una descarga pequeña (menos de 2 MB), que se puede instalar cuando el usuario se encuentra con un sitio con contenido de Silverlight. Este módulo expone el marco de trabajo subyacente de la página XAML a los desarrolladores de Java Script, de forma que se hace posible la interacción con el contenido en la página y, por tanto, el desarrollador puede, por ejemplo, escribir controladores de eventos o manipular los contenidos de la página XAML mediante el código de Java Script.