Enterprise Application FrameworX
       
(3) Scalability
Scalability in a platform is defined as the ability of the platform to handle an increased number of user requests and users themselves, (Throughput, in simple words) without adverse degradation in functionality. There are two ways to scale a platform.

Scaling Up is defined as the ability to increase Hardware or Software parameters in the system configuration to enable more throughput – this includes activities like increasing the software configuration for thread count or number of users, changing the network link to higher speeds or changing the hardware configuration by adding more resources in terms of Memory, Processor Speed, Number of Processors, Hard Drive Space, Hard Drive Speed, etc.

Scaling Out is quite a different animal. You can scale out by making copies of your implementation and directing user traffic, and user request traffic to these multiple copies. Many techniques exist for this – Replication, Web Farming, DNS Round Robin, Network Load Balancing (NLB), Server Load Balancing, Quota Management, etc. You will have to do independent research to understand each of these, but the point of bringing this up here is that in order for your application to support scaling out, it has to be designed in a particular way. For example, web servers that maintain a user session cannot afford to direct user requests within a session to a different server in the farm. This is where you need to come up with a loosely coupled architecture where session data is stored in the Database instead of the web server. This would also mean that the user needs to include a unique session identifier in each request. These and many more are the reasons why scalability planning requires a lot of thinking ahead and planning.
©Eafx, LLC.
1999-2010, All Rights Reserved