21-07-2011, 09:50 AM
Develop a middleware component for retrieving Stock Market Exchange information using CORBA
Code:
Stock Market.idl
module SimpleStocks{
interface StockMarket
{
float get_price(in string symbol);
};
};
StockMarketClient.java
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import SimpleStocks.*;
public class StockMarketClient
{
public static void main(String[] args)
{
try
{
ORB orb=ORB.init(args,null);
NamingContext ncRef=NamingContextHelper.narrow(orb.resolve_initial_references("NameService"));
NameComponent path[]={new NameComponent("NASDAQ","")};
StockMarket market=StockMarketHelper.narrow(ncRef.resolve(path));
System.out.println("Price of My company is"+market.get_price("My_COMPANY"));
}
catch(Exception e){
e.printStackTrace();
}
}
}
StockMarketImpl
import org.omg.CORBA.*;
import SimpleStocks.*;
public class StockMarketImpl extends _StockMarketImplBase
{
public float get_price(String symbol)
{
float price=0;
for(int i=0;i<symbol.length();i++)
{
price+=(int)symbol.charAt(i);}
price/=5;
return price;
}
public StockMarketImpl(){super();}
}
StockMarketServer
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import SimpleStocks.*;
public class StockMarketServer
{
public static void main(String[] args)
{
try
{
ORB orb=ORB.init(args,null);
StockMarketImpl stockMarketImpl=new StockMarketImpl();
orb.connect(stockMarketImpl);
org.omg.CORBA.Object objRef=orb.resolve_initial_references("NameService");
NamingContext ncRef=NamingContextHelper.narrow(objRef);
NameComponent nc=new NameComponent("NASDAQ","");
NameComponent path[]={nc};
ncRef.rebind(path,stockMarketImpl);
System.out.println("StockMarket server is ready");
Thread.currentThread().join();
}
catch(Exception e){
e.printStackTrace();
}
}
}
EXECUTION STEPS
1.cREATE A INTERFACE(idl,CPP)
2.Create IMPLEMENTATION PROGRAM
3.sERVER PROGRAM
4.Client program
5.cOMMAND
idltojava -fno-cpp interfacename.idl
javac servant
javac server
javac client
tnameserv -ORBInitialPort 900
java HelloServer in another window
cmd
java StockMarketClient