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); } } }
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); } } }