50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Volta:利用重编译开发分布式应用

  • 2008-10-03
  • 本文字数:1032 字

    阅读完需:约 3 分钟

微软 LiveLabs 实验室的 Dragos Manolescu、Brian Beckman 和 Benjamin Livshits 等三人最近发表了一篇关于Volta 的文章,来探讨这个一年前在战略架构论坛2007 上宣布的新技术 Volta 可以用来对架构进行重构,就像 20 多年以来代码重构工具对代码进行重构一样。作者总结了 Volta 产生的背景,以及如何使用 Volta 等:

当前的编程语言和工具集全是为快速而简便地构建顺序的非分布式应用而设计的。 要编写分布式应用,程序员必须学习和使用针对跨层通信、数据编制、同步和安全等领域的底层类库。这些类库的唯一目的就是分布式执行以前只能被顺序执行的应用逻辑。

[但是] 大多数工具和技术迫使我们在写代码之前先进行分离……。在类如RunAtAsync等说明性标注的指导下,Volta 作为一套工具可以将样板代码插入到逻辑标识的同步分布式应用中,或者将非分布式执行文件转换为这些应用。

在 JIT 编译器产生本地代码前,Volta 在保护函数行为的 CIL 层(.Net Common Intermediate Language,.NET 通用中间语言)应用转换。作者认为这一方法的好处有以下几点:

  • 重编译器是语言独立的;
  • 重编译器和编译器分析与优化无关;
  • 在语言规范改动时 Volta 不需要改动,只在 CIL 规范改动时才需要;
  • Volta 支持许多分布式设计最佳实践,比如“所有网络上的调用都必须是异步的”;
  • Volta 提供了语言(用于写代码)与运行时(用于执行代码)间的多对多映射。

Volta 的推出被业界猜测是微软对 Google 的 GWT 所作出的回应。在文章中,作者也提到了这一点:

基于 Web 的 Ajax 类型应用是分布式应用中最为普遍的形式之一。

然而 GWT 不能进行多对多的映射,因为它仅在代码层级进行操作。Volta 提供的 CIL-to-JavaScript 的转换可以做到:

模仿不被 JavaScript 本地支持的高级的控制流功能,比如线程和协程等。

此外 Volta 还提供了端到端的方法和快照功能,来帮助理解隔离效果:

测量代码(Instrumented code)能收集完整的应用轨迹,帮助我们计算剩余量(Latency)和生产量(Throughput)的状态,执行应用诊断等。

作者最后对 Volta 做了简要总结:

将.NET 编程语言、类库和工具扩展应用到云计算。

在不久的将来,他们将主要关注结构安全,更细粒度的层剥离和层迁移等。

虽然在文章中,作者只是提到了如何将 Volta 应用到基于 Web 的 Ajax 类型应用和层剥离。但是我们可以想象,不久他们就会让 Volta 在面向服务架构(SOA)中创建和实施“服务交互“,以对服务和集成服务进行重构。

查看英文原文: Volta: Developing Distributed Applications by Recompiling

2008-10-03 01:521174

评论

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

Linux从头学:所有编程语言中的栈操作,底层原理都在这里

Java 编程 架构 面试 架构师

阿里P8亲传Java面试指南,助我一路过关斩将,成功拿到大厂Offer

Java 编程 面试 程序人生 架构师

细说JavaScript正则表达式(RegExp)

devpoint

正则表达式 regex JavaScrip 8月日更

Java的四种引用类型

W🌥

Java JVM 8月日更

fil最新消息!Fil价值与未来如何?

区块链 分布式存储 IPFS fil FIL价值

GitHub不再支持密码验证解决方案:SSH免密与Token登录配置

zhoulujun

git GitHub SSH Token 免密登录

一切努力似乎都徒劳?|靠谱点评

无量靠谱

【LeetCode】股票的最大利润Java题解

Albert

算法 LeetCode 8月日更

fil矿机价格怎么计算?fil矿机托管费用怎么计算?

fil矿机价格怎么计算 fil矿机托管费用怎么计算

Vue进阶(三十四): webstorm 应用 git 进行版本管理

No Silver Bullet

git Vue 8月日更

如何在二三线城市月薪过万(二)面试100人后的经验总结!教你如何做面霸

小鲍侃java

8月日更

【前端 · 面试 】HTTP 总结(十二)—— URL 和 URI

编程三昧

面试 HTTP url 8月日更

DAPP钱包开发模式详细介绍

Geek_23f0c3

dapp 钱包系统开发 DAPP智能合约交易系统开发

七夕特别篇|用Python绘画牛郎织女在鹊桥相见

Python研究者

8月日更

毕业总结

Johnny

架构实战营

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java 程序员 架构 面试 IT

我为什么不建议大家等公司倒闭之后,再找工作!

非著名程序员

面试 认知提升 招聘管理 8月日更

上游思维:上工治未病

石云升

读书笔记 公司管理 8月日更 上游思维

JavaScript继承的实现方式:原型语言对象继承对象原理剖析

zhoulujun

JavaScript

震惊!300多页美团百亿级系统架构设计实录首公开

Java 编程 架构 面试 架构师

区块链技术 | 数字货币的未来发展前景趋势分析

CECBC

新药研发周期越来越短,北鲲云超算平台如何提高药企竞争力?

北鲲云

minetest Window编译运行

c++ 开源 游戏 我的世界

fil挖矿怎么样?fil挖矿收益怎样?

fil挖矿怎么样 fil挖矿收益怎样

区块链和比特币到底有什么关系?

CECBC

提升个人影响力的简单原则

俞凡

认知

Python代码阅读(第9篇):返回最长的输入对象

Felix

Python 编程 Code Programing 阅读代码

到底啥是区块链分叉?

CECBC

看完这篇博客,Python Django 你就学会一半了

梦想橡皮擦

8月日更

“硬钢字节”阿里大牛分享内部数据结构与算法(诛仙版)源码笔记

Java~~~

Java 架构 面试 算法 数据结构与算法

求天理 存人欲|靠谱点评

无量靠谱

Volta:利用重编译开发分布式应用_.NET_Jean-Jacques Dubray_InfoQ精选文章