Anda di halaman 1dari 31

14SCN26

Distributed Computing Laboratory

VISVESVARAYA TECHNOLOGICAL UNIVERSITY


BELAGAVI - 590 018

Report
On

Distributed Computing Laboratory


(14SCN26)
Submitted in partial fulfillment of the requirements for the award of the degree
of
Master of Technology in Computer Network Engineering of
Visvesvaraya Technological University, Belagavi

Submitted by
Your Name
USN:

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

2014-15

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

VISVESVARAYA TECHNOLOGICAL UNIVERSITY


BELAGAVI - 590 018

CERTIFICATE
Certified that the Distributed Computing Laboratory work (14SCN26) has been
successfully completed by Your name bearing USN:

a bonafide student of

College Institute of Technology in partial fulfillment of the requirements for the


second semester in Master of Technology in Computer Network Engineering of
Visvesvaraya Technological University, Belagavi during academic year 2014-2015.
It is certified that all corrections/suggestions indicated for internal assessment have
been incorporated in the report deposited in the departmental library. The laboratory
report has been approved as it satisfies the academic requirements in respect of
laboratory work for the said degree.

Examiners:
1)
2)
ACKNOWLEDGEMENT
M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

I take the immense pleasure in acknowledging the people responsible for guiding and encouraging
towards the successful completion of the Distributed Computing Lab work.
I would like to profoundly thank Management of RNS Institute of Technology for
providing such a healthy environment to carry out this laboratory.
I would like to thank our beloved Director Dr. H. N. Shivashankar for his support towards
carrying out this laboratory.
I would like to express my thanks to our Principal Dr. M. K. Venkatesha for his
encouragement that motivated me to carry out this laboratory.
I wish to express my gratitude and sincere thanks to Dr. M. V. Sudhamani, Professor and
Head of the Department, Information Science and Engineering, for providing a good working
environment and for her constant support and encouragement.
I would like to thank staff in-charge Mr. R. Rajkumar, Assistant Professor, Department of
Information Science and Engineering for his constant support and guidance to carry out the
Distributed Computing Laboratory and also all other teaching and non-teaching staffs of Information
Science & Engineering who have directly or indirectly helped me to carry out this laboratory.
And lastly I would hereby acknowledge and thank my parents who have been a source of
inspiration and also instrumental in carrying out this laboratory.

MohammadParvez A. Halli
USN: 1RN14SCN06

Experiments

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

1. Design and implement client server application using RMI (Remote Method Invocation) to
invoke a service to calculate the income tax.
2. Design and implement EJB (Entity Java Beans) session bean business logic to calculate
income tax and invoke the service using stub, i.e., client side proxy object.
3. Design and implement an EJB entity bean to persist the client submitted data into an enterprise
information system.
4. Design and implement an offline database communication system using JMS (Java Message
Service) to service the client request.
5. Design and implement the client code to call the Micro soft service like free service from
UDDI (Universal Description Discovery Protocol).

6. Design and implement business logic and bind it as service using SOAP (Simple Object Access
Protocol), also implement client to call service.

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

Program 1: Design and implement client server application using RMI (Remote
Method Invocation) to invoke a service to calculate the income tax.
Procedure:
Step1: Open the Notepad

The first file TaxServerIntf.java defines the remote interface: it includes one method that
accepts one arguemnt and returns their tax. Write this below code in the file.
import java.rmi.*;
public interface TaxServerIntf extends Remote {
double add(double d1) throws RemoteException;
}

