Designing and developing a simple im system

Assignment Help Computer Engineering
Reference no: EM131190481

Client and Server System - Instant Messenger (IM) Application Project

In this project you will be designing/developing a simple IM system. A functional description of an IM system that your design should conform to is presented below. However, we will leave the precise details of the design up to you (maybe you want to make it state driven, using an Finite State Machine design, or use other techniques, maybe you want to add bells and whistles beyond what we outline all up to you). But please think about the design before diving into coding it will help. Feel free to look at some of the IM references presented at the end of this assignment, on the web, existing specs, but always remember to cite sources (do not use any existing code, you can look at other open source code for sure, for inspiration, ideas, etc.

- The materials posted under the course materials are Java based, but feel free to use any programing language that you are more familiar with.

- Please follow the submission instruction when submitting your work for grading.

Blueprint for a Simple IM System-

Many of you are familiar with IM from a user's perspective but may not have given much consideration to its operation. The precise operation of an IM system will vary between different systems (e.g., AIM, MSN, iChat) but the essential functions remain the same.

For the purposes of this project we require your simple IM system to incorporate the following functionality:

1) IM clients are able to join and leave the IM network. Every client has a user name and at any one particular time no two clients connected to the IM network can have the same user name. So some name checking is required in your code.

2) When IM clients join the network other connected clients are made aware of this change within the network the presence component. Similarly, the reverse should be true; that is, when clients leave the network other connected clients should be informed. So you need notification and state management a consistent view.

3) Connected IM clients are able to send messages to any other connected IM client. Messages are addressed to particular IM clients using their user name.

Given that constructing an elaborate IM system would be a semester long project, we have limited the scope of this assignment/project in comparison to a full blown IM system such as supported by MSNP.

It is perfectly acceptable to adopt the following simplifications:

1) A command line user interface is acceptable, only add a GUI if you would like to again keep it simple.

2) You are not required to maintain buddy lists specific to each IM client. It is fine to assume everyone in the IM network is part of a single universal buddy list. For instance all IM clients should be notified when any IM client joins or leaves the network. Furthermore, all IM clients should be able to exchange messages with any other IM client.

3) Your design only needs to support a single IM server. Although, this is not a scalable approach it simplifies the task of building your IM system. You may assume all clients are aware of this single well-known IM server. So your server will sit on a known host and have a known port. Clients simply connect using sockets. By only having a single server you do not need to be concerned with maintaining consistent state between multiple servers, so essential in a real system.

However, feel free to provide any additional functionality if you wish, it will be rewarded as extra-credit. But completing the base line system with no extras would be outstanding. See how things go.

The objective of this assignment is for you to design and implement an IM system that conforms to the description outlined above. It is a fairly high level description, so the details are up to you. Supporting these features will require you to define an application level protocol that controls how participants in the system communicate. We suggest you adopt the client/server approach when designing your IM system.

The server should perform operations, such as:

(a) monitor clients that join and leave the IM network;

(b) maintain a reasonably consistent view of clients currently connected to the network and provide this state information to all the currently connected clients;

(c) facilitate the exchange of messages between clients.

The clients should perform operations, such as:

(a) display to "the user" the currently connected IM clients; and

(b) allow "the user" to send and receive messages to and from any of these clients, respectively.

References-

Instant Messenger Systems

Yahoo Instant Messenger Protocol

MSNP (Early Internet Draft)

Java Programming

Java concurrency documentation

Java net package documentation

Java Sun Tutorial: Custom Networking

The server should perform operations, such as:

(a)  monitor clients that join and leave the IM network

(b)  maintain a reasonably consistent view of clients currently connected to the network and provide this state information to all the currently connected clients; and

(c)  facilitate the exchange of messages between clients (one-to-one).

(d)  multi-threaded so that it can concurrently service more than one IM client a time.

The clients should perform operations, such as:

(e)  display to "the user" the currently connected IM clients; and

(f)  allow "the user" to send and receive messages to and from any of these clients, respectively.

