Rmi (remote method invocation)
Sobre este documento/projeto
Apenas anotações, dúvidas, referências e pequenos códigos fontes de teste sobre este assunto enquanto vou estudando. (Ainda está um esboção!)
RMI - Pra que serve?/Vantagens/Características
Permite acessar objetos remotos dando a impressão ao programador de estar acessando um objeto local; Encapsula e esconde toda complexidade de conexão, etc, para o programador; Pode utilizar os protocolos JRMP ou IIOP (CORBA);
RMI - Como que funciona ?
+-----------------+ 2) lookup | | 1) rebind +-------------------->+ RMI Registry || | f() | |--->| |
| Cliente | | Stub | rede/internet | Skeleton | | Objeto Remoto |
| | Plataforma > Opções da VM;
Criar o arquivo $CATALINA_BASE/conf/jmxremote.password contendo: admin letmein
Criar o arquivo $CATALINA_BASE/conf/jmxremote.access containing: admin readwrite
Copiar a classe remote de implementacao para a pasta $CATALINA_BASE/lib (interface, stub e skel);
Pronto, só testar;
(Esboço, só para não esquecer. Depois passo a limpo direito !)
Minhas dúvidas
No caso, fica apenas uma única instancia do objeto remoto disponível para todos clientes ? E se cada cliente precisar de um instância separada ? Tanto GlassFish quanto TomCat utilizam possuem o RMI Registry mas o foco mesmo parece ser o JMX. O que é JMX ? JMX roda em cima do RMI ?
Tecnologias semelhantes/relacionadas
EJB JNI Webservices DCOM (Microsoft) ??? CORBA ??? JNDI Faça você mesmo
Referências
Internet
http://download.oracle.com/javase/tutorial/rmi/index.html http://www.guj.com.br/articles/37 http://sacrosanctblood.blogspot.com/2008/11/rmi-tutorial-rmi-and-tomcat.html