The second source file TaxServerImpl.java implements the remote interface. Write this below
code in the file.
import java.rmi.*;
import java.rmi.server.*;
public class TaxServerImpl extends UnicastRemoteObject
implements TaxServerIntf {
public TaxServerImpl() throws RemoteException {
}
public double Tax(double d1) throws RemoteException {
double it;
it=0;
if(d1<500000 && d1>250000)
{
it=d1-250000;
it=it*0.1;
}
else if(d1>500000 && d1<1000000)
{
it=d1-500000;
it=it*0.2+25000;
}
return it;
}

The third source file TaxServer.java contains the main program for the server machine. Its
primary function is to update the RMI registry on that machine. Write this below code in the
file.
import java.net.*;
import java.rmi.*;

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

public class TaxServer {


public static void main(String args[]) {
try {
TaxServerImpl taxServerImpl = new TaxServerImpl();
Naming.rebind("TaxServer", taxServerImpl);
}
catch(Exception e) {
System.out.println("Exception: " + e);
}
}
}

The fourth source file AddClient.java implements the client side of this distributed
application. Write this below code in the file.
import java.rmi.*;
public class TaxClient {
public static void main(String args[]) {
try {
String TaxServerURL = "rmi://" + args[0] + "/TaxServer";
TaxServerIntf taxServerIntf = (TaxServerIntf)Naming.lookup(taxServerURL);
System.out.println("The salary is : " + args[1]);
double d1 = Double.valueOf(args[1]).doubleValue();
System.out.println("The tax is: " + TaxServerIntf.tax(d1, d2));
}
catch(Exception e) {
System.out.println("Exception: " + e);
}
}
}

Step 2: Generate Stubs


In command prompt, change directory to program folder
i) cd/
ii)cd pg1
iii)

javac *.java

Then for the stub class generation type


rmic TaxServerImpl

This command generates the file: TaxServerImpl_Stub.class (stub).

M.Tech in CNE

2014-15

14SCN26

Distributed Computing Laboratory

Copy TaxClient.class (client), TaxServerImpl_Stub.class (stub), TaxServerIntf.class


(interface) to a directory on the client machine.

Copy TaxServerIntf.class (interface), TaxServerImpl.class, TaxServerImpl_Stub.class (stub)


and TaxServer.class (server itself) to a directory on the server machine.
Step 3: Run

Creating two other command prompt windows each for client & server.

For Server side type these


i) cd/
ii)cd pg1
iii)
cd server
iv)
Set CLASSPATH=.;
v) echo %CLASSPATH%
vi)
Start rmiregistry
vii)
java TaxServer

For Client side type these


i) cd/
ii)cd pg1
iii)
cd client

At Client side write this instruction for calculating tax


java TaxClient localhost salary

Output:

M.Tech in CNE

2014-15

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

14SCN26

Distributed Computing Laboratory

Program 2: Design and implement EJB (Entity Java Beans) session bean business logic
to calculate income tax and invoke the service using stub, i.e., client side proxy object.
Procedure:
Step 1: Start the Net Beans

Go to file -> new project -> java EE -> enterprise application -> click on next -> give the
project name (Ex: enterpriseapplication1) -> next ->finish.

Enterpriseapplication1 tag is appearing in the right side of the net beans pop up window.

Step 2: Right click on the enterpriseapplication1. War -> right click -> new -> jsp -> give File Name
as (for Ex: taxjsp) -> Finish
Taxjsp.jsp program page is opened and then write a below xml program within the body of the
program
<body>
<form action="taxservlet" method="post">
<input type="text" name="t1"/>
<input type="submit" value="ok"/>
</form>
</body>
Step3: Right Click on enterpriseapplication1.ejb -> new -> other -> enterprise java beans

->

session bean -> next -> give the ejb name as (ex: taxbean) and give the package name as session
bean -> stateless check box is defaultly selected and click on local check box

->

