01 Fundamentos La aplicación se divide en un número de unidades.
• Cada unidad se coloca en una máquina diferente.
• Cada unidad se puede ejecutar en un sistema diferente. • Cada unidad puede ser programada en un idioma diferente. • Sommerville (2012): es aquel que implica numerosas computadoras. • Tanenbaum (2006): es una colección de computadoras independientes, que el usuario percibe como un único sistema coherente. • Coulouris (2011): es un sistema en que los componentes HW/SW ubicados en diferentes computadoras en red comunican y coordinan a través de pasos de mensajes. • Tanenbaum (2016): colección de sistemas autónomos que aparecen a sus usuarios como un único sistema coherente. • Concurrencia: cada computador puede realizar su trabajo y compartir recursos cuando sea necesario. • Carencia de reloj global: cuando los programas necesitan cooperar coordinan sus acciones a través del paso de mensajes. • Independencia de las fallas: cada componente del sistema puede fallar independientemente, dejando a los demás en funcionamiento. • Compartición de recursos (HW y SW) • Apertura: están diseñados en torno a protocolos estándar • Concurrencia: procesos se ejecutan al mismo tiempo en computadoras independiente en red. • Escalabilidad: el sistema puede crecer agregando nuevos recursos. • Tolerancia a fallas 1. Sistemas monolíticos (década de los 70). Utiliza un único nodo que aloja el GUI, BD y la lógica del programa. Considerado aquí por la programación modular. 2. Cliente servidor (década de los 80). Divide a los programas en dos componentes (nodos de ejecución). Lógica de la aplicación y acceso a datos. 3. Sistemas distribuidos con objetos. Uso de objetos distribuidos. Enterprise Java Beans, DCOM en lenguajes como Java y .Net permitio tener servidores de objetos distribuidos. 4. Sistemas de integración de aplicaciones. Evitar redundancia de datos y mejorar la administración de estos. Aparece términos de sistemas punto a punto, adaptadores y mediador de mensajes. 5. Arquitectura orientadas a servicios(SOA). Solución estándar para publicar, descubrir e interactuar con otros sistemas. • La aplicación se puede dividir en las capas de presentación, lógica de la aplicación y almacenamiento de datos. • Las capas pueden ser lógicas o físicas. • Con el patrón cliente/servidor la aplicación se divide en 2 partes, una actúa como cliente (realiza solicitudes al servidor) y otra como servidor (acepta y procesa peticiones). • Un mecanismo de comunicación entre cliente y servidor se denomina procedimiento de llamada remota (RPC). • RPC permite que un cliente llame a una función que es implementada y ejecutada por un computador remoto. • Una implementación de RPC en Java es RMI • Mecanismo RPC de Java • RMI permite que un objeto invoque métodos que se ejecutan en otra JVM. Se dan los 6 pasos para escribir el programa RMI.
1. Crear la interfaz remota
2. Proporcionar la implementación de la interfaz remota. 3. Compile la clase de implementación y cree los objetos stub y skeleton usando la herramienta rmic 4. Inicia el servicio de registro mediante la herramienta rmiregistry. 5. Crea e inicia la aplicación remota. 6. Crear e iniciar la aplicación cliente. 02 Códigos de ejemplo RMI Greeting vamos a analizarlo ! RMI Game vamos a analizarlo ! Gracias