The aim of this site is to cover the complete spectrum of server side to client side programming. The site is split into two sections covering development, persistence and presentation of data on the server side and development and presentation on the client side. All the individual disciplines come with quick references, case studies and quizzes to support and enhance overall learning and can be accessed from the relevant sections by using the appropriate tabs.
Server Side Programming
This part of the site covers server side programming development, persistence and presentation of data. Client-server programming of this sort can at first appear complicated because of all the components present in the different layers of a distributed system. From a logical viewpoint we can think of the different layers that make up the disparate parts of a distributed system as different tiers of an overall architecture. This way of conceptualizing a system is often referred to as a multi-tier architecture.
The most common form of the multi-tier architecture paradigm is known as the three-tier architecture model and this is the architecture pattern used for this site. The three-tier architecture model separates our client-server programming into three tiers consisting of a presentation tier, an application tier and a data tier. Each tier is developed and maintained as an independent area of work and the different tiers can, and often do, exist on different software platforms. This separation of concerns reduces the complexity of the overall architecture and means any of the tiers can be modifed or even replaced with different technologies independently and without affecting the other tiers. The following diagram is a representation of a three-tier architecture model to aid in understanding of the concept:
How Server2Client Fits into The Model
We will be using the Java programming language as our server-side language of choice as this is platform independent and can be run in a wide variety of environments. We then make a thorough investigation of server side dynamic page loading using Java Servlets and JavaServer Pages (JSP), which the Tomcat Server stores in a JSP container that is translated to a Java class before being executed within the JRE.
Client Side Programming
Although generally we won't be using persisted data when learning our client-side programming, there are examples of doing this when we look at four lessons on Ajax starting with an investigation of the Ajax Low-Level Interface. These lessons can be found in the jQuery section of the site.