Final Review Design of an Internet Conferencing System by Dustin Graves CSCI 164-10
-
Upload
harrison-santiago -
Category
Documents
-
view
21 -
download
0
description
Transcript of Final Review Design of an Internet Conferencing System by Dustin Graves CSCI 164-10
The George Washington UniversitySchool of Engineering and Applied Science
Department of Electrical Engineeringand Computer Science
Final ReviewDesign of an Internet Conferencing System
byDustin Graves
CSCI 164-10Senior Computer ScienceDesign Project Laboratory
April 19, 1999
Introduction
• Client-Server Processing
• Socket Communication
• Multiprocessing
Conferencing System Specifications
• Compatible with Windows NT platform
• Support a maximum of 25 users
• Maintain a log of all sessions
• Discussion style chat and conferencing
• Shared Whiteboard
• Individual e-mail style messages
Conferencing System Specifications (Continued)
• BSD Socket programming model
• IP Multicasting for group transmissions
• Simple Graphical User Interface
Internet Conferencing SystemBlock Diagram
InternetConferencing
System
Server Client
Server SubsystemBlock Diagram
ServerSocketModule
ThreadModule
Client SubsystemBlock Diagram
Client
SocketModule
ThreadModule
GUI
Thread ModuleBlock Diagram
ThreadingModule
Synchron-izationObjects
Comm-unicationObjects
ThreadObjects
Thread ModuleThread Object Diagrams
KernelObjectHandleStatusGetHandleGetStatusWait
ThreadIDHandlerSuspendResumeTerminateGetIDGetExitCodeSetPriorityGetPriority
ThreadHandler
Function
Thread ModuleSynchronization Object Diagrams
EventSetResetPulse
KernelObjectHandleStatusGetHandleGetStatusWait
MutexRelease
SemaphoreRelease
Thread ModuleCommunication Object Diagram
SharedMemory
MemoryStatusCreated
GetStatusGetMemoryPtrIsCreator
Socket ModuleBlock Diagram
SocketModule
StreamSocket
IPMulticast
SocketObjects
Socket ModuleStream Socket Diagrams
SocketSocketIDIPAddressLocalPortRemotePortConnectBindCloseSendReceive
ServerSocketTimeoutValSetTimeoutValGetTimeoutValAccept
Socket ModuleIP Multicast Socket Diagram
MulticastSocket
GroupInterfaceTTL
SetInterfaceGetInterfaceSetTTLGetTTLJoinGroupLeaveGroup
Graphical User InterfaceBlock Diagram
GUIMenu bar/Toolbar
Input/Output
Graphical User InterfaceMenubar/Toolbar Object Diagrams
SharedManagerFuncsApplicationQuitConnectDisconnectShowUserListSendPrivateMessageConfigure
MenuBarManagerApplicationMenuMenuButtonsCreateCallbackActivateCallback
ToolBarManagerApplicationToolbarButtonsCreateCallbackActivateCallback
Graphical User InterfaceInput/Output Object Diagrams
TextFieldFieldGetTextSetTextActivateCallback
TextAreaAreaGetTextSetText
DrawingAreaAreaDrawShapeModifyShapeInputCallback
BaseIOCutCopyPaste
Graphical User InterfaceWindow Object Diagrams
ListDialogApplicationDialogListShowHideApplyCallbackCancelCallbackSelectCallback
MainFrameApplicationWindowMenuBarToolBarManagerFuncsFieldAreaCanvasCreateCallbackExposeCallbackResizeCallbackIdle
MailDialogApplicationDialogFieldAreaShowHideApplyCallbackCancelCallback
Graphical User InterfaceWindow Object Diagrams (Cont.)
LoginDialogApplicationDialogField1Field2ShowHideApplyCallbackCancelCallback
HostDialogApplicationDialogField1Field2ShowHideApplyCallbackCancelCallback
MessageDialogApplicationDialogLabelShowHideOkCallback
Server and Client Subsystem Module Block Diagrams
CommServer
InteractiveClient
Server Subsystem ModuleObject Diagram
Server
ServerSockUserListThreadListSessionLogUserFileHostFile
GetConnectionProcessRequestLogUserVerifyUserVerifyHostRunQuit
Server Subsystem ModuleObject Aggregation Diagram
Server
Thread ServerSocket
Server ObjectDynamic Structure Diagram
Server
Thread ServerSocket
SendReceiveAcceptClose
GetConnectionProcessRequest
Client Subsystem ModuleObject Diagram
Client
StreamSockMulticastSockMainWindowListWindowMailWindowUserNameMessageReceiver
SendReceivePrepareDataSortDataConnectDisconnectQuit
Client Subsystem ModuleObject Aggregation Diagram
Client
MainFrame MailDialogListDialog Socket
MulticastSocketThread
Client ObjectDynamic Structure Diagram
Client
MainFrame
MailDialog
ListDialog
Socket
MulticastSocket
Idle
ShowHide
ShowHide
SendReceiveConnect
Close
Thread
SortData
Thread Module Tests
• Synchronized Access to Mutex– Thread 0x000000ba - acquired mutex
– Thread 0x000000ba - released mutex
• Synchronized Access to Semaphore– Thread 0x000000a5 - acquired semaphore
– Thread 0x000000c0 - acquired semaphore
• Read/Write Shared Memory– Thread 0x000000c4 - wrote: Message from Thread 0x000000c4
– Thread 0x000000bf - read: Message from Thread 0x000000c4
Socket Module Tests
• Socket to Server Socket Communication– Server: Connection from 192.57.7.165
– Socket: Sending ‘test data’
– Server: Received: ‘test data’ with total bytes = 128
– Socket: Disconnecting
– Server: Connection Closed
• Multicast Group Communication– Received: 206:0, 5
– Received: 206:1, 5
GUI Tests
• I/O Tests– Write text to Text Area
– Read text from Text Field
– Copy/Paste Clipboard Data
– Read/Write Files to/from Text Area
• Menu Bar/Toolbar Tests– Connect/Disconnect Functionality
– User List/Mail Window Display
– Print and Print Preview
– Exit Function
Client Tests
• Chat Test– Group Conversation with 5 Participants– Private Message Conversation with 2 Participants
• Graphic Test– Test of Drawing Functions– Test of Drawing Modification Functions
• Mail Test– Send Message with 1.2 MB Attachment to Group– Display Message in Viewer– Delete Message from Inbox
Server Tests
• Configuration Tests– Disable Password Login
– Disable Trusted Host Option
– Set port to 5555
– Set user limit to 5
• Connection Accepting Tests– Accept connections on port 5555
– Accept and log 5 client connections
– Deny access to 6th client to attempt connection
Project Timetable(Gantt Chart)
FinalGanttChart
Project Labor Costs
0
5
10
15
20
25
30
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
Time (Weeks)
Co
st (
Do
llar
s x
1000
)
Economic Analysis
• Prototype Costs Initial Current– Work Hours 732 459– Duration Hours 1440 1400– Labor Costs $24,920 $15,500
Prototype Costs
• Direct Labor Costs $24,920 $15,500• Indirect Labor Costs@100% 24,920 15,500
– Subtotal 49,840 31,000• Admin & Gen Costs@40% 19,936 12,400
– Subtotal 69,776 43,400• Profit@20% 13,955 8,680• Total Costs $83,731 $52,080
Unit Costs
• Construction Time–10 Min@$30/Hr $5 $5• Testing Time - 10 Min@$30/Hr 5 5
– Subtotal 10 10• Overhead @ 100% 10 10
– Subtotal 20 20• Disk 1 1• Documentation 10 10• Packaging 5 5
– Subtotal 36 36
Unit Costs (Continued)
• Previous Subtotal 36 36• Administrative & General @ 40% 14 14
– Subtotal 50 50• Profit @ 20% 10 10
– Subtotal 60 60• Cost of the Prototype 6 1
$52,080/50,000 Units• Total Cost Per Unit 66 61
Unit Costs (Continued)
• Sell the System For 66 61• Wholesale Markup @ 20% 13 12
– Subtotal 79 73• Retail Markup @ 50 % 40 37
– Retail Price of Server 119 110