JavaTM Platform
Standard Ed. 6

������ javax.management.remote.rmi

RMI �������ǹ� JMX Remote API ʹ�õ�һ��������������ʹ�� RMI ���ͻ��������䵽Զ�� MBean ��������

����
          ����

�ӿ�ժҪ
RMIConnection RMI �������ڽ� MBeanServer ����ӿͻ���ת������λ�ڷ������˵� MBeanServer ʵ�֡�
RMIServer ���ڽ����� RMI �����������ӵ� RMI ����
 

��ժҪ
RMIConnectionImpl RMIConnection �ӿڵ�ʵ�֡�
RMIConnectionImpl_Stub  
RMIConnector һ����Զ�� RMI �����������ӡ�
RMIConnectorServer JMX API �����������������ڴ�Զ�̿ͻ��˴������� RMI �����ӡ�
RMIIIOPServerImpl һ�� RMIServerImpl����ͨ�� IIOP ���������ɴ�����ͬ�� IIOP ������ RMI ����Ŀͻ������ӡ�
RMIJRMPServerImpl һ�� RMIServer ������ͨ�� JRMP ���������ɴ�����ͬ�� JRMP ������ RMI ����Ŀͻ������ӡ�
RMIServerImpl ��ʾ�������������� RMI ����
RMIServerImpl_Stub  
 

������ javax.management.remote.rmi ������

RMI �������ǹ� JMX Remote API ʹ�õ�һ��������������ʹ�� RMI ���ͻ��������䵽Զ�� MBean ���������˰������� RMI ���������û�ֱ�����ÿͻ��˺ͷ�������������ࡣ��������������һЩ�࣬�û���Ȼ������ֱ��������Щ�࣬�����DZ��붨�����ǣ���Ҫ��Ϊ RMI �������IJ�ͬʵ��֮��ʵ�ֻ�������

RMI ������֧�� RMI �� JRMP �� IIOP ���䷽ʽ��

�� JMX Remote API �еĶ������������ƣ�RMI ������ͨ����һ����ַ������һ�� JMXServiceURL������ʹ��Ĭ�� RMI ���䷽ʽ (JRMP) �����������˵�ַ��Э�鲿��Ϊ rmi������ʹ�� RMI/IIOP ������������ַ��Э�鲿��Ϊ iiop��

RMI ��������ַ��������ʽ��

�������ݸ���ϸ�ؽ����˵�ַ��

���� RMI ������������

���� RMI ��������������һ�㷽����Ϊ���� JMXConnectorServerFactory.newJMXConnectorServer �ṩһ�� RMI ��������ַ���������������������ӵ� MBean ����������Ϊ�÷�����һ������ָ�������ߣ�Ҳ���Խ�������������ע��Ϊ�� MBean �������е� MBean��

������ͨ������ RMIConnectorServer ��ʵ������ʽ��ʹ�� MBean �������� createMBean ������������ RMI ��������������

ѡ�� RMI ���䷽ʽ

�ڴ���������������ʱ��ͨ���� serviceURL �� protocol ����ָ�� rmi �� iiop��������ѡ�� RMI ���䷽ʽ��JRMP �� IIOP����ͨ��ʵ���� RMIServerImpl ��һ���ʵ������ಢ�����ṩ�� RMIConnectorServer ���췽���������Դ����������������������

���������ɵ���������ַ

�����ָ���� serviceURL ������ URL ·�����ڿ�ѡ�������Ͷ˿ں󣩣�����δָ�� serviceURL����������������������һ���ɹ��ͻ�������ʹ�õ��� JMXServiceURL��

�û��ṩ�� serviceURL �е� host Ϊ��ѡ��������һ����临�Ƶ����ɵ� JMXServiceURL �У����������������Դ�����û����һ������ɵ� JXMServiceURL ������������������

�û��ṩ�� serviceURL �е� port Ҳ��һ����ѡ��������һ���ͬ�����临�Ƶ����ɵ� JMXServiceURL �У��������ɵ� JMXServiceURL �����˿ڡ�����ʹ�� rmi Э��� serviceURL������� port������ָʾ���ɵ�Զ�̶���Ӧ�ڸö˿��ϵ�������û���κ��������á�

����û��ṩ�� RMIServerImpl ������ JMXServiceURL�������ɵ� JMXServiceURL ������ host ���ְ����������������Ҳ��� port��

����Ŀ¼��Ŀ����������ַ

��Ϊ�ղŽ��ܵ����ɵ�ַ������һ�����������������������ʱ�ṩ�� serviceURL ��ַָ������Ŀ¼��ַ�����пɴ洢�ṩ�Ļ����ɵ� RMIServer ׮ģ�顣Ȼ��ͻ��˺ͷ�����������ʹ�ô�Ŀ¼��ַ��

��������£�serviceURL ��������������ʽ֮һ��

    service:jmx:rmi://host:port/jndi/jndi-name
    service:jmx:iiop://host:port/jndi/jndi-name
    

���� jndi-name ��һ�����ṩ�� javax.naming.InitialContext.bind ���ַ�����

ͬ����host �� :port ���ɺ��ԡ�

������������������Э�飨rmi �� iiop�������� rmi�������� port������У����� RMIServerImpl�������������������������Ӵ˶���ʹ���� toStub ��������һ��׮ģ�鲢ʹ�ø����� jndi-name ����ö���ͬ��ҲҪ�ο��� JNDI API ��������ԡ�

���磬���� JMXServiceURL Ϊ��

      service:jmx:rmi://ignoredhost/jndi/rmi://myhost/myname
      
�������������������� RMIJRMPServerImpl ��ʹ�ø� JNDI ���Ʊ�����׮ģ��
      rmi://myhost/myname
      