(g) Specification

Please explain the code in detail (words) after you have done

1. A high level description

2. Define the protocols

3. Provide a comment on reasons behind any important design decisions

(h) Documentation and Demo

Reference no: EM131190481

Questions Cloud

Company considerations in issuing a coupon bond : 1. How many of the coupon bonds must East Coast Yachts issue to raise the $50million? How many of the zeroes must it issue? 2. In 20 years, what will be the principal repayment due if East Coast Yachts issuesthe coupon bonds? What if it issues the ..
To what degree is radio broadcasting a public good : Think about the rival and excludable properties of public goods.- To what degree is radio broadcasting a public good?
What is the firm balance of current assets : You have the following information on Universe It Ts, Inc.: sales to working capital = 19 times, profit margin = 26.9%, net income available to common stockholders = $4.9 million, and current liabilities = $1.9 million. What is the firm's balance ..
An example of a free rider problem in your hometown : Think of an example of a free rider problem in your hometown.- Can you think of a way for your local government to overcome this problem?
Designing and developing a simple im system : In this project you will be designing/developing a simple IM system. However, we will leave the precise details of the design up to you (maybe you want to make it state driven, using an Finite State Machine design
A tax system that lead residents to underreport valuations : Describe a tax system that would lead residents to underreport their valuations.- Describe an alternative system that could lead residents to overreport their valuations.
Employee social security tax rate : What is the employee's Social Security tax rate for 2016? What is the self-employed person's FICA tax rate for 2016?
Evaluate the options for solving the problem : Define the problem in the scenario that you have chosen. Analyze the problem in the scenario. Generate options for solving the problem in the scenario. Evaluate the options for solving the problem.
Raise all your capital by borrowing : This year you are planning to raise all your capital by borrowing. Your assistant says that you should evaluate new investments this year using the cost of debt only. Is he/she correct? Why or why not?

Reviews

Write a Review

Computer Engineering Questions & Answers

  Calculate and display the miles-per-gallon value

Program that asks the user to enter the number of miles traveled and the number of gallons of gasoline consumed. It should then calculate and display the miles-per-gallon value. Confine your output to 1 decimal place.

  Compute the dollar amount of money in a piggy bank

Write down a detailed set of instructions, in English, to calculate the dollar amount of money in a piggy bank that contains h half-dollars, q quarters, n nickels, d dimes and p pennies.

  Why might your coworker suggest encrypting an archive file

Why might your coworker suggest encrypting an archive file before e-mailing it? What kind of network traffic can you filter with the Windows Firewall with Advanced Security?

  Explain your experience installing the microsoft office

write a short paragraph in which youquestion 1 describe your experience installing the microsoft office suite software.

  Evaluate the total with insurance

Enter the insurance rate as a mixed cell reference in the formula, making the row number absolute.

  Java program that asks the user to enter two numbers x and b

Java program that asks the user to enter two numbers x and b.

  Prepare a gantt chart and critical path flow chart

You are going to prepare a three-course dinner for your gourmet dinner group for a party of eigh. Prepare a Gantt chart, critical path flow chart and a stove deployment chart (i.e., oven top) for your dinner party.

  Related to super and sub class

Write down a class definition for subclass LawSchool which consists of: A (default) constructor which invokes the superclass constructor along with the value 3 (law school is typically a three year program).

  Explain conceptual model of effective computer instruction

Briefly explain the conceptual Model of Effective Computer Based Instruction for Adults, outlining the three Units (Input, Process, and Output).

  Draw the binary search tree

Draw the binary search tree which results from inserting the number in left-to-right order, assuming no balancing:

  Develop a requirements definition for the new system

Develop a requirements definition for the new system. Include both functional and nonfunctional system requirements. Pretend that you will release the system in three different versions. Prioritize the requirements accordingly.

  What indicates the big-o value

What indicates the Big-O value of a given method (or algorithm) - What represent the best-case, average-case and worst-case performance of an algorithm?

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