Direct Web Remoting , o DWR , es una biblioteca Java de código abierto que ayuda a los desarrolladores a crear sitios web que incluyen tecnología Ajax . [ 1 ] Permite que el código de un navegador web utilice funciones Java que se ejecutan en un servidor web como si esas funciones estuvieran dentro del navegador. El proyecto DWR fue iniciado por Joe Walker en 2004, y la versión 1.0 se lanzó el 29 de agosto de 2005.
Solicitud
- Código que permite a JavaScript recuperar datos de un servidor web basado en servlets utilizando principios Ajax.
- Una biblioteca de JavaScript que facilita al desarrollador web la actualización dinámica de la página web con los datos recuperados.
DWR adopta un enfoque novedoso para Ajax al generar dinámicamente código JavaScript basado en clases Java. [ 2 ] De esta manera, el desarrollador web puede usar código Java desde JavaScript como si fuera local al navegador web; mientras que, en realidad, el código Java se ejecuta en el servidor web y tiene acceso completo a los recursos del servidor web. Por razones de seguridad, el desarrollador web debe configurar con precisión qué clases Java se pueden exportar de forma segura (lo que a menudo se denomina web.xml o dwr.xml ).
Este método de transferencia remota de funciones de Java a JavaScript ofrece a los usuarios de DWR una experiencia muy similar a la de los mecanismos RPC convencionales como RMI o SOAP , con la ventaja de que se ejecuta a través de la web sin necesidad de complementos para el navegador web.
DWR no considera importante el protocolo del navegador web/servidor web y prefiere garantizar que la interfaz del programador sea intuitiva. El mayor desafío reside en combinar la naturaleza asíncrona de Ajax con la naturaleza síncrona de las llamadas a métodos Java convencionales.
En el modelo asíncrono, los datos de resultado solo están disponibles un tiempo después de la llamada inicial. DWR resuelve este problema permitiendo al desarrollador web especificar una función que se ejecutará cuando se devuelvan los datos mediante un parámetro de método adicional. Este método adicional se denomina Método de devolución de llamada . El valor devuelto por la función Java se pasará al método de devolución de llamada.
Aquí hay un ejemplo de función de devolución de llamada:
MJavaClassOnJs . getListProducts ( selectedCategory , { callback : function ( returnedList ) { dwr . util . addOptions ( myComboId , returnedList , "productId" , "productName" ) } })La función de devolución de llamada es aquella función dentro del objeto JSON que se pasa como parámetro adicional a la función remota.
Con la versión 2.0, DWR admite Comet (también llamado "Ajax inverso") [ 2 ] donde el código Java que se ejecuta en el servidor puede enviar deliberadamente JavaScript dedicado a un navegador.
Referencias
Bibliografía
Enlaces externos
- Ajax (programación)
- JavaScript
- Software XML
- Software que utiliza la licencia Apache.
- marcos de trabajo web
- Software de 2005
- Software libre programado en Java.