Home : Course Map : Chapter 14 :
Web Server Applications
JavaTech
Course Map
Chapter 14

Web Servers
Design of Server
ServerSocket
Threads For Clients
Client Streams
HTTP Protocol
Run Server
  Demo 1
Secure Server
  Demo 2
More Security
A client application
  Demo 3
Server Apps
Servlets
Exercises

     About JavaTech
     Codes List
     Exercises
     Feedback
     References
     Resources
     Tips
     Topic Index
     Course Guide
     What's New

So we now know how to make a simple web server, what can we do with it?

Several possibilities come to mind:

  • Custom server: if you don't want to install a full function server for your PC, you can develop your own small, customized server.

  • Client Input: the server could record input from the client, e.g. an experiment with distributed stations, each sending their data to a central server.

  • Data Monitoring: your custom server could download recent data files being written by an experiment.

  • Applet interaction: you can setup a two way link between your client side applet and your server to carry out special tasks (Chapter 15 discusses such a data monitoring system).

  • Initiate External processes: a server could start up an external process (see Chapter 23: Runtime class) via command to do some task such as to making a measurement, running a calibration, etc.

  • Secure interaction: you can customize your server to respond only to clients with allowed usernames and passwords.

While one can certainly do such things with C/C++, the Java code is quite compact and straight-forward because of the networking and threading capabilities in the core language.

Here again, the portability of Java to different platforms also greatly increases the flexibility and range of applications for your specialized servers.

Note that the client and server roles are not absolute. A server can switch roles and become a client when necessary. For example, a server at a remote station could monitor some system and provide information to clients seeking status reports on the system. However, the server might periodically contact a central server to download data and status information, thus acting as client to the central server.

If your server application involves handling very high numbers of connections, then you should look at section Chapter 9: Supplements: NIO Overview, which gives a brief overview of the NIO packages that were introduced with Java 1.4. NIO provides a range of tools to improve the performance of Java communications. In particular, it includes classes that help deal efficiently with high numbers of simultaneous connections by allowing for non-blocking socket communications and the use of thread pools.

Latest update: August 18, 2005
  
  Part I Part II Part III
Java Core 1  2  3  4  5  6  7  8  9  10  11  12 13 14 15 16 17
18 19 20
21
22 23 24
Supplements

1  2  3  4  5  6  7  8  9  10  11  12

Tech 1  2  3  4  5  6  7  8  9  10  11  12
Physics 1  2  3  4  5  6  7  8  9  10  11  12

Java is a trademark of Sun Microsystems, Inc.