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:
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.
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
Comentarios
Publicar un comentario