// Armo filtros
var comboFilter = new Ext.form.ComboBox({
store: new Ext.data.JsonStore({
autoLoad: true,
url: 'services/sales/filter/brands.json',
root: 'data',
fields: ['id', 'name']
}),
valueField: 'id',
displayField: 'name',
triggerAction: 'all',
forceSelection: true,
mode: 'remote',
loadingText: 'Loading...'
})
Para mayor claridad estoy usando url amigables. La url services/sales/filter/brand.json me dice que quiero obtener del dashboard de ventas, el filtro de marcas, en formato json.
Spring, ademas de ser un IoC/DI container, provee una buena forma de manejar friendly urls. Vamos a explicar paso a paso como usar spring como un pegamento entre client side y server side.
1ro Configurar spring web para escuchar los request en /services:
2do Configurar spring mvc para que la url services/sales/filter sea resuelta con el controller OlapServiceController:
3ero Implementar OlapServiceController. Este es quien realiza la ejecucion del servicio (service layer) que devuelve el filtro y selecciona la vista filter2json.jsp para renderizar el filtro en formato json:
Algo interesante de esta implementación es el bajo acople que hay entre el front end (extjs) y backend (jsp, spring, java, mondrian, etc.). Trabajar con simples urls permite definir un punto de entrada y abstraer totalmente su implementación. Sería posible tener fácilmente más de un server resolviendo peticiones (si los servicios son stateless) o acceder al servicio en la nube y escalar ondemand.
Otra posibilidad interesante es al tener un front end estático, es posible aplicar técnicas de caché en el browser para disminuir la cantidad de request, o distribuirlo a través de una cdn.
Y por último sería "no tan difícil" darle features offiline a la aplicación usando google gears (http://gears.google.com/). Aunque sobre esto me gustaría profundizar un poco más en otro post.
No hay comentarios.:
Publicar un comentario