URDINESH: RMI
Showing posts with label RMI. Show all posts
Showing posts with label RMI. Show all posts

Saturday, July 11, 2015

JAVA


Tuesday, May 20, 2014

JAVA CODE FOR RMI BOOKSHOP DETAIL

CREATE A  TABLE IN DB AS FOLLOWS:
================================
id,author,Bname,Price,stock => Columns

Then Please insert some sample values in this table.Then Use the following code
PROGRAM: (SERVER)

import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.sql.*;
import java.io.*;
class buff implements Serializable
{
            public String a,bn;
public int price,id;
            public int  stock;
}
interface BDetail extends Remote
{
            public buff get(int id) throws RemoteException;
public void purch(int id) throws RemoteException;
}
public class Detail extends UnicastRemoteObject implements BDetail
{
            Connection con;
Statement st;
ResultSet rs;
public Detail() throws RemoteException
            {
 try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:reservation");
st = con.createStatement();
}
catch(Exception e)
{
                        }
            }
public buff get(int id) throws RemoteException
            {
    buff o=new buff();
    int i=0;
                            try
                           {      
                                    rs=st.executeQuery("Select * from detail where id="+id);
                                    if(rs.next())
                                    {
                                                o.id=rs.getInt(1);
                                                o.a=rs.getString(2);
                                                o.bn=rs.getString(3);
                        o.price=rs.getInt(4);
                                                o.stock=rs.getInt(5);
                                    }
            else
                                    {
                        o.a="-----";
                                                o.bn="----";
           
                                    }
                              }
                              catch(Exception e)
                             {
                                    System.out.println(e);
                              }
      return o;    
              }
public void purch(int id) throws RemoteException
{
 try
{
                        rs=st.executeQuery("Select stock from detail where id="+id);
                        rs.next();
int stk=rs.getInt("stock");
if(stk==0)
{
            throw new Exception("No book in stock ID::"+id);
}
else
{
                                    stk--;
st.executeUpdate("update detail"+" "+"set "+"stock="+stk+" WHERE id="+id);
}
               }
               catch(Exception e)
               {
            System.out.println(e);
   }
        }
        public static void main(String[] x)throws Exception
       {
            Detail o=new Detail();
            Naming.rebind("book",o);
        }
  }

PROGRAM: (CLIENT)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.rmi.*;
import java.rmi.registry.*;

interface BDetail extends Remote
  {
     public buff get(int id) throws RemoteException;
     public void purch(int id) throws RemoteException;
}

class BookShop extends JFrame implements ActionListener
 {
   JLabel ttl;
   JButton b1,b2,b3;
   JTextField t1,tt1,tt2,tt3,tt4,tt5;
   JLabel l1,id,auth,title,stock,price;
   JPanel p,p1,p2,p3;
   Container c;
   BDetail m1;
   BookShop()
   {
           super("BOOK SHOP");
           try
          {
   m1=(BDetail)Naming.lookup("rmi://Localhost/book");
   c=this.getContentPane();
   p=new JPanel();
   p1=new JPanel();
   p2=new JPanel();
   p3=new JPanel();
   p2.setLayout(new GridLayout(6,5));

   ttl=new JLabel("BOOK SHOP");
   ttl.setFont(new Font("Ariel", Font.BOLD, 20));

   p.add(ttl);
   add(p,"North");

   l1=new JLabel("ID::");
   t1=new JTextField(3);
   b1=new JButton("Submit");
   b2=new JButton("Clear");
   p1.add(l1);
   p1.add(t1);
   p1.add(b1);
   p1.add(b2);
  c.add(p1,"East");
  c.add(new JPanel(),"West");
  id=new JLabel("ID");
  title=new JLabel("TITlE");
  stock=new JLabel("STOCK");
  auth=new JLabel("AUTHOR");
  price=new JLabel("PRICE");
  tt1=new JTextField(3);
  tt1.setEditable(false);

  tt2=new JTextField(21);
 tt2.setEditable(false);

 tt3=new JTextField(21);
 tt3.setEditable(false);

 tt4=new JTextField(21);
tt4.setEditable(false);

tt5=new JTextField(21);
tt5.setEditable(false);

b3=new JButton("Purchase");

p2.add(id);
p2.add(tt1);

p2.add(auth);
p2.add(tt2);

p2.add(title);
p2.add(tt3);

p2.add(stock);
p2.add(tt4);

p2.add(price);
p2.add(tt5);

c.add(p2,"Center");

p3.add(b3);
c.add(p3,"South");

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);


addWindowListener(new WindowAdapter( )
 {
        public void windowClosing(WindowEvent e)
        {
                        System.exit(0);
         }
  }                         
  }
catch(Exception ff){ }
  }
public void actionPerformed(ActionEvent e)
{
  try
   {
if(e.getActionCommand()=="Submit")
{
    buff o=m1.get(Integer.parseInt(t1.getText()));
    tt1.setText(""+o.id);
    tt2.setText(o.a);
    tt3.setText(o.bn);
    tt4.setText(""+o.stock);
    tt5.setText(""+o.price);

}

if(e.getActionCommand()=="Clear")
{
   t1.setText("");
}
  if(e.getActionCommand()=="Purchase")
{
   int n=Integer.parseInt(t1.getText());
   m1.purch(n);

   buff o=m1.get(n);
 
   tt1.setText(""+o.id);
   tt2.setText(o.a);
   tt3.setText(o.bn);
   tt4.setText(""+o.stock);
   tt5.setText(""+o.price);
 }
    }
 catch(Exception d)
{
   System.out.println(d);
  }
     }
public static void main(String[] a)
{
  BookShop o=new BookShop();
  o.setVisible(true);
  o.setSize(900,100);
  o.pack();
   }

}

Monday, May 19, 2014

