开发者社区> ali-frank> 正文

基于中间件/构件的开发

简介: 定义: 中间件(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,平台化



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
9689 0
android ndk开发之环境搭建
一:Cygwin的下载与安装:         cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。简单来说,我们直接用他来编译我们的c/c++代码,而不必放到Linux虚拟机或者Linux
1276 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20368 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18645 0
nodejs开发 express路由与中间件
路由 通常HTTP URL的格式是这样的: http://host[:port][path] http表示协议。 host表示主机。 port为端口,可选字段,不提供时默认为80。 path指定请求资源的URI(Uniform Resource Identifier,统一资源定位符),如果URL中没有给出path,一般会默认成“/”(通常由浏览器或其它HTTP客户端完成补充上)。
928 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25059 0
一个不使用CRM中间件成功地将ERP Material下载到CRM的原型开发
一个不使用CRM中间件成功地将ERP Material下载到CRM的原型开发
19 0
+关注
ali-frank
阿里高级技术专家,计算机行业从业10年+,有丰富的互联网大型分布式系统研发经验,目前致力于阿里集团CRM和商家CRM系统的研发。
75
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载