开源 SCA 实现 Apache Tuscany 走向 1.0

  • Stefan Tilkov
  • 岳立东

2007 年 9 月 7 日

话题:JavaSOA语言 & 开发架构

Apache Tuscany团队日前发布了其开源Service Component Architecture (SCA)实现的 0.99 版本。SCA 是一套旨在简化 SOA 应用开发的规范,正在作为Open Composite Services Architecture (Open CSA) 的一部分由 OASIS 进行标准化。

InfoQ 有机会与开发带头人Jean-Sebastien Delfino对话从而获得了进一步的信息。

当被问及 SCA 规范还缺少哪些部分时,Jean-Sebastien 回答:

很难预言 OASIS OPENCSA 工作组的成果将是什么样,但是依我看来规范的这些方面尚待努力:
  • 支持更多语言,不仅限于 Java,C,C++ 和 BPEL,以及 PHP,JavaScript,Ruby,Python,Groovy 等脚本语言。Tuscany 已经支持这些语言,并且我们将要为各规范工作组准备提案。我们还刚刚收到了一份支持 XQuery 的捐献代码,这也是一个候选提案。
  • 更多绑定(binding),在 Tuscany 里我们已经开发了 JSON-RPC,DWR,ATOM/RSS,RMI 的扩展。我想看到 Web2.0 的各种绑定得以进入规范。
  • 更多 SCA 策略,包括事务策略(规范策略工作组已经在进行这个工作)。

这里先前有些争论,到底 SCA 中组装模型(assembly model)还是编程模型(programming model)更为重要。Tuscany 同时支持 SCA 组装模型(既是编程模型也是服务网络配置模型)和 SCA Java 编程接口以及标注。Jean-Sebastien 了解这些争论,他阐述了自己的观点:

一个业务 / 集成应用开发者不应该为了参与 SOA 开发就被强迫了解 10 种不同的 API。我们举一个应用例子,需要和一个数据库,一个 ERP 系统,一两个 Web Service 和提要(Feed)打交道,并且集成 Web 2.0 用户界面。用 SCA 和 Tuscany,你可以通过一个单一的服务编程模型(Service programming model)来看待所有这些东西,而不是 10 种不同 API……SCA 就是要简化业务应用开发者的工作,API 是其中的重点。

Tuscany SCA-Java 项目不只是支持 Java 语言,而且也支持 Groovy、Python、Ruby、JavaScript(0.99 中有)、XQuery(没有包含在 0.99 中,但在 1.0 分支中已经能用)。基于 Apache ODE 的 BPEL 支持也在 1.0 的日程当中(参见 InfoQ 上Paul Brown 谈 ODE 的文章)。

还有 Tuscany SCA-Native 和 SDO-C++ 子项目,已经发行了三个版本。SCA-C++/Native 不但支持以 C++ 编写的 SCA 组件,还支持 Python、Ruby 和 PHP;与本地 Python、Ruby 和 PHP 解释器集成良好;支持 Axis2C 的 Web Service,和以模块方式与 Apache Httpd 集成的 REST。SDO-C++ 提供一个高性能的 SDO API 的 C++ 实现,并与 Apache Axis2/C 当中的 Axiom 集成。同时还有 PHP 支持,由SCA-SDO-PHP 项目提供。

Tuscany SCA-Java 0.99 是 1.0 之前的最后一个版本。IBM WebSphere Application Server V6.1 SOA 功能包是一个已经利用了 Tuscany 的商业产品。据 Jean-Sebastien 的意思,想法是九月中旬剥离 1.0 发行版分支,而九月末放出 1.0 版本。

Jean-Sebastien 同时要我们申明 Apache Tuscany 团队乐于接受任何贡献,包括代码,测试,改进文档,或者 bug 报告。需要下载或者获得发行版的更多信息请访问http://incubator.apache.org/tuscany/sca-java-releases.html

查看英文原文:Apache Tuscany Open Source SCA Implementation Approaches 1.0 Release
JavaSOA语言 & 开发架构