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.0281 sec