October 08, 2011
• Orleans - Cloud Computing for Everyone - ACM SOCC 2011
My team's latest technical paper has been accepted for the ACM Symposium on Cloud Computing (SOCC 2011)
http://research.microsoft.com/apps/pubs/default.aspx?id=153347
Orleans: Cloud Computing for Everyone
Cloud computing is a new computing paradigm, combining diverse client devices - PCs, smartphones, sensors, single-function, and embedded - with computation and data storage in the cloud. As with every advance in computing, programming is a fundamental challenge, as the cloud is a concurrent, distributed system running on unreliable hardware and networks.
Orleans is a software framework for building reliable, scalable, and elastic cloud applications. Its programming model encourages the use of simple concurrency patterns that are easy to understand and employ correctly. It is based on distributed actor-like components called grains, which are isolated units of state and computation that communicate through asynchronous messages. Within a grain, promises are the mechanism for managing both asynchronous messages and local task-based concurrency. Isolated state and a constrained execution model allow Orleans to persist, migrate, replicate, and reconcile grain state. In addition, Orleans provides lightweight transactions that support a consistent view of state and provide a foundation for automatic error handling and failure recovery.
We implemented several applications in Orleans, varying from a messaging-intensive social networking application to a data- and compute-intensive linear algebra computation. The programming model is a general one, as Orleans allows the communications to evolve dynamically at runtime. Orleans enables a developer to concentrate on application logic, while the Orleans runtime provides scalability, availability, and reliability.
August 29, 2011
• Performance - DateTime.UtcNow vs DateTime.Now
Did you know that in C# programming, using DateTime.UtcNow to get the current date/time is ~3.3x faster than DateTime.Now ?
December 02, 2010
• Orleans on MSDN Channel 9
Yesterday Charles Torre came round to our building to film a Channel 9 Going Deep session with the Orleans team, which has now been posted on MSDN.
Project Orleans: A Framework for Scalable Distributed Computing (Client + Cloud)
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 (pun intended)!
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 framework: to make reliable and scalable distributed concurrent computing easier for developers to program. As we all know, it's hard to effectively program scalable distributed concurrent systems reliably. Orleans's goal is to change this by exploring new approaches (grain-based programming) using novel combinations of time-tested programming models and technologies (actors, promises, transactions, C#, CLR, etc).
Tune in. Enjoy.
November 30, 2010
• MSR Tech Report - Orleans: A Framework for Cloud Computing - MSR-TR-2010-159
Technical report MSR-TR-2010-159 about our team's Orleans project is now available on the Microsoft Research website.
Orleans: A Framework for Cloud Computing
Sergey Bykov, Alan Geller, Gabriel Kliot, James Larus, Ravi Pandya, and Jorgen Thelin
30 November 2010
Client + cloud computing is a disruptive, new computing platform, combining diverse client devices -- PCs, smartphones, sensors, and single-function and embedded devices -- with the unlimited, on-demand computation and data storage offered by cloud computing services such as Amazon's AWS or Microsoft's Windows Azure. As with every advance in computing, programming is a fundamental challenge as client + cloud computing combines many difficult aspects of software development.
Orleans is a software framework for building client + cloud applications. Orleans encourages use of simple concurrency patterns that are easy to understand and implement correctly, building on an actor-like model with declarative specification of persistence, replication, and consistency and using lightweight transactions to support the development of reliable and scalable client + cloud software.
October 28, 2010
• Current Projects - Orleans and Large Distributed Graphs
This week, our team has published a few pages on the Microsoft Research web site covering what we are currently working:
- Orleans - A Platform for Cloud Computing - Microsoft Research
- Querying Large Distributed Graphs - Microsoft Research
Enjoy.
October 22, 2010
• PowerShell - Which version of Windows are we running on?
In PowerShell, how can you find out which version of Windows are we running on?
Solution:
Start a PowerShell window and type Get-WMIObject Win32_OperatingSystem
Output should say something like:
SystemDirectory : C:\Windows\system32
Organization : XXXXXXXXXXXXXXXXXXXX
BuildNumber : 7600
RegisteredUser : XXXXXXXXXXXXXXXXXXXX
SerialNumber : XXXXX-XXX-XXXXXXX-XXXXX
Version : 6.1.7600
• PowerShell - Which version of PowerShell are we running?
How can you find out which version of PowerShell is installed on your PC?
Solution:
Start a PowerShell window and type Get-Host
Output should say something like:
Name : ConsoleHost
Version : 2.0

