跟JBoss、Tomcat或其它web应用服务器相比,Mule有何不同?虽然他们有一些重要的相同点,不同点可以归结为你想达到的目标是什么。某些种类的应用对于Mule来说比较容易去编写、部署和管理,其它种类的应用可能对于web应用服务器来说比较容易编写、部署和管理。

首先来看看相同点:

  • 它们都允许你同时运行多个应用
  • 它们都提供应用容器。换句话说,两者都提供一个应用可以运行的环境,扮演一个应用代码与操作系统中介的角色,并且提供数据库访问、更简单的网络通信、内存管理、生命周期管理以及其它服务。
  • 它们都允许你在运行时管理你的应用。

不同点:

由于Mule的核心业务是作为一个集成平台,其工作方式与web应用服务器不同。Mule专注于以下三件事情:

  • 作为应用平台将数据从一个地方转移到另一个地方——通常在转移途中转换数据使其在其它端点可读。
  • 向其它应用输出服务。
  • 汇集服务。

简单地说,创造Mule的目的是使得“软件--软件”的交互更加容易。而web应用服务器的设计目的是使得“软件--末端用户”的交互更加容易。如果你需要实现一个用户接口,一个web应用容器通常是一个更好的选择。这并不意味着Mule不可能实现它,而是因为这样做可能是浪费时间,将问题复杂化了。

Mule
web应用服务器

Mule 支持面向服务的架构

web应用支持多层架构

Mule 专注于集成不同的应用、数据库以及云服务 

web应用专注于与末端用户进行交互

Mule 应用是无状态的、事件驱动的

web应用是有状态的

与此相反的是,web应用服务器支持一种多层架构,将表示、处理和数据管理在逻辑上分为不同的层。使用一个web应用服务器很容易在表示层提供一个图形用户界面,但是它不包含类似Mule的集成功能,而后者允许它无缝连接到数据库或者其它服务。要实现这样的目的,你必须写一些额外的自定义代码。

Mule应用被建造成一系列轻量级的、无状态的组件,存在于一个被称为flow的事件驱动的处理链中(关于flow的更多介绍,请参见笔者翻译的“开源ESB框架Mule基本概念介绍”一文)。数据进入、流经、流出一个Mule应用,将其它应用、数据库、企业系统或者云服务互相连在一起。通过将独立的服务保持在flow元件的各个端点,Mule支持面向服务的体系结构

你可以顺利地将Mule嵌入到一个web应用服务器中,例如Tomcat或JBoss,你也可以将其它任意web容器嵌入到Muleflow中。利用Mule来进行服务的集成和汇集工作(这正是设计Mule的本意),使用一个应用服务器来处理末端用户的交互,这样能够提供一套完整的功能。

英文原文:How Mule Differs from a Web Application Server

Mule与其它web应用服务器的区别的更多相关文章

  1. JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器

    注意:此为2009年的blog,注意时效性(针对常见服务器)     APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等 ...

  2. 【转】WEB服务器与应用服务器的区别

    https://blog.csdn.net/liupeng900605/article/details/7661406 一.简述 WEB服务器与应用服务器的区别: 1.WEB服务器: 理解WEB服务器 ...

  3. WEB服务器与应用服务器的区别

    一.简述 WEB服务器与应用服务器的区别: 1.WEB服务器: 理解WEB服务器,首先要理解什么是WEB?WEB可以简单理解为我们所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就 ...

  4. 容器、应用服务器和web服务器的区别

    什么是容器 servlet没main()方法.它们受控于另一个java应用,这个java应用称为容器(Container)Tomcat是这样的容器,Web服务器应用(Apache)得到一个指向serv ...

  5. WEB 容器、WEB服务和应用服务器的区别与联系

    Web容器:    何为容器?    容器是一种服务调用规范框架,j2ee大量运用了容器和组件技术来构建分层的企业级应用,在J2EE规范中,相应的有Web Container和EJB Containe ...

  6. Web服务器、应用程序服务器、web应用服务器、反向代理服务器

    参考链接:https://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html 首先我们来了解什么是服务器(server) 一般来说,serve ...

  7. 走进JavaWeb技术世界7:Tomcat和其他WEB容器的区别

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. WCF 、Web API 、 WCF REST 和 Web Service 的区别

    WCF .Web API . WCF REST 和 Web Service 的区别 The .Net framework has a number of technologies that allow ...

  9. OpenResty 是一个全功能的 Web 应用服务器

    OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 通过众多进行良好设计的 ...

随机推荐

  1. MHA自动切换流程

    MHA的全名叫做mysql-master-ha,配置后可以在10-30秒内完成master自动切换,切换过程如下: 1. 检测master的状态,方法是一秒一次“ SELECT 1 As Value” ...

  2. hdu2309ICPC Score Totalizer Software

    Problem Description The International Clown and Pierrot Competition (ICPC), is one of the most disti ...

  3. 232. Implement Queue using Stacks,225. Implement Stack using Queues

    232. Implement Queue using Stacks Total Accepted: 27024 Total Submissions: 79793 Difficulty: Easy Im ...

  4. linux 查看目录名称的方法

    1. ls -d * 2. grep查找以'/'结尾的,也就是目录 ls -F | grep '/$'

  5. http协议说明

    今天公司有同事让我给他讲一讲http..然后自己写了一个示例代码,这如果都看不懂.那我也没办法了.... <?php //这里服务器以apache举例.nginx.iis.他们实际上处理方式的都 ...

  6. Java路径问题最终解决方案—可定位所有资源的相对路径寻址

    1.在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法: 第一种方法:类名.class.getResource("/").getPath()+文件名 第二种方法:Th ...

  7. 【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作

    在Lucene对文本进行处理的过程中,可以大致分为三大部分: 1.索引文件:提取文档内容并分析,生成索引 2.搜索内容:搜索索引内容,根据搜索关键字得出搜索结果 3.分析内容:对搜索词汇进行分析,生成 ...

  8. JFinal Db + Record模式 - ORM 框架

    // 创建name属性为James,age属性为25的record对象并添加到数据库 Record user = new Record().set("name", "Ja ...

  9. 设计师如何为 Android 应用标注尺寸

    http://blog.cutterman.cn/?p=33 1. 画布大小定位 720 x 1280,72 dpi2. 只使用偶数单位的尺寸,比如 96 px 的列表项高度,16 px 的边距,64 ...

  10. 程序A+B问题(一次输入和多次输入)

    这是早就会写的题,把它整理一下,比较容易. ➀一次输入数据,计算A+B   #include<stdio.h> #include<stdlib.h> int main() { ...