es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers
comunicación entre procesos UNIX
programa o comando en ejecución.
Características:
• Un proceso consta de código, datos y pila.
• Los procesos existen en una jerarquía de árbol (varios Hijos, un sólo padre).
• El sistema asigna un identificador de proceso (PID) único al iniciar el proceso.
• El planificador de tareas asigna un tiempo compartido para el proceso según su prioridad (sólo root puede cambiar prioridades).
Ejecución en 1er plano:
proceso iniciado por el usuario o interactivo.
Ejecución en 2o plano:

proceso no interactivo que no necesita ser iniciado por el usuario.
Capas de Middleware:
Protocolos son reglas de comunicación que permiten el flujo de información entre equipos que manejan lenguajes distintos, por ejemplo, dos computadores conectados en la misma red pero con protocolos diferentes no podrían comunicarse jamás, para ello, es necesario que ambas "hablen" el mismo idioma. El protocolo TCP/IP fue creado para las comunicaciones en Internet. Para que cualquier computador se conecte a Internet es necesario que tenga instalado este protocolo de comunicación.
• Estrategias para mejorar la seguridad (autenticación, cifrado).
• Cómo se construye una red física.
• Cómo los computadores se conectan a la red.
Propiedades típicas
Si bien los protocolos pueden variar mucho en propósito y sofisticación, la mayoría especifica una o más de las siguientes propiedades:
• Detección de la conexión física subyacente (con cable o inalámbrica), o la existencia de otro punto final o nodo.
• Handshaking.
• Negociación de varias características de la conexión.
• Cómo iniciar y finalizar un mensaje.
• Procedimientos en el formateo de un mensaje.
• Qué hacer con mensajes corruptos o formateados incorrectamente (corrección de errores).
• Cómo detectar una pérdida inesperada de la conexión, y qué hacer entonces.
• Terminación de la sesión y/o conexión.
Sockets
son un sistema de comunicación entre procesos de diferentes máquinas de una red. Más exactamente, un socket es un punto de comunicación por el cual un proceso puede emitir o recibir información.
Fueron popularizados por Berckley Software Distribution, de la universidad norteamericana de Berkley. Los sockets han de ser capaces de utilizar el protocolo de streams TCP (Transfer Contro Protocol) y el de datagramas UDP (User Datagram Protocol).
API Java es una Interfaz de Programación de Aplicaciones (API: por sus siglas en inglés) provista por los creadores del lenguaje Java
DatagramSocket Esta clase realiza la mayor parte del trabajo de crear el socket. El servidor implementado escucha por el puerto de comunicaciones 8050, cuando le llega un datagrama procedente de algún cliente, imprime la dirección del cliente, y el puerto por la salida estandar del sistema, y luego envia un datagrama que contiene la fecha del sistema.
Streams tcp
Por el contrario, TCP es el protocolo orientado a la corriente, transporte flujos de bytes fiable y en orden. Sin embargo, TCP no permite que el receptor para saber cuántas