Módulo 2 - Lectura 3.pdf
Document Details
Uploaded by ITKnow
Universidad Siglo 21
Tags
Full Transcript
Arquitecturas de las aplicaciones web Entre las consideraciones más importantes a tener en cuenta al momento de diseñar y desarrollar un sistema de información, encontramos la necesidad de definir su arquitectura y adoptar un modelo que pueda permitir dar una solución adecuada y óptima a la problemát...
Arquitecturas de las aplicaciones web Entre las consideraciones más importantes a tener en cuenta al momento de diseñar y desarrollar un sistema de información, encontramos la necesidad de definir su arquitectura y adoptar un modelo que pueda permitir dar una solución adecuada y óptima a la problemática que intentamos resolver. En esta lectura, presentamos cómo se clasifican las distintas arquitecturas de implementación de aplicaciones web en función de las características funcionales de sus componentes. Para trabajar los conceptos, analizaremos el caso SEGUX Compañía de Seguros descripto en la lectura: Aplicación web. Arquitectura aplicaciones web Lección 1 de 1 Arquitectura aplicaciones web Las aplicaciones web se basan en una arquitectura cliente-servidor. De hecho, se consideran como un tipo especial de esta. En una aplicación de este tipo se destacan dos componentes fundamentales: El cliente, implementado mediante un navegador web o browser. El servidor, denominado también servidor web. Dependiendo de cómo se implementan las funcionalidades básicas de la parte que corresponde al servidor, se obtienen distintas variantes de arquitectura posibles. Referencia caso de estudio Para el caso de estudio, uno de los aspectos más importantes a definir para la implementación del nuevo sistema es el tipo de arquitectura a utilizar. Para poder seleccionar cuál tipo de arquitectura resulta conveniente, es necesario tener en cuenta el documento de especificaciones del sistema. Por ejemplo, algunas de las consideraciones que se deben tratar son: tipo de aplicación a realizar, cantidad de accesos concurrentes, usuarios que van a tener acceso al sistema, seguridad, implementación de lógica de negocios, etc. Arquitectura con todo en un servidor Este tipo de arquitectura se basa en concentrar todas las funcionalidades en un único servidor. Es decir, el servicio HTTP, lógica de negocio, lógica de datos y base de datos, residen en un mismo equipo. En este caso, el software que brinda el servicio HTTP también gestiona la lógica de negocio. Las tecnologías que permiten este tipo de implementación son ASP y PHP. El siguiente gráfico muestra cómo se implementa este tipo de arquitectura. Figura 1: Arquitectura con todo en un servidor Fuente: Elaboración propia. Tecnologías utilizadas Para este tipo de implementación se utilizan las siguientes tecnologías: ASP: Active Server Pages – Es una tecnología de Microsoft que se implementa del lado del servidor para páginas web generadas dinámicamente. Este modelo permite la utilización de diversos componentes desarrollados como son algunos controles ActiveX o componentes del lado del servidor. PHP – Es un lenguaje de programación de uso general que se adapta especialmente al desarrollo web. El código PHP se procesa en el servidor web mediante un intérprete PHP. En el servidor web, el resultado del código PHP interpretado y ejecutado define la respuesta HTTP. Esta es una de las tecnologías más utilizadas en el desarrollo de aplicaciones web. Arquitectura con servidor de datos separado Para este tipo de implementación se toma como referencia la arquitectura todo en un servidor. Pero en este caso, la lógica de datos y los datos se separan del resto de las funcionalidades ya que se implementan en un servidor separado. El siguiente gráfico muestra cómo se implementa este tipo de arquitectura. Figura 2: Arquitectura con servidor de datos separado Fuente: Elaboración propia. Tecnologías utilizadas Para este tipo de implementación se utilizan las tecnologías ASP y PHP. Arquitectura con todo en un servidor con servicio de aplicaciones Este tipo de implementación es similar a la arquitectura todo en un servidor. La diferencia radica en que en este caso se implementa un servicio de aplicaciones que es el responsable de gestionar los procesos que implementan la lógica del negocio. El siguiente gráfico muestra cómo se trabaja en este tipo de arquitectura. Figura 3: Arquitectura con todo en un servidor con servicio de aplicaciones Fuente: Elaboración propia. En el gráfico se puede verificar que en un mismo servidor pueden coexistir los tres servicios, pero implementados en forma separada. Tecnologías utilizadas La tecnología empleada para este tipo de implementaciones es JavaServer Page (JSP). JavaServer Pages es una tecnología que permite crear páginas web dinámicas basadas en HTML y XML, entre otros tipos de documentos. JSP usa el lenguaje de programación Java y requiere un servidor web compatible con contenedores servlet, como por ejemplo Apache Tomcat (“JavaServer Pages”, 2020). Por sus características, JSP ofrece un buen desempeño y es más eficiente que otras tecnologías web. Una ventaja de JSP frente a otras alternativas es que se basa en el lenguaje Java, que es un lenguaje de propósito general y es apto para crear clases para manejo de lógica de negocio y acceso a datos, lo que posibilita separar en niveles las aplicaciones web y dejar la parte encargada de generar el documento HTML en el archivo JSP. Además, Java es portable, lo que posibilita la ejecución de las aplicaciones en distintas plataformas (“JavaServer Pages”, 2020). Tanto servlets como JSP permiten crear páginas web dinámicas en el servidor usando el lenguaje Java. Son similares a otros lenguajes como PHP o ASP, pero se diferencian de estos en que son más eficientes en el desarrollo de ciertas tareas, por ejemplo, conexión a base de datos y manejo de sesiones (“JavaServer Pages”, 2020). Arquitectura con servidor separado con servicio de aplicaciones En este caso, la arquitectura se basa en separar la base de datos en un servidor específico, pero mantiene el servicio HTTP y servicio de aplicaciones juntos. Este esquema se deriva de la arquitectura todo en un servidor con servicio de aplicaciones. La siguiente figura muestra el esquema correspondiente: Figura 4: Arquitectura con servidor separado con servicio de aplicaciones Fuente: Elaboración propia. Tecnologías utilizadas Este tipo de implementación utiliza la tecnología JSP. Arquitectura con todos los servicios separados En este tipo de arquitectura, todas las funcionalidades básicas del servidor web se separan en servidores específicos. Servicios HTTP, servicio de aplicaciones y base de satos se dividen como se representa en el siguiente esquema. Figura 5: Arquitectura con todos los servicios separados Fuente: Elaboración propia. Tecnologías utilizadas Al igual que en las otras arquitecturas, se utiliza tecnología JSP. Consideraciones El objetivo de separar las distintas funcionalidades es aumentar la escalabilidad del sistema con la finalidad de obtener un mayor rendimiento. Separar las funciones en distintos servidores, permite la configuración individual de cada uno para lograr una mejor respuesta. Como ejemplo, se puede establecer que para brindar un buen servicio HTTP se necesita de una computadora con buena conexión a Internet, pero sin grandes necesidades de hardware. Para el caso del servidor de base de datos, la configuración necesaria es diferente, ya que en este caso lo que se necesita es gran cantidad de memoria y capacidad de almacenamiento en su disco duro. Otra ventaja que se obtiene es a nivel de seguridad, ya que, al separar las funcionalidades, los servidores que no están conectados a Internet no son de fácil acceso. Referencia caso de estudio De acuerdo a las especificaciones definidas en el caso de estudio, el sistema debe servir como soporte a los procesos de negocio de la organización. Un detalle a tener en cuenta es que los nuevos procesos deben integrar a distintos actores, como son los empleados de la empresa, clientes y proveedores. Esto hace presumir que el sistema tendrá un nivel de uso muy importante, con gran concurrencia y volumen de datos. En función de las arquitecturas descritas, resulta conveniente seleccionar una arquitectura con implementación de servidores específicos para cada funcionalidad. Esta elección da la ventaja de obtener un mayor rendimiento y posibilidad de escalado del sistema. Tecnologías generación páginas web Existen distintas tecnologías que permiten la generación de páginas web. Cada una de ellas utiliza mecanismos que brindan ciertas condiciones de funcionamiento que las hacen aplicables a distintos tipos de arquitecturas. Web Server Scripting Consiste en el procesamiento de una petición realizada por un usuario, mediante la interpretación de un script en el servidor web, el cual genera dinámicamente páginas HTML como respuesta (“Script del lado del servidor”, 2020). El servidor web ofrece el servicio HTTP y, además, se encarga de ejecutar los procesos que corresponden a la lógica de negocio. La comunicación de la lógica con los datos se realiza mediante un mecanismo como ODBC. En muchos casos, la lógica de negocio se implementa a nivel de la base de datos mediante la utilización de los recursos existentes como son los procedimientos almacenados y triggers, entre otros. Dentro de esta categoría podemos ubicar ASP y PHP. Figura 6: Web Server Scripting Fuente: Elaboración propia. Servidor de aplicaciones Un servidor de aplicaciones es un servidor capaz de ejecutar ciertas aplicaciones en una red de computadoras. Se trata de un software que proporciona servicios de aplicación a las computadoras cliente. Generalmente, gestiona toda o la mayor parte de las funciones de la lógica de negocio y de acceso a los datos de las aplicaciones. Dentro de los principales beneficios de este tipo de implementación, encontramos la centralización y la disminución de la complejidad en el desarrollo de aplicaciones. Un aspecto importante a tener en cuenta es la flexibilidad que brinda, ya que permite separar completamente el servicio HTTP, la lógica de negocio y la lógica de datos. En esta categoría podemos encontrar JSP. Figura 7: Servidor de aplicaciones Fuente: Elaboración propia. Caché Server Pages (CSP) La tecnología CSP se caracteriza porque la lógica de negocio y la lógica de datos se concentran en el gestor de base de datos. Esta característica permite establecer una comunicación, entre procesos, mucho más ágil y rápida, ya que el gestor es el encargado de ejecutar los procesos que implementan la lógica de negocio. En este caso el servidor web es quien brinda el servicio HTTP. Figura 8: Caché Server Pages Fuente: Elaboración propia. Referencia caso de estudio Si elegimos una arquitectura con todas las funcionalidades separadas en servidores específicos, debemos seleccionar una tecnología adecuada que permita este tipo de implementación. En este caso, quien brinda mejor soporte a este tipo de arquitectura es la tecnología basada en JavaServer Page, ya que facilita la implementación de servidores de aplicaciones en forma separada. C O NT I NU A R