finish.
taxbean.java program page is appears and move the cursor inside the
public class tax implements taxLocal
{ -> right click -> insert code -> add business method.
Add business method window is opened.
In name filed type: tax -> click on browser -> find type window is appear -> in the type name field
give: double -> and select Double (java.lang) -> ok -> click on ADD -> write parameters as: a ->
type: double -> ok.
Write a below program:
M.Tech in CNE

2014-15

10

14SCN26

Distributed Computing Laboratory

public Double tax(double a) {


double t=0;
if (a>0 && a<=250000)
t=0;
else if(a>250000 && a<=500000)
t=(a-250000)*0.1;
else if(a>500000 && a<=1000000)
t=(a-500000)*0.2+25000;
else if(a>1000000)
t=(a-1000000)*0.3+125000;
return t;
}
Step 4: Right click on enterpriseapplication1.war -> new -> servlet -> give class name as:
(taxservlet) and package as: (sessionbeans) -> next -> select the add information to deployment
descriptor (web.xml) check box -> finish.
The taxservlet.java program page is appears. Right click inside public class taxservlet
extends HttpServlet{ -> right click -> insert code -> double click on call enterprise bean
-> call enterprise bean is appears -> extend the enterpriseapplication1.ejb (by click on + symbol) ->
click on taxbean -> OK.
In taxservlet.java program add the write following code inside the body:
double a=Double.parseDouble.(request.getParameter(t1));
Out.println(<h1>tax= +taxbean.tax(a) + </h1>);
Step 5: Right click on enterpriseapplication1

click on deploy

click on run

Web page is opened and select the URL and right click the right arrow in the keyboard, cursor is
moved at the end of URL and type taxjsp.jsp. The output is shown.

Output:
M.Tech in CNE

2014-15

11

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

12

14SCN26

Distributed Computing Laboratory

Program 3: Design and implement an EJB entity bean to persist the client submitted
data into an enterprise information system.
Procedure:
Step 1: Open NetBeans IDE

choose project

Select New

ChooseJavaEE

Select

Enterprise application.
Step 2: Give a name to the project and finish (ex: name
Step 3: Go to Services

test).

Choose Databases and select jdbc:desty://

Click connects.

Step 4: Start the Glassfish server.


Step 5: From the ejb module (eg: test-ejb),create an entity class. Give itService as a class name and
package is persist. Check create persistence unit, click next, and choose jdbc/sample for the data
source

finish.

Step 6: The following file is opened. After declaring name and salary
Right click

Insert code

highlight these two lines

Choose Getter and Setter. Change the generated value to IDENTITY

from Auto and tick the encapsulate option.


itService (program)
package persist;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class itService implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int salary;
public Long getId() {
return id;
}
public void setId(Long id) {
M.Tech in CNE

2014-15

13

14SCN26

Distributed Computing Laboratory

this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof itService)) {
return false;
}
itService other = (itService) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "persist.itService[ id=" + id + " ]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
M.Tech in CNE

2014-15

14

14SCN26

Distributed Computing Laboratory

}
public double calculateTax(){
double t=0;
if(this.salary>=0&&this.salary<=250000)
t=0;
else if(this.salary>250000&&this.salary<=500000)
t=(this.salary-250000)*0.1;
else if(this.salary>500000&&this.salary<=1000000)
t=(this.salary-500000)*0.2+25000;
else if(this.salary>1000000)
t=(this.salary-1000000)*0.3+125000;
return t;
}
}
Step 7: Select New
classes

option

EJB

Next Choose Local

Session Bean for entity class

Select and Add all the

finish.

Step 8: The itService facade is created.


Step 9: Select test-war index. jsp
index.jsp (program)
<html>
<head>
<title>Tax calculation</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="/Servlet">
<table border="1">
<tbody>
<tr>
<td>name</td>
<td><input type="text" name="name" value="" /></td>
</tr>
<tr>
<td>salary</td>
M.Tech in CNE

2014-15

15

14SCN26

Distributed Computing Laboratory

<td><input type="text" name="salary" value="" /></td>


</tr>
</tbody>
<input type="submit" value="click ok" />
</table>
</form>
<div>TODO write content</div>
</body>
</html>
Step 10: test-war
Insert code

New

Servlet

call enterprise bean

package name is p1 , within public class

Right click

ok (paste the code of Servlet. Java)

