Accessibility
 
Home / Developer Center / Flash Communication Server Developer Center /

Flash Communication Server Article

Icon or Spacer Icon or Spacer Icon or Spacer
 
Srinivas Manapragada
 

A scalable application can be defined as one that can handle any amount of load given enough hardware resources. For distributed collaborative applications, such as most Macromedia Flash Communication Server applications, load is the number of connections, users, streams, aggregate bandwidth, and so forth. Hardware resources are the CPU speed, number of CPUs, memory size, number of network interfaces, number of nodes (computers) in a cluster and so forth.

 

An application deployed on the Internet can be expected to face loads far beyond the capacity of any one CPU, and must scale by exploiting multiple CPUs effectively. Multiprocessor systems are one approach to get multiple CPUs, but this is a costly option and then, you are realistically limited to an 8 CPU capacity. Clustering individual systems on a high speed network are another way to get multiple CPUs. In the end, the most typical approach is hybrid: a cluster of dual processor or quad processor CPUs. This setup achieves the desired capacity.

The cluster configuration deployed for the application must be completely transparent to clients. In other words, the application must appear the same to the client regardless of whether the application is deployed on a single computer or on a cluster of computers. Typically, an administrator sets up the network routing aspect by placing the cluster behind a load balancing network switch and making it look like a single virtual server. Figure 1 below which shows a number of clients coming over the Internet and connecting to a cluster of servers through a load balancing switch.

 
Cluster
 

Figure 1: A basic clustered setup

You can define a scalable Macromedia Flash Communication Server MX application as one that can be deployed (installed) over a cluster of nodes and handle progressively larger loads. At the same time, the application will appear as a single virtual application to the client. In clustered systems, consider that any node is ready to accept a connection from any client. As a result, all nodes must have the same set of applications installed, resulting in a homogenous cluster.

This white paper explores techniques for making Macromedia Flash Communication Server MX applications perform well on a server cluster. Some applications are inherently scalable, while others are not easily scalable. We shall also try to develop scalability strategies that are applicable to various kinds of applications.

 
Table of contents
·
Macromedia Flash Communication Server MX application model
·
Scalability strategies
·
Macromedia Flash Communication Server MX scalability framework
·
Cluster topologies
·
Glossary and references
 
  Next
 

About the author
Srinivas Manapragada is a member of the Macromedia Flash Communication Server MX team. He has been building large-scale enterprise systems, scientific visualization applications and 3D rendering toolkits for most of the last decade. Most recently he has been working on a distributed testing system for Macromedia Flash Communication Server MX capacity testing, components, and scalability. He has finally eschewed his C++/Java roots and embraced JavaScript wholeheartedly.