Ask Computer Engineering Expert

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

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M91946565

Have any Question?


Related Questions in Computer Engineering

Does bmw have a guided missile corporate culture and

Does BMW have a guided missile corporate culture, and incubator corporate culture, a family corporate culture, or an Eiffel tower corporate culture?

Rebecca borrows 10000 at 18 compounded annually she pays

Rebecca borrows $10,000 at 18% compounded annually. She pays off the loan over a 5-year period with annual payments, starting at year 1. Each successive payment is $700 greater than the previous payment. (a) How much was ...

Jeff decides to start saving some money from this upcoming

Jeff decides to start saving some money from this upcoming month onwards. He decides to save only $500 at first, but each month he will increase the amount invested by $100. He will do it for 60 months (including the fir ...

Suppose you make 30 annual investments in a fund that pays

Suppose you make 30 annual investments in a fund that pays 6% compounded annually. If your first deposit is $7,500 and each successive deposit is 6% greater than the preceding deposit, how much will be in the fund immedi ...

Question -under what circumstances is it ethical if ever to

Question :- Under what circumstances is it ethical, if ever, to use consumer information in marketing research? Explain why you consider it ethical or unethical.

What are the differences between four types of economics

What are the differences between four types of economics evaluations and their differences with other two (budget impact analysis (BIA) and cost of illness (COI) studies)?

What type of economic system does norway have explain some

What type of economic system does Norway have? Explain some of the benefits of this system to the country and some of the drawbacks,

Among the who imf and wto which of these governmental

Among the WHO, IMF, and WTO, which of these governmental institutions do you feel has most profoundly shaped healthcare outcomes in low-income countries and why? Please support your reasons with examples and research/doc ...

A real estate developer will build two different types of

A real estate developer will build two different types of apartments in a residential area: one- bedroom apartments and two-bedroom apartments. In addition, the developer will build either a swimming pool or a tennis cou ...

Question what some of the reasons that evolutionary models

Question : What some of the reasons that evolutionary models are considered by many to be the best approach to software development. The response must be typed, single spaced, must be in times new roman font (size 12) an ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As