基于中间件/构件的开发

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 定义: 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统和用户的应用软件的中间。 中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行和开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件,中间件是一类软件,中间件不仅要实现互联,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突

定义:

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统和用户的应用软件的中间。

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行和开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件,中间件是一类软件,中间件不仅要实现互联,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。


软件复用:

最早的软件开发方法就是编程、写代码,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。但是,这种构件的重用任然是”代码“重用,随着技术的不断演化、业务的不断变化,应用的交互常常需要架设在异构系统之上,此时,代码复用将无能为力,所以软件开发方法在构件化的技术上结合互联网技术又有了新发展,其核心思想是软件并不需要囊括构件,所需要的仅仅是构件运行的结果。也就是面向服务(SOA)的思想,但SOA并不是一个产品,而是一种思想方法,实现这种方法的基础唯有中间件。例如我们可以在Apache的web server的基础上,加上一组能够处理SOAP请求并返回SOAP结果的解析器,那么此处的Web server和WS 构件就是我们提供SOA服务的中间件。


中间件分类:

远程过程调用(RPC)中间件

远程过程调用是一种广泛使用的分布式应用程序处理方法,一个应用程序使用RPC来”远程“执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。此类中间件需要根据相应的RPC规范,例如CORBA和Web Service,需要提供相应的服务支持,如屏蔽底层通信的细节,以及数据在异构系统之间的流转,服务在服务器端的注册、发现和使用等


面向消息的中间件

RPC的调用时同步调用,客户端和服务器直接连接,没有中间机构来处理请求,通信过程中,服务器要保持在线状态。MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,其特点是:

1,通讯程序可在不同的时间运行。

2,减少系统延迟,对应用程序的结构没有约束,可以是一对一的联系,也可以是一对多的联系。

3,解耦调用者和被调用者,使程序与网络复杂性相隔离。


数据访问中间件

对数据库访问的各种driver,或者能够提供分布式数据库访问的数据访问层

事务处理监控
通过对事务的监控,进行事务管理和协调、负载均衡、失败恢复等
事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。

企业服务总线(ESB:Enterprise Service Bus):
ESB是一种开放的、基于标准的分布式同步或异步信息传递中间件。虚拟化了服务的地理位置。
ESB类似于硬件系统里总线的概念,所有服务之间的调用统一通过ESB,ESB负责传递相应的的请求到相应的服务,从而使得各个应用只需要和ESB进行通信,就能满足各种服务要求,省去了各服务器向外暴露自己端点(Endpoint)的麻烦,同时也降低了服务请求者和服务提供者之间的耦合,因为假如某个服务需要更改自己的endpoint,只需要在ESB的注册服务上修改相应的配置信息即可,而对于客户端是完全透明的。

基于XML的中间件(XML-Based Middleware):

XML允许开发人员为实现在internet中交换结构化信息而创建文档。


中间件的发展趋势

1,规范化

在中间件的发展过程中,做的最好的一件事情就是规范的制定。对于不同类型的中间件,目前都有一些规范可以遵循,如消息类的JMS,对象类的CORBA、COM,交易类的XA,JTA,应用服务器类的J2EE,.NET,数据访问类的ODBC和JDBC,JTA,Web服务有WSDL,UDDI,SOAP以及JAX-RS(JSR 311)等。这些规范极大的促进了中间件技术的发展,同时保证了系统的扩展性、开放性和互操作性。

2,构件化和松耦合

除了过时的CORBA和DCOM的基于对象的RPC构件技术外,随着企业业务流程整合和电子商务应用的发展,中间件技术朝着面向Web、松耦合的方式发展。基于XML和Web服务的中间件技术,使得不同系统之间、不同应用之间的交互建立在非常灵活的基础上。XML是一种可扩展的标识语言,是一种中立于开发语言的结构化文档表现方式,非常适合于异构系统间的数据交换,因此在国际上已经被普遍采纳为电子商务的数据标准。而Web服务作为基于Web技术的构件,在流程中间件和集成下可以灵活、动态地被组织成跨企业的商务应用。

3,平台化



目录
相关文章
|
7月前
|
自然语言处理 中间件 编译器
C语言的编译器和中间件开发
C语言的编译器和中间件开发
|
消息中间件 开发框架 运维
J2EE开发中消息中间件的介绍和选择
J2EE开发中消息中间件的介绍和选择
184 0
|
7月前
|
缓存 中间件 PHP
【PHP开发专栏】PHP框架中的路由与中间件
【4月更文挑战第29天】本文探讨了PHP框架中的路由和中间件概念。路由负责将HTTP请求映射到控制器方法,提供灵活的请求处理和URL管理。中间件则是在请求处理前后插入的代码,用于实现如身份验证、日志等功能,与业务逻辑解耦。通过Laravel框架的示例展示了如何定义路由和创建中间件,以实现代码的模块化和可维护性。
88 0
|
7月前
|
缓存 中间件 Python
Python Web 开发: 解释 Django 中的中间件是什么,以及如何使用?
Python Web 开发: 解释 Django 中的中间件是什么,以及如何使用?
96 0
|
存储 缓存 中间件
谈谈中间件开发,给想从事中间件开发的同学
本文主要是写给那些想从事中间件开发的同学看的 :) 如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :) 什么是中间件开发?
1009 13
|
Java 中间件 API
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
382 11
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
|
存储 缓存 JSON
一个C#开发的非常实用的缓存中间件
*这是一个用C#开发的.Net开源的缓存中间件,他支持各种缓存并提供了很多高级功能。它的主要目标是让开发人员开发更简单、特别是一些复杂的缓存场景。
231 10
一个C#开发的非常实用的缓存中间件
|
消息中间件 Java Kafka
SpringCloud微服务实战——搭建企业级开发框架(三十六):使用Spring Cloud Stream实现可灵活配置消息中间件的功能
在以往消息队列的使用中,我们通常使用集成消息中间件开源包来实现对应功能,而消息中间件的实现又有多种,比如目前比较主流的ActiveMQ、RocketMQ、RabbitMQ、Kafka,Stream等,这些消息中间件的实现都各有优劣。   在进行框架设计的时候,我们考虑是否能够和之前实现的短信发送、分布式存储等功能一样,抽象统一消息接口,屏蔽底层实现,在用到消息队列时,使用统一的接口代码,然后在根据自己业务需要
458 63
SpringCloud微服务实战——搭建企业级开发框架(三十六):使用Spring Cloud Stream实现可灵活配置消息中间件的功能
|
消息中间件 数据采集 Java
开发神技!阿里消息中间件进阶手册限时开源,请接住我的下巴
相信大家在实际工作中都用过消息中间件进行系统间数据交换,解决应用解耦、异步消息、流量削峰等问题,由此消息中间件的强大功能想必也不用我多说了!目前业界上关于消息中间件的实现多达好几十种,可谓百花齐放,所用的实现语言同样也五花八门。不管使用哪一个消息中间件,我们的目的都是实现高性能、高可用、可伸缩和最终一致性架构。
|
JavaScript NoSQL 中间件
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
135 0

热门文章

最新文章