在上一篇blog 中,我已经提到了Spring Integration2.0已经正式发布了。最近Infoq就Spring Integration2.0发布采访其创始人Mark Fisher,具体内容可以见采访blog 。
从采访记录中,可以清晰的看到Spring Integration(一下简称SI)的设计理念、SI的定位以及SI3.0的发展路线。
基于模式的设计理念
什么模式?Enterprise Integration Patterns (企业集成模式,简称EIP)。SI正式基于Enterprise Integration Patterns的JAVA实现(Camel也是非常突出的EIP实现之一),其初衷是为企业集成提供一个简单的构建应用的模型。
SI提供了两大类功能。功能一:为轻量级消息系统提供了一套API,比如Routers、 Splitters和Service Activators。功能二:为外部系统的接入提供了一系列的adapter,比如HTTP、JMS、TCP、UDP、 JDBC、 FTP、 SFTP、XMPP、RSS等。
SI的定位:框架而非ESB
虽然SI也能解决一些ESB能解决的问题,但Mark认为它并不是一个ESB,而是一个框架。二者最大的不同是SI并不是一个“server”,它只是Spring应用,可以运行在任何server上;另外SI强调基于服务的消息。在通常情况下,可以将SI看作为“内嵌的消息总线”。
SI和其他Spring项目的关系
Spring提供了很多优秀的项目, SI并没有“重新发明新轮子”,而是对它们仅进行了整合,比如通过Spring Web Services提供WS的功能,通过整合Spring Batch提供基于事件驱动的批处理流程和批处理工作。通过整合Spring AMQP提供AMQP的支持。通过整合其他的开源项目,比如Alfresco Activiti(BMPN2.0的实现)提供工作流的支持等等。
SI3的发展路线
SI3将基于Spring 3.1构建,并提供对NoSQL、社交媒体和移动平台的支持。
总结
从功能上看,SI也提供了一系列的adapter,可以作为可选的ESB,但其成熟度和Mule、ServiceMix等开源ESB相比稍逊一筹,它的这些adapter只是解决了简单的接入和接出。 SI的发展非常快,目前的主要精力还是放在新adapter的实现,但做得比较简单粗糙。
从架构上看,SI的架构比较轻量级,概念清晰,层次划分明了,扩展性比较好。其缺点是 ,没有将如何扩展一种新协议的接口定义清楚,在这方面Mule更出彩一些。
从发展上看,SpringSouce对SI的发展比较重视,它已经是Spring的顶级项目之一,有广阔的发展空间。另外,该项目的创始人Mark最近也领导了另外一个项目Spring AMQP,关注与对AMQP以及RabbitMQ的接入。