La idea central de este estilo arquitectónico es permitir la extensión de su
funcionalidad o personalización, pero respetando el principio Open-Closed, es decir, está abierto para extender la funcionalidad, pero cerrado para modificar su funcionalidad principal. De esta forma, se logra que los desarrolladores pueden crear plugins para agregar nueva funcionalidad o extender la existente, pero sin alterar la funcionalidad Core del sistema. Los ejemplos más claros de esta arquitectura son los IDE’s de desarrollo como Eclipse, Netbeans, Visual Studio, Visual Studio Code o los sistemas de ofimática como Word, Powerpoint, Excel, etc. Todas estas aplicaciones permiten que los desarrolladores creen nueva funcionalidad, la cual se instala para extender o agregar nuevas características. Estructura de los Sistemas Operativos Exokernel • Se refiere a un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts sobre OpenBSD y otros sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales. • Un sistema operativo se interpone entre las aplicaciones y el hw. • Elimina el concepto de abstracción sobre la cual corren las aplicaciones. • Se asegura de multiplexar el hw desnudo: a través de primitivas de hw, librerías a nivel de aplicación y servidores. • Ej: XOK con Exos (librería sos tipo Unix) de MIT . Aegis, Nemesis (Cambridge). • El servidor Cheetah se construye sobre XOK. • Es esencialmente la extensión de la filosofía de la arquitectura Risc en CPU al nivel del sistema operativo. Características • El exokernel es eficiente debido al número limitado de operaciones primitivas sencillas que aporta. • Debido al bajo nivel de seguridad en la multiplexación de los recursos de hardware proporciona baja utilización de los recursos del sistema.
• Abstracciones tradicionales como la Memoria
Virtual (VM) y los Interprocesos de Comunicación (IPC) pueden ser implementados de forma eficiente a nivel de aplicación, en donde podría extenderse fácilmente, especializarse o sustituirse. Estructura de los Sistemas Operativos SO Distribuido Ventajas Desventajas Estructura de los Sistemas Operativos SO Middleware • Un middleware es un software que se sitúa entre un sistema operativo y las aplicaciones que se ejecutan en él. Es, en esencia, una especie de “capa de traducción” oculta que permite la comunicación y la administración de datos en aplicaciones distribuidas. En otras palabras, es como una red de tuberías que conecta dos aplicaciones para que se puedan intercambiar fácilmente datos y bases de datos. Su uso permite a los usuarios hacer solicitudes como el envío de formularios en un explorador web o que un servidor web devuelva páginas web dinámicas según el perfil de un usuario. Tipos de Middleware • Transmisión de datos Para seguir entendiendo qué es un middleware hay que saber que, si bien las API son una manera de compartir los datos, otra forma es la transmisión de datos asíncrona, que replica un conjunto de datos en un almacén intermedio en el que los datos pueden compartirse entre varias aplicaciones. • Integración completa Las herramientas de integración de middleware conectan sistemas internos y externos esenciales. Las funciones de integración, como la mensajería empresarial, la capacidad de composición, la transformación y la conectividad, combinadas con la autenticación de SSO, permiten que los desarrolladores amplíen fácilmente las funciones a otras aplicaciones. • Optimización de las aplicaciones actuales El middleware admite que los desarrolladores transformen las aplicaciones monolíticas heredadas en aplicaciones nativas de la nube, lo que mantiene activas las herramientas importantes con un rendimiento mejorado y una mayor portabilidad. • Desarrollo de aplicaciones nuevas El middleware permite tiempos de ejecución conocidos y modernos para diversos casos prácticos. Los desarrolladores y los arquitectos pueden trabajar rápidamente en distintas plataformas, teniendo como referencia conjuntos de lenguajes de programación, marcos y tiempos de ejecución básicos.