精华内容
下载资源
问答
  • 为了提高制造业企业的绩效管理水平,在分析有关系统动力学和平衡计分卡相结合的研究基础上,给出一种动态平衡计分卡方法的具体实施步骤;并以 某制造业企业为例建立适合企业自身特点的动态平衡计分卡,为企业建立一套...
  • 风机调压等技术的特点和优势,形成了气体流场动态平衡多点调控技术,于回采工作面、上覆采空区、灾变区域之间实现气体流场的"动态平衡",达到抑制有害气体侵入、减少采空区供氧的目的,通过在现场的实际应用,取得了良好...
  • 动态平衡状态(DES)理论是一种用于控制系统的新颖分析方法。 人们认为控制系统的输入直接控制的是平衡状态,而不是系统的输出或状态。 状态在系统结构矩阵的约束下移动。 如果系统结构矩阵稳定,则状态将相对于其...
  • 双轮动态平衡移动机器人系统属于典型的自平衡控制系,系统的重心在上,支点在下,静态为不稳定状态,动态时以系统在垂直方向上的角度为控制对象,使其控制在平衡状态附近一定的范围内。由于机器人体积小,运动灵活,...
  • 论人体生命动态平衡

    千次阅读 2009-08-08 21:24:00
    论人体生命动态平衡一、人体生命动态平衡概论人体生命是一个相对恒定的系统,人在一定的环境中生存,人体的各项生理活动都受着外界环境的影响,同时,人体通过各种生命活动影响着环境,人与环境组成一个相对稳定的...

     

    论人体生命动态平衡

    一、人体生命动态平衡概论

    人体生命是一个相对恒定的系统,人在一定的环境中生存,人体的各项生理活动都受着外界环境的影响,同时,人体通过各种生命活动影响着环境,人与环境组成一个相对稳定的动态平衡系统,而人体生命自身就是一个庞大动态平衡体系,人体生命的每一个生理、化学、物理过程都是动态平衡过程。“内环境的各种物理、化学性质是保持相对稳定的,称为内环境的稳态。所谓保持相对稳定或稳态,是指在正常生理情况下内环境的各中理化性质只在很小的范围内发生变动”[1]。这种内环境的相对稳定状态,其实就是人体动态平衡的平衡态,这种平衡态是相对稳定的,人才能保持健康状态,人体生命动态平衡的平衡态一旦失去平衡,人体生命活动就会异常而产生疾病。‘‘疾病是指在一定条件下由病因与机体相互作用而产生的一个损伤与抗损伤争的有规律的过程,体内有一系列功能代谢和形态的改变,临床出现许多不同的症状与体征,机体与外环境间的协调发展障碍……疾病是机体在一定的条件下受病因损害作用后,因机体自稳调节紊乱而发生的异常生命活动过程。[2]

    人体生命动态平衡有以下几大特点。(一)动态,变化的运动性,人体是不停变化、运动着的有机体。(二)平衡,相对的稳定性,人体总是在某种水平下保持相对的稳定性。(三)系统性,人体整体是个大系统,其中又分许许多多小系统,每个系统都处在动态平衡的运动中。(四)层次性,由于人体本身具有层次性,故各个人体生命动态平衡体系都具有层次性。(五)平衡态趋向性,每一个动态平衡体系,在失去平衡后,都有向平衡态恢复的趋向性,即平衡态趋向性。(六)连续性,人体生命动态平衡体系中的每一个动态平衡运动都是连续的,旧的平衡态被打破了。新的平衡态就建立了,这个过程在时间上是连续的。(七)对立统一性。人体生命动态平衡是由对立统一的动态因子组成。动态因子可是两方面的,也可是多方面的因素。(八)完整性。每一个动态平衡系统都具有完整性,完整性是其存在的前提,没有完整性就无所谓生命动态平衡体系了。

    人体生命动态平衡的分类。(一)人体与环境的动态平衡系统。人体生命动态平衡在自身动态平衡运动的同时,它还和外界环境共同构成一个动态平衡系统,这个动态平衡系统中,人与环境相适应,互相影响、互相作用。(二)人体生命自身动态平衡系统。人体是一个庞大的动态平衡系统,这个系统又是由许多个子系统的动态平衡运动组成,每一个子系统的动态平衡运动过程又都是互相联系、互相影响、互相作用、互相协调的,它们共同组成人体生命动态平衡体系。(三)人体生命动态平衡系统。“在机体处于不同的生理情况时,或当外界环境发生改变时,体内一些器官、组织的功能活动会发生相应的改变,最后使机体能适应各种不同的生理情况和外界环境的变化,也可使被扰乱的内环境重新得到恢复”[3].人体生命动态平衡的平衡状态的调节可分三个体系:(1)神经调节动态平衡体系,机体的许多生理功能是神经系统的活动来调节的。[4](2)体液调节动态平衡体系。“体液调节是指体内的一些细胞能生成并分泌某些特殊的化学物质,后者经由体液运输到达全身的组织细胞或某些特殊组织细胞,通过作用于细胞上相应的受体,对这些细胞活动进行调节”[5]。(3)自身调节动态平衡体系。“许多组织细胞自身也能对周围环境变化发生适应性的反应,这种反映是组织、细胞本身的生理特征,并不依赖于外来的神经和体液因素的作用,称为自身调节。”[6](四)人体生命动态平衡体系中的几个典型的动态平衡运动过程。(1)氧气、二氧化碳的动态平衡;(2)物质代谢的动态平衡;(3)细胞调亡,生成的动态平衡;(4)凝血与抗凝血动态平平衡;(5)血压的动态平衡;(6)水电解质代谢的动态平衡;(7)酸碱代谢的动态平衡;(8)能量代谢的动态平衡;(9)产热与散热的动态平衡;(10)尿液生成的动态平衡;(11)胆红素代谢的动态平衡。

    人体生命动态平衡的临床应用。人体生命动态平衡临床应用非常广泛,可以用到各个疾病的每一个环节,现介绍最为常见几个应用:(1)危重病人生命状态的动态平衡观察与治疗;(2)高血压病人血压动态平衡监测与治疗;(3)糖尿病人血糖动态平衡监测与治疗;(4)人体生命动态平衡模型的建立,监测人体生命健康状态;(5)人体生命动态平衡诊断系统和治疗系统。(6)癌病人的动态平衡观察与治疗;(7)大失血病人的动态平衡观察与治疗;(8)婴幼儿疾病的动态平衡的观察与治疗;(9)妇女内分泌失衡的动态平衡治疗。 二、人体生命动态平衡的特点

    (一)人体生命动态平衡特点首先人体是动态的,具有变化的运动性。人体从整体上,是在环境中不断运动变化的,即动态的,人对外界环境刺激的反应是动态的,人对外的一切生命活动都动态的。就人体本身而言,一切生理转化、物理活动都是动态的,人一生中呼吸运动是动态的,每时每刻都是在变化;心跳运动亦是动态的,每一次心跳都是不同的、变化的。人体细胞每时每刻都处在动态的变化中,吸收营养物质,排泄有害物质,生长、发育、消亡,细胞由产生到死亡都是动态的。人从出生、长生、发育、成熟、衰老到死亡整个过程都是动态变化的,“内环境的稳态,并不是说内环境的理化性质是静止不变的。相反,由于细胞不断进行代谢活动就要不断地与细胞外界发生物质交换,因此也就会不断地扰乱或破坏内环境的稳态,另外外界环境因素的改变也可影响内环境的稳态。[7]动态的变化性是人体生命动态平衡的一个典型特点。

    (二)人体生命动态平衡其次是人体的平衡,相对的稳定性。人体的平衡态,即相对稳定性,是人能够存在和正常活动的前提条件,只有平衡,生命才能够对外活动和维护自身的活动。平衡态是生命活动的目标和结果,生命的每一项 生理、生化活动都是以达到机体的平衡态为目标的。同时平衡态又是生命每一项生理、生化活动的结果。生命的过程总由“不平衡—平衡—不平衡—再平衡”。不平衡使生命不为发展,平衡使生命不断完善,生命的平衡态是动态平衡的典型特点之一。

    (三)人体生命动态平衡特点之三是人体的系统性。人体是个大系统,其中又可分为许多子系统,子系统又可分次子系统,每个系统都处在动态平衡的运动中。例如人体可分为呼吸系统、循环系统、消化系统、泌尿系统、血液系统、内分泌系统等。

    (四)人体生命动态平衡特点之四是层次性。人体的层次性,正如人体的系统性一样。每一个系统中可分许多的子系统,有了层次性,人体生命动态平衡运动就会从低层次向高层次潜跃。人体的生命状态就会从这个状态潜跃到另一个状态,即从这个层次跨越到另一个层次。人体生命可分为健康、亚健康和疾病状态。每种状态的动态平衡不是固定不变化的,他们是互相转变的,受外界环境影响或自身平衡紊乱,则健康状态可潜跃为亚健康或疾病状态,这就是层次的潜跃。

    (五)人体生命动态平衡特点之五平衡态的趋向性。动态平衡的平衡态是指动态平衡运动相对稳定的状态,即人体内环境的稳态。平衡态下有一个平衡点,即动态平衡绝对值点,这个点是相对固定的。如“体温维护在37℃左右,血浆PH维持在7.4左右等等。临床上给病人作各种实验检查,也就是检测有关的生理指标是否在正常的变动范围之内(即平衡态内),或者偏离正常范围有多远。在高等动物中,内环境的稳态是细胞维持正常生理功能的必要条件,也是机体维护正常生命活动的必要条件”。[8]每一个动态平衡体系,在失去平衡后,都在向平衡态恢复的趋向性,即平衡态的趋向性。“体内各个器官组织的功能往往都是从某个方面参与维护内环境稳态的,例如肺的呼吸活动可以从外界环境摄取细胞代谢所需的氧气,排出代谢产生的二氧化碳,维护细胞外血液中氧气和二氧化碳分压的稳态。”[9]

    (六)人体生命动态平衡的特点之六,机体的连续性。人体生命动态平衡体系中的每一个动态平衡运动都是连续的,人体生命的每一个环节都是完整的、统一的,都是连续的。旧的平衡态被打破了,新的平稀态就建立了起来,整个过程在时间上连续的。生命动态平衡任何一个环节失去了连续性,那么这个平衡体系就会受到破坏,则机体就会产生疾病。

    (七)人体生命动态平衡的特点之七,对立统一性。人体生命动态平衡是由对立统一的动态因子组成的。动态因子可以是对立的两个方面也可以是多个方面的组合,动态因子是对立统一的,共同组成了人体的动态平衡体系。动态因子是指能够引起动态平衡态改变的因系或能够维护平衡态的恒定存在的因系。中医上的阴阳理论,就是把阴阳作为动态因子,使人体在阴阳两方面达到动态平衡的对立统一。

    (八)人体生命动态平衡特点之八,完整性。人体生命动态平衡系统是一个完整的体系,其完整性是其存在的前提,因为它是一个完整的系统,所以无论它怎么变化都不会出现平衡的缺失,人体是一个整体,任何一处的缺失,都会影响动态平衡的完整性,都不是一个完整性的动态平衡系统。

    三、人体生命动态平衡的分类

    (一)人体与环境的动态平衡系统。人体生命与之生存的环境组成了一个动态平衡系统。一方面人体从环境中摄取氧气、水和有机物质,维护生命的存在,同时又排出人体排泄物;另一方面环境的质量又影响着人体生命的健康,人体与环境是互相作用、互相影响、共同依存的关系。例如人饮食结构的改变,或食物成份的改变,都可引起人体正常的生理功能的改变;同样人类的行为亦直接影响着环境,过渡的资源开发,有毒物质的排放、水的污染、空气的污染都影响着人体环境动态平衡系统。

    (二)人体生命自身动态平衡系统。人体生命自身动态平衡系统是一个庞大的动态平衡体系,它由组成人体的诸多子系统构成,每个子系统又是一个动态平衡系统。人体的各种生命活动都在动态中进行,并通过调节达到“以平为期”为的平衡态。中医学非常重视阴阳气血的动态平衡。人体阴阳平衡是健康长寿、养生防病的前提。阴阳有着彼此消长,相互转化的关系,二者相互对立又相互制约。只有机体阴阳达到动态的平衡,人体能保持健康稳定的状态。如夏天阳盛气炎,易出现热迫汗出,耗伤元阴,此时可服用清凉药膳,如绿豆汤、荷叶汤、西瓜粥等以保持体内的阴阳平衡。中药对人体的治疗也是本着阴阳平衡的原则,热病用寒药,寒病用热法,从而达到机体的阴阳平衡,使疾病不生。气血平衡是人体生命活动物质基础气可行血、生血,血可载气、裹气,二都如影相随同行同止。若气血动态平衡失调则会出现气血不生、不行等病理变化,从而引起脏腑,经络功能失调而发病,保持气血的正常化生和流通,是维系健康的必要条件,调整气血也就成为防病治病的重要方法。

    (三)人体生命动态平衡体系。人体生命动态平衡的平衡态的调节可分为三个体系:

    1、神经调节的动态平衡体系。机体的许多生理功能都是由神经系统的活动来调节的。神经系统通过反射活动来调节机体,使之保持动态平衡的平衡态。例如“在生理情况下,动脉血压是保持相对稳定的,当某种原因使动脉血压高于正常时,分布在主动脉弓和颈动脉窦的动脉压力感受器就能感受这种血压的变化,并将血压的变化转为一定的神经冲动,后都通过传入神经纤维到达延髓的心血管中枢,心血管中枢对传入的神经信号进行分析,然后通过迷生神经和交感神经传出纤维发出指令,改变心脏和血管的活动,使动脉血压回降到原先的水平。这个反射称为动脉压力感受性反射,也是一个典型的负反馈调控的例子。对于维护动脉血压的稳态起着重要作用。”[10]

    2、体液调节的动态平衡体系。体液调节是通过体液中的某种特殊的化学物质作用于靶细胞或组织,对细胞的活动进行调节,从而对机体某系统的动态平衡的平衡态进行调节。“例如胰岛的B细胞分泌胰岛素,是一种调节全身组织细胞糖代谢的激素。能促进细胞对葡萄糖的摄取取和利用,在维持血浆葡萄糖浓度的稳定中起重要的作用。”[11]

    3、自身调节动态平衡体系。许多细胞、组织自身具有对外界环境变化发生适应性的反应,从而来调节动态平衡体系保持平衡态。“例如血管平滑肌在受到牵拉刺激时,会发生收缩反应,当小动脉的灌注压力升高时,对血管壁的牵张刺激增强,小动脉的血管平滑机就发生收缩,使小动脉口径缩小,因此当小动脉的灌注压力升高时,其血流量不断增大。这种自身调节对于维持局部组织血流量的稳态起一定的作用”。[12]

    (四)人体生命动态平衡体系中几个典型的动态平衡运动过程。

    1、氧气和二氧化碳代谢的动态平衡。人体氧气、二氧化碳的代谢过程,即机体与外界环境之间气体交换的过程称为呼吸。由三个环节组成,外呼吸或肺呼吸;气体在血液中的运输;内呼吸或组织呼吸。其中肺通气一肺与外界环境之间的三体交换过程;肺换气—肺泡与肺毛细血管血液之间的气体交换过程以及组织换气—组织毛血管液与组织细胞之间的气体交换过程,都是动态平衡过程。氧气、二氧化碳的代谢都处在动态变化中,只有正常的氧气给予和二氧化碳排出,才能维护机体血气平衡和内环境的平衡态。任何一个环节的改变,人体都面临着缺氧和二氧化碳储留,影响到整个生命的安全。

    2、物质代谢的动态平衡。“生命活动的基本特征之一是生物体内各种物质按一定规律不断进行的新陈代谢,以实现生物体与环境的物质交换、自我更新以及机体内环境的相对稳定。物质代谢包括合成代谢与分解代谢两个方面并处于动态平衡之中.”[13]物质代谢的新陈代谢过程是最为典型的动态平衡。其中包括糖代谢动态平衡、脂类代谢动态平衡、生物氧化动态平衡、氨基酸代谢动态平衡、核苷酸代谢动态平衡等几类重要物质的代谢过程。其详论见的以后章节。

    3、细胞生成、调亡的动态平衡。细胞是生命活动的最基本的单位它的生成发和调亡直接影响着人体生命动态平衡的平衡态。每种细胞都有各自不同的寿命,其更新都处在一定动态平衡中,新细胞的生成与旧细胞衰亡必须保持一种平衡态,人体才能维护正常生命活动。

    4、凝血与抗凝血的动态平衡。“机体的凝血与抗凝血功能平稀是机体重要的防御功能之一。正常机体的止血包括三个过程,即①血管的痉挛;②血小板的激活、粘附、聚集于损伤血管的基底膜,并形成松散的血小板血栓;③由于凝血系统的激活在局部引起凝固,形成纤维护蛋白凝块。这样一来,即可达到局部止血的功能,又可防止凝血过程的扩大,保护正常的血液循环。’’[14]“正常机体的凝血、抗凝血、纤溶系统之间处于动态平衡,血管内及血小板等也参与其中,从而保证机体的止血和血流通畅……如果凝血与抗凝血功能紊乱,临床上出现血栓形成倾向和出血倾向。”[15]

    5、血压的动态平衡。人体血压每时每刻都处在动态平衡中,血压动态平衡态的维持受多种因不经的影响。血压的形成是心脏的搏动力和外同血管的弹性组成的。同时又受受经系统、体淤系统、自身调节系统的调节。外界环境亦直接影响血压的变化。如人活动后,血压会上升,静止时血压趋于平衡。降压药物也可通过各种途径影响人体血压的动态平衡。

    6、水、电解质代谢的动态平衡。“水是机体的重要组部成份和生命活动的必需物质,人体的新陈代谢是在体液环境中进行了。体液是由水和溶解于其中的电解质低分子有机化合物以及蛋白质等组成,广泛分布于组织细胞内。正常人每天水的报入和排出处于动态平衡之中。要维护水分出入量的平衡,每天需水约1500m-2000m”。水、电解质代谢的动态平衡是维持内环境相对稳定必须。钾、钠、镁、氯等电解质代谢的动态平衡后节译论。

    7、酸碱代谢动态平衡。“人体的体液环境必须具有适宜的酸碱度才能维持正常的代谢和生理功能,正常人体血浆的酸碱度在范围很窄的弱碱性环境内变动,用动脉码调制血PH表示是7.35-7.45,平均值为7.40。机体这种处理酸碱物质的含意和比例,以维持PH值的恒定范围内的过程称为酸碱平衡,这对保证生命活动的正常进行至关重要。”一旦发生酸碱平衡紊乱就会使病情更加严重和复杂。机体对体液酸碱度的调节主要通过体淤的缓冲吸肺和肾对酸碱平衡的调节维持酸碱代谢动态平衡的平衡态。

    能量代谢的动态平衡。能量由产生、贮存到释放、转移、利用的过程既能量的代谢,其动态平衡受股肉活动精料活动食物的特殊动力作用及环境温度的影响。能量灭源于食物的营养功能,随着物质代谢的过程而被贮存、释放、转移和利用。基础代谢是能量代谢动态平衡的平衡态。

    9、产热与散热的动态平衡。人和动物的机体都具有一定的温度,即体温、高等动物和以深部温度是相对稳定的,正常的体温是机体进行新陈代谢和生命活动的必要条件。“恒温动物之所以能维护持相对稳定的体温,就是因为体温调节机构的控制下,产热和散热两个生理过程能得动态平衡的结果”。[16]

    10、尿液生生成的动态平衡。肾脏是机体主要的排泄器官,通过尿的生成和排出的动态平衡,肾脏排出机体代谢终产物吸进机体过剩的物质和异物,调节水和电解质平衡,调节体液渗透后,体液量和电解质浓度,吸调节酸碱平衡。肾内自身调节的球管平衡是个典型的动态平衡,对保持尿量和尿钠的相对稳定具有重要的意义。

    11、胆红素代谢动态平衡。正常情况下,胆红素进入与离开血液循环保持动态平衡,故血中胆红素的浓度保持相对恒定。胆红素灭源与去路发生障碍,会使血中胆红互派 浓度偏离平衡态,而导致黄疸的形成。

    四、人体生命动态平衡的临床应用

    人体生命动态平衡在临床上应用十分广泛,几乎乃至各科各类疾病都可能用动态平衡方法和思路去解决,生命动态平衡甚至可以用到各个疾病的每一个环节。现将介绍最为常见几个临床应用。

    (一)危重病人生命状态动态平衡观察与治疗。在重症监护室内危重病人生命状态的观察与监测都处在动态平衡中,每一项监测指标的变化,都直接影响看生命动态平衡的生命平衡态的变化,亦是危重病人动态治疗的关键现代化的监测仪器为危重病人的动态平衡监测和治疗提供了良好的条件为打开绿色生命通道提供很好的帮助。组生命基本状态的指标,直参与生命动态平衡动动,做动态因子,影响作用看生命动态平衡的平衡态。血压、心率、呼吸、体温、瞳孔、精神状态等的动态监测是危重病人动态治疗的关键。

    (二)高血压病人血压的动态平衡监测与治疗。高血压病已成为现代社会化较棘手的疾病,其发病率高,治愈率低,发病率龄日驱年轻化。高血压病乃终身疾病,且病情变化快,引起的并发症多,危险较大。如何更好的监测和治疗高血压病人的血压呢?对高血压病的血压进行动态平衡监测和治疗是最为先进的方法建立血压动态平衡监测系统和高血压动态平衡治疗系统是未来治疗高血压病发展方向。通过系统对血压调定点的监测,进行系统的调近代来调整血压的平衡态。另外,运动态平衡理论,还可以针对引起血压变化的具体环节进行调节、调整。总之,高血压病血压动态平衡监测和治疗必将揭开高血压病治疗的新篇章。

    (三)糖尿病血糖动态平衡监测与治疗。糖尿病发病率出出现日益增多的趋势,临床出现了血糖控制难,波动大,降糖药繁杂,疗效差,严重并发证增多的现状。糖尿病血糖动态平衡监测与治疗将为糖尿病的治疗提供一片新天地。血血态平衡监测仪和血糖动态平衡治疗仪即将糖尿病观测与治疗的主流。血糖动态平衡监测系统还将针对血糖动态平衡代谢的每一个环节进行合理、安全、高效的调节、调整,使糖尿病的治疗带灭福音,其工作原理就是以血糖正常值作为调定点,动态调节胰钫岛素和释放,灭控制血糖。

    (四)人体生命动态平衡模型的建立。建立人体生命动态平衡模型,对研究人体生命状态,即健康状态、亚健康状态、疾病状态,认识疾病的性质,治疗疾病具有重要的意义。人体生命动态平衡模型需大量的关于人体生命指标的数据,把这些数据输入人体生命动态平衡模型系统中,建立起一个完整的动态模型,当再次输病人或健康人的监测指标,就可以模拟出该人是处在什么状态中,健康、亚健康还是疾病以及疾病的动态,并给出治疗方案和保健康复指族。

    (五)人体生命动态平衡诊断系统或治疗系统。建立起人体生命动态平衡模型,输入相关的疾病信息,就可以再建立人体生命动一言以蔽态平衡诊断系统。有了诊断系统会对临床医学的诊断水平指高一大步,对提高诊断率有很大帮助。疾病的诊断加强了,治疗同时也可提高。把病人的各种指棕漠土输入到人体生命动态平衡治疗系统中,系统会自根据动态平衡的平衡态调定点指示,给出相应的治疗方案和治疗措施。人体生命动态平衡诊断系统和治疗系统会在大提高临床诊断和治疗的准确率和治愈率。

    (六)恶性肿瘤的动态平衡观察和治疗。恶性肿瘤是当今世界上最为疾手的疾病,目前来说尚未有特效的治疗方法无论是化疗、放疗还是手术都不能根除并延长患者的生命。恶性肿瘤患者的生存性,是目前研究的重点,首先应该让病人话看,才能说其他的。而恶性肿瘤的动态平衡观察和治疗将是未来癌症治疗的方向。一方面与Ca共存,让患者活着,然后再提高其生存质量;另一方面通过对Ca肿动态平衡监测,而判断患者整体生命动态平衡状态,灭决定什么样的治疗方法治疗上可通过加强患者自身动态平衡的方法提高其生存机会。亦可口加强其平衡态的方法让患者与Ca共存,延长生命,提高生活质量,Ca肿动态平衡生成过程的干预,可预防Ca的发生,是Ca预防前提。

    (七)大失血病人的动态平衡观察与治疗。临床上大失血病人由于失血量过移,机体各项生命指棕漠土会因脏器缺血发生重大的变化,而机体动态平衡状态会发生巨大的潜变。我们可以运用动态平衡理论去动态观察患者基本生命状态,及时补充血溶量吸收有效成份,使患者胜至于因失血过多而导致生命动态平衡失去平衡态,而危及生命。大失血的补液过程,其实就是通过动态的观察,对机体体液的有效成份进行动态平衡调整。

    (八)婴幼儿疾病的动态平衡观察与治疗。对于婴幼儿由于机体动态平衡体系发育尚不完善,各项机能尚不充盈,故产生疾病,其动态平衡体系会与成人有所不同,因此对于婴幼儿疾病理久通过动态平衡观察,判断疾病的轻重与机体生命状态,来动态的治疗。

    (九)妇女内分泌失调态平衡治疗。临床上很多妇女全因为种种原因而造成内分泌动态平衡分泌紊乱,而导致精神失调、烦燥不安、月经失调、痛经、雀班、皮肝胆松驰等。妇女内分泌受“下丘脑—胰重体——卵巢轴系的调节,一旦其中某一环节受到影响或破坏,其内分泌都会出现紊乱。根据其动态平衡平衡态和动态因子的理论,针对性的调整平衡态,改变其动态因子,从而使其动态平衡恢复平衡态是治疗内分泌动态平衡失调的关键。

    内容摘要:人体生命动态平衡系统是人体生命运动的一种运动形式,它是一个相对恒定的系统,由动态因子和平衡态组成。具有以下特点:1、动态,变化的运动性;2、平衡,相对的稳定性;3、系统性;4、层次;5、平衡态的趋向性;6、连续性;7、对立统一性;8、完整性。可分为人与自然一并境的动态平衡系统和人自身的动态平衡系统。人体生命动态平衡体系由三个调节系统;1、神经调节动态平衡体系;2、体液调节动态平衡体系;3、自身调节动态平衡体系。几个典型动态平衡运动过程和人体生命动态平衡的临床应用。

    关键词:人体生命  动态平衡  平衡态

    (Emglish Summary)

    Flesh Anime Balance Scheme is a sport form  of  flesh anime sport。It is cointer stabilisation  scheme。It isbiildup dynamic faitor and balamcing。It’s features :1、dyhamic metabolie motility;2、balance counter stability;3、systanaticess;4、hierarchical;5、balancing running;6、consecutiveness;7、contagonism oneness;8、integrality。human and natural setting dynamic balance Flesh anime balame scheme have threeaccommodate scheme:1、neuroregulation scheme;2、humoral accommodate scheme;3、itself accommodate scheme。A few typical balance scheme sport  course and flesh anime balance scheme bedside app

    Keyword:Flesh anime balance scheme  balancing

    参考文献:

    1、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P3

    2、金惠铭主编·《病理生理学》·第6版·2004·人民卫生出版社  P5

    3、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P4

    4、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P4

    5、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P5

    6、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P5

    7、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P3

    8、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P3

    9、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P4

    10、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P5

    11、姚泰主编·《生理学》:第6版·2003·人民卫生出版社  P5

    12、周爱儒主编·《生物化学》第6版·2004·人民生院出版社  P75

    13、金惠铭主编·《病理生理学》·第6版·2004·人民卫生出版社  P58P1

    14、金惠铭主编·《病理生理学》·第6版·2004·人民卫生出版社  P58P1

    15、金惠铭主编·《病理生理学》·第6版·2004·人民卫生出版社  P15

    14、金惠铭主编·《病理生理学》·第6版·2004·人民卫生出版社  P51

    14、金惠铭主编·《病理生理学》·第6版·2004·人民卫生 出版社P208

    展开全文
  • 介绍一个分布式系统的论文 主要是讲动态负载平衡的 对写论文很有帮助
  • 论文研究-国民经济动态平衡与投资优化模型.pdf, “部门联系平衡法”,是美国著名经济学家W.Leontief所创立的“投入产出法”在研究国民经济综合平衡问题时的具体应用。作为一种利用现代数学和电子计算技术等科学技术,...
  • 是一个动态库,旨在通过在内部并行度(例如,内部)上动态重新分配计算资源来提高外部并行度(例如,MPI)的负载平衡,从而加快HPC混合应用程序(即两个并行度)的速度。 ,OpenMP)。 在运行时。 这种动态性使DLB...
  • 提出自治区域概念,表征服务流中需进化的服务或服务序列,运用动态工作流挖掘技术对相应XML标准的服务流日志进行在线应用挖掘,发现服务短缺和服务过剩的关键自治区域.通过管理agent对服务流同步器的配置,分裂服务...
  • STM32----FLASH掉电保存动态平衡方案

    千次阅读 2018-04-11 16:40:13
    stm32是支持对自身Flash(code区)进行读写的。所以,在某些需要掉电保存的场合,我们可以利用这一特性节省一个...在这种时候,就需要用到动态平衡的方法进行处理了。原理:一、Flash擦写寿命 根据网上查阅的资料,...

          stm32是支持对自身Flash(code区)进行读写的。所以,在某些需要掉电保存的场合,我们可以利用这一特性节省一个外部的Flash或者EEPROM,对数据进行保存。

         但是,如果需要经常性的保存数据,就会对固定地址的Flash进行频繁的擦写,大大损耗Flash的寿命。在这种时候,就需要用到动态平衡的方法进行处理了。原理:

    一、Flash擦写寿命

           根据网上查阅的资料,单个NOR Flash地址的寿命,是受擦写次数的影响的。再具体一点,单个地址上的每个位,分别独立。比如0x08011000这个地址,共有8个bit,假设我一直令这个地址的数据循环为0x01与0x00。那么bit0位就会一直被擦写。循环几万次后bit0位就有可能损坏而不能擦写。但是bit0损坏并不影响其他位的功能,比如bit1位,还是能正常使用。

    二、stm32读写NOR Flash

          stm32读写自身Flash是半字的,也就是说一次读或者写都是两个字节的。所以下面的标志域也好,数据域也好,都是按照半字为单位进行统计的。

    三、平衡方案


    假设我们打算在0x08001000这个地址开始,利用数据域为Count个半字大小的空间,进行数据存储。将Flash分为3个区域。

    1、初始化标志域

    2、标志域

    3、数据域

    (1)初始化标志域:用来存储起始地址(Addr),以及数据域的半字的个数(Count)。且在初始化时进行判断,当起始地址或者数据域个数发生变化,重新进行初始化。

    (2)标志域:标志域半字的个数 = 数据域半字个数除以16。每个标志域半字管理着16个数据半字。标志域半字里面的每一个bit,对应着数据的一个半字。比如标志域第一个半字为0x0001,代表着数据域的第一个半字已经被写过了。此时如果需要存储数据,应存储到数据域的第二个半字,且在存储完成后将标志域的第一个半字左移1位并+1,令其变为:0x0003。下一次,则应在数据域第三个半字进行存储数据,且存储完成后标志域变为:0x0007。

            这么做的目的,是平衡利用标志域的每一个bit,使它们擦写次数一致。

    (3)数据域:存储着我们想要掉电保存的数据。这个区域占用空间很大,每存储一次数据变换一次地址,直到整个数据域都被存储了一遍。

    (4)标志域与数据域对应关系:第一个标志域半字对应着前16个数据域半字,第二个对应着接下来的16个。以此类推。

            如起始地址为:0x08001000,那标志域的第一个半字地址为:0x08001006与0x08001007这两个字节(stm32读写半字)

            这个地址的数据假设为0x0001,即:0000 0000 0000 0001,这里的bit0为1,对应着数据域第一个半字地址,且为1则

            表示上次数据存储在第一个半字,bit1为0对应着数据域的第二个半字地址。以此类推bit15就对应着数据域第16个数据域

            半字。第二个标志域半字,它的bit0就对应着数据域的第17个半字,bit1对应第18个。。。。。。

    (5)假设从0x08018000这个地址开始,Count数量为16进行存储。存储了4次,第一次数据是0x1111,第二次是0x2222第三次0x3333,第四次0x4444,那么在Flash这些数据分布将如下:

            

    四、程序流程

    (1)初始化:

            1、读取Flash上的Addr与Count,与当前输入的Addr与Count对比,不一致则进行初始化。

            2、如果需要初始化,则将标志域所有半字清零,且将当前Addr与Count写进初始化标志域。

    (2)写数据:

            1、遍历标志域,判断是否存在不为0xffff的地址

            2、若是标志域所有地址都为0xffff,则清零标志域,数据存储在数据域第一个半字地址

            3、若是有标志域地址不为0xffff,则遍历出为0的最低位,然后将数据存储在对应的数据域半字地址。

    (3)读数据

            过程与写数据类似,目的在于读取出数据域中最晚存储的数据。

    五、代码

    /*****************************读写内部Flash部分代码***************************/

    #include  "bsp_stm32flash.h"
    
    //代码转自原子stm32战舰开发板
    //读半字
    u16 STMFLASH_ReadHalfWord(u32 faddr)
    {
    return *(vu16*)faddr;
    }
    
    //写16位数据,不校验
    void STMFLASH_Write_NoCheck(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)
    {
    	u16 i;
    	
    	 for(i=0;i<NumToWrite;i++)
    	{
    	  FLASH_ProgramHalfWord(WriteAddr,pBuffer[i]);
    	  WriteAddr+=2;//地址增加 2.
      }
    }
    
    #define STM_SECTOR_SIZE 1024 //字节
    
    u16 STMFLASH_BUF[STM_SECTOR_SIZE/2];//最多是2K字节
    
    
    //1, 该地址必须是用户代码区以外的地址。
    //2, 该地址必须是 2 的倍数。
    void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)	
    {
    	u32 secpos;	   //扇区地址
    	u16 secoff;	   //扇区内偏移地址(16位字计算)
    	u16 secremain; //扇区内剩余地址(16位字计算)	   
     	u16 i;    
    	u32 offaddr;   //去掉0X08000000后的地址
    	if(WriteAddr<STM32_FLASH_BASE||(WriteAddr>=(STM32_FLASH_BASE+1024*STM32_FLASH_SIZE)))return;//非法地址
    	FLASH_Unlock();						//解锁
    	offaddr=WriteAddr-STM32_FLASH_BASE;		//实际偏移地址.
    	secpos=offaddr/STM_SECTOR_SIZE;			//扇区地址  0~127 for STM32F103RBT6
    	secoff=(offaddr%STM_SECTOR_SIZE)/2;		//在扇区内的偏移(2个字节为基本单位.)
    	secremain=STM_SECTOR_SIZE/2-secoff;		//扇区剩余空间大小   
    	if(NumToWrite<=secremain)secremain=NumToWrite;//不大于该扇区范围
    	while(1) 
    	{	
    		STMFLASH_Read(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE,STMFLASH_BUF,STM_SECTOR_SIZE/2);//读出整个扇区的内容
    		for(i=0;i<secremain;i++)//校验数据
    		{
    			if(STMFLASH_BUF[secoff+i]!=0XFFFF)break;//需要擦除  	  
    		}
    		if(i<secremain)//需要擦除
    		{
    			FLASH_ErasePage(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE);//擦除这个扇区
    			for(i=0;i<secremain;i++)//复制
    			{
    				STMFLASH_BUF[i+secoff]=pBuffer[i];	  
    			}
    			STMFLASH_Write_NoCheck(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE,STMFLASH_BUF,STM_SECTOR_SIZE/2);//写入整个扇区  
    		}else STMFLASH_Write_NoCheck(WriteAddr,pBuffer,secremain);//写已经擦除了的,直接写入扇区剩余区间. 				   
    		if(NumToWrite==secremain)break;//写入结束了
    		else//写入未结束
    		{
    			secpos++;				//扇区地址增1
    			secoff=0;				//偏移位置为0 	 
    		   	pBuffer+=secremain;  	//指针偏移
    			WriteAddr+=secremain;	//写地址偏移	   
    		   	NumToWrite-=secremain;	//字节(16位)数递减
    			if(NumToWrite>(STM_SECTOR_SIZE/2))secremain=STM_SECTOR_SIZE/2;//下一个扇区还是写不完
    			else secremain=NumToWrite;//下一个扇区可以写完了
    		}	 
    	};	
    	FLASH_Lock();//上锁
    }
    
    
    
    
    //从指定地址开始读出指定长度的数据
    //ReadAddr:起始地址
    //pBuffer:数据指针
    //NumToWrite:半字(16位)数
    void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)   	
    {
    	u16 i;
    	for(i=0;i<NumToRead;i++)
    	{
    		pBuffer[i]=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节.
    		ReadAddr+=2;//偏移2个字节.	
    	}
    }

    /*******************头文件******************/

    #ifndef __bsp_stm32flash_H
    #define __bsp_stm32flash_H
    
    #include "stm32f10x.h"
    
    
    #define STM32_FLASH_SIZE 256 	 		//所选STM32的FLASH容量大小(单位为K)
    
    
    //FLASH起始地址
    #define STM32_FLASH_BASE 0x08000000 	//STM32 FLASH的起始地址
    
    u16 STMFLASH_ReadHalfWord(u32 faddr);		  //读出半字  
    void STMFLASH_WriteLenByte(u32 WriteAddr,u32 DataToWrite,u16 Len);	//指定地址开始写入指定长度的数据
    u32 STMFLASH_ReadLenByte(u32 ReadAddr,u16 Len);						//指定地址开始读取指定长度数据
    void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite);		//从指定地址开始写入指定长度的数据
    void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead);   		//从指定地址开始读出指定长度的数据
    
    
    
    
    #endif


    /*************************平衡方案代码*********************/

    //Flash管理
    typedef struct   
    {
       u32 Addr;    //数据存储起始地址,注意不要超过Flash的最大范围
    	 u16 Count;   //数据域的半字数,应为16的倍数
    }Flash_Man;
    
    Flash_Man  F_S;
    
    //Addr: 数据存储起始地址,注意不要超过Flash的最大范围
    //Count:数据域的半字数,应为16的倍数
    //返回值:0 初始化成功      1 初始化失败
    u8 Flash_Init(u32 Addr,u16 Count)
    {
    	  u16 i;
    	  u16 temp[3] = {0,0,0};
        u32 addr_temp = 0;
    		
    	  F_S.Count = Count;
    	  F_S.Addr  = Addr;
    	
    		
    		/*******读取初始化标志块数据并比较,判断是否已初始化*******/
    	  STMFLASH_Read(Addr,temp,3);
    		addr_temp = (temp[0]<<16) + temp[1];
    		
    	  if(temp[2] == Count && addr_temp == Addr)  
    		{
    			  return 1;   
    		}
    	  if( (Count%16) != 0 || Count == 0) return 2;    //排除错误的Count值
    	
    		
    		/*********************标志域清0***********************/
    		temp[0] = 0;
        for(i=0;i<F_S.Count/16;i++)                    
    		{
    				STMFLASH_Write(F_S.Addr+6+i*2,temp,1);  
    		}
    		
    		/*************将Addr与Count写入初始化标志块****************/
    		temp[0] = Addr>>16;
    		temp[1] = Addr&0x0000ffff;
    		temp[2] = Count;
    		STMFLASH_Write(F_S.Addr,temp,3); 
    		
    	  return 0;
    }
    
    
    
    void STM32Write(u16 pdat)
    {
    	  u16 temp = 0;
    	  u16 i,j;
        u16 buff;
    	  u32 Add_Flag=F_S.Addr+6,DataAddr;      
    	  	
    	  
    		for(i=0;i<F_S.Count/16;i++)                     //遍历空闲的标志位
    		{
    			  STMFLASH_Read(Add_Flag+i*2,&buff,1);        //读取标志域数据到缓冲区
    		    if(buff!=0xffff) break;                     //判断是否存在未被写入的数据块
    		}
    	
    		if(i==F_S.Count/16)        //遍历完不能找到空闲的标志位
    		{
    		    for(i=0;i<F_S.Count/16;i++)                     
    				{
    						STMFLASH_Write(Add_Flag+i*2,&temp,1);        //标志域清0
    				}    
    			
    			  temp = 1;
    			  STMFLASH_Write(Add_Flag,&temp,1);                //标志域第一个地址块第一个位设为已写状态		 
    			  STMFLASH_Write(Add_Flag+F_S.Count/16*2,&pdat,1); //在数据域第一个地址块写入数据
    		}
    		else                       //遍历完找到空闲的标志位
    		{
    			  temp = (buff<<1) + 1;  //标志位进位
    			
    			  for(j=0;j<16;j++)      //找到空闲标志位的空闲bit
    			 {
    			     if(buff&0x0001) buff>>=1;
    				   else               break;
    			 }
    			 
    		    DataAddr = Add_Flag + F_S.Count/16*2 + i*16*2 + j*2;    //计算数据应被写入的地址			  			
    			  STMFLASH_Write(Add_Flag+i*2,&temp,1);  //写入标志位
    			  STMFLASH_Write(DataAddr,&pdat,1);      //写入数据
    		}
    
    }
     
    u16 STM32Read(void)
    {
    	  u16 temp = 0;
    	  u16 i,j;
        u16 buff;
    	  u32 Add_Flag=F_S.Addr+6,DataAddr;      
    	  	
    	  
    		for(i=0;i<F_S.Count/16;i++)                     //遍历空闲的标志位
    		{
    			  STMFLASH_Read(Add_Flag+i*2,&buff,1);        //读取标志域数据到缓冲区
    		    if(buff!=0xffff) break;                     //判断是否存在未被写入的数据块
    		}
    	
    		if(i==F_S.Count/16)    //遍历完不能找到空闲的标志位
    		{
    		    STMFLASH_Read(Add_Flag + F_S.Count/8 + F_S.Count*2 - 2,&temp,1);
    		}
    		else                   //遍历完找到空闲的标志位
    		{			
    			  for(j=0;j<16;j++)  //找到空闲标志位的空闲bit
    			 {
    			     if(buff&0x0001) buff>>=1;
    				   else               break;
    			 }
    			 
    		   DataAddr = Add_Flag + F_S.Count/8 + i*16*2 + j*2 -2;    //计算数据应被读取的地址			  			
    			 STMFLASH_Read(DataAddr,&temp,1);      //读取数据
    		}
    		
    		return temp;
    }


    初始化:

    执行完毕:



    六、补充

           1、代码并没有实现所有功能,例如数据校验。当某个地址擦写失效,应该跳过并将数据存储在下一地址。这里只是简单的实现了动态的平衡存储。一个bit管理2个字节的数据,所以效率约为 16/17 = 94%,这里忽略了初始化标志域的空间。

            2、STM32F1  NOR Flash的擦写是支持page擦除的,如果将数据存储在某个page,然后page还有其他的数据。那么擦除 的时候是会将其他数据也擦除的。虽然程序有缓存page数据功能不会丢失数据,但建议单独用一个page进行数据的存储。且其他系列,如F2系列只支持sector擦除,F2 Flash的后面几个sector容量高达128KB,不利于我们进行数据管理。这种情况应用其他方案。如前面一个sector(16KB)存储数据,程序存在后面的sector。这里涉及IAP,不祥述。       

            3、还有其他的功能,比如说同时存储或读取多个数据,并没有延伸。有需要的可以自己研究研究


    展开全文
  • 平衡滚子链谐波传动是一种以滚子链取代柔轮、静动态平衡、减速与输出复合同步的新型谐波传动。着重面向一般工业领域的常用传动需求,给出几种具有产品创新开发价值的结构方案及相关应用,其中包括全平衡滚子链谐波...
  • 以TA动态平衡阀为例,阐述系统流量平衡在保证室内环境舒适度前提下,减少能量损耗的重要性,所以平衡阀的设计在工程设计中发挥着重要的作用。为了使平衡阀的选择达到功能性和经济性的最优配比,详细阐述了在工程设计中...
  • 基于连续采煤机平行作业开采工艺理论研究和现场应用,提出了以提高连续采煤机作业效率为中心,以优化劳动组织工艺为表征的平衡开采理论,并采用统筹原理分析了巷道掘进速度和支护速度差异、各类巷道长度差异、调机距离...
  • 选煤厂生产过程中受到生产矿井井下大电流短路故障...现场应用结果分析表明,这种电压恢复器(DVR)能够在平衡电压和不平衡电压跌落情况下均能可靠地补偿井下大电流短路造成的电压跌落,有效地保证了选煤厂的正常有序生产。
  • 高庄煤矿选煤厂通过建立煤泥水水平衡系统,将生产的"水"环节自动连接起来,实现了煤泥水处理工艺、煤泥水沉降特性与生产过程洗水平衡的完美结合,探索并实现了煤泥水系统的自动化闭环控制,达到了动态平衡控制的目的。
  • 平衡法则在生活中的应用

    千次阅读 2018-01-05 11:01:13
    平衡法则也称平衡规律,是《一般平衡论》(汪叶斌著)提出的一个重概念。平衡是自然的状态保持,平衡无处不在。世界万物原本就是这样和谐地交融在一起。这种状态间或会被打破,但终究会达成更高层次的恢复。以此往复,...
     
        平衡法则也称平衡规律,是《一般平衡论》(汪叶斌著)提出的一个重概念。平衡是自然的状态保持,平衡无处不在。世界万物原本就是这样和谐地交融在一起。这种状态间或会被打破,但终究会达成更高层次的恢复。以此往复,人们看到了当下的世界,即存在于平衡规律之中。
        在热力学理论中存在一定理,其内容为:空间中任何处于不平衡状态的系统都存在自发运动,从熵较小向熵较大变化。
        在生物化学中说:地球生命系统6500万年循环一次;由于万物的本能是求存在,在“平衡→不平衡→新平衡”循环中,万物总是自我趋于平衡。
        在宇宙物理学中又有:宇宙万物都有各自的平衡循环和生命周期,总是从简单到复杂,从低级走向高级;复杂到一定极限时,万物就会从复杂返回到简单,从高级重回低级。
        如此,平衡理论上升到哲学的维度。但如今我们不必去探究如此高深的自然科学,而应该认真的研究一下平衡论在人类社会中的表现和影响,目的是认识到它并合理的利用它来促进人生发展。
        人们通常只知道自然界生态系统是趋于平衡的,却不知人类社会也处于动态平衡之中。这种平衡是什么?假如有两个陌生人一日成为好朋友,当友谊越深,利益交织也越大,一日两人发生了矛盾,从此绝交变为仇人,最后关系反不如陌生人。也就是说,两人感情越深,产生冲突的可能性也越大;得到的越多,失去的痛苦也越深。又如,不妨思考一下生活中可能发生的变故:财产转瞬间化为乌有;至关重要的亲人突然离世;眼睛突然失去光明,等等。若发生这种事是不是不活了?当灾难降临之后,你的人生轨迹固然会改变,但未必是朝着下坡路的方向改变,因为你会受到平衡力的推进(如他人援助,坚定意志等)。再如,你是否想过:在人类的进程中科学不断进步,可为何人面临的生存压力却有增无减?你有曾想过,为何狗比猫聪明,生存能力却远不如猫?为何人类永远消灭不了害虫,一面解决了,另一面又有新的情况?为何影视作品扼杀了人的想象力?为何社会学家提出的零和游戏中说:游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远为零,社会的方方面面都存在类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。这些问题的答案是:平衡的驱动。
        先讨论一类很通俗的例子:为什么商界富豪大多是白手起家?为什么成功之士常常出身微寒?为什么说失败是成功之母?为什么磨难使人更坚强?诸如此类。让我们近距离的分析一下:假设80年代改革开放初期,有一位农村出身的孩子,和其他孩子一样,每天放学回家便耕田放牛,等到中学毕业后就回家准备成亲,然后全力接手家里的几亩田地。如果日子就这样安逸的过下去也挺好,可这孩子偏偏不安分,很想一睹城市的繁华,于是他发愤图强,考入了省城的高校。然而初入城市,迎接他的并不是兴奋而是无尽的迷茫与苦闷,他突然发现自己是多么得贫困,多么得无知,自己与城市人有着多么大的差距,自卑和恐惧卷席而来。在迷茫中,他只能咬紧牙,省吃俭用的学习,努力地去了解这座城市,希望能缩小与同龄人的距离。按照这个逻辑发展下去会是怎么样?结果会是这样:很快他的认知就达到了平均水平,但此时他或许都没意识到自己身上有着常人没有的可贵的意志和精神,而凭着这股力量他逐渐超越了都市人,最终取得了事业上巨大的成就。
        之前说成功大多出于渺小,其中起点高的人只占少数。我们都只知道有压力才有动力,却没想过这符合一种平衡规律。那个农村孩子的卑微与城市人的优越形成了一种不平衡,于是乎他身上出现了一种进步的,趋于平衡的动力(不妨称之为平衡力),即他优秀的品质。受到平衡力的驱动,孩子一直进步以至最后超过了他人。在这过程中有几点要注意:第一,那孩子刚开始只是想努力地缩小差距,并不认为自己能够达到他人的水平,更别说超越了;第二,富人产生了优越感,有些人会因此堕落,而更多人即使知道奋斗才能进步却永远达不到他的努力程度。很多人缺少奋斗的勇气,并且意识到这一点,却找不到解决办法;而那些自知不足的自卑的人并未意识到这一点,但最终却取得成功。有如一句古训“满招损,谦受益”。这就是一种不可避免的平衡规律:积极与消极的平衡力相对存在。而当我们真正承认了平衡效应的存在,就可以理性智慧的处理它,那就是:制造压力,努力地抗击平衡阻力。我时常就会思考:之所以我高三那年没有付出百分之百的努力学习,是因为我不是那种苦读书的穷孩子。我现在多希望父母当年可以善意的欺骗我说:“儿啊,告诉一个不幸的消息,我们家族企业在一夜间破产了,各种债条已让我们负资产,你一定要争气呀。”若是这样,高三的我再也无心嗜玩,潜心学习,现在至少也在南京大学。人就是这样,痛苦时总会找借口,但压力越大借口越少。之所以有“天才还勤奋”是因为天才给自己施加压力,富人给自己施加压力后更富有。这就像著名的“不值得定律”。不过现在想想也无须这么“残酷”的办法,只要正视平衡之论,意识到生活充满危机和变故,带着忧患意识去努力地抗击平衡阻力,才能在压力中不断进步。
        讲完了人性价值中的平衡观,再上升到国家层面。举一类历史上的典例:200年前的大英帝国征服了世界为何之后却堕落了?近代的中国饱受外族侵略为何没有灭亡而是重新崛起?现在的黑人都拥有强壮的身体是由于数个世纪前的黑奴贸易?二战后的美国知道自己的领导地位会随着历史的演变而逐渐衰落吗?这些都是必然的!在政治层面,平衡律格外显著。一个国家就像一个人,当身边有了危机和压力,就会努力的去改变现状。一个国家发展的越发达,就会受到越多的来自世界各国的抑制,最终趋于平衡。因此,没有一个名族能够统一世界,这种痴心和妄想必将受到全世界所有和平主义者的极力抵抗。
        要进一步剖析平衡论对人类社会的影响,就得再上升到人类发展史的高度来讨论。《一般平衡论》中论述到:生命从低级向高级进化,愈高级的生命对环境的要求愈高。在人类社会的进程中,有三个普遍的平衡现象:1.生产力的发展提高了资源的利用率,与此同时人类对资源的需求量和消耗量也增加了,最终导致可用资源永处于短缺状态。2.生活环境不断改善,物质条件不断丰富,与此同时人体的免疫力和骨骼在加速衰退,最终导致人的体质并未更健康。3.科技不断进步,人的能力不断提高,与此同时人的欲望和对环境要求变大了,最终导致人民的“幸福指数”没有改变,压力甚至更大。对此再举一类实例:农业和淡水技术的发展导致人均食用量和浪费量无可避免的升高;生活工具的大量使用提高了工作效率但导致人的运动量减少,体格的退化;各种补品日用品(包括衣食)使你对它们产生了依赖性,并未起到保护身体的作用;现代医学进步的同时新的疾病也在滋生;金钱的诱惑让人贪得无厌,最终反成为痛苦的根源⋯⋯种种事例表明我们生活在社会中总是受到平衡的冲击,而这种冲击往往会激化社会矛盾。真正的从平衡的角度来看问题才能找到根本解决方法。为了解决饥荒,不是想方设法地开发新技术,而要改变人们的饮食习惯,哪怕是法律强制。要知道现代人的摄食量在古人的基础上翻了几番,尤其肉类,而人需要吃那么多肉么,现代人的营养过剩早已转化为肥胖症等疾病。为了保护身体,不是拼命地研发新的医疗设备,使用大量的保健品并加强身体的清洁工作,而是要去锻炼身体,过于干净的身体才会惧怕病菌的侵入。为了满足自身的生存,不应该向自然大量的掠夺,而是去改变自己,降低对“物”的依赖。如果按原先轨迹发展下去,人类的结局会什么样?
        平衡法则中有一项著名的物种毁灭论。地球生命系统6500万年循环一次:生命从低级向高级进化→愈高级的生命对环境的要求愈高→高级生命与环境互不平衡而灭绝→又从低级向高级进化。从简单向复杂进化,又从复杂向简单消亡。现有地球生物圈平衡的变化所带来的物种灭绝,应当从高级向低级进行:高级动物先灭绝,有可能生存下去的应当是更具极端环境适应能力的低等生命。能持久生存的往往是低等、简单、微小的生命,而高级、复杂、庞大的生命早亡。这种观点曾吓倒很多热爱生活热爱生命的人:难道人类文明终将走向毁灭的边境吗?当然一切事情发生的概率都是存在的,不过它有多小。除此之外世界毁灭论还有多种版本:从机器人起义,瘟疫大流行再到小行星撞击,外星侵略,太阳爆炸,黑洞吞噬。这些可能性都存在,但都是在很远的将来才会发生,未来的变故谁又能准确的预测呢,那时人类都搬出了太阳系也说不定。然而至于周期为6500万年的物种毁灭论,我们不能不重视,如果人类任由这种平衡循环发展的话,未来的某一天地球的资源枯竭殆尽,人一旦离开“物”,生存能力立刻降为零。
        生命处于一种动态平衡的状态,物极必反。有进步自然就有退步的一面。虽然这种规律无可避免,但只要人类意识到平衡力并勇敢的抵抗平衡力,就可以大大的减少消极的平衡趋势。换句话说,就是要减少个人对环境的要求,脑力与体力共同发展,即使不能做到像贝尔格里尔斯那样“原生态”。是否意识到,人类对环境的要求已到达一个危险的地步,就像强大的汉朝花了几百年的时间才打败了匈奴人——一个科技落后的游牧名族,因为汉人的生存成本远大于匈奴人,因此限制了军事发展;而现代人一旦脱离了社会,或遇到大的自然灾害,那只有等死的节奏。所以只有当每个人对社会的贡献都大于自身的消耗时(即变的更完善),人类才有足够的资源与余力去探索自然,探索宇宙,实现人类更长远的发展。
        想想开始提到的那来自农村的孩子,如果说有些富家子弟受平衡阻力(安逸与骄傲)影响,那最多和低起点的人持平,为何反被超越?被超越后形成了新的不平衡,为什么不会重新趋于平衡?答案就是人的精神具有强大的主观能动性,这就是宇宙中的特例——生命,人作为高等智慧生命,人性的价值就是能够主观地抗击平衡阻力,毕竟平衡只是趋势而不是绝对完全的。改变环境不如改变自己,无需担忧什么“世界末日”来临,把握当下才最重要。
        《圣经》描述到:上帝当初要毁灭他自己创造的人类,就是因为当时的人们贪婪、争斗、掠夺⋯⋯上帝应当就是平衡的大自然。上帝的平衡论说明,善有善报恶有恶报,一个人对社会制造了多大的伤害,他自然会得到多大的报应。而中国古人倡导“天人合一”,“天之道”是指宇宙自然的运行法则,而“人之道”则是指人类的智慧,人类的所作所为,是人类社会的方方面面。天道总会自然而然地求平衡——天道自衡;而人道总是当然而然地反平衡。当然这与“人类要顺应自然规律”并不矛盾,人自然对人类发展做长久考虑。人类的进步和发展是一个不断解决困难的过程,困难不断被攻克,新的问题又会出现。只是,当我们看到进步的一面就要想到定会有退步的一面与之对应。有时不能总想着如何应对新问题,而要从大的角度探究新问题诞生的原因以避免其发生,毕竟这些问题的发生会给人们带来痛苦的灾难。
        生活在平衡世界中,以一种平衡思维看世界,生活中很多匪夷所思的变故都可以用平衡理论来阐释。在未来,即使正与邪的斗争永远不会停息,成功失败快乐痛苦总是相对存在,只要人类敢于反平衡,反对那些不利于人类发展的因素,顺应那些积极的平衡作用,就能够实现人类文明长远的可持续发展。
    展开全文
  • 建立其动态投入产出模型, 用以解决煤炭企业维持简单再生产和扩大再生产过程中各生产部门生产能力的合理规划、资源的合理配置、投资与产出增长的动态平衡等问题, 进而优化企业投资结构和产品结构, 寻求矿区最佳发展...
  • 在因特网环境下,现有提高分布应用性能和各种资源利用率的工作存在一定的不足,如不能在邻居局域网范围内进行负载平衡。提出了基于局域网簇和“通讯录”的应用构件动态重定位模型。在该模型中,一方面对局域网簇内...
  • 磁控电抗MCR型静止式动态无功补偿装置SVC在矿井供电系统中的应用
  • 本文针对小规模机群系统下的并行应用环境,设计了基于接收者驱动的动态负载平衡系统(RILBS)。系统采取集中控制与接收者驱动相结合的方法,避免了周期性的负载信息查询,从而减少了通信开销,使系统获得较理想的...
  • 动态 Web 应用程序的体系结构决策:性能、可伸缩性和可靠性 Gregory LeakeMicrosoft Corporation2000 年 11 月摘要:本文讨论 Doculabs 对 Windows 2000 进行的基准测试,说明不同的体系结构决策如何影响 Web 应用...
     
    

    动态 Web 应用程序的体系结构决策:性能、可伸缩性和可靠性

    Gregory Leake
    Microsoft Corporation

    2000 年 11 月

    摘要:本文讨论 Doculabs 对 Windows 2000 进行的基准测试,说明不同的体系结构决策如何影响 Web 应用程序的可伸缩性和性能。其中包含对各种部署选项和配置设置的基准测试。

    在 MSDN Online 代码中心浏览或下载 Nile.com 代码示例(英文)。

    单击此处下载 Nile.com 代码示例(英文)。

    目录

    简介
    Nile 应用程序
    测试平台
    使用 Active Server Pages 的 Visual Basic 应用程序
    完全 ASP 实现方案
    Visual C++/ISAPI/COM+ 实现方案
    测试
    结果
    使用/不使用 COM+ 的性能对照
    进程隔离级别和性能
    通过 Windows 2000 网络负载平衡向外扩展
    组件负载平衡
    智能划分
    引入 COM+ 事务之后的效果
    动态 SQL 与存储过程对比
    向上扩展与向外扩展对比
    总结和性能调整考虑

    简介

    近期,Microsoft 雇用 Doculabs 对 Microsoft Windows® 2000 作为电子商务应用的服务器平台进行了一系列基准测试。本文就 1999 年 7 月 PC Week 的文章“应用服务器评测”继续说明基准测试的发现。在早先的 Doculabs/PC Week 的基准测试中,运行在 Compaq Proliant 服务器上的 Microsoft Windows NT® 4.0 击败了七种运行在高端 Sun 服务器上的不同 Unix 应用服务器(包括 Sun Microsystems 的 iPlanet)。在 Microsoft 在 PC Week 可伸缩性基准测试中表现出众(英文)中可以看到 PC Week 上发布的最初测试结果。您也可以阅读 Doculabs 对 Windows 2000 的新测试报告:@Bench 测试报告:Windows 2000 的性能和可伸缩性(英文),由 Marianne Pendleton 和 Gautam Desai 撰写。此文章也包含在示例软件包中。

    在基准测试之后,我们对不同观众演示了测试结果。观众的反映很好,但经常会提出这样一些问题:

    • 最初的结果是根据 Windows NT 4.0 得出的。Windows 2000 的进步有多大?

    • 我是否应该在 COM+ 组件中使用 Microsoft Visual Basic® 或 Visual C++®?

    • 我是否应该使用 ASP 或 ISAPI 来创建我的应用程序?

    • 管理状态并保持良好的伸缩性的最佳途径是什么?

    • COM+ 事务如何影响性能?

    • 我应该在进程中还是进程外运行应用程序?

    • COM+ 负载平衡对应用程序的可伸缩性有什么影响?

    • 应该使用动态 SQL 还是存储过程?

    • 如何使用网络负载平衡来提高可伸缩性?

    • 如何在负载很重的情况下使我的应用程序保持最高的可用性?

    • 向服务器中增加更多的处理器对性能有多少改善?

    • 我能得到基准测试的源代码吗?

    本文将要解答这些问题。实际上,本文就是我们在许多技术活动(包括 Tech Ed 2000)所作演示的书面版本。本文的目的是说明不同的体系结构决策如何影响 Web 应用的可伸缩性和性能。本文中包含了一些不属于 Doculabs 正式报告的数据,因为我们想花一些额外的时间来对不同的部署选项和配置设置进行基准测试,以便回答上述问题。Doculabs @Benchmark 应用程序的完整源代码包含在示例中。

    Nile 应用程序

    Doculabs @Bench 基准测试应用程序名为 Nile,模拟一个在线书店。我们使用三种方式实现了此基准测试应用程序(按照 Doculabs 所指定的功能):使用 ASP 页和 Visual Basic,完全使用 ASP,或者使用 Visual C++ 以及 ISAPI 和 COM+ 组件。

    Nile 应用程序是一个很简单的 Web 应用程序。所有基准测试应用程序都是典型的简单应用程序,用来测试基础技术底层结构处理真实应用程序负载的能力。当然,真实的应用程序要复杂得多,并可以和内部的旧式系统进行典型的协作通信,其逻辑比 Nile 中的逻辑更复杂。但 Nile 还是有用处的。它突出了应用程序服务器处理数据库通信、动态页面生成和事务的能力。这些都是应用服务器产品的日常任务。

    从功能上看,Nile 应用程序是基于 TPC-W 的一个松散的程序,TPC-W 是事务处理性能委员会 (TPC) 关于电子商务基准测试的新标准。Nile 应用程序是一个简单的在线书店应用程序,强调将应用服务器用作产品目录、相关产品搜索、产品浏览、客户帐户管理、购物车和订单事务。在基准测试中,90% 的页面都是根据数据库内容动态生成的。Doculabs 指定使用该应用程序,这意味着我们必须遵循许多规则,这些规则限制了使用真实应用程序中已经应用的某些更高级技术。例如,即使某些页面调用某些级别的缓存,也不缓存数据库信息。另外,必须在中间层或数据层上对状态进行管理,即使用单个 Cookie 将客户端会话映射回各自的购物车。最后一点,此应用程序不考虑安全性。所有用户均为匿名用户,且不使用数据加密。在真实应用程序中,客户帐户页和事务页毫无疑问将使用 HTTPS。 

    我们使用三种不同的体系结构来实现 Nile 基准测试应用程序:

    1. 由 ASP 页激活 Visual Basic 6.0 COM+ 组件。

    2. 用 Visual C++ 6.0 编写的由 Visual C++ ISAPI 通用接头激活的 COM+ 组件。

    3. 完全使用 ASP 页,而不包含已编译组件/代码。

    示例中包含了这些应用程序的源代码和安装说明。

    注意:   请参见 Nile.com:COM+ 实现方案(英文)以了解有关 Vertigo Software, Inc. 对 Nile.com 的 Microsoft 实现方案所作的修改的讨论。修改后的程序示例是使用 Microsoft Windows 2000 中的 COM+ 的多层 Web 应用程序。

    测试平台

    测试平台包括下列硬件:

    • 一台 Compaq Proliant 8500(八个 550 MHz Pentium III 处理器,2 MB L2 高速缓存,3 GB RAM),使用 SQL Server 7.0 数据库

    • 四台 CMPQ 8500 Web/应用服务器(均为八个 550 MHz Pentium III 处理器,2 MB L2 高速缓存,512 MB RAM)

    • 五台 CMPQ 1850 Web/应用服务器(均为两个 550 MHz Pentium II 处理器,512 KB L2 高速缓存,512 MB RAM)

    • Cisco 千兆网络主干

    • 100 台 Dell 客户端工作站(一个 500 MHz CPU,128 MB RAM),用来产生负载,运行 Windows 2000 Server

    图 1:Microsoft @Bench 测试实验室

    使用 Active Server Pages 的 Visual Basic 应用程序

    在 Visual Basic 实现方案中,我们使用了大多数企业开发人员在 Microsoft 开发平台上使用的各种核心 RAD 技术:Active Server Pages、Visual Basic 6.0、COM+ 和 ADO 2.5,用以进行所有数据访问。我们使逻辑保持极度简单,因此没有复杂的技术,诸如在数据层和表示层使用 XML 和 XSL。您看到的应用逻辑可能类似于现在 Internet 上基于 Microsoft 的多数企业 Web 应用程序。特别要说明,Visual Basic 实现方案具有下列特性:

    • 使用 COM+ 的逻辑化三层实现。

    • ASP 激活用 Visual Basic 6.0 编写的 COM+ 组件。

    • 不使用 IIS 会话对象。

    • 使用 Cookie 存储从数据库标识种子生成的客户端 sessionID(会话标识)。

    • COM+ 组件为所有数据库逻辑使用 ADO 2.5。

    • 没有数据缓存。

    • ASP 从 COM+ 组件取回断开连接的记录集以进行格式化或显示。

    • 使用正确的 ADO 编码技术;数据库索引被高度优化;为所有 SQL 使用 SPROC。

    完全 ASP 实现方案

    完全 ASP 实现方案的代码与 Visual Basic 实现方案完全相同,但它完全是用脚本编写的,并使用 VBScript 类文件来代替已编译的 COM+ 组件。该方案的目的是展示使用脚本相对于已编译 COM+ 组件的性能损失。该体系结构仍旧是三层的,所有数据访问都使用单独的类文件,而不是业务和表示逻辑。但是,由于所有工作都在脚本中完成,其部署选项少于 Visual Basic/COM+ 版本中的选项。例如,该实现方案不能利用 COM+ 动态负载平衡、COM+ 安全性机制等等。

    Visual C++/ISAPI/COM+ 实现方案

    此实现方案与前两个示例完全不同。它的目的纯粹是性能方面的,而不是进行 RAD 开发。我们希望显示出 Visual Studio 6.0 开发工具的灵活性,让开发人员编写低级代码以获得可能的最高性能。此代码编写起来比较困难。但有一个好消息,Visual C++ 组用它作为练习来帮助设计 Visual C++ .NET。现在,Visual C++ .NET 附带了名为活动模板库 (ATL) 服务器的新功能,它将彻底简化使用此类体系结构开发应用程序的过程。 

    该体系结构使用了瘦 ISAPI 层(激活 Visual C++)和 COM+ 组件(执行所有工作/数据访问)。数据访问没有使用 ADO,而是使用 ODBC API。

    如您将要看到的那样,此应用程序的性能特性与 Visual Basic/ASP 和完全使用 ASP 的版本明显不同。主要原因有三点:

    1. 使用 ISAPI 而不是 ASP 作为对 IIS 的低级扩展。在此应用程序中没有激活的服务器端脚本引擎。

    2. 使用 ODBC API 而不是 ADO 进行数据访问。ADO 是一个很好的数据访问包装程序,节省了许多手动编码工作,但是作为一个抽象层,它增加了某些开销。

    3. 使用 Visual C++ 而不是 Visual Basic。C++ 代码完全是低级语言,更接近于已编译格式的机器代码。尽管如此,要牢记 Visual Basic 也被编译为本机代码(从 Visual Basic 5 以来一直如此)。不过已编译格式的 Visual C++ 代码的执行效率更高。

    当然,所有这些决策要在必要的开发技能和构造应用程序所需的时间之间取得平衡。我想强调一下 Visual Basic 和完全 ASP 应用程序,虽然它们没有 Visual C++ 应用程序快,但通过服务器群集也能达到我们意想不到的速度和卓越的可伸缩性。事实上,我们会毫不犹豫地将 Visual Basic 和 ASP 应用程序放到任何或所有运行在最昂贵的 SUN 设备上的非常高端的 UNIX 应用程序服务器上。Visual Basic 和 ASP 技术将满足 Web 上绝大多数电子商务应用程序的性能和可伸缩性需求。

    Visual C++ 实现方案是 Doculabs 在 PC Week 的基准测试的最初 C++ Nile 应用程序的一个改写版本。在最初的实现方案中,所有代码都包含在一个 ISAPI DLL 中,是单一的两层结构。新的 COM+ 应用程序在这一点上更高级,它是一个逻辑化三层体系结构,更易于维护,并提供了更多的部署选项,例如使用组件负载平衡和 COM+ 事务。

    测试

    在看到真实的基准测试结果之前,有重要的几点需要注意。首先,我们使用 Quest Software 的 Benchmark Factory 来生成负载并测量性能结果,并在可靠性测试中追踪错误率。要记住,Doculabs 执行重要的测试并审核结果,但是用来显示体系结构平衡的后续测试是由 Microsoft 自己在相同实验室中完成的。

    Benchmark Factory 的负载特性与 Microsoft 自己的 Web Application Stress 工具类似。这表明相对较少的客户端能轻易地在系统上产生巨大的负载。为确保安全,我们使用了 100 台客户端计算机,并确保这些客户端不会成为测试中的瓶颈。为了最大程度地增加系统负载,我们“毫无停顿”地运行所有测试,就象 Doculabs 最初的 Windows NT 4.0 测试(发布于 PC Week )和 2000 年 8 月的 Windows 2000 Advanced Server 重新测试一样。当您查看结果时,牢记这一点非常重要。测试中的一个虚拟“用户”实际上等于许多个“真实”用户访问服务器。据 Doculabs 估算,在不停顿情况下的一个用户相当于在页面请求之间有正常用户延迟情况下的至少十个真实用户。但这只是粗略的估算。100 台客户端计算机上的 Benchmark Factory 向服务器上增加的负载应该比绝大多数 Internet 站点将要经受的负载还要大。

    结果

    图 2 描述了最初 Doculabs/PC Week 评测的结果,我们在 Windows NT 4.0 上运行 Nile 应用程序,分别在 Visual Basic/ASP 中和在 Visual C++ 中作为 ISAPI 应用程序进行测试。在此测试中,Nile 直接与运行在高端 SUN 服务器上、使用 Oracle 8i 数据库、基于 Java 的应用程序服务器比较。Microsoft Nile 组则使用 SQL Server 7.0 数据库。

    图 2:最初的 Unix 与 Windows NT 大拼比

    此测试是在一年前进行的,那么现在又有了哪些影响性能和可伸缩性的改进?主要的变化有两个,其一是使用了 Windows NT 4.0 的换代产品 Windows 2000,其二是使用了具有更快的 Intel Pentium 芯片的新型八路系统。这两个要素一起使得性能大大增强,下面显示的是 2000 年 8 月 Doculabs 对 Microsoft Nile 应用程序重新测试的结果:

    图 3:Unix 与 Windows NT 的重新测试比较

    下面的图表显示向系统中增加用户时,每个受测应用程序的完整的相对吞吐量曲线。请记住后端硬件和操作系统都已升级,以便达到最佳的结果。硬件从带四个 500 MHz CPU 的 Compaq ProLiant 6400R 升级为带八个 550 MHz CPU 的 Compaq ProLiant 8500。操作系统从 Windows NT 4.0 Enterprise (Service Pack 5) 升级为 Windows 2000 Advanced Server。

    图 4:最初 Windows NT 4.0 结果与 Windows 2000 重新测试结果 (Visual Basic-COM+/ASP)

    图 5:最初 Windows NT 4.0 结果与 Windows 2000 重新测试结果 (Visual C++/ISAPI)

    下一组数据显示相同的硬件环境下 Windows NT 4.0 与 Windows 2000 Advanced Server 的完整重新测试结果。它真实对比了这两个操作系统运行 Nile 应用程序的相对性能差异。该数据显示对于 Visual Basic/ASP 和 Visual C++/ISAPI,在较高负载情况下,Windows 2000 的吞吐量都比 Windows NT 4.0 高约 30%。但是请注意,完全 ASP 版本(在最初 Doculabs/PC Week 评测中没有测试)的测试结果更加惊人:Windows 2000 比 Windows NT 4.0 高约 100%。产生此差异的原因在于对 ASP 脚本引擎使用了 IIS 5.0 和 ADO。

    图 6:Windows 2000 Advanced Server 与 Windows NT 4.0 (Visual Basic-COM+/ASP)

    图 7:Windows 2000 Advanced Server 与 Windows NT 4.0 (Visual C++/ISAPI)

    图 8:Windows 2000 Advanced Server 与 Windows NT 4.0 (完全 ASP)

    有关以制表符分隔的数据列表,以及 Doculabs 在 Windows 2000 和 SQL Server 7.0 上进行故障转移/可靠性测试的完整讨论,请参见 Doculabs 的正式报告。

    使用/不使用 COM+ 的性能对比

    后面的数据都是在 Windows 2000 Advanced Server 上得到的测试结果,该测试是 Microsoft Nile 组使用相同的设备自己测试得出的,用以说明不同体系结构和部署选项之间的对比。

    图 9 显示了 Visual Basic/ASP/COM+ 实现方案与完全 ASP 实现方案的性能比较。

    图 9:完全 ASP 版本(VBScript 类)与使用 Visual Basic/COM+ 组件的 ASP

    图 9 显示出某些有趣的发现。首先,在 Windows NT 4.0 下,我们对开发人员的建议是:已编译的 Visual Basic 代码的性能比脚本代码高。同时,通过向 COM+ 组件中放置逻辑,开发人员可以更好地避免剖析长而复杂的 ASP 页的“混乱代码”。但是,完全使用 ASP 实现方案的 Nile 在 Windows 2000 上的实际执行情况和已编译 COM+ 版本一样好(甚至更好)。这说明,在 Windows 2000 上,您不再需要为使用脚本而付出性能代价,就可以获得和使用已编译 Visual Basic 代码一样的效果。ASP 脚本引擎在 Windows 2000 上运行更快。另外,我们使用 VBScript 5.0 的新功能来创建使用类定义的对象,这样,代码就象 Nile 的 Visual Basic 6.0 版本一样简洁。实际上,它的代码是相同的,但是使用了 VBScript 类,而不是 Visual Basic 6.0 类模块中定义的 COM+ 对象。当然,完全 ASP 版本不能利用 COM+ 的特性,例如安全模型、组件队列以及动态负载平衡。另外,许多大规模的站点需要使用脚本,因为脚本便于灵活地升级逻辑,不存在组件版本管理和在产品站点上重新注册所带来的问题。有一个好消息,这些选项不再互相排斥。您可以将经常更改的逻辑保存在脚本中,将已固定的逻辑保存在封装的 COM+ 组件中。

    图 10:Visual C++:从单一 ISAPI 移至 n 层 COM+ 组件

    图 10 显示了 Visual C++ 应用程序的相似结果。从根本上说,最初的 Nile 应用程序是两层单一 ISAPI DLL,我们将其转为带 ISAPI 层的 COM+,仅从 Web 站点激活 COM+ 组件。基本情况是使用 COM+ 不会带来任何严重的开销,并且两个应用程序的性能非常接近。

    进程隔离级别和性能

    在部署任何 Web 应用程序时必须回答的另一个问题是有关进程隔离的问题。我们在各种进程隔离级别上对 Visual Basic/ASP/COM+ 应用程序进行了测试,以便说明此决策对性能的重大影响。结果表明,基于 ASP 和 COM+ 的 Web 应用程序的默认的现有进程隔离级别并不理想,应尽可能进行调整。

    进程隔离是指将运行代码划分到由操作系统管理的不同进程空间中。其基本用意是在 Windows 2000(和 Windows NT 4.0)下,某个进程崩溃时不会影响另一个进程。例如,如果某个 ASP 应用程序是与 IIS Web 服务器 (InetInfo.exe) 进程隔离的,则该应用程序崩溃时,计算机上的 Web 服务器仍然为其它站点提供页面——因此不会出现系统范围的崩溃。但是,进程隔离的缺点是降低了性能。在一个应用程序中跨越进程边界的代价很高。数据封送将产生大量开销,并导致大量 CPU 上下文切换。在 Windows NT 4.0 下,这个代价很高,因此所有新建的 ASP Web 应用程序的默认设置都是在与 IIS 相同的进程空间中运行。在 Windows 2000 下,ASP 应用程序的性能有了很大提高,因此操作系统改变了默认设置,使所有新建的应用程序都在与 Web 服务器不同的进程空间中运行。如果您正在对 Windows NT 4.0 和 Windows 2000 执行自己的性能测试,要牢记这一点,因为不能将 Windows 2000 的进程外(默认)和 Windows NT 4.0 的进程内(默认)作比较。

    让我们看一看 Visual Basic/COM+/ASP 应用程序和进程隔离的三个基本选项。然后我们将讨论基于性能数据而建议的途径。Windows 2000 的第一个选项是将 ASP 应用程序的设置改回 Windows NT 4.0 的默认设置,使所有程序与 Web 服务器在同一进程空间中运行。这是最快、最简单的选项。该选项还要将所有 COM+ 应用程序的默认设置从服务器激活(所有 COM+ 对象的实例均使用独立的进程空间)改为库激活(在调用应用程序的进程空间中创建 COM+ 对象)。如果您的 ASP 应用程序和 COM+ 组件经过良好测试,并且该应用程序是计算机上仅有的应用程序,那么这是最佳选项,可以保持性能稳定并支持最大数目的并发用户。

    图 11:单一进程选项的进程隔离

    下一个选项是保留 ASP 应用程序的进程隔离的默认选项,但是将 COM+ 应用程序从服务器激活改为库激活。这意味着将在与调用 ASP 页面相同的进程空间中创建所有 COM+ 对象,但是 ASP 页面(以及 COM+ 对象)将与 Web 服务器进程隔离。这是比较安全的配置,但是也会降低性能,因为 IIS 必须在 ASP 和 IIS HTTP 服务器之间封送数据。

    对于新的、测试相对较少的应用程序,或者对于运行多个站点和应用程序的服务器而言,这是一个很好的选项。该选项确保当某个应用程序崩溃时,Web 服务器能继续运行其他应用程序。COM+ 组件中的故障不会导致 Web 服务器自身瘫痪。

    图 12:隔离 ASP/ISAPI 进程的进程隔离

    最后一个选项实际上是调入 COM+ 组件的、新建的 ASP 应用程序的默认设置。在这里,ASP 应用程序被标记为进程外,COM+ 应用程序(COM+ 组件的容器)被标记为服务器软件包。但是在此选项中,您可以看出进程实际上已经分解。每个 ASP 调用都跨越进程边界,每个激活的 COM+ 组件都跨越另一个进程边界。这带来了大量的开销,对于绝大多数站点而言,是无法容忍的。

    图 13:用 ASP/ISAPI 进程隔离和 COM+ 进程隔离来进行进程隔离

    给出这些选项后,下面提供 Nile 应用程序在每个进程隔离配置下的性能数据。此数据是在一台独立的 Compaq ProLiant 8500 上得出的。

    图 14:Visual Basic/COM+ 和 ASP 进程隔离变化

    很明显,进程隔离策略对性能造成重大影响。

    通过 Windows 2000 网络负载平衡向外扩展

    负载平衡是 Doculabs Windows 2000 测试的一个重要环节。负载平衡允许某个站点在一个服务器集群上“向外扩展”,这样就可以通过在后端增加更多副本服务器来轻松地提高容量。负载平衡还提供冗余,使站点具备故障转移能力,这样,即使后端的一台或多台服务器出现故障(或因维护而需要关闭)时,该站点仍然可供用户使用。在近期的应用服务器争夺战中,大多数应用服务器供应商、出版物和分析家都频频提及一个名为“动态负载平衡”的特性。但是,动态负载平衡是用在极少数大规模 Web 站点上的特性,而多数大规模站点进行向外扩展的主要途径还是使用更简单的网络级负载平衡。在这种网络级负载平衡中,外来的 IP 请求被简单地路由给副本服务器,然后基于其处理能力动态分布逻辑,而不是试图获得应用程序中的单个组件。为什么这项技术应用更广呢?因为网络负载平衡 (NLB) 简单,易于设置,并能顺利地完成任务。另外,多数应用服务器使用专门的黑盒算法在多个应用服务器上分配负载,有些算法能很好完成任务,但许多则不能完成。设置和维护这样的数据中心可能需要讨论,特别是当分配/路由逻辑十分复杂,并且可能在系统中产生瓶颈的情况下。 

    在后端服务器的群集上分配负载时,网络负载平衡比动态的组件级负载平衡更为通用。它既可以通过提供 NLB 的硬件解决方案(例如 CISCO Local Director)实现,也可以通过软件解决方案(例如简单的循环 DNS)实现。完善的解决方案不存在单点故障。简单的循环 DNS 易于使用,但并不完美,因为如果群集中的一台服务器出现故障,外来的请求仍被路由给该服务器。因此,如果您有三台服务器,而其中一台被关闭,则客户端上的三分之一请求将出现故障。Windows 2000 Advanced Server 内置了 NLB 服务,在进行任何 Web 站点设计(Intranet 或 Internet)时,都应该考虑这一重要特性。通过 Windows 2000 NLB 服务,您可以轻易地将所有外来的网络请求分布到后端服务器的群集上。该方案不存在单点故障。一个服务器关闭后,所有请求立即被转移给其他可用的服务器,这些工作可在一秒以内完成。在 Doculabs 的基准测试中,我们使用 Windows 2000 NLB 作为服务器的主要负载平衡机制,在四台服务器(测试的最大数目)上为 Visual Basic 应用程序提供了线性扩展(并在可靠性测试中进行故障转移)。

    NLB 为 Visual C++ 应用程序提供了两台服务器上的线性扩展,但因为 Visual C++ 应用程序每秒处理的动态页面更多,所以数据库负载级别更高。因此,如果在中间层的两个服务器上添加第三台和第四台服务器,在吞吐量性能方面的收益将递减。此时,SQL Server 7.0 数据库的 CPU 使用率超过 85%,而关键因素也不再是中间层,而是数据库。继续扩展 Visual C++ 应用程序的唯一途径是将负载分配到多个数据库服务器上。请看下面的数据:

    应用程序一台服务器上的最大吞吐量四台服务器上的最大吞吐量
    Visual Basic/COM+/ASP每秒 987 页每秒 3,865 页
    Visual C++/COM+/ISAPI每秒 2,943 页每秒 8,452 页

    形象地说,每秒 8,452 个页面等于每天处理 730,252,800 个页面,即 Internet 业务量最大的站点 Yahoo 在繁忙时全天业务量的两倍。在基准测试中,90% 的 Nile 页面涉及到数据库请求,且没有中间层缓存。在这种情况下,一个 SQL Server 7.0 数据库服务器就可以完成任务。当然,Nile 是一个非常简单的应用程序,但它可以解释,为什么在 TPC-C 最佳结果中涉及绝对性能的前六项中,SQL Server 占据四项,其中包括绝对性能第一名。

    要进一步向外扩展 Nile Visual C++ 应用程序,需要在多个服务器上对数据库进行划分,或者通过“向上扩展”的途径来完成,即在更快的计算机上运行 SQL 数据库,例如在新型的 Compaq 和 Unisys E7000 上,这些计算机支持最多 32 个 CPU。同时,使用 SQL Server 2000 中的新特性分布式分区视图 (DPV) 可以进一步扩展,方法是在并行工作的多个后端服务器上划分某些数据库表。

    组件负载平衡

    Windows 2000 Advanced Server 提供了网络负载平衡,而 Application Center 2000 将使用组件负载平衡 (CLB),它是动态的负载平衡,用于应用程序中的独立远程 COM+ 组件。此特性非常有用,因为它为组件的远程处理提供透明编程。使用 COM+ 来创建逻辑 n 层应用程序的一个原因是:在部署物理两层或物理 n 层数据中心体系结构方面,它能为您提供更大的灵活性。换句话说,您可以在本地调用的 Web 服务器上运行 COM+ 组件,也可以将 Web 服务器以外的某些或所有组件分布到应用服务器的专用层上。

    但是,最主要的原因是,从 Web 服务器上以进程外方式运行组件将降低性能,同样,在 Web 服务器以外远程管理组件也降低性能,因为由每个组件交互和跨网络 COM+ 数据封送都将产生额外的网络跃点。然而,许多客户出于不同原因仍需要在 Web 服务器以外远程管理逻辑,包括在 Web 服务器和接触被保护的子系统(诸如 SAP R/3 等内部 ERP 系统,以及客户数据库等)的组件之间加入额外防火墙的能力。

    我们让 Doculabs 在 Nile 应用程序上执行了测试,使用三层物理数据中心体系结构来测量远程管理 COM+ 组件的性能影响。图 15 说明,Visual C++/ISAPI/COM+ 应用程序在 Web 服务器上以进程内方式运行所有 COM+ 组件时与通过网络远程管理单一应用服务器上的所有组件时存在明显的性能差异。现在,如果引入更多服务器,吞吐量曲线将得到改善(在这种情况下,瓶颈是单一应用服务器)。但是,要想获得与本地、进程内组件相同的性能级别,则需要更多的硬件。

    图 15:Visual C++ COM+ 对象的本地和远程管理

    智能划分

    我们是否应该在 Web 服务器以外远程管理所有组件?这个关键问题的答案是否定的。实际上,如果在您的数据中心和应用程序自身中正确设置了安全性,在 Web 服务器以外远程管理单独的 COM+ 组件没有安全性优势。但是请考虑构成 Nile 应用程序的组件并引入应用逻辑的“智能划分”观点。实际上,Nile 应用程序访问的绝大多数组件都与服务器上的 GUI 型操作有关——根据目录浏览、相关产品搜索等的结果动态生成 HTML 页面。这些是只读操作,一般适用于只读的产品目录(可更新的主目录可能是不在 Web 上发布的内部系统)。

    Nile 应用程序中的其他组件则接触更为敏感的数据库信息。例如,处理对客户数据库交互(读和写)的组件,或执行实际订购事务的组件。如果安全性是使用 Web 服务器外远程管理逻辑的主要原因,请考虑划分您的类文件,这样就可以远程管理真正需要的组件,而不用远程管理所有组件(包括只是用来生成 HTML UI 的简单组件)。对于 Nile 和多数其他应用程序,有三个因素使得智能划分和“选择性远程管理”非常重要:

    1. 大多数组件涉及到生成 UI 以将许多数据传回客户端,从数据库获取产品信息,生成后续 HTML,然后将其传回给 Web 服务器以便发回到客户端。远程管理这些组件将带来许多数据封送开销,并对性能造成极大影响。

    2. 另一方面,用于更新客户记录或进行定购的组件往往不向客户端传回大量数据——可能会传回某种订单确认号,但没有大量要显示的数据记录。远程管理这些组件不会对性能造成相同的影响。

    3. 如果您看一看典型 Web 站点的访问模式,就会发现绝大多数访问都是查看页面以进行产品浏览、搜索等,而进行订购或更新重要客户信息的页面访问量很少。

    结合这三点可以得出结论。您可以适度地远程控制接触系统敏感部分的组件,而不会像远程管理 GUI 组件那样付出很大代价。我们之所以要远程管理这些组件,还因为它们经常长时间运行,与多个内部系统接口,同时还可以降低 Web 服务器自身的某些处理负担。

    对于 Nile,我们以这种方式智能地划分代码,然后应用特定的规则来决定是在 Web 服务器上单独运行这些组件,还是使用 CLB 在应用服务器的专门群集上运行。首先,如果该组件执行任何事务/写入数据库,则对其进行远程管理。其次,如果组件接触(读或写)任何客户数据库,则对其进行远程管理。如果该组件仅仅接触只读产品数据库以便响应浏览和搜索请求,则可以将其保持在本地运行,作为 Web 服务器的扩展。在基准测试中,Doculabs 混合使用了六种不同的用户配置,用以代表电子商务站点的典型使用模式:某些配置进行浏览/搜索,某些配置进行定购,某些配置创建或更新客户帐户,某些配置则执行不同的混合操作。图 16 是智能远程管理的应用程序与全部本地运行的应用程序的性能对比图表:

    图 16:智能远程处理和全本地运行 COM+ 对象

    可以看到,与远程管理系统中的所有组件相比,智能远程处理的影响很大。此测试的目的就是让您仔细考虑远程管理组件的原因,并明智地决定哪些组件需要远程管理,哪些组件要保持本地运行。

    我们最后测试的配置为多个 Web 服务器以及运行在智能远程管理配置(上述每个标准)中的多个专门应用服务器。我们采用一系列 Compaq ProLiant 1850r 服务器,作为 Visual Basic/COM+/ASP 实现方案的前端 Web 服务器后的专用应用服务器运行。在这种情况下,所有 Compaq Proliant 8500 都通过 NLB 组成群集,作为到应用服务器的冗余 COM+ 路由器,没有单点故障。1850r 服务器使用 CLB 组成群集,仅仅用于运行在 Web 服务器以外分布的 COM+ 组件。同时,此层上没有单点故障,因为与 NLB 一样,CLB 能够在应用层中的一台或多台服务器停机时提供故障转移。下面是结果:

    图 17:智能分布和全本地对象

    请注意,分布式组件负载平衡配置的吞吐量曲线下降得比全本地配置要快。这是由于应用层(1850r 服务器)在超过一定点后就达到饱和。添加更多的专用应用服务器可使这条蓝线变得平直,并与全本地吞吐量曲线保持一致。但是,这需要在应用层中添加更多硬件。

    引入 COM+ 事务之后的效果

    COM+ 提供的主要服务之一是对组件间分布事务的支持。给出 Nile 性能数据以后,我们经常听到这样的问题:“进行基准测试时,事务是打开还是关闭的?”答案是:对于最初的 PC Week 评测,事务是关闭的,因为它不是一个基准测试标准,并且其他供应商的应用程序中也没有事务处理 (TP) 监视器。

    让我们来看一看,如果在 Nile 应用程序中打开对 COM+ 组件的事务支持,将这些组件标记为“要求事务”,那么会发生什么。这种情况下,对每一个组件调用,它都将调用 Microsoft Distributed Transaction Coordinator。可想而知,这将为系统添加开销。回到有关基于智能划分的远程管理组件的讨论,对于事务支持的问题,其逻辑是类似的。Nile 中的所有组件都涉及真正的数据库事务吗?回答是否定的。实际上,没有任何组件真的需要 COM+ 事务支持,因为应用程序中的事务很简单,仅针对单个数据库,可以很容易地在存储过程中直接进行处理。但是,我们进了一步,以智能方式划分了 Nile 的逻辑,从而能够为所有对订单和客户数据库执行写操作的组件启用事务支持,但仍关闭对执行简单选择语句的组件的事务支持。图 18 显示了这种策略的效果:根据情况智能地使用事务,而不是盲目为系统中的所有 COM+ 组件打开 COM+ 事务。图 18 以运行在一台 Compaq ProLiant 8500 Web/应用服务器上的 Visual C++ 应用程序为例。

    图 18:智能地使用 COM+ 事务

    另外,您还要仔细考虑哪些组件需要事务支持,并智能地划分您的类文件以便可以有选择地将组件标记为“要求事务”。

    动态 SQL 与存储过程对比

    如果预先知道 SQL 语句(而不是在运行过程中由使用/应用逻辑动态构造),我们建议在绝大部分情况下都使用存储过程。使用存储过程,而不是在应用程序中直接嵌入 SQL 字符串,这使系统更易于维护。同样,SQL Server 将有一个预编译的查询计划,按照这个计划执行的速度比动态 SQL 快。图 19 用图表对比了 Nile ASP 应用程序使用全动态 SQL 与存储过程的不同情形:

    图 19:对 Nile ASP 应用程序使用全动态 SQL 和存储过程

    向上扩展与向外扩展对比

    最后,我们分别在八个 CPU 和四个 CPU 的 Windows 2000 系统上运行 Nile 应用程序,测试向上扩展带来的影响。图 20 中的数据表明了一个关键问题——不能期望系统添加了处理器后性能会有线性增长。向外扩展(添加副本计算机)通常比向服务器添加更多处理器的效果更好。但是,向上扩展和向外扩展都非常重要。通过向上扩展,您可以显著减少处理用户负载所需的服务器数目,因而降低了数据中心中的管理成本。另一方面,通过向外扩展,您能够以较低成本获得大幅扩展,以及对高可用性站点的故障转移支持。通过新的 Windows 2000 Data Center Server,可在最多 32 个 CPU 的系统上运行,并可将一些 CPU 专门分配给某个应用程序,从而使服务器获得更好的稳固性。另外,如果某个应用程序的 CPU 利用率达到饱和,Windows 2000 Data Center Server 可以自动重新配置处理器,为该应用程序分配更多的 CPU。

    图 20:从四个处理器扩展到八个处理器的 Windows 2000 系统

    总结和性能调整考虑

    下面列出了一些最重要的步骤,在创建和调整 Nile 实施方案时需要执行这些步骤:

    • 加上负载,测试和调整应用程序。
      • 确定性能目标。

      • 发现和消除瓶颈,直至达到目标。
    • 数据库调整最为重要。
      • 适当的索引非常关键。

      • 监视 SQL Server CPU 利用率。它在中度负载情况下应较低,轻度负载时则应很低。
    • 适当配置数据库(例如,根据事务记录,使各 RAID 控制器并行操作,并为数据隔离各个设备)。

    • 使用无状态数据库操作并始终使用断开连接的记录集。

    • 使用适当的 ADO 编码技术(请参阅 MSDN 上的 FMStocks 2000Nile 示例):
      rs.CursorLocation = adUseClient
      rs.Open cmd, , adOpenForwardOnly, adLockReadOnly 
      
    • 避免:
      • 单行记录集(用尽参数),adExecutenoRecords。

      • 大记录集(数百条记录可以,数千条则不行)。
    • 在进程内或以进程隔离的形式运行 ASP 或 ISAPI,但尽可能在进程内运行 COM+ 软件包(库软件包)。

    • 使用 Windows 2000 网络负载平衡。

    • 不要盲目地用 CLB 分布所有 COM+ 组件,而是使用智能准则。许多对象并不需要分布,包括那些只涉及只读数据的 UI 对象。

    • 合理使用 COM+ 事务。

    • 关闭不使用的 COM+ 特性,例如事件和状态、同步、事务和 JIT。

    • 不要过分寄希望于中间层缓存。它们可能不是必需的。

    • 对于用户状态,尽可能使用数据库或客户机程序,避免使用 IIS 会话对象和应用程序对象。

    • 对长时间运行的操作,如订购和与老式系统交互,请使用异步操作(COM+ 松耦合事件,消息队列)。
    展开全文
  • 2012第29周国内Android应用下载动态

    千次阅读 2012-07-25 10:07:01
    本周榜单共包含安卓市场、安智市场等在内的13家第三方应用商店以及Google Play官方市场中国区的数据,在上周12家应用市场的基础上新加了来自OPPO NearMe软件商店的应用数据,这是第一家向我们提供数据的手机厂商...
  • 为控制由电容补偿造成的...与常规SVPWM系统相比,应用新型非线性动态控制系统后,单位时间内的电容补偿量不超过7.5×1013 T,高、低电容数值间的物理落差低至2.0×1013 T,由电容补偿造成的电网损耗行为得到有效控制。
  • 为了抑制Boost电路中的共模EMI,提出一种动态节点电位平衡思想,即利用功率器件固有的寄生电容在功率电路中构造动态电位平衡节点对,使得流过该节点对的共模位移电流大小相等,方向相反,从而互相抵消,抑制流入源端的共模...
  • 四轴、平衡小车等的互补滤波应用

    千次阅读 2013-08-29 20:23:31
    例如,加速度计测倾角,其动态响应较慢,在高频时信号不可用,所以可通过低通抑制高频;陀螺响应快,积分后可测倾角,不过由于零漂等,在低频段信号不好。通过高通滤波可抑制低频噪声。将两者结合,就将陀螺和加表的...
  • 动态网络负载平衡集群的实践方法

    千次阅读 2004-10-01 18:21:00
    在LVS的基础上配合轮询算法实现了集群的动态负反馈机制,给出了一个基本的动态平衡模型并加以分析。(2003-02-13 12:22:44)--------------------------------------------------------------------------------1....
  • 白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应用的较早,现在家用电子产品(家用摄像机、数码照相机)中也广泛地使用,然而技术的发展使得白平衡调整变得越来越简单容易,但许多使用者还不甚...
  • 电力系统是一个动态平衡系统,发输变电与配用电必须时刻保持平衡。
  • 群体智能动态优化算法及其应用综述[A survey of swarm intelligence for dynamic optimization: Algorithms and applications]摘要一.前言二.动态优化2.1动态优化问题2.2离散空间与连续空间2.3应用2.4测试2.5基准...
  • 论文采用TCS3200芯片作为颜色传感器,通过动态平衡数据表实时修正的方法,设计了一种在短跑竞赛机器人中应用的颜色识别方案。通过红绿蓝三基色和黑白两对比色的数据采集,建立测量条件下的白平衡数据表,对黄色...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,253
精华内容 45,701
关键字:

动态平衡的应用