Building Massively Scalable Components with C#: Problem Design Solution

Building Massively Scalable Components with C#: Problem Design Solution
Authors
Ryan Rogers
ISBN
0470428996
Published
26 May 2009
Purchase online
amazon.com

Building high performance distributed systems that scale massively and remain reliable and secure is an extremely difficult task. This book is the first of its kind as it approaches engineering the middleware needed to build such complex systems as an application-whole. The design decisions and the trade-offs made are analyzed and discussed in great depth so the reader can truly understand the advantages and disadvantages of the specified approach.

Editorial Reviews

Building high performance distributed systems that scale massively and remain reliable and secure is an extremely difficult task. This book is the first of its kind as it approaches engineering the middleware needed to build such complex systems as an application-whole. The design decisions and the trade-offs made are analyzed and discussed in great depth so the reader can truly understand the advantages and disadvantages of the specified approach. This is an important concept overlooked by most books. This book presents relative performance metrics of controlled test applications that explore alternate approaches which support the varying design goals.  Using this information the reader can easily determine the true scalability and/or real-time performance cost of trading off for security, simplicity, and extensibility.

Throughout the course of the book the reader will learn how to design and implement a custom real-time networking layer in C# with the four following goals in mind:

  • Real-time performance for all clients
  • Extreme scalability supporting  thousands of clients 
  • Strong security through effective yet lightweight cryptography
  • No single point of failure fault tolerance
  • By the end of the book, a complete, reusable solution in C# is constructed.  Most design decisions that went into the architecture will have been discussed, and trade-offs analyzed, thereby allowing the reader to extend and reuse the solution to meet their future needs and varying requirements.

To achieve this, several key areas will be discussed:

  • Tenets of Scalability – What it means to be scalable, and how it is achieved through an iterative process.
  • Bandwidth Conservation – Squeeze every byte out of the pipe that you have tthe point where you are not simply pushing the problem onto other resources.
  • Effective Cryptography – Build a secure-enough implementation that is effective yet lightweight and thereby has less impact on scalability.
  • Layered Protocol – Design a custom UDP protocol stack that meets the specific needs of a highly scalable real-time system.
  • Server Architecture – Design and implement a highly scalable server framework which supports multiple connection types (TCP, UDP, multicast) through various network topologies (firewalled, HTTP relay, wireless, etc)

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“In theory, theory and practice are the same. In practice, they're not.”