FuseESB Enterprise理论及架构思想

官方对FuseESB的定义:

Fuse ESB is an open, standards based integration platform. It reduces the complexity of

integrating disparate applications by leveraging the service oriented architecture principles

and standardized packaging frameworks.

1. ESB理解

    David Chappell 在Enterprise Service Bus一书中对ESB的定义:

    An ESB is a standards-based integration platform that combines messaging, web services,

    data transformation, and intelligent routing to reliably connect and coordinate(调整) the

    interaction of significant(有意义) numbers of diverse(不同的) applications across extended

    enterprises with transactional integrity(完整性).
                                                                                                           —David A. Chappell

    Wikipedia对ESB的 定义:

    An ESB generally provides an abstraction layer on top of an implementation of an enterprise

    messaging system, which allows integration architects to exploit(使用) the value of

    messaging without writing code. Contrary(与...相反) to the more classical(古典的) enterprise

    application integration (EAI) approach of a monolithic(单片) stack in a hub(集中) and spoke

    architecture,  the foundation of an enterprise service bus is built of base functions broken

    up into their constituent parts, with  distributed deployment where needed, working in

    harmony(协调) as necessary.
                                                                                                           —Wikipedia

    松散耦合对ESB的定义:

    An ESB acts as a shared messaging layer for connecting applications and other services

    throughout an enterprise computing infrastructure. It supplements(补充) its core
    asynchronous messaging backbone(骨干) with intelligent(智能) transformation(转换) and

    routing to ensure messages are passed reliably(可靠). Services participate in the ESB using

    either web services messaging standards or the Java Message System (JMS). Originally

    defined by analysts(分析家) at Gartner, ESB is increasingly seen as a core component in a

    service-oriented infrastructure.
                                                                                                           —looselycoupled.com

    ESB提供的四大服务:

    (1) Transport mediation

    (2) Dynamic message transformation

    (3) Intelligent routing

    (4) Security

2. FuseESB的Features

    (1) 轻量级的,可以运行在多个平台上;

    (2) 使用OSGi Framework简化应用程序组件;

    (3) 提供了一个FAB(Fuse Application Bundle)机制来自动化创建和管理OSGi Bundle.;

    (4) 支持JSR208:JBI;

    (5) 很容易的与其他的底层服务:传输协议和数据格式连接;

    (6) 使用标准,尽可能的降低依赖;

    (7) 支持Event-driven architecture.

3. FuseESB架构

    架构图将附件:The Fuse ESB Architecture.rar.

    FuseESB采用分层架构的思想,主要分三个层次:

    (1) Kernel层

    基于Apache Karaf, 十一个基于OSGi的运行环境,提供了一个轻亮级的容器,用于部署各种组件和应用程序。提

    供一下Features:

    Console:Shell环境,便于配置FuseESB组建;

    Logging: 提供日志功能;

    Deploymnet: 部署OSGi Bundle,WAR,FAB;

    Fuse Application Bundle:自动化创建和管理OSGi Bundle;

    Provisioning:Aplication客来自热部署,Maven仓库,远程下载;

    Configuration: 监控/etc目录下配置文件的改变;

    Security: 提供基于JAAS的容器实例,消息服务的安全;

    OSGi Container:支持Equinox和Felix;

    Dependency injection framework: 支持Blueprint和Spring.

    (2) Service层

    由内嵌的服务的接口和实现组成,与应用层进行交互,使用用户开发的应用程序来访问和使用Service层的服务。

    提供以下Features:

    Messaging:提供基于ActiveMQ的支持;

    Routing and Integration: 提供基于Camel的支持;

    Web Service: 提供基于CXF的支持,创建JAX-WS web services;

    RESTful services:提供基于CXF的支持,创建JAX-RS web services;

    JBI:支持JBI1.0;

    Transaction Manager:支持基于Spring的JTA的;

    Normalized Message Router (NMR):用于在OSGi 容器中的各种应用Bundle之间传递消息。

    (3) Applicaton层

    提供大量的API共用户访问Service层,以开发应用程序。

4. How Fuse ESB Enterprise Activates a Deployed Bundle?

     Fuse ESB的内核就像一个mini版的操作系统,它负责创建和管理一个运行环境,用于部署的应用程序。它负责

     提供一个执行环境用于满足应用程序中每个Bundle的MAINFES.MF文件的需要,通过读取Blueprint或Spring配

     置文件,它创建每个Bundle所需的资源,如果Bundle是Service Provider则注册服务至OSGi Service Registry,

     这样Service Consumer可以使用这个注册的服务并使用他。

     详见下面的:Figure 2.2. Steps in activating a deployed route.png

猜你喜欢

转载自springsfeng.iteye.com/blog/1386620