运用Ruby纤程进行异步I/O:NeverBlock和Revactor
Ruby 1.9的纤程(Fibers)和非阻塞I/O越来越收到关注了。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。
作者 Alex Blewitt译者 宋玮 发布于 2008年6月25日 上午12时25分
作为预定6月25日发布的Eclipse Ganymede的一部分,Infoq将推出一系列Eclipse子项目的相关报道。今天,我们将探讨的子项目是Eclipse通讯框架(Eclipse Communication Framework——ECF)。Infoq采访了EFC的项目领导人及Composent咨询公司的主要负责人——Scott Lewis,以了解更多关于ECF及其功用的信息。
Lewis把ECF描述为给开发者提供的两个特性:
Ganymede的新特性包括抓取屏幕快照并发送给联系人,以及实时共享编辑,它允许文本编辑器(Java、XML等)通过ECF与其它用户共享。本地开发者编辑器内容的变化会同步给远程开发者,反之亦然。
Lewis解释了ECF API和与不同通信服务“提供者”个体之间的关系:
ECF拥有创建API的通用方法,这些API的焦点在于满足高层次编程的需要(比如,传递文件、发现服务或发送文本信息等等),而不是完成这些功能所需的协议(bittorrent、skype、xmpp等等)。打个比方,我们已经创建了一个文件传输API,它曝露了发送、接收以及浏览远程文件系统的功能。bittorrent、XMPP、http、ftp和scp/ssh也实现了同一可扩展API。每个实现都被称作“提供者”,这些提供者知道相关协议的细节。
用来为新版Eclipse Ganymede安装/更新提供文件传输服务的ECF文件传输API被称之为p2(InfoQ报道过)。这样,除了http/https协议之外,文件传输协议也被用到了Eclipse安装/更新上。
可是,ECF不只是文件传输。通用的发现API(Discovery API)在如SLP(通过jSLP)或Zeroconf(通过JmDNS)这样的发现协议之上提供了一个抽象。另外,ECF还配备了R-OSGi,将其作为允许远程通讯(同步或异步)的提供者的一部分,并且参与到了OSGi企业专家组(OSGi Enterprise Expert Group)中。
要获取更多的信息,可以看一下ECF webinar或者听一下podcast,后者是通过集成在Eclipse中的SkyPE和Jingle录制下来的。作为一个社区驱动的项目,ECF一直在寻找贡献者。
最后,当问到ECF如何集成到E4中,或者会受到E4怎样的影响时,Lewis说道:
至于实时共享编辑工作,我们已经开始着手将分布式和进程间通讯(ECF)与建模模型(例如,EMF、DOM或其它模型)进行集成。真正发生在实时共享编辑上的问题是文档模型被复制到了多个系统上,修改是实时、分布式(通过ECF)进行的。只要你分发了一个模型,允许多个人编辑/操作这个模型,你就必须处理同步复制数据的难题。如果数据偏离了同步,那么在这个时候,对用户来说软件是不能有效工作的。
我们期望ECF能够/将能够给E4的一部分内容提供帮助,E4正在关注在多个进程间分发和操纵模型,比如一个Web客户端访问服务器上的Eclipse E4。我们很希望ECF和作为其基础的异步消息传递结构能够在这些领域帮上E4很大的忙。ECF提供了一套轻量级的API,可以用来构建分布式应用并保持分布式状态同步。
查看英文原文:Eclipse Ganymede: An in-depth look at ECF (Eclipse Communication Framework)
Ruby 1.9的纤程(Fibers)和非阻塞I/O越来越收到关注了。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。
InfoQ中文站有幸与Google中国的产品经理杨巍先生在一起探讨了OpenSocial的相关话题,包括OpenSocial的初衷、构成要素、实现方式、以及要实现它的技术储备等等。
Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。
这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。
本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。
Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。
在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。
ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。
3 条回复
回复