专访Jeffery Richter:Windows 8是微软的重中之重
Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Xandy Johnson 译者 宋玮 发布于 2007年6月23日
Sun 已经向JCP(Java Community Process)提交了Servlet3.0规范——JSR 315(Java Specification Request)。其高级目标包括可插拔web框架、EoD(ease of development——易于开发)特征、支持异步和Comet、安全、与其他规范结合、以及其它各项改进。它准备包含在Java EE 6中,Java EE 6的最终版大约于2008第4季度发布。预计不出2007年7月2日就会出评论。
以下是这些目标的详细版本,来自JSR 315提案 :
- 可插拔的Web框架
- 几乎所有基于Java的web框架都建立在servlet之上。现今大多数web框架要么通过servlet、要么通过Web.xml插入。利用标注(Annotation)来定义servlet、listener、filter将使之(可插拔)成为可能。程序访问web.xml和动态改变web应用配置是所期望的特性。该JSR将致力于提供把不同web框架无缝地插入到web应用的能力。
- EOD
- 标注——利用标注来作为编程的声明风格。
- web应用零配置是EoD努力方向之一。部署描述符将被用来覆盖配置。
- 范型(generic)——在API中尽可能利用范型。
- 使用其它语言增强可能需要改善API可用性的地方。
- 支持异步和Comet
- 非阻塞输入——从客户端接收数据,即使数据到达缓慢也不会发生阻塞。
- 非阻塞输出——发送数据到客户端,即使客户端或网络很慢也不会发生阻塞。
- 延迟请求处理——Ajax web应用的Comet风格,可以要求一个请求处理被延迟,直到超时或一个事件发生。延迟请求处理对以下情况也很有用:如果远程的/迟缓的资源必须在为该请求服务之前被获得;或者如果访问一个特殊资源,其需要扼杀一些请求以防止太多的并发访问。
- 延迟响应关闭——Ajax web应用的Comet风格,可以要求响应保持打开,以允许当异步事件产生时发送额外的数据。
- 阻塞/非阻塞通知——通知阻塞或非阻塞事件。
- 频道概念——订阅一个频道,以及从该频道获取异步事件的能力。这意味着可以创建、订阅、退订,以及应用一些诸如谁能加入、谁不能加入的安全限制。
- 安全
- login/logout能力。
- 自注册。
- 结合
- 其它
- 支持更好的欢迎文件(welcome file)。
- ServletContextListener排序。
- 容器范围内定义init参数。
- 文件上载——过程侦听——存储中间或最终文件。
- 澄清线程安全问题。
Greg Wilkins,Jetty 的主要开发者和本JSR的支撑成员,反对“支持异步和Comet”之下的一些目标。对于非阻塞输入和输出,他认为这一能力应该加入到容器中,而不是曝露给servlet开发者。对于延迟请求处理,他认为挂起/恢复语义会更好些,而且他们还将导致对延迟响应关闭的需求。
适当的时候现有项目将被用来作为指南。例如当前支持Comet的容器,如Grizzly 、Tomcat 和Jetty,在为Comet定义API时,将被复查(review)。“Comet 是一种编程技术,允许web服务器无需任何客户端请求而发送数据到客户端。它允许创建托管在浏览器中的事件驱动web应用。”针对于可插拔web框架,现存的一些web框架如Shale 、DWR 、Spring Web Flow 和Wiched 也将被分析。
查看英文原文:Sun Submits Servlet 3.0 Specification to JCP
译者 宋玮 有多年软件开发经验,长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。
看来 Ajax 应用确实带来了对 Comet 技术越来越多的需求,而现在在 Servlet 3.0 将其标准化,正是体现了这一趋势。
加强关注。同意将 Comet 能力加入到容器中的说法,这样也无须开发人员更多地干预其具体实现细节。
不过 Comet 技术具体如何实现呢?长期占用一个 TCP 连接或者使用 poll 的方式?前者很容易导致服务器的并发性能急剧下降,而后者则无法保证需要同步传送的数据按照需求传输。或者说,是两种方式的透明混合?
1.第一段中的“预计不出2007年7月2日就会出评论”应该不符合原意,此句是指对JSR 315发表意见的截止时间。
2.EoD大小写不一致。
3.generic应该译为泛型为宜。这个术语是侯捷先生的贡献。
4.deployment descriptors应该译为部署描述文件。管文件叫字符,怎么也说不过去。
5.Use of other language enhancements where possible to improve the usability of the API.应该译为“尽可能使用其他语言特性增强改进API的可用性。”
6.“结合”(alignment)怀疑应该译为一致。
7.最后一行的Wiched应该是Wicket。另外这一段整段翻译得有些磕磕绊绊的感觉。
这是个问题,以前自己也想过,特别是ajax大量被应用的时候,怎样去利用一个有效的方式获取一个持续性连接?
个人认为这还得有浏览器配合才行!
Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。
3 条回复
关注此讨论 回复