精华内容
下载资源
问答
  • 通信中间件DDS介绍(一)
    千次阅读
    2021-04-08 21:32:33

    一、前言

    DDS是分布式实时的网络通信中间件。用于屏蔽操作系统、底层硬件、体系架构的差异性,以帮助应用人员在开发、维护、升级等阶段缩短时间和人力成本,简化应用程序的开发与调度操作等。DDS能在多种传输网络环境中对即时数据进行快速、可预测的数据分发。

    用户可以通过DDS实现下列功能:

    1. 适用于分布式系统的数据传输,不会因为单点故障导致整个通信历史的丢失以及瓶颈点通信故障的发生。
    2. 实现一对多、多对多、多对一的通信方式,应用程序在DDS标准下发布/订阅数据;
    3. 自定义应用程序操作,满足各种实时性、可靠性、服务质量的目标;
    4. 应用透明,容错,鲁棒性强;
    5. 使用不同传输方式。

    二、数据发布与订阅


    1 概述


    数据发布与订阅(Data-Centric Publish-Subscribe,DCPS)定义了应用如何发布和订阅一组数据对象的功能集合。发布应用端创建可以被标识的数据对象,并对这些数据对象赋值,同时将数据对象发布出去。订阅应用端可以识别数据对象,并对感兴趣的数据对象进行订阅,获取数据对象中的具体内容。无论是发布应用端,亦或是订阅应用端,都可以定义主题&#x

    更多相关内容
  • OpenDDS中间件介绍

    2018-09-03 14:08:52
    中间件的基本内容介绍/相关的论文介绍和应用方面的论文介绍;
  • 摘要: 因为工作的原因,我从金蝶集团调入金蝶中间件公司工作以来,经常遇到一个问题就是中间件公司是个什么公司,中间件是什么?,金...    1. 由来  因为工作的原因,我从金蝶集团调入金蝶中间件公司工作...

    浅析深究什么是中间件

    发布时间: 2016-06-10   作者:本站编辑   浏览次数: 128
    摘要: 因为工作的原因,我从金蝶集团调入金蝶中间件公司工作以来,经常遇到一个问题就是中间件公司是个什么公司,中间件是什么?,金...

      

      1. 由来

      因为工作的原因,我从金蝶集团调入金蝶中间件公司工作以来,经常遇到一个问题就是中间件公司是个什么公司,中间件是什么?,金蝶不是做ERP的 吗?怎么也做中间件?。这是我以前在金蝶集团时无法想象的问题。因为金蝶,金蝶ERP的品牌以及大众对ERP的了解,是无需我解析什么是ERP,什么是财 务软件一类的问题的。

      毕竟,中间件在实际的应用过程中,是对应用软件起到支撑作用,最终用户并不直接使用中间件,中间件不是大众消费类软件产品。因此,除非是一个行业专业人士,一般不大可能与中间件打交道,不太了解什么是中间件。

      因此,在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最神秘的。因为,好歹大家通过Windows基本上会了解操作系统是个什 么东西,尽管不会很全面,很专业,毕竟是有感觉的。数据库,虽然没有直接见过,但基本上明白数据是要一个仓库来储存的,因此,也大致知道数据库管理系统是 干什么的。

      长期以来,中间件是一个专业化非常强的细分产业。因为中间件的技术门槛比较高,玩家也不多,无论是国外还是国内都是如此。因此,行业内对什么是 中间件并不特别在意。而公司名称直接叫中间件的就更少了,金蝶中间件应该是国内外直接在公司名称中冠以中间件字眼最早,也是很少的公司之一。另一方面,因 为中间件软件还处于发展阶段,还没有完全成熟,因此对中间件的定义也就没有深究,或者权威的说法。

      但现在情况有点变化,其中一个原因在于2008年底,国家启动了核高基重大科技专项,在基础软件领域明确提出重点支持操作系统、数据库、中间 件、文字处理等基础软件产业的自主创新,几乎一夜之间大大小小的软件公司都宣称是做中间件的了,只要不是做最终应用软件的,他们的产品都叫中间件了,一时 间,中间件变得蓬勃发展起来了。

      作为中间件行业内的专业化和领先企业来说,大家都重视起中间件来了,这是好事,说明社会上重视了。对行业的发展和繁荣固然重要,但这也隐含了重 大的风险。中间件名字被滥用,无论是对用户,对这个产业,对政府和投资人来说,都会有负面的影响。鱼目混珠,泥沙俱下的局面,对中间件产业的正常发展未必 就是好事情了,也可能对真正的中间件自主创新带来许多困扰,模糊了中间件的本质,可能会弱化中间件核心技术的创新和发展。

      因此,在这种情况下,无论是对行业内,还是行业外,突然什么是中间件的问题变成了一个大问题了。

      本文试图就中间件的来龙去脉,外延内涵和前世今生,来一个全面的阐释。一家之言,权作业界参考,希望带动大家做一些深入的思考。

      2. 中间件的起源

      2.1 中间件发展的历史

      事情从1946年说起,世界上第一台电子计算机埃尼阿克诞生,人类进入信息时代。1955年,约翰巴克斯发明了最早的程序语言Fortran,现代意义上的软件就诞生了。

      1964年,IBM发布OS/360操作系统,软件与硬件分离,同时,软件成为一个独立的产业正式登上产业界的舞台。中间件就是软件产业不断发展过程中自然产生的。

      90年代,文顿·瑟夫这位互联网之父的发明成为改变IT业的重大革命性创新。互联网促使分布式系统和网络应用的诞生,中间件就是伴随网络技术的 产生、发展而兴起的,可以说没有网络就没有现代意义上的中间件。因为,网络环境需要解决异构分布网络环境下软件系统的通信、互操作、协同、事务、安全等共 性问题,提高异构分布网络环境下软件系统的互操作性、可移植性、适应性、可靠性等问题。

      1968年IBM发布CICS交易事务控制系统,使得应用软件与系统服务分离,这是中间件技术萌芽的标志,因为CICS还不是分布式环境的产物,因此我们往往还不将CICS作为正式的中间件系统。

      一般来说,我们将1990年诞生于ATT公司的BELL实验室的Tuxedo系统(后来被NOVELL从ATT公司随着UNIX系统一起买走, 后来又卖给了BEA公司,现在归于ORACLE公司旗下了)作为中间件的诞生标志。Tuxedo解决了分布式交易事务控制问题,中间件开始成为网络应用的 基础设施,中间件正式成型,这是最早的交易中间件。

      1994年IBM发布消息队列服务MQ系列产品,解决分布式系统异步、可靠、传输的通讯服务问题,消息中间件诞生。

      1995年,JAVA之父James Gosling发明JAVA语言,JAVA提供了跨平台的通用的网络应用服务,成为今天中间件的核心技术。JAVA是第一个天生的网络应用平台,特别是 J2EE发布以来,JAVA从一个编程语言,演变为网络应用架构,成为应用服务平台的事实标准。应用服务器中间件,成为中间件技术的集大成者,也成为事实 上的中间件的核心。

      2001年,微软发布.NET,中间件演变为.NET和JAVA两大技术阵营。但由于.NET还不是一个完全开放的技术体系,只有一个玩家,因 此,虽然.NET也是一种中间件,但由于IBM/ORACLE/SUN/SAP等巨头都无一例外成了JAVA阵营的支持者,因此,我们习惯上提到中间件 时,往往不包括.NET中间件体系。

      以上谈的是历史,但透过历史事实背后,为什么会出现中间件,这其中的本质因素是什么?

      2.2 中间件发展的驱动力

      中间件出现的驱动力主要来自软件研发过程碰到的种种问题。从软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。在企业 管理领域大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负,出现了需求交付方面的重大挑战,以至于人们用软件危机来描述 软件工业所面临的困境。

      总结起来,软件工业面临的主要问题是四个方面:质量问题、效率问题、互操作问题、灵活应变问题。这些问题今天依然困扰着这个行业。

      造成这个局面的原因是异构性和标准规范的滞后。

    • 屏蔽异构性

      异构性表现在计算机的软硬件之间的异构性,包括硬件(CPU和指令集、硬件结构、驱动程序等),操作系统(不同操作系统的API和开发环境)、 数据库(不同的存储和访问格式)等等。长期以来,高级语言依赖于特定的编译器和操作系统API来编程,而他们是不兼容的,因此软件必须依赖于开发和运行的 环境。

      造成异构的原因源自市场竞争、技术升级以及保护投资等因素。希望屏蔽异构平台的差异性问题是促成中间件发展的驱动力之一。

    • 实现互操作

      因为异构性,产生的结果是软件依赖于计算环境,使得各种不同软件之间在不同平台之间不能移植,或者移植非常困难。而且,因为网络协议和通信机制的不同,这些系统之间还不能有效地相互集成。

      造成互操作性不好的原因,主要是标准的滞后。解决软件之间的互操作性问题也是促成中间件发展的驱动力之一。

    • 共性凝练和复用

      软件应用领域越来越多,相同领域的应用系统之间许多基础功能和结构是有相似性的,每次开发系统都从零开始绝对不是一种好的方法,也是对质量和效率的很大的伤害。

      尽可能多地凝练共性并复用以提高软件开发效率和质量,通过中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理,这也是中间件发展的重要驱动力。

      在长期的探索过程中,解决软件的四个问题的办法总结起来两个方面:工程方法、平台与技术。

      工程方法就是用工业工程、系统工程的理论、方法和体系来解决软件研发过程中的管理问题,包括团队管理、项目管理、质量控制等等,这就是软件工程。除了软件工程方法之外,我们发明了更多的架构规划、设计和实施的方法,不断累积领域的知识与经验等等。

      更好的技术手段,包括更好的程序设计语言、更好的平台和软件开发技术,如面向对象、组件开发、面向服务等等。而这方面,在技术上逐渐发展的成果大部分都凝聚在今天的中间件平台之中。

      而这些更好的技术手段,从本质上是通过复用、松耦合、互操作(标准)等机制来提高软件质量、加快软件研发效率、使研发出来的产品能够相互集成并灵活适应变化。
    这些因素逐渐促成了中间件软件的形成和发展。

      3. 中间件的概念

      讲了这么多,究竟什么是中间件,也就是中间件的定义是什么?

      针对这个问题,应该说还没有一个标准的定义,或者说还没有完全取得学术界和产业界的共识。

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

      IDC曾经给中间件下的定义是中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

      我国学术界一般认可的定义是中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性(北京大学梅宏)。

      中科院软件所研究员仲萃豪形象地把中间件定义为平台+通信。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。

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

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

      要深入理解什么是中间件,形式化的定义固然重要,我们还得从概念本身去深入理解其核心特征才是最重要的。要理解一个概念,从内涵和外延两个方面去描述是哲学上非常重要的一套方法体系。

      3.1 中间件的特征(内涵)

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

    • 平台化

      所谓平台就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。显然,不是所有的系统或者应用都可以称之为平台的。中 间件是一个平台,因此中间件是必须独立存在,是运行时刻的系统软件,它为上层的网络应用系统提供一个运行环境,并通过标准的接口和API来隔离其支撑的系 统,实现其独立性,也就是平台性。

      因此,目前许多的开发语言、组件库和各种报表设计之类的软件,很难满足平台性,将这类软件叫中间件,是很不合适的。例如,JAVA是一种语言, 这种语言的开发工具和开发框架,如Eclipse、JBuilder、Struts,Hibernate等等就不能称为中间件,充其量叫中间件开发工具, 而不能叫中间件本身,就如同各种建筑工程设备和机械,如吊臂、搅拌机等不能叫建筑,而只能成为建筑工具一样。而J2EE应用服务器提供JAVA应用的运行 环境,就是经典的中间件。

    • 应用支撑

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

      高级程序设计语言的发明,使得软件开发变成一个独立的科学和技术体系,而操作系统平台的出现,使得应用软件通过标准的API接口,实现了软件与硬件的分离。

      现代面向服务的中间件在软件的模型、结构、互操作以及开发方法等四个方面提供了更强的应用支撑能力:

      模型:构件模型弹性粒度化,即通过抽象层度更高的构件模型,实现具备更高结构独立性、内容自包含性和业务完整性的可复用构件,即服务。并且在细 粒度服务基础上,提供了更粗粒度的服务封装方式,即业务层面的封装,形成业务组件,就可以实现从组件模型到业务模型的全生命周期企业建模的能力。

      结构:结构松散化,即,将完整分离服务描述和服务功能实现以及服务的使用者和提供者,从而避免分布式应用系统构建和集成时常见的技术、组织、时间等不良约束。

      互操作:交互过程标准化,即,将与互操作相关的内容进行标准化定义,如服务封装、描述、发布、发现、调用等契约,通信协议以及数据交换格式等等。最终实现访问互操作、连接互操作和语义互操作。

      开发集成方法:应用系统的构建方式由代码编写转为主要通过服务间的快捷组合及编排,完成更为复杂的业务逻辑的按需提供和改善,从而大大简化和加速应用系统的搭建及重构过程。

      而要最终解决软件的质量问题、效率问题、互操作问题、灵活应变问题这四大问题,需要在软件技术的内在结构(Structure)、架构(Architecture)层面进行思考。

      解决这些问题,技术的本质是复用、松耦合、互操作(标准)等软件技术的内在机制。这也是中间件技术和产品的本质特征。

    • 软件复用

      软件复用,即软件的重用,也叫再用,是指同一事物不作修改或稍加改动就多次重复使用。从软件复用技术的发展来看,就是不断提升抽象级别,扩大复 用范围。最早的复用技术是子程序,人们发明子程序,就可以在不同系统之间进行复用了。但是,子程序是最原始的复用,因为这种复用范围是一个可执行程序内复 用,静态开发期复用,如果子程序修改,意味着所有调用这个子程序的程序必须重新编译、测试和发布。

      复用对象复用范围

    复用对象复用范围
    子程序一个可执行程序内复用,静态开发期 复用
    组件(DLL,Com等)系统内复用,动态运行期复用
    企业对象组件(Com+,.NET,EJB等)企业网络内复用,不同系统之间复用
    服务 (如WebService,SCA/SDO)不同企业之间,全球复用,动态可配置

      为了解决这个问题,发明了组件(或者叫控件),如MS操作系统下的DLL组件。组件将复用提升了一个层次,因为组件可以在一个系统内复用(同一种操作系统),而且是动态、运行期复用。这样组件可以单独发展,组件与组件调用者之间的耦合度降低。

      为解决分布式网络计算之间的组件复用,人们发明了企业对象组件,如(COM+, .NET, EJB等),或者叫分布式组件。通过远程对象代理,来实现企业网络内复用,不同系统之间复用。

      传统中间件的核心是组件对象的管理。但分布式组件也是严重依赖其受控环境,由于构件实现和运行支撑技术之间存在着较大的异构性,不同技术设计和实现的构件之间无法直接组装式复用。

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

      因为服务是通过标准封装,服务组件之间的组装、编排和重组,来实现服务的复用。而且这种复用,可以在不同企业之间,全球复用,达到复用的最高级别,并且是动态可配置的复用。

    • 耦合关系

      基于SOA架构的中间件,在松耦合解耦过程也发展到了最后的境界。传统软件将软件之中核心三部分——网络连 接、数据转换、业务逻辑全部耦合在一个整体之中,形成铁板一块的软件,牵一发而动全身,软件就难以适应变化。分布式对象技术将“连接逻辑”进行分离,消息 中间件将“连接逻辑”进行异步处理,增加了更大的灵活性。消息代理和一些分布式对象中间件将数据转换也进行了分离。而SOA架构,通过服务的封装,实现了 业务逻辑与网络连接、数据转换等进行完全的解耦。

    软件技术的不断解耦的过程

    • 互操作性

      传统软件互操作技术也存在问题。互联网前所未有的开放性意味着各节点可采用不同的中间件技术,对技术细节进 行了私有化的约束,构件模型和架构没有统一标准,从而导致中间件平台自身在构件描述、发布、发现、调用、互操作协议及数据传输等方面呈现出巨大的异构性。 各种不良技术约束的结果是软件系统跨互联网进行交互变得困难重重,最终导致了跨企业/部门的业务集成和重组难以灵活快速的进行。

      在软件的互操作方面,传统中间件只是实现了访问互操作,即通过标准化的API实现了同类系统之间的调用互操作,而连接互操作还是依赖于特定的访 问协议,如JAVA使用RMI,CORBA使用IIOP等。而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。 而且,服务的封装是采用XML协议,具有自解析和自定义的特性,这样,基于SOA的中间件还可以实现语义互操作。

    基于服务的中间件

      总之,服务化体现的是中间件在完整业务复用、灵活业务组织方面的发展趋势,其核心目标是提升IT基础设施的业务敏捷性。因此,中间件将成为SOA的主要实现平台。

      3.2 中间件的分类(外延)

      中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。从功能性外延来看,中间件包括交易中间件、消息中间件、集成中间件等各种功能性的中间件技术和产品。

      现在,中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、数据访问到应用集成等众多的环节,因此,中间件技术呈现出多样化的发展特点。

      根据中间件在软件支撑和架构的定位来看,基本上可以分为三大类产品:应用服务类中间件、应用集成类中间件、业务架构类中间件。

    • 应用服务类中间件

      为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理(ORB)中间件、事务监控交易中间件、JAVA应用服务器中间件等。

      随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理组织OMG首 次推出对象管理结构OMA(Object Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准 接口,是对象请求代理的典型代表。

      随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于Client和 Server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的操作系统。这类被称为交易中间 件,适用于联机交易处理系统,主要功能是管理分布于不同计算机上的数据的一致性,保障系统处理能力的效率与均衡负载。交易中间件所遵循的主要标准是 X/open DTP模型,典型的产品是Tuxedo。

      JAVA从2.0企业版之后,不仅仅是一种编程语言,而且演变为一个完整的计算环境和企业架构。为JAVA应用提供组件容器,用来构造 Internet应用和其它分布式构件应用,是企业实施电子商务的基础设施,这种应用服务器中间件发展到为企业应用提供数据访问、部署、远程对象调用、消 息通信、安全服务、监控服务、集群服务等强化应用支撑的服务。使得JAVA应用服务器成为了事实上的应用服务器工业标准。由于它的开放性,使得交易中间件 和对象请求代理逐渐融合到应用服务器之中。典型的应用服务器产品包括IBM Websphere Application Server、Oracle Weblogic Application Server和金蝶Apusic Application Server等。

    • 应用集成类中间件

      应用集成类中间件是提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能,包括常见的消息中间件、企业集成EAI、企业服务总线以及相配套的适配器等。

      消息中间件指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模 型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台,实现应用系统之间的可靠异步消息通信,能够保障数据在复杂的 网络中高效、稳定、安全、可靠的传输,并确保传输的数据不错、不重、不漏、不丢。目前流行的消息中间件产品有IBM的MQSeries、 BEA的MessageQ、金蝶Apusic MQ等。

      企业应用整合,仅指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。这种类似集线器的架构模式是在基于 消息的基础上,引入了前置机-服务器的概念,使用一种集线器/插头(hub-and-spoke)的架构,将消息路由信息的管理和维护从前置机迁移到了服 务器上,巧妙的把集成逻辑和业务逻辑分离开来,大大增加了系统弹性。由于前置机和服务器之间不再直接通信,每个前置机只通过消息和服务器之间通信,将复杂 的网状结构变成了简单的星型结构。典型的企业应用集成EAI的产品包括Tibico和Informatica等公司产品。

      随着SOA思想和技术的逐渐成熟,EAI发展到透过业务服务的概念来提供IT的各项基本应用功能,让这些服务可以自由地被排列组合、融会贯通, 以便在未来能随时弹性配合新的需求而调整。Web Services是SOA的一种具体实现方式,SOA的世界是由服务提供者(Service Provider)、服务请求者(Service Requester) 以及服务代理者(Service Broker)所组成,目标是将所有具备价值的IT资源,不论是旧的或新的,通通都能够透过Web Services的包装,成为随取即用的IT资产,并可将各种服务快速汇整,开发出组合式应用,达到整合即开发的目的。SOA的架构只是实现和解决了服务 模块间调用的互操作问题,为了更好的服务于企业应用,引入了企业服务总线的应用架构(Enterprise Service Bus,ESB)。这一构架是基于消息通信、智能路由、数据转换等技术实现的。ESB提供了一个基于标准的松散应用耦合模式,这就是企业服务总线中间件, 是一种综合的企业集成中间件。典型的ESB产品包括IBM Websphere ESB、Oracle公司的Weblogic ESB以及金蝶Apusic ESB等。

    • 业务架构类中间件

      作为共性的凝练,中间件不仅要从底层的技术入手,将共性技术的特征抽象进中间层,还要更多地把目光投向到业 务层面上来,根据业务的需要,驱动自身能力的不断演进,即,不断出现的新的业务需要驱动了应用模式和信息系统能力的不断演进,进而要求中间件不断地凝练更 多的业务共性,提供针对性支撑机制。近年来,这一需求趋势愈发明显,越来越多的业务和应用模式被不断地抽象进入中间件的层次,如业务流程流、业务模型、业 务规则、交互应用等等,其结果是中间件凝练的共性功能越来越多,中间件的业务化和领域化的趋势非常明显。

      业务架构类中间件包括业务流程、业务管理和业务交互等几个业务领域的中间件。

      业务流程是处理业务模型的非常重要方法。管理流程与各职能部门和业务单元有密切关系,须藉各部门间的紧密协调,以达到企业运营和管理功能的目 标。在业务流程支持方面,从早期的WfMC定义的工作流,到基于服务的业务流程规范BPEL,由业务流程的支撑,逐渐形成了完整的业务流程架构模型,包括 流程建模、流程引擎、流程执行、流程监控和流程分析等。有名的业务流程中间件包括基于工作流的IBM Lotus Workflow,基于BPEL的IBM Webshpere Process Server以及同时支持工作流和BPEL的金蝶Apusic BPM等。

      业务管理就是对业务对象的建模和业务规则的定义、运行和监控的中间件平台。策略管理员和开发人员将业务逻辑捕获为业务规则。使用规则管理器可以 将规则轻松地嵌入 Web、现有应用程序和后台办公应用程序。常见的业务管理中间件包括IBM Websphere ILOG 业务规则管理系统,金蝶BOS等。

      业务交互的中间件平台提供组织的合作伙伴、员工和客户通过WEB和移动设备等交互工具,实现基于角色、上下文、操作、位置、偏好和团队协作需求 的个性化的用户体验。这种门户服务器软件基于标准Portlet组合的应用程序访问框架,实现用户集成和交互集成,构建灵活、基于 SOA 的应用架构。典型的门户中间件有IBM Websphere Portal Server和金蝶Apusic Portal Server等。

      4. 中间件的未来

      中间件是互联网时代的IT基础设施,提供业务的灵活性,消除信息孤岛,提高IT的研发和运营效率。作为网络计算的核心基础设施,中间件正在呈现 出服务化、自治化、业务化、一体化等诸多新的发展趋势,中间件进入2.0时代,将极大提升互联网统一计算平台的敏、睿、融、和能力。

    • 中间件将变宽变厚

      以互联网为核心的多网融合产生了丰富多样的新型网络应用模式,作为主流的应用运行支撑环境,中间件无处不在,越来越多的应用模式被抽象到中间件层,中间件将变宽变厚。

    • 中间件将面向服务、易于集成

      随着SOA技术逐渐成为主流,以及异构系统的集成问题日益严峻,中间件将向面向服务、易于集成的方向发展。

    • 中间件将向一体化的方向发展

      中间件产品的种类日趋多样(如交易中间件、消息中间件、应用服务器、集成中间件、业务中间件等),但其技术架构将向一体化的方向发展,主要包括:

      统一内核,易于演化:各大厂商的中间件产品将构建在统一内核之上,使其易于平台演化。

      统一编程模型,易于开发:不同中间件产品提供了不同的编程模型,这些编程模型将趋向统一,从而达到易于开发的目的。

      统一管理模型,易于系统维护:不同中间件产品提供了不同的管理工具与管理手段,这些管理工具与手段将趋向统一,使其易于管理,降低运维成本。

    • 中间件产品将支持云计算,易于交付

      中间件产品将成为云计算的支撑平台,使应用易于交付。

    • 后端平台深度融合

      一个大胆的设想是:未来五年,浏览器将统一前端,而后端平台(中间件、操作系统、 数据库)走向深度融合。(对中间件的未来发展趋势的详细介绍参加另文《中间件技术的发展趋势分析》,在此不做详细论述。)

      综上所述,我们可以认为中间件是一种独立的系统软件平台,为网络应用软件提供综合的服务和完整的计算环境,借助这种软件使得网络应用能够实现集成,达到业务的协同,实现业务的灵活性。


    展开全文
  • 易观国际近期发布《中国中间件厂商竞争力评级专题报告2007》,该报告将中国中间件厂商从其核心竞争能力、持续发展能力以及响应能力三方面进行了综合研究和评估,分析了TOP 10中间件厂商的排名情况,从而可以进一步为...

    9957.jpg

    易观国际近期发布《中国中间件厂商竞争力评级专题报告2007》,该报告将中国中间件厂商从其核心竞争能力、持续发展能力以及响应能力三方面进行了综合研究和评估,分析了TOP 10中间件厂商的排名情况,从而可以进一步为行业用户对中间件产品的选型提供参考建议。

    从核心竞争能力上来看,IBM(WebSphere产品家族)、BEA、东方通科技、中创软件拥有相对完整的产品线,而金蝶中间件与普元软件则相对局限。厂商大都提供相对来说较为全面的行业解决方案,但是相对来说,BEA、普元软件在电信行业,IBM、Oracle在金融行业,东方通科技、中创软件、金蝶中间件在电子政务、交通等行业积累了较为丰富的实施经验。BEA、IBM、微软等国际厂商相对来说在研发上有较高的投入,但是东方通科技、金蝶中间件等国内厂商则在价格上体现出一定的优势。总体来说,在核心竞争能力评级方面,前五名的中间件厂商分别为BEA、IBM、东方通科技、微软和金蝶中间件。

    从持续发展能力上来看,BEA与IBM依然保持前列,同时,Oracle的Fusion中间件、普元软件的构件中间件以及SAP的NetWeaver平台具有比较强的发展后劲。

    易观国际主要从渠道合作伙伴以及厂商本身的客户服务能力两个方面衡量中间件厂商的响应能力。本土厂商的地缘、人缘以及价格等优势并没有得到充分的发挥,各个厂商在这一方面的表现差距不大。

    总体上来看,BEA、IBM、东方通科技分别占据中国中间件厂商前三甲的位置。

    展开全文
  • 本文依托于智能燃气数据管理系统,针对其物联网平台架构中应用服务平台在大规模设备接入场景下的性能瓶颈,提出一种结合消息中间件Kafka与NoSQL数据库MongoDB的混合方案.根据燃气公司和设备厂商的应用背景实现该方案...
  • 某软件公司中间件的产业趋势与自主创新.pptx
  • 本文来自于csdn,文章分享了分布式消息中间件,主要基于JMS规范、Rocketmq的介绍、部署方式、...大家一般都是遵从的是公司技术规范和选择(也就是公司用什么基础组件基本上都是选择好的)。基于我的一些工作经历,所以
  • NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。官方和第三方还为NSQ开发了众多客户端功能库,如官方提供的基于HTTP的nsqd、Go客户端go-nsq、...
  • 中间件

    2021-03-17 07:57:51
    中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的...

    中间件的定义

    中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。 – 维基百科

    个人理解:

    将具体业务和底层逻辑解耦的组件,非业务的技术类组件非业务的技术类组件。是一种应用于分布式系统的基础软件,位于应用与操作系统、数据库之间,为上层应用软件提供开发、运行和集成的平台。中间件解决了异构网络环境下软件互联和互操作等共性问题,并提供标准接口、协议,为应用软件间共享资源提供了可复用的“标准件”。

    大致的效果是:

    介于操作系统和应用程序之间的产品,中间件简单解释,你可以理解为面向信息系统交互,集成过程中的通用部分的集合,屏蔽了底层的通讯,交互,连接等复杂又通用化的功能,以产品的形式提供出来,系统在交互时,直接采用中间件进行连接和交互即可,避免了大量的代码开发和人工成本。其实,理论上来讲,中间件所提供的功能通过代码编写都可以实现,只不过开发的周期和需要考虑的问题太多,逐渐的,这些部分,以中间件产品的形式进行了替代。需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。
    

    举个例子:

    比如常见的消息中间件,即系统之间的通讯与交互的专用通道,类似于邮局,系统只需要把传输的消息交给中间件,由中间件负责传递,并保证传输过程中的各类问题,如网络问题,协议问题,两端的开发接口问题等均由消息中间件屏蔽了,出现了网络故障时,消息中间件会负责缓存消息,以避免信息丢失。相当于你想给美国发一个邮包,只需要把邮包交给邮局,填写地址和收件人,至于运送过程中的一系列问题你都不需要关心了。再比如我开了一家炸鸡店(业务端),然而周边有太多屠鸡场(底层),为了成本我肯定想一个个比价,再综合质量挑选一家屠鸡场合作(适配不同底层逻辑)。由于市场变化,合作一段时间后,或许性价比最高的屠鸡场就不是我最开始选的了,我又要重新和另一家屠鸡场合作,进货方式、交易方式等等全都要重来一套(重新适配)。然而我只想好好做炸鸡,有性价比高的肉送来就行。于是我找到了一个专门整合屠鸡场资源的第三方代理(中间件),跟他谈好价格和质量后(统一接口),从今天开始,我就只需要给代理钱,然后拿肉就行。代理负责保证肉的质量,至于如何根据实际性价比,选择不同的屠鸡场,那就是代理做的事了。

    链接:https://www.zhihu.com/question/19730582/answer/140527549

    评判关键从定义可以总结出评判的几个地方

    1. 性质:中间件是软件。
    2. 作用层级:系统软件和应用软件之间、软件各部件之间;管理客户机与系统软件之间的计算资源和网络通信。
    3. 服务对象:中间件为应用软件服务,应用软件为最终用户服务,最终用户并不直接使用中间件。
      在这里插入图片描述

    分类

    在这里插入图片描述

    中间件可以分为基础中间件、集成中间件和行业领域应用平台。其中,基础中间件是构建分布式应用的基础,也是集成中间件和行业领域应用平台的基础,包括应用服务器、消息中间件和交易中间件等。
    在这里插入图片描述

    三大基础中间件分别为交易中间件、消息中间件和应用服务器中间件,其中:

    交易中间件是:专门针对联机业务处理系统而设计的

    是所有中间件类型中理论较为成熟、功能和性能界定比较清晰的中间件产品。在联机业务处理系统中,需处理大量并发进程,涉及到操作系统、文件系统、数据通讯、数据库管理、应用软件等,通过交易中间件,可降低联机业务处理系统的开发难度,提高系统运行的安全稳定性。交易中间件主要应用在金融、财税、运输、电力、电信等行业中,如银行业务系统、电信计费系统等。

    消息队列(Message Quequing)是在消息传输过程中保存消息的容器,消息中间件即为消息队列的承载形式。

    消息是两台计算机间传送的数据单位,消息队列在将消息从它的源中继到它的目标时充当中间人,主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它,主要解决传统结构耦合性问题、系统异步性问题以及缓解大数据量并发的问题等。

    消息队列有较多的型号,较为常用的为ActiveMQ、Rabbit MQ、RocketMQ和Kafk a。由于消息队列使用消息将应用程序连接起来,这些消息通过像Rabbit MQ的消息代理服务器在应用程序之间路由。

    应用服务器中间件位于客户浏览器和数据库之间,为应用程序提供业务逻辑的代码。

    应用服务器通过组件的应用程序接口将商业应用逻辑曝露给客户端的程序,同时为应用提供运行平台和系统服务,并管理对数据库的范围。对于高端需求,应用服务器具有高可用性监视、集群化、负载平衡、集成冗余和高性能分布式应用服务,以及对复杂的数据库访问的支持等功能。目前,市场上应用服务器平台中有J2EE,WebLogic,Glassfish,JBoss企业应用平台,以及Apache Tomcat和Apache Geronimo等。
    中间件技术发展的初衷是以适应网络技术应用的复杂性及跨平台特性为基础,是在软件产业不断发展过程中自然产生的。

    云服务

    云计算产业自下而上大体分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)三大部分,对应传统IT架构中的操作系统、中间件和应用软件。传统中间件服务一般使用专有API和专有协议,PaaS服务的特点在于开放开源,基于标准通用的API在异构系统之间实现互通互操作。根据Gartner分类,PaaS分为iPaaS(集成平台即服务)和aPaaS(应用部署和运行平台),前者侧重于PaaS与IaaS之间,实现跨多个云、云与传统应用程序之间以及公共云和私有云之间的缝集成;后者侧重于PaaS与SaaS之间,支持应用程序在云端的开发、部署和运行等。iPaaS和MWaaS成为全球中间件行业热点。根据Gartner于2018年6月发布的报告显示,企业对iPaaS(集成平台即服务)和MWaaS(中间件即服务)的投入将超越传统市场。2017年,传统中间件产品增速仅有个位数增长,而基于云和基于开源的应用集成(iPaaS)产品将继续保持两位数的增长(2017年iPaaS营收首次突破10亿美元,同增72%),是挑战者们角力的重点领域。而iPaaS的成功催生了MwaaS(中间件即服务)业务,MWaaS套件可以视为一组基于云的混合集成服务,包括云集成(iPaaS)、基于云的API平台(提供开发、运行、管理和保护API服务)、基于云的B2B集成(提供除API之外的其他服务,如EDI和MFT集成)、移动后端集成(MBaaS),、物联网集成等。以华为举例,华为重视云中间件市场,将其作为白皮书中重要细分行业。在其《鲲鹏计算产业白皮书》中测算,到2023年,全球中间件市场空间434亿美元,5年复合增长率10.3%。中国中间件市场空间13.6亿美元,5年复合增长率15.7%。且用户对于基于云的分布式应用服务、消息队列等中间件工具的需求不断增长,将会促进中间件市场的快速发展。目前,华为云中间件产品主要包括应用中间件系列产品和分布式数据库中间件(DDM)。其中,应用中间件系列产品主要包括应用管理与运维平台ServiceStage、微服务引擎CSE、分布式缓存服务Redis和Memcached、分布式消息服务(包括DMS、Kafka、RabbitMQ)、API网关APIG和云性能测试服务CPTS等。

    常见种类

    中间件是什么

    中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。

    执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。

    中间件是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,交易中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。

    为什么使用中间件

    具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

    中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。

    主要中间件的分类

    1. Hadoop
      当一个大的任务由一台机器在规定的时间内不能完成时,人们就要采用分布式计算,即很多台机器联合起来共同完成任务。换句话说,就是把大任务拆分成许多个小任务,然后再把这些小任务分配给多台计算机去完成。参与计算的多台计算机组成一个分布式系统,需要运行一系列的分布式基础算法。

    Hadoop 就是一个分布式计算平台,用 Java 语言开发,包含 Common、MapReduce 和 HDFS 三个核心部件(HDFS 和 MapReduce 是最核心的两个部件)。其中:
    Common 为 Hadoop 的其他项目提供了一些常用工具,主要包括系统配置工具 Configuration、远程过程调用 RPC、序列化机制和 Hadoop 抽象文件系统等。
    MapReduce 是处理海量数据的计算模型。
    而 HDFS 用于存储海量数据,它具备高度容错性,能在低成本的通用硬件机器上稳定运行。

    Hadoop 实现了分布式计算中的基础算法(如一致算法、选举算法、故障检测、快照等),同时为用户提供了编程和命令接口。程序员调用这些函数能轻松写出分布式应用程序,我们都知道,如果一切从头开始,要完成一个分布式程序的编写是异常艰难的。

    Hadoop 在海量非结构化数据处理方面能充分展示它的优势,如消费者购买行为分析、商品推荐、关键词检索、信贷风险评估等。

    如图 1 所示,Hadoop 其实就是一个分布式计算平台,它“覆盖”在操作系统之上,向上提供函数调用(API)和命令接口,在水平方向完成分布式系统的基础算法。作为编程人员和用户,只要了解 API 和命令即可。
    在这里插入图片描述
    图 1 Hadoop

    基于 Hadoop 平台衍生出来的开源项目主要有 Yarn、HBase、Hive、ZooKeeper、Avro、Sqoop、Mahout、Crossbow 等。

    以 Hadoop 为基础的生态目前已经成为大数据的标准方案,被广泛用于金融、市场、电信、交通等行业的海量数据分析,在即将到来的大数据时代,它将会发挥更大的作用。

    在中国,很多行业(如银行、电信、移动、电力、石油、交通等)沉淀了大量的业务数据,对这些海量数据进行挖掘和分析,将会带来巨大的价值。

    用 Hadoop 构建的应用实例对于计算资源的消耗具备两个明显的特征:
    资源需求大:表明 Hadoop 需要大量的存储、计算和网络带宽。
    资源需求具备季节性:表明除存储需求是经常性占用外,在运行 Mapreduce 时才需要大量的计算和网络资源,而分析大量数据的工作并不是经常性的——称为季节性

    因此,云计算是大数据天生的计算资源供应途径,云计算的资源弹性很好地满足了大数据的季节性计算资源需求。也就是说,大数据是云计算经典的应用案例。当然,也可以按照大数据对计算资源的波峰需求静态配给计算资源,但是这种方案会造成资源的巨大浪费。
    2. LVS
    LVS 是 Linux Virtual Server 的首字母缩写,意为 Linux 虚拟服务器,即把许多台物理 Linux 计算机逻辑上整合成一台超级计算机,对用户来说感觉只有一台计算能力很强的服务器,如图 2 所示。

    LVS 就是一个由软件实现的负载均衡器,工作在网络 OSI 的第四层(应用层),是中国人章嵩开发的,代码已经并入了 Linux 内核。利用它,再加上一台廉价的计算机,就能构建一台企业级的负载均衡器。而那些外国大公司的负载均衡器,售价都要十几万元,甚至几十万元,便宜的也要几万元,LVS 出来后,这些产品都不得不降价。

    负载均衡器的作用就是把任务分配给最合适的服务器。比如一个大型购物网店,有 100 台同样配置的服务器在运行,如果某一时刻有 10 万用户在线购物,那么通过负载均衡器,每台服务器差不多承担 1000 个在线购物用户。

    LVS 的官网网站是 http://www.linuxvirtualserver.org。另外,两个较为流行的第七层负载均衡器是 Nginx 和 HAProxy,针对应用做均衡,所以能适应的负载种类没有 LVS 多。
    在这里插入图片描述
    LVS原理图

    1. Linux-HA
      也许有读者会问:“负载均衡器本身故障怎么办?”是的,如果负载均衡器出现故障,那么整个系统(如网店)将会瘫痪。所以人们开发了各种集群软件,如 Linux-HA 和 Keepalive 等,而微软干脆就在 Windows 服务器版中集成故障转移集群软件。

    集成故障转移集群软件的核心思想是,实时检测故障机器并及时让好的机器接管工作,对外提供高可用性。Linux-HA 意为 Linux 高可用性项目,此项目具体包含如下几个组件。
    在这里插入图片描述

    通过心跳信号(Heartbeat)检测故障,一台好的计算机会不断向其他计算机发送心跳信号,也会接收其他计算机发送过来的心跳信息。当在规定的时间内没有收到对方计算机的心跳信号时,就启动应急预案,进一步确认故障并准备接管那台计算机的任务。

    例如,我们采用两台 LVS 计算机,并分别安装和配置 Linux-HA,一台 LVS 计算机作为工作机,另一台作为备份机,两台 LVS 计算机互相监督对方的运行状态。当工作机故障时,备份机接管负载均衡任务并报警。相反,当备份机出故障时,只报警,提醒技术员维修备份机。

    两台LVS计算机同时出故障是比较糟糕的情况,不过这种情况发生的概率很小,除非机房断电或者遭到雷击。对于一些非常关键的应用,可以增加参与负载均衡的服务器数量来提高可靠性,如民航飞机上采用 5 台服务器。
    4. 静态网站服务器
    我们浏览一家公司的网站时,很可能就是跟那家公司服务器上的 Apache 程序打交道,网页浏览器与 Apache 成了标准的 C/S 模式,浏览器是客户端,而 Apache 是服务端。Apache 首先把主页对应的文件 index.html 发给我们,我们看到主页内容后,点击主页上的某个链接,它又把该链接对应的文件发给我们,过程如图 3 所示。
    访问静态网页的过程
    在这里插入图片描述

    图 3 访问静态网页的过程

    配合 PHP 引擎,Apache 也支持 PHP 动态网页。过程为:

    1)当 Apache 收到用户要浏览的 PHP 文件后,把这个 PHP 文件发给 PHP 执行引擎。

    2)PHP 执行引擎执行该 PHP 文件,产生一个临时的静态网页文件并发回给 Apache。

    3)最后 Apache 把这个临时的静态网页文件发给用户。

    采用 Perl、Python 和 Ruby 脚本语言编写的动态网页,其工作过程与 PHP 类似。

    Apache 是最流行的开源网站服务器,在世界排名前 100 万的网站中,有 60.6% 的网站采用 Apache;在排名前 1000 的大型网站中,Apache 占到了 34.5%,而 Ngnix 占到了 34.9%,略胜于 Apache。
    5. 动态应用服务器
    开源的动态应用服务器有 JBoss、Tomcat、Geronimo、JOnAS,关于这些项目更详细的介绍,请参考相应的官方网站。

    推荐

    常见的中间件有哪些
    1.一般本地开发的话,小项目,或者是个人开发建议使用tomcat。
    2.linux系统建议使用jetty或apache hpptd
    3.大型的项目就用JBOSS或webloigc

    4.大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等
    5.一些示例项目或者小项目常采用jetty

    6.tomcat , jboss, weblogic, websphere 一般项目tomcat就可以了

    Tomcat是Sun的JSWDK(JavaServer Web Development Kit)中Servlet的运行环境(servlet容器)。Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业Java Servlet容器的特性,并被一些企业用于商业用途。

    JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术

    WebLogic服务器是企业级的应用服务器,支持EJB, 集群以及 ERP(企业资源计划)的连通性 ,开发公司:BEA。

    WebSphere产品系列是IBM公司一套典型的电子商务应用开发工具及运行环境

    Tomcat 介绍 如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。
    如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet
    的运行平台。
    Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发
    而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新
    的java产品,可见其在业界的地位。
    Tomcat最新版本是4.0x.4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3
    和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从http://jakarta.apache.org上下载其源代码版或者二进制版。由于Java的跨平台
    特性,基于Java的Tomcat也具有跨平台性。
    与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许
    多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有
    一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而
    classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF
    下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。
    在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器
    中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提
    供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通
    过Web部署和撤销应用。当然本地也可以。
    Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如
    Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和
    Tomcat的配置文件即可。
    另外,Tomcat提供Realm支持。Realm类似于Unix里面的group.在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资
    源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种
    Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服
    务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm.通过
    Realm我们可以方便地对访问某个应用的客户进行验证。
    在Tomcat4中,你还可以利用Servlet2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL
    集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应
    用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet.而Tomcat则功
    能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器
    具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果
    用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat.
    基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即
    可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件,
    然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包
    成WAR.事实上,在很多应用服务器的发布中都包含了Ant.另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更
    方便。
    Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起
    来开发基于Xml的应用,与OpenJMS
    集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。
    Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功
    的典型。

    多种中间件(Tomcat, Apache, Nginx, MQ,等)各项性能参数设置、监控及优化;

    特点

    一、中间件是什么?
    中间件(英语:Middleware)顾名思义是系统软件和用户应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户服务器的操作系统、网络和数据库之上,管理计算资源和网络通信。总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

    也就是说,关于中间件,我们可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。中间件是一类软件统称,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作。
    在这里插入图片描述 中间件示意图

    中间件的特点:

    满足大量应用的需要;
    运行于多种硬件和OS平台;
    支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;
    支持标准的协议;
    支持标准的接口。

    展开全文
  • Atlas是由奇虎360公发的基于MySQL协议的数据库中间件产品,它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了若干Bug,并增加了很多功能特性。目前该产品在360内部得到了广泛应用,覆盖80%以上的MySQL业务...
  • 互联网公司常用四大类中间件之搜索中间件与缓存中间件 1. 搜索中间件:Solr,ELK(ElasticSearch,Logstash,Kibana)达成近实时搜索。 底层均基于Lucence。如果能考到ELK认证(当前很少人获得),高薪无悬念。 ...
  • 缓存中间件Redis 1. Redis简介 Redis是一款免费、开源、遵循BSD协议的高性能结构化存储数据库,可以满足目前企业大部分应用中对于高性能数据存储的需求。同时,它也是NoSQL(Not Only SQL),是非关系数据库的一种,...
  • 京东jsf中间件简介!
  • 请问阿里中间件和传统的中间件技术最大的区别是什么呀? 进行了更高层面的封装。 节省运维的成本。 基于阿里的飞天等等技术提供更高的可用性。 比如常用的中间件。 Redis如果要做到高可用,需要使用Codis, + 一致性...
  • 消息中间件简介

    2021-06-15 21:12:18
    消息中间件(MQ)的定义 其实并没有标准定义,一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布 式系统中的其余各个子系统进行集成。 几个关键词: ...
  • 对于消息中间件,绝大多数熟悉的是 MQ(IBM公司出品),这是目前使用最广泛的中间件产品。还有两个也比较流行,他们是JMS和RV。JMS即JAVA消息服务(Java Message Service)应用程序接口是一个JAVA平台中关于面向消息...
  • “我们很早就支持Sun公司Solaris操作系统,在平台合作方面,与其它厂商相比,Sun对我们的支持更好。”东方通首席软件设计师朱律玮说,“这次Sun直接与我们配合,是这次移植更顺利的一个原因。有问题,就可以直接找...
  • 1. 什么是中间件 我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,一个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同...
  • 文中介绍.Net开发环境下,通过自定义数据库访问控件和对象...本中间件通过我公司在新疆维吾尔自治区开发的多个管理信息系统(MIS)的应用与实践,已经验证了其快捷性、稳定性和可伸缩性,能够有效的提高软件开发效率。
  • 中间件的产业趋势与金蝶的自主创新(金蝶中间件有限公司总经理奉.pptx
  • 我相信在座很多大家听过很多大型公司里听到一些东西,比如我们现在的阿里云,前身就是阿里中间件团队,只是现在做了技术赋能和技术输出,把技术变现然后对外输出。简单一句话,当你公司变成多条业务线的时候,从单...
  • Spring中间件 - 什么是中间件

    千次阅读 2021-11-19 18:26:29
    一、前言 在互联网应用开发初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在...在中间件这一层的建设,基本是来自.
  • 中间件技术

    2021-03-19 22:39:18
    中间件 一、什么是中间件 我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,一个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作...
  • 2021年各行业规范化管理制度
  • 前几天.NET Core3.1发布,于是我把公司一个基础通用系统升级了,同时删除了几个基础模块当然这几个基础模块与.NET Core3.1无关,其中包括了支付模块,升级完后静文(同事)问我你把支付删除了啊?我说是啊,没考虑好...
  • 公司名称直接叫中间件的就更少了,金蝶中间件应该是国内外直接在公司名称中冠以中间件字眼最早,也是很少的公司之一。另一方面,因为中间件软件还处于发展阶段,还没有完全成熟,因此对中间件的定义也就没有深究,...
  • 中间件介绍

    2021-01-18 14:49:25
    本来今天就该讲 MyCat 了,但是我发现还有一个概念值得和大家聊一下,那就是 Java 中间件! 因为 MyCat 是一个分布式数据库中间件,要理解 MyCat ,那你就得先知道到底什么是中间件中间件简介 说起中间件,很多人...
  • 刚来公司的时候,对react项目中的thunk中间件的作用一直不太了解,最近有时间决定好好研究一下。鉴于本人初次写博客,并已假设读者已掌握redux的一些基本用法;如有错误,还望指出。不胜感激! 首先简单回顾一下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,785
精华内容 44,714
关键字:

中间件公司