Hace poco tiempo, cuando surgieron los controles web en servidor, la idea fue una revolución y todo el mundo quiso probarlo. Esto permitía programar una aplicación web como si de una aplicación de escritorio se tratase, en lo que es gestión de eventos, estado de la aplicación, etc.
Más tarde con la salida de Atlas, los controles cogían una nueva dimensión, ya que cada control actúa por sí solo sin recargar página. Parecía que con eso todo estaba conseguido, ya que podemos programar creando controles y éstos interactuan con el usuario de forma asíncrona y lo que es mejor, todo es (casi) transparente al programador.
Como todo en esta vida, las cosas avanzan y la gente quiere cada vez más facilidades.
Sin esa arquitectura tan avanzada que usan esas plataformas, yo pensé en hacer controles javascript que por sí solos fuesen asíncronos, y pudiesen configurarse para su uso mediante mensajes javascript al control. Aunque la idea no es ni mucho menos de mi invención, la verdad es que no partí de ninguna base y los cree desde 0.
Lo bueno de estos controles es que por ejemplo hago un control que se encargue de mostrar la información actualizada de los foros de una web, de forma que en cualquier lugar de la web podemos colocar este control que nos diría por ejemplo el título del último post que se ha enviado.
Sin tener que pensar nada en cliente-servidor, en cualquier página de nuestro sitio, aunque sea una página plana HTML, podemos meter el control javascript con una sola línea de código:
var control = new Control();
Tras utilizar esta idea de forma masiva en un proyecto, te das cuenta de que esta forma de aislar funcionalidad dentro de las aplicaciones web, simplifica mucho las interacciones entre unos controles y otros.
Ese es el momento en el que piensas que te gustaría llegar más allá.
Imaginate que en tu web tienes este tipo de controles, no estaría mal que si alguien quisiese usar un control de los tuyos en su web, pudiera usarlos de forma similar. Me refiero a por ejemplo que en otra web inserten un control que nos diga el título del ultimo post del foro de tu web. Instanciar el control es igual que si fuese en tu web, solo hay que incluir el fichero javascript e instanciar el control.
¿Cual es el problema?, todo esto de instanciar un control remoto está resuelto y se hace transparente al programador, el problema es AJAX.
Los navegadores utilizan objetos para conectarse a un servidor remoto desde javascript y permitir así la actualización asíncrona y por tanto la filosifía AJAX. Estos navegadores imponen una restricción en esas conexiones remotas, solo pueden hacerse hacia el servidor en el que reside la web en la que se ejecuta.
Esa pequeña restricción que parece muy tonta, hace imposible que puedas meter en una web un control que informa de cosas de otra web. Un ejemplo muy sencillo sería un control que nos informe de la previsión meteorológica. Sería útil poder meter en tu web un control javascript que automáticamente se conectase al servidor correspondiente y mostrase la predicción meteorológica. Pero eso no se permite.
La única forma de poder hacer este tipo de cosas es colocando en tu servidor un proxy para el control, así si el control necesita comunicarse con www.tiempo.com/prediccion.php, y nuestro servidor está en www.miservidor.com, pues tenemos que hacer una página php o lo que nos guste, en nuestro servidor, conectamos el control javascript a esa página y ese php debe hacer una llamada a www.tiempo.com/prediccion.php y devolver lo mismo que devuelva esa página, es decir, hace de proxy.
Así que aunque se puede conseguir ejecutar algo similar, de esta forma se quita mucha transparencia e incluso llega a ser engorroso para el programador.
Si quitasen esa restricción, podrías montarte una web sin necesidad de lenguajes de servidor, directamente en HTML y javascript podrías montarte un sitio con foros, noticias, blogs, etc. Simplemente añadiendo controles que hayan creado ciertas personas para este fin.
A ver si quitan esa restricción pronto para poder dar un paso más en el abanico de servicios que pueden ofrecerse por la red
Hasta pronto
José Carlos Calvo Tudela
Más tarde con la salida de Atlas, los controles cogían una nueva dimensión, ya que cada control actúa por sí solo sin recargar página. Parecía que con eso todo estaba conseguido, ya que podemos programar creando controles y éstos interactuan con el usuario de forma asíncrona y lo que es mejor, todo es (casi) transparente al programador.
Como todo en esta vida, las cosas avanzan y la gente quiere cada vez más facilidades.
Sin esa arquitectura tan avanzada que usan esas plataformas, yo pensé en hacer controles javascript que por sí solos fuesen asíncronos, y pudiesen configurarse para su uso mediante mensajes javascript al control. Aunque la idea no es ni mucho menos de mi invención, la verdad es que no partí de ninguna base y los cree desde 0.
Lo bueno de estos controles es que por ejemplo hago un control que se encargue de mostrar la información actualizada de los foros de una web, de forma que en cualquier lugar de la web podemos colocar este control que nos diría por ejemplo el título del último post que se ha enviado.
Sin tener que pensar nada en cliente-servidor, en cualquier página de nuestro sitio, aunque sea una página plana HTML, podemos meter el control javascript con una sola línea de código:
var control = new Control();
Tras utilizar esta idea de forma masiva en un proyecto, te das cuenta de que esta forma de aislar funcionalidad dentro de las aplicaciones web, simplifica mucho las interacciones entre unos controles y otros.
Ese es el momento en el que piensas que te gustaría llegar más allá.
Imaginate que en tu web tienes este tipo de controles, no estaría mal que si alguien quisiese usar un control de los tuyos en su web, pudiera usarlos de forma similar. Me refiero a por ejemplo que en otra web inserten un control que nos diga el título del ultimo post del foro de tu web. Instanciar el control es igual que si fuese en tu web, solo hay que incluir el fichero javascript e instanciar el control.
¿Cual es el problema?, todo esto de instanciar un control remoto está resuelto y se hace transparente al programador, el problema es AJAX.
Los navegadores utilizan objetos para conectarse a un servidor remoto desde javascript y permitir así la actualización asíncrona y por tanto la filosifía AJAX. Estos navegadores imponen una restricción en esas conexiones remotas, solo pueden hacerse hacia el servidor en el que reside la web en la que se ejecuta.
Esa pequeña restricción que parece muy tonta, hace imposible que puedas meter en una web un control que informa de cosas de otra web. Un ejemplo muy sencillo sería un control que nos informe de la previsión meteorológica. Sería útil poder meter en tu web un control javascript que automáticamente se conectase al servidor correspondiente y mostrase la predicción meteorológica. Pero eso no se permite.
La única forma de poder hacer este tipo de cosas es colocando en tu servidor un proxy para el control, así si el control necesita comunicarse con www.tiempo.com/prediccion.php, y nuestro servidor está en www.miservidor.com, pues tenemos que hacer una página php o lo que nos guste, en nuestro servidor, conectamos el control javascript a esa página y ese php debe hacer una llamada a www.tiempo.com/prediccion.php y devolver lo mismo que devuelva esa página, es decir, hace de proxy.
Así que aunque se puede conseguir ejecutar algo similar, de esta forma se quita mucha transparencia e incluso llega a ser engorroso para el programador.
Si quitasen esa restricción, podrías montarte una web sin necesidad de lenguajes de servidor, directamente en HTML y javascript podrías montarte un sitio con foros, noticias, blogs, etc. Simplemente añadiendo controles que hayan creado ciertas personas para este fin.
A ver si quitan esa restricción pronto para poder dar un paso más en el abanico de servicios que pueden ofrecerse por la red
Hasta pronto
José Carlos Calvo Tudela
lo mismo pienso, pero el tema de esa barrera es el uso de recursos de paginas ajenas como propios, la redireccion a otros sitios y problrmas de seguridad. me parece.
ResponderEliminarfede