红帽JBoss SOA 平台是用于集成应用程序、服务和数据的一种更简单、更快速、更灵活的方式。在2013年的红帽峰会上,来自红帽公司的专家为我们介绍了JBoss SOA 平台 6的功能特点与体系结构。
JBoss SOA平台 6 概览
FuseSource作为开源ESB的领袖,凭借Apache开发者社区提供的强有力的支持,占据了市场的半壁江山,可以说是JBoss ESB产品的最大竞争对手。而对于红帽来说,对付竞争对手最好的办法也许是收购。特别有意思的是,红帽还特别针对FuseSource指定了两个阶段的整合计划。第一阶段,重塑FuseSource企业产品Fuse ESB Enterprise和Fuse MQ Enterprise到JBoss产品组合中。在这一阶段中,难免存在FuseSource与JBoss客户交叉销售的处境。第二阶段,整合Camel和Active MQ等关键技术,加快与SwitchYard和Overlord等JBoss社区的技术融合,从而增强了红帽公司的旗舰SOA平台的功能。于是传说中的JBoss SOA Platform 6就这样应运而生了,如图所示。
JBoss SOA平台的核心组件--SwitchYard
正所谓长江后浪推前浪,红帽JBoss ESB成为了历史,取而代之的是一个轻量级的服务交付框架--SwitchYard,它能实现完整的开发、发布和管理面向服务应用程序的全生命周期的功能。
实际上关于SwitchYard的概念,红帽给出的定义是,SwitchYard依然是一个ESB,但它区别与传统ESB的标志是对服务组件屏蔽运行时的细节。这样围绕SOA服务生命周期的核心内容是业务层,包括服务的定义,测试,管理(比如服务契约,策略,配置,组合)等等。
SwitchYard亮点之一是提供了基于服务组件架构方法(SCA)的可视化模型,也就是说,企业架构师和应用工程师可以通过图形用户界面创建应用程序的可视性模型,从而有效加速项目开发和集成。
SwitchYard支持Camel线路、BPMN 2、Drools、其它消息工具、业务流程管理等各种工具建立SOA应用程序,同时企业架构师和应用工程师可以使用SwitchYard进行可视化开发。
接下来,我们梳理一下SwitchYard的主要特点:
Bean Services via CDI:SwitchYard框架充分集成了Java EE6 与 CDI的功能特性。开发者只需要对一个Java对象标注@Service,即可成为一个服务。这些服务Beans会被运行时JBoss EAP自动注册,而针对其它服务的引用可作为CDI Bean,通过标注@Inject注入。如此一来,很容易就可以通过CDI实现企业服务往JSP表现层的注入。
Integrated Workflow:SwitchYard内置jBPM 5 与 BPMN 2实现业务流程定义与工作流集成。SwitchYard采用契约式服务调用,可有效解耦服务与实现细节。
Declarative Transformation:声明式编程一直是SOA实现数据转换的目标。SwitchYard可自动注册与执行用户自定义的数据转换格式,包括Smooks, Java, XSLT, JSON等。
Decision Services with Drools:SwitchYard利用内置Drools组件将各种业务规则封装成决策服务(deceision service)。
Integration with Apache Camel:SwitchYard将集成的Camel组件作为SwitchYard服务的网关绑定(gateway bindings)。
Development Made Easy: SwitchYard 还提供一整套Forge插件,可快速开发Maven应用。
Testing Made Easy:SwitchYard支持一边开发,一边进行开发测试,彻底结束以往的以SOA开发周期的黑盒测试。
SwitchYard的核心组件--Camel
Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现。Camel通过API或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。其核心的思想就是从一个from源头得到数据,通过processor处理,再发到一个to目的地。这里的from和to也许是FTP文件,MQ队列,HTTP请求/响应,web service等。
JBoss SOA运行时--EAP 6.1
JBoss EAP在JBoss AS的基础上,添加了几项关键性技术,主要体现在组件配置、消息控件、集群稳定性三方面。在组件配置方面,JBoss EAP为客户提供了针对关键业务生产环境的最佳出厂配置,企业用户在生产环境中部署应用时,不用再了解太多JBoss的底层细节;在消息控件方面,JBoss EAP集成了高性能、安全、稳定的JMS消息控件--JBoss Messaging,是SOA平台实现其消息适配转发的基础;在集群稳定性方面,JBoss EAP是经过红帽正规集成测试和压力测试流程的软件产品,每个发行版本在出厂前都经过了至少40个节点组成的局域网集群测试。
总之,红帽公司凭借自身优秀的JBoss SOA平台技术,通过不断吸取开源社区的知识养分而变得越来越强大,企业可以使用现有的、现代的、新兴的集成方法,单独或结合使用开源组件,为整合项目启用最大的灵活性,更加有效地集成应用程序和服务、处理业务事件和自动化业务流程,在免除供应商锁定困扰的同时,显著削减了总拥有成本 (TCO)。