Abstract:
The main purpose of this project is to solve a computing problem using distributed system. This has been illustrated by considering a Student record maintenance system. The main advantage of using a distributed system is that they have a decisive price/performance advantage over the traditional time sharing systems. In such a system the computation complexity is distributed, each contributing to its part of the computation transparent to the user. Since the Java Remote Method Invocation (RMI) system allows an object running in one Java Virtual Machine (VM) to invoke methods on an object running in another Java VM, the above specified system is solved using this. This project gave me an opportunity to gain an in-depth understanding of the concepts of distributed systems and their working. Also it gave me an opportunity to learn more about Java RMI.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
Electronic commerce is take a huge stride in the internet world and banking over the internet is becoming very popular. The aim of the projects is to demonstrate a simple banking application which makes use of distributed computing. This application is used to collect bank account information of a client from several different banks where there client has got accounts. One possible use for this kind of application might be for the IRS where they need to gather financial information about a particular client from different financial institutions. The core concept used in the project is that of Mobile Agents where Agents ( small programs with code and data) can travel around the network and gather information. This has been implemented using ObjectSpace Voyager Core Technology. Voyager is an ORB Agent package. The aim of the project is to understand to the concept of mobile agents and its abilities and also to gain hands on experience of deploying distributed computing technologies such as Voyager.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
With the advancement of Internet technology, distributed database system has received more and more attention from both the academic and industry circle. This project presents a prototype of a distributed database system. Because of the time constraint, this is by no means a full-flown product. But it has some flavor of modern distributed system. The system consists of three independent workstations. Customers submit their request from site A. The request then transport to site B, where transactions are granted locks to resources in the database according to 2-phase locking algorithm. The serialized requests are then sent to site C where the database resides and the results of transaction are returned to site A finally. The underlying communication mechanism between workstations is JAVA RMI. A lightweight HTTP server is also implemented as part of support for JAVA RMI. The purpose of this project is to familiar me with JAVA RMI and gets some understanding of how a distributed system works.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code
Abstract:
The project aims at developing a database management application that is distributed in nature. The package has been developed using Java-RMI. It uses three main modules that are identified as three servers – server1/Client , server2/intermediate server and server3/final server. The three servers can run in three different nodes ( each node can be the part of a different environment e.g. Windows, UNIX ). Each server has it’s own set of database which it maintains. Further, each server provides a GUI to the user to enable him to perform the database maintenance activities. Now, a user can sit on any one of the servers and perform insertion, deletion querying or view operations on the database. In fact, three users can simultaneously sit on the three different servers and work.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This project is completed in partial fulfillment of the CS5204 Operating Systems course at Virginia Tech. The objective of the system was to read data from a file on a single node and using Java's Remote Method Invocation (RMI) support, transfer the data from the input file to two other distinct nodes, writing the data to an output file upon completion. During the data's transit through the system it is 0 or modified. The only standardized algorithm used in the software is the implementation of C.A.R Hoare's Quicksort.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The purpose of the distributed system is to improve the efficiency of a repetitious serial process through the use of pipelining. The process being modeled is an artificial intelligence technique of generating “human-like” text from sample text files. The process involves three steps: text parsing, Markov table construction, and text generation. Each of these processes is distributed among a separate machine and pass data through parameter passing. The synchronized construct in Java is used to regulate the flow of data coming into each object. The Voyager2.0.2 ORB manages the communication layer between the objects, and the creation of the objects. My objectives in building this system were to familiarize myself with Java, and to explore the synchronization issues dealing with pipelining.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The project aims to develop an application which could query multiple heterogeneous databases in a distributed fashion. The problem is discussed in more depth later. RMI (or remote method invocation) has been used to implement this system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This is a programming project. In this project, I try to use Java’s RMI mechanism to implement a simple distribute system. This system consists of three distinct network computers and is designed to solve sorting and selection problems in a distributed system. The system has following functions: remote execution of sorting and selection task. User defines a sorting task and two threshold values (low bound and up bound) in client, submit task to server. Server sorts a list of data and deletes the “bad” (less than low bound or bigger than up bound) number and repeated number from sorting result and returns the last result to client. I hope to by this project to understand the mechanism of Java RMI, and to learn to how use Java RMI to build a system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code
Abstract:
This project models an aquarium that spans across several computers. This is a simple distributed computing system – fishes represent jobs and aquariums represent VMs. The project uses Java RMI extensively. The twin objective of this project were to learn Java RMI and build a picturesque distributed computing system. The first try (an ad-hoc coding effort) illustrated the need for careful thread synchronization by design.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The time required to produce ray-traced animations in a single processor (computer) environment can be prohibitively expensive. Each frame must be rendered serially (in order) and then “stitched” together into an animation. Rendering a single frame uses substantial system resources (especially CPU) time, thus attempting to render scenes in parallel in a multi-tasking environment does not produce a substantial speed Increase. Several companies who have produced feature length, computer animated films (Toy Story, Antz, A Bug’s Life, etc.) have developed “renderfarms.” A “renderfarm” is a large bank of computers that can render an entire animation quickly by dividing the frames among the computers and rendering the frames in parallel. The goal of this project is to produce an Internet based “renderfarm” using Java RMI components that could be accessible to a large number of people and could harness a lot of the underused computers on the Internet.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This report provides an overview of the programming project in the Operating Systems course. This was a learning project, and its goal was to create a framework of Java classes and interfaces that were suitable for implementing parallelized DIVIDE-AND-CONQUER algorithms in a distributed environment. Java RMI mechanism was used to invoke procedures on remote machines. Java threads were used to perform the remote procedure calls in parallel. Along with the framework, an example was created implementing merge sort algorithm.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
Consider the problem of producing sorted lists of random numbers. A machine may exist at a site, which is capable of producing the random numbers quickly. Another machine, which is capable of sorting lists of numbers quickly, may exist at another site. Moreover, the sites of these two machines may be totally independent of each other. Use must be made of these two machines in order to solve this problem in the most efficient manner possible. Thus, the problem is transformed into a distributed computing problem. The distributed system that I built attempts to solve precisely this problem within a distributed computing environment. Thus, the purpose of the distributed system I build is to sort random lists of numbers efficiently. The technologies employed in building the system were Java’s networking classes and Java’s remote method invocation (RMI). Specifically, Java’s networking classes were used for the transfer of large amounts of data. Furthermore, Java’s RMI was used to call an external program on anothe
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
With the emerging need for real-time online transaction systems for buying and selling on the Internet, several systems have been designed and developed as prototypes. Most of these are mobile-agent based creating an electronic market place where different agents can buy and/or sell items. Mobile agents offer several good reasons for use in this arena. They have also been employed in several cases to even perform the (human) task of negotiation of the terms of sale. The application – MARS is designed to be prototype of a system for ticket reservation of tickets employing mobile agent technology. The system is intended to help a ticket agency (airline or whatever you wish to call it) in seeking the best deals given the client’s specific requirements and constraints. Use of mobile agents helps in both providing a personalized assistant to the client as well as off-loading much of the computation from the main server. The MARS system at present doesn’t include the capability to negotiate the terms of the sale si
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code
Abstract:
The project implements a distributed application using JAVA RMI. The main purpose of the application is multiplying two matrices and finding the transpose of the resultant matrix. Here three servers are run on three different machines, which are involved in finding the product and the transpose. The first machine has a client part, which initiates the process by reading in the file, which contains the two matrices. It invokes a method in server 2 and passes the file to it. The second server reads in the two matrices and finds the product. The product is passed to server 3, which finds the transpose of this matrix and sends it back to the first server. The main aim of building a distributed application is load distribution and this application fulfills that requirement. The heavy matrix computations are distributed to two other nodes in the network. The objective behind this project was to become more familiar with the working of distributed systems and learning the JAVA RMI methods and classes.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This project demonstrates a way of retrieving query data that a student may submit at one machine and a mobile agent attempts to retrieve a solution to the same by transferring data to and visiting different machines (denoted Library and Database) to start designated applications in turn to get a solution. It then gets back to the student machine and awaits further instructions if the student is not satisfied. This object may move between any combination of 3 machines, start up any applications specified by the user and transfer data using sockets until the student is satisfied.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
In the project I designed a distributed computing system using Java RMI. The computing problem is to sort a list containing some integers. The sorting problem is divided into two subtasks, sorting and merging, that is to say, the problem is solved in two steps. The first step is to sort the source list into two sorted lists, each is half size of the source list, actually they are corresponding to the first and the second half of the source list respectively, bubble sorting method is used in this step. The second step is to merge the two sorted list into the final sorted list, which is the final result. This distributed computing system consists of three sites, site 0, 1 and 2. The sorting subtask is located in site 0, while is executed in site 1, and the merging subtask is located in site 1, while is executed in site 2. Each of the subtasks will be submitted to one corresponding compute engine. Subtask sorting is submitted to sorting engine located in site 1, while subtask merging is submitted to merging engi
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code
Abstract:
Java RMI (Remote Method Invocation) is a mechanism through which applications can invoke methods on remote machines. It is a powerful mechanism for making distributed applications. The applications can exchange data through RMI calls but more importantly they can share processing of data. The system under observation capitalizes on this utility provided by Java. When one is introduced to RMI the first applications that come to mind are applications requiring extensive computation, applications using distributed data etc. RMI serves as the basic vehicle for carrying out such tasks. The system being discussed here is an example of an application that needs to access data stored at remote databases. RMI was chosen because of its ease of use and the facilities it provides for making distributed applications. The best feature of RMI is that it is transparent to the local modules of the application. There is no difference between invoking a local method and a remote method on some remote machine. All the calling ap
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The main purpose of developing a distributed system is to enable several computers that do not share a memory or a clock, to involve in a computation. These computers interact by exchanging messages over a communication network and each computer has its own memory and runs its own operating system. The computation complexity will be distributed among a group of computers each contributing to its part of computation. Distributed Transaction Processing (DTP) is a distributed system in which a set of computers update a transaction file. The transactions done are updated at each individual site and then, the file is forwarded to the next site. The above problem is solved using Java Remote Method Invocation (RMI) system which allows an object running in one Java Virtual Machine (JVM) to invoke methods on an object running in another JVM. RMI provides for remote communication between programs written in the Java programming language.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This is a programming project designing and implementing an executing system that solves a programming problem using Java's Remote Method Invocation (RMI) mechanism. This system consists of three nodes, each on a distinct networked machine and it is design to solve sorting problems in a distributed system. The problem to be solved in this project is a representative, but simple, distributed problem, where a random list of numbers is selected, and sorted and the maximum number and the minimum number of this list is picked out. The main purpose of this project is to learn to use Java’s Remote Method Invocation (RMI) to implement a distributed system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The purpose of the “Distributed Grading System” is to allow professors to distribute the workload of calculating the final grades for a course across multiple computers. The system simply reads in a file of grades, calculates the average, and returns the final letter grade. Although the project doesn’t incorporate percentages when calculating the final grade, it could easily be modified to meet that objective. The project was developed using Java RMI. RMI provides a simple infrastructure for executing methods remotely. The “Distributed Grading System” consists of three processes that communicate remotely over the network. There were a number of objectives for this project. First, I wanted to become more familiar with the Java language. Before this project I had little experience with Java, so I wanted to become more familiar with the language itself. More importantly, I wanted to learn how Java RMI works so I would be able to compare it’s operation to that of another distributed system, CORBA. Finally, I want
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The programming project is to design and implement a distributed computing system that solves a programming problem by using Java's Remote Method Invocation (RMI) and Java’s monitor mechanisms. This system consists of a server and three kinds of clients, each in a remote distinct network and the server provides clients’ synchronization and remote computing engine. The problem I want to solve in this project is that given a file of students’ raw scores, one of the three clients finishes a subtask in order to calculate the letter-level grades for a course. When a subtask load is much heavy, we can use more than one clients of the same kind to speed up the whole computation. The main purpose of the project is to learn how to use Java’s RMI and Monitor to implement a distributed computing system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The purpose of this project is to build a distributed median and biggest gap computation system. In this implementation, tasks of getting initial data, sorting data, and finding the median and biggest gap is distributed across three different machines. The system use Java RMI to create the distributed system, which transparently transmit data and invoke objects among different Java virtual machines on different hosts. The objective of building this system is to get a general understanding of distributed computation, understand the Java RMI mechanism, and use Java RMI to build practical distributed system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
The distributed client/server system is to simulate the general computing scenario: The original data is on site0 where there is limited computing capability. There are powerful computing capabilities on site1 and site2. Suppose site1 and site2 have different kinds of processing capabilities, e.g., site1 is computing intensive and site2 is more powerful in graphic processing. The data at site0 is first sent to site1 for processing. The output of site1 will be sent to site2 for further process. The final result of site2 will be delivered back to site0 where the original data is sitting. The computational work done in this project on site1 and site2 are simple arithmatic operations. The data in site 0 is stored in a wrapper data class which is an array of integers. Each element of the array is squared at site1 and result sent to site2. At site 2 the element of array is further added by 1 and result sent back to 0. The technology used in the project is Java RMI (Remote Method Invocation). The learning objective
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
This project demonstrates the state saving algorithm covered in class on Thursday February 25th, "distributed snapshots". The system maintains bank accounts and performs transfer, deposit, and withdrawal transactions. The current implementation performs transactions in a random fashion. Periodically, (every fifth transaction as long as the state is not being saved) the control process will start the state save algorithm. When all processes are finished saving their state, process zero writes the current state save number into a file. (Note: the system continues to perform transactions as normal, even when saving state.) When a crash occurs, and the system is re-started, it loads up the most recent state and continues processing transactions. The test version of the program loads up the most recent save state and then reruns a log file of transactions. The test was implemented this way to prove that the saved state is consistent. The final states are exactly the same when (1) running the program to completion
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full
Paper
Source
Code
Abstract:
In this project, I implemented one parallel search algorithm (Depth First Search algorithm) to solve a typical discrete optimization problem, an 8-puzzle problem. The main purpose of the project is to demonstrate the speedup gained by the parallel computing to solve large search problem. The project implemented the dynamic load balance, task migration and termination detect algorithms. The program was running on IBM SP2 (Scalable Parallel Processor). The underlying communication layer was using MPI (Message Passing Interface).
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code
Abstract:
The purpose of this project is to set up a distributed median score computation system, distributing the functions of creating raw scores, sorting scores, and getting the median score onto three different nodes. The system creates a data transmission engine using Java RMI, providing a transparent communication channel transmitting data from one node to the other. The objective of building this system is to understand and become more familiar the working mechanism of Java RMI, and to learn to how use Java RMI to build a practical system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source Code
Abstract:
The purpose of this project is to set up a distributed file transfer system, implementing the functions of file reading and writing using Java stream. The system creates a simple “file server” using Java RMI, providing a transparent communication channel transmitting data from one node to the other. The objective of building this system is to understand the mechanism of Java RMI, and to learn to how use Java RMI to build a system.
Your can view or download the full paper (PDF)
as well as the project source code from the following links.
Full Paper
Source
Code