Prácticamente todos los grandes sistemas informáticos son sistemas distribuidos.
En un sistema distribuido el procesamiento de información se distribuye sobre varias computadoras en vez de estar confinado en una única máquina. Su principal ventaja Compartir recursos. Un sistema distribuido permite compartir recursos hardware y software (discos, impresoras, ficheros y compiladores) que se asocian con computadoras de una red. Las 2 arquitecturas más importantes de sistemas distribuidos son:
Cliente-Servidor. El sistema se ve como un conjunto de servicios que se
proporcionan a los clientes, que los utilizan. Arquitecturas de objetos distribuidos. No distingue entre servidores y clientes. El sistema es un conjunto de objetos que interaccionan, y cuya localización no interesa. No hay distinción entre un proveedor de servicios y el usuario de los mismos. Multiprocesador El modelo más simple de un sistema distribuido es un sistema multiprocesador donde el software está formado por varios procesos que pueden (aunque no necesariamente) ejecutarse sobre procesadores diferentes. ∗ Este modelo es común en sistemas grandes de tiempo real. ∗ Estos sistemas recogen información, toman decisiones usando esta información y envían señales para modificar el entorno del sistema. Cliente/Servidor En una arquitectura cliente-servidor, una aplicación se modela como un conjunto de servicios proporcionados por los servidores y un conjunto de clientes que usan estos servicios. ∗ Los clientes necesitan conocer qué servidores están disponibles, pero normalmente no conocen la existencia de otros clientes. ∗ Clientes y servidores son procesos diferentes. ∗ Varios procesos servidores pueden ejecutarse sobre un único procesador servidor; por lo tanto, no hay necesariamente una correspondencia 1:1 entre procesos y procesadores en el sistema. Objetos distribuidos En el modelo cliente-servidor de un sistema distribuido, los clientes y los servidores son diferentes. ∗ Los clientes reciben servicios de los servidores y no de otros clientes; los servidores pueden actuar como clientes recibiendo servicios de otros servidores, pero sin solicitar servicios de clientes. ∗ Los clientes deben conocer los servicios que ofrece cada uno de los servidores y deben conocer cómo contactar con cada uno de ellos. El Middleware El Middleware tiene la capacidad de conectar distintos sistemas y facilitar la interacción entre un cliente y cualquier aplicación que provee un servicio arquitectura cliente – servi dor, independientemente de la plataforma. Por lo tanto, se trata de un software de capa alta que se encuentra encima de la red física y las capas de transporte que se ubica entre el sistema operativo y las aplicaciones, manejando todas la tareas complejas requeridas para proveer el acceso a datos y aplicaciones entre plataformas. SERVICIOS Servicios de Comunicación: Estos servicios permiten la comunicación sistemas remotos sin preocuparse de la complejidad existente del ambiente de red. Servicios de Acceso a Datos: Estos servicios permiten ejecutar consultas o distintas actualizaciones tanto a archivos planos como de Bases de Datos, ubicados en uno o más servidores, asegurando la integridad de los datos y la disponibilidad de la aplicación. Servicios de planificación de ejecución: Estos servicios permiten ejecutar múltiples procesos simultáneamente, balancear la carga y priorizar tareas homogéneamente entre distintas plataformas. Servicios de Seguridad: Comúnmente, estos servicios, son empleados para conectar sistemas diferentes, en donde cada uno posee su propio sistema de seguridad.