Las tecnologías y las técnicas para construcción de software han evolucionado rápidamente en los últimos diez años. En el ámbito de aplicaciones web han surgido nuevas tecnologías que ahora compiten entre sí.
Los arquitectos y desarrolladores de software continúan desarrollando aplicaciones con prácticas antiguas, y otros, no conocen las alternativas y lo interesantes que pueden ser. Este trabajo está enfocado en comparar alternativas a J2EE para la construcción de sistemas empresariales. ASP.NET/C#, PHP y PHP/Zend Framework serán los protagonistas de las discusiones en este trabajo.
El análisis que aquí se desarrolla está basado en un vocabulario común y universal como es el de los patrones de diseño J2EE. La capacidad de cada tecnología será determinada por el nivel de soporte que brinde para la implementación de cada patrón de alto nivel. Es importante darse cuenta que los patrones de diseño J2EE recopilan un conjunto de buenas prácticas que se han venido desarrollando en los últimos años para el desarrollo de sistemas web. Aunque en la práctica muchas aplicaciones web se construyen con una arquitectura ad-hoc, la presencia de patrones de diseño conduce a soluciones estándares, fácilmente comprensibles y mantenibles por parte de los desarrolladores.
En la práctica, la elección de un determinado lenguaje de programación web viene dada por cuestiones tan importantes como puede ser la curva de aprendizaje de un determinado lenguaje, o las posibilidades hardware de los distintos servidores del sistema a construir. Sin embargo, en entidades de desarrollo lo suficientemente avanzadas, estas características pueden no ser determinantes. Surge por tanto la pregunta de si todos los lenguajes disponibles son capaces de implementar soluciones diseñadas acorde a patrones de diseño web de alto nivel. Precisamente este trabajo pretende responder esta pregunta. Además, en este trabajo, se analizan las principales fuentes de patrones de diseño J2EE (conocidos y usados como guía por desarrolladores y arquitectos alrededor del mundo). Durante este análisis se creará un mapping entre las distintas ontologías de patrones definidas por cada fuente. De esta forma, se proporciona un mecanismo que facilita la comprensión de estos patrones en general, y que permite una libre discusión a lo largo del documento.
Antecedentes
Los patrones fueron originados como conceptos de arquitectura civil alrededor del año 1977 por el arquitecto Christopher Alexander [Alexander 77]. Luego en el contexto de OOPSLA 87, Kent Beck y Ward Cunningham [Beck 87] empezaron a aplicar el concepto de patrones en la informática. En 1991 Erich Gamma y Richard Helm trabajaron en su primer catálogo, pero no se populariza hasta el año 1994, tras la publicación del libro maestro de patrones de diseño “Design Patterns” [Gamma 94]. Hoy en día existen diferentes tipos de patrones que buscan solucionar la mayoría de problemas que se presentan en el desarrollo de software. Algunos han sido diseñados específicamente para algunas arquitecturas, pero muchos de ellos se pueden implementar en diferentes lenguajes. En 2002 Martin Fowler et al. publicaron el libro “Patterns of Enterprise Application Architecture” [Fowler 02]. En este libro se divide la aplicación empresarial en diferentes capas y se enfatiza en los patrones relacionados con mappings entre objetos y bases de datos relacionales. El libro recogía una serie de buenas prácticas utilizadas por Martin Fowler y otros arquitectos software en el desarrollo de diversos sistemas software. En 2003 Deepak Alur, John Crupi y Dan Malks publicaron la segunda edición de su libro, publicado en 2001, enfocado a las buenas prácticas y estrategias de diseño para aplicaciones empresariales, “Core J2EE Patterns” [Alur 03]. En este trabajo se estudian 21 patrones de diseño con ejemplos de código y se ilustran los puntos clave para la refactorización de este tipo de aplicaciones utilizando patrones de diseño. El libro recogía una serie de buenas prácticas utilizadas en los desarrollos llevados a cabo por Sun Microsystems.
Ámbito de la contribución
Pueden surgir muchas dudas en el momento en que se va a iniciar un proyecto de software Web. Estos proyectos suelen delimitarse con tiempos críticos de entrega y deben ejecutarse disminuyendo gastos. Además, deben ser sistemas ligeros en consumo de recursos, escalables y capaces de intercambiar información. Por último, la mantenibilidad también es fundamental en este tipo de proyectos.
Esquema del trabajo
En este primer capítulo se presenta una motivación para el lector, un resumen de antecedentes relacionados
con el estudio de patrones de diseño y el ámbito de la contribución.
En el segundo capítulo se encuentra información relacionada con patrones de diseño actuales y los que
serán analizados en este trabajo. También, información acerca de las tecnologías analizadas. Todo esto
enmarcado por el estado del arte.
En el tercer capítulo se introduce el concepto de mapping entre ontologías y se define un mapping
semántico entre las ontologías inducidas. Este mapping es útil para desarrollar el trabajo dado que establece
un vocabulario común y una relación entre patrones de las diferentes fuentes.
En el cuarto capítulo se define una jerarquía de aplicaciones. Luego se establece una relación entre cada
tipo de aplicación con los patrones de diseño que corresponden, con respecto a la complejidad.
En el quinto capítulo se analizan los patrones de diseño relacionados con las aplicaciones con persistencia.
En el sexto capítulo, los relacionados con las aplicaciones con persistencia y concurrencia, y en el séptimo
capítulo, los relacionados con las aplicaciones con persistencia, concurrencia y mensajes.
Finalmente, en el octavo capítulo.
SIGUE APRENDIENDO DESCARGANDO EL ARCHIVO
No hay comentarios.