Welcome to Professional ASP.NET - Chris Love's Official Blog Sign in | Join | Help

Chris Love's Official ASP.NET Blog

Chris Love's Helpful tips, tricks and pragmatic development knowledge for the ASP.NET world.
Add to Technorati Favorites


ASP Insider Follow Me On Twitter
Pondering Amazon Silk

Last week Amazon announced its tablet, called the Kindle Fire. But what was probably the bigger news of course is the Fire’s browser, Silk. By now you have heard Amazon is taking a new approach to make the web faster by leveraging their EC2 server infrastructure to pull web page. Now other than the single entry available on the Amazon Silk team’s blog there is not a whole lot of details we know. But I thought I would write a little about what Silk means to the web, where it fits in, what it means for developers and some things that have come before Silk.

Like everyone else, I am really going to have to wait till Fire is actually available to start understanding how this browser works. But from everything I can tell it determines if it can pull the page’s content from the EC2 cloud where Amazon will either pull from a cached version they have stored from other user’s requests, or determine some other ‘optimal’ path to pull the information. Because the Fire will leverage the Amazon 3G pipes, pulling from the Amazon cloud should be really fast. Also think about it pulling from a cache means any server-side latency to generate the content is avoided.

As far as protocol it uses Google’s SPDY. SPDY is an experimental protocol Google is architecting specifically to make web pages load faster. It is optimized for modern web applications and can have over 60% speed improvements. Where HTTP is a more general protocol, SPDY is optimized for web content. Currently Chrome and Chromium are leveraging SPDY. What Amazon is adding to this protocol is providing SPDY optimize web servers by caching requested content in the EC2 cloud.

From the SPDY whitepaper this caught my attention:

“Unfortunately, HTTP was not particularly designed for latency. Furthermore, the web pages transmitted today are significantly different from web pages 10 years ago and demand improvements to HTTP that could not have been anticipated when HTTP was developed.”

To me that statement is very telling. I have been building web pages and applications since sometime in 1992. Yeah seriously I am that old!  But I can totally speak to how much things have changed. Think about it ASP.NET was just in BETA a decade ago. I had just finished my first ASP.NET site in August 2001. At that point ASP.NET WebForms was pretty freaking awesome, we did not even know just how bad ViewState was. Heck we did not even know what ViewState was.

But my point is things have changed radically. Today modern web applications (notice I use application) are heavily driven by AJAX, not full web page pulls on each and ever user action. around 4 years ago I started my plunge into the AJAX pool and I get deeper and deeper everyday. In fact if you are not heavy AJAX you are loosing ground in my opinion. Today web applications contain end points that return data with a few real “web pages”. In fact more and more web applications are a single page of markup with heavy uses of AJAX. So Amazon is trying to create a browser that is fully optimized for these newer web applications.

But wait there are millions and millions of legacy web sites out there, what about them? Well that is where the Silk back-end, can I call it that, comes in. If Amazon pulls that legacy site they can perform some back-end voodoo to optimize the content not only for your request, but for everyone who requests the same content. Thus from what I can gather hey are fixing poorly architected pages. And trust me the vast majority of the web is poorly written web pages. Heck I wrote lot of them back in the day.

So what has come before Silk. Well first Google’s Chrome is working towards making things go faster. The use of SPDY is just one example. Opera Mini leverages some proxy servers in the Opera data centers to serve optimized content to mobile devices. From what I have learned Opera will retrieve the page and send an image of the page to the phone with some markup to allow the user to navigate. This content is typically served to candy bar phones, you know that old hand crank phone I had at TechEd 2008.

Another device that enterprises have been integrating is the Strangeloop device. Unlike the Amazon Silk architecture it optimizes web requests inside a companies walls before it goes out. From what I recall about the Strangeloop device it acts as a proxy server that interrogates the web request’s content, scrubs it to make it super optimized, and sends it down the wire. If I remember correctly it also caches the optimized content to make subsequent requests even faster.

So what does this mean for developers like you and me? Well hopefully not too much, at least for now. But what I think we do need to take away is doing things to optimize for performance. Users demand quick and snappy applications. We as developers and architects must make real efforts to optimize our applications to not only go across the wire quicker, but to run in the browser better.

I am excited to learn more about what Amazon Silk is going to bring to the table. Will it really make a user’s experience that much better. I think it will help Amazon keep their data costs down. How will it handle SSL requests? Will it break that trusts like Opera does? Will it break some applications through their optimizations? Its definitely, at least in concept, a step in the right direction, a step to make the web of today much better and the future better yet.

Posted: Friday, October 07, 2011 12:27 AM

by Chris Love
Filed under: ,

Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS