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