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

Slides:



Advertisements
Similar presentations
Servers- Apache Tomcat Server Server-side scripts- Java Server Pages Java Server Pages - Xue Bai.
Advertisements

EEE436 / CS422 Final Presentation Group
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Concurrency Control & Caching Consistency Issues and Survey Dingshan He November 18, 2002.
3D Object Retrieval Client-Server Project
Network Programming Eddie Aronovich mail:
V0.01 © 2009 Research In Motion Limited Push technology for Java applications Trainer name Date.
Hands On Networking Socket Programming Ram P Rustagi, ISE Dept Abhishek Gupta, ISE Dept Laxmi Kuber, MCA Dept June 28-30, 2012.
Descriptive Mark System for Primary Schools by Leszek Syroka Supervisor: Richard Gatward Coventry 2007/2008.
Oracle8 JDBC Drivers Section 2. Common Features of Oracle JDBC Drivers The server-side and client-side Oracle JDBC drivers provide the same basic functionality.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Network Programming CSE 132. iClicker/WUTexter Question How many of the following statements are true? In the model-view-controller paradigm, a swing.
GEON meeting - May 22, 2006 GAMA 2.0 Features and Status Kurt Mueller SDSC.
Network Monitoring Through Mobile (MOBTOP) Developed By : Akanksha Jain. (102199) Deepika Reddy (102210) Team Name: Beans Guided By: Prof. Robert Zhu SUBMITTED.
1 Welcome to CSC 301 Web Programming Charles Frank.
1 Seminar on Service Oriented Architecture Principles of REST.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
Meta-Server System Software Lab. Overview In the Music Virtual Channel system, clients can’t query for a song initiatively Through the metadata server,
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
DATABASE CONNECTIVITY TO MYSQL. Introduction =>A real life application needs to manipulate data stored in a Database. =>A database is a collection of.
Azure in a Day Azure Tables Module 1: Azure Tables Overview Module 2: REST API – DEMO: Azure Table REST API Module 3: Querying Azure Tables – DEMO: Querying.
Client/Server Socket Programming Project
Physical clock synchronization Question 1. Why is physical clock synchronization important? Question 2. With the price of atomic clocks or GPS coming down,
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Dispatching Java agents to user for data extraction from third party web sites Alex Roque F.I.U. HPDRC.
Review IS Overview: Data  Inside the application Collections  Outside the application Database XML  Getting/displaying Swing  Communicating.
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
Mary Ganesan and Lora Strother Campus Tours Using a Mobile Device.
Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung
Introduction To Application Layer
The Object-Oriented Thought Process Chapter 14
Web Protocols and Practice
Structure of a web application
The Client-Server Model
Netscape Application Server
Distributed Computing
REST- Representational State Transfer Enn Õunapuu
Cross Platform Development using Software Matrix
Chapter 3 Internet Applications and Network Programming
Google File System.
Flight By Night’s Information Searching Services
Server Concepts Dr. Charles W. Kann.
Client-server Programming
The Client/Server Database Environment
Introduction to NewSQL
Socket Programming Cal Poly Pomona Young CS380.
RDA3 high-level – API & architecture 26th JUNE 2013
Replication Middleware for Cloud Based Storage Service
DUCKS – Distributed User-mode Chirp-Knowledgeable Server
WEB API.
Iteration 1 Presentation
Implementation CAN Communication Engine
The Client Server Model
Frameworks And Patterns
Model-View-Controller (MVC) Pattern
Inventory of Distributed Computing Concepts
Distributed Computing Systems
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Student: Popa Andrei-Sebastian
REST APIs Maxwell Furman Department of MIS Fox School of Business
ODBC and JDBC.
Chapter 4: Threads & Concurrency
Week 05 Node.js Week 05
WinINet Kostas Ladavičius.
Introduction of Week 5 Assignment Discussion
Thread per client and Java NIO
SDMX IT Tools SDMX Registry
Presentation transcript:

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

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)

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

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

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

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

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

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

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

Server Design

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

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

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

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

Client Database Design

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

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

Client Front-End Design

Client Front-End Design Topic Window Comment Window

Questions ?