--middleware
--------
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。IDC对中间件的定义表明,中间件是一类软件。。
---------
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。
顾名思义,中间件处于操作系统软件与用户的应用软件的中间(之间更恰当)。。
中间件在操作系统、网络和数据库之上,应用软件(如Oracle数据库软件)之下,
总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户(程序开发人员)灵活、高效地开发和集成复杂的应用软件。。
----------------------
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。。
---------------------
有人定义中间件为:平台+通信。
这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。
---------------------
三
那么什么是分布式系统?
--
分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,
是在由通信网络互联的多处理机体系结构上执行任务的系统。
它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
1. 分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。
2. 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。
3. 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。
4. 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。
---------------------
分布式数据库系统是由若干个站集合而成。
这些站又称为节点,它们在通讯网络中联接在一起,
每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。
因此分布式数据库系统可以看作是一系列集中式数据库系统的联合,它们在逻辑上属于同一系统,但在物理结构上是分布式的。
分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几点:
1、它可以解决组织机构分散而数据需要相互联系的问题。
比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。
2、如果一个组织机构需要增加新的相对自主的组织单位来扩充,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
3、均衡负载的需要。数据的分解采(集)(使)用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。
4、当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。--基于业务的原因,需要实现全局管理应用,而且以前是分散在各地的已有数据库等IT系统,也就是时下所谓的"整合"。。
5、相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。
特点:
1、在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权。
2、在分布式数据库系统中数据独立性概念依然重要,而且增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。
3、集中式数据库系统不同,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:
首先,如果在需要的节点复制数据,则可以提高局部的应用性。---难以理解"在需要的节点复制数据"
其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。
当然,在分布式系统中对最佳冗余度的评价是很复杂的。
分布式系统的类型,大致可以归为三类:
1、分布式数据,但只有一个总数据库,没有局部数据库。
2、分层式处理,每一层都有自己的数据库。
3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。
---------------
举例:
例如一个管理软件有一个api是“查询企业关联交易”,
当财务软件调用这个api时,如果这个api其实是从全公司几十个分公司的近百台服务器上取得的分析数据,
但是该api向财务软件隐藏了后台查询和计算的复杂性。
不要把多用户系统看作分布式系统,多用户与分布式几乎完全没关系。
分布式系统是即使只有1个终端用户使用系统后台,也是通过分布在多处的服务器来执行的,该系统仍然是分布式系统。
--------
我所理解的“分布式系统”不是集群!
集群是高负载时的一种解决方案,然而分布式系统不是为了高负载。
假设有100台服务器参与到分布式系统里来,同样的数据可能顶多在2、3台服务器上重复保存,这2、3台之间也许叫做(一个很小的)集群,但是这100台服务器则是分布。
分布是指功能分布,例如一个计算可能需要分解为20个任务由20台以上的服务器取走分别计算,而决不是指他们分别冗余地重复同一个计算任务。
"可以自己开发简单的专用分布式系统,但开发通用的分布式系统则是相当困难的,因为要考虑到业务。
与此想法,集群则相当简单,甚至对于一些简单的系统,简单的在ip地址分配上做点文章就可以了。"
最后这段不理解。

浙公网安备 33010602011771号