Understanding Different Design Approaches


There are three approaches currently available: client side, server side, and client/server model. Let me explain each of these approaches.

Client side approach: the Java applet is a client side approach. When a web page is visited, the Java applet will be downloaded to the user machine. On the user machine it handles user input , makes decisions and outputs results locally. It resides in the client's computer like a local program. The final design of this project adopted a client side approach.

Server side approach: Common Gateway Interface (CGI) is a server side approach. That is opposite to client side approach. All the work such as decision making and output is done on the host computer. After the user makes an input, the input is sent to the host computer. The host computer will send back the result to the client computer when the result is done.

Client/Server approach: A client/server approach requires the use of both Java and CGI. The decision and the output are shared by both the local and host computers. For example, the first design of this project used the client/server model. We chose the applet to handle sound playing, plots and user inputs, while the host computer handled sound conversion. So, the data would be transmitted back and forth between the host and the client.



Pros and Cons

Client/Server approach is the most popular and believed to be the most effective approach over either client side or server side approach since the logic or decision making are shared by the local and the host computers.

This project adopted a client/server approach at the early design stage. However, it turned out to be unsuitable to our project. Considering the traffic of the Internet, a thousand samples may take a long time to reach the host from the client or from the client to the host. There are other difficult issues concerning the loss of data and defective data during the transmission. These network problems are too difficult to handle. Therefore, the performance is not guaranteed. Using the server side approach could be discouraging. The interface of CGI program is not interactive enough to the user so that user input and output cannot coexist on the same web page. The input page and output page must be separated. Although the process running on the server (host) is fast, the timely transmission of the data becomes a major bottleneck to overall performance. Lastly client-side approach using a Java applet is used in this project. It is true that running a Java applet on the client computer is slow relative to a CGI program on the host computer. It was chosen as the final design approach based on satisfactory performance, interaction of the user interface and little network errors.