MuleSoft 发布基于 Tomcat 的 Tcat Server 及 iBeans 集成框架

  • Ryan Slobojan
  • 宋玮

2009 年 10 月 12 日

话题:JavaDevOps语言 & 开发架构

Tcat Server今天发布了,这是由MuleSoft(前身是 MuleSource)所创建的一个基于Apache Tomcat的应用服务器。InfoQ 有幸采访到了 MuleSoft 的Mahau MaGreg SchottRoss Mason,以了解 Tcat Server 及另一个叫做iBeans的新集成框架的更多消息。

当我们问及为何围绕 Tomcat 创建 Tcat Server 时,得到的答案是:Tomcat 的轻量、简单以及其部署广泛都是选择它作为 Tcat Server 基础的主要原因。Tcat Server 初始版本包含以下主要特性:

  • 服务器群组管理 - 可以自动发现 Tomcat 服务器,创建并管理成组的服务器
  • 应用供应(Application Provisioning) - 支持部署含有当前状态、日志及版本管理的应用包
  • 回滚能力 - 如果部署一个新包失败了,可以轻易回滚到前一个版本
  • 云部署 - 可以通过插件将新的 Tcat Server 实例创建到 Amazon EC2 上,用同一个控制台既可以管理本地实例也可以管理远程实例
  • 支持 Maven - 可以从 Maven 库中直接获取 WAR 文件并将其部署到 Tcat Server 实例
  • 监测和诊断 - 增加了超出标准 Tomcat 范围之外的性能监测、系统信息、系统行为、诊断和日志
  • 支持 Tomcat 5.5 和 6.0 - 可以从 Tcat Server 管理控制台发现和管理 Tomcat 5.5 和 6.0 的已有实例

在问到 Tcat Server 与其他基于 Tomcat 的产品——如 SpringSource 的tc Server相比有什么区别时,他们回答道:

许多人都问过我们 Tcat Server 和 SpringSource 的 tc Server 有什么区别,我们觉得 Tcat Server 之所以存在,有以下几个原因:
  • 和 tc server 不一样,Tcat Server 百分之百构建于 Apache Tomcat 之上(我们在 Tomcat 二进制分发制品上增加了自己的代码,而不是改进并重新编译 Tomcat)。管理者可以确定其已有 Tomcat 应用能够完全兼容于 Tcat Server
  • Tcat Server 包含了一些高级 Tomcat 诊断能力,允许开发者和管理员深入钻取到性能数据和日志(如,应用日志、catalina 日志)以诊断和解决问题。相比之下,tc server 则是利用了其收购的 Hyperic,由一个“通用目的”的监测解决方案改造而来。因此,我们认为 tc server 在监测方面的广度和深度都不够,界面用起来更笨拙一些
  • Tcat server 拥有 tc server 所不具备的高级应用供应能力,包括把多个 WAR 文件组织在一起作为一个部署单元的能力(package)。管理员可以把一个应用包部署到一个服务器或一组服务器上,显著减少了手动部署多文件到多服务器实例上所花费的时间
  • 简单 - 我们从构建 Tcat Server 一开始就时刻注意使用的简便性。正如我所提到的,由于我们的产品并不是用一个通用工具改造而来,因此我们能够恪守原则:只包含能够增加价值的特性和功能,而不要过分复杂。我们排除了那些只会造成系统臃肿的特性。

包含于 Tcat Server 的另一主要特性是 iBeans,一个新的集成框架,类似于 Spring templates 的概念。iBeans 与 Tcat Server 一起发行,不过它也可以部署在 Apache Tomcat 和Mule ESB上。iBeans 的设计目的是提供一个简单的、一致的、可重用的方式运用各种协议进行通讯。许多框架都把注意力集中到了底层 API 上,如 HTTP、email 和 SOAP 等,而 iBeans 则集中在对于高层服务如 Twitter、Gmail、Flickr 及 Amazon EC2 的一致性访问。通过使用 Java 接口和注解来与服务交互、通过包含所有配置选项作为 iBean 自身的一部分,就省去了外部配置和 XML 编写的工作,部署也得以简化而且更加快捷。

当问到 iBeans 目前支持哪些协议且计划支持哪些协议时,我们得知:

iBeans 是共享和重用的典范,因为任何一个 Java 开发者在几小时之内就能创建出 iBean。为了使这一过程更加便利,我们创建了 iBeans Central,这是一个免费的可重用 iBeans 库,这些是由 Mule 社区构建 / 捐献并托管与云中的。有些 iBeans 的例子已经可以用了,包括针对 Twitter、Amazon EC2、Flickr 和 Gmail 的 iBeans。这些 iBeans 可以从 iBeans 控制台中免费下载,并用于任何应用程序。

还有若干其他 iBeans 正在开发过程中(如,Facebook、eBay、Best Buy、Amazon 等等),但是那些不太明确(但却非常有用)的服务的真正强大的 iBeans 则蕴藏于社区之中。

当然,如果内部服务用到了当前 iBeans 所支持的协议(包括 Web Services、RSS feeds、REST services、AJAX events 以及 JMS),开发者也可以创建并重用用于内部服务的 iBeans。

在不久的将来,iBeans 的焦点将集中于两点:给 iBeans Central 添加更多的 iBeans;给 iBeans 运行时添加对 JAX-WS 和 JAX-RS 的支持。基于社区反馈进行改进也将被纳入 iBeans 平台之中。从长远看,iBeans 将变成微软Windows Communication Foundation(WCF)的 Java 版本,只是稍简单些,它将是针对 JVM 的一个通讯平台。为了达成这一目标,我们将会对运行在 JVM 上的各个语言提供支持,例如 Scala、Clojure、JRuby、Jython 及 Groovy——当前 iBeans 版本已经提供了对 JavaScript 的支持。这样,最终我们就可以得到一个跨所有 JVM 语言访问公共和企业服务的一致的 API,当前 JVM 上并不存在这种东西。

查看英文原文:MuleSoft Releases Tomcat-based Tcat Server and iBeans Integration Framework

JavaDevOps语言 & 开发架构