U E D R , A S I H C RSS

코바예제/시계



1.

CORBA . 바르 . . ORB .

2.

CORBA FRAMEWORK를 보는 .

3.

ObjTimeServer며 getTime()는 메 는데 getTime()는 문 . CORBA 를 만. 는 IDL 는 IDL . IDL 러는 는(를들면 VisiBroker) ORB . IDL 러는 . IDL . 는 ORB는 Java ORB Java(Stub, Skeleton) . IDL (proxy object) 및 . IDL . 바 는 대리("stand-in") 럼 보 . . . 를 변 보내며, 따르붙는 , . 바는 IDL 는데, 럼 보 . ORB 며 ORB는 를 리. .

4. IDL

~cpp 
//TestTimeServer
module TestTimeServer {
    interface ObjTimeServer {
        string getTime();
    };
};

IDL 면(idl2java) .

5. (implementation object)

IDL . ObjTimeServer_Skeleton.java 며, . IDL . , . 는 IDL 만들 . .

~cpp 
//   
//TestTimeServerImpl.java
import CORBA.*;

class ObjTimeServerImpl extends TestTimeServer.ObjTimeServer_Skeleton {
//변 

//
public ObjTimeServerImpl() { }

//메
public String getTime() throws SystemException {
  return ("The current time is : " + current_time);
}

}


6.

, 며, , 를 받 .

~cpp 
//   
import CORBA.*;
public class TimeServer_Server {
public static void main(String [] args) {
try {
// ORB 
ORB orb = ORB.init();
.
.

//   
ObjTimeServerImpl time_server_obj = new ObjTimeServerImpl(args[0]);
.
.
} catch(SystemException e) {
System.err.println(e);
}
}
}
면 문 IOR . .
IOR : 00000012346121112444232....( .)

7.

. 먼 CORBA , ORB를 . ORB를 ORB (pseudo-object) . ORB ' ' 불리는 브러리 며, 는 CORBA . . 는 불 . 를 문 . ' ' 불리며, 는 문 '문 ' .(IOR) "" 바뀔 . CORBA, ORB object_to_string() string_to_object()를 . 모 CORBA 2.0 ORB는 . . 'narrow' . ORB를 CORBA 럼 동 . 면, 럼 보.

~cpp 
//   
//TimeServer_Client.java
import java.io.*;
import CORBA.*;

public class TimeServer_Client {
public static void main(String [] args) {
try{
//ORB 
ORB orb = ORB.init();
.
.

//  내는 부,        .
object myObj = orb.string_to_object(args[0]);
.
.

//    .(narrow down)
TestTimeServer.ObjTimeServer TimeServer = TestTimeServer.ObjTimeServer_var.narrow(obj);

} catch(SystemException e) {
System.err.println(e);
}
}
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:19
Processing time 0.0232 sec