Implement the system using sockets programming

Assignment Help Computer Engineering
Reference no: EM131245778

Distributed Computer Systems

Assignment: Reliable Online Auction System Introduction

In this assignment, you are required to implement a reliable online auction system for multiple users. The system has the following features:

1. The client needs to log in to enter the auction. The server will then check whether the user name and password received from the user are correct.

2. If the authentication is correct, the auction frame will be displayed and the client will be added to the user list maintained by the server.

3. The item on auction has a minimum bid and a default increment. The bid placed will be checked to make sure it is higher than the current bid.

4. After a new bid is placed by one of the clients, the server will broadcast it to all clients.

5. A timer is implemented to keep a time limit for the next bid. The time left is displayed on screen to remind the clients.

6. When a new user logs in or a new bid is raised, the timer will be reset back.

7. After the time expires, the server will choose the user who placed the last bid as the winner, and broadcast to all clients that the auction has finished and he loses or wins.

In order to provide a reliable service, there are two replicated servers with the same interface of the service: primary and backup, as shown in the following figure. The primary and backup servers are located on different machines for fault tolerance. On the client side, there is a piece of client program running on client machines. When a client requests a service, the request is always first sent to the primary server if it is alive; otherwise it switches to the backup.

When the primary server is operational, the backup is largely passive. Each time when the primary server completes serving a request, it forwards its internal state (e.g. the list of active users and the current bid item, and other system state information) to the backup, keeping the backup server consistent with the primary.

Note that the communication between the two servers, and between clients and the servers is done via message exchanges over TCP/IP.

There is a possibility that the primary server fails in the middle of its processing of a request and all of the information is lost. This includes the list of active users and the current bidding status. Upon the detection of the failure of the primary server, the client program will switch to the backup server. The backup then becomes the primary and begins to serve requests from clients. The client program will direct all subsequent requests to the new primary server. When the failed server recovers, it will synchronize its local state with the working server. The probability of simultaneous failure of both servers is assumed to be negligible.

To simulate the failure of the server program, you may explicitly kill a server process. You may restart a server program as the simulation of a server's recovery from a fault. Assume that the client program knows where the primary and backup servers are.

Your jobs

You are required to implement the system using sockets programming for message exchange over TCP/IP. You may choose any programming language provided that it provides low-level socket APIs. Java and Java sockets or datagrams are recommended as a tutorial will be given on networking programming using Java, and practical programming exercises will be given at the first tutorial session. You are NOT allowed to use high-level APIs (e.g. Java RMI) or client-server tools for message exchange purposes. The purpose of this assignment is to gain experience using TCP and sockets programming and to investigate the reliability issues.

You may need to make your own reasonable assumptions and decisions for unspecified design and implementation details. Your system may run on the same machine with two server processes, S1 and S2, and several client processes. Your system should be able to survive the following failures:

1. normal cases where both servers are working;

2. kill the server on S1. The clients should automatically switch to the server on S2;

3. restart S1. The internal state of S1 should be automatically synchronized with S2;

4. kill the server on S2. The clients should automatically switch to the server on S1.

Continual Assessment

This assignment involves substantial programming work. In order to ensure that you make a good progress in your work, you are required to demonstrate your partially- implemented system as the different milestones of development at the second and third tutorial sessions and your final system at the last tutorial session.

You are also required to submit an assignment report documenting the system design and implementation details and a CD having the system source code. The report may include the following sections:

- Introduction

- System Architecture

- Discussion on System Design Issues

- Program Design and Implementation and Testing Results

- Evaluation (Objectives, learning experiences and difficulties)

- Conclusions

- References

Your work will be evaluated and given marks based on the following criteria: Milestone A (second tutorial)

1. An auction server is able to serve multiple users

2. The server is able to authenticate the user

3. The auction items can be displayed on the user screen

Milestone B (third tutorial) Server functions:

1. The system is able to check the minimum bid

2. The system is able to check the validity of bids

3. The system is able to check bids after the time limit

4. The system is able to broadcast the winning bid to clients

5. The system is able to notify the time left. User Interfaces

1. Users can see other bidders and the bidding status

2. Users are notified of invalid bids

3. Users can see the time left for a bid

4. Overall screen design

Milestone C Reliability functions:

1. The backup is kept the updated status

2. The backup is able to take over upon the primary failure

3. Clients are able to switch to the backup after the take-over

