Please enable JavaScript.
Coggle requires JavaScript to display documents.
Patrones y Antipatrones en las Arquitecturas de Software - Coggle Diagram
Patrones y Antipatrones en las Arquitecturas de Software
Antipatrones
Se corresponden a las malas experiencias ya que reúnen soluciones que han producido efectos negativos.
La problemática
aquélla con el impacto negativo
La refactorizada
aquélla que transforma la situación negativa en una más saludable
Patrones
Se corresponden con las buenas experiencias, ya que reúnen resoluciones a problemas recurrentes encontrados en el diseño de software orientado a objetos.
Optimización de caché. Wrappers.
Optimización de caché
Acorta tiempo de exploración
Optimiza los sistemas de archivos compartidos remotos
Reduce el tamaño de caché
Wrappers
Concepto
Hacen referencia a programas o códigos que rodean otros
componentes de programa
Ejemplos
Wrappers para acceder a bases de datos
Wrappers en la programación orientada a objetos
Wrappers como traductores de entradas de
usuarios
Wrappers para diseñar documentos
HTML
Wrappers TCP en sistemas Linux
Programación Orientada a Aspectos
es un paradigma de programación que permite una adecuada modularización de las aplicaciones y posibilita una mejor separación de responsabilidades
Aspecto
funcionalidad transversal que será implementada de forma separada.
Punto de corte
es el que se encarga de especificar mediante expresiones regulares en qué parte del programa se debe de insertar un aspecto.
Consejo
es el código que ejecutará el
aspecto
Ventajas
Provee una fuerte herramienta para modularizar programas sin importar lo extensos y complicados que estos sean.
Vuelve más limpio el código fuente.
Permite agilizar el proceso de creación de
programas
Puede mezclarse con cualquier otro paradigma
de programación.
Permite la comunicación entre diferentes lenguajes de programación que comparten aspectos
Inversión de control e inyección de dependencias
¿Qué es inversión de control?
Es un principio de diseño de software en el que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales.
Relación
La Inversión de control es el concepto central del Framework de Spring y usa la implementación por Inyección de dependencias
¿Qué es inyección de dependencia?
Este principio establece que los módulos de alto nivel de un software no deben depender de módulos de bajo nivel, sino que ambos deben depender de abstracciones.
Ventajas
El bajo acoplamiento entre los componentes
Fácil de adaptar en múltiples lenguajes de programación
Facilidad para pruebas
Más mantenible a medida que
va creciendo
Frameworks
Es un esquema
(un esqueleto ,un patrón)
para el desarrollo y/o la
implementación de una aplicación.
Ejemplos
Ruby on Rails
ofrece un marco para el desarrollo completo de una aplicación web.
JavaServer Faces
está más orientado a la interfaz de usuario.
¿Cuál es el sentido de un framework?
Necesita que esa información esté estructurada de un modo conocido para poder manejarla: almacenarla, recuperarla, y todos los “-arla” que se requieran.
¿Qué ventajas tiene utilizar un ‘framework’?
Las que se derivan de utilizar
un estándar; entre otras:
El programador no necesita plantearse una estructura global de la aplicación.
Facilita la colaboración. Cualquiera que haya tenido que “pelearse” con el código fuente de otro programador(¡o incluso con el propio ,pasado algún tiempo!
Es más fácil encontrar herramientas(utilidades ,librerías)
Balanceo de Carga
Ventajas
Transparente para el usuario
Funcionalidad permanente
Bajo costo
Evita la saturación de servidores
Métodos de Conexiones
Weighted LeastConnection
Las entregas dependen del peso y número que conexiones que tengan
Ip-hash
Las peticiones son atendidas según la
ip-address
, así son atendidas por un mismo servidor
LeastConnection
La atención de peticiones es atendida por el servidor con menos conexiones activas
Weighted Round-Robin
La entrega de peticiones depende del peso
Round-Robin
Peticiones distribuidas entre servidores de forma cíclica
Es un
método
para distribuir la carga de trabajo en varias computadoras separadas o agrupadas en un
clúster
Es exitoso sí
Mejora el desempeño del servicio
Evita la saturación
Minimiza los tiempos de respuesta
Formas de implementación
Basado en DNS
Basado en software
Dedicado
Attribute Driven Design (ADD):
Concepto:
método que mediante el análisis de los atributos de calidad definidos en la fase de requerimientos, obtiene una arquitectura inicial del sistema, identificando módulos, componentes y conectores.
“Plan,Do,and Check”
Do:
Los elementos son instanciados para satisfacer los atributos de calidad, así como los requisitos funcionales.
Check:
El resultado es analizado para determinar si los requisitos son satisfechos.
Plan:
son consideradas para seleccionar qué tipos de elementos se utilizan en la arquitectura.