Orleans (software framework)

Summary

Orleans is a cross-platform software framework for building scalable and robust distributed interactive applications based on the .NET Framework[2][3] or on the more recent .NET.

Orleans
Original author(s)Microsoft Research
Developer(s)Microsoft, 343 Industries
Initial releaseJanuary 2015; 9 years ago (2015-01)
Stable release
8.0.0 / January 5, 2024; 3 months ago (2024-01-05)[1]
Repositorygithub.com/dotnet/orleans
Written inC#
Operating systemWindows, Linux, macOS
Platform.NET Framework,
.NET
TypeSoftware framework
LicenseMIT License
Websitedotnet.github.io/orleans/

Overview edit

Orleans was originally created by the eXtreme Computing Group at Microsoft Research[2] 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.[4]

The virtual actor model is based on the actor model but has several differences:[5]

  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[6] and other companies since 2011.[7] The core Orleans technology was transferred to 343 Industries and is available as open source since January 2015.[8] The source code is licensed under MIT License and hosted on GitHub.[9]

Orleans runs on Microsoft Windows, Linux, and macOS and is compatible with .NET Standard 2.0 and above.[10]

Features edit

Some Orleans features include:[11]

Related implementations edit

The Electronic Arts BioWare division created Project Orbit. It is a Java implementation of virtual actors that was heavily inspired by the Orleans project.[14][15]

See also edit

References edit

  1. ^ "Tags · dotnet/orleans · GitHub". GitHub Orleans repository. Retrieved 2024-03-28.
  2. ^ a b Microsoft's Orleans Distributed App Framework Is Now Cross Platform - The New Stack
  3. ^ Open-Source Cloud Framework By Microsoft - HPC ASIA
  4. ^ Microsoft to release Project Orleans as open source | Computerworld
  5. ^ Bernstein, Philip A.; Bykov, Sergey; Geller, Alan; Kliot, Gabriel; Thelin, Jorgen (2014). "Orleans: Distributed Virtual Actors for Programmability and Scalability" (PDF). Microsoft Research.
  6. ^ Orleans at Microsoft | .NET Conf 2020
  7. ^ Microsoft opens early adopter program for its 'Orleans' cloud framework | ZDNet
  8. ^ Microsoft to make Halo 4 gaming cloud engine Project Orleans open source - SiliconANGLE
  9. ^ "Dotnet/Orleans". GitHub. 17 February 2022.
  10. ^ "Orleans benefits". learn.microsoft.com.
  11. ^ "Introduction | Microsoft Orleans Documentation". Archived from the original on 2020-08-06. Retrieved 2019-11-01.
  12. ^ Resurrecting Middle-Tier Distributed Transactions | Microsoft Research
  13. ^ Distributed Transactions are dead, long live distributed transactions! | Reactive Summit 2018
  14. ^ "Home · orbit-legacy/Orbit1 Wiki". GitHub.
  15. ^ Gamasutra: Creating scalable backends for games using open source Orleans framework

Further reading edit

  • Bykov, Sergey; Geller, Alan; Kliot, Gabriel; Larus, Jim; Pandya, Ravi; Thelin, Jorgen (2011). "Orleans: Cloud Computing for Everyone" (Document). Association for Computing Machinery.
  • Bernstein, Philip A.; Bykov, Sergey; Geller, Alan; Kliot, Gabriel; Thelin, Jorgen (2014). "Orleans: Distributed Virtual Actors for Programmability and Scalability" (PDF). Microsoft Research.

External links edit

  • Official website
  • GitHub - dotnet/orleans: Orleans is a cross-platform framework for building distributed applications with .NET
  • Orleans - Virtual Actors - Microsoft Research
  • Microsoft Orleans - a worked example - CodeProject