java RMI 시스템은 어떤 JVM에서 수행 되는 객체가 다른 JVM에서 수행되는 객체의 method에서 수행 되는 객체의 method를 호출 할 수 있게 해준고, 프로그램 사이에 통신을 가능하도록 해준다.
특정 하드웨어 와 dedicate 소프트 웨어를 사용하기 위하여 여러 기곙 분산 객체를 배치 함
사용자는 URL syntax를 시용하여 특정 객체를 지정하고 request를 함
-사용자는 원격 객체를 자신의 로컬 객체로 간주하고 사용함
-네트원크 연결은 보이지 않게 자동으로 이루어 진다.
-java의 serialization은 복잡한 자료 구조를 네트워크를 통하여 전송하는 과저을 손십게 해준다.
RMI operation
Stub Operation
-원격객체의 identifier
-원격객체의 method identifier
-Marshalling parameters
-패킷을 서버에 전송
Skeleton Ooperation
-Unmarshalling parameter
-서버 프로시저 호출, 결과값을 혹은 예외 값을 받음
-결과 값을 marshalling
-패킷을 클라이언트에게 전송
즉 분산 객체 응용프로그램
1.원격객체의 위치는 rmiregistry에서 찾음
2.원격객체와의 통신은 java Serialization을 통한 marshalling
3.원격객체의 stub코드는 http를 통한 class downloading에 의해서 한다.
순서
1.서버는 registry에 원격객체와 이 객체의 이름을 등록한다.
2.클라이언트는 이름을 통해서 원격객체의 위치를 확인 한다.
3.클라이언트는 registry를 통해서 원격객체에 대한 stub code를 받는다.
4.RMI 시스템은 웹서를 통해서 필요한 class 파일을 서버에서 클라이언트
또는 클아이언트에서 서버로 전송 받을 수 있다.