Servlet.java (program)
package p1;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import persist.itService;
import persist.itServiceFacadeLocal;
@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"})
public class Servlet extends HttpServlet {
@EJB
private itServiceFacadeLocal itServiceFacade;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
itService obj= new itService();
obj.setName(request.getParameter("name"));
String name= request.getParameter("name");
obj.setSalary(Integer.parseInt(request.getParameter("salary")));
M.Tech in CNE

2014-15

16

14SCN26

Distributed Computing Laboratory

itServiceFacade.create(obj);
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Tax calculation</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>congrats user " + request.getParameter("name") + " is created
successfully</h1>");
out.println("<h1>your salary is " + request.getParameter("salary") + " </h1>");
out.println("<h1>tax is " + obj.calculateTax() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Output:

M.Tech in CNE

2014-15

17

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

18

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

19

14SCN26

Distributed Computing Laboratory

Program 4: Design and implement an offline database communication system using


JMS (Java Message Service) to service the client request.
Procedure:
Step 1: In the services section, go to server section in that start glassfish server. Then go view
domain admin console.
Step 2: In admin console click on jms resources go to connection factories, click new and name the
JNDI name [jms/tConnection Factory] and set the resource type as [javax.jms.ConnectionFactory].
Step 3: Click on destination resource name the JNDI name [jms/tQueue] and set the physical
destination name tQueue and set the resource type as java.jms.Queue and click ok.
Step 4: Open the new project in Net Beans.
Step 5: Go for Java EE in that enterprise application and name the project as jms and click next to
finish.
Step 6: Right click on jms.ejb and select message driven bean and name it as TMDB and name the
package as mdbs. Set the server destination as jms/tQueue and click next to finish.
Step 7: Write the below code
package mdbs;
import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue =
"jms/tQueue"),
@ActivationConfigProperty(propertyName

"destinationType",

propertyValue

"javax.jms.Queue")
}
public class TMDB implements MessageListener {
public TMDB() {
}
@Resource
M.Tech in CNE

2014-15

20

14SCN26

Distributed Computing Laboratory

private MessageDrivenContext mdc;


@Override
public void onMessage(Message message) {
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
System.out.println("A Message received in TMDB: " + msg.getText());
} else {
System.out.println("Message of wrong type: " +message.getClass().getName());
}
} catch (JMSException e) {
e.printStackTrace();
mdc.setRollbackOnly();
} catch (Throwable te) {
te.printStackTrace();
}
}
}
Step 8: Right click on jms.war and go to new to get jsp. Name the jsp as newjsp and click finish and
add the below lines.
<body>
<form action="sendMessage">
<table cellspacing="40"
<tbody>
<tr>
<td>Enter some message: </td>
<td><input type="text" name="message" value="Enter your message here" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="Send The message" name="send" />
</form>
</body>
Step 9: Right click on jms.war and go to new to get servlet. Name the servlet as SendMessage and
M.Tech in CNE

2014-15

21

14SCN26

Distributed Computing Laboratory

name the package as ise. Click next to finish. Add the lines shown below.
try{
Context ctx = new InitialContext();
ConnectionFactory connectionFactory =
(ConnectionFactory)ctx.lookup("jms/tConnectionFactory");
Queue

queue = (Queue)ctx.lookup("jms/tQueue");

javax.jms.Connection connection = connectionFactory.createConnection();


javax.jms.Session session =
connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(queue);
TextMessage message = session.createTextMessage();
message.setText(request.getParameter("message"));
System.out.println( "It come from Servlet:"+ message.getText());
messageProducer.send(message);
out.println("");
out.println("");
out.println("");
out.println("");
out.println("");
out.println("");
out.print("Servlet Send this message "+request.getParameter("message") + " to this Queue :
"+queue.getQueueName()+"");
out.println("");
out.println("");
out.println("");
} catch(Exception ex){
ex.printStackTrace();
}
out.close();
}
Step 10: Run the program to get the output in the browser.
Step 11: At the end of the URL type newjsp.jsp.
Step 12: Enter the message. the output is shown below.
Output:
M.Tech in CNE

2014-15

22

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

23

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

24

14SCN26

Distributed Computing Laboratory

Program 5: Design and implement the client code to call the Microsoft service like free
service from UDDI (Universal Description Discovery Protocol).
UDDI (Universal Description, Discovery, and Integration) is an XML-based registry for businesses
worldwide to list themselves on the Internet. The UDDI specification utilizes World Wide Web
Consortium (W3C) and Internet Engineering Task Force (IETF) standards such as XML, HTTP, and
Domain Name System (DNS) protocols. It has also adopted early versions of the proposed Simple
Object Access Protocol (SOAP) messaging guidelines for cross platform programming.
Procedure:
Server Side:
Step 1: Open New Project from the File menu.
Step 2: Choose Java Web from the categories tab and select Web application from the Project and
click Next.
Step 3: Give Project Name and click next
Step 4: Select the server and click Finish
Step 5: From the source package folder right click and select Web Service.
Step 6: Enter the Web Service Name as "taxcl" and enter package name as pkg and enter finish
Step 7: select design icon then click on "addoperation", in add operation select one number as in
double. Once the method is created, write the logic to calculate tax.
Step 8: Right click on webservice file and then select "Test Web Service".
Client Side:
Step 1: Open New Project from the File menu..
Step 2: Choose Java Web from the categories tab and select Web application from the Project and
click Next
Step 3: Give Project Name and click next
Step 4: Select the server and click Finish
Step 5: From the source package folder right click and select Web Service Client.
Step 6: Select project (taxcl) from Brower web Service.
Step 7: Select jsp page by right click on web page
Step 8: In jsp page, select Webservice client report (call web service operation) by right click on the
page and type below code above try block.
String d = request.getParameter("sala");
double aa = Double.parseDouble(d);
Step 9: First build and deploy the server, then build the client and run the client.
Output:

