Hello Service Using Corba Hello - Idl
Hello Service Using Corba Hello - Idl
idl module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); }; }; HelloServer.java import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.util.Properties; class HelloImpl extends HelloPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public String sayHello() { return "\nHello world !!\n"; } public void shutdown() { orb.shutdown(false); } } public class HelloServer { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); POA rootpoa =POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); HelloImpl helloImpl = new HelloImpl(); helloImpl.setORB(orb); org.omg.CORBA.Object ref =rootpoa.servant_to_reference(helloImpl); Hello href = HelloHelper.narrow(ref); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "Hello"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); System.out.println("HelloServer ready and waiting ..."); orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } System.out.println("HelloServer Exiting ..."); } } HelloClient.java import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class HelloClient { static Hello helloImpl; public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Hello"; helloImpl = HelloHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + helloImpl); System.out.println(helloImpl.sayHello()); helloImpl.shutdown(); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } }
Output: C:\Documents and Settings\User\Desktop\HelloCorba>idlj -fall Hello.idl C:\Documents and Settings\User\Desktop\HelloCorba>javac HelloServer.java HelloApp/*.java C:\Documents and Settings\User\Desktop\HelloCorba>javac HelloClient.java HelloApp/*.java C:\Documents and Settings\User\Desktop\HelloCorba>start orbd -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\HelloCorba>start java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\HelloCorba> java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost Obtained a handle on server object: IOR:000000000000001749444c3a48656c6c6f417070 2f48656c6c6f3a312e300000000000010000000000000082000102000000000a3132372e302e302 3100041f00000031afabcb000000002098bbac2000000001000000000000000100000008526f6f7 504f41000000000800000001000000001400000000000002000000010000002000000000000100 00000002050100010001002000010109000000010001010000000026000000020002 Hello world !! C:\Documents and Settings\User\Desktop\HelloCorba>
23. Corba program to add 2 numbers Add.idl module AddApp { interface Add { long Add2(in long a,in long b); }; }; AddServer.java import AddApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.util.Properties; class AddImpl extends AddPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public int Add2(int a,int b) { return a+b; } } public class AddServer { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); POA rootpoa =POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); AddImpl addImpl = new AddImpl();
addImpl.setORB(orb); org.omg.CORBA.Object ref =rootpoa.servant_to_reference(addImpl); Add href = AddHelper.narrow(ref); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Add"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); System.out.println("AddServer ready and waiting ..."); orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } System.out.println("AddServer Exiting ..."); } } AddClient.java import AddApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class AddClient { static Add addImpl; public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); . NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Add"; addImpl = AddHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + addImpl); System.out.println("sum is:"+addImpl.Add2(3,5)); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out);
} } }
Output: C:\Documents and Settings\User\Desktop>cd Add C:\Documents and Settings\User\Desktop\Add>idlj -fall Add.idl C:\Documents and Settings\User\Desktop\Add>javac AddServer.java AddApp/*.java C:\Documents and Settings\User\Desktop\Add>javac AddClient.java AddApp/*.java C:\Documents and Settings\User\Desktop\Add>start orbd -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\Add>start java AddServer -ORBInitialPort1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\Add> java AddClient -ORBInitialPort 1050ORBInitialHost localhost Obtained a handle on server object: IOR:000000000000001349444c3a4164644170702f4164643a312e300000000000010000000000 000082000102000000000a3132372e302e302e3100043800000031afabcb000000002098d002e90 0000001000000000000000100000008526f6f74504f41000000000800000001000000001400000 00000000200000001000000200000000000010001000000020501000100010020000101090000 00010001010000000026000000020002 sum is:8
24. Corba program for stock market details retrieval Stock.idl module StockApp { interface Stock { long show(in string a); }; }; StockServer.java import StockApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.sql.*; import java.util.Properties; class StockImpl extends StockPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public int show(String a)
{ Connection con; PreparedStatement pt; ResultSet rs; String name = a; int var1=0; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("Jdbc:Odbc:stock"); pt = con.prepareStatement("select qty from stockDB where prod=?"); pt.setString(1, name); rs = pt.executeQuery(); while (rs.next()) { var1 = rs.getInt("qty"); } } catch(ClassNotFoundException e){} catch(SQLException p){} return var1; } } public class StockServer { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); POA rootpoa =POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); StockImpl stockImpl = new StockImpl(); stockImpl.setORB(orb); org.omg.CORBA.Object ref =rootpoa.servant_to_reference(stockImpl); Stock href = StockHelper.narrow(ref); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Stock"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); System.out.println("StockServer ready and waiting ..."); orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e);
e.printStackTrace(System.out); } System.out.println("StockServer Exiting ..."); } } StockClient.java import StockApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class StockClient { static Stock stockImpl; public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Stock"; stockImpl = StockHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + stockImpl); String prod="abc"; System.out.println("value is: "+stockImpl.show(prod)); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } } Output: C:\Documents and Settings\User\Desktop>cd stock C:\Documents and Settings\User\Desktop\stock>idlj -fall Stock.idl C:\Documents and Settings\User\Desktop\stock>javac StockServer.java StockApp/*.java C:\Documents and Settings\User\Desktop\stock>javac StockClient.java StockApp/*.java
C:\Documents and Settings\User\Desktop\stock>start orbd -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\stock>start java StockServer -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\stock> java StockClient -ORBInitialPort 1050 -ORBInitialHost localhost Obtained a handle on server object: IOR:000000000000001749444c3a53746f636b4170702f53746f636b3a312e30000000000001000 0000000000082000102000000000a3132372e302e302e3100044500000031afabcb000000002098 d59eb400000001000000000000000100000008526f6f74504f41000000000800000001000000001 40000000000000200000001000000200000000000010001000000020501000100010020000101 09000000010001010000000026000000020002 value is: 5000 C:\Documents and Settings\User\Desktop\stock>
25. Corba program for bank balance retrieval Bank.idl module BankApp { interface Bank { long bal(in long a); }; }; BankServer.java import BankApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*;
import org.omg.PortableServer.POA; import java.sql.*; import java.util.Properties; class BankImpl extends BankPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public int bal(int a) { Connection con; PreparedStatement pt; ResultSet rs; int acc = a; int var1=0; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("Jdbc:Odbc:bank"); pt = con.prepareStatement("select bal from bankDB where acc=?"); pt.setInt(1, acc); rs = pt.executeQuery(); while (rs.next()) { var1 = rs.getInt("bal"); } } catch(ClassNotFoundException e){} catch(SQLException p){} return var1; } } public class BankServer { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); POA rootpoa =POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); BankImpl bankImpl = new BankImpl(); bankImpl.setORB(orb); org.omg.CORBA.Object ref =rootpoa.servant_to_reference(bankImpl); Bank href = BankHelper.narrow(ref); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Bank"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); System.out.println("BankServer ready and waiting ..."); orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } System.out.println("BankServer Exiting ..."); } } BankClient.java import BankApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class BankClient { static Bank bankImpl; public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); String name = "Bank"; bankImpl = BankHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + bankImpl); int acc=123; System.out.println("balance is: "+bankImpl.bal(acc)); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } }
Output: C:\Documents and Settings\User\Desktop\Bank>idlj -fall Bank.idl C:\Documents and Settings\User\Desktop\Bank>javac BankServer.java BankApp/*.java C:\Documents and Settings\User\Desktop\Bank>javac BankClient.java BankApp/*.java C:\Documents and Settings\User\Desktop\Bank>start orbd -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\Bank>start java BankServer -ORBInitialPort 1050 -ORBInitialHost localhost C:\Documents and Settings\User\Desktop\Bank> java BankClient -ORBInitialPort 1050 -ORBInitialHost localhost Obtained a handle on server object: IOR:000000000000001549444c3a42616e6b4170702f 42616e6b3a312e3000000000000000010000000000000082000102000000000a3132372e302e30 3100045700000031afabcb000000002098dabfb100000001000000000000000100000008526f6f7 504f41000000000800000001000000001400000000000002000000010000002000000000000100 00000002050100010001002000010109000000010001010000000026000000020002 balance is: 100000