NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

如何提升 API 的性能水平

Apifox

程序员 接口 API 开放 API API 性能

2024-04-03:用go语言,在一个小城市里,有 m 个房子排成一排, 你需要给每个房子涂上 n 种颜色之一(颜色编号为 1 到 n ), 有的房子去年夏天已经涂过颜色了,所以这些房子不可以被重新

福大大架构师每日一题

福大大架构师每日一题

全面了解龙蜥衍生版 KeyarchOS 在安全、机密计算等方面的实践 | 龙蜥大讲堂浪潮信息专场

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥大讲堂

免费延期一年!Alibaba Cloud Linux 2 EOL 延保支持计划

OpenAnolis小助手

阿里云 操作系统 Alibaba Cloud Linux

开源流量回放平台 AREX 在携程的大规模落地实践

AREX 中文社区

Java 开源 测试 流量回放

4款免费可用的数据集成平台亮点

RestCloud

ETL 数据集成平台

Penpad Season 2 质押突破350ETH,还有望获Scroll生态空投

长安区块链

Flink 流批一体在模型特征场景的使用

Apache Flink

大数据 flink 流批一体

如何选择合适的系统?MES系统和MOM系统的区别

万界星空科技

制造业 mes 万界星空科技 生产管理 MOM

首个镜像服务商奖项公布!「Alinux 伙伴招募计划」最佳服务商名单来了

OpenAnolis小助手

镜像 操作系统 龙蜥社区 Alibaba Cloud Linux

Linux中的conntrack命令深入解析

GousterCloud

Linux 运维

嘉为蓝鲸DevOps研发效能管理平台V6.0重磅发布!

嘉为蓝鲸

DevOps 研发管理 研发效能 价值流

度安讲 | 首期「数据安全与隐私保护合规」技术沙龙顺利召开

百度安全

新兴势力展露头角? ERC-1111 协议能否开启下一个热潮

NFT Research

NFT NFT\

中小型工厂应如何选择生产管理mes系统

万界星空科技

制造业 生产管理系统 mes 云mes 制造业工厂

中软协AI沙龙热议:智领云CEO彭锋解读AI大模型技术的应用前景与趋势

智领云科技

容器 AI大模型 大模型 中软协

ChatGPT全方位解析:如何培养 AI 智能对话技能?

测试人

软件测试

高柔性第二代扁线定子量产线正式上市

财见

容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践

智领云科技

容器 PDF 大模型 AI大语言模型

🔥🔥🔥最好用的SDK版本管理器(version-manager)

Geek_5bcc45

Java Go node.js Py Version

OpenMLDB vs Redis 内存占用量测试报告

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

当设计遇见技术—低代码开发平台设计探索

inBuilder低代码平台

设计 交互式设计

容器中的大模型(二) | 利用大模型,使用自然语言查询SQL数据库

智领云科技

数据库 sql 容器 AI大模型 大模型

【论文速读】| MASTERKEY:大语言模型聊天机器人的自动化越狱

云起无垠

通过淘宝开放平台API接口获取商品信息:标题、分类与店铺名称的新方法

技术冰糖葫芦

API 接口 API 文档

Advanced RAG 01:讨论未经优化的 RAG 系统存在的问题与挑战

Baihai IDP

AI LLM 企业号 4 月 PK 榜 rag 检索增强生成

月之暗面Kimi智能助手实现200万字长上下文,火山引擎提供云服务支持

新消费日报

解锁AI Studio:玩转大模型应用,开启智能新时代

百度开发者中心

人工智能 深度学习 大模型

你真的会写侧边栏收起动画吗?

前夕

CSS css3 前端

深入探索:主流低代码开发平台的应用场景及开发流程

优秀

低代码开发平台 低代码平台 低代码平台应用场景

视频创作者必备应用!三步帮你解决前置内容条件,打造专属大片!

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 AI应用 飞桨星河社区

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