Server2ClientS2C Home

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.

Three-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:

three tier architecture

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.

Discipline Correalation

The disciplines used on the server side of the site have a correalation to the version of Java being used. This can get very confusing and so the table below shows which releases of software work with a particular version of java:

Minimum Java Version Tomcat Version Servlets JSP

Client Side Programming

In this part of the site we look at the client side of our applications from a more simplistic architecture where we display web pages using HTML in conjunction with CSS, JavaScript and jQuery. Unlike JSP pages these pages are statically served from the host. When using this approach to displaying information, we will ensure that we keep the HTML (structure), CSS (presentation) and Javascript/jQuery (behaviour) separated from each other to conform to best practice. We will also make extensive use of the jQuery API to cut down on the amount of JavaScript required when creating behaviour.

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.

go to top of page Top