中间件的基本概念

中间件的基本概念,第1张

评估中间件掌握方法是关键要选择一个技术上符合要求的中间件既要了解自己的需求,还得能对一个中间件软件作出技术上的评估

我们这里不谈如何了解您的需求,只谈如何对中间件做技术上的评估

随着中间件的广泛应用,最终用户和应用开发商时常面临这个问题

中间件的种类越来越多,单一产品的功能特性又越来越丰富,如果不得要领,就会陷入到无尽的细节之中

因此,掌握方法就非常重要

选择中间件当然不能只关注技术,必须考虑厂商实力、提供的服务、价格等相关因素,但技术上是否满足需要无疑是位居第一位的

以同类中间件的“标准功能”作为参考你完全可以从你的具体需求出发,看看这个软件是否适用,或者好不好

如果你知道你要评估的这一类中间件软件通常具有的功能——我们称它是“标准功能”——你就有了一个可作为参考的依据

你可以看一看你面前的中间件有没有这些“标准功能”,如果没有,是否对你有重要的影响

把握功能需求、非功能需求与技术标准三个方面我们在设计一个软件时,可以把对软件的需求划分成功能需求和非功能需求

功能需求指明软件必须执行的功能,定义系统的行为——即软件在某种输入条件下要给出确定的输出必须做的处理或转换

功能需求通常是软件功能的“硬指标”——如“支持分布式环境中消息的可靠传输”;非功能需求不描述软件做什么,描述软件如何做

非功能需求通常作为软件设计的“软指标”——如“系统具有可伸缩性”

为此,我们可以把功能需求对应的功能称为“功能性特征”,把非功能需求对应的功能称为“非功能性特征”

评估一个中间件软件,最主要的是看这个软件的功能,包括功能性特征和非功能性特征,是否符合我们的要求,或者符合大多数人的通常要求

如果你知道某一种中间件软件的“标准功能”,你可以进一步把它分成“功能性的特征”和“非功能性特征”

如果你不知道,你只需从你的需求出发,研究一下你面前中间件的“功能性特征”和“非功能性特征”是否满足你的功能需求和非功能需求

中间件是处于支撑地位的通用软件,其技术的标准化具有重要意义

中间件对技术标准的支持表现为使用标准的API、使用标准化的技术和实现标准化的功能等几个方面

中间件支持标准通常意味着用户和应用对厂商的依赖更小、应用开发人员学习使用一种新产品更容易,中间件软件可以和更多的系统互 *** 作,技术更开放

因此,评估一个中间件不仅要看它是否具有某项功能,还要看这个功能是否使用了标准的技术

功能性特征是中间件的基本特征中间件的功能性特征是一种中间件软件的基本特征

不同种类的中间件的差异首先表现为基本功能的不同,因此我们不能总结出一套适合所有中间件门类的、一般性的“功能性特征”

对于某一个具体的中间件软件,我们能够把它的功能性特征提取出来

我们假定某一中间件定位于解决分步式环境中消息的发送者和接收者之间消息传输、管理和控制问题,该软件提供了多种消息交换方式、支持多种消息类型,提供可靠传输等服务质量控制机制,该软件支持多系统平台,支持高吞吐量的业务处理很显然,我们可以把“提供多种消息交换方式、支持多种消息类型,提供可靠传输等服务质量控制机制”看成是该中间件的功能性特征,而把“支持高吞吐量的业务处理”作为非功能性的特征

如果中间件的选择者能够从自己的需求中归纳出对中间件的“功能需求”,就可以把它们和面前的中间件的功能性特征做一下对照

功能性特征一般比较容易测试,因而也比较容易验证

非功能性特征是跨中间件的共性特性软件的“非功能需求”是软件需求的重要方面

中间件软件的“非功能性特征”也是中间件功能的重要方面

事实上,中间件软件的非功能性特征是跨中间件种类的、非常重要的一般性特征,是中间件软件功能强大的表现

我们这里采用了在2000年的《中间件——达成灵便的电子商务的技术基础》一文中对成功的中间件的共性特征的归纳(做了一点裁减):许多情况下,非功能性和功能性并非有严格的界线

比如,对于消息中间件来说,可靠传输一定是功能性的特征;对于其它的中间件未必如此;对于安全中间件来说,安全不能算作非功能性特征

非功能性特征一般比较难以测试,但仍然是一定程度可测试的

支持标准对于中间件必可缺少面向消息的中间件一直以来缺乏技术标准/规范

