I am a big fan of Rich Client technology (RCT), and JavaScript frameworks.  RCT refers to internet applications where the user interface (UI) runs in a web browser.  This means that the “conversation state” is stored in the browser, and instead of refreshing the web page each time new data is needed, an asynchronous call is made to the server side.  For example, go to Google maps and move the map around.  New data is added to the UI but the web page is not refreshed.  Some call this Web 2.0

Its an important architecture because it solves two major IT problems at once.  First, using this architecture makes every application more scale-able.  Imagine 10,000 users want to apply for a car loan at once.  Using a traditional architecture the data collected from the user would be stored on the server, and page after page would be sent to the user for his input.  This means the bank, (in this case) would have to have server side memory for 10,000 times, lets say, 500k for each user.  That will be 5 gigabytes of server side memory.  Its easy to see if there are many applications using this technology, it could be expensive to run.

Second, there is the refresh latency.  Traditional web architecture requires data to be submitted on a per page basis, this is often followed by a long pause as the user waits for the server to sent the next page.  Usually the subsequent page is sent only after the data from the previous page is processed, so the user must wait for a call to the database to complete as well.  RCT allows the data to be sent asynchronously.  No page refresh is needed.  If some simple calculations are needed they can be done on the client side as well.  The look and feel of a RCT application is similar to using an application running completely on the client computer.

An architecture which increase scaleability, decreases cost, decreases latency, and improves the user experience should be considered for your next project.