Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ClaseNo3 DiseñoArquitectonico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Universidad Mariano Gálvez

Facultad de Ingeniería en Sistemas


Análisis de Sistemas II
Módulo I
Diseño Arquitectónico

MSc. Ing. Ricardo A. Aguirre M.


Catedrático
Universidad Mariano Gálvez
Diseño Arquitectónico

Tradicionalmente el diseño de software se ha realizado con arquitectura


monolítica, en la que el software se estructura de forma que todos los
aspectos funcionales quedan acoplados y sujetos en un mismo programa.

En este tipo de sistema, toda la información está alojada en un servidor, por lo


que no hay separación entre módulos y las diferentes partes de un programa
están muy acopladas. Esto genera un problema a largo plazo, ya que se trata
de un sistema no escalable de manera sencilla. Por eso aparece la
arquitectura de microservicios.
Una arquitectura de software, también llamada arquitectura lógica, consiste
en un conjunto de patrones coherentes y abstracciones que proporcionan
un marco definido y claro para interactuar con el código fuente del
software.

La arquitectura de un programa informático se selecciona y diseña en


función de los objetivos (requisitos) y las limitaciones. Los objetivos son
los prefijados para el sistema de información, pero no sólo los
funcionales, sino también otros objetivos como el mantenimiento, la
auditoría, la flexibilidad y la interacción con otros sistemas de
información.
La arquitectura de programas informáticos define, de manera abstracta, los
componentes que realizan alguna tarea de cálculo, sus interfaces y la
comunicación entre ellos.

Toda arquitectura debe ser implementable en una arquitectura física, que


consiste simplemente en determinar qué computadora se asignará a cada tarea.
Diseño arquitectónico informática

ARQUITECTURA DE APLICACIONES WEB

El diseño arquitectónico está vinculado a los objetivos establecidos para


una aplicación web, al contenido que se presentará, a los usuarios que la
visitarán y a la filosofía de navegación adoptada. Se debe identificar la
arquitectura de contenido y la arquitectura de la aplicación web.
ARQUITECTURA DE CONTENIDOS

La arquitectura de contenido se centra en la estructura de los objetos de


contenido para la presentación y la navegación, su importancia radica en que
denota estructuras que producen una mejor organización, etiquetado,
navegación y búsqueda de los objetos de contenido.
Componentes de la arquitectura de software

La arquitectura del software consiste en:

1. clientes y servidores.
2. bases de datos.
3. filtros.
4. niveles en sistemas jerárquicos.
5. Interacciones
Entre los componentes de la arquitectura de software hay un conjunto de
interacciones entre las que destacan :

1. llamadas de procedimientos.
2. comportamiento de las variables.
3. protocolos cliente-servidor.
4. transmisión asincrónica de eventos.
Diseño arquitectónico

Diseñar la interfaz de usuario de la aplicación web.

En el caso de un sitio web, esto se referiría al diseño del propio sitio web, tanto en su
aspecto visual (colores, imágenes, tipografía utilizada, posicionamiento de los diferentes
bloques de contenido dentro de las diferentes páginas, etc.), como en la estructuración
del contenido en diferentes secciones y apartados que pueden enlazarse a través de un
menú con las diferentes opciones disponibles.

Aquí entran en juego diferentes disciplinas como el diseño gráfico, la usabilidad, la


experiencia de usuario (UX), la interacción usuario-máquina, los mapas de sitios o
mapas web, etc., así como diferentes términos como HTML5, CSS, DOM, Javascript,
AJAX, estándares web, etc.
Diseño e implementación de la lógica de la aplicación

Es decir, el conjunto de funcionalidades que ofrecerá, como el procesamiento


de los datos introducidos por el usuario, el cálculo de los resultados de los
diferentes datos de entrada, el diseño y la ejecución de algoritmos, la
manipulación de la información almacenada en una base de datos, la ejecución
de diversas acciones como resultado del cumplimiento de diversas condiciones
o el desencadenamiento de algún evento, etc.

En otras palabras, la planificación y el diseño de lo que posteriormente se


llevará a cabo utilizando uno o más lenguajes de programación.
Decisiones en el diseño arquitectónico
Durante el proceso de diseño arquitectónico, los arquitectos del sistema deben tomar algunas
decisiones estructurales que afectarán profundamente el sistema y su proceso de desarrollo. Con
base en su conocimiento y experiencia, deben considerar las siguientes preguntas fundamentales
sobre el sistema:
1. ¿Existe alguna arquitectura de aplicación genérica que actúe como plantilla para el
sistema que se está diseñando?
2. ¿Cómo se distribuirá el sistema a través de algunos núcleos o procesadores?
3. ¿Qué patrones o estilos arquitectónicos pueden usarse?
4. ¿Cuál será el enfoque fundamental usado para estructurar el sistema?
5. ¿Cómo los componentes estructurales en el sistema se separarán en
subcomponentes?
6. ¿Qué estrategia se usará para controlar la operación de los componentes en el
sistema?
7. ¿Cuál organización arquitectónica es mejor para entregar los requerimientos no
funcionales del sistema?
8. ¿Cómo se documentará la arquitectura del sistema?
Arquitectura en capas

Las nociones de separación e independencia son fundamentales para el diseño


arquitectónico porque permiten localizar cambios.

El patrón MVC separa elementos de un sistema, permitiéndoles cambiar de forma


independiente. Por ejemplo, agregar una nueva vista o cambiar una vista existente
puede hacerse sin modificación alguna de los datos subyacentes en el modelo. El
patrón de arquitectura en capas es otra forma de lograr separación e independencia
Arquitectura de repositorio

