Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rudimentary Client-Server Message Board Ricky Landry COP5611 – Operating Systems Design Principles University of Central Florida April.

Similar presentations


Presentation on theme: "Rudimentary Client-Server Message Board Ricky Landry COP5611 – Operating Systems Design Principles University of Central Florida April."— Presentation transcript:

1 Rudimentary Client-Server Message Board Ricky Landry COP5611 – Operating Systems Design Principles University of Central Florida April 16, 2012

2 Fundamental Requirements
Ability to create topics Ability to create comments associated with a topic Ability to produce information on the author of a topic or comment Ability to produce the timestamp of creation and last modification time of a topic or a comment Ability to remove a topic or comment (only if requested by the author)

3 Critical Design Decisions
Client-Server Architecture Multi-threaded Server Stateless Messaging Protocol Java Swing Client Front-End (GUI)

4 Message Board Database
Server-side database was written specifically for the application to explore design challenges Multi-threaded server design required mutually exclusive access to the database to handle concurrency and atomicity concerns Accomplished through the use of object locks built into the Java language synchronized(this){ … } wraps database access calls

5 Server Database Design
Singleton-patterned database consists of: List of MbdbTopic objects, stored as a Hashtable List of MbdbComment objects, stored as a Hashtable

6 Server Database Design
MbdbTopic object consists of: topic name author name creation time topic header deleted state list of the comment headers of child comments

7 Server Database Design
MbdbComment object consists of: comment message author name creation time comment header deleted state unique identifier of its parent topic

8 Server Database Design
TopicHeader and CommentHeader Objects contain: Topic/Comment unique identifier Topic/Comment last update time Definition of TopicHeaderList and CommentHeaderList containers, respectively

9 Server Design Used the Java Serialization API for serialized object transfer between server and client. Listen socket is a Java ServerSocket object When a connection is made, the new socket connected to the client is handed off to a worker thread spawned specifically for the client

10 Server Design

11 Protocol Design Defines the following aspects of the client-server model: Credentials Topic message data payloads Comment message data payloads Message structure Message types

12 Protocol Design Client-to-Server Message Types: CREATE_TOPIC
CREATE_COMMENT REMOVE_TOPIC REMOVE_COMMENT GET_TOPIC_HEADERS GET_TOPIC_OBJECT GET_COMMENT_OBJECT CREDENTIALS CLOSING_CONNECTION

13 Protocol Design Server-to-Client Message Types: TOPIC_HEADERS_REPLY
TOPIC_OBJECT_REPLY COMMENT_OBJECT_REPLY AUTHETICATION_SUCCESS AUTHETICATION_FAILURE INVALID_TOPIC_ID INVALID_COMMENT_ID INVALID_REPLY_RECEIVED

14 Client Database Design
The client has its own database that contains the client state Has four containers: One containing MbdbTopic objects One containing MbdbComment objects One containing the read state for each topic One containing the read state for each comment Defines wrappers for Topic/Comment objects and their respective read state

15 Client Database Design

16 Client Controller Design
Responsible for client database management and access Updates the client database with server data Provides current (undeleted) client data to the front-end Responsible for communication with the server Responsible for managing client credentials

17 Client Front-End Design
Built using the Java Swing API Provides basic interface to underlying function Topic Window Mockup Comment Window Mockup

18 Client Front-End Design

19 Client Front-End Design
Topic Window Comment Window

20 Questions ?


Download ppt "Rudimentary Client-Server Message Board Ricky Landry COP5611 – Operating Systems Design Principles University of Central Florida April."

Similar presentations


Ads by Google