This chapter will provide you with the theoretical underpinnings required for production of robust and reliable server-based systems. In many respects, the knowledge required to develop server-based systems is the same knowledge required to develop traditional client-side systems. Although important differences exist between client-side and server-based systems, most folks capable of constructing one can also construct the other.
The key issues covered in this chapter are multitasking, resource sharing, and user authentication. Client/server communication is another significant element of server-based development that will be addressed, though not extensively. (See the Annotated Bibliography for client/server communication resources.)