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}}
- A virtual actor always exists, it cannot be explicitly created or destroyed.
- 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.
- The server that an actor is on is transparent to the application code.
- 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
- 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}}
External links
- {{Official website|http://dotnet.github.io/orleans/}}
- [https://github.com/dotnet/orleans GitHub - dotnet/orleans: Orleans is a cross-platform framework for building distributed applications with .NET]
- [https://www.microsoft.com/en-us/research/project/orleans-virtual-actors/?from=https%3A%2F%2Fresearch.microsoft.com%2Fprojects%2Forleans%2F Orleans - Virtual Actors - Microsoft Research]
- [https://www.codeproject.com/articles/1113227/microsoft-orleans-a-worked-example Microsoft Orleans - a worked example - CodeProject]
{{Cloud computing}}
{{Microsoft FOSS}}
{{Microsoft Research}}
Category:Distributed computing
Category:Free and open-source software
Category:Free software programmed in C Sharp
Category:Microsoft free software
Category:Software using the MIT license
{{Microsoft-software-stub}}