zoukankan      html  css  js  c++  java
  • 基于中间件/构件的开发

    定义:

    中间件(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,平台化



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    寻找项目中顶级Vue对象 (一)
    vue文件中style标签的几个标识符
    vue中methods中的方法闭包缓存问题
    斐波那契数列实现
    ECMAScript 6 入门学习笔记(零)——开始
    Extjs6(三)——用extjs6.0写一个简单页面
    同域和不同域长啥样
    Extjs6组件——Form大家族成员介绍
    Extjs6官方文档译文——应用架构简介(MVC,MVVM)
    Extjs6(特别篇)——项目自带例子main.js拆分详解
  • 原文地址:https://www.cnblogs.com/significantfrank/p/4875820.html
Copyright © 2011-2022 走看看