跟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. svn local delete, incoming delete upon update 解决办法

    经常有人会说,树冲突是很难解决的一类冲突,其实一旦了解了其原理,要解决也不难.先回顾下对于树冲突的定义.     树冲突:当一名开发人员移动.重命名.删除一个文件或文件夹,而另一名开发人员也对它们进行 ...

  2. 清除mac上安装软件的用户信息

    有时候在mac系统上安装了一些软件后,尽管你将该软件卸载之后,可是原来的登录信息依然存在, 那么你就可以到下面的这个目录中查看一下,是否残留有信息文件.

  3. oninput,onpropertychange,onchange的使用方法和差别

    1.前言 因为工作须要,需实现一个相似于微博输入框的功能,在用户动态输入文字的时候,改动提示“您还能够输入XX字”.例如以下图所看到的: 因此,略微研究了一下oninput,onpropertycha ...

  4. 启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration. - Class: java.net.PlainSocketImpl

    今天刚好宿舍断网,打开电脑,打开ide工具,启动tomcat后,访问web项目工程,页面显示404,查看控制台,运行报错信息如下: 严重: Exception starting filter stru ...

  5. java学习笔记day02

    1.如何定义一个功能,并通过函数(方法)体现出来呢?  1)明确改功能运算后的结果.确定函数的返回值类型.  2)明确在实现该功能的过程中是否有未知内容参与运算.确定参数列表. 2.函数重载:在同一个 ...

  6. squid服务搭建

    Squid配置1. 什么是squidsquid可以做代理也可以做缓存squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O.  squid不仅可以做正向代理,又可以做反向代理. 正向代 ...

  7. 改变页面选择文字颜色和背景颜色----selection伪元素

    div::selection{color:#fff;background: #E83E84;text-shadow:none}  

  8. oc特有语法

    分类 问题 1.什么是分类? 就是把一个类的功能,分出一部分来放在一个独立的文件中 2.分类的语法是什么样的? @interface Person(SuperMan) 3.分类与类是什么关系? 分类依 ...

  9. TCP的拥塞控制(转载)

    1.引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止 ...

  10. hiho 分冶专题

    hiho的每周一题都不会很难,基本上就是一些很裸和经典的问题,这一次写了几道分冶专题的题,做个总结. 分冶最简单的就是二分,二分说简单,很简单,不过7,8行代码,不过也常常写挂,写成无限循环. 直接看 ...