La relación entre el tapiz y las aplicaciones web
La posición de Tapestry en el entorno general; la aplicación consta de páginas compuestas por componentes reutilizables. Las aplicaciones se ejecutan en servidores de aplicaciones. Para el servidor de aplicaciones, las aplicaciones Tapestry son simplemente otro tipo de servlets.
Las aplicaciones web generalmente se implementan en tres niveles, cada nivel aborda diferentes problemas en la aplicación.
Φ La responsabilidad de la capa de presentación es aceptar solicitudes y generar respuestas HTML.
Φ La responsabilidad de la capa de aplicación es ser responsable de toda la lógica empresarial. implementado usando EJB
Φ La responsabilidad de la capa de base de datos es almacenar datos de manera persistente
Tapestry es solo una aplicación de la capa de presentación, o Tapestry solo presenta la información procesada al usuario. usuario final, como HTML, además de manejar entradas de enlaces y formularios HTML. Tapestry no conoce ni se preocupa por la capa de aplicación, la capa lógica del dominio o la fuente de información. Se puede crear una aplicación Tapestry sobre bases de datos de archivos planos, bases de datos relacionales accesibles mediante JDBC y EJB distribuidos en redes de todo el mundo. Tapestry no tiene requisitos para su aplicación, solo se centra en cómo está organizada la capa de presentación.
El marco Tapestry llena un vacío oculto en el desarrollo de aplicaciones web: proporciona un marco consistente que es relevante para los desarrolladores. A menudo, cada desarrollador gestiona su parte del desarrollo por su cuenta y descuida otras disciplinas de ingeniería, lo que hace que el proyecto sea más riesgoso. Supongamos que el trabajo de construcción de un edificio se divide en la construcción de diferentes pisos y se asignan trabajadores para diseñar y construir los pisos individuales y finalmente ensamblarlos usando una grúa. A cada trabajador se le dio un boceto del edificio terminado y se le dijo qué hacer en ese piso: "Vamos a poner aquí el departamento de finanzas" o "Esta será la cafetería de la empresa". Puedes predecir qué tipo de problemas catastróficos surgirán; cada trabajador utilizará diferentes materiales y diferentes diseños. El hueco del ascensor no puede ser vertical, algunos trabajadores se olvidaron de dejar espacio para cables y tuberías y, peor aún, ¡se olvidaron de instalar ventanas! !
Sin embargo, muchas aplicaciones web todavía se desarrollan en condiciones caóticas similares a las descritas anteriormente. Las instrucciones están incompletas; diferentes desarrolladores abordan problemas similares de diferentes maneras. Algunos desarrolladores no prestan atención a detalles importantes de un proyecto o detalles menores en el desarrollo web. Debido a sus diferentes habilidades, algunos desarrolladores son buenos en JavaScript del lado del cliente, otros son buenos en el desarrollo interactivo de sistemas back-end, pero los gerentes de proyectos a menudo piensan que estas personas son completamente intercambiables. La mayoría de las veces, la carga del éxito o el fracaso de un proyecto recae directamente sobre los hombros del "equipo de jonrones" al final, quienes tienen que pasar el resto del tiempo pegando todas las piezas de código.
Continúa utilizando el ejemplo anterior como ejemplo. De cualquier manera, los trabajadores comenzaron a trabajar en un piso vacío donde ya se habían completado las tuberías y el cableado. Todo se convierte en una cuestión de instalar firmware sólo para esa capa, para que todo quede correctamente ensamblado al final del proyecto. Piense en los pisos como páginas, el firmware como componentes y la instalación como configuraciones, y podrá comprender lo que Tapestry ofrece a los desarrolladores.
Tapestry no es una panacea para resolver problemas de desarrollo; sin embargo, proporciona una forma consistente de describir la interacción entre las implementaciones de proyectos de aplicaciones web y los elementos proporcionados por diferentes desarrolladores. Las aplicaciones web no tienen un eje de ascensor, pero pueden tener, por ejemplo, una barra de navegación unificada, un formulario de consulta integrado o un botón de inicio de sesión unificado. Estos elementos pueden implementarse como componentes de Tapestry, probarse individualmente y reutilizarse en cada página, garantizando así una apariencia consistente y un comportamiento de interacción consistente.