Please enable JavaScript.
Coggle requires JavaScript to display documents.
Arquitecturas de software, image, image, image, image, imagen, imagen,…
Arquitecturas de software
Monolitica
Caracteristicas
Construccion del programa final a base de modulos compilados separadamente que se unen a traves del ligador
Buena definicion de parametros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento
Carece de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.
Es la arquitectura de los primeros sistemas operativos constituidos fundamentalemnte por un solo programa compuesto de un conjutno de ruinas entrelazadas de tal forma que cada una puede llamar a cualquier otra
Ventajas
Bueno para aplicaciones pequeñas.
Fácil de desarrollar.
Fácil de hacerle deploy.
Fácil trabajar solo o en equipos pequeños.
Desventajas
Difícil de mantener.
Costoso de mantener.
En caso de un error se puede caer toda la aplicación.
Mas difícil de testear.
Mas difícil de depurar.
Patrones
3 capas
Características
La arquitectura en tres capas lo que hace es dividir el sistema en tres partes diferenciadas, de tal forma que cada capa solo se comunique con la inferior.
Negocio
: En esta capa se gestiona la lógica de la aplicación. Es donde se dice que se hace con los datos.
Presentación
: En esta capa se crea la interfaz del usuario.
Persistencia
: Esta capa se encarga de guardar los datos.
Ventajas
Simplifica la comprensión y la organización del desarrollo de sistemas complejos.
Reduce las dependencias de forma que las capas mas bajas no son conscientes de ningún detalle de las superiores
Esta separación añade una enorme flexibilidad al diseño de la aplicación
Desventajas
No es recomendable usarla en sistemas de tiempo real como los de los coches o aviones.
Tipos de patrones
Aplicaciones estándar de línea de negocios que hacen más que sólo operaciones CRUD
Nuevas aplicaciones que necesitan ser construidas rápidamente
Equipos de desarrolladores inexpertos que aún no entienden otras arquitecturas
Aplicaciones que requieren normas estrictas de mantenimiento y comprobabilidad
Arquitectura Basada en Espacio (Cloud)
Ventajas:
Capacidad de adaptarse a entornos de constante cambio.
Acceso dinámico facilitando la recuperación y envío de datos a los servidores.
Alto rendimiento, gracias al acceso de datos en memoria y al almacenamiento en caché.
Gran escalabilidad gracias al casi nulo uso de BD centralizadas.
Patrones de uso
Recopliación de datos de gran volúmen, tales como clicks del y registros de los usuarios.
Redes sociales
Desventajas
Dependencia total de acceso a internet para el funcionamiento correcto de la app
Creación de archivos temporales para el futuro.
Características
Optima para apps con gran cantidad de volumen de usuarios
Alta escalabilidad, por el uso de datos replicados en memoria.
Diseñada para evitar u colapso bajo gran carga.
El procesamiento y almacenamiento es dividido entre múltiples servidores
Cliente - Servidor
Características
Es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
La interacción cliente-servidor es el soporte de la mayor parte de la comunicación por redes y ayuda a comprender las bases sobre las que están construidos los algoritmos distribuidos.
Consiste en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
Ventajas
Los sistemas construidos bajo este esquema tienen una mayor y mejor uso intuitivo para con el usuario.
Facilita la integración de nuevas tecnologías y el crecimiento de la infraestructura computacional
Facilita la integración entre sistemas diferentes y comparte información.
Desventajas
Cuenta con muy pocas herramientas para la administración y ajuste del desempeño de los sistemas
Se deben de tener estrategias para el manejo de errores y para mantener la consistencia de los datos
Difícil de mantener ya que implica la interacción de diferentes partes de hardware y de software
Dificultad para el trafico de datos
Patrones
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.