松耦合和紧耦合的架构设计及性能对比
- 格式:pdf
- 大小:150.03 KB
- 文档页数:2
信息系统耦合结构信息系统的耦合结构是指信息系统内部各个组成部分之间的相互依赖程度和关联关系。
耦合结构对信息系统的功能性、可维护性、可扩展性以及系统整体性能有着重要的影响。
下面将详细介绍信息系统的耦合结构以及其对系统的影响。
首先,信息系统可以分为三种耦合结构,分别是松耦合、中等耦合和紧耦合。
松耦合指的是系统内各个组成部分之间相互独立,彼此之间的影响较小,可以在不影响其他部分的情况下单独进行修改和维护。
中等耦合指的是系统内各个组成部分之间存在一定的依赖关系,需要通过接口进行数据交互,但是各个部分之间的影响还是相对较小,可以进行单独的修改和维护。
紧耦合指的是系统内各个组成部分之间高度依赖,彼此之间的关联度较高,难以进行单独的修改和维护,需要整体进行调整。
不同的耦合结构对信息系统的影响是不同的。
松耦合结构可以提高系统的灵活性和可维护性,因为各个组成部分之间的独立性较高,可以快速地对一些部分进行修改和维护,而不需要影响其他部分的正常运行。
同时,松耦合结构还可以提高系统的可扩展性,因为新的组件可以相对容易地添加到系统中。
然而,松耦合结构的缺点是系统的整体性能可能较差,因为各个组件之间需要通过接口进行数据交互,会增加系统的开销。
中等耦合结构在灵活性、可维护性和可扩展性方面相对于松耦合结构有一定的折中。
各个组成部分之间的依赖关系需要通过接口进行传递,但是各个部分的修改和维护相对独立,可以提高系统的可维护性。
同时,中等耦合结构的整体性能相对于松耦合结构有所提升。
紧耦合结构在灵活性和可维护性方面相对较差。
各个组成部分之间高度依赖,修改一个部分可能会对其他部分造成不可预知的影响,因此需要整体进行调整和验证。
紧耦合结构的优点是系统的整体性能较好,因为各个组件之间可以直接共享数据,减少了数据传递和转换的开销。
在实际应用中,不同的信息系统往往采用不同的耦合结构。
例如,对于大型分布式系统,一般会采用松耦合结构,将系统拆分为多个独立的组件,通过接口进行数据交互;而对于小型单机系统,可以采用中等耦合结构或者紧耦合结构,以提高整体性能。
软件架构软件架构(体系结构)概述软件架构设计,主要关注软件构件的结构,属性和交互作⽤,并通过多种视图全⾯描述特定系统的架构。
架构设计⽣命周期需求分析,根据需求模型构建软件架构模型,模型转换的可追踪性设计阶段,组成元素,体系结构描述语⾔ADL,4+1视图实现阶段,项⽬组织结构,配置管理,中间件,程序设计语⾔,逐步细化构件组装阶段部署阶段后开发阶段,4+1视图5个不同的视⾓,包括逻辑视图,进程视图,物理视图,开发视图,场景视图来描述软件架构。
开发视图和场景视图来描述软件架构。
1、逻辑视图,最终⽤户:功能需求。
在逻辑视图中,系统分解成⼀系列功能抽象,这些抽象主要来⾃问题领域。
这种分解不但可以⽤来进⾏功能分析,⽽且可以⽤做标识在整个系统的各个不同部分的通⽤机制和设计元素。
在⾯向对象技术中,通过抽象,封装,继承,可以⽤对象模型来代表逻辑视图。
逻辑视图通常包括类图,对象图,状态图和协作图。
是描述系统各部分的抽象描述。
2、开发视图:编程⼈员:软件管理,也叫做模块视图,主要侧重软件模块的组织和管理。
开发要考虑软件内容的需求,如软件开发的容易些,软件的重⽤,和软件的通⽤性。
要充分考虑由于具体开发⼯具不同带来的局限性。
开发视图⽤系统输⼊输出关系的模型图和⼦系统图来描述,可以在确定了软件包含所有元素之后描述完整的开发⾓度,也可以正确的每个元素前列出开发视图原则。
该视图包含包图和组件图。
3、进程视图:也叫做过程视图,主要描述系统中的进程,系统集成⼈员:性能,可扩充性,吞吐量,侧重于系统的运⾏特性,主要关注⼀些⾮功能性的需求,例如系统的性能和可⽤性,进程视图强调并发性,发布性,系统集成性和容错能⼒,以及逻辑视图中的主要抽象的进程结构,他也定义逻辑视图中各个类的操作具体在哪个现场中执⾏.该视图通常包括活动图4、物理视图:系统⼯程⼈员:系统拓扑,按照,通信等, 主要考虑如何把软件映射到硬件上,通常要考虑到节级系统拓扑结构,系统安装,通信等问题。
差分线松耦合-概述说明以及解释1.引言1.1 概述差分线松耦合是一种在电路设计中常用的技术,用于解决信号传输中的干扰和噪声问题。
差分线指的是两根相互镜像的信号线,其中一根为正极性信号线,另一根为负极性信号线。
通过将信号在这两根差分线上传输,可以有效地抵消干扰和噪声的影响。
松耦合是指在差分线传输过程中,正负信号线之间的耦合程度较小。
这种松耦合的设计可以减小信号传输中的串扰和互耦现象,提高信号的可靠性和抗干扰能力。
差分线松耦合的优势在于可以提高信号传输的质量和速率,并降低能量损耗。
相比于传统的单端传输方式,差分线松耦合可以有效地降低信号传输的功耗和延迟,提高信号的抗干扰能力和噪声容忍度。
差分线松耦合被广泛运用在许多领域,尤其在高速数据传输和电磁兼容性设计中得到了广泛应用。
在高速传输中,差分线松耦合可以提供更稳定的信号传输和更高的数据传输速率。
在电磁兼容性设计中,差分线松耦合可以减小信号与外界电磁干扰的相互作用,提高系统的抗干扰能力。
总而言之,差分线松耦合是一种重要的电路设计技术,具有优秀的抗干扰能力和信号传输性能,对于高速数据传输和电磁兼容性设计具有重要意义。
未来,随着技术的不断发展,差分线松耦合将继续在电路设计中发挥重要的作用,并为各个领域的应用带来更多的创新和进步。
1.2 文章结构部分的内容:文章结构分为引言、正文和结论三个部分。
引言部分主要概述了文章的主题和背景,并提出了文章的目的。
在本篇文章中,我们将讨论差分线松耦合的概念、原理、优势和应用,并展望其未来发展。
通过引言,读者可以对文章的内容有一个大致的了解,为后续的阅读和理解打下基础。
正文部分是文章的核心部分,包括对差分线和松耦合的概念和原理进行详细阐述,并介绍差分线松耦合的优势和应用。
首先,我们将深入探讨差分线的概念和原理,包括其基本特征、工作原理和具体应用场景。
然后,我们将介绍松耦合的概念和原理,解释其如何与差分线结合,形成差分线松耦合的系统。
并行机紧耦合松耦合系统原理构成以及存储体系结构姓名:________________________班级:________________________学号:________________________并行机紧耦合松耦合系统原理构成以及存储体系结构摘要计算机发展的趋势是越来越先进,越来越高级。
从数据处理、信息处理到知识处理,最终到智能处理,每前进一步,都要求增强计算机系统的处理能力。
计算机发展的历史表明:为了达到高性能,除了必须提高元器件的速度外,系统结构的改进是另一种重要途径,特别是当元器件的速度达到极限时,改进系统结构就成为问题的焦点。
对此,了解紧耦合松耦合系统原理构成以及存储体系结构十分重要。
AbstractTrends in computer development is more advanced, more and more advanced. From the data processing, information processing to knowledge processing, eventually to the intelligent processing. Every step, require enhanced processing capabilities of the computer system .The history of computer development shows that in order to achieve high performance,in addition to the need to improve the speed of external components. Improved system architecture is another important way. In particular, when the speed limit is reached components.Improved system architecture has become the crux of the problem. Therefore,learn tightly coupled and loosely coupled systems theory constitutes storage architecture is very important.关键字:紧耦合;松耦合;存储体系;Cache一致性一.多处理机系统多处理机系统是由多台处理器组成的计算机系统。
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.【关键字】系统.cn软件系统可扩展性的研究杨凯北京邮电大学计算机科学与技术学院,北京(100876) E-mail:摘要:业务的飞速发展促使软件开发者必须通过开发具有良好可扩展性,易维护性的软件,迅速高效的满足用户不同的需求,本文对可扩展性理论进行了研究,并提出了一个可扩展性解决方案,以便指导具有良好可扩展性的软件开发。
关键词:软件系统可扩展性;解决方案;灵活性中图法分类号:TP3111.引言业务的飞速发展促使软件开发者必须通过开发具有良好可扩展性,易维护性的软件,迅速高效的满足用户不同的需求。
一般我们所希望的系统是这样的:当业务量较小的时候,可以用一个处理能力较小的系统来实现,既节省投资又满足需求;当业务量大时,又可以通过软件系统的扩展,提高处理能力,满足新的需求。
并且在原有系统的基础上能较容易的添加新的功能,并且尽可能小的影响原有系统。
因此有必要对可扩展性理论进行研究,以便指导具有良好可扩展性的软件开发。
开发具有良好可移植性,可扩展性,易维护的软件产品可以克服目前软件生产周期长,耗资大的困难[1]。
一般人们会觉得简单的系统比复杂的系统易于建造,易于维护,短小而且运行更快。
但实际上简洁性通常不是容易达到的目标,因为程序员倾向于在程序中支持可能在未来才会存在的需求,这就使得系统变得复杂化。
然而,因为觉得未来可能会发生什么变化而使代码变得复杂并不是一个好主意(无数开发人员的经验表明主观对未来的预测总是错的)[2]。
程序员需要这样来编写代码:使程序在未来易于添加新的特性或修改现有的特性,而不是现在就增加这些特性。
因此与其一开始就建造一个复杂的系统,不如考虑开发出一个具有高扩展性的系统。
2.可扩展性研究背景可扩展性是指软件扩展新功能的容易程度。
可扩展性越好,表示软件适应“变化”的能力越强。
可扩展性是由现代软件的商业模式决定的[3]:(1) 社会的商业越发达,需求变化就越快。
松散耦合的七个级别松散耦合的七个级别在软件领域,“耦合”一般指软件组件之间的依赖程度。
那么,什么是依赖?各种依赖对耦合度和松散度有多大影响?软件耦合可以发生在许多级别。
必须区分生成时(编译时)依赖和运行时依赖。
在分布环境中,为了确定系统的耦合程度,必须分析各个级别。
下面我们就来具体看一下。
松耦合定义及特点我们知道松耦合有很多好处,那么什么是松耦合?它有哪些特点?服务和耦合的真正意义究竟是什么?当客户要求一点简单的新功能时,会发生什么呢?你必须要在四个不同的系统上执行变更吗?一定要分别在独立和组合的环境中测试吗?并且一定要牵涉到各自的测试、架构和操作团队吗?松耦合定义及特点服务和耦合的真正意义松散耦合的七个级别在这部分中,我们将来讲讲松散耦合的七个级别,而且ZapThink已经发现了七个真正的级别,或者在他们的SOA提议中,架构师应该考虑松散耦合方面的事情。
他们的SOA 越大程序和水平的松散耦合,那些系统越能更好的处理变化。
松散耦合的七个级别:实施和服务契约松散耦合的七个级别:服务策略和流程松散耦合的七个级别:数据模型和基础设施松散耦合的七个级别:语义层让松散耦合运行起来当SOA抽象与异质性、点到点集成及紧密耦合应用逻辑相联系的复杂性,它引入了另一种不同的复杂性:分布式、松散耦合及动态组成服务的管理。
治理、质量和管理:让松散耦合运行起来松耦合定义及特点Daniel Foody, Actional公司的CTO。
作为Actional公司的首席技术总监,Dan Foody在通过Web服务把企业系统整合软件向轻松整合的方向转变方面的经验丰富。
他是Web服务标准图队的积极参与者,该团队包括网络服务协同组织(WS-I)和结构信息标准化促进组织(OASIS),在这个团队中,他是Actional公司在OAISS管理协议技术委员会的带头人,致力于基于XML的Web服务管理标准。
Dan在应用程序整合技术,包括中间设备、平台和Web服务方面的经验丰富,在SAP R/3、DCOM、CORBA 和Java等系统的复杂性方面的拥有渊博的知识。
1概述1.1项目背景铁路运输调度担负着组织客货运输、保证重点运输、提高客货服务质量、确保运输安全的重要责任,对铁路运输企业完成铁路运输生产经营任务,提高效益起着重要作用。
运输调度管理系统是铁路信息化核心应用系统之一.在我国,运输调度管理工作由部、局、站段三级构成,分别对应于铁道部调度部、铁路局调度所以及站段调度室或岗位。
本文所描述的是铁路局调度所一级所应用的运输调度管理系统。
该系统是铁路各级调度组织运输生产的不可或缺的重要手段,是组织完成全路运输生产任务的重大应用系统。
目前,我国铁路调度系统总体水平仍处在发展阶段,这个阶段是追赶国际先进水平实现铁路调度指挥自动化不可跨越的阶段。
只有通过对运输调度管理系统进行持续不断的研究和建设,才能缩小与国外调度系统应用水平的差距,建立起适应我国铁路路情的调度指挥系统。
1.2研制目标运输调度管理系统(TDMS)4。
0重点研究解决调度系统“计划协同编制、生产闭环管理、优化信息共享”等几个方面的问题,梳理规范、整合改造既有各工种系统功能,优化提升T/D结合及其它系统数据共享,提高日(班)计划编制科学性及自动化水平,使得调度系统在应用功能、体系结构、技术创新等方面实现新突破,更好地为调度部门组织运输与指挥生产提供技术支撑。
(1)实现日(班)计划协同编制运输调度管理系统(TDMS)4.0努力实现“横向局间接续编制、局内多工种协同编制货运、列车和机车三大工作计划,纵向部、局、站段三级协作编制轮廓与日(班)计划”的建设目标。
运输调度管理系统(TDMS)4。
0将在实现信息共享的同时充分发挥计算机优势,为各调度工种提供统一的计划编制平台,各工种数据经平台计算后生成完整的调度日(班)计划,构建全局完整日(班)计划。
(2)完善调度工种系统功能运输调度管理系统(TDMS)4.0将在强化信息源点建设的基础上,完善已有计划、货调、机调、客调等主要调度工种系统功能,增加建设值班主任、施工调、军特调等子系统。
耦合聚合融合原理的应用1. 耦合原理的应用•耦合原理是指两个或多个不同系统、部件或对象之间的相互依赖关系。
在软件开发中,耦合原理的应用对系统的可维护性、可扩展性和可测试性等方面非常重要。
•通过降低系统间的耦合性,可以使系统更加灵活、易于维护和扩展。
下面是一些常见的耦合原理的应用方式:1.1 松耦合•松耦合是指系统中的各个模块之间的依赖关系较弱,模块之间的通信只通过接口进行。
这样的设计使得系统中的模块可以独立开发、测试和部署,降低了模块间的相互影响。
1.2 紧耦合•紧耦合是指系统中的各个模块之间的依赖关系较强,模块之间直接调用对方的方法或访问对方的属性。
这样的设计使得系统中的模块之间高度依赖,一旦其中一个模块发生改变,可能会导致其他模块也需要相应的修改。
1.3 适度耦合•适度耦合是指系统中的各个模块之间的依赖关系既不是过于紧密也不是过于松散。
适度耦合的设计可以使得系统更加灵活和稳定,同时又能提供足够的依赖关系用于模块之间的通信。
2. 聚合原理的应用•聚合原理是指将多个对象或模块集合成一个整体的思想。
在软件开发中,聚合原理的应用可以提高系统的模块化程度、可重用性和维护性。
•聚合原理的应用可以通过以下方式实现:2.1 模块化设计•将系统分成多个功能模块,并用聚合的方式组合在一起。
每个功能模块可以独立开发和测试,通过提供接口进行通信和数据交换。
2.2 组件复用•将一些常用的功能封装成组件,通过组合这些组件进行系统的开发。
组件的复用可以提高开发效率和代码的可维护性。
2.3 微服务架构•微服务架构是一种将应用拆分成多个小的、独立的服务的架构方式。
每个服务可以独立部署和扩展,通过网络进行通信。
这样的架构可以实现聚合原理,提高系统的可伸缩性和可维护性。
3. 融合原理的应用•融合原理是指将多个不同的系统、模块或对象融合在一起形成一个整体。
在软件开发中,融合原理的应用可以提高系统的功能性和扩展性。
•融合原理的应用可以通过以下方式实现:3.1 数据融合•将来自不同数据源的数据进行整合和融合,形成一个统一的数据集合。
耦合分析通常分两种方法:强耦合(或称紧耦合)和弱耦合(或称松耦合)。
第一种方法通过单元矩阵或荷载向量把耦合作用构造到控制方程中,然后对控制方程直接求解。
第二种方法是在每一步内分别对流体动力方程和结构动力方程一次求解,通过把第一个物理场的结果作为外荷载加于第二个物理场来实现两个场的耦合。
对于强耦合,其主要缺点就是在构造控制方程过程中常常不得不对问题进行某些简化,计算准确程度较难保证。
对于弱耦合,其优点是可以重新利用现有的通用流体和结构软件,并且可以分别对每一个软件单独地制定合适的求解方法,缺点是计算过程比较复杂。
强耦合比较适用于对耦合场的理论分析;弱耦合比较适用于对耦合场的数值计算。
---------------引自《弱耦合算法的实现及其应用》王彬工程力学2008强耦合:固体(实际是弹性体)的变化引起的惯性力都需要考虑弱耦合:流体与固体相当于分开,流体受到的载荷由固体变形折算LS-DYNA可以支持平行运算,可以针对不同的系统(UNIX、Linux、Windows2000)进行平行处理运算,包含MPP (Massively Parallel)、SMP(Share Memory Parallel)。
透过以下文章您可以更深入的了解,LS-DYNA是如何做平行运算。
$13.2.1 LS-DYNA平行运算功能应用于电子产品结构分析$13.2.1.1 前言随着信息科技的进步,今日市面上个人计算机效能已有大幅度的提升。
以往许多只能依赖工作站执行的程序,皆可轻而易举地在个人PC上执行完成。
尽管如此,当面对一个庞大的程序时,工程师无不希望能有更快速有效率的执行环境。
因此,PC Cluster(PC 群组)的概念被提出之后,大型的程序设计纷纷采用这种方式以提高效率。
虽然每台PC个别的计算效率远低于大型计算机,但是PC 群组的整体效能却可比拟大型计算机甚至超越大型计算机。
平行运算实际上已经发展多年,而近年来也因为PC Cluster 成本低,效能渐渐可以超过大型计算机,于是被大量采用。
(模块结构良好,高内聚,松耦合)、详细的、结构化设计、程序内聚:一个模块内各个元素彼此结合的紧密程度。
耦合:一个软件结构内不同模块之间互连程度的度量。
我们一直追求着,高内聚,低耦合。
对于低耦合的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
在一个模块内,让每个元素之间都尽可能的紧密相连。
也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。
如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。
内聚和耦合,包含了横向和纵向的关系。
功能内聚和数据耦合,是我们需要达成的目标。
横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。
人们不易实现松耦合,因为,孤独的模块毫无意义,只有模块间的相互协调地工作,才能实现系统的目的。
而对于模块间的相互关系的设计,没有一定的经验是难以把握。
耦合的强度依赖于:(1)一个模块对另一个模块的调用;(2)一个模块向另一个模块传递的数据量;(3)一个模块施加到另一个模块的控制的多少;(4)模块之间接口的复杂程度。
等等。
“强内聚、松耦合”对于程序编写分工、程序的可维护性以及测试都有重要的关系,如:从设计角度来看,在“强内聚、松耦合”的指导下进行的设计得到的程序模块,符合项目管理的WBS (工作分解结构)的要求,其相对独立的模块可以分配到具体的程序员进行开发,另外,程序编码外包也必须建立在这种原则的设计之下;从程序生命期角度来看,它有利于提高程序质量,特别是方便于程序的日后维护,即程序模块的相对独立性是可维护性的保证;再从测试角度来看,符合“强内聚、松耦合”的程序,易于对局部(模块)进行黑盒测试,也易于编写测试用的“桩”和“驱动”。
“强内聚、松耦合”也是对组织结构的要求,项目组分为几个小组(正式的或非正式的),各小组的工作应是高度相关的,各小组之间的工作应尽量是较少相关或有明确的接口,从而减少沟通成本。
理解软件设计中的耦合和内聚关系在软件设计中,耦合和内聚是两个非常重要的概念。
耦合关系指的是模块之间的依赖程度,而内聚关系指的是模块内部元素之间的联系程度。
理解这两者之间的关系对于设计高质量的软件系统至关重要。
1. 耦合关系耦合关系描述了模块之间的相互依赖程度。
耦合低意味着模块之间相对独立,彼此不太依赖;耦合高则表示模块之间紧密依赖,一个模块的改动会影响到其他模块。
耦合关系可以分为松耦合和紧耦合两种类型。
1.1 松耦合在松耦合的关系中,模块之间的依赖较低,一个模块的变化对其他模块的影响较小。
这种情况下,模块之间的解耦程度高,模块可以独立进行开发和测试。
松耦合关系有助于提高代码的可维护性和重用性。
例如,在一个松耦合的系统中,模块A通过接口与模块B通信,模块A只需要知道接口的定义,而不需要关心具体的实现。
这样,当模块B发生改变时,只需要保持接口的兼容性,而无需修改模块A的代码。
1.2 紧耦合相对于松耦合,紧耦合的关系表示模块之间的依赖程度较高。
紧耦合会增加代码的复杂性,降低代码的可维护性和可扩展性。
当一个模块发生变化时,紧耦合的关系会波及到其他依赖它的模块。
例如,如果一个模块直接依赖于另一个模块的实现细节,当被依赖的模块发生改变时,依赖它的模块也需要进行相应的修改。
这种紧耦合会带来代码的脆弱性,使系统更加容易出现bug。
2. 内聚关系内聚关系描述了模块内部元素之间的联系程度。
内聚高意味着模块内的元素相互关联紧密,模块内的功能和责任相似;内聚低表示模块内的元素关联较弱,功能和责任不一致。
高内聚有助于提高模块的可读性和可维护性。
2.1 高内聚在高内聚的关系下,模块内的元素彼此关联紧密,协同工作以实现一个明确的目标。
高内聚可以提高代码的可读性和可维护性,因为相关的功能和责任集中在一个模块中。
例如,在一个高内聚的模块中,相关的函数和数据结构组织在一起,形成一个逻辑上的整体。
这样的模块具有清晰的功能和职责,易于理解和修改。
松耦合和紧耦合的架构设计、性能对比
在最近的一次大数据技术讨论会上,有一家公司的技术高管谈到松耦合和紧耦合的性能表现的话题。
正好Laxcus大数据管理系统的设计,从0.x、1.x到2.x版本,也经历了从紧耦合到松耦合的发展过程。
做为亲历者,对这两种架构的设计和运行效果,我们有清楚的了解和认识。
下面就说一说这件事。
写此博文,也希望给做系统设计的兄弟们,尤其是做高并发、复杂数据计算的同行提供一点参考。
先说紧耦合,这种架构是我们在Laxcus0.x、1.x中采用的。
如下图所示,紧耦合架构本质是一个Client/Server模型。
客户机发起请求给服务器,服务器收到,根据请求做出应答,然后反馈给客户机。
这种架构最典型的应用就是我们每天都用到的WEB服务。
优点嘛,就是简单。
架构简单、设计简单、开发周期短、能够快速投入部署和应用。
在Laxcus集群的早期运行中,这些特点都得到有力的验证。
紧耦合架构
但是到了后期,随着Laxcus集群规模的不断扩大,访问量的不断增加,尤其是数据计算量、计算时间成倍数的增长后,紧耦合架构渐渐不堪重负,缺点开始不断暴露出来,主要有以下几个方面:
1.无法支持大规模的计算业务。
因为大数据业务对计算机资源占比普遍很大,导致多任务并行能力有限。
举个例子,我们曾在一台Pentium IV
2.G+2G的机器上测试一项小规模的数据处理业务。
当并行任务量达到100多个的时候,计算机已经发生超载现象。
2.计算机载荷无法控制。
换句话说,就是计算机不能控制超载现象,而超载对硬件伤害非常大,这会严重降低计算机稳定运行能力和使用寿命。
3.任务执行过程中管理难度大。
任务在执行过程中不受管控。
4.对网络资源消耗大。
同步操作在数据发送和数据返回之间,有很大一段是空闲的,这种空闲占用是对网络资源的极大浪费。
5.安全控制力度差。
因为服务器直接暴露给客户机,容易引发网络攻击行为。
6.程序代码之间关联度过高,不利于模块化处理。
7.以上现象最终导致系统稳定性变差。
这些问题出现后,我们开始考虑修改系统设计。
经过多番考量、比较、权衡之后,我们决定改用松耦合架构重新规划系统设计。
新框架是在原来Client/Server模型之上的改进,即在Client/Server模型之间加入一个代理(Agent),把CS模型变成CAS模型。
在新的架构下,客户机的角色不变,代理服务器承担起与客户机通信,和对客户机的识别判断工作,服务器位于代理服务器后面,对客户机来说不可见,它只负责数据处理工作。
另外我们也把CS模型的同步操作改为CAS的代理处理。
在设计新架构的同时,我们还发现,如果要适应松耦合架构,原来在紧耦合架构下运行的程序代码,因为现在的工作方式发生了发生了变化,它们几乎都要重写。
这可是一个庞大的工程,需要消耗大量的人力、时间去修改和调试。
所以我们在松耦合架构之上,结合代理
服务器,又设计了一套Invoke/Produce机制。
这是另一种代理方案,是针对数据处理进行抽象化处理和分组分级管理。
原来的数据处理和业务逻辑套用这套机制后,程序代码基本不用修改,转移到CAS模型上运行就可以了。
松耦合架构
新架构设计和代码修改完成后,我们在原来的集群上,和紧耦合架构做了各种对比测试。
结果表现是出其的好,不仅解决了紧耦合架构上存在的所有问题,而且其中很多技术指标还超出了我们的预估,主要表现以下一些方面:
1.多任务并行处理能力获得极大提升。
同样是上述那个数据处理,紧耦合架构只能支持最大约100多个并行,而转到松耦合架构上,达到了8700多个。
这还只是在Pentium IV
2.0芯片上的表现,放到Core2平台,并行处理任务很轻松地超过10000个。
2.实现负载自适应机制。
(根据当时运行环境,松耦合架构分配并行工作任务,避免超载现象)。
3.实现了运行任务的随机控制。
(松耦合架构对运行中的工作任务进行随机调整和控制,进一步避免了持续超载现象)。
4.基本杜绝了网络攻击行为。
由于代理服务器的隔绝和筛查作用,同时结合其它安全管理手段,外部攻击在代理服务器处就被识别和过滤掉了,这样就保护了后面的服务器不受影响。
5.Invoke/Produce机制改善了程序结构的模块化,有利于实现复杂的数据业务处理。
6.异步操作减少了网络资源消耗和操作关联。
7.综合以上措施,它们共同增强了系统稳定性。
最后用一张表格对两种架构做个对比,做为两种架构性能特点的总结。
有关Laxcus详细介绍,请见《Laxcus大数据管理系统》一文。
紧耦合架构松耦合架构
工作方式同步异步
程序关联依赖强弱
业务逻辑关系集中控制分散控制
设计难度容易比较复杂
响应能力快和并行工作量成反比
时效表现实时无要求
业务适用范围简单计算复杂计算
安全弱强
应用领域小规模并行处理环境大规模、超大规模并行处理环境系统稳定性弱强。