Transformaciones XSL (III): No es oro todo lo que reluce.
Una vez escuche a alguien decir, que todo proyecto informático que se precie de cierta complejidad "tiene gato encerrado", está esperándote y cuando menos te lo esperas .... salta a por ti
Pues bien, el uso de Translets no es una excepción.
El problema
En una situación de producción con elevada concurrencia (el caso aquí descrito se produjo en un entorno real cuando más de 2.000 usuarios estaban conectados de forma simultánea), según de que forma se haga uso de las transformaciones proporcionadas con XALAN se produce un colapso del sistema, que lleva la CPU de las máquinas al 100% de uso y estoy hablando de equipos dimensionados para alcanzar cargas muy superiores, del orden de 10 ~ 20.000 usuarios concurrentes.
Imprimir este artículo
Errores de una arquitectura de software
Eoin Woods, ha publicado un artículo acerca de lo que él considera los 10 errores mas comunes en una arquitectura de software - errores que habitualmente se aprenden por el camino mas difícil: la propia experiencia.
Desde mi punto de vista, si bien todos ellos son importantes (te recomiendo su lectura completa) algunos tienen más "peso" que otros:
- Desde luego el que hace referencia al alcance del sistema (apartado 1) es una verdad universal, más vale que antes de comenzar un proyecto tengas claro lo que quieres hacer y sobre todo lo que el cliente espera.
- Muy relacionado con "lo que el cliente espera" está el apartado 2: contar con todos los interesados. Es muy habitual que cuando comiences un proyecto trates con un "iluminado" que tiene claro como debería funcionar todo, pero que desgraciadamente no ha tenido en cuenta a los que realmente van a usar el sistema. Es una dificil situación, en estos casos la mano izquierda cuenta mucho ya que será necesario acceder a los verdaderos usuarios sin que por ello el "iluminado" se sienta menospreciado.
- El punto 5, aparentemente entra de lleno en conflicto con los plazos y los costes del proyecto. La experiencia demuestra que la formación del equipo de desarrollo, el realización de pruebas de concepto y la evaluación de alternativas de diseño son las mejores garantías de éxito de un proyecto.
- La escalabilidad y rendimiento (apartado 7) deben estar siempre en primer lugar a la hora de tomar decisiones de diseño. En contadas ocasiones una decisión del tipo "no pasa nada, guárdalo en sesión, serán pocos usuarios" no trae disgustos más tarde o temprano.
Imprimir este artículo