Arquitectura de Software

    Es la planificación fundamentada en patrones, modelos y abstracciones teóricas, ya que esto es necesario para el desarrollo de software. Los patrones cuentan con soluciones reutilizables y generalmente para resolver problemas repetitivos, estos están más dirigidos a una estructura de nivel superior y génerica.


Direfentes Arquitecturas

Arquitectura en Capas:

    Es un modelo de diseño de software, cuya base está separado en diferentes funcionalidades del sistema, a esto se le llaman "Capas" o "Niveles". Cada uno se encarga de tareas específicas y estos se comunican con los niveles a través de las interfaces bien definidas.
Esta arquitectura tienes algunas ventajas y desventajas como por ejemplo:

Ventajas:

  • Claridad del diseño
  • Reutiliza código 
  • Escalabilidad
  • Modularidad
  • Mantenibilidad

Desventajas:

  • Sobrecarga de datos
  • Dificultad en aplicaciones pequeñas
  • Rigidez

                               

Arquitectura Orientada a Servcios:

    Es un diseño de software que te permite reutilizar los elementos, gracias a las interfaces, estos se mantienen separados, y permiten comunicarse entre sí, ya que trabajan en conjunto y así poder formar aplicaciones de software.

Ventajas:

  • Reutilizable
  • Es flexible y es adaptable
  • Escalable 
  • Mejora en la colaboración empresarial

Desventajas:

  • Es complejo
  • Rendimiento
  • Complejidad en la seguridad


Arquitectura Microservcios:

    Es un diseño de software que se basa en la construcción de una aplicación, esto se refiere a que son un conjunto de manera independiente y desplegables de manera individual. Estos se pueden desarrollar, implementar, operar, cambiar y volverlo a implementar sin afectar nada.

Ventajas:

  • Fácil para entender 
  • Se crean contenedores con rapidez
  • Se diseña, desarrolla e implementa y hace mas ágil

Desventajas:

  • Aplicación distribuida
  • Transacciones atómicas
  • Problemas de comunicación entre el cliente-microservicio

Arquitectura Monolitica:

    Es un diseño de software, la cual una aplicación o sistema se desarrolla de manera monolítica, en la cual las funcionalidades están interconectados y se ejecutan en un solo proceso.

Ventajas:

  • Facil de desarrollar y mantener
  • Escalabilidad
  • Eficiente en recursos

Desventajas:

  • Difícil de depurar y probar
  • Difícil de actualizar
  • Apliciones complejas no puede ser escalable



Arquitectura cliente-servidor:

    Se basa en una relación donde un cliente solicita información o servicios, y un servidor responde proporcionando esos recursos o realizando las acciones solicitadas. Esta separación de responsabilidades permite una distribución eficiente de tareas y recursos en una red, lo que es esencial en la informática moderna.

Ventajas:

  • Escalabilidad
  • Rendimiento
  • Facilita la administración
  • Mejora la seguridad

Desventajas:

  • Complejidad
  • Registro de latencia
  • Dependencia del servidor


Sistemas Embebidos:

    Son dispositivos electrónicos diseñados para realizar tareas específicas, estos estan presentes en muchos objetos de uso diario. Estos sistemas están ocultos a simple vista, pero su funcionalidad y su importancia son fundalmental para nuestro día.

Ventajas:

  • Confiabilidad
  • Eficiencia y rendimiento
  • Tamaño compacto
  • Costo

Desventajas:

    • Limitación de funcionalidad 
    • Desarrollo mas complejo
    • Difícil de actualizar
    • Escalabilidad limitada






    Comentarios

    Entradas más populares de este blog