JAVA CODE FOR RMI FILE TRANSFER



PROGRAM: (SERVER)

import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.sql.*;
import java.io.*;

class buff implements Serializable
     public byte b[];
   }
interface trans extends Remote
 {
    public buff get(String s) throws RemoteException;
}
public class fileTrans extends UnicastRemoteObject implements  trans
{
    fileTrans()throws RemoteException
{    }
  public buff get(String s) throws RemoteException
 {
    buff o=new buff();
  try
    {
      System.out.println(s);
      FileInputStream o1=new FileInputStream(s);
     o.b=new byte[o1.available()];
     o1.read(o.b);
     System.out.write(o.b);
     o1.close();
}
   catch(Exception e)
  {
   System.out.println(e);
}
return o;
  }
public static void main(String[] x)throws Exception
{
  fileTrans tt=new fileTrans();
  Naming.rebind("file",tt);
}
  }







PROGRAM: (CLIENT)

import java.rmi.*;
import java.rmi.registry.*;
import  java.io.*;
interface trans extends Remote
{
   public buff get(String s) throws RemoteException;
}

class getfile
{
   getfile()
  {

   try
   {
     trans m1=(trans)Naming.lookup("rmi://Localhost/file");
     String s="chord.wav";
     buff o=m1.get(s);
     FileOutputStream fo=new FileOutputStream("ch.wav");
     fo.write(o.b);
  }
  catch(Exception e)
{
   System.out.println(e);
}
  }
public static void main(String[] a)
{
  getfile o=new getfile();
}

  }

Thursday, May 8, 2014

SOCKET PROGRAMMING


43. Define packet switched networks.
Packet switched network means that data traveling on the network is broken into
chunks called packets and each packet is handled separately.
44. Define socket.
The socket is a software abstraction used to represent the terminals of a connection
between two machines or processes.
45. What are the basic operations of client sockets?
Connect to a remote machine
Send data
Receive data
Close a connection
46. What are the basic operations of Server socket?
Bind to a port
Listen for incoming data
Accept connections from remote machines on the bound port
47. List all the socket classes in java.
Socket
ServerSocket
Datagram Socket
Multicast Socket
Secure sockets
48.What the Socket Object does?
Socket object is the java representation of a TCP connection when a socket is created; a
connection is opened to the specified destination.
49. What is meant by Server Socket?
ServerSocket represents a listening TCP connection. Once an incoming connection is
requested, the ServerSocket object will return a Socket object representing the connection.
50. What do you mean by DatagramSocket and DatagramPacket?
DatagramSocket represents a connectionless datagram socket. This class works with the
DatagramPacket class to provide for communication using the UDP protocol.
51. Write a note on Connect Exception.
This exception is raised when a connection is refused at the remote host. (ie, no process
is listening on that port).
52. What is a multicast socket?
Multicasting sends data from one host to many different hosts, which are in the
multicast group.
53. What is multicast address and the range of address?
A multicast address is the address of a group of hosts called a multicast group.
Multicast addresses are IP addresses in the range 224.0.0.0 to 239.255.255.255
54. What are the different types of IP addresses?
Unicast address: It is used for transmitting a message to single destination node
Multicast address: It delivers a message to a group of destination nodes, which are
necessarily in the same sub network.
Broadcast address: It transmits a message to all nodes in a sub network.
55. What is meant by protocol handler?
Protocol handlers are used to retrieve the web objects using application specific
protocols. The protocols are specified in the URL referencing the object.
56. How are the protocol handlers implemented?
Four different classes in the java.net package implement the protocol handlers:
1. URL
2. URLStreamHandler
3. URLConnection
4. URLStreamHandlerFactory
57. What are the methods for parsing URLs?
1. parseURL(URL u, String spec, int start, int limit)- splits the URL into parts
2. setURL(URL u, Sring protocol, String host, int port, String file, String ref) -assigns
values to the URL‟s fields.
58. What is content handler?
Content handlers are used to retrieve objects via an URLConnection object.
59. What is Remote Method Invocation?
The Remote Method Invocation is application-programming interface that allows java
objects on different hosts communicate with each other.
60. What do you mean by remote object?
Objects that have methods that can be called across virtual machines are remote
objects.
61. Define serialization.
It is the process of converting a set of object instances that contain references to each
other into a linear stream of bytes, which can then be through a socket. It is the mechanism used by RMI to pass objects between Java Virtual Machines.
62. What are the responsibilities of stub?
A stub for a remote object is the client side proxy for the remote object. A client side
stub is responsible for:
1.Initiating a call to the remote object
2.Marshaling arguments to a marshal stream
3.Informing the remote reference layer that the call should be invoked
4.Unmarshaling the return value or exception from a marshal stream
63. What is the role of skeleton in RMI?
A skeleton for a remote object is a server side entity that contains a method which
dispatches calls to the actual remote object implementation. The skeleton is responsible for
1.Unmarshaling arguments from the marshal stream.
2.Making the up-call to the actual remote object.
3.Marshalling the return value of the call to an exception onto the Marshall stream
64. List down the layers of RMI architecture.
1.Stubs/Skeletons
2.Remote reference layer
3.Transport layer
65. Define Object Activation.
Object Activation is mechanism, which allows a java object to be bound and then
activated at some later data simply by referencing the object through the Registry.
66. Write down the Socket object methods to get information about a socket.
1. getInetAddress ()- displays which remote host the Socket is connected to
2. getPort () -displays which port the Socket is connected to on the remote host.
3. getLoca1Port ()- to find the port number for the local end of a connection
4. getLocalAddress () -tells you which network interface a socket is bound to.
67. What operations Multicast Socket Perform?
1. Join a multicast group
2. Send data to the members of the group
3. Receive data from the group

4. Leave the multicast group

Followers