1 Object-Oriented Software Development Project Aaron Christopher
Dec 19, 2015
2
Project Overview
• Kind of like SourceForge• Allow developers to catalog their software,
source code and documentation for use by other developers
• Also provide mechanism for publishing a virtual appliances that run the software on its intended platform.
• Users of the system can connect to the appliances and use the software live in their browser through a client application implemented as an applet.
3
Project Breakdown
• The complete system is broken into three subsystems– The Desktop Sharing System– The Server (the scope for today)– The Client
4
Some Java Technologies Used by the Server
• Multiple Threads and Synchronization• Blocking TCP/IP Sockets from the java.net
package• Object Streams and Serialization• Embedded Apache Derby Database
– A small footprint open source SQL database– Can be run in embedded mode in java
applications and accessed using JDBC– All database code runs in your process
39
MVC Pattern
• Model• View• Controller
A simple diagram depicting the relationship between the Model, View, and Controller.
Note: the solid lines indicate a direct association, and the dashed lines indicate an indirect association (e.g., observer pattern).
Source: http://en.wikipedia.org/wiki/Model-view-controller
40
Ostermiller Utilities
• http://ostermiller.org/utils/• Circular Byte Buffer for inter-thread
communication (can be bounded or infinite). Beats Java’s Piped IO Streams by far!
• More Intuitive String Tokenizer– Java (java.util.StringTokenizer)
• A,B,,D tokenizes to “A”,”B”,”D” (3 tokens ignoring the missing string)
– Ostermiller (com.Ostermiller.util.StringTokenizer)• A,B,,D tokenizes to “A”,”B”,””,”D” (4 tokens including an
empty string)