Orleans: A Framework for Scalable Client+Cloud Computing
- Posted: Dec 02, 2010 at 3:07 PM
- 57,404 Views
- 10 Comments
Download
How do I download the videos?
- To download, right click the file type you would like and pick “Save target as…” or “Save link as…”
Why should I download videos from Channel9?
- It's an easy way to save the videos you like locally.
- You can save the videos in order to watch them offline.
- If all you want is to hear the audio, you can download the MP3!
Which version should I choose?
- If you want to view the video on your PC, Xbox or Media Center, download the High Quality WMV file (this is the highest quality version we have available).
- If you'd like a lower bitrate version, to reduce the download time or cost, then choose the Medium Quality WMV file.
- If you have a Zune, WP7, iPhone, iPad, or iPod device, choose the low or medium MP4 file.
- If you just want to hear the audio of the video, choose the MP3 file.
Right click “Save as…”
- High Quality WMV (PC, Xbox, MCE)
- MP3 (Audio only)
- Mid Quality WMV (Lo-band, Mobile)
- High Quality MP4 (iPad, PC)
- MP4 (iPod, Zune HD)
Orleans is a Microsoft Research (MSR) project and managed (.NET) software framework for building client + cloud applications. As outlined in the recently released paper on the topic: Orleans defines an actor-like model of isolated grains that communicate through asynchronous messages and manage asynchronous computations with promises. The isolated state and constrained execution model of grains allows the Orleans runtime to persist, migrate, replicate, and reconcile grain state without programmer intervention. Orleans also provides lightweight, optimistic, distributed transactions that provide predictable consistency and failure handling for distributed operations across multiple grains.
Here, we meet the Orleans team—Sergey Bykov, Alan Geller, Gabriel Kliot, James Larus, Ravi Pandya, and Jorgen Thelin—as they introduce Orleans and provide insights into the rationale and design decisions behind the project and also spend a fair amount of time focusing on the basic unit of isolated computation in Orleans, the grain. Very interesting and promising research!
I highly recommend that you read the paper—it's very approachable and makes many aspects of Orleans crystal clear. In fact, that's the goal of the Orleans project: to make reliable and scalable distributed concurrent computing easier for developers to compose using tools and concepts they already understand (.NET). As we all know, it's hard to effectively program scalable distributed concurrent systems reliably. Orleans's goal is to change this fact by exploring and implementing new approaches (like grain-based programming) using novel combinations of time-tested programming models and technologies (actors, promises, transactions, etc).
Tune in. Enjoy.
Comments Closed
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Cool stuff.
Can't wait to see it "finished" and integrated with LINQ/Rx/"await".
actually the name 'AsyncValue<T>' looks more like the natural type name for async/await pattern than 'Task<T>', just a name though
@felix9: Let's not resort to name calling ... but would be more fun if they actually called it Promise<T>
Also the distinction between AsyncCompletion and AsyncValue<T> seems not needed: could just use AsyncValue<Unit> for that. I think that getting someone in the team with more functional programming background would greatly help the project (this is in no way saying the project is bad).
F# async{} workflow (monad) and MailboxProcessor<'T> do much of what is being described here - except for retry of messages.
The F# workflow syntactic sugar makes writing async code almost like synchronous code.
@fwaris: We're working on switching over to the C# vNext [*] async pattern - we've been working on Orleans since long before it was available (even internally), so we had to implement our own version of promises. Once we switch, the F# async pattern will be very convenient, and F# would be a great programming language for writing grains. There's already another project in XCG that uses Orleans grains written in F#.
[*] edited: I earlier called this .NET 4.5, but realized it's been called a variety of names, so I'll stick with Anders' "C# vNext"
.NET 4.5 ..... oooh
This was a typo, as Ravi specified (see his edit). The Async feature will be available in the next versions of C# and VB.NET. You can do the math in terms of the numeric expression for their versioning...
OK.
But .NET 3.5 introduced C# 3.0 and VB9, so the version of the framework and languages are not always in sync, ahh they should though, the 3.5 thing caused lots of confusion.
@felix9: I never really understood why 3.5 was not named 3.1. The smaller increment always made more sense to me, no matter the rationalization for the 3.5 jump. I must simply be getting crotchety, well before my time.
I've been watching Orleans with great anticipation, since hearing about it at TechFest 2009. Thanks for publishing this video!
Good post and a fantastic read. You have raised some valid points. Great work, keep it up. I love returning back to this site and reading the quality content you always have on offer. It was wery useful for college paper.
Remove this comment
Remove this thread
close