Java Tutorial

 
 
 
 
// CountClient.java  

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

class CountClient { 

  static Count countImpl;

  public static void 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 time
      long startTime = System.currentTimeMillis();

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

      // Calculate stop time; print out statistics
      long 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
{ static public void 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.*;

public class CountClientApplet extends java.applet.Applet
{ private TextField countField, pingTimeField;
  private Button runCount;
  private Counter.Count counter;
  public void 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 time
        long startTime = System.currentTimeMillis();

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

        // Calculate stop time; show statistics
        long 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();
      }
      return true;
    }
    return false;
  }
}


// CountImpl.java: The Count Implementation

class CountImpl extends Counter.CountPOA
{
  private int sum;

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

  // get sum
  public  int sum()
  { return sum;
  }

  // set sum
  public  void sum(int val)
  { sum = val;
  }

  // increment method
  public int 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>

    Related Post:
  1. RMI based application for login validation based on data saved in text file stored on the server and will display appropriate message to the client..

  2. An applet program to take user input and display

  3. Program to show insertion of StringBuffer, String objects and other Basic Data Types into a StringBuffer object

  4. Program to generate Fibonacci Series of a given number

  5. Develop a game application in CORBA for which the player will guess a number between 1 to 100, which will be compared to the random number generated b

  6. An applet program to display Horizontal Color Bar

  7. An applet program to find maximum of three numbers using textField

  8. Program that accepts a shopping list of items from the command line and stores them in a vector. Also provide facility to perform operation

  9. Program to Display Output in triangular shape

  10. Program to declare, initialize and print a StringBuffer object

  11. Program to show an example of using initialization block to initialize the data members of a class

  12. An applet program to display alternate filled and empty circle that to in row and column format

  13. Corba program to encrypt the text that you want to send on the client side. The server side decrypts it after receiving. Append server time.

  14. Develop a RMI based application for addition of two complex numbers

  15. File handling program to copy bytes from one file to another

  16. An applet program to perform merge sort

  17. Corba program to develop a simple calculator with addition, subtraction, multiplication and division capabilities, data collection from client side

  18. RMI based application, which reads a file with list of marks of student from a client, send it to server and find how many students having distinct

  19. Simple Applet which will show life cycle of an Applet

  20. Program for Thread Priority

 
 
Didn't find what you were looking for? Find more on Corba program of Count Client Applet, IDL,Server, Client