Apache Tuscany Java 1.1 发布:当 SCA 与 Web 2.0 相逢

  • Jean-Jacques Dubray
  • 李剑

2008 年 2 月 18 日

话题:JavaSOA开源JavaScriptDevOps语言 & 开发架构

Apache Tuscany 团队刚刚宣布了 Java SCA 项目 1.1 版本的发布。

Apache Tuscany 是一个基于服务组件框架(Service Component Architecture,SCA)的运行时环境。SCA 是一个新的组件模型,它可以用来帮助创建组合应用。SCA 的规范最开始是由 IBM 和 BEA 制定的,现在由 OASIS 进行了标准化,成了Open Composite Services Architecture(Open CSA)的一部分。工作组的成员包括:BEA,IBM,Primeton,SAP,Sun Microsystems,Oracle,Red Hat,SOA Software,Xcalia 等等。

Open SOA 组织将 SCA定义为:

服务组件框架(SCA)为构建基于 SOA 的应用程序和系统提供了编程模型。它的基础思想是:把业务功能作为一系列服务,组装起来为特定的业务需要创建解决方案。

Tuscany SCA Java 1.1 版添加了如下特性:

  • JMS 绑定,
  • 改进的策略支持
  • 一个实现扩展,用来把客户端的 JavaScript 应用表示成 SCA 组件。
InfoQ 采访了Jean-Sebastien DelfinoLuciano Resende,他们来自 IBM,都参与了 Apache Tuscany 项目。

InfoQ:从 1.0 版以后你们收到了哪些反馈?

JS:用户的反馈非常好,从 1.0 以后在我们的用户列表里面留言的人就增多了。给我留下的一个整体印象是,他们觉得 Tuscany 很容易安装,容易使用,而且为 SCA 1.0 规范提供了很好的支持。

我们还收到了一些请求:

  • 更多的策略支持
    • 安全策略,这个在 1.1 里面有了改进
    • 事务策略,我们正在进行开发
  • JMS (1.1 版中已经有了这个特性)

InfoQ:人们现在用 Tuscany 开发的项目有哪些种类呢?

JS:项目种类的范围还是非常大的,有学生用它来进行网格和分布式计算的实验,也有现实世界的银行业应用

InfoQ你觉得什么地方采用 SCA 底层架构效果最好呢?

JS:那些可以依赖一个简单的编程模型和组合的基于 Web Service 的应用最适合使用 SCA。另外,有些传统的集成方案,用一个简单而一致的编程模型贯穿绑定和组件实现类型,它们也比较合适。

我们最近刚刚发现 SCA 也可以帮助开发人员构建 Web 2.0 的应用。

InfoQ:从 SCA 和 Web 2.0 的角度出发,你可以解释一下“widget”的实现是怎么工作的吗?

JS:用现在可以包含在一个 SCA 组合中的客户端组件作为例子,该客户端组件是用 HTML+JavaScript 辅以 AJAX 方式来实现的,它运行在你的 Web 浏览器中,用 Tuscany 的 JSONRPC 和 ATOM 绑定来与服务端组件联系。从根本上说,是在分布式的 SCA 组合中包含了 Web 2.0 客户端组件。

你可以这样用 JavaScript 来定义引用:



var catalog = new Reference("Catalog");

var shoppingCart = new Reference("ShoppingCart");

在对引用进行内部分析之后,我们生成了一些附加的 JavaScript,实现了用于支持 JSON-RPC、ATOM 和对引用进行了包装的 Reference 类的制式代码,你可以在业务逻辑中使用它们。

这里有一些示例代码。

InfoQ:对 BPEL 的支持怎么样?

Luciano:那还没有完成。我们已经提供了对服务的支持,但是引用部分还没有做完。我目前正在这方面投入精力来把它搞定。对各个属性的支持同样也没有完成,但它们需要针对 BPEL 语言的一个扩展。如果社区需要的话,这部分会在下个版本里面提供。我刚刚更新了 BPEL 实现向导

InfoQ:新版本的计划是什么?

JS:Tuscany 社区需要作出决定(因为 1.1 才刚刚发布),不过按照我的想法,应该会在下面这些方面有所进展:

  • 对 SCA 策略提供更简单更全面的支持
  • 更多的策略(在事务策略方面取得进展)
  • 改进后的端对端 SCA contribution(译者注:Contribution 是Tuscany对资源的划分单位/ 部署 / 分布的流程
  • 一个 SCA 域管理应用
  • 与 Geronimo 集成(在 Geronimo 沙箱中已经有了一个原型)
  • 对 Web 2.0 绑定加以改进(在 Atom 实现方面,我们可能会使用 Apache Abdera,然后增加对 JSONRPC 绑定的跨域支持)
  • 对 Tuscany 的数据绑定支持进行优化
  • 更多的平台集成测试(Tomcat,Geronimo 等等)

InfoQ:IBM 在 WebSphere 产品线上,对 Apache Tuscany 的市场定位是怎样的呢?

JS:这里有比较详细的信息,不过最基本的一点就是,IBM 的 WebSphere Application Server v6.1 SOA 特性包中使用了 Apache Tuscany,从而提供 SCA 的实现。

谢谢!



查看英文原文Apache Tuscany Java 1.1 Released: SCA Meets Web 2.0
JavaSOA开源JavaScriptDevOps语言 & 开发架构