近日,Apache 董事会全票通过 Tuscany 成为顶级项目的提案,从而使得 Tuscany 结束了为期 29 个月的 Apache 孵化期,成为可以独立按照 Apache 的精神和程序运作的项目。这一项目的主要推动者为 IBM、德勤(Deloitte)、普元(Primeton)和Amdocs 等全球领先的IT 公司。Raymond Feng 是Tuscany 项目的核心开发人员,有着多年的SOA 平台开放经验,同时也是SCA 实施的领军人物。日前,InfoQ 中文站就Tuscany 项目的相关问题对他进行了专访。
InfoQ 中文站:Tuscany 目前对 SCA 规范提供了什么支持?
Raymond:Apache Tuscany 不仅提供所有已公开发布的 SCA 规范的支持,同时也支持其他尚未在 SCA 标准之列的 Web 2.0 和企业级相关实现 / 协议。Apache Tuscany 在相关领域的创新和尝试也对 SCA 规范提供有价值的反馈,推动 SCA 规范的改进和拓展。Tuscany 项目的若干主要开发人员同时也是 SCA 规范的参与者。从以上意义上来讲,Tuscany 远非一个 SCA 规范的参考实现,而是 SCA 的一个重要实验基地和推手。
InfoQ 中文站:Tuscany 的特色或独特之处是什么?
Raymond:Apache Tuscany 提供开放式可扩展的运行环境以支持现在和将来的各种技术。这将解除应用程序对底层技术的依赖和偶合,使得跨技术网络平台的组装成为可能并大大简化,如: - 多种构件实现,包括 Java、BPEL、XQuery 和 JavaScript;
- 多种通讯协议,包括 RMI、Web Services、JSONRPC、Feed、EJB 和 CORBA;
- 多种接口语言,包括 Java 和 WSDL;
- 多种数据绑定,包括 XML、JavaBeans、JAXB、SDO、XMLBeans、JSON 和 AXIOM。
Apache Tuscany 集成其他技术,包括 OSGi、Spring、JEE 和 Web 2.0 等。该项目提供了从小型到企业级业务的广谱支持,解决方案提供商,中间件平台提供商,最终用户和开发人员都可获益。Tuscany 是一个轻载的平台,可以独立运行或嵌入在 WebSphere、Geronimo、Tomcat 和 Jetty 等应用服务器中。
Apache Tuscany 同时提供和许多其他 Apache 项目的集成,包括 AXIS2(Web Services)、Tomcat(Web Container)、OpenEJB(EJB)、Geronimo(JEE)、ActiveMQ(JMS)、Felix(OSGi)、ODE(BPEL)和 Abdera(ATOM)。
Apache Tuscany 提供一个基于 Web 2.0 界面的分布式域(Domain)管理程序,对 SCA 贡献(Contribution)、构件组(Composite)和运行结点(Node)等进行分布式管理、配置、发布和运行等。
InfoQ 中文站:为方便用户使用,Tuscany 提供了什么样的开发平台?
Raymond:Tuscany 项目本身提供一个 Eclipse 插件,可以帮助用户设置项目 Classpath,编辑和验证 SCA XML 文件,运行和调试 SCA 应用。现在该插件已经和 Tuscany 的 SCA 域管理结合,可以在 Eclipse 平台内启动域管理。
InfoQ 中文站:SCA-Tools 项目的目前进展 / 计划又是怎样的?
Raymond:SCA 现已正式成为 Eclipse STP 之下的一个子项目,该项目提供 SCA 的图形化的开发环境。Eclipse STP/SCA 和 Apache Tuscany 项目相互独立,Tuscany 是对 STP/SCA 有兴趣的项目之一。而 STP/SCA 使用 Tuscany 作为 SCA 的运行环境,并支持 Tuscany 的非 SCA 规范的扩展。
InfoQ 中文站:Tuscany SCA 项目其他语言实现的进展情况如何?
Raymond:Tuscany 项目有一个基于 C++ 的 SCA 运行环境,在 Apache 之外还有一个 PHP 的 SCA 运行环境,请参照: http://pecl.php.net/package/SCA_SDO 。 值得提到的是 uscany SCA Java 运行环境支持若干 Scripting 语言,包括 JavaScript、Groovy、Ruby 和 Python 等。此外,Tuscany SCA Java 支持基于 XML 的 BPEL 和 XQuery 语言。
从我所观察到的情况,开源社区以对 SCA Java 运行环境的兴趣为主,开发活动也最为活跃。
InfoQ 中文站:Tuscany 目前有哪些成功的使用案例?
Raymond:我们有来自用户自发的成功使用案例,请参照 http://incubator.apache.org/tuscany/projects-using-tuscany.html 。我需要指出的是这仅仅是其中很小的一部分,从 Tuscany 项目的用户邮件列表,我们可以窥见有很多用户正在评估,实验和使用 Tuscany,包括普元公司用 Tuscany 为国内的一个金融服务公司实现了 SOA 架构和业务组件规范等。
InfoQ 中文站:如果我们要为系统选择一个合适的 SCA 容器,如何评估?
Raymond:为项目选择 SCA 容器时,可以考虑从下面几个角度来做决定: - SCA 规范支持的程度(包括广度和深度)
- 构件实现的种类(决定你可以用什么语言来实现业务逻辑,如 Java、Scripting、BPEL、XQuery、Spring 和 OSGi)
- 通讯协议的种类(决定你可以配置什么协议来进行构件之间的交互,或访问已有外部服务, 或开放服务给外部客户,如 Web Services、JMS、EJB、RMI、CORBA 和 JSONRPC)
- 数据格式的种类(决定你可以用什么格式来表示业务数据,如 POJO、JAXB、SDO、XMLBeans、DOM、XML String、STAX、AXIOM 和 JSON)
- 支持的 QoS(决定你可以使用那些企业级的功能,如交易和安全)
- 可支持的运行环境
- 可扩展性(决定你是否可以加入新的实现 / 协议 / 数据支持)
- 产品的授权 /LICENSE(决定你有多大的自由度来使用该产品,是否免费,是否可以获得源码,是否可以改动源码以及是否可以发布其类库)
- 开源社区的规模和用户的认可度(决定你获得支持的可能性)
InfoQ 中文站:Tuscany 的下一步计划是什么?
Raymond:现在有多个方面正在进行和即将展开: - 来自 Google 夏季代码(GSoc:Google Summer of Code)的六个项目,包括 Geronimo 的 Tuscany/SCA 管理中心、CORBA 支持、Map/Reduce 应用、Android 平台和 Google Services 集成等。
- SCA Policy 框架的进一步完善
- 对交易(Transaction)的支持
- 分布式域的实现
- 和其他平台或技术的集成,如 OSGi
- 实现 SCA/JEE 集成规范
评论