Los patrones de arquitectura en capas y MVC son ejemplos de patrones en que la


vista presentada es la organización conceptual de un sistema. El siguiente
ejemplo, el patrón de repositorio, describe cómo compartir datos en conjunto de
componentes en interacción.
Arquitectura cliente-servidor

El patrón de repositorio se interesa por la estructura estática de un sistema sin mostrar su


organización en tiempo de operación.

El siguiente ejemplo ilustra una organización en tiempo de operación, de uso muy común para
sistemas distribuidos.
Arquitectura de tubería y filtro
El ejemplo final de un patrón arquitectónico es el patrón tubería y filtro (pipe
and filter). Éste es un modelo de la organización en tiempo de operación de un
sistema, donde las transformaciones funcionales procesan sus entradas y
producen salidas.

Los datos fluyen de uno a otro y se transforman conforme se desplazan a


través de la secuencia. Cada paso de procesamiento se implementa como un
transformador.

Los datos de entrada fluyen por medio de dichos transformadores hasta que se
convierten en salida. Las transformaciones pueden ejecutarse secuencialmente
o en forma paralela. Es posible que los datos se procesen por cada
transformador ítem por ítem o en un solo lote
¿Qué es una arquitectura de microservicios?

La arquitectura de microservicios es un método de desarrollo de aplicaciones


software que funciona como un conjunto de pequeños servicios que se ejecutan de
manera independiente y autónoma, proporcionando una funcionalidad de negocio
completa.

En ella, cada microservicio es un código que puede estar en un lenguaje de


programación diferente, y que desempeña una función específica.

Los microservicios se comunican entre sí a través de APIs, y cuentan con sistemas


de almacenamiento propios, lo que evita la sobrecarga y caída de la aplicación.
Ventajas

Modularidad: al tratarse de servicios autónomos, se pueden desarrollar y desplegar de forma


independiente. Además un error en un servicio no debería afectar la capacidad de otros
servicios para seguir trabajando según lo previsto.

Escalabilidad: como es una aplicación modular, se puede escalar horizontalmente cada parte
según sea necesario, aumentando el escalado de los módulos que tengan un procesamiento
más intensivo.

Versatilidad: se pueden usar diferentes tecnologías y lenguajes de programación. Lo que


permite adaptar cada funcionalidad a la tecnología más adecuada y rentable.
Rapidez de actuación: el reducido tamaño de los microservicios permite un desarrollo
menos costoso, así como el uso de “contenedores de software” permite que el despliegue
de la aplicación se pueda llevar a cabo rápidamente.

Mantenimiento simple y barato: al poder hacerse mejoras de un solo módulo y no tener


que intervenir en toda la estructura, el mantenimiento es más sencillo y barato que en
otras arquitecturas.

Agilidad: se pueden utilizar funcionalidades típicas (autenticación, trazabilidad, etc.) que


ya han sido desarrolladas por terceros, no hace falta que el desarrollador las cree de
nuevo.
Patrones Arquitectónicos

Un patrón arquitectónico es una solución general y reutilizable a un problema


común en la arquitectura de software dentro de un contexto dado.

Los patrones arquitectónicos son similares al patrón de diseño de software pero


tienen un alcance más amplio.
Patrón de capas
Este patrón se puede utilizar para estructurar programas que se pueden descomponer
en grupos de subtareas, cada una de las cuales se encuentra en un nivel particular de
abstracción. Cada capa proporciona servicios a la siguiente capa superior.

1. Capa de presentación (también conocida como capa UI )


2. Capa de aplicación (también conocida como capa de servicio )
3. Capa de lógica de negocios (también conocida como capa de dominio )
4. Capa de acceso a datos (también conocida como capa de persistencia )

Uso
1. Aplicaciones de escritorio generales.
2. Aplicaciones web de comercio electrónico
Patrón cliente-servidor
Este patrón consiste en dos partes; un servidor y múltiples clientes . El componente del
servidor proporcionará servicios a múltiples componentes del cliente.

Los clientes solicitan servicios del servidor y el servidor proporciona servicios relevantes a esos
clientes. Además, el servidor sigue escuchando las solicitudes de los clientes.

Uso
1. Aplicaciones en línea como correo electrónico, uso
compartido de documentos y banca.
Patrón maestro-esclavo
Este patrón consiste en dos partes; maestro y esclavos . El componente maestro
distribuye el trabajo entre componentes esclavos idénticos y calcula el resultado final
de los resultados que devuelven los esclavos.

Uso
En la replicación de la base de datos, la base de datos maestra se considera como
la fuente autorizada y las bases de datos esclavas se sincronizan con ella.
Periféricos conectados a un bus en un sistema informático (unidades maestra y
esclava).
Patrón del agente
Este patrón se usa para estructurar sistemas distribuidos con componentes
desacoplados.

Estos componentes pueden interactuar entre sí mediante invocaciones de


servicios remotos.

Un componente de intermediario es responsable de la coordinación de la


comunicación entre los componentes
Patrón de igual a igual
En este patrón, los componentes individuales se conocen
como pares . Los pares pueden funcionar tanto como un
cliente , solicitando servicios de otros pares, y como un
servidor , proporcionando servicios a otros pares. Un par
puede actuar como un cliente o como un servidor o como
ambos, y puede cambiar su rol dinámicamente con el
tiempo.
Patrón de intérprete
Este patrón se usa para diseñar un componente que interpreta
programas escritos en un lenguaje dedicado.

Especifica principalmente cómo evaluar las líneas de programas,


conocidas como oraciones o expresiones escritas en un idioma
particular. La idea básica es tener una clase para cada símbolo del
idioma.

También podría gustarte