En esta primera parte de Arquitecturas Web 2.0, voy a defender el porqué de estas arquitecturas y en que se diferencian de las arquitecturas de aplicaciones de escritorio. En las siguientes entregas comentaré una a una las arquitecturas que creo que son mas interesantes.
Crear Web 2.0 no es cuestión de tecnologías ni de interfaz de usuario unicamente como ya se discute en otras entradas de este blog, la diferencia la marca una arquitectura de la aplicación Web que nada tiene que envidiar a otras arquitecturas de aplicaciones de escritorio.
Hace un tiempo, los ingenieros se dedicaban a trabajar en empresas en las que podían participar en proyectos de aplicaciones de escritorio para poder ejercer de ingeniero y diseñar arquitecturas potentes. Las páginas Web, conste que no he dicho aplicaciones Web, se dejaba que lo hiciese cualquier persona a la que le gustara y se le diera bien el diseño gráfico, ya que servían para eso, es decir, para publicidad.
Desde que las nuevas tecnologías tanto para banda ancha como lenguajes de programación y servidores Web permiten hacer y pensar en cosas que antes no se planteaban, empezaron a surgir aplicaciones Web, ya el fin no es la publicidad, sino la funcionalidad. Desde ese momento el mundo de las aplicaciones Web capta más y más ingenieros, debajo de cada aplicacion Web hay una arquitectura software y hardware en algunoscasos que no difiere mucho de una aplicación de escritorio.
Ahora con el boom del Web 2.0 las arquitecturas de las aplicaciones se disparan en potencia mucho más arriba de las arquitecturas de una aplicacion de escritorio, para ver esto pongamos un ejemplo,
Tenemos que hacer una aplicación para almacenar información de los CDs que tenemos en una estantería, una cosa muy simple y que no merecería la pena perder mucho tiempo en crear grandes arquitecturas, pero como es un ejemplo, lo vamos a hacer. Si lo hacemos con una aplicación de escritorio pues haciendo una buena arquitectura podríamos hacer un modelo MVC o un modelo de capas, y en cuanto a conexiones, pues con tener conexión con la BD ya estaría todo. Esta aplicación de escritorio parece apetecible para un ingeniero ya que hay cosas interesantes que hacer.
Supongamos ahora que lo hacemos en aplicacion Web, entonces igualmente en nuestro servidor Web podríamos montar una arquitectura MVC o de capas con conexión a BD, esto sería lo que hace una aplicacion Web que no sea Web 2.0 ya que en base a unos parametros de entrada, ejecuta todo su modelo interno y genera un XHTML de salida. Entonces hasta este punto no hay mucha diferencia con una aplicación de escritorio, pero si introducimos el concepto Web 2.0 las cosas cambian, nuestra arquitectura de servidor que ya hemos pensado nos puede seguir valiendo ya que es bastante potente, lo único que hay que cambiar es la vista para que genere por ejemplo XML (este cambio es en cuanto a la arquitectura, queda claro que cambiarían
todos los servicios que ofrece el servidor, pero como estamos en fas ede diseño, pues no lo tengo en cuenta). Además de este servidor ahora tenemos que diseñar el cliente Web, este cliente puede tener una arquitectura MVC o de capas al igual que el servidor, javascript permite hacer esto con orientación a objetos, herencia, polimorfismo, etc. si utilizamos plataformas como dojo, prototype, etc. Entonces podemos decir que tenemos una arquitectura potente en servidor, una arquitectura potente en cliente y además tenemos conexión entre el cliente y el servidor, esto significa un protocolo de comunicación, y en el mundo de las arquitecturas esto significa un modelo cliente-servidor.
Todo sabemos que una aplicación Web es cliente-servidor, pero si implementamos aplicaciones Web tradicionales, ese mecanismo queda transparente al desarrollador y programador. Con aplicaciones Web 2.0 podemos conseguir diseñar un gran cliente-servidor y a la vez tener una arquitectura potente en cliente y otra en servidor. Parece mucho más interesante de desarrollar, y lo es.
Una ventaja que no suele comentarse de estas aplicaciones Web 2.0, es que si por ejemplo como hemos visto el servidor genera XML, entonces no solo es una aplicacion Web, sino que es un servidor orientado a los servicios, esto significa que construimos el servidor, despues el cliente que utiliza los servicios que ofrece el servidor, pero la utilidad del servidor no queda ahí, cualquier otra aplicación posterior o cualquier otra empresa que necesite utilizar nuestros servicios, refiriendome a los datos, es decir, el XML, para integrarlo en sus aplicaciones, lo harán sin tener que modificar nuestra aplicación lo más mínimo. Esta ventaja sería imposible de conseguir con una aplicación de escritorio y es una ventaja muy interesante en este mundo en el que se evoluciona hacia la globalización de la información, ¿no creeis?
Jose Carlos Calvo Tudela
Crear Web 2.0 no es cuestión de tecnologías ni de interfaz de usuario unicamente como ya se discute en otras entradas de este blog, la diferencia la marca una arquitectura de la aplicación Web que nada tiene que envidiar a otras arquitecturas de aplicaciones de escritorio.
Hace un tiempo, los ingenieros se dedicaban a trabajar en empresas en las que podían participar en proyectos de aplicaciones de escritorio para poder ejercer de ingeniero y diseñar arquitecturas potentes. Las páginas Web, conste que no he dicho aplicaciones Web, se dejaba que lo hiciese cualquier persona a la que le gustara y se le diera bien el diseño gráfico, ya que servían para eso, es decir, para publicidad.
Desde que las nuevas tecnologías tanto para banda ancha como lenguajes de programación y servidores Web permiten hacer y pensar en cosas que antes no se planteaban, empezaron a surgir aplicaciones Web, ya el fin no es la publicidad, sino la funcionalidad. Desde ese momento el mundo de las aplicaciones Web capta más y más ingenieros, debajo de cada aplicacion Web hay una arquitectura software y hardware en algunoscasos que no difiere mucho de una aplicación de escritorio.
Ahora con el boom del Web 2.0 las arquitecturas de las aplicaciones se disparan en potencia mucho más arriba de las arquitecturas de una aplicacion de escritorio, para ver esto pongamos un ejemplo,
Tenemos que hacer una aplicación para almacenar información de los CDs que tenemos en una estantería, una cosa muy simple y que no merecería la pena perder mucho tiempo en crear grandes arquitecturas, pero como es un ejemplo, lo vamos a hacer. Si lo hacemos con una aplicación de escritorio pues haciendo una buena arquitectura podríamos hacer un modelo MVC o un modelo de capas, y en cuanto a conexiones, pues con tener conexión con la BD ya estaría todo. Esta aplicación de escritorio parece apetecible para un ingeniero ya que hay cosas interesantes que hacer.
Supongamos ahora que lo hacemos en aplicacion Web, entonces igualmente en nuestro servidor Web podríamos montar una arquitectura MVC o de capas con conexión a BD, esto sería lo que hace una aplicacion Web que no sea Web 2.0 ya que en base a unos parametros de entrada, ejecuta todo su modelo interno y genera un XHTML de salida. Entonces hasta este punto no hay mucha diferencia con una aplicación de escritorio, pero si introducimos el concepto Web 2.0 las cosas cambian, nuestra arquitectura de servidor que ya hemos pensado nos puede seguir valiendo ya que es bastante potente, lo único que hay que cambiar es la vista para que genere por ejemplo XML (este cambio es en cuanto a la arquitectura, queda claro que cambiarían
todos los servicios que ofrece el servidor, pero como estamos en fas ede diseño, pues no lo tengo en cuenta). Además de este servidor ahora tenemos que diseñar el cliente Web, este cliente puede tener una arquitectura MVC o de capas al igual que el servidor, javascript permite hacer esto con orientación a objetos, herencia, polimorfismo, etc. si utilizamos plataformas como dojo, prototype, etc. Entonces podemos decir que tenemos una arquitectura potente en servidor, una arquitectura potente en cliente y además tenemos conexión entre el cliente y el servidor, esto significa un protocolo de comunicación, y en el mundo de las arquitecturas esto significa un modelo cliente-servidor.
Todo sabemos que una aplicación Web es cliente-servidor, pero si implementamos aplicaciones Web tradicionales, ese mecanismo queda transparente al desarrollador y programador. Con aplicaciones Web 2.0 podemos conseguir diseñar un gran cliente-servidor y a la vez tener una arquitectura potente en cliente y otra en servidor. Parece mucho más interesante de desarrollar, y lo es.
Una ventaja que no suele comentarse de estas aplicaciones Web 2.0, es que si por ejemplo como hemos visto el servidor genera XML, entonces no solo es una aplicacion Web, sino que es un servidor orientado a los servicios, esto significa que construimos el servidor, despues el cliente que utiliza los servicios que ofrece el servidor, pero la utilidad del servidor no queda ahí, cualquier otra aplicación posterior o cualquier otra empresa que necesite utilizar nuestros servicios, refiriendome a los datos, es decir, el XML, para integrarlo en sus aplicaciones, lo harán sin tener que modificar nuestra aplicación lo más mínimo. Esta ventaja sería imposible de conseguir con una aplicación de escritorio y es una ventaja muy interesante en este mundo en el que se evoluciona hacia la globalización de la información, ¿no creeis?
Jose Carlos Calvo Tudela
No hay comentarios:
Publicar un comentario