David Nuescheler谈JCR和REST
在这篇访谈中,Day公司CTO和JCR规范组长David Nuescheler讨论了JCR(Java内容仓库标准)的优点、JCR与诸如Atom/Atom发布协议这种API之间的区别、JCR与REST的联系,以及一个新的Web框架——Apache Sling。
作者 Boris Lublinsky译者 张龙 发布于 2008年5月20日 上午9时6分
Apache Tuscany小组上月发布了服务组件架构(Service Component Architecture,即SCA)项目的1.2版及服务数据对象(Service Data Objects,即SDO)项目的1.1版。
SCA和SDO最初是由IBM和BEA开发的一套规范,现在由OASIS开放合成服务架构(Open Composite Services Architecture,即Open CSA)维护。工作组成员包括:IBM、BEA、Primeton、Sun、SAP、Oracle、Red Hat及SOA软件。
Apache Tuscany SCA 1.2版实现了最新的SCA规范,包括:
它还实现了很多SCA规范尚未定义的特性,如下:
该版本使用如下运行时进行了测试:
Apache Tuscany SDO 1.1版包含如下新特性:
它还针对现存功能进行了大量改进并修复了一些bug。
InfoQ采访了来自IBM的Luciano Resende,他对Apache Tuscany项目做出了很多贡献。
InfoQ:对于该版本新增的众多特性,你认为哪些最重要?
LR: SCA用来构建分布式的组合应用,带有SCA域管理应用的新的SCA分布域支持允许你构建并部署你的解决方案到多个SCA节点上。这些节点可以运行在不同的平台和运行时(如Geronimo、Tomcat及Jetty等)上,或者仅仅运行在普通的J2SE上。通过OSGI的支持,用户现在可以在OSGI运行时上运行Tuscany和SCA。新的Tuscany的Eclipse插件改善了开发者构建SCA应用的用户体验。它集成了Tuscany与Eclipse以将Tuscany运行时加到你的项目中;通过提供的代码辅助来进行组合编辑,并且可以直接从开发环境中运行组合应用。
InfoQ:能否描述Tuscany对WS-BPELin支持的改进计划?
LR: 在Tuscany主干上,我们刚刚完成了另一个里程碑以更好的集成WS-BPEL和SCA 。我们现在支持将对SCA服务的引用作为WS-BPEL过程合作者的链接。Tuscany使用Apache ODE作为一个参考的WS-BPEL引擎,同时利用了随这一发行版发布的部分ODE。作为下一步要考虑的,下面的条目来自关于该主题的一次讨论:
InfoQ:可否集中管理SCA配置?
LR: 在当前的Tuscany发布中无需绑定配置就能打包应用,可以在SCA域组合层次上定义绑定点和其他属性。SCA域组合是一套组合文件用来包含这类信息(网络和绑定配置)。在这种情况下,SCA域作为一个登记处,可以集中管理也可以分布管理,同时还能从网络上的不同来源跟踪SCA元数据。
InfoQ:该版本支持哪些立即可用的策略?
LR: 对于Web Services绑定,我们有认证、完整性和机密性策略。我们还提供了对使用Java容器实现的基于JAAS认证的支持。我们尚未实现基于JAAS的授权,因为这看起来更像是对Java资源的授权控制。
安全的Big Bank示例说明了这两者的组合:web services绑定用来进行认证,然后将认证过的用户令牌传给java容器,接下来后者检查授权。
我们还支持日志策略。
InfoQ:能否更详细地介绍一下对JMS的支持?
LR: 对JMS的支持允许你在服务和引用上声明JMS绑定,配置/定义大量设置,如:JNDI URLs、初始上下文工厂、ConnectionFactory、JMS头、使用的源和目的队列等等。至于其他细节,Tuscany使用ActiveMQ作为其默认的JMS提供者,但是也可以配置以使用不同的提供者,因此一些细节依赖于所使用的提供者。
InfoQ:将来还会增加什么新特性呢?
LR: 这要依赖于Tuscany社区了,然而从当前的讨论来看,我们想出下面这些:
我们还有大量Google Summer的编码项目正在进行中,这会在以下领域推进Tuscany的功能:
此外,STP/SCA子项目提供了大量工具以进行SCA开发,这能简化Tuscany SCA实现的使用。上个月他们发布了一个新的教程:SCA组合设计器新手上路,它提供了对这些工具使用的详细讲解。
查看英文原文:Tuscany SCA Java 1.2 and SDO 1.1 released
在这篇访谈中,Day公司CTO和JCR规范组长David Nuescheler讨论了JCR(Java内容仓库标准)的优点、JCR与诸如Atom/Atom发布协议这种API之间的区别、JCR与REST的联系,以及一个新的Web框架——Apache Sling。
客户/服务器通信是当今RIA构架的核心。James Ward和Shashank Tiwari在本文中就深入探讨了Adobe的开源BlazeDS消息服务器。
支付宝首席架构师程立在本文分享了支付宝技术架构的发展,对架构的认识,成功架构的特点,如何避免架构设计的失败,以及在敏捷和SOA方面的实践等。
作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。同时,把索引器和LINQ结合使用倒是一个非常不错的组合,索引器做接口、LINQ完成内部检索逻辑,客户程序在无需记住具体方法名称的前提下,按照键值检索即可,索引器内部则依托LINQ to系列的基础,提供对各种异构数据源的访问。
Scrum中,产品负责人这个角色具有很大的影响力,能够带来很高的价值。但要想运用得当,可没那么轻而易举。如果做得好,就可以在客户和开发者之间建立更为融洽的关系,并能够增加组织的竞争优势。
在本书中,作者Henrik Kniberg讲述了他在一年的时间里,带领40人的团队实施Scrum的过程。他们试过了多种团队尺寸(3~12人)、sprint长度(2~6星期),定义“完成”的不同方式,不同的backlog格式,各种测试策略,在多个Scrum团队之间进行同步的多种方式。他们还尝试过XP实践——持续集成、结对编程、测试驱动开发等等,还试过了把XP跟Scrum组合。
准时化生产(Just In Time)是精益生产(Lean Production)和丰田生产系统(Toyota Production System)中的概念,敏捷开发与准时化生产中的很多观点和实践是一致的,精益思想作为精益生产背后的指导思想也正在积极地影响着软件开发领域,向其中不断注入创新与活力。
没有回复
回复