M.Tech in CNE

2014-15

25

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

26

14SCN26

Distributed Computing Laboratory

Program 6: Design and implement business logic and bind it as service using SOAP
(Simple Object Access Protocol), also implement client to call service.
Procedure:

SOAP Server Part


Step 1: Open New Project from the File menu. Choose JavaEE from the categories tab and select
EJB module from the Project and click Next.
Step 2: Give Project Name and click next.
Step 3: Select the server and click Finish
Step 4: From the source package folder right click and select Web Service.
Step 5: Enter the Web Service Name and enter package name as com.soappackage and enter finish
Step 6: Write server program.

SOAP Server program:


package com.soappackage;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
@WebService(serviceName = "SoapWebService")
@Stateless()
public class SoapWebService {
private double tax=0.0;
@WebMethod(operationName="calcualteIncomeTax")
public double calcualteIncomeTax(@WebParam(name="calculateIncomeTax")double
incomeAmount){
if(incomeAmount>=0 && incomeAmount<=250000)
tax=0;
else if(incomeAmount>250000 && incomeAmount<=500000)
tax=(incomeAmount-250000)*0.1;
else if(incomeAmount>500000 && incomeAmount<=1000000)
tax=(incomeAmount-500000)*0.2+25000;
else if(incomeAmount>1000000)
tax=(incomeAmount-1000000)*0.3+125000;
return tax;
}
M.Tech in CNE

2014-15

27

14SCN26

Distributed Computing Laboratory

}
Step 7: Deploy the server program.
Step 8: Click on Web Service, Right click on SoapWebService and click on Test Web Service.
Step 9: Server program has been done.
Output :

SOAP Client Part


Step 1: Open New Project from file menu.Choose JavaEE from the categories tab and select EJB
module from the Project and click Next.
Step 2: Give Project Name and click Next.
Step 3: Select the server and click Finish.
Step 4:From the source package folder right click and select Web Service Client.
Step5: Enter the WebService name and enter package name as com.soappackageclient and enter
finish.
Step 6: Right Click on source package and select new, in that select Entity Class.
Step 7:Give the class name and package as com.soappackageclient ,then Click next.
Step 8: Select data source as jdbc/sample and finish.
Step 9: Write the client program.

SOAP Client Program:


package com.soappackageclient;
M.Tech in CNE

2014-15

28

14SCN26

Distributed Computing Laboratory

import java.io.Serializable;
import java.util.Scanner;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class EjbSoapClient implements Serializable {
@Id
private Long id;
static class TaxInformation{
String name;
String income;
}
/*static TaxInformation getInformationFromConsole(){
Scanner scanIn=new Scanner(System.in);
System.out.println("enter your full name");
String name=scanIn.nextLine();
System.out.println("enter your tax");
String income=scanIn.nextLine();
System.out.println();
scanIn.close();
return new TaxInformation(name,income);
}*/
public static void main(String[] args){
Scanner scanIn=new Scanner(System.in);
System.out.println("enter your full name");
String name=scanIn.nextLine();
System.out.println("enter your tax");
String income=scanIn.nextLine();
//TaxInformation info=getInformationFromConsole();
double tax=calculateTax(name, income);
System.out.println("your tax"+tax);
}
private static double calculateTax(String name, String income)
M.Tech in CNE

2014-15

29

14SCN26

Distributed Computing Laboratory

{
com.soappackageclient.SoapWebService_Service service1=new
com.soappackageclient.SoapWebService_Service();
System.out.println("webservice client seeking information");
double d=Double.parseDouble(income);
double data=service1.getSoapWebServicePort().calcualteIncomeTax(d);
System.out.println("webserviceclient receving infromation"+data);
return data;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Step 11: Build the Program.
Step 12:Run the jsp file EjbSoapClient.jsp.
Output :
Please enter the name: ABC
Enter Income: 789456
Tax: 82891.2

M.Tech in CNE

2014-15

30

14SCN26

M.Tech in CNE

Distributed Computing Laboratory

2014-15

31