剖析短迭代
敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?
作者 Niclas Nilsson译者 韩锴 发布于 2008年7月3日 上午12时27分
正像在“多核危机:Scala vs. Erlang”一文中所讲的,面对当前、尤其是未来的多CPU,需要大量的并行性计算,那么并发的消息传递和actor模型将成为一种很有希望的解决之道。这些机制在Erlang中是完全内置的,Scala的框架中则包含了Scala Actor库。在Java的世界中,同样也存在一个纯Java的实现——Kilim。
Kilim是一个Java消息传递框架,它提供了超轻量级的线程和工具,可以在这些线程之间进行快速、安全、零复制的消息传递。
Kilim包含如下组件:一个字节码后期处理程序(“weaver”),带有多个缓冲mailbox(多生产者,单消费者队列)的运行时库,一个用户级的调度器,以及一个类型系统。它的类型系统对消息内部的指针别名增加了某些约束,确保线程之间不会彼此干扰。
而且它的性能看起来很不错。据Sriram Srinivasan在Google Tech Talk的演讲所称,Kilim的任务切换比Java的线程切换快出1000倍,它的消息传递比Erlang快3倍。
Kilim的用法是在方法和参数上标注Annotation。如果一个方法被标注为 @pausable,则说明它直接地或者间接地调用了其他可暂停的方法,这种方法在其调用链中的某处,最终会调用Kilim的方法,比如Actor.sleep()或者Mailbox.get()。字节码后期处理器会将这些被注释的代码转换为延续传递风格(continuation passing style)的代码。某些语言可以直接支持“延续”。其实,之前在一些著名的Web框架,比如RIFE和Jetty之中,“延续”就已经改头换面出现在Java中了。
另外,用于参数的标注包括@free、@cuttable或@safe。Sriram Srinivasan和Alan Mycroft在ECOOP 2008的一次演讲中描述了这些参数修饰符:
这些修饰符可以理解为一个在对象树中的对象的两种正交的特性:第一,它是否被另一个对象(在后面的情况中被称为“根”)所引用;第二,它是否在结构上可以改变(它的指针型域(pointer-valued field)是否是可分配的)。第二种性质具有传递性,如果一个对象的父亲是在结构上可改变的,那么它的孩子也是。
给定这些以后,可以判定,如果一个对象是对象树的根,并且它在结构上是可改变的,则这个对象是“自由的(@free)”。一个可切割的(@cuttable)对象可能是、也可能不是根,但它是structurally modifiable。如果一个对象具有安全(@safe)特性,则不是structurally modifiable(由于传递性),而不关心它是否是根。
Actor模型出现的场合越来越多,无论未来你在哪种平台上用什么语言编程,Actor模型都会是一个十分重要的概念。
查看英文原文:Kilim - actors and message passing in Java
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。
InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!
在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。
通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。
本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。
InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。
没有回复
回复