Orleans (software framework)

{{Short description|Software framework}}

{{Infobox software

| name = Orleans

| logo = Orleans logo.png

| logo size = 64px

| author = Microsoft Research

| developer = Microsoft, 343 Industries

| released = {{Start date and age|2015|01}}

| latest_release_version = 9.1.2

| latest_release_date = {{Start date and age|2025|02|13}}{{cite web|url=https://github.com/dotnet/orleans/tags|title=Tags · dotnet/orleans · GitHub|website=GitHub Orleans repository|language=en|access-date=2025-05-16}}

| repo = {{URL|https://github.com/dotnet/orleans}}

| programming language = C#

| operating system = Windows, Linux, macOS

| platform = .NET Framework,
.NET

| genre = Software framework

| license = MIT License

| website = {{URL|http://dotnet.github.io/orleans/}}

}}

Orleans is a cross-platform software framework for building scalable and robust distributed interactive applications based on the .NET Framework[https://thenewstack.io/microsofts-orleans-distributed-app-framework-is-now-cross-platform/ Microsoft's Orleans Distributed App Framework Is Now Cross Platform - The New Stack][http://hpc-asia.com/open-source-cloud-framework-microsoft/ Open-Source Cloud Framework By Microsoft - HPC ASIA] or on the more recent .NET.

Overview

Orleans was originally created by the eXtreme Computing Group at Microsoft Research and introduced the virtual actor model as a new approach to building distributed systems for the cloud. Orleans scales from a single on-premises server to highly-available and globally distributed applications in the cloud.[https://www.computerworld.com/article/2859286/microsoft-to-release-project-orleans-as-open-source.html Microsoft to release Project Orleans as open source | Computerworld]

The virtual actor model is based on the actor model but has several differences:{{Cite web|first1=Philip A. |last1=Bernstein |first2=Sergey |last2=Bykov |first3=Alan |last3=Geller |first4=Gabriel |last4=Kliot |first5=Jorgen |last5=Thelin|title=Orleans: Distributed Virtual Actors for Programmability and Scalability|year=2014|publisher=Microsoft Research|url=https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf}}

  1. A virtual actor always exists, it cannot be explicitly created or destroyed.
  2. Virtual actors are automatically instantiated. If a server hosting an actor crashes, the next message sent to the actor causes it to be reinstantiated automatically.
  3. The server that an actor is on is transparent to the application code.
  4. Orleans can automatically create multiple instances of the same stateless actor.

Starting with cloud services for the Halo franchise, the framework has been used by a number of cloud services at Microsoft[https://www.youtube.com/watch?v=KhgYlvGLv9c Orleans at Microsoft | .NET Conf 2020] and other companies since 2011.[https://www.zdnet.com/article/microsoft-opens-early-adopter-program-for-its-orleans-cloud-framework/ Microsoft opens early adopter program for its 'Orleans' cloud framework | ZDNet] The core Orleans technology was transferred to 343 Industries and is available as open source since January 2015.[https://siliconangle.com/2014/12/17/microsoft-to-make-halo-4-gaming-cloud-engine-project-orleans-open-source/ Microsoft to make Halo 4 gaming cloud engine Project Orleans open source - SiliconANGLE] The source code is licensed under MIT License and hosted on GitHub.{{Cite web|url=https://github.com/dotnet/orleans/blob/master/LICENSE|title = Dotnet/Orleans|website = GitHub|date = 17 February 2022}}

Orleans runs on Microsoft Windows, Linux, and macOS and is compatible with .NET Standard 2.0 and above.{{cite web |title=Orleans benefits |url=https://learn.microsoft.com/en-us/dotnet/orleans/benefits |website=learn.microsoft.com |date=3 July 2024 |language=en-us}}

Features

Some Orleans features include:{{Cite web |url=http://dotnet.github.io/orleans/Documentation/index.html |title=Introduction {{!}} Microsoft Orleans Documentation |access-date=2019-11-01 |archive-date=2020-08-06 |archive-url=https://web.archive.org/web/20200806010016/http://dotnet.github.io/orleans/Documentation/index.html |url-status=dead }}

  • Persistence
  • Distributed ACID transactions[http://sites.computer.org/debull/A19june/p3.pdf Resurrecting Middle-Tier Distributed Transactions | Microsoft Research][https://www.reactivesummit.org/2018/schedule/distributed-transactions-are-dead-long-live-distributed-transactions Distributed Transactions are dead, long live distributed transactions! | Reactive Summit 2018]
  • Streams
  • Timers & Reminders
  • Fault tolerance

Related implementations

The Electronic Arts BioWare division created Project Orbit. It is a Java implementation of virtual actors that was heavily inspired by the Orleans project.{{Cite web|url=https://github.com/orbit/orbit-legacy/wiki|title=Home · orbit-legacy/Orbit1 Wiki|website=GitHub}}[https://www.gamedeveloper.com/programming/creating-scalable-backends-for-games-using-open-source-orleans-framework Gamasutra: Creating scalable backends for games using open source Orleans framework]

See also

{{Portal|Free and open-source software}}

References

{{Reflist}}

Further reading

  • {{Cite document|first1=Sergey |last1=Bykov |first2=Alan |last2=Geller |first3=Gabriel |last3=Kliot |first4=Jim |last4=Larus |first5=Ravi |last5=Pandya |first6=Jorgen |last6=Thelin|title=Orleans: Cloud Computing for Everyone|year=2011|publisher=Association for Computing Machinery}}
  • {{Cite web|first1=Philip A. |last1=Bernstein |first2=Sergey |last2=Bykov |first3=Alan |last3=Geller |first4=Gabriel |last4=Kliot |first5=Jorgen |last5=Thelin|title=Orleans: Distributed Virtual Actors for Programmability and Scalability|year=2014|publisher=Microsoft Research|url=https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf}}