博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET Actor Model Implementations Differ in Approach
阅读量:6081 次
发布时间:2019-06-20

本文共 2857 字,大约阅读时间需要 9 分钟。

Last week Vaughn Vernon, author of Implementing Domain-Driven Design, published Dotsero, a .NET Actor model toolkit written in C# that closely follows the Akka API. The Akka toolkit, an implementation of the Actor model, has so far been available with a Java and a Scala API.

A preview release of the Orleans framework, a cloud programming model also based on the actor model, was released earlier this year by Microsoft Research with a goal of minimizing the challenges when building interactive services that are scalable and reliable.

The Orleans team believes that although actor platforms such as Erlang and Akka are a step forward in simplifying distributed system programming, they are still burdened with many complexities because of the relatively low level of provided abstractions and system services. To build a correct solution they claim that a developer must be a distributed systems expert. To avoid these complexities and targeting mainstream developers the team has raised the level of the actor abstraction in Orleans. It is actor-based, but differs from existing actor-based platforms by treating actors as virtual entities, not as physical ones.

In a recent twitter discussion between Vaughn and Sergey Bykov, lead of the Orleans project at Microsoft Research, Vaughn claimed that Orleans is not really an Actor model implementation partly due to its lack of Become/Unbecome to support a Finite State Machine (FSM) which Vaughn claims is part of the original definition of actors. He also believes the fact that an Orleans actor always exists is error prone by making it hard for a client to realize if it’s asking for something that doesn’t exist.

Sergey answered by claiming that Become is just one way of reading the definition and therefore not a requirement of the actor model. In his experience he has also found that the fact that an Orleans actor always exists is much less error prone since it eliminates races and simplifies recovery. Cases where an actor shouldn’t exist are handled by application logic returning an error, which he admits it’s not ideal but still better than experiencing racing conditions when creating actors.

Recently Richard Astbury, a Microsoft MVP for Azure, created a simple Internet of Things gateway application to demonstrate his view of how Orleans can help developers in building high scale, low latency and resilient .NET applications for the cloud. Richard notes that although it’s a trivial example, it contains the basic building blocks for building more complicated scenarios.

A paper, Orleans: Distributed Virtual Actors for Programmability and Scalability, presenting the design principles behind Orleans was published in March.

Vaughn talked last year about Actor model in reactive domain-driven design (DDD) and in an earlier talk about the foundation for actor model together with DDD.

转载地址:http://gezwa.baihongyu.com/

你可能感兴趣的文章
Frogger
查看>>
人机交互评价
查看>>
python发送邮件
查看>>
从页面上灵活增删改查
查看>>
SQL操作简单实现
查看>>
C# 只开启一个程序,如果第二次打开则自动将第一个程序显示到桌面
查看>>
java基础4
查看>>
patch 打补丁,和diff 生成制作补丁
查看>>
ios之UITextView
查看>>
ios之UITableView
查看>>
POJ2524 Ubiquitous Religions(并查集)
查看>>
写一个函数,实现去除字符串空格
查看>>
maven配置文件解析
查看>>
Quick-Cocos2d-x初学者游戏教程(四) --------------- 开发初探(添加背景,标题,动作,按钮)...
查看>>
「ubuntu」Ubuntu Recovery模式下只读问题
查看>>
使phongegap的程序纵向不滚动
查看>>
分布式文件系统HDFS 练习
查看>>
ElasticSearch之安装head插件
查看>>
mount命令详解
查看>>
Android四大组件应用系列——Activity与Service交互实现APK下载
查看>>