lunes, 10 de noviembre de 2014

Armazón de trabajo para aplicaciones web

En palabras de Mendoza, en la tesis de maestría escrita el año 2011 con el título “Definición de un framework para aplicaciones Web con navegación sensible a concerns”, el estado de las aplicaciones Web existentes, es el de servicios enfocados a ofrecer mejores soluciones al usuario final, brindando un ambiente similar al de las aplicaciones comunes de escritorio. Para esto es casi obligado el uso de técnicas tales como: Hojas de estilo, lenguajes de marcado válidos semánticamente, menor refrescamiento de pantalla, mayor intervención de programación del lado del cliente, vínculos limpios con significado semántico, entre otras; técnicas que resultan en aplicaciones más dinámicas e intuitivas para el usuario. Todo esto en contraste con el estado de la Web inicial, en la que el usuario se encontraba en un entorno estático, con páginas en lenguaje de marcado de hipertexto, sin programación del lado del servidor, que sufrían pocas actualizaciones y no tenían interacción con el usuario. Hace algunos años la construcción de sitios Web era exclusiva para desarrolladores con conocimientos de programación o de diseño, y el producto obtenido no siempre satisfacía las necesidades del cliente o del usuario final. Esto cambió radicalmente al entrar a escena los gestores de contenidos, que permiten la edificación rápida de un sitio Web, así como la actualización de sus contenidos de manera dinámica obteniendo la información desde una o varias bases de datos. La principal ventaja de estos sistemas, es que es posible que una persona realice todo el desarrollo sin necesidad de poseer conocimientos técnicos, y de una manera relativamente sencilla. En los últimos tiempos estos sistemas han evolucionado hacia wikis y redes sociales, donde los contenidos se actualizan de forma colaborativa por varios usuarios dentro de una comunidad y cuyo éxito ha transformado la manera en que se usaba Internet.

En el desarrollo tradicional de un sistema de información es indispensable la normalización de datos; según Martínez y sus colegas, en el artículo publicado el año 2010 con el título “Diseño de Framework Web para el Desarrollo Dinámico de Aplicaciones”, no importa cómo se manipule la información de una empresa u organización lo ideal es que esté estructurada de un modo conocido para manejarla, almacenarla, recuperarla. Para este proceso se definen modelos de datos con una determinada estructura, que habitualmente se convierte en tablas de una base de datos. Anteriormente, la única información estructurada en un sistema era la referente a “los datos”. El problema subsecuente a este es que un sistema es mucho más que datos, pues se encuentra compuesto de código fuente, bibliotecas, archivos de configuración, y otros. Todo este código generado y su orden mismo dependían directamente de los encargados de desarrollar el sistema y, desde la existencia de los primeros compiladores hasta la aparición de los primeros generadores de código comercial u orientado a “usuarios finales”, la generación de código era exclusividad de programas compiladores especializados.

Ante esta situación problemática surgen los llamados “Frameworks” o “Armazones de trabajo”, con el propósito de normalizar y estructurar el código del sistema, facilitando un esquema, un patrón, un esqueleto, para el desarrollo y la implementación de aplicaciones. Según Larman, en el libro publicado el año 2003 titulado “UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado”, el uso de armazones de trabajo para cualquier tipo de desarrollo reduce el tiempo de elaboración e implementación y ayuda a hacer una tarea mantenible y escalable, según las características del mismo.

Según Cavaness, en el libro escrito el año 2004 titulado “Programación de Jakarta Struts”, un armazón de trabajo se compone de varias clases o componentes reutilizables, cada uno de los cuales puede proporcionar una abstracción de algún concepto en particular. El armazón de trabajo define cómo estas abstracciones trabajan juntas para resolver un problema específico de software. Por su parte Bennett, en el artículo publicado el año 2009 titulado “¿Que es un framework Web y por que quisiera uno?, define a un armazón de trabajo para aplicaciones Web, como un conjunto organizado de bibliotecas y componentes personalizables e intercambiables que permite acelerar el proceso de desarrollo, reutilizando el código existente y además promoviendo buenas prácticas de ingeniería del software, tal es el caso del uso de los patrones de diseño. No existe una clasificación estándar y formal que se aplique a estas tecnologías, se habla de los orientados a la interfaz de usuario como el caso de Java Server Faces y por otra parte los orientados a la parte de control de eventos como Struts, pero es posible diferenciarlos con base en una serie de puntos comparativos.

Martínez y sus colegas, en el artículo citado anteriormente, mencionan que un armazón de trabajo agrega funcionalidad extendida a un lenguaje de programación, automatiza muchos de los patrones de programación para orientarlos a un determinado propósito, proporcionando una estructura al código, mejorándolo y haciéndolo más entendible y sostenible, y permite separar en capas la aplicación. En general, divide la aplicación en tres capas: (1) La lógica de presentación que administra las interacciones entre el usuario y el software. (2) La lógica de datos que permite el acceso a un agente de almacenamiento persistente u otros. (3) La lógica de dominio o de negocio, que manipula los modelos de datos de acuerdo a los comandos recibidos desde la presentación. Los armazones de trabajo Web pretenden facilitar el desarrollo de aplicaciones Web: Sitios Web, páginas Web, portales, intranets, etc. Actualmente, PHP es conocido por su simplicidad y es ampliamente utilizado en este campo del desarrollo de software Web. También es común el uso de otros lenguajes de “scripting” o interpretados como Perl, ASP ó JSP que permiten mayor facilidad de uso y flexibilidad para el rápido desarrollo de aplicaciones, pero al mismo tiempo tienden a producir código de difícil sostenimiento y poco eficiente. En este ámbito, los patrones de diseño más utilizados son aquellos que se centran en separar la presentación de la lógica.

No hay comentarios:

Publicar un comentario