Yigal Gafni

Subscribe to Yigal Gafni: eMailAlertsEmail Alerts
Get Yigal Gafni: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Article

Building Better Performing .NET Applications for Remote Users:You Can’t Start Too Early!

Building Better Performing .NET Applications for Remote Users:You Can’t Start Too Early!

(August 13, 2003) - There are lots of things that you can’t start too early - saving for your kid’s college education, estate planning, planning your next vacation, to name a few. How about the performance of your distributed .NET applications? Do you know how your .NET applications will behave once they are deployed on the Wide Area Network (WAN) or are you like too many developers and managers who sit tight and hope all goes well?

The Challenges to Building .NET Applications that are Optimized for the Network
.NET developers take their jobs seriously, and as professionals they want to make meaningful contributions to the projects and people they work with. The problem is they often lack the networking and production environment expertise that will provide them with the insight as to how their applications will perform over a WAN. This is primarily due to the fact that modern IT organizations are built from independent ‘silos’, each busy with its own expertise and agenda. While ideally development managers and network managers should be optimizing applications and networks together, they frequently don’t even know each other's names. There is an invisible, but highly effective, wall that separates these two groups even though they share a common goal - optimally performing applications.

A recent Meta Group white paper¹ stated that, "We must tear down this wall if we want to provide effective applications and services through an amicable collaboration between system developers and system operations staff." Development and operations staffs need more collaboration with each other to shift application performance management to the earliest possible point in the development phase of their new applications. And there are significant benefits in terms of cost, saved time, reduced frustration, and increased credibility.

Performance Optimization Today: Too Little, Too Late
Another barrier to distributed application performance management is that .NET developers are building increasingly complex distributed applications, yet are staying within the confines of their well protected but unrestricted Local Area Networks (LAN) during the development cycle. More often than not, they don’t know or even care about the wider issues of WAN performance. These attitudes have developed over time primarily due to the fact that up until recently, there was no need to worry about something developers couldn’t control or even influence until application deployment, although this almost always assured a period of frustrating and painful reactive performance management when the application went live. And while there are a multitude of technology vendors addressing application performance, the vast majority focus on the post deployment, production environment, when finding and resolving distributed application can be extremely costly, frustrating and time consuming.

In this post dot-com boom, when CEOs demand that IT "get it right the first time" and there are no second chances, the time has come for the IT team, to participate and collaborate in the drive towards performance optimization and ultimately, business success.

The Ideal World: Optimize As You Code
The ideal solution is to code the .NET application so that it is optimized for performance over the WAN, right from the start, in a way that does not require any expertise or changes to current development practices.

Optimizing code for distributed application performance during development is actually a very simple and easy process. Armed with a simple network simulation product it is simply a matter of a few mouse clicks to turn a developer’s desktop into a remote end-user workstations and test and quantify the effects of application code performance over the WAN. This provides .NET developers with the visibility to immediately pinpoint and resolve network related design, functionality and usability flaws within application modules - without changing their current working methodology. Now, .NET developers can begin testing their code under varying degrees of bandwidth limitations, latency, and packet loss. It’s a very small enhancement to the unit testing process yet it leads directly to a whole host of benefits including shorter development lifecycles, reduced number of bugs and frustration, and overall higher quality applications.

Don’t Be a Networking Expert
Ideally, the network simulation technology also includes remote collaboration capabilities, which enables production or networking experts to setup a repository of defined network scenario tests that each software developer on the team can use. Additionally, through this central repository the development team can share unit tests and measure themselves and their code against a common, unified, set of quality tests. The main benefit of this approach is that is that developers don’t need to be networking experts yet can easily optimize their code for the network.

Building Optimal Performance for Dragon Empires Codemasters, the leading developer and global publisher of computer and video games, is using this type of solution to help it successfully launch Dragon Empires next summer. This groundbreaking Massively Multiplayer Online Role Playing Game (MMORPG) combines a state-of-the-art graphics engine with detailed gameplay to provide an involving and extremely interactive game experience. Players can choose to trade goods, manufacture items, fight monsters, each other or other clans.

Hundreds of Thousands of Gamers from All over the World
Codemasters anticipates that Dragon Empires will initially attract around 200,000 users. These users will be accessing the game from all over the world, via the internet, using a wide range of broadband and narrowband connections.

Performance is critical to the success of the game, so Codemasters sought a solution that would enable them to test the performance of Dragon Empires code under realistic and unrealistic WAN conditions during coding, and following an evaluation, they selected Shunra\Stratus for their development studio.

Confidence that We’re Building the Right Products
"It was instantly clear that Shunra\Stratus is ideal for our developers. It allows them to create a piece of code and test it there and then, and see what response time they get. We now know what conditions we can cope with and what we cannot and, as a result, we feel confident that we are building the right products," commented Alan Ward, Head of IT at Codemasters.

"Before Shunra\Stratus we were testing our code over the LAN," added Codemasters’ lead server programmer, Jonathan Attfield. "We knew that this wasn’t giving us a realistic picture of performance over the internet, and we thought we‘d be holding our breath and going out into the wild when we went to beta. Shunra\Stratus came at exactly the right time. It mitigates our risk and gives us a level of confidence that we wouldn’t otherwise have. It allows us to control our own destiny."

Finding More Bugs and Problems Earlier
Codemasters uses Shunra\Stratus during the early testing of its Dragon Empires code. It enables the development studio to accurately simulate Internet conditions, such as connectivity, packet loss and latency, which are found in real-life. "We use Shunra\Stratus to simulate a range of different modem settings, enabling us to thoroughly test throughput and the real-life game experience for the different types of internet connections our end-users will be using to log onto the game. Through this testing, we are able to trap and find many more bugs and problems much earlier in the development cycle, well before the game goes out to the public for beta testing. And thanks to Shunra\Stratus, we now know we are within our design parameters," explained Attfield.

Networking Knowledge Not Required
Another feature of Shunra\Stratus that Codemasters particularly likes is the ability to pre-load virtual network files onto a central repository, which developers can download and use. This helps developers who do not have knowledge of networking issues perform network tests, as well as ensuring a unified testing process across the team.

"We like to manage things centrally, so we really like the way Shunra\Stratus allows those people with networking knowledge to create network scenarios with various parameters, which the developers can then download and run. This means that our code is much more robust for varying network conditions," commented Attfield. "Using Shunra\Stratus also helps drive collaboration across our team, and allows the studio to test together, rather than having everyone do their own thing."

More Productive - Less Costly!
"Shunra’s products have given us a high degree of flexibility in our testing, and have definitely helped us to be more productive, as well as reduce the life-cycle and cost of our products," concluded Alan Ward.

Conclusion
Simulation has been successfully employed in business and technical endeavors for decades. Recent advances have made it possible for network simulation models to be employed directly in the earliest phases of distributed application development and have allowed companies such as Codemasters to move away from purely reactive application performance management to the far more desirable preventive approach.

The conclusion is simple. By ensuring that our code is robust and optimized for the network right from the beginning, we can realize increased collaboration, higher quality applications, reduced costs as well as faster application deployment - all while delivering an optimized end-user experience. You just can’t start too early.

¹ A Disciplined Approach to IT Performance Optimization, June 2003. Available from www.shunra.com

More Stories By Yigal Gafni

Yigal Gafni is the director of customer services for Shunra Software. He can be reached at yigal.gafni@shunra.com. Shunra is a leading provider of solutions that empower organizations to eliminate failed deployments and ensure optimally-performing business applications through a pre-emptive approach to Application Performance Management.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.