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 Delfino 和 Luciano 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 的实现。
谢谢!
评论