写点什么

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:521217

评论

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

一致性hash算法及标准差验证

Damon

ARTS WEEK5

紫枫

ARTS 打卡计划

负载均衡方式

羽球

负载均衡

程序的机器级表示-程序的编码

引花眠

计算机基础

【计算机网络】如何实现可靠数据传输?

烫烫烫个喵啊

进程、线程基础知识全家桶,30 张图一套带走

小林coding

Linux 操作系统 计算机基础 进程 进程线程区别

数据驱动 vs 关键字驱动:对UI自动化测试框架搭建的探索

冯文辉

DevOps 敏捷 自动化测试

低代码与无代码

lidaobing

低代码 无代码开发

观智能化浪潮如何改变产业链创新

CECBC

ARTS-WEEK6

一周思进

ARTS 打卡计划

ARTS打卡 - Week 07

teoking

ARTS打卡 第7周

引花眠

ARTS 打卡计划

看动画学算法之:排序-插入排序

程序那些事

Java 数据结构 算法 插入排序

昆明市成立两大“高端”中心,区块链赋能生物医药和高原特色农业

CECBC

redis系列之——高可用(主从、哨兵、集群)

诸葛小猿

redis redis集群 redis哨兵 redis主从

SpringBoot 入门:03 - 统一请求返回

封不羁

Java spring springboot

智慧4S店解决方案发布,看英特尔如何引领汽车销售行业变革

最新动态

设计模式(1)—什么是设计模式?设计模式的六大原则是什么?

爱嘤嘤嘤斯坦

Java 程序员 编程语言 设计模式 23种设计模式

【计算机网络】为什么要三次握手四次挥手?

烫烫烫个喵啊

TCP 计算机网络

分布式系统设计理念这么难学?

架构师修行之路

架构 分布式

简述CAP理论

lei Shi

Cache解决算法 Charles断点调试breakpoint John 易筋 ARTS 打卡 Week 08

John(易筋)

ARTS 打卡计划

MySQL实战45讲总结

`

MySQL

每周学习总结 - 架构师培训 6期

Damon

编程核心能力之抽象

顿晓

抽象 编程日课

抽象工厂模式

Leetao

Python 面试 设计模式

Mysql插入百万条数据

Java小咖秀

MySQL 运维 数据

极客时间 - 架构师培训 - 6 期作业

Damon

每周学习总结 - 架构师培训 5 期

Damon

ARTS打卡-06

Geek_yansheng25

Go:Stringer命令,通过代码生成提高效率

陈思敏捷

stringer Go 语言

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