Blurple Group Project Proposal v1.docx - Google Code

weaverchurchΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 4 χρόνια και 10 μήνες)

313 εμφανίσεις

Generic Messaging Platform

Project Proposal

Gavin Dodd

3
/
8
/2010




1.

Introduction

................................
................................
................................
................................
....

3

2.

System Overview
................................
................................
................................
.............................

3

3.

System Functionality

................................
................................
................................
.......................

4

Messaging Server Platform

................................
................................
................................
.................

4

Plug
-
in Server Modules

................................
................................
................................
.......................

4

Client Applications

................................
................................
................................
..............................

5

4.

Project Planning

................................
................................
................................
..............................

5

Code Size Estimates

................................
................................
................................
............................

5

Server Code

................................
................................
................................
................................
.....

5

Client Code

................................
................................
................................
................................
......

6

Time Scales

................................
................................
................................
................................
..........

6

Sprint 1


Basic Functionality

................................
................................
................................
..............

6

Week 1

................................
................................
................................
................................
............

6

Week 2

................................
................................
................................
................................
............

6

Week 3

................................
................................
................................
................................
............

6

Week 4

................................
................................
................................
................................
............

6

Sprint 2

................................
................................
................................
................................
................

7

Week 5

................................
................................
................................
................................
............

7

Week 6

................................
................................
................................
................................
............

7

Week 7

................................
................................
................................
................................
............

7

Week 8

................................
................................
................................
................................
............

7

Deliverables
................................
................................
................................
................................
.........

7




1.

Introduction


This document outlines a proposal for a group project for the C
SC 668/868 Advanced OODAA Course
to be developed by the Blurple project team. The team consists of Gavin Dodd (Team Leader) Tim
McCarthy, Jordan Mangini, Elvin Ha, Andrew Coggeshall, Jorge C. And Simon Lew. All project tasks
will be distributed as evenly a
s possible,

with all members contributing to source code,
documentation and testing.

2.

System Overview


This project will deliver a
multi client messaging system that will allow clients to exchange messages
between other clients that are connected to the se
rver. The content of the messages is going to be
very flexible allowing a client to pass data within a nominal messaging group, and the client is going
to be able to interpret the data in any way it likes.

Web Server
Server DB
Messaging Server
Application Server
Application Module
(
AnChat
)
Applcation Module
(
DiceVegas
)
Client Application
(
AnChat
)
Client Application
(
DiceVegas
)
xmlHTTPRequest
xmlHTTPRequest

Clients within a par
ticular messaging group will be able to display the message data in whatever way
they like. All messages sent will be routed through a Server Module. This server module allows for
control and processing of the message data and subsequent
processing of the
message data. T
his
flexible approach will allow the system to be used for a wide variety of
messaging
purposes, for
example


simple multi
-
client games, live chat applications, picture exchange, location based
applications,
twitter like broadcast messaging
,
etc etc.

Each of the server modules will sit on top of the messaging
application
framework, and
use its
messag
ing capabilities to facilitate the modules functionality, for example broadcasting a message to
all clients within the messaging group.

3.

System
Functionality


Messaging Server Platform


This will provide a persistent store of messages that can be routed to a client once they connect to
the system.
The basic messaging functionality provided by xmlHttpRequest objects


this will allow a
wide variety

of devices to connect and utilize the server


in fact almost any web enabled device.
At
the very least this will provide reliable messaging with optional time to live for each message to
prevent a back
log of messages being built up, and broadcast message

capability. Messages will be
stored in queues (a single database table) with the database being MySQL. The messaging server
platform will be written in using Ruby on Rails for quick development purposes.

The
Application Server
will provide a web based in
terface for configuration and monitoring of
message groups
while the Message Server will provide visibility and management of the Messaging
System
.


Plug
-
in Server Modules


Each server module will be written in Ruby as a controller class. This controller class will contain the
application logic
that decides how to process the messages sent by the clients. Each server will
create and manage one or more messaging groups to whic
h a client belongs. The server modules are
to provide client authentication if required. We may develop a base server module class, and extend
this
So Server > AuthenticatingServer, SimpleServer (for just passing messages between clients
unaltered)

etc, an
d have subsequent servers inherit from this to quickly give themselves
functionality such as authentication of clients etc.

There will be two server modules written:

1.

Forum application with location information.

2.

Virtual Dice gambling game.

Server Modules w
ill handle their own client authentication, but may make use of inherited
authentication and session code.




Client Applications


Client applications will utilize the simple messaging protocol to
allow exchange of information with
the server module and c
lients within the message group.

There will be two client applications written to demonstrate the flexibility of the system.

1.

Simple
Android based client application for utilising the onboard
mobile
location based
services to provide a live “forum” type
me
ssaging
application with a google map showing the
locations of each client within the group while they are connected.
Envisioned to allow
groups of people to chat on a particular topic in real time, and use the location information
map to decide on meeting

places, or perhaps search patterns etc.


2.

Simple dice game played between several clients


each client is given a certain amount of
money to bet on each roll of their die (
configurable number of die
)
. Highest roll wins, on a
tied high roll


winnings are

split. Rules to be refined further. GUI interface showing the roll
s
of all players and the winner will be a single web page hosted on the web server which will
also use the same xmlHTTPRequest object for messaging to the server.

4.

Project Planning


Code Si
ze

Estimates


Server Code

Server Modules should be reasonably small. Each one will be a single web page with all module logic
encapsulated within the main controller class, and additional classes will be required to encapsulate
application specific
messages, so this could be more involved. Effort will be made to reduce
complexity during development in order to deliver a working application.

There will
significant work on the messaging server, though utilizing ruby on rails for this will
significantly

reduce the amount

of “boiler plate” coding and Database work on the back end, and
allow us to concentrate on the actual message queues and routing
.
A large part of the work here will
be in designing the messaging protocol that will allow messages to trans
port a generic data payload
and route it to the appropriate end point within a message group.


Code size estimation


2000 lines
.





Client Code


Client applications will remain very limited in the first sprint so that we have at least basic message
handling and display on the clients. This is especially important for the Android client. Fortunately
we have experience within the team with android development, and the application will be very
limited initially. Further sprints can be used to add additi
onal features as time permits.

Code size Estimation

500
-
1000 lines
per client
.

In all cases, complexity will be minimized in favour of delivering working code.


Time Scales


It is very tough to estimate these at this stage as significant design has not be
en done, however this
is a rough estimate.

Sprint 1


Basic Fun
c
tionality

Week
1

1.

Development Environment configuration


NetBeans for Ruby On Rails Server


Eclipse/Netbeans for Android development.

2.

Message Protocol Design.

3.

Message Queue Table Structure.

4.

A
pplication Server Design.

5.

Server Module Design.

6.

Android Development “Hello World” with internet access prototype.

7.

DiceVegas rules and Client web page design.

Week 2

1.

Message Server Implemented with limited functionality


storage and retrieval of messages
from queues


creation of queues as required.

2.

DiceVegas Server Module implemented


rules implemented and tweaked.

3.

Android Client Implements Map View and simple chat

window.

Week 3

1.

Application Server Implementation.

2.

DiceVegas Client Web Page implemented.

3.

AnChat Server Module designed/implemented.

Week 4

1.

Unit tests for all Messaging and Application Server code.

2.

Unit tests for all AnChat code.

3.

Unit tests for all DiceVeg
as code.


Sprint 2


Week 5

1.

Client authentication code client and server.

2.

System testing.

Week 6

1.

Web Server admin pages.

2.

AnChat Server admin pages.

3.

DiceVegas admin pages.

Week 7

1.

Documentation for Server/Messaging protocol.

2.

Documentation for Anchat.

3.

Documentation for DiceVegas.

Week 8

1.

Additional Feature implementation


nice to have features


making the GUI’s look nicer etc.


Deliverables


1.

Messaging Server.

2.

AnChat Server Module.

3.

AnChat
Client


Android based mobile chat client application using locat
ion api
.

4.

DiceVegas Application Module.

5.

DiceVegas Client


will be a client web page.