写点什么

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

评论

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

后台定时统计任务太耗时如何优化一下

zhuoqianmingyue

线程池

2020年3月北京BGP机房网络质量评测报告

博睿数据

运维 APM 机房 数据中心 拨测

数据产品经理实战-DMP搭建

第519区

产品经理 营销

企业微信机器人在大型财务共享中心的应用实践

DT极客

代码刚提交暂存区,组长突然要我把新增代码 Commit另一分支怎么办?

zhuoqianmingyue

git

足不出户“逛”银行,37家城商行、农商行手机银行App性能大比拼

博睿数据

APM App 评测 网银 银行

配置国内的pip源以提高使用pip安装python软件包的速度

良少

Python pip

游戏夜读 | 世界两大游戏评论!

game1night

卡巴斯基产品本地化用时能缩短 77%,怎么做到的?

葛仲君

项目管理 软件开发 本地化 开发流程

短视频时代下的知识摄取

Neco.W

学习 知识管理 知识体系 短视频

ARTS第一周

困到清醒

ARTS 打卡计划 起跑

程序员的修行之路-保持良好的心态

牧马人

程序员

Jsp页面报错后如何找到提示信息中的_jsp.java文件

阡陌r

快速入门 Nacos 作为配置中心操作

zhuoqianmingyue

nacos SpringBoot 2

玩转SpringBoot2.x之缓存对象

zhuoqianmingyue

redis springboot

使用Spring Boot和Docker构建微服务架构(二)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

Spring Cloud 和 Dubbo 哪个会被淘汰?

程序猿DD

Spring Cloud dubbo

微软:正式发布针对 .NET Core的 Winform 设计器

葡萄城技术团队

.net 微软 Win .net core

2020年3月云主机性能评测报告

博睿数据

云计算 运维 机房 数据中心 主机

产品周刊 | 第 16 期(20200524)

八味阁

产品 设计 产品经理 产品设计

使用Spring Boot和Docker构建微服务架构(一)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

使用Spring Boot和Docker构建微服务架构(三)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

是什么在背后支撑起“带货一哥”李佳琦?

博睿数据

负载均衡 APM 压测 秒杀 并发

使用Spring Boot和Docker构建微服务架构(四)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

程序员的修行之路-关于编程语言

牧马人

程序员

程序员的修行之路-关于编程语言

牧马人

程序员

Java | @Override 不要再把它当成可有可无的了

YoungZY

Java 注解 Override annotation

微信gif图片大小的规则

石云升

微信 GIF

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【1】-前期准备

hadesxiong

Python 爬虫 保险 Scrapy

linux 账户及安全管理(一 账户管理)

牧马人

Linux

zookeeper到nacos的迁移实践

捉虫大师

架构 nacos

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