Logo 
Search:

Java Articles

Submit Article
Home » Articles » Java » CorbaRSS Feeds

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

Posted By: Milind Mishra     Category: Java     Views: 5656

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

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

// CountClient.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>
  
Share: 


Didn't find what you were looking for? Find more on Corba program of Count Client Applet, IDL,Server, Client Or get search suggestion and latest updates.

Milind Mishra
Milind Mishra author of Corba program of Count Client Applet, IDL,Server, Client is from India.
 
View All Articles

Related Articles and Code:


 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!