Distributed Systems Lab

INSTITUTE VISION:

To be the center of excellence in technical education and preferred choice of students, faculty, industry & society

INSTITUTE MISSION:

1. To empower the faculty, staff and aspiring engineers with essential technical knowledge & skills

2. To develop competence towards serving the ever changing needs of industry & society

3. To inculcate social & ethical values amongst the students and employees

4. To strengthen collaborative research & consulting environment with industry and other institution


Department Vision:

To be preferred choice of stakeholders by building core theoretical and practical skills in the students and abreast them to be globally competent with the latest technologies, skills and developments emerging in the field of Computer Science and Engineering.

Department Mission:

To impart quality education to the students with

Through essential technical comprehension and skills.

The awareness of societal and ethical needs in the field of computer science and Engineering.

Building competency with existing tools and technologies.

Course Learning Objectives:
1. Understand foundation of Distributed Systems
2. Understand basic concepts of Grid Computing
3. Understand in detail the system level and support required for distributed system
4. Understand principles of High Performance Computing
Course Outcomes:
CO4
After the completion of the course the student should
be able to
CO4
Apply the concepts of communication and simulate synchronization algorithms in distributed
systems.
CO4 Analyze Grid and cluster computing tools
CO4 Develop the Application in Distributed Computing(Google App Engine)
CO4 Explain HPC Case Studies
--------------------------------------------------------------------------------
EXPERIMENT NO: 01

TITLE OF EXPERIMENT: SOCKET PROGRAMMING
AIM: TO STUDY SOCKET PROGRAMMING.
Socket programming is a way of connecting two nodes on a network to communicate with each other. One socket (node) listens on a particular port at an IP, while the other socket reaches out to the other to form a connection. The server forms the listener socket while the client reaches out to the server.
-----------------------------------------------------------------------------------
EXPERIMENT NO:02
TITLE OF EXPERIMENT: CLIENT-SERVER WITH RPC
AIM: TO STUDY CLIENT-SERVER BASED PROGRAM USING RPC


RPC is a powerful technique for constructing distributed, client-server based applications. It is based on extending the notion of conventional or local procedure calling, so that the called procedure need not exist in the same address space as the calling procedure. The two processes may be on the same system, or they may be on different systems with a network connecting them. By using RPC, programmers of distributed applications avoid the details of the interface with the network. The transport independence of RPC isolates the application from the physical and logical elements of the data communications mechanism and allows the application to use a variety of transports.

RPC makes the client/server model of computing more powerful and easier to program. When combined with the ONC RPCGEN protocol compiler clients transparently make remote calls through a local procedure interface.
An RPC is analogous to a function call. Like a function call, when an RPC is made, the calling arguments are passed to the remote procedure and the caller waits for a response to be returned from the remote procedure. Figure shows the flow of activity that takes place during an RPC call between two networked systems. The client makes a procedure call that sends a request to the server and waits. The thread is blocked from processing until either a reply is received, or it times out. When the request arrives, the server calls a dispatch routine that performs the requested service, and sends the reply to the client. After the RPC call is completed, the client program continues. RPC specifically supports network applications.

Conclusion : Hence we have studied and run Client-Server based RPC program successfully.
------------------------------------------------------------------------------------
EXPERIMENT NO:03
TITLE OF EXPERIMENT: CLIENT-SERVER WITH RMI
AIM: TO STUDY CLIENT-SERVER BASED PROGRAM USING RMI

Remote Method Invocation (RMI) is an API that allows an object to invoke a method on an object that exists in another address space, which could be on the same machine or on a remote machine. Through RMI, an object running in a JVM present on a computer (Client-side) can invoke methods on an object present in another JVM (Server-side). RMI creates a public remote server object that enables client and server-side communications through simple method calls on the server object.
Stub Object: The stub object on the client machine builds an information block and sends this information to the server.
The block consists of
• An identifier of the remote object to be used
• Method name which is to be invoked
• Parameters to the remote JVM
Skeleton Object: The skeleton object passes the request from the stub object to the remote object. It performs the following tasks
• It calls the desired method on the real object present on the server.
• It forwards the parameters received from the stub object to the method.



These are the steps to be followed sequentially to implement Interface as defined below as follows:
1. Defining a remote interface
2. Implementing the remote interface
3. Creating Stub and Skeleton objects from the implementation class using rmic (RMI compiler)
4. Start the rmiregistry
5. Create and execute the server application program
6. Create and execute the client application program.