Que son los RMI y portlets

Hola que tal h estado buscando por la web que son los RMI (Java Remote Method Invocation) y los portlets, pero aun no me queda clara la idea de que son y para que sirven, ojala alguien pudiera explicar a detalle, y dar algunos ejemplos, es decir, como en que proyectos servirian ocupar estas API's

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

Documentacion de RMI y Portlets

El primer link no funka

El primer link no funka, estaria bien que alguien hablkara de su experiencia en el uso de estas APIS

Imagen de JaimeItlzc

RMI (Invocation Remote

RMI (Invocation Remote Method)

Los enfoques tradicionales a la ejecución de código en otras máquinas a través de una red siempre han sido confusos a la vez que tediosos y fuentes de error a la hora de su implementación. La mejor forma de pensar en este problema es que algún objeto resulte que resida en otra máquina, y que se pueda enviar un mensaje al objeto remoto y obtener un resultado exactamente igual que si el objeto viviera en la máquina local. Esta simplificación es exactamente lo que permite hacer el Remote
Method Invocation (RMI) de Java. Esta sección recorre los pasos necesarios para que cada uno cree sus propios objetos RMI.

Interfaces remotos

RMI hace un uso intensivo de las interfaces. Cuando se desea crear un objeto remoto, se enmascara la implementación subyacente pasando una interfaz. Por consiguiente, cuando el cliente obtiene una referencia a un objeto remoto, lo que verdaderamente logra es una referencia a una interfaz,que resulta estar conectada a algún fragmento de código local que habla a través de la red. Pero no hay que pensar en esto, sino simplemente en enviar mensajes vía la referencia a la interfaz.
Cuando se cree una interfaz remota, hay que seguir estas normas:
1. La interfaz remota debe ser public (no puede tener "acceso package" es decir, no puede ser
"amigo". De otra forma, el cliente obtendría un error al intentar cargar un objeto remoto que
implemente la interfaz remota.
2. La interfaz remota debe extender la interfaz java.rmi.Remote.
3. Cada método de la interfaz remota debe declarar java.rmi.RemoteException en su cláusula
throws, además de cualquier excepción específica de la aplicación.
4. Todo objeto remoto pasado como parámetro o valor de retorno (bien directamente o bien embebido
en un objeto local) debe declararse como la interfaz remota, no como la clase implementación.

He aquí una interfaz remota simple que representa un servicio de tiempo exacto:

/ / : cl5:rmi:ITiempoPerfecto.java
/ / La interfaz remota Tiempoperfecto.
package cl5.rmi;
import java.rmi.* ;
interface ITiempoPerfecto extends Remote {
long obtenerTiempoPerfecto() throws RemoteException;
1111:-

Dale un leida al libro Piensa en java esa informacion es de ahi.
Aqui te dejo el link de descarga: Thinking in Java en Español. Libro proporcionado por @Benek

Saludos.