Manage ASP.NET Session States
By Mike Riley
In the realm of Internet e-commerce, availability and uptime make all the difference between living and dying in the virtual world. If your services are inaccessible even for a minute, your customers will be unhappy the first time it happens and furious if it happens a second time. Strike out a third time and you not only lose that customer, but your service s credibility will be irreparably damaged.
Gone are the days of single server, single service, and forgiving customers. User expectations have exceeded beyond five 9s (an annual uptime of 99.999% of the time) and any disruption in service availability will be a painful reminder of this new quality level. Although Microsoft has provided a satisfactory network load-balancing feature in Windows Server 2003 Enterprise to mitigate service disruption, it s a straightforward and barely adequate solution for demanding online infrastructures.
ScaleOut Software, a company consisting of a management team experienced in serious software products for the enterprise market, has released their first product aimed squarely at this problem facing Windows Server customers. In fact, Bill Bain, the company s founder and CEO, created the load-balancing solution that ultimately became the Network Load Balancing Service in Windows Server 2003. As such, he knows what the service is capable (and incapable) of doing for Microsoft ASP.NET customers.
Figure 1: The StateServer Console is a simple GUI indicating the number of active licensed ScaleOut distributed services, the number of active objects, and other related statistics.
ScaleOut StateServer is a very easy to use, straightforward application that superbly masks the complexity that it manages behind the simple GUI. After installing ScaleOut StateServer and identifying the other servers running the ScaleOut service, the product automatically handles the replication of all active objects across the servers so that no server is left in the dark about any active session. Unlike other solutions in this space, ScaleOut s heartbeat protocol doesn t burden the network with multicast pings to the other ScaleOut deployments, which is especially helpful in large-scale Web farms.
Although ASP.NET session objects can be maintained in other ways, such as saving the sessions off to a centralized SQL Server database cluster, the cost associated with this is formidable in both the software license expense and potential downtime while requests get re-routed to a reactivated session once the server is identified to be unavailable. ScaleOut s solution keeps active sessions distributed among the ScaleOut participants, scaling it to as many servers running the software while also recovering the session in an instant because of the distributed active nature of the service. This realization is best appreciated by SysAdmins and Web developers who have used the SQL Server or ASP.NET StateServer approaches; my eyes brightened when I saw how quickly the state recovery was made after running the product on two physical machines and one virtual machine. It was a remarkable, convincing moment.
While existing ASP.NET projects can immediately take advantage of other Web farm servers running the ScaleOut solution without changing a line of code, the real power of ScaleOut is amplified when using the Soss.Client.DataAccessor object to create, read, update, and delete ScaleOut objects across the entire server base. Coupled with a sophisticated e-commerce ASP.NET application, the possibilities for this newfound distributed power are as scalable as the ScaleOut server is allowed to be licensed. In fact, a new class of solutions can be built using the simple ScaleOut API (three classes, one structure, and one enumeration check it out online at http://www.scaleoutsoftware.com/support/stateServer/soss_APIdoc/index.html), from vastly distributed e-commerce to even grid and complex scientific applications.
This is a 1.0 product release, and, as such, it is extremely focused on doing one thing very well: managing ASP.NET session states on Windows servers running the .NET 1.1 Framework. This is not a piece of software yet designed to run on non-Microsoft OSes (and given the fact that it is managing .NET services, it s unlikely that it ever will run on anything else). It s also expensive, though not nearly as expensive as other software and hardware alternatives. There s also the question of how long before Microsoft either develops or acquires an alternative that will become the default way of handling such transactional uptime requirements in the future. However, for those Windows-exclusive Web farms seeking a remarkably robust, amazingly fast, and stunningly simple to use service to dramatically improve system availability, ScaleOut StateServer will no doubt be a top contender in the high-end services space.
Mike Riley is an advanced computing professional specializing in emerging technologies and new development trends. He also is a contributing editor for asp.netPRO. Readers may contact Mike at mailto:[email protected].
Web Site: http://www.scaleoutsoftware.com
Price: Server Edition, US$4,495; Enterprise Edition, US$7,795; DataCenter Edition, US$10,995 and up.