近期准备系统地进行一下针对ServiceMix的学习。作为完全开源的一款ESB,对于希望以最小的投入对企业的系统进行服务化的初期创业公司来说,ServiceMix或许是一个不错的选择。
1. ServiceMix简介
Apache ServiceMix(http://servicemix.apache.org/)是Apache组织所开发的基于Java的面向服务架构(Service Oriented Architecture,SOA)平台。如图1所示,其基本组成部分包括Apache Karaf、Apache Camel和Apache ActiveMQ。其中Apache Karaf的核心是Apache Felix,提供了SOA容器的一个实现。在此基础之上,Apache Camel 提供了对企业集成模式(Enterprise Integration Pattern,EIP)的支持,使得开发者能够通过各种灵活多变的手段将一个企业级应用中所涉及的各个应用组件以一种良好的结构组合到一起。在利用Camel进行应用集成时,应用间通信的一种重要方式是通过消息机制。Camel利用ActiveMQ 来实现对消息机制的支撑。ActiveMQ是对JMS1.1标准的一个高效稳定的实现手段。本文从一个使用者的角度,来详细介绍ServiceMix中所涉及的这三个重要组成部分。当然在ServiceMix中还包含了其它的组件,如支持WebService的组件等,由于关注点的问题,这些部分我们将暂且忽略。
图 1: ServiceMix架构摘要
1.1 ServiceMix环境的安装和配置
搭建ServiceMix运行环境包括三个核心步骤:1)安装Java;2)安装Maven;3)安装ServiceMix。
1.1.1 安装Java
可通过以下步骤安装Java,注意最新的ServiceMix-4.5.3推荐使用JDK-1.7以上版本。
1. 下载JDK:http://www