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

  Create a gui pad that has numbers and letters

Create a GUI pad that has numbers and letters(That can be capitalized), and a text area to display One button that clears the text.

  Which truck will cause more pavement damage

On a flexible pavement with a 3-inch hot-mix asphalt (HMA) wearing surface, a 6-inch soil-cement base, and an 8-inch crushed stone sub base, which truck will cause more pavement damage?

  Definite characteristics of organizations

Determine whether or not there are definite characteristics of organizations that are more likely to use cloud computing than other organizations. Provide a rationale for your response

  Plan an er diagram

Plan an ER diagram

  Describe what you consider to be some attributes

explain what you consider to be some attributes of a well-written program. What would you look for when reviewing a programmer's code during a quality assurance review.

  Make a plan to deploy several visual basic.net

Your supervisor has asked you to develop a plan to deploy several Visual Basic.NET applications to users in your company. Discuss the important considerations in this effort and give a summary of the technical approach you would use to deploy thes..

  Determine number of gate that can be enclosed in one package

TTL SSI come mostly in 14-pin packages. Two pins are reserved for power and the other 12 pins are used for input and output terminals. Determine the number of gates that can be enclosed in one package.

  Question regarding the white rabbit

A magician has a hat that holds two rabbits. One rabbit is black and the other is white. In his last 16 performances he has randomly pulled the black rabbit from the hat 16 times. The probability that he will pull the white rabbit from the hat in ..

  Calculate the total dollar sales for each salesperson

A company has a product line that contains five items that sell for $100, $75, $120, $150, and $35. There are four salespersons working for this company, and the following report is for a given week.

  Example that utilizes some form of recursion

Java / XML example that utilizes some form of recursion. Include blocks of code and the XML with your example

  Compare the merits of atm and gigabit ethernet technologies

compare the advantages of atm and gigabit ethernet technologies as high-speed networking solutions. describe how to

  What to do with existing personnel retain and retrain

What to do with existing personnel retain and retrain, hire a IT administrator or not, etc ), and of course costs and benefits as broken down as shown in questions 1 through 3 above.

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