A) Find factorial of the number.
B) Find the Reverse of the number and string
C) Find the square of the number
(A) Find factorial of the number
Code:
FactorialIntf.idl
{
interface FactorialIntf
{
long factorial(in long num);
oneway void shutdown();
};
};
FactClient.java
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
public class FactClient{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references(“NameService”);
// Use NamingContextExt instead of NamingContext. This is
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// resolve the Object Reference in Naming
String name = “Hello”;
FactorialIntf helloImpl = FactorialIntfHelper.narrow(ncRef.resolve_str(name));
System.out.println(“Obtained a handle on server object: ” + helloImpl);
System.out.println(“Enter the number”);
int num=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
System.out.println(helloImpl.factorial(num));
helloImpl.shutdown();
}
catch (Exception e) {
System.out.println(“ERROR : ” + e) ;
e.printStackTrace(System.out);
}
}
}
FactServer.java
import FactApp.*;
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 FactImpl extends FactorialIntfPOA{
private ORB orb;
public void setORB(ORB orb_val){
orb = orb_val;
}
public int factorial(int num1){
int facto=1;
if(num1==0)
{
return 1;
}
else
{
while(num1>0)
{
facto=facto*num1;
num1–;
}
return facto;
}
}
public void shutdown(){
orb.shutdown(false);
}
}
public class FactServer{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// Get reference to rootpoa & activate the POAManager
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references(“RootPOA”));
rootpoa.the_POAManager().activate();
// create servant and register it with the ORB
FactImpl helloImpl = new FactImpl();
helloImpl.setORB(orb);
// create a tie, with servant being the delegate.
FactorialIntfPOATie tie = new FactorialIntfPOATie(helloImpl, rootpoa);
// obtain the objectRef for the tie
// this step also implicitly activates the
// the object
FactorialIntf href = tie._this(orb);
// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references(“NameService”);
// Use NamingContextExt which is part of the Interoperable
// Naming Service specification.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// bind the Object Reference in Naming
String name = “Hello”;
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println(“HelloServer ready and waiting …”);
// wait for invocations from clients
orb.run();
}
catch (Exception e){
System.err.println(“ERROR: ” + e);
e.printStackTrace(System.out);
}
System.out.println(“HelloServer Exiting …”);
}
}
Output:
(B) Find the Reverse of the number and string
Code:
ReverseIntf.idl
{
interface ReverseIntf
{
string getReverseString(in string str1);
long getReverseNumber(in long num1);
oneway void shutdown();
};
};
ReverseClient.java
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
public class ReverseClient{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references(“NameService”);
// Use NamingContextExt instead of NamingContext. This is
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// resolve the Object Reference in Naming
String name = “Hello”;
ReverseIntf helloImpl = ReverseIntfHelper.narrow(ncRef.resolve_str(name));
System.out.println(“Obtained a handle on server object: ” + helloImpl);
System.out.println(“Enter the String to reverse”);
String strn=(new BufferedReader(new InputStreamReader(System.in)).readLine());
System.out.println(“Enter the number”);
int num=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
System.out.println(“Reverse of the string is”);
System.out.println(helloImpl.getReverseString(strn));
System.out.println(“Reverse of the number is “+helloImpl.getReverseNumber(num));
helloImpl.shutdown();
}
catch (Exception e) {
System.out.println(“ERROR : ” + e) ;
e.printStackTrace(System.out);
}
}
}
ReverseServer.java
import ReverseApp.*;
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 ReverseImpl extends ReverseIntfPOA{
private ORB orb;
public void setORB(ORB orb_val){
orb = orb_val;
}
public String getReverseString(String str){
String str2=””;
for(int i=str.length()-1;i>=0;i–)
{
str2=str2+str.charAt(i);
}
return str2;
}
public int getReverseNumber(int num1)
{
int temp;
String finNum=””;
while(num1>0)
{
finNum=finNum+num1%10+””;
num1=num1/10;
}
int num=Integer.parseInt(finNum);
return num;
}
public void shutdown(){
orb.shutdown(false);
}
}
public class ReverseServer{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// Get reference to rootpoa & activate the POAManager
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references(“RootPOA”));
rootpoa.the_POAManager().activate();
// create servant and register it with the ORB
ReverseImpl helloImpl = new ReverseImpl();
helloImpl.setORB(orb);
// create a tie, with servant being the delegate.
ReverseIntfPOATie tie = new ReverseIntfPOATie(helloImpl, rootpoa);
// obtain the objectRef for the tie
// this step also implicitly activates the
// the object
ReverseIntf href = tie._this(orb);
// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references(“NameService”);
// Use NamingContextExt which is part of the Interoperable
// Naming Service specification.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// bind the Object Reference in Naming
String name = “Hello”;
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println(“HelloServer ready and waiting …”);
// wait for invocations from clients
orb.run();
}
catch (Exception e){
System.err.println(“ERROR: ” + e);
e.printStackTrace(System.out);
}
System.out.println(“HelloServer Exiting …”);
}
}
Output:
C) Find the square of the number
Code:
SquareIntf.idl
{
interface SquareIntf
{
long getSquare(in long num);
oneway void shutdown();
};
};
SquareClient.java
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
public class SquareClient{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references(“NameService”);
// Use NamingContextExt instead of NamingContext. This is
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// resolve the Object Reference in Naming
String name = “Hello”;
SquareIntf helloImpl = SquareIntfHelper.narrow(ncRef.resolve_str(name));
System.out.println(“Obtained a handle on server object: ” + helloImpl);
System.out.println(“Enter the number”);
int num=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
System.out.println(helloImpl.getSquare(num));
helloImpl.shutdown();
}
catch (Exception e) {
System.out.println(“ERROR : ” + e) ;
e.printStackTrace(System.out);
}
}
}
SquareServer.java
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 SquareImpl extends SquareIntfPOA{
private ORB orb;
public void setORB(ORB orb_val){
orb = orb_val;
}
public int getSquare(int num1){
return num1*num1;
}
public void shutdown(){
orb.shutdown(false);
}
}
public class SquareServer{
public static void main(String args[]){
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// Get reference to rootpoa & activate the POAManager
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references(“RootPOA”));
rootpoa.the_POAManager().activate();
// create servant and register it with the ORB
SquareImpl helloImpl = new SquareImpl();
helloImpl.setORB(orb);
// create a tie, with servant being the delegate.
SquareIntfPOATie tie = new SquareIntfPOATie(helloImpl, rootpoa);
// obtain the objectRef for the tie
// this step also implicitly activates the
// the object
SquareIntf href = tie._this(orb);
// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references(“NameService”);
// Use NamingContextExt which is part of the Interoperable
// Naming Service specification.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// bind the Object Reference in Naming
String name = “Hello”;
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println(“HelloServer ready and waiting …”);
// wait for invocations from clients
orb.run();
}
catch (Exception e){
System.err.println(“ERROR: ” + e);
e.printStackTrace(System.out);
}
System.out.println(“HelloServer Exiting …”);
}
}
Output:
Sir can you tell me how to install orbd in windows. i can’t find it anywhere