����ʾ���������� myhost ��Ĭ�϶˿��� RMI ע����е� myname �ע�⣬RMI ע���ֻ�����ӱ�������ע�ᡣ�������������£�myhost ��������������������������������

�ڴ� JMXServiceURL �У���һ�� rmi: ָ�� RMI ���������ڶ��� rmi: ָ�� RMI ע�����

����һ�����ӣ���� JMXServiceURL Ϊ��

      service:jmx:iiop://ignoredhost/jndi/ldap://dirhost:9999/cn=this,ou=that
      
��������������������� RMIIIOPServerImpl ��ʹ�ø� JNDI ���Ʊ�����׮ģ��
      ldap://dirhost:9999/cn=this,ou=that
      
����ʾ LDAP Ŀ¼�е� cn=this,ou=that ��Ŀ����Ŀ¼���������� dirhost �Ķ˿� 9999 �ϡ�

��� JMXServiceURL ��

      service:jmx:iiop://ignoredhost/jndi/cn=this,ou=that
      
��������������������� RMIIIOPServerImpl ��ʹ�ø� JNDI ���Ʊ�����׮ģ��
      cn=this,ou=that
      
Ҫ���������������������JNDI API ���뾭���ʵ����ã����ṩ�й�Ҫʹ�õ�Ŀ¼����Ϣ��

��Щʾ���У������� ignoredhost δ������������������ͻ���ʹ�á��ɽ�����ԣ����磺

      service:jmx:iiop:///jndi/cn=this,ou=that
      

���ǣ������������������е�������ʹ����������һ��������������������ͨ����ͬ��Ŀ¼���������ơ�

������������������

ʹ��Ĭ�ϵ� JRMP ���䷽ʽʱ����ʹ��Ϊ RMIConnectorServer ���췽�������� environment �е� jmx.remote.rmi.client.socket.factory �� jmx.remote.rmi.server.socket.factory ����ָ�� RMI �׽��ֹ�������Щ���Ե�ֵ�����ͱ���ֱ�Ϊ RMIClientSocketFactory �� RMIServerSocketFactory����Щ�����ڴ����������������� RMI ����ʱʹ�á�

���� RMI �������ͻ���

RMI �������ͻ���ͨ��ʹ�� JMXConnectorFactory �Ҿ���Э�� rmi �� iiop �� JMXServiceURL ���й��졣

��� JMXServiceURL �ɷ��������ɣ��������е�“���������ɵ���������ַ”��������ͻ��˽���Ҫֱ�ӻ��ӵشӷ�������ȡ��ֵ��ͨ������������ JMXServiceURL �洢��һ���ļ�����ҷ������Ա���ʹ�á�

��� JMXServiceURL ʹ��Ŀ¼�﷨���������е�“����Ŀ¼��Ŀ����������ַ”��������ͻ��˿��øոս��ܵķ�����ȡ��ֵ�����߿ͻ��˺ͷ��������ܶ�֪��Ҫʹ�õ��ʵ�Ŀ¼��Ŀ�����磬��� Whatsit ������������������ʹ������ myhost �� RMI ע����е� whatsit-agent-connector ��Ŀ����ͻ��˺ͷ�������֪���ʵ��� JMXServiceURL Ϊ��

    service:jmx:rmi:///jndi/rmi://myhost/whatsit-agent-connector
    

��� RMI ׮ģ�������Ϊ RMIServer�������ʹ�� RMIConnector ���ʵ����췽��ֱ�ӹ��� RMI ���ӡ�

Ϊ RMI/IIOP ������ָ��һ�� ORB

ʹ�� IIOP ���䷽ʽʱ���ͻ��˺ͷ�������ʹ������ java.naming.corba.orb ָ��Ҫʹ�õ� ORB�����������������ӵ� ORB �Ķ�������ʱ��Ϊ start���������ͻ������ӵ� ORB �Ķ�������ʱ��Ϊ connect����� java.naming.corba.orb ���԰����ڻ��� Map �У�����ֵ��һ�� ORB������������ IIOP Stub�����򣬽�ͨ������ org.omg.CORBA.ORB.init((String[])null,(Properties)null) ����һ���µ� org.omg.CORBA.ORB��λ��ͬһ JVM �еĺ��� RMI �������ͻ��˻�����������ô� ORB�����߿���ͬ���ķ�ʽ������һ�� ORB��

���ָ���� java.naming.corba.orb ���Ե�������ָ��һ�� ORB�����׳� IllegalArgumentException��

�� IIOP Զ�̶���Stub �� Server���ڱ����뵽 RMIConnector �� RMIConnectorServer ֮ǰͨ���ֶ����������ӵ� ORB ʱ�����������Ļ��ƽ������á�

��̬��������

��� RMI �������ͻ��˻����������ͬ���豸�յ�һ���޷�ʶ�����ʵ�������Ҷ�̬�������ش�ʱ���Խ��� RMI ���ӣ�����Դ�ͬ���豸ָ���Ĵ���������ࡣ���� Dynamic code downloading using Java RMI �Դ˽�������ϸ���͡�

�����°汾��ʼ��
1.5
������
JavaTM Remote Method Invocation (RMI), Java Naming and Directory InterfaceTM (JNDI), RFC 2045, section 6.8, "Base64 Content-Transfer-Encoding"

JavaTM Platform
Standard Ed. 6

�ύ��������
�йظ���� API �ο����ϺͿ�����Ա�ĵ�������� Java SE ������Ա�ĵ������ĵ���������ϸ�ġ����򿪷���Ա���������Լ�������������ﶨ�塢ʹ�ü��ɺ͹�������ʾ����

��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������