Tuesday, 9 June 2015

Corba program of Count Client Applet, IDL,Server, Client


Code for Corba program of Count Client Applet, IDL,Server, Client in Java



 



 
import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;

class CountClient { 

  static Count countImpl;

  publicstaticvoid main(String args[])
  { try
    { // Initialize the ORB
      System.out.println("Initializing the ORB");
      org.omg.CORBA.ORB orb = org.omg.CORBA.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 = "Count";
        countImpl = CountHelper.narrow(ncRef.resolve_str(name));

        System.out.println("Obtained a handle on server object: " + countImpl);

      // Set sum to initial value of 0
      System.out.println("Setting sum to 0");
      countImpl.sum((int)0);

      // Calculate Start timelong startTime = System.currentTimeMillis();

      // Increment 1000 times
      System.out.println("Incrementing");
      for (int i = 0 ; i < 1000 ; i++ )
      { countImpl.increment();
      }

      // Calculate stop time; print out statisticslong stopTime = System.currentTimeMillis();
      System.out.println("Avg Ping = "
                       + ((stopTime - startTime)/1000f) + " msecs");
      System.out.println("Sum = " + countImpl.sum());
    } catch(Exception e)
    { System.err.println("System Exception");
      System.err.println(e);
    }
  }
}


// CountServer.java: The Count Server main program

import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;

class CountServer
{ staticpublicvoid main(String[] args)
  { try
    { // Initialize the ORB
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);

      // Initialize the BOA
      POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
      rootpoa.the_POAManager().activate();

      // Create the Count object
      CountImpl count = new CountImpl("My Count");

      // get object reference from the servant
      org.omg.CORBA.Object ref = rootpoa.servant_to_reference(count);
      Count href = Counter.CountHelper.narrow(ref);
      
      // get the root naming context// NameService invokes the name service
      org.omg.CORBA.Object objRef =
          orb.resolve_initial_references("NameService");
      // Use NamingContextExt which is part of the Interoperable// Naming Service (INS) specification.
      NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

      // bind the Object Reference in Naming
      String name = "Count";
      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(e);
      }
   }
}


// CountClientApplet.java  Applet Client, VisiBroker for Java

import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.awt.*;

publicclass CountClientApplet extends java.applet.Applet
{ private TextField countField, pingTimeField;
  private Button runCount;
  private Counter.Count counter;
  publicvoid init()
  { // Create a 2 by 2 grid of widgets.
    setLayout(new GridLayout(2, 2, 10, 10));

    // Add the four widgets, initialize where necessary
    add(new Label("Count"));
    add(countField = new TextField());
    countField.setText("1000");
    add(runCount = new Button("Run"));
    add(pingTimeField = new TextField());
    pingTimeField.setEditable(false);

    try
    { // Initialize the ORB.
      showStatus("Initializing the ORB");
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this, null);

      // Bind to the Count Object// 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 = "Count";
        counter = CountHelper.narrow(ncRef.resolve_str(name));

      showStatus("Binding to Count Object");

    } catch(Exception e)
    {
      showStatus("Applet Exception" + e);
      e.printStackTrace(System.out);
    }
  }

  public boolean action(Event ev, java.lang.Object arg)
  { if(ev.target == runCount)
    { try
      { // Set Sum to initial value of 0
        showStatus("Setting Sum to 0");
        counter.sum((int)0);

        // get data from and set value of applet fields
        showStatus("Incrementing");
        int stopCount = Integer.parseInt(countField.getText());
        pingTimeField.setText(" ");

        // Calculate Start timelong startTime = System.currentTimeMillis();

        // Increment stopCount timesfor (int i = 0 ; i < stopCount ; i++ )
        { counter.increment();
        }

        // Calculate stop time; show statisticslong stopTime = System.currentTimeMillis();
        pingTimeField.setText("Avg Ping = "
                  + Float.toString((float)(stopTime- startTime)/stopCount)
                  + " msecs");
        showStatus("Sum = " + counter.sum());
      } catch(Exception e)
      { showStatus("System Exception" + e);
      e.printStackTrace();
      }
      returntrue;
    }
    returnfalse;
  }
}


// CountImpl.java: The Count Implementationclass CountImpl extends Counter.CountPOA
{
  privateint sum;

  // Constructors
  CountImpl(String name)
  { super();
    System.out.println("Count Object Created");
    sum = 0;
  }

  // get sumpublicint sum()
  { return sum;
  }

  // set sumpublicvoid sum(int val)
  { sum = val;
  }

  // increment methodpublicint increment()
  { sum++;
    return sum;
  }
}


// Count Client Applet

<h1>Count Client Applet</h1>
<hr>
<center>
<APPLET CODE=CountClientApplet.class WIDTH=300 HEIGHT=60
        CODEBASE=.>
        <PARAM name="org.omg.CORBA.ORBInitialHost"value=MCA329>
        <PARAM name="org.omg.CORBA.ORBInitialPort"value=1050>
</APPLET>
</center>
<hr>

No comments:

Post a Comment