4. The primary resumes operations upon recovery and is able to synchronize the updated information

5. The primary is able to take over upon the backup failure

6. Clients are able to switch to the primary after the take-over Presentation on system design:

7. Presentation on system design issues, options, and trade-off made

Report

The content of the report

1. System Architecture

2. Identification of System Design Issues

3. Discussion pros and cons and trade-off made

4. Program Design, Implementation and Testing Results

5. Evaluation

6. Overall report organization and presentations using diagrams and tables

7. Individual Member's Reflection

The following are some suggestions:
- Which parts of the assignment you have contributed?
- What difficulties you have encountered?
- What you have learned?
- If time allows you to do it again, what improvements you would do about the system?

Reference no: EM131245778

Questions Cloud

Discuss the real-life case that you selected : Discuss the real-life case that you have selected, in which the defendant accepted a plea bargain as an alternative to trial. Give your opinion on whether or not justice was served in the case in question. Provide a rationale for the response..
What about the overall significance of the estimated model : In an important study of college graduation rates of all high school matriculants and Black-only matriculants, Bowen and Bok obtained the results in Table 15.19, based on the logit model.
How are information systems transforming businesses : How are information systems transforming businesses and why are they so essential running and managing a business today? What is information system? How does it work?
What are the financial markets : Your niece just started her college career with a major in economics. She is curious as to the interrelationship between the success of an economy and the financial markets, concepts, and financial institutions. What are the financial markets and w..
Implement the system using sockets programming : Design and implementation details and a CD having the system source code -  implement the system using sockets programming for message exchange over TCP/IP. You may choose any programming language provided that it provides low-level socket APIs.
Discuss the data loss risks that the organization faces : Discuss the data loss risks that the organization faces and A set of recovery objectives based on the risk assessment and analysis of the business requirements.
Analyze procedures governing process of arrest through trial : Research and analyze procedures governing the process of arrest through trial. Critically debate the Constitutional safeguards of key Amendments with specific attention to the 4th, 5th, 6th, and 14th Amendments. Describe the difference between sear..
How do you articulate and defend a target capital structure : How do you Articulate and defend a target capital structure for the company called westfield corporation?
Define in your words a cultural miscalculation : Define in your words a cultural miscalculation. Describe a global cultural miscalculation that has occurred in your business, or one that you have found on the Internet. How could managers handle the situation differently?

Reviews

Write a Review

Computer Engineering Questions & Answers

  Questiona company has 3 sites- micah mallory and william

questiona company has 3 sites- micah mallory and william. micah and mallory need 100 mbps of transmission capacity

  Explain about doing ethics technique

The Doing Ethics Technique (DET), ensuring you address each of the DET questions and relating specific clauses from this code to the ethical issue/s, you have identified.

  What do you mean by search engine optimization and how is

what is search engine optimization and how is it achieved? your response should be at least 200 words in

  Programming assignment

Build a Dictionary on top of a Bag built on top of an

  Show an appropriate message regarding the bonus

show an appropriate message regarding the bonus when the QuarterlySales for the SalesPerson falls within these ranges.

  How to develop a class named stock tracker

How to develop a class named stock tracker that takes the definitions: The constructor "StockTracker ()" creates an initially empty StockTracker object buy(quanity, price) method performs a purchase transaction.

  Analyze the technologies for analog-to-digital conversions

Write a 3- to 5-page paper that provides a detailed technical analysis comparing the advantages and disadvantages of analog and digital technology. With this understanding, do the following. Analyze the technologies for analog-to-digital and digita..

  Three different organizations'' e-business models

How do these organizations' business models affect way they market themselves? How does the target market learn about or find this site (e.g., search engines, referral sites, click-and-mortar advertising).

  Build a simple airline ticket reservation program

modify a simple airline ticket reservation program in C++ that keeps track of individual passenger names, and their associated flight numbers, departure dates and times, and originating and destination cities.

  Questiongiven directed network g n a with arc lengths cij

questiongiven directed network g n a with arc lengths cij. let dij be the shortest path distances between the pair ij.

  Carrying out the investigation

You work for the mid-size corporation that is known for its inventions that does the lot of work of copyright and patent. You are investigating an employee suspected of selling and distributing animations generated for your corporation.

  Questionconsider a ram of 4m words x 32 bitsword that has

questionconsider a ram of 4m words x 32 bitsword that has data lines address lines read and write down and select

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd