Aplicaciones web

Aplicaciones Web
Información sobre la plantilla
Apliaweb.jpeg
Concepto:Son un sistema Web donde la entrada del usuario (entrada de datos y navegación) afecta el estado del negocio.

Las Aplicaciones Web son un sistema Web donde la entrada del usuario (entrada de datos y navegación) afecta el estado del negocio. Esta definición intenta establecer que una aplicación Web es un sistema de software con estado de negocio, y por tanto puede elaborarse utilizando la metodología de trabajo que propone RUP, y utilizando el UML para los modelos. Para UML una Aplicación Web es un software diseñado para automatizar procesos cuyo resultado se entrega a través de Internet o una Intranet.

Ventajas de las Aplicaciones Web

Una de las ventajas más significativas de las aplicaciones Web, consiste en su forma de instalación y distribución, ya que normalmente instalar una aplicación Web consiste en configurar los componentes del lado del servidor en la red y NO es necesaria una instalación o configuración en el lado cliente. Además el protocolo principal de comunicación en una aplicación Web es HTTP, el cual funciona normalmente desconectado, es decir, el cliente hace una petición al servidor, este la procesa y le devuelve el resultado, terminando la comunicación entre estos. Las diferencias entre una aplicación Web y un sitio Web (aunque este sea dinámico), radican en su utilización. Las aplicaciones Web implementan “lógica de negocios” y su uso cambia el estado del negocio. Esto es importante porque define el enfoque del esfuerzo a la hora de modelarlas.

Arquitectura de las Aplicaciones Web

Para comprender como se pueden modelar las Aplicaciones Web, primero hay que entender cuál es su lógica de funcionamiento, y las partes que la integran.

La arquitectura básica de una aplicación Web incluye los navegadores, la red y el servidor Web.

El servidor Web distribuye páginas de información formateada a los clientes que las solicitan. Los requerimientos son hechos a través de una conexión de red, y para ello se usa el protocolo HTTP.

En algunos ambientes de desarrollo de aplicaciones Web, las páginas contienen código HTML y scripts dinámicos, que son ejecutados por el servidor antes de entregar la página, ejemplos: ASP (Active Server Pages), JSP (Java Server Pages), Cold Fusion, ISAPI, PHP (Hypertext Preprocessor), etc.

En muchas aplicaciones Web hay una capa intermedia, compuesta por un conjunto de componentes, que se ejecutan no necesariamente en el servidor Web, sino en otros servidores de aplicaciones. Esta capa encapsula la lógica del negocio, y, al ser componentes compilados puede contener objetos, con sus métodos y atributos (llamados business objects).

Cuando se está procesando la lógica de negocios se puede interactuar con otros recursos del lado del servidor como bases de datos y otros componentes de la capa intermedia.

Modelación de Aplicaciones Web

Modelar el interior del servidor Web, o los detalles del browser no ayudará a los diseñadores y arquitectos de la aplicación Web. Modelar las páginas, sus enlaces y todo el contenido dinámico de crear las páginas del lado del servidor y el contenido dinámico en el lado del cliente es muy importante. Según RUP, las aplicaciones Web pueden representarse típicamente por un conjunto de modelos: modelo de casos de usos, modelo de implementación, el modelo de despliegue, el modelo de seguridad, y algunos otros. Por ejemplo: En una aplicación Web, un diagrama de componentes puede verse como un Mapa del Sitio o de Navegación.

Un Mapa de navegación define la estructura jerárquica de páginas lógicas de la aplicación y los niveles de los usuarios en la navegación. Cada página lógica es candidata a convertirse en una interfaz de usuario.

Con el diagrama de componentes no podemos modelar las colaboraciones que ocurren en las páginas. Este nivel de abstracción, extremadamente importante para los diseñadores y desarrolladores, necesita ser parte del modelo, y para ello podemos crear un diagrama de clases para representar estas colaboraciones, donde cada página lógica puede ser representada como una clase. Pero que problemas nos encontramos al tratar de utilizar el diagrama de clases tradicional para modelar aplicaciones Web. Si una página Web es una clase en el modelo, entonces los scripts de la página podrían mapearse como operaciones de la clase. Cualquier variable de los scripts cuya alcance sea en la página podría mapearse entonces como un atributo de la clase, y los hipervínculos como relaciones entre las clases. La figura siguiente nos muestra cómo quedaría la relación de una página de búsqueda que genera una página de resultados correspondientes a esa búsqueda.

Al parecer todo ha sido muy sencillo, sin embargo se nos presenta un problema con este modelo. Todos sabemos que una página Web puede contener un conjunto de scripts que se ejecutan en el servidor (que son los encargados de preparar el contenido dinámico de la página) y un conjunto de scripts, completamente diferentes, que se ejecutan en el cliente, o sea en el Browser (JavaScript). Por lo tanto, cuando miramos una clase como una página Web en el modelo, habría una confusión pues no sabríamos distinguir que atributos, operaciones y a veces relaciones están activas en el servidor (cuando se está preparando la página) y cuales están activas cuando el usuario está interactuando con la página en el navegador cliente. Por este motivo no podemos mapear una página Web como una clase UML pues no comprenderíamos bien el sistema.

Para resolver este problema los especialistas del Rational decidieron modelar los aspectos del lado del servidor como una clase y los aspectos del lado del cliente como otra clase; para ello se plantearon la creación de una extensión al modelo de análisis y diseño que permitiera representar el nivel de abstracción adecuado, y la relación con los restantes artefactos de UML.

Actualmente el UML tiene varios mecanismos de extensión que fueron definidos para extender su semántica en aquellas situaciones en las que no es posible capturar todas las características de una determinada arquitectura o dominio en particular.

Fuentes

  • Jim Conallen, Building Web Applications with UML, Object Technology Series by Addison Wesley Longman, 1999
  • Jim Conallen, UML Extension for Web Applications 0.91, 22-Mar-1999.
  • Jim Conallen, Modeling Web Application Architectures with UML, Rational Software, June 1999 http://www.rational.com/media/uml/resources/documentation/27662_webapps.pdf
  • Stan Ward, Per Kroll, Building Web Solutions with the Rational Unified Process: Unifying the Creative Design Process and the Software Engineering Process