自从J2EE制定出基于Java的Java消息传输服务(JMS)以后,人们对消息中间件的技术要求就有多了一项内容

相比较而言,事务处理监控程序(交易中间件)相关的技术规范就要多一些,主要是X/OPEN(现称为OPENGROUP)的分布式事务处理系列规范,包括TPM的架构、应用与TPM的接口及事务提交管理协议等重要内容

对于J2EE应用服务器,技术规范的影响就更大

我们甚至可以说,J2EE应用服务器的功能体现在了对技术标准和规范的支持上

标准/规范虽然重要,我们不可迷信,唯标准是从

因为,第一,“标准”可能仅是建议性的,并非所有的厂商都会遵守;第二,“标准”可能是妥协的结果,只是将提交的多个可选内容统统收入,各项内容甚至不能互换;第三,“标准”可能是不完整的,仅仅实现了标准要求的内容可能意味着欠缺重要的功能

比如,X/OPENDTP模型中定义的应用与TPM的接口就是妥协的结果

所谓“标准”就是两个厂家提交的完全不同的建议的罗列,两者完全不能互换

事实上也未见第三家厂商遵从上述的“标准”

这样的“标准”也只咎由自取参考意义

在看JMS,JMS当前规范只涉及一个消息服务器,规范只保证该服务器的客户方都使用一个一致的接口

如果厂商只是实现了JMS规范定义的内容,那么它就必不能支持服务器到服务器之间的可靠传输,其功能就会大打折扣

无论是用户还是中间件厂商,对标准都不应该迷信

中间件对标准的支持一般会体现在软件的功能性特征上,多数情况下是可测试和验证的

中间件,是提供系统软件和应用软件之间连接的软体,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛。如数据库、Apache的Tomcat,IBM公司的WebSphere,BEA公司的WebLogic应用服务器以及Kingdee公司的Apusic等都属于中间件。
严格来讲,中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache组织、IBM、Oracle(BEA)、微软各自发展出了较为完整的软件产品体系。(Microsoft Servers是微软公司的服务器产品介绍)中间件技术建立在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、>Linux服务器不一定必须有中间件,这取决于具体的应用场景和服务器运行的任务。下面我会结合具体的原因和拓展内容来进行解释。
中间件是指在 *** 作系统之上的一层软件,可以为应用程序提供特定的服务和支持,如消息队列、数据库连接池、缓存服务等。它可以提升应用程序的性能、可靠性和安全性。
在某些应用场景下,Linux服务器需要提供一些特定的服务,这时候中间件就会非常有用。例如,如果需要在服务器上部署一个Java Web应用程序,那么就需要安装Tomcat中间件来支持Java程序的运行。同样的,如果需要支持消息队列服务,那么就需要安装RabbitMQ等消息中间件。此外,还有一些常见的中间件,如Nginx、Apache、Redis等。
然而,并不是所有的Linux服务器都需要中间件。如果服务器只是提供一些基础的服务,如文件存储、Web服务器等,那么中间件就不是必需的。此外,如果服务器的资源非常有限,安装过多的中间件可能会降低服务器的性能和稳定性。
总之,Linux服务器是否需要中间件,需要根据具体的应用场景和服务器的任务来决定。需要权衡中间件带来的好处和其对服务器性能和稳定性的影响,才能做出正确的决策。

简单来说,中间件就是 *** 作系统和应用程序之间的桥梁。没有中间件,你写出来的应用程序(主要是web application 和 J2EE )就无法运行
我们最早知道的中间件是一个称为Tuxedo的东西,实质上它是一个交易中间件。1998年IDC公司对于中间件有一个定义,并根据用途将其划分为6个类别。如今所保留下来的只有消息中间件和交易中间件,其他的已经被逐步融合到其他产品中了,被包裹进去了,在市场上已经没有单独的产品形态出现了。例如,当时有一个叫屏幕数据转换的中间件,其主要是针对IBM大机终端而设计产品,用于将IBM大机终端的字符界面转化为用户所喜欢的图形界面,类似的东西当时都称为中间件。但随着IBM大机环境越来越少,但是盛行一时的此类中间件如今已经很少再被单独提及。
2000年前后,互联网盛行起来,随之产生了一个新的东西,就是应用服务器。实际上,交易中间件也属于是应用服务器,为了区分,人们传统的交易中间件称为分布交易中间件,因它主要应用在分布式环境下,而将新的应用服务器,称为J2EE中间件,到目前为止,这都是市场上非常热门的产品。
EAI概念出来之后,市场上又推出了一些新的软件产品,,例如工作流、Portal等,但从分类上不知道怎么归类,向上不能够划归应用,往下又不能归入 *** 作系统,于是就把它归入了中间件,如此中间件的概念更加扩大了。目前,市场上对于中间件,各家的说法不一,客观上也导致了理解上的复杂性。
如今,市场上又推出了很多新的概念,例如三层结构、构件、Web服务,其中风头最劲的当属SOA(面向服务的架构)。实际上,他们都不是一个产品,而是一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包,这就是现在所说的SOA。想要现实SOA,就要规范构件接口,同时还要规范构件所提交的服务结果,如此,新的软件开发的思想才能够行的通。但SOA并不是一个产品,而是一种思想方法,而实现这种方法的基础,如今看来只有中间件。
那么,到底什么才是中间件,什么不是中间件从东方通科技的观点看,中间件应该具备两个关键特征:首先要为上层的应用层服务,这是一个基本条件;此外,又必须连接到 *** 作系统的层面,并却保持运行工作状态,具备了这样两个特征才能称为中间件。现在很多人把开发工具也称为中间件是不合适的,因为开发工具开发出来的软件,并不依赖开发工具与底层 *** 作系统连接。

常见的中间件有:我们经常管中间件叫做中间件服务器,也会叫作应用服务器。正常情况下一次web的访问顺序是:web浏览器---web服务器(W3的那个,非广义)---web容器---应用服务器---数据库服务器。
本地开发经常使用的应用服务器就是tomcat,linux系统经常使用的是jetty或apachehpptd,大型的项目就用的JBOSS或webloigc。
小项目,或者是个人开发tomcat大项目或者商业项目采用:weblgoic/webshere其他的还有jboss、glasshfish等,一些示例项目或者小项目常采用jetty。
Tomcat:是Sun的JSWDK(JavaServerWebDevelopmentKit)中Servlet的运行环境(servlet容器)。Tomcat是ApacheJakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(JavaServerWebDevelopmentKit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业JavaServlet容器的特性,并被一些企业用于商业用途。
JBoss:是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web *** 作系统(operatingsystemforweb),它体现了J2EE规范中最新的技术
WebLogic服务器:是企业级的应用服务器,支持EJB,集群以及ERP(企业资源计划)的连通性,开发公司:BEA。

MQ处理消息的,在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。如果消息队列较多可以用这个

WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,基于J2EE,一般用在电子商务系统。
WebSphere 是一个模块化的平台,可以在许多平台上运行,包括 Intel、Linux 和 z/OS。它可以创建高效的电子商务站点提高了网上交易的质量和数量。 把应用扩展到联合的移动设备上使销售人员可以为客户提供更方便、更快捷的服务。 整合已有的应用并提供自动简捷的业务流程。

满足大量应用的需要 ;
运行于多种硬件和OS平台 ;
支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能 ;
支持标准的协议 ;
支持标准的接口。 最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于AT&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被BEA公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在10年之中。BEA公司1995年成立后收购Tuxedo才成为一个真正的中间件厂商,IBM的中间件MQSeries也是90年代的产品,其它许多中间件产品也都是最近几年才成熟起来。
1998年IDC公司对于中间件有一个定义,并根据用途将其划分为6个类别。如今所保留下来的只有消息中间件和交易中间件,其他的已经被逐步融合到其他产品中了,被包裹进去了,在市场上已经没有单独的产品形态出现了。例如,当时有一个叫屏幕数据转换的中间件,其主要是针对IBM大机终端而设计产品,用于将IBM大机终端的字符界面转化为用户所喜欢的图形界面,类似的东西当时都称为中间件。但随着IBM大机环境越来越少,当时盛行一时的此类中间件如今已经很少再被单独提及。 2000年前后,互联网盛行起来,随之产生了一个新的东西,就是应用服务器。实际上,交易中间件也属于是应用服务器,为了区分,人们把传统的交易中间件称为分布交易中间件,因它主要应用在分布式环境下,而将新的应用服务器,称为J2EE中间件,到目前为止,这都是市场上非常热门的产品。
EAI概念出来之后,市场上又推出了一些新的软件产品,例如工作流、Portal等,但从分类上不知道怎么归类,向上不能够划归应用,往下又不能归入 *** 作系统,于是就把它归入了中间件,如此中间件的概念更加扩大了。市场上对于中间件,各家的说法不一,客观上也导致了理解上的复杂性。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13358861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存