Description
This assignment will involve a proposal for the design and implementation/prototype of a distributed application/system to be implemented in Java (you may request an alternate language) that will be the target of Assignment 3.
As option 1 for this assignment your task is propose a project design of your own direction that leads to Assignment 3. The target project will implement a server(s) and the clients that will provide a robust distributed application in your selected problem domain. As an alternative project selection noted as option 2, you may follow the requirements of the document-vending system. Both projects will involve a proposal document describing the process of design, implementation, and testing of your application. The proposal from Assignment 2 will lead to a final document and implementation in Assignment 3.
Details
Your Distributed System (option 1)
The application must address the following properties:
· Multiple processing entities in the form of clients and servers.
· Shared data/state information.
· Robust operation in the form of communication, processing, and crash/restart capability.
· Must only use the Java language packages (no external packages other than for user interface support).
· Must be non-trivial and use literature support as the basis for the inspiration.
Document Vending Application (option 2)
This assignment will involve the design and implementation of a multi tiered client-server architecture (to be implemented in Java). Your task is to design and implement a server and the clients that will provide reliable transmission in the given problem domain. The client-server system will implement an application that will provide document-vending support. This distributed application will provide the client with a set of documents (and their associated costs) they may purchase. Clients will select their documents and must pay before receiving them.
You will design and implement a single server that will function as the document vending
application for multiple client connections (which you will also design and implement). The document vending application must be written in Java and does not include commercial database-engines (other than your own implementation of a data store). This server will provide a list of documents and their associated costs. A client may review the server’s products and make download requests.
This assignment will involve the design and implementation of a cache service for your document vending application. You do not need multiple machines to implement or test this project. However, the assumption is that each element can exist on a separate physical machine and must use remote communication to accomplish a given task. The intent of the cache is to reduce read latency. This assignment will introduce the concept of a cache service and give you experience in the design and implementation of a multi-tiered system.
In this project, you must design and impleme.
DescriptionThis assignment will involve a proposal for the des.docx
1. Description
This assignment will involve a proposal for the design and
implementation/prototype of a distributed application/system to
be implemented in Java (you may request an alternate language)
that will be the target of Assignment 3.
As option 1 for this assignment your task is propose a project
design of your own direction that leads to Assignment 3. The
target project will implement a server(s) and the clients that
will provide a robust distributed application in your selected
problem domain. As an alternative project selection noted as
option 2, you may follow the requirements of the document-
vending system. Both projects will involve a proposal document
describing the process of design, implementation, and testing of
your application. The proposal from Assignment 2 will lead to a
final document and implementation in Assignment 3.
Details
Your Distributed System (option 1)
The application must address the following properties:
· Multiple processing entities in the form of clients and servers.
· Shared data/state information.
· Robust operation in the form of communication, processing,
and crash/restart capability.
· Must only use the Java language packages (no external
packages other than for user interface support).
· Must be non-trivial and use literature support as the basis for
the inspiration.
2. Document Vending Application (option 2)
This assignment will involve the design and implementation of
a multi tiered client-server architecture (to be implemented in
Java). Your task is to design and implement a server and the
clients that will provide reliable transmission in the given
problem domain. The client-server system will implement an
application that will provide document-vending support. This
distributed application will provide the client with a set of
documents (and their associated costs) they may purchase.
Clients will select their documents and must pay before
receiving them.
You will design and implement a single server that will function
as the document vending
application for multiple client connections (which you will also
design and implement). The document vending application must
be written in Java and does not include commercial database-
engines (other than your own implementation of a data store).
This server will provide a list of documents and their associated
costs. A client may review the server’s products and make
download requests.
This assignment will involve the design and implementation of
a cache service for your document vending application. You do
not need multiple machines to implement or test this project.
However, the assumption is that each element can exist on a
separate physical machine and must use remote communication
to accomplish a given task. The intent of the cache is to reduce
read latency. This assignment will introduce the concept of a
cache service and give you experience in the design and
implementation of a multi-tiered system.
In this project, you must design and implement a single cache
3. service that supports multiple clients (IE. any client created
within your system will have access to the cache service). You
must design and implement the cache functionality such that it
supports the lookup, addition, and removal of elements in the
cache. Thus, the cache must have a fixed size and must be
consistent. This cache service becomes part of the Document
Vending Server. Additionally, the Document Vending Server
will interface with a data layer that stores the entire inventory
of documents.
Each Java client must interface with your Java Document
Vending Server. The client-server system will allow a user to
send a request for a text file to the server. The assignment will
require you to develop a client Java application (VClient), a
server Java application (VServer) and the data server (DServer).
The system will run on a single physical machine by invoking
multiple instances of the Java Virtual Machine.
Details
Client-Server System
The design and implementation of the client-server file vending
application will consist of multiple layers and their associated
application protocols using a reliable transport protocol:
1. Presentation Layer
· The Client.
2. Processing Layer
· The Document Vending Application Server.
· Cache Service.
3. Data Layer
· Document Store.
4. The Client
A client program must be designed and implemented. This Java
program will communicate with the end user and your
Document Vending Server. For this assignment a graphical user
interface for the client is neither required nor prohibited. In
general, it is better to produce a correctly designed and properly
implemented basic program than to produce a poor quality
program with many bells and whistles.
The client will initially communicate with the Document
Vending Server to start an application session. Your Java client
program will provide the options to send a request for service
from the server for processing. After session initialization, the
user must supply one of the following options:
· Get document names and costs (IE. return all file names
present on the vending server along with their associated costs).
· Retrieve document name (read the entire contents of the given
file from the Vending Server) and thus receive a notice of
payment.
· At least one client must have the proper authority to add and
remove documents.
The client must support an interactive mode, which includes the
specification of the file and all processing options. Output must
be displayed on the client’s screen. Each client will
communicate with the server. The communication is presented
in more detail in the next section.
The Server
You will develop a Java server that functions as a Document
5. Vending Service. The server will receive the input from the
Java client. Your server must enforce the cost structure per
document and handle exceptions.
Each client will send its request to the Document Vending
Server. The server will then review the request and complete its
duty by fulfilling the specified action. Each server request
forms the basis of the client-to-server protocol portion of the
communication.
The request contains one of the following options:
· Get document names and costs (IE. return all file names
present on the vending server along with their associated costs).
· Retrieve document name (read the entire contents of the given
file from the Vending Server) and thus receive a notice of
payment.
This document vending machine has distinct types of documents
with the following cost associated with these documents: A 75
units, B 110 units, C 130 units, D 200 units, E 200 units, and F
500 units. Initially, the inventory will have n of each object
(specified as a startup parameter where n is an integer between
0-20). For the sake of simplicity, a document is equivalent to a
file that has size of 1K times the given cost. Therefore,
documents of type A are 75K, documents of type B are 110K,
and so on.
The document name space is global and you may use standard
files within the data server to
represent the document data. After the server has received a
request for a document, it will send a notice of payment prior to
sending the document, provided the server may fulfill the
request. If the document is in the cache (function explained in
the next section), the server may reduce the cost of any
document by 50%. Thus, the server-to-client protocol will
6. consist of responses to the client’s requests.
Cache Service
Your Document Vending Server must include a cache. A cache
service will hold data elements of interest to the clients. Your
design and implementation of a cache service must address the
following issues:
· Cache size
a. Cannot be infinite.
b. Must make sense for the system.
c. Must be re-configurable based on an initialization parameter.
· Must support element query
a. Search for data in the cache.
b. Return data if present.
· Must support element creation
a. Adding of data to the cache.
b. Place in unused space if available.
· Must support element removal
a. Remove data from cache.
b. Define a formula to remove elements.
· Support cache consistency
a. Reads.
b. Writes.
· Cache service interactivity
a. Client interaction.
b. Server interaction.
Data Store
A separate data layer must be developed to support a persistent
store for the documents associated with a global inventory. This
data layer must implement its own mechanism and must not
7. interface with any preexisting database package. However, you
may use standard files within this data layer. This data layer
must support the data requirements of the Document Vending
Server (described functions above) and only interface with the
Document Vending Server.
Deliverables for both options (1 & 2) Initial Project Proposal
Paper
Write an Initial Project Proposal Paper that accomplishes the
task of specifying your proposal. The structure of Assignment 2
must follow the format presented below and contain the
following:
· A rigorous problem description that is relevant and significant
to the area of your choice. Your descriptions should be as
precise and rigorous as possible.
· A discussion of the most influential papers on the topic.
· A proposal that:
Involves the further development of a solution in the focus area,
or
Involves a new approach to the focus area.
· A literature review describing the background of your topic.
· An approach that discusses a potential methodology for the
solution of the problem.
Address each of the points below in descriptions that smoothly
transition using the framework listed below. The written work
will be judged based upon the quality of your writing (grammar,
word selection, clarity, organization, and smoothly flowing
discussion), your understanding of the content (accuracy,
analysis, and synthesis), and the experiment’s compliance with
8. the design and test methodology.
Use 12-point Times New Roman font, double-space, section
headers and sub-headers, and citations and references in APA
style.
Proposal Items
Introduction, Problem and Goal
This contains a concise statement of the problem, need and a
concise definition of the goal of the work. The point of a goal is
to establish a measurable entity that is used in evaluating your
work. Provide the necessary background and discuss the
relevant literature that was the focus of the research.
Discuss the problem in detail.
Review of the Literature
Provide detail on the research contributions that support the
problem, need or goal.
Approach
Describe the method used to address the problem.
An outline of the project proposal format is given below:
9. Front Matter
Title Page
Table of Contents
The Text
Chapter I. Introduction
Relevance, significance and need for the study
Statement of the problem to be investigated and goal to be
achieved Definition of terms
Summary
Chapter II. Review of the Literature
The theory and research literature specific to the topic Summary
of what is known and unknown about the topic
Chapter III. Approach
Specific Methods and Procedures to be employed Resources
Summary
Back Matter
References
Content
10. Chapter I. Introduction
This chapter explains the reasons for conducting your study.
Provide a clear and concise statement of the problem to be
investigated and goal to be achieved. The problem is defined in
specific terms.
Reference the relevant literature throughout your paper. Do not
provide an entry in the Reference section of your paper unless
you have cited it in the body of the paper.
Chapter II. Review of the Literature
This chapter begins with an introduction that explains the
purpose of the literature review and concludes with a summary.
Organize the review by subject headings.
This chapter extends the context for the investigation. Use
various sources to highlight and identify important previous
work used to provide additional support. State the contributions
other researchers have made to the subject explain the impact of
their work on your study.
Chapter III. Approach
This chapter delineates, in detail, the ways in which the
project/investigation will be conducted. The model described
provides the potential methods, and measurements for the study.
References
All works cited in the paper must appear in the reference list.
11. Submit a ZIP file consisting of a Word document containing the
Project Proposal Paper and a full- text copy of each article
referenced (only those that were cited) in your paper to the
Assignment 2 category in Blackboard.