0% found this document useful (0 votes)
122 views

Hello Service Using Corba Hello - Idl

The documents describe a CORBA program that uses IDL interfaces to build a client-server application for retrieving bank balance information. The BankServer implements the Bank interface and stores balance data in a database. It registers the object reference with the naming service. The BankClient resolves this reference and invokes the bal() method, passing an account number to retrieve the corresponding balance.

Uploaded by

Sobhan Dasari
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
122 views

Hello Service Using Corba Hello - Idl

The documents describe a CORBA program that uses IDL interfaces to build a client-server application for retrieving bank balance information. The BankServer implements the Bank interface and stores balance data in a database. It registers the object reference with the naming service. The BankClient resolves this reference and invokes the bal() method, passing an account number to retrieve the corresponding balance.

Uploaded by

Sobhan Dasari
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 13

22. Hello Service using Corba Hello.

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

You might also like