InfoQ

新闻

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

作者 Jean-Jacques Dubray译者 霍泰稳 发布于 2008年10月3日 上午1时52分

社区
.NET,
Architecture
主题
云计算,
语言,
JavaScript
标签
AJAX,
GWT

微软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

没有回复

回复

独家内容

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。

揭示常见的重构误区

相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。