Compresión de datos en WebLogic Server
07/03/2014 -
Vamos a comentar las opciones disponibles si se desea reducir la cantidad de datos que WebLogic Server envía como respuesta, reduciendo de esta manera el tráfico de red.
Eliminar espacios en blanco
La primera opción consiste en eliminar todos los espacios en blanco existentes en la respuesta de WebLogic. Para conseguirlo es necesario configurar, a nivel de WebLogic, el fichero weblogic.xml añadiendo el parámetro compress-html-template como true:
1
2
3
4
5
6
7
|
< weblogic-web-app > < jsp-descriptor > < compress-html-template > true </ compress-html-template > </ jsp-descriptor > </ weblogic-web-app > |
Si de manera normal la respuesta de WebLogic tendría la forma:
1
2
3
4
5
|
< html > < body > ... </ body > </ html > |
Activando la eliminación de espacios en blanco, WebLogic la transforma en:
1
|
< html >< body >...</ body ></ html > |
Comprimir la respuesta de WebLogic Server
Para configurar la compresión en la respuesta es necesario utilizar software adicional. Existen 3 opciones, consistentes en hacer uso ya sea de un servidor web, de un balanceador de carga o de otro software embebido en la aplicación que realice la compresión:
1) Añadir, por encima de WebLogic Server, un servidor web Apache que haga de “intermediario” en las comunicaciones de WebLogic con los clientes. Se hará uso del módulo de Apache mod_deflate y del WebLogic Server Apache Plugin. Se puede consultar como configurar ambos en:
http://httpd.apache.org/docs/2.2/mod/mod_deflate.html
http://docs.oracle.com/cd/E23943_01/web.1111/e14395/apache.htm#CDEGCBAC
2) Añadir, por encima de WebLogic Server, un balanceador de carga WebCache. Tras realizar la instalación y comprobar que WebLogic y WebCache se comunican correctamente, configurar la compresión en WebCache tal y como se indica en:
http://sourceforge.net/projects/pjl-comp-filter/
3) Utilizar un compresor embebido en la aplicación, como PlanetJ:
http://sourceforge.net/projects/pjl-comp-filter/
Se incluye el fichero jar de PlanetJ en la aplicación, se modifica el fichero web.xml de la aplicación y se añade lo siguiente:
1
2
3
4
5
6
7
8
9
|
< filter > < filter-name >CompressingFilter</ filter-name > < filter-class >com.planetj.servlet.filter.compression.CompressingFilter</ filter-class > </ filter > ... < filter-mapping > < filter-name >CompressingFilter</ filter-name > < url-pattern >/*</ url-pattern > </ filter-mapping > |
Aunque las opciones del punto Comprimir la respuesta de WebLogic Server son excluyentes entre sí (no se recomienda utilizar más de una a la vez), sí que es posible combinarlas con la opción Eliminar espacios en blanco.