Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sockets y RPC - Coggle Diagram
Sockets y RPC
Sockets
Definición: Interfaces controladas por el sistema operativo para la comunicación entre aplicaciones, permitiendo enviar y recibir mensajes.
Modelo Cliente/Servidor: Los sockets siguen este modelo, donde el servidor debe estar en ejecución primero y escucha en un socket específico para aceptar conexiones de los clientes.
Tipos de Servicios: Incluyen datagramas no confiables y orientados a un flujo de bytes y confiables.
Control:Desarrolladorey sistema operativo tienen roles en el manejo de sockets, con buffers variables en TCP para control de flujo y congestión.
Streams (Flujos): Secuencias de caracteres que fluyen hacia o desde un proceso, vinculadas a fuentes de entrada.
RPC
Definición: Mecanismo que permite a un programa llamar a un procedimiento en otro espacio de dirección (servidor) como si fuera local, esencial en sistemas distribuidos.
Funcionamiento: El cliente empaqueta y envía argumentos a un servidor, que ejecuta el procedimiento y devuelve el resultado.
Automatización: Los stubs (suplentes) se generan automáticamente, realizando tareas como localizar el servidor, empaquetar parámetros y construir/enviar mensajes.
Interfaces y Binding: Utiliza IDL (Lenguaje de Definición de Interfaces) para definir las interfaces y procedimientos. Soporta enlace dinámico y manejo de errores.
Evolución y Tipos: Las RPC han evolucionado hacia una orientación a objetos con sistemas como CORBA y RMI, y pueden integrarse con lenguajes de programación o utilizar IDL específicos.
Mejor para...
-
Serialización de Datos: Automatizada en RPC, debe ser manejada explícitamente en sockets.
Conexiones: Gestionadas explícitamente en sockets, transparentes en RPC.
Rendimiento: Sockets pueden ofrecer mejor rendimiento y control, con mayor complejidad; RPC ofrece facilidad de uso y abstracción, pero puede introducir sobrecarga adicional.
Diferencias
Sockets
-
Responsabilidad del Programador: Alta; el programador debe manejar explícitamente detalles de comunicación de red.
Aplicación: Ideal para situaciones que requieren control fino sobre la comunicación de red, como el desarrollo de protocolos personalizados y servidores de alto rendimiento.
RPC
-
Responsabilidad del Programador: Baja; la infraestructura RPC maneja automáticamente detalles de comunicación de red.
Aplicación: Adecuado para el desarrollo de aplicaciones distribuidas donde se desea una separación clara entre la lógica de la aplicación y la comunicación de red.