Well, those folks at TechEd EMEA continue to be nice to me. Looks like I get to do four talks for the architecture track AND the closing general session. It is quite an honor to be told I can make up whatever I feel like and they will let me present it.
Here are the titles and abstracts for the four talks for the architecture track:
Building on Quicksand
Quicksand is a mixture of sand and water that looks like it is solid but will slowly consume anyone that tries to walk over it. This talk will argue that for many years our systems have built their reliability by layering on top of unreliable components and, effectively, built on top of quicksand. Furthermore, the granularity of the unreliable components has been steadily increasing through the years and is gradually showing new and challenging semantics to the application developer.
Fault tolerant algorithms are built by creating pieces that are idempotent or repeatable without harm. Ensuring these idempotent operations can be performed by components that are unreliable, a reliable design must capture the state ACROSS the failure units and keep going if something fails. This has been done with circuitry, mirrored disks, multiprocessors, and more. In the past, failures were usually masked from the running application. Now, the size of the unreliable component is inexorably getting larger as the economics of our systems changes. This is making it impossible for the underlying hardware and software platforms to hide the failures. Increasingly, applications must design to cope with the failures of these unreliable components.
This talk will sketch the theory of fault tolerance and show a number of examples of how systems have been designed through the years and how their evolution has gradually impacted application design. Hopefully, this discussion will help application designers understand the new responsibilities they face in building reliable distributed systems. It is possible to stay afloat on top of quicksand with sufficient care!
When You Have Too Much Data, “Good Enough” is Good Enough
Classic database management systems have very tight control over their data and over the correctness of the answers they provide. A number of pressures are being placed on classic database systems:
· We are awash in vast quantities of data
· There are many sources of the data, it frequently has inconsistent schema, and its interpretation is up to… well… interpretation
· Data are streaming into the system(s) at the same time as we are attempting to analyze it
· The machines holding the data may not all be concurrently available
This talk will examine some of these forces on classic database management systems and propose that there are a number of new ways to think about data. We will explore a number of different dimensions in which the “classic” database world is being relaxed to meet the needs for our customers in a changing world.
RIAs and Emissaries
The emerging field of RIA (Rich Internet Applications) is a hybrid between the classic rich-client application and a browser. Designed to provide the richness of the client environment without installation, RIA applications must be small and lightweight. To provide safety, they must have strictly limited access to resources on the client machine. Sandboxing of the client access limits the RIA app to per-app/per-user/per-machine state. The state of the art is evolving in how sharing can be done within RIA environments across applications and across users while providing safe computing.
The emissary design pattern is one where there is non-trusted code running outside of a service which is specifically designed to support interactions with the service. Leveraging reference data published by the target service, the emissary prepares requests with a sophisticated enough understanding of the service’s expectations that the request is likely to be accepted and processed. All of this is done while respecting the trust boundaries imposed by the target service. This pattern is clarified in the talk by showing parallels to the usage of paper forms in the business processes that proceeded the advent of computers.
We will explore the use and evolution of the Rich Internet Application and discuss some of the fun challenges the industry faces as RIAs evolve. Then, we will describe the emissary design pattern and show how RIAs are very well suited to working with their parent web environment using this pattern.
This talk is simply the wild ideas of the presenter and does not reflect any product commitments. It might, however, help you understand and build your applications differently.
Metropolis: Buildings and Applications
The Metropolis series of talks refers to a collection of presentations which examine cities and their evolution since being connected by the railroads and shows how Information Technology is undergoing the same transformations as IT shops are connected by the Internet. This second talk in the series examines the parallels between buildings in the city and applications in the IT shop.
Buildings come in many shapes, forms, and uses. Some are built with major investments and the builders anticipate a long and vibrant lifetime for the building. Others are built for quick turnover and short lives. As buildings age, different aspects of the building have different lifetimes and amortizations. It is common to see the roof, siding, plumbing, or wiring redone a number of times before the building is discarded. We are also seeing an increasing trend towards buildings being designed for a class or category of occupant without knowing the specific occupant. You see this in retail malls, office buildings, and more. As time moves on, a larger percentage of buildings are designed for a generalized use and a smaller percentage customized for the buyer.
Applications are following the same trend (although lagging the construction industry by a number of decades). We see major investments in some pieces of software and then surprisingly quick-and-dirty implementations of others. We see renovation of applications across releases with some aspects of the application remaining intact while other aspects may change many times over the lifetime of the code. Finally, we are gradually seeing the creation of patterns or classes of applications and supporting infrastructure to ease their development.
This talk will cover a number of parallels between buildings and applications. We intend to show that the same forces that have shaped the building industry are shaping the development of applications. It is possible to look to the building industry to tell us where applications will be going.
Some (but not many) of you may have seen this talk a few years ago but it is still guaranteed to make you think differently about the composition and evolution of applications.
And, finally, the closing general session at which the poor attendees have no alternative entertainment but listening to me! The organizing folks offered me this spot and asked me what I wanted to present. Since I was curious about data centers and felt REALLY uneducated, I had to select that as a topic. This led me to the following title and abstract for the big presentation.
Green Computing through Sharing
Reducing both Cost AND Carbon
Data centers consumed 1.5% of the total electricity in the US in 2006 and are on track to double as a percentage every five years. It is about 2% of the US total in 2008. Western Europe’s use is increasing at a slightly faster rate (from a slightly lower base percentage). The consumption of electicity within data centers is of significant financial and environmental importance.
Where the heck is all this power going? Why is the electrical load increasing so much? What can be done about it?
This talk will examine both traditional and emerging data center designs. We will start by examining how a data center is laid out, constructed, and managed. We will show two emerging trends: the change to designing data centers for the optimization of power and the emergence of new economies of scale in data centers which is contributing to the drive towards cloud computing. Microsoft is actively moving to compete in the space of cloud computing as we are seeing at the PDC (Professional Developers Conference) a few weeks before TechEd EMEA Developer.
Next, we will examine the sources of waste in the system today and examine why so many of our resources are underutilized. Because we are reluctant to share computing resources, they are left idle much of the time. Why is this currently the dominant choice? What can be done in the design of applications, systems, and data centers to make them more green (both carbon and cash)? What can developers do to make a difference?
Anyway, I am super excited to be going to Barcelona and humbled by the trust and opportunity I’ve been given! Hope to see you there! If so, please come up and say hi! In the meantime, I’m going to work on my slides…