中间件分类
一、中间件是什么?
非底层操作系统软件、非上层业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件,统称中间件。
程序A和程序B互相通信使用的协议,程序A,B可以由不同语言不同平台构建。但是协议可以保证他们能互相认识互发的东西。
中间件有个很大的特点,是脱离于具体设计目标,而具备提供普遍独立功能需求的模块。这使得中间件一定是可替换的。如果一个系统设计中,中间件是不可替换的,不是架构、框架设计有问题,那么就是这个中间件,在 别处可能是个中间件,在这个系统内是引擎。
常见的有如下几种:服务中间件、集成中间件、数据中间件、消息中间件、安全中间件。
JAVA 中间件:用Java实现的中间件。中间件,可以理解为类库,介于类库和产品之间。
main方法是启动一个java程序的入口,任何程序都会有自己的main方法,tomcat是一个WEB容器,也不例外。但web项目一般是没有main的。
https://www.cnblogs.com/wlzjdm/p/6964163.html Tomcat启动分析(一)-从脚本到main函数分析
https://blog.csdn.net/singit/article/details/71156893 常见的中间件有哪些?
WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。
二、中间件分类
2.1 数据库中间件
连接应用程序和数据库的软件,通过单一的定义良好的接口访问网络中来自不同厂商的数据库产品。
1)通用网关借口CGI,驻留在webserver上;
2)专用API:DLL形式,NSAPI,ISAPI;
3)通用数据库接口:JDBC(SUN),ODBC(微软)
4)数据库引擎:borland公司开发,类似ODBC;
5)数据库网关:用在分布式环境,无需在客户机进行各种配置,如安装JDBC驱动,使用网关统一管理不同数据库访问。EDA/SQL、RDA、DRDA。
2.2 RPC远程过程调用中间件
RPC实现远程计算服务。服务器端提供计算服务;客户端调用计算服务。
客户机/服务器模式计算把远程过程调用与其它技术如消息传递一道,作为系统间通信的一种机制。客户机执行自己的任务,但靠服务器提供后端文件服务。RPC为客户机提供向后端服务器申请服务的通信机制。如果你把客户机/服务器应用程序想作是一个分离的程序,服务器能运行数据访问部分,因为它离数据最近,客户机能运行数据表示和与用户交互的前端部分。这样,远程过程调用可看作是把分割的程序通过网络重组的部件。
https://blog.csdn.net/jdlsfl/article/details/83200325 远程过程调用中间件技术简介
RPC跨越了传输层和应用层
https://zhidao.baidu.com/question/26158980.html rpc采用什么协议传输
https://blog.csdn.net/CHINAonlyQiu/article/details/10224615 远程过程调用中间件及数据访问中间
rpc框架是面向服务的更高级的封装。如果把一个http servlet容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。
https://www.zhihu.com/question/41609070 既然有 HTTP 请求,为什么还要用 RPC 调用?
- Client-NameNode之间,其中NameNode是服务器
- Client-DataNode之间,其中DataNode是服务器
- DataNode-NameNode之间,其中NameNode是服务器
- DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端
https://www.cnblogs.com/joqk/p/3963101.html Hadoop的RPC框架介绍
2.3 分布式对象中间件
微软的COM/DCOM,SUN的J2EE(RMI),OMG的CORBA
RMI:java远程调用接口,比如,你在一台电脑要调用另外一台电脑的java对象,那就用RMI很方便,就像调用本机对象一样(几乎)
RPC:java远程方法调用,基本同上,就是RMI是java对象之间的调用,RPC可以不同语言。
https://blog.csdn.net/u014001866/article/details/50936246 RMI介绍与使用
https://wenku.baidu.com/view/8493d6477e21af45b207a801.html 中间件分类
2.4事务处理中间件
又称分布式事务处理中间件,事务遵循ACID(原子一致,隔离持久)原则。
分布式事务涉及到多个数据库,例如银行间跨行转账。允许数据库异构。分布式事务需要处理大量并发进程。
技术标准DTP模型,X/OPEN组织提出的一种软件架构,允许多个应用程序去共享多个资源管理器提供的资源,全局协调。
数据库和中间件之间的标准协议成为XA协议,所有数据库都遵循XA协议。
X/Open DTP模型包括4个组成部分:
AP:应用程序,事务的使用者,是开始,提交,回滚的发出者。
RM:资源管理器,提供对共享资源的访问,数据库管理系统或文件系统都可以成为RM。
TM:事务管理器,协调AP和RM,给每个事务分配标识符,监视其进展,保证事务顺利进展并在失败情形下回滚。
CRM:通信资源管理器,在一个事务管理器内或两个事务管理器之间对通信进行控制。
组件三大类?
由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通信服务,我们将这种通信服务称为平台。基于目的和实现机制的不同,可以将平台主要分为远程过程调用(remote procedure call)、面向消息的中间件(message-oriented middleware)和对象请求代理(object request brokers)三类。
https://www.jianshu.com/p/97b5b68bdf7d 2019-01-04 互联网中的中间件主要有哪三大分类?
Tuxedo:Transaction for Unix has been Extended for Distributed Operation分布式操作扩展之后的Unix事务系统。
位于client和server之间的中间件,具备分布式事务处理和应用通信功能
webserver是用来构建网站的必要软件,具有解析、发布网页等功能,它是用纯java开发的
https://www.cnblogs.com/hsapphire/p/11192400.html Tuxedo 介绍
什么是中间件?
为上层的应用软件提供运行与开发的环境,帮助用户开发和集成应用软件。主要提供网络通信功能。
中间件是一种应用于分布式系统的基础软件,位于应用与操作系统、数据库之间。解决分布式环境下数据传输、数据访问、应用调度、系统构建和系统集成、流程管理等问题,是分布式环境下支撑应用开发、运行和集成的平台。
应用软件被要求在许多不同的网络协议、不同的硬件生产厂商以及不一样的网络平台和环境上运营。这导致了软件开发者需要需要开发多种应用程序来达到运营的目的。所以,中间件技术的产生,在极大程度上减轻了开发者的负担,使得网络的运行更有效率。
中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。中间件是一种独立的系统软件或服务程序,
常见的中间件
1. tomcat:小项目,个人开发用
2. jetty, apache httpd : Linux系统
3. Jboss,weblogic:大型项目