miércoles, abril 09, 2008

Un dia sin CSS

Nos unimos a un dia sin CSS, la verdad que no se muy agradable mi blog.. jajaaja
9 de abril, 3er. CSS Naked Day

Este año, en vez de ser día 5 (como los anteriores), será el día 9 de abril de 2008.

Hace casi un año, los desarrolladores web desnudamos nuestras webs convirtiendo internet en un gran playa nudista de contenido sin estilo, este año no va a ser menos, el día 5 de abril volveremos a unirmos para enseñar a todo el mundo que el contenido es el rey.

El día 9 de abril se celebra el CSS Naked Day, un día en el que nos deshacemos de nuestros estilos y capeamos el temporal con lo que realmente debe tener relevancia en toda web, el contenido.
¿Como participar?

Para participar en este día, únicamente debes eliminar todos los estilos CSS que compongan tu página para que pierda completamente el estilo y que se base enteramente en su estructura.

miércoles, abril 02, 2008

SOA + RIA [ Emisor, receptor y mensajes!]



[ Abstract ]
La evolución de las arquitecturas empresariales están forzando a un cambio radical en la forma de pensar las aplicaciones web, hoy no solo no se piensa en un solo origen de datos sino que además se requiere completa independencia del lenguaje a utilizar. Es por esto que ahí se crea un nuevo nicho de Frameworks web que Appcelerator viene a cubrir.

[ Resumen ]

Las Arquitecturas Orientadas al Servicios o SOA ya están aquí y están marcando el paso, hoy que una empresa no este implantando esta visión o no este planificando llegar a ella es impensado. Los cambios vertiginosos del mercado y la gran interoperabilidad de estos hacen casi imposible operar sin la visión de servicios. Por otro lado las interfaces de usuario son cada vez mas sofisticadas lo que demandan un gran esfuerzo en su construcción, y si a esto le agregamos que deben soportar la adaptación con servicios provenientes desde distintas organizaciones esto se complejiza.

Es por ello que ha nacido Appcelerator un framework que viene a unir estos dos mundos RIA + SOA un nicho que hasta hace poco estaba desocupado y que este framework supo llenar de una excelente manera, pasemos a verlo…

La globalización ha hecho evolucionar la comunicación de una manera sorprendente, hoy las empresas para poder ser competitivas no solo deben ofrecer buenos servicios sino que también deben ser permeables a otras organizaciones, colaborando entre si para la generación alianzas o simplemente para externalizar ciertos servicios. Esto empuja a las organizaciones a depurar sus mecanismos de comunicación he integración, donde SOA a dado una respuesta concreta solucionando muchos de los problemas tecnológicos que las aquejan. Por otro lado las tecnologías web también han dado su golpe y gracias al conjunto de soluciones RIA (Aplicaciones Ricas de Internet) se han logrado aplicaciones web mucho mas usables y versátiles.

Sin embargo toda esta evolución nos ha planteado un nuevo escenario donde la interoperabilidad de los servicios ha hecho que no estemos preocupados concretamente de las plataformas que los proveen, dando lugar a que las aplicaciones que consumen estos servicios estén construidas en una fauna de lenguajes en crecimiento (Java, .Net, Ruby, PHP, etc).

La proliferación de lenguajes en la organización trae como consecuencia la utilización de mas de un framework para la generación de aplicación RIA por ende nace la necesidad de tener personal capacitado en todas estas tecnologías, lo que a su vez genera un riesgo para la mantención de las aplicaciones y su evolución.

Para evitar tener este riego una nueva solución tecnológica ha visto la luz en el mercado, la cual permite la construcción de soluciones RIA asumiendo la complejidad de la diversidad de lenguajes proveedores de servicios. Esta solución es un framework multilenguaje para la construcción de aplicaciones RIA, basado en una Arquitectura Orientada a Mensajes.

Appcelerator es el nombre que la compañía con el mismo nombre le ha dado al framework, es una herramienta open source, que nos permitirá asumir la complejidad de estandarizar la forma en la que se construyen las aplicaciones RIA en nuestra organización.

Appcelarator esta basado en una arquitectra orientada a mensajes o lo que quiere decir que toda la plataforma está manejada por mensajes, los cuales permiten la comunicación entre el modelo y a su vez entre los componentes o partes que conforman la interface RIA a travez de estos mensajes. Estos mensajes son de tamaño pequeño lo que hacen que la comunicación sea rápida y eficiente. Una gran característica que Appcelerator logro es que los elementos HTML pueden enviar o recibir mensajes para cambiar su aspecto (mensajes locales) o para solicitar datos al Appcelerator Service (mensajes remotos), el cual es el responsable de gestionar todos los mensajes de la aplicación a/hasta los clientes.

La arquitectura de Appcelerator esta formado por tres componentes principales

  • SDK (Software Developer Kit) RIA

  • SOA Integration Point

  • Appcelerator Plug-in Architecture

El SDK RIA o kit de desarrollo de software RIA esta formado por el Appcelerator Widget Framework, un lenguaje de exprecion web, el Client Message Broker, y SOA Integration Points.

Appcelerator Widget Framework

Consiste en una API javascript que nos permite la construcción de widbet´s RIA. Con esta API podemos crear nuevos componentes visuales o reutilizar (envolviendo) componentes de terceros como los de DOJO, YUI, ExtJS o Flex. Sin embargo este framework contiene componentes ya creados y listos para ser usados en nuestras aplicaciones dándonos la libertad de utilizar lo ya existentes o construir nuestros propios compontes visuales.

Su utilización es muy sencilla y consta de agregar un nuevo espacio de nombre a nuestras páginas WEB por medio de la siguiente línea:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:app="http://www.appcelerator.org">


Luego utilizamos los tag´s comenzando con el prefijo app, quedando nuestro código de la siguiente manera:


<app:calendar title="Pick a Date" on="l:show.calendar then execute" inputId="mydate">

</app:calendar>

<input type="text" id="mydate" value="click me" on="focus then l:show.calendar"/>




Aprovechando la capacidad de generación de eventos de los componentes HTML como un “onFocus” y la capacidad de enviar mensajes (gracias a Appcelerator) podemos aplicar patrones de diseño que nos ayudaran a escribir aplicaciones mucho más mantenibles con respecto a sus antecesoras.

Para el manejo de eventos y el envió de mensajes locales y remotos el framework nos proporciona un lenguaje de expresión web muy simple e intuitivo. Gracias a este lenguaje podremos manejar eventos, manipular el árbol DOM y usar Ajax. Utilizar este lenguaje es tan simple que, con solo agregar el atributo “on” en una etiqueta HTML ya estamos listos para escribir nuestra expresión web, un detalle muy importante es que no hace falta la utilización de java script lo que descongestiona el código de fallas asociadas a este lenguaje de scripting.

Su estructura se basa en el siguiente esquema

on="[condición] then [acción]"
Dentro de las condiciones que podemos capturar se encuentran, click, focus, blur, change, keyup y algunas de las acciones que se pueden disparar son effect[el nombre de un efecto], value, hide, show, toggle[display].

Esto hace que la escritura de aplicaciones ricas de internet sea una tarea divertida y fácil.

Este lenguaje de expresión web depende directamente del Client Message Broker, este componente se encarga de realizar la orquestación de los mensajes, estableciendo la forma de ejecución (asincrónica, sincrónica) y su alcance (local, remoto).

En el siguiente grafico observamos como el Message Broker orquesta un mensaje local.


La siguiente imagen muestra como es resuelto el envió de un mensajes donde se involucra procesamiento de mensajes locales y remotos.




Este componente nos abstrae de todos los aspectos que se ven involucrados a la hora procesar el conjunto de datos que son necesarios para generar el contexto en el envió y recepción de mensajes, haciendo que su utilización sea sumamente sencilla. Podemos observar en las imágenes que el cliente no se preocupa de indicar si el mensaje es local o remoto.

Dado que Appcelerator es multilenguaje el Client Message Broker para desempeñar su tarea necestia de la colaboración de un componente llamado SOA Integration Point, el cual esta formado por un conjunto de herramientas que son las encargadas de realizar la integración entre los mensajes enviados por el Clint Message Broker y el backend que procesa estos mensajes.

Este componente nos permite escribir nuestros servicios en cualquiera de los siguientes lenguajes Java, PHP, Ruby, .NET, Python y Perl. Para cada uno de estos lenguajes este componente nos provee un mecanismo muy simple de declaración de mensajes, donde el también se encarga del marshalling de los datos involucrados en dicho mensaje y el tiempo de vida de los mismos.


Appcelerator Plug-in Architecture

Gracias a la visión de acoplabilidad de Appcelerator, es posible integrarlo con herramientas como Spring, Hibernate, Web Services, etc. Esto es posible gracias a una lista extensa de plug-in´s que hacen que la integración con estas tecnologías sea sencilla y mantenible.



Con todas las características que vimos de Appceleratos podemos concluir que es una herramienta poderosa que esta camibiando la forma de hacer aplicaciones web empresariales, no solo por su versatilidad y curva de aprendizaje baja sino que también por su característica de ser multilenguaje que favorece a la no proliferación de frameworks web dentro de la organización, homogenizando la forma en la que se construyen las RIA.

Esta claro que no podemos asegurar que el futuro se escribirá en Appcelerator pero si que el le esta marcando el paso a los demás frameworks exitentes en el mercado. Sabemos que el fututo esta en SOA ya que la tangenciabilidad con el negocio que esta arquitectura nos ofrece es altamente demandada en las organizaciones asi que lo que claramente lo que podemos esperar es que los demás competidores de Appcelerator evolucionen hasta esta arquitectura. El primer pasó ya esta dado y muy firme por lo tanto quienes adopten esta tecnología pronto verán los frutos muy rápidamente.

Tomas Vera