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

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

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