运用Ruby纤程进行异步I/O:NeverBlock和Revactor
Ruby 1.9的纤程(Fibers)和非阻塞I/O越来越收到关注了。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。
作者 Stefan Tilkov译者 宋玮 发布于 2007年6月23日 上午9时16分
二月份,W3C组织了一场研讨会,内容是关于“企业计算的服务网络(Web of Services)”,会议专门就Web服务和Web标准迎合企业软件需求的适宜性进行了探讨,还包括用来改善企业支持的相关措施。InfoQ随后报道了其中十分有趣的意见书 ;现在,汇总结果报告已经发布。
引述摘要:
研讨会的参与者建议,除了其他事项外,W3C应当采取下列措施:
- 通过Web服务核心工作组来维护Web服务规范,确保Web服务核心平台的稳定性,
- 由Web和Web服务机制来推动共同利用资源
- 帮助用户/垂直行业详细说明需求、用例、最佳实践指导及SOA架构模式
更有趣的一些引述还包括,承认“服务网络”缺少成功案例:
尽管文档网络(Web of documents)的成功超出了人们的想象,这很大程度归结于普遍采用了它所依赖的标准(HTML、HTTP、URI),但是服务网络没有获得同等的成功,尤其在企业中,它具有的巨大潜在效益。
报告也提到了WS相关内容:
许多没有利用SOAP Web服务的服务被部署到Web上,但是它们不足以满足综合的企业IT需求,尤其是安全领域。
作为Web和Web服务方式都有价值的观点:
研讨会上的讨论指出,各个组织正在从两个方法(Web和WS-*)中获利,至少有一个案例,同一个组织(Yahoo)说他们成功地在业务的不同领域使用了两个方法。
一个老生常谈的话题是XML数据绑定。Paul Downey 曾领导过一个数据绑定工作组(我们以前和他聊过这一点 ),他也参加了研讨会,并对有“这么多热爱数据绑定的工作组”感到高兴,报告支持了这一说法,但是也承认了问题:
W3C数据绑定工作组开始帮助解决这一问题。它是由一个用户组织主持的,但是由于缺少厂商参与,WG未能达到临界状态。研讨会期间,IBM表示:因为微软没有加入,所以他们也不加入。其他厂商则说没有IBM和微软参与,很难给出在WG上投入时间和精力的正当理由。这是问题明显的例子。标准,尤其企业软件标准,对用户是有益的,但是厂商们有时有不一致的目标——抑制市场采用标准。
研讨会结束不久,WSO2的Jonathan Marsh(以前在微软)在blog上发帖支持了这一观点:
WS-*最大的痛处在于对XML Schema支持贫乏,招致数据绑定工作组可用的XML Schema模式不足。重新努力解决这一点是必不可少的。我确信WSO2能继续参与,或许甚者在这一重要领域开创我们的工作,我希望那些在微软表示不参与之后错误地放弃努力的其他厂商能重新评估他们的位置。
不这么做的后果是弱化WS-*描述方面的信心,而这正是我认为WS-*优于REST的主要优势。如果我们不能做的更好,我想REST和REST描述语言,如WADL将获得动力。这件事本身不是坏事,但是一些健康的竞争将保持架构在其价值上而非执行上进行竞争。
有关Web和Web服务历史的观点十分有趣:
Web服务规范包含许多来自Web架构的概念,它最初被设计成可与Web技术良好协作。然而,Web服务规范还包含与已有企业中间件技术,如RPCs和MOMs,一起很好工作的概念和设计,而且Web服务实现也倾向于那些概念和设计,而非规范中的Web更加友好的部分。这可能是因为实现多是由已经拥有这些技术的厂商完成的。......另一方面,Web应用可以使用原始的XML及编写XML处理代码与企业应用集成。这导致了最终的松耦合,并为可移植性和互操作性提供了更多的益处,但是它给开发者带来了更多处理抽象概念的负担。这种倾向也比较类似Web工作的方式。然而,正如Yahoo的出席者指出的,开发者经常反对额外的、涉及原始XML处理的工作,要求使用Web服务厂商所提供的代码生成工具来做这些事情。
作为重大挑战之一,报告指出了互操作性:
随着WS-*栈的增长和新规范完成其相关标准化过程的持续加速的努力,使跨越不同实现的所有事物一起工作的复杂性就更令人生畏了。
还有一个争论的话题是,REST描述语言 :
尽管人们普遍认为Web服务需要大量的、超出包含于WSDL的描述,但值得注意的是尽管RESTful应用被定义为“自描述的”,也还需要额外的标注。这里的讨论指出了WADL的利害,并对“REST DL”提出了的类似意见。在许多情况下,两者都产生外部元数据:从单调的英语到结构化或非结构化数据,到更形式化RDF表达方法,但所有数据都参考使用了URI。URI标识的资源,包括服务描述,还提供了定义编制/编排(orchestration/choreography)行为的基础。这些工作赢得了很多趣关注:如使WADL更好理解将要完成什么及如何完成,而不是追求不成熟的标准。
还有许多其他需要被确定的需求:遗留系统与Web的互连性、服务描述、支持服务发现、版本标定、工作流、仲裁、HTTP认证。
报告的结论:
在研讨会期间,这些十分不同的特点被勾画出来了,涉及到支持和维护一套让全世界范围对等团体使用的设计技术,涉及到维护一套能让层级划分、严格控制公司环境使用的技术。
防火墙内外通常仍是两个不同的世界。
当我们问Garther的Nick Gall (一份更有争议性的意见书的作者 )在研讨会后的看法时,他回答:
我觉得这次研讨会的讨论表现出了真正的愿望以减小两个“web”(“http web”和“SOAP web”)之间的裂痕,但是也曝露了有大量的工作需要去做。
查看英文原文:W3C Workshop on Web of Services Report
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部署的版本细分。
没有回复
回复