presentation

duckexcellentInternet and Web Development

Feb 5, 2013 (4 years and 7 months ago)

153 views

NetChat Communications
Systems

Steven Fuqua

Barnett Trzcinski

Andy Street

Abstract


Development of a standards
-
based, modular,
networked communications protocol.


Use of this NetChat Protocol (NCP) to create
an application to allow end
-
users to
communicate/distribute information over
various media


Instant messaging


E
-
mails


News

Design


Extensible


Use of user
-
creatable modules
to provide means of adding functionality


Modular


Separate plugins for various
means of communication


Standardized


Use of XML to encode
messages as they relate to specific modules
in a standardized protocol

Construction


Server


Coded in Ruby, handles
connections and parses client information


Clients


Connect to the Ruby server, receive
user input, parse it, and relay it to the server
for processing


Py
-
Client


Coded in Python, provides a text
-
based interface for testing new features


J
-
Client


Coded in Java, sports a graphical
interface for a production
-
quality release

Server


Barnett Trzcinski


Scripted in Ruby


Standard library


Opt
-
parsing based configuration


Allows for SSL/NCP connections as needed


Threaded to handle multiple connections


Interprets received messages

Py
-
Client


Steven Fuqua


Scripted in Python 2.5


Twisted networking framework


Dynamic reload functionality


Text
-
based interface, serves as test bed


Takes specialized commands to
communicate with the server


Uses method reflection for commands and
message parsing



J
-
Client


Andy Street


Coded in Java


Xerces XML library


GUI, release quality client


Threaded to send and receive messages


Uses method reflection for server command
parsing


Use of XML data objects to convey information

Analysis


XML serves as a flexible medium with which
to encode data


Modularized format allows for easily updating
or future expansion


Could potentially add functionality to network
servers, distributing client load


Images


Quiet Server

Images


Verbose Server

Images


Quiet Py
-
Client

Images


Verbose Py
-
Client

Images


J
-
Client