写点什么

.NET 平台上的分布式编程框架 MBrace 发布 1.0 版本

  • 2015-11-22
  • 本文字数:1295 字

    阅读完需:约 4 分钟

在经过数年的开发之后,MBrace 1.0 终于在上周正式发布了。MBrace 是一种使用 F#及 C#进行脚本编写与编程,适用于高伸缩性的云数据应用的编程模型。该项目主要包含了各种代码类库以及适配各种云供应商的运行时。

该项目的关键组件是 MBrace.Core,这是一个独立的类库,包含了核心 MBrace 编程模型。它提供了一种基于 API 的计算表达式,调用者既可以直接使用这种表达式,也可以通过它创建其他类库,例如 MBrace.Flow。以下示例将使用云工作流,展现如何通过 HTTP 调用获取远程内容。

复制代码
let urls = [| ("bing", "http://bing.com") ("google", "http://google.com") /* more urls*/ |]
let download (name: string, uri: string) =
cloud {
let webClient = new WebClient()
let! text = webClient.AsyncDownloadString(Uri(uri)) |> Cloud.OfAsync
do! CloudFile.Delete(sprintf "pages/%s.html" name)
let! file = CloudFile.WriteAllText(path = sprintf "pages/%s.html" name, text = text)
return file
}
let filesTask =
urls |> Array.map download |> Cloud.Parallel |> cluster.CreateProcess

重要通知:接下来 InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注 InfoQ 微信公众号第一时间阅读精品内容。

MBrace.Flow 是一个基于 MBrace.Core 创建的分布式流(Streaming)类库,该类库使用了函数式的管道声明。下面的示例展示了如何通过云流查找在多个 CSV 文件中出现重复字符串的次数。

复制代码
let numberOfDuplicates =
CloudFlow.OfCloudFilesByLine ["container/data0.csv" ; "container/data1.csv"]
|> CloudFlow.map (fun line -> line.Split(','))
|> CloudFlow.map (fun tokens -> int tokens.[0], Array.map int tokens.[1 ..])
|> CloudFlow.groupBy (fun (id,_) -> id)
|> CloudFlow.filter (fun (_,values) -> Seq.length values > 1)
|> CloudFlow.length
|> cluster.Run

除了代码类库之外,MBrace 中还包括了其他的主要组件,即 MBrace 运行时实现。目前该实现只支持 Azure 这一种云提供商,不过对 AWS 的支持已经在开发当中了。Azure 运行时实现包括对 MBrace.Core 编程模型的完整支持,以及用于集群管理的辅助工具。以下代码展示了如何创建一个基于 Azure 平台上的四个 A3 实例的集群:

复制代码
let pubSettingsFile = @"... path to your downloaded publication settings file ... "
let config = DeploymentManager.BeginDeploy(pubSettingsFile, Regions.North_Europe, VMSizes.A3, vmCount = 4)

为了帮助使用者快速上手,MBrace 提供了两个学习工具包:一个工具包对应Azure 平台,而另一个工具包则对应一个模拟的集群。模拟集群可运行在一台单独的机器上,通过这种方式,就可以在某个开发者的机器上直接运行与调试分布式的代码,而无需依赖任何额外的基础设施了

MBrace 是一个托管在 GitHub 平台上的开源项目,可以通过多种方式为该项目贡献你的力量:包括对类库的贡献、对云提供商运行时的贡献、以及对示例和文档的贡献。

查看英文原文: Release of MBrace 1.0, a Distributed Programming Framework for .NET

2015-11-22 18:002424
用户头像

发布了 428 篇内容, 共 166.2 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

扬州万方:基于申威平台的 Curve 块存储在高性能和超融合场景下的实践

网易数帆

nvme 分布式存储 curve 12 月 PK 榜

JAVA培训学习后就业好吗

小谷哥

【12.16-12.23】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动

火山引擎DataTester上线“流程画布”功能,支持组合型A/B实验分析

字节跳动数据平台

大数据 AB testing实战 12 月 PK 榜

携手 StarRocks 打造极速统一数据底座,理想汽车获 DAMA 中国 “数据治理最佳实践奖”

StarRocks

Java本地高性能缓存实践

阿里技术

cache 本地缓存 缓存Java

AI技术实践|用腾讯云智能文本图像增强打造一个掌上扫描仪

牵着蜗牛去散步

人工智能 腾讯云 文字识别 图像处理

敏捷价值流管理

敏捷开发

敏捷 敏捷开发 价值流 价值流管理

培训学习大数据门槛低吗

小谷哥

Dubbo架构设计与源码解析(三)责任链模式

京东科技开发者

dubbo 过滤器 filter 责任链 provider

BitSail issue持续更新中,快来挑战,赢取千元礼品!

字节跳动数据平台

大数据 开源 12 月 PK 榜

科班出生和培训出身的前端程序员哪个好?

小谷哥

WorkPlus助力中交四航局打造数字化管理新模式,释放企业生产力

WorkPlus

企业IM软件WorkPlus,组织高效协作与一体化办公首选

WorkPlus

百度工程师教你玩转设计模式(装饰器模式)

百度Geek说

Java 设计模式 12 月 PK 榜 装饰器模式

“自动驾驶+昇腾AI” 西安交大团队解决高级辅助驾驶的关键难题

Geek_2d6073

借力 StarRocks,"陆战之王" 大润发如何在零售业数字化转型中抢占先机?

StarRocks

数据分析 零售

带你玩转OpenHarmony AI:打造智能语音子系统

OpenHarmony开发者

OpenHarmony

【重磅干货】如何构建 API 生态促进企业上下游合作

石臻臻的杂货铺

API

大数据开发培训机构有哪些?

小谷哥

阿里巴巴最新出版的 Java 面试参考指南(泰山版)开源了!

架构师之道

编程 程序员 java面试

你的企业IM安全吗?对于私有化的即时通讯软件你了解多少?

WorkPlus

金融科技 DevOps 的最佳实践

SEAL安全

DevOps 最佳实践 FinTech 12 月 PK 榜

搭建"积木"=编程?

间隔

如何保证设计出合理的架构1-4

程序员小张

「架构实战营」

前端培训学习后好就业吗?

小谷哥

一文掌握MyBatis的动态SQL使用与原理

华为云开发者联盟

sql 开发 华为云 12 月 PK 榜

中移链已在BSN-DDC基础网络上线元交易功能

BSN研习社

BSN-DDC

.NET平台上的分布式编程框架MBrace发布1.0版本_.NET_Pierre-Luc Maheu_InfoQ精选文章