// IDL module GetDateModule { interface GetDate { string get_date(); long long get_time(); }; }; // GetDateImpl // Contains the implementation of the methods defined in the IDL file. import GetDateModule.GetDatePOA; import java.lang.String; import java.util.Date; class GetDateImpl extends GetDatePOA { Date dt=new Date(); GetDateImpl() { super(); System.out.println(\"Encriptor Object Created\"); } public String get_date() { String time=dt.toString(); return (time); } public long get_time() { return(dt.getTime()); } } // Server import GetDateModule.GetDate; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; class GetDateServer { public static void main(String[] args) { try { // initialize the ORB org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); // initialize the BOA/POA POA rootPOA = POAHelper.narrow(orb.resolve_initial_references(\"RootPOA\")); rootPOA.the_POAManager().activate(); // creating the GetDate object GetDateImpl GetDate = new GetDateImpl(); // get the object reference from the servant class org.omg.CORBA.Object ref = rootPOA.servant_to_reference(GetDate); System.out.println(\"Step1\"); GetDate h_ref = GetDateModule.GetDateHelper.narrow(ref); System.out.println(\"Step2\"); org.omg.CORBA.Object objRef =orb.resolve_initial_references(\"NameService\"); System.out.println(\"Step3\"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); System.out.println(\"Step4\"); String name = \"GetDate\"; NameComponent path[] = ncRef.to_name(name); ncRef.rebind(path,h_ref); System.out.println(\"GetDate Server reading and waiting....\"); orb.run(); } catch(Exception e) { e.printStackTrace(); } } } // Client import GetDateModule.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.io.*; import java.lang.String; import java.util.Date; class GetDateClient { public static void main(String args[]) { GetDate GetDateImpl=null; int i; try { // initialize the ORB org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); org.omg.CORBA.Object objRef = orb.resolve_initial_references(\"NameService\"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = \"GetDate\"; GetDateImpl = GetDateHelper.narrow(ncRef.resolve_str(name)); Date dt=new Date(); long clientTime=dt.getTime(); System.out.println(\"Client Date and Time=\"+dt); String serverDate=(String) GetDateImpl.get_date(); long serverTime=(long) GetDateImpl.get_time(); System.out.println(\"Server Date and Time=\"+serverDate); System.out.println(\"Time Difference in Server and Client(in millisecond)=\"+(clientTime-serverTime)); } catch(Exception e) { e.printStackTrace(); } } } // OUTPUT Z:\\mca317\\corba\\four>java -classpath .\\ GetDateClient -ORBInitialPort 1050 -ORBI nitialHost mca395 Client Date and Time=Thu Dec 01 16:20:22 IST 2005 Server Date and Time=Thu Dec 01 16:20:16 IST 2005 Time Difference in Server and Client(in millisecond)=5248