精华内容
下载资源
问答
  • 什么中间件

    千次阅读 2019-02-11 17:41:24
    文章目录一、什么中间件?二、中间件的特征1、平台化2、应用支撑3、软件复用4、耦合关系三、中间件的分类1、底层中间件2、高层中间件 一、什么中间件? 我们多少都会听到中间件的概念,但是到底什么中间件?...

    一、什么是中间件?

    我们多少都会听到中间件的概念,但是到底什么是中间件?针对这个问题,应该说还没有一个标准的定义,或者说还没有完全取得学术界和产业界的共识。

    顾名思义,中间件就是处于中间的软件。但这种不是从功能、或者特性来定义的概念,而是用位置来定义的名字,就容易被不同的人从不同角度赋予其不同的含义。

    我国学术界一般认可的定义是:

    中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性。

    • 中间件处于操作系统软件与用户的应用软件的中间,处于操作系统、网络和数据库之上,应用软件的下层。总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。形象地说就是上下之间的中间。

    • 此外,中间件主要为网络分布式计算环境提供通信服务、交换服务、语义互操作服务等系统之间的协同集成服务,解决系统之间的互连互通问题。形象地说就是所谓左右之间的中间。

    • 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

    • 中间件已经与操作系统、数据库软件一样,成为计算机基础软件的重要组成部分。

    在这里插入图片描述

    二、中间件的特征

    总结分析,中间件有几个非常重要的特征是必须具备的:

    1、平台化

    所谓平台就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。

    因此,目前许多的开发语言、组件库和各种报表设计之类的软件,很难满足平台性,将这类软件叫中间件,是很不合适的。

    例如,JAVA是一种语言,这种语言的开发工具和开发框架,如 Eclipse、JBuilder、Struts,Hibernate 等等就不能称为中间件,充其量叫中间件开发工具,而不能叫中间件本身。而J2EE应用服务器提供JAVA应用的运行环境,就是经典的中间件。

    2、应用支撑

    中间件的最终目的是解决上层应用系统的问题,而且也是软件技术发展到今天对应用软件提供最完善彻底的解决方案。

    3、软件复用

    即软件的重用,也叫再用,是指同一事物不作修改或稍加改动就多次重复使用。从软件复用技术的发展来看,就是不断提升抽象级别,扩大复用范围。

    现代中间件的发展重要趋势就是以服务为核心,如 WebService, SCA/SDO等。通过服务或服务组件来实现更高层次的复用、解耦和互操作,即SOA架构中间件。

    4、耦合关系

    基于SOA(Service-Oriented Architecture)架构的中间件,在松耦合解耦过程也发展到了最后的境界。SOA架构,通过服务的封装,实现了业务逻辑与网络连接、数据转换等进行完全的解耦。

    三、中间件的分类

    现在,中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。

    中间件分为两大类:底层中间件、高层中间件。

    1、底层中间件

    用于支撑单个应用系统或解决单一类问题,包括交易中间件(TPM)、应用服务器(WAS)、消息中间件(MOM)、 数据访问中间件(UDA)等;

    2、高层中间件

    更多用于系统整合,包括企业应用集成中间件(EAI Suites)、工作流中间件(Workflow)、门户中间件(Portal)等。

    它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于底层中间件运行。

    种类作用典型产品
    数据访问中间件数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBC(开放数据库互连)。
    只要在ODBC中添加一个数据源,然后就可以直接在自己的应用程序中使用这个数据源,而不必关心目标数据库的实现原理、实现机制,甚至不必了解ODBC向应用程序提供了哪些应用程序接口API。
    ODBC、JDBC等
    远程过程调用中间件(RPC)远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。
    消息中间件 MOM适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。
    消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。
    IBM的MQSeries、BEA的MessageQ等
    交易中间件适用于联机交易处理系统,主要功能是管理分布于不同计算机上的数据的一致性,保障系统处理能力的效率与均衡负载。交易中间件所遵循的主要标准是x/open dtp模型。IBM的CISC、BEA的Tuxedo等
    应用服务器用来构造internet/intranet应用和其它分布式构件应用,是企业实施电子商务的基础设施。应用服务器一般是基于j2ee工业标准的。IBM的Websphere 、BEA的Weblogic等
    安全中间件以公钥基础设施(pki)为核心的、建立在一系列相关国际安全标准之上的一个开放式应用开发平台,向上为应用系统提供开发接口,向下提供统一的密码算法接口及各种ic卡、安全芯片等设备的驱动接口。Entrust、Tongsec等
    应用集成服务器把工作流和应用开发技术如消息及分布式构件结合在一起,使处理能方便自动地和构件、应用、工作流行为结合在一起,同时集成文档和电子邮件。LSS Flowman、 IBM Flowmark、Vitria businessagiliti 等
    展开全文
  • Java中间件之介绍

    万次阅读 2018-08-08 16:30:05
    1. Java中间件的定义  在Java web开发的演进与进化中,我们对于消息系统,数据库,服务化接口的抽象等,涉及数据分离的过程中,在分离过程中,就会涉及到分离后系统间,数据库间的交互。java中间件就是处理我们...

    1. Java中间件的定义

      在Java web开发的演进与进化中,我们对于消息系统,数据库,服务化接口的抽象等,涉及数据分离的过程中,在分离过程中,就会涉及到分离后系统间,数据库间的交互。Java中间件就是处理我们数据间交互,连接数据分离后两个系统间的通信,中间件不属于任何一个开发项目,就是让我们对应系统间或者数据库间数据流通无感知。有点像Linux下的管道。

    2. 中间件应用的基本领域与代表

    上面说到Java是数据间的中间件,在Java web开发中适用的范围主要应该是下面三个领域:

    • 远程过程调用(RPC:Remote Process Call)和对象访问中间件

    主要解决分布式环境下应用的互相访问问题,这也是支撑应用服务化功能的基础。

    关于远程服务框架中间件,国内目前较多应用的是阿里巴巴的开源分布式服务框架Dubbo。其原理如图:
    这里写图片描述

    • 消息队列中间件

    主要解决应用之间的消息传递、解耦、异步的问题。

      消息队列中间件是一种EDA架构(event driven architecture):通过在低耦合的模块之间传输事件消息来完成模块之间的合作。大型网站中,消息队列采用发布/订阅模式。消息发布者发布消息到消息队列,消息消费者只要对该类消息感兴趣,就可以订阅该消息,对其他的业务没有任何的影响。其原理如图:
    这里写图片描述
    目前常用的消息队列产品为Apache的ActiveMQ,RabbitMQ、RocketMQ、Kafka等。

    分布式服务框架和分布式消息队列是系统模块化之后主要的2种聚合方式。

    • 数据访问中间件

    主要解决应用访问数据库的共性问题的组件 。

      例如:数据访问中间件就是我们使用数据库指定的数据驱动,例如:ODBC JDBC,以 JDBC 为例,数据库本地维护了一个数据访问中间件,我们在访问数据库的时候,配置的地址其实是直接连接到JDBC这个数据访问中间件,如果我们执行查询数据,或者对数据库的操作都是通过JDBC来连接数据库,然后通过JDBC查询完成数据库以后再返回给我们应用程序。作为中间件,查询过程对于我们是不可知的。

    展开全文
  • 消息队列中间件(Message Queue Middleware,简称为MQ)是利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下...

    什么是消息中间件

    消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、JSON等,也可以很复杂,比如内嵌对象。

    消息队列中间件(Message Queue Middleware,简称为MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

    消息队列中间件,也可以称为消息队列或者消息中间件。他一般有两种传递模式:点对点(P2P,Point-to-Point)模式和发布/订阅(Pub/Sub)模式。点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题(topic),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者则从主题中订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用。

    目前开源的消息中间件有很多,比如主流的有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。面向消息的中间件(简称为MOM,Message Oriented Middleware)提供了以松散耦合的灵活方式集成应用的一种机制。他们提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的消息中间件通信。消息中间件提供了有保证的消息发送,应用程序开发人员无需了解远程过程调用(RPC)和网络通信协议的细节。

    消息中间件适用于需要可靠的数据传送的分布式环境。菜哦也能够消息中间件的系统中,不同的对象之间通过传递消息来激活对方的事件,以完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,他常被用来屏蔽各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是他比远程调用更进步的原因。

    举例说明,下图所示,应用程序A与应用程序B通过使用消息中间件的应用程序编程接口(API Application Program Interface)发送消息来进行通信。

    消息中间件将消息路由给应用程序B,这样消息就可以存在于完全不同的计算机上。消息中间件负责处理网络通信,如果网络连接不可用,消息中间件会存储消息,直到连接变得可用,再将消息转发给应用程序B。灵活性的另一方面体现在,当应用程序A发送其消息时,应用程序B甚至可以处于不运行状态,消息中间件将保留这份消息,直到应用程序B开始执行并消费消息,这样还防止了应用程序A应为等待应用程序B消费消息而出现阻塞。这种异步通信方式要求应用程序的设计与现在大多数应用不同。不过对于时间无关或并行处理的场景,他可能是一个极其有用的方法。

    消息中间件的作用

    消息中间件凭借其独到的特性,在不同的应用场景下可以展现不同的作用。总的来说,消息中间件的作用可以概括如下。

    • 解耦:在项目启动之初来预测将来会碰到什么需求是极其困难的。消息中间件在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,这允许你独立的扩展或修改两边的处理过程,只要确保他们遵守同样的接口约束即可。
    • 冗余(存储):有些情况下,处理数据的过程会失败。消息中间件可以把数据进行持久化直到他们已经被完全处理,通过这一方式规避了数据丢失失败风险。在把一个消息从消息中间件中删除之前,需要你的处理系统明确的指出该消息已经被处理完成,从而确保你的数据被安全的保存直到你使用完毕。
    • 扩展性:因为消息中间件解耦了应用的处理过程,所以提高消息入队和处理的效率是很容易的,只要另外增加处理过程即可,不需要改变代码,也不需要调节参数。
    • 削峰:在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果以能处理这类峰值为标准而投入资源,无疑是巨大的浪费。使用消息中间件能够使关键组件支持突发访问压力,不会因为突发的超负荷请求而完全崩溃。
    • 可恢复性:当系统一部分组件失效时,不会影响到整个系统。消息中间件降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入消息中间件的消息仍然可以在系统恢复后进行处理。
    • 顺序保证:在大多数使用场景下,数据处理的顺序很重要,大部分消息中间件支持一定程序上的顺序性。
    • 缓存:在任何重要的系统中,都会存在需要不同处理时间的元素。消息中间件通过一个缓冲层来帮助任务最高效率的执行,写入消息中间件的处理会尽可能快速。该缓冲层有助于控制和优化数据流经过系统的速度。
    • 异步通信:在很多时候应用不想也不需要立即处理消息。消息中间件提供了异步处理机制,允许应用把一些消息放入消息中间件中,但并不立即处理他,在之后需要的时候再慢慢处理。
    展开全文
  • 经常听人提起“中间件”这个名词,什么中间件中间件什么意思呢?中间件的架构吗? 中间件(Middleware)通常是在一个大型分布式的系统中,负责各个不同组件(Component)/服务(Service)之间管理以及...

    经常听人提起“中间件”这个名词,什么是中间件,中间件是什么意思?中间件是指的架构吗?


    中间件(Middleware)通常是指在一个大型分布式的系统中,负责各个不同组件(Component)/服务(Service)之间管理以及交互数据的。举个例子,在分布式系统中,数据库往往是N多个,不同的数据库可能是按照数据ID的hash,也可能根据业务模块来分配的。而且这种分配可能随着数据增长或者业务变更而改变。这个时候,你想修改某条数据,显然就不太可能直接访问数据库了,而是需要访问数据访问层,由它来负责对最终的数据库的读写,乃至负责多个数据库之间的事务一致性。



    展开全文
  • 中间件什么?2.中间件特点3.中间件分类4.常见的中间件有哪些? 1.中间件什么中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作...
  • java面试题:什么中间件?

    千次阅读 2014-02-17 14:26:28
    中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、...
  • 什么中间件? 顾名思义,中间件就是处于中间的软件,处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用。中间件是一种独立的系统软件平台,为网络应用软件提供综合的服务和完整的计算环境,借助这种...
  • 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操 作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的...
  • 什么是消息中间件

    2020-08-09 19:58:12
    消息队列中间件(Message Queue Middleware,简称为MQ)是利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排列模型,它可以在分布式环境下...
  • 中间件什么

    2019-02-27 21:44:05
    中间件(middleware),顾名思义,处于操作系统软件与用户的应用软件的中间。具体来讲,在操作系统、网络和数据库之上,应用软件的之下。 中间件,屏蔽了底层的通讯,交互,连接等复杂又通用化的功能。系统在交互时,...
  • 什么中间件开发?

    2020-11-03 11:27:03
    什么中间件开发? 中间件开发人员需要哪些素质? 如何成为中间件开发人员? 最重要的是,他就是想凑点 STAR ,哈哈哈哈哈哈哈。 前言 本文主要是写给那些想从事中间件开发的同学看的 :) 如果你没有这个打算,...
  • 什么中间件

    千次阅读 2018-11-13 22:05:44
    我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,一个企业可能同时运行着多个不同的...中间件便是解决之道,它用自己的复杂换取了企业应用的简单。 ...
  • php什么中间件

    2021-03-23 22:06:33
    中间件顾名思义是在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件中间件分为前缀中间件,后置中间件。可以用于权限认证、日志记录等中间件为过滤进入应用...
  • 因此,行业内对什么中间件并不特别在意。而公司名称直接叫中间件的就更少了,金蝶中间件应该是国内外直接在公司名称中冠以中间件字眼最早,也是很少的公司之一。另一方面,因为中间件软件还处于发展阶段,还没有...
  • 阿里云中间件什么?这其实是一个比较虚的概念。广义的中间件范围很广。起沟通作用的都可以认为是中间件。甚至ODBC这样的东西你也可以认为是中间件。 使用了中间件之后,以前直接连接的前台应用程序和数据库之前就多...
  • php中间件什么

    千次阅读 多人点赞 2018-12-28 18:52:56
    中间件顾名思义是在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件中间件分为前缀中间件,后置中间件。可以用于权限认证。日志记录等       中间件...
  • 阿里云中间件指提供系统和应用软件之间连接的软件,便于软件各部件之间的沟通,阿里云中间件有三大明星产品,即企业级分布式应用服务EDAS、消息队列MQ和性能测试PTS。 阿里云的中间件具体包括: MQ Topic: 消息...
  • 中间件顾名思义是在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件中间件分为前缀中间件,后置中间件。可以用于权限认证。日志记录等 中间件为过滤进入...
  • 到底什么是Redux中间件

    千次阅读 2019-03-26 11:35:37
    它可以帮助我们在action里面去写函数,既然是中间件,肯定就是谁和谁的中间 view在redux中会派发一个action,action通过store的dispatch方法派发给store,store接收到action连同...redux中间件的中间的是actio...
  • 中间件的定义

    2020-12-29 18:04:42
    前言 近日,与多人交流中,我发现了一个问题,很多人根本就不懂什么中间件,哪些是...中间件,通常“应用中间件”,是一种独立的系统软件或服务程序,能“独立部署和运行”,且处于“应用程序”和“基础设施...
  • PHP中间件什么

    2020-01-27 11:05:50
    中间件顾名思义是在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件中间件分为前缀中间件,后置中间件。可以用于权限认证。日志记录等。 中间件为过滤进入...
  • 中间件顾名思义是在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件中间件分为前缀中间件、后置中间件;可以用于权限认证、日志记录等(推荐学习:PHP编程从...
  • 数据库中间件概述

    千次阅读 2020-01-05 20:37:56
    1.为什么需要数据库中间件,何为数据库中间件 不同的应用程序有不同的数据存储方式和组网。数据量小的普通的应用程序一般采用单机数据库来持久化数据,如下图。 当数据的并发读写超过数据库服务器的处理能力时,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,595
精华内容 30,638
关键字:

中间件指什么