基于中间件/构件的开发

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 定义: 中间件(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,平台化



目录
相关文章
|
1月前
|
自然语言处理 中间件 编译器
C语言的编译器和中间件开发
C语言的编译器和中间件开发
|
4月前
|
缓存 中间件 Python
Python Web 开发: 解释 Django 中的中间件是什么,以及如何使用?
Python Web 开发: 解释 Django 中的中间件是什么,以及如何使用?
|
6月前
|
中间件
如何开发一个 SAP UI5 Tools 的自定义中间件扩展 - Custom Middleware Extension
如何开发一个 SAP UI5 Tools 的自定义中间件扩展 - Custom Middleware Extension
74 1
|
10月前
|
JavaScript NoSQL 中间件
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
101 0
|
存储 缓存 JSON
一个C#开发的非常实用的缓存中间件
*这是一个用C#开发的.Net开源的缓存中间件,他支持各种缓存并提供了很多高级功能。它的主要目标是让开发人员开发更简单、特别是一些复杂的缓存场景。
177 1
一个C#开发的非常实用的缓存中间件
|
存储 缓存 中间件
谈谈中间件开发,给想从事中间件开发的同学
本文主要是写给那些想从事中间件开发的同学看的 :) 如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :) 什么是中间件开发?
|
缓存 监控 中间件
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(组件篇)
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(组件篇)
247 1
|
Java 中间件 API
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
245 1
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
|
安全 中间件 开发者
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
283 0
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
|
中间件 开发工具 git
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)
【Django | 开发】面试招聘信息网站(配置中间件记录响应耗时日志)