由塔科马大桥事件 谈软件架构

由塔科马大桥事件 谈软件架构

 

    经常,我们会涉及系统架构、面向对象的架构(SOA)、软件架构等词,那么到底什么是“架构”?什么是“软件架构”?“系统架构”与“软件架构”有着怎样的区别和联系?“系统架构构建”和“系统设计”之间有什么区别和联系?
    本章带着这些问题,追本溯源,对于架构及软件架构的一些基本概念及发展历程做一番说明。同时对一些人们认识上的误区进行分析,以还原事物的真实面目。
 1.1  引子
    时间就像一条奔腾不息的大河,大浪淘沙,方显金石。翻开人类的建筑工程史,遍布世界各地,跨越几千年的时空,我们可以看到许多辉煌成功的工程。但是,人们 往往最容易遗忘那些被历史长河所淹没的惨痛失败。而实际上,人类建筑的伟大成就,就是建立在这一系列失败的教训之上。既然“失败是成功之母”,那我们就以 一个有代表性的失败工程,作为我们走向成功的基石和开始。这个惨痛的教训,就是塔科马大桥(Tacoma Narrows Bridge)。
如果您现在从西雅图国际机场附近的塔科马前往华盛顿州的奥林匹亚区,在16号公路上有一条必经之桥,它如同一道美丽的钢架彩虹跨过了普及特海峡。这就是著名的塔科马大桥。
    竣工于2007年的塔科马大桥是目前世界上最长的悬索双桥,桥长1600米,悬索跨度850米。这真可谓是一项令人赞叹的伟大工程。但是,几乎每一个桥梁 建筑设计人员都知道其大名的原因,并不是由于该桥像金门大桥那样是桥梁史上最著名的大桥,而是由于其前身老塔科马大桥(其绰号为Galloping Gertie)的倒坍,是桥梁史上最著名的失败的缘故。
     老塔科马大桥是普及特海峡上的第一座大桥,1938年11月开始建造,于1940年7月竣工,总耗资640万美元,是当时世界第三长跨度的桥梁。因为先前 美国海军考虑到附近海军基地的需要,提供了部分建桥资金,并且旧金山金门大桥的设计者、著名的桥梁大师Joseph B. Strauss和Leon S. Moisseiff提供了设计咨询意见。因此,老塔科马大桥的竣工,使大桥成为了宾夕法尼亚州经济及军事的重要门户。它被当时的媒体和桥梁行业美喻为“人 类坚定不移的独创精神的结晶”。
     然而,大桥建成后不久,驾车跨越大桥的人们就发现该桥会随风不停地左右摇摆。虽然桥中心线保持了相对的稳定,可是整个桥面两侧却在上下起伏。这样有趣的现 象竟吸引车辆排起了长队,竞相等待开上这座像醉汉一样摇摆的索桥,去体会一下这奇妙的感觉。虽然桥梁设计师们也注意到了这样的不稳定现象,但是他们信誓旦 旦地保证“桥梁是安全的”。
但是事实毕竟让某些相关人员开始有些担心,所以从1940年7月底开始,在华盛顿大学教授F.B. Farquharson的指导下,他们开始对桥梁的这种奇特振动开始进行研究。他们拍摄了大量的照片和影片,记录下了大桥的振动方式,并且在试验室里开始 进行一定规模的试验,试图找到相应的方法来有效地降低桥梁的振动。
    经过Farquharson教授所带领团队的观测和试验,最初的解决办法是在桥梁正中央的桥底部,安装一些钢缆,把这些钢缆从桥底固定到地面。可是在施工 过程中,这些钢缆在风力拉动桥梁的作用力下完全断裂,施工没能成功。随后,试验人员又给出了一系列其他相应的固定桥梁的办法。例如,在桥梁的侧梁上钻洞, 这样可以减小风力对侧梁的推拉力;或者在桥梁的侧梁上安装一些风力导流器,这样可以减小阵风正面直接对侧梁的推拉力。1940年11月初,桥梁的投资方最 终同意了这些加强措施,并且打算在接下来的几周内完成施工。
    遗憾的是,这样的决定来得太迟了,风平浪静的假象下暗流涌动,甚至连F.B. Farquharson教授带领的团队也始料不及。
    11月7日清晨,顺着海峡吹来越来越强劲的大风,大桥开始了人们熟悉的摇摆和振荡。桥上车辆和行人依旧穿梭往来,享受着一如既往的那份惬意的晃动。9点 45分,大风时速达到了68公里。桥面上下交替晃动,两侧落差急速增加,最大时达到一米多,整个桥面仿佛成了过山车回旋的轨道一样。当时 Farquharson教授带领的团队正在桥面中央拍摄大桥晃动的场景,以便为即将开始的大桥风力导流工程提供设计数据。他们拍摄到了一位记者 Leonard Coatsworth正在驾车载着自己的爱犬Tubby非常缓慢而惬意地穿过大桥,一对夫妇也驾驶一辆小型货车紧随在记者的车后。教授拍摄的影片所记录该 景象的时间是10点13分左右。
     10点14分,整个桥面的起伏急剧增加,两侧落差最大时达到两米多。数千吨重的钢铁大桥仿佛变成了一条抖动的缎带,长长的波浪式起伏飘荡在整体桥面上。情 况还在继续恶化,整个桥面开始无规则地扭曲在一起,给在场的人一种强烈的恐惧感。事后Leonard Coatsworth叙述说:“当我刚刚开过桥头进入大桥时,大桥就开始疯狂地上下左右晃动起来。我意识到必须马上停车,否则轿车就会完全失去控制。我用 力紧急停车,打开车门。可以说我是被扔出车厢的。我看到车子被强烈的晃动推得左右摇摆,并且我开始听到了水泥断裂的可怕声音……”Leonard Coatsworth的爱犬Tubby也紧随着主人跳下了车,车后的那对夫妇也急忙跳下自己失控的卡车。这一切都被在现场拍摄的Farquharson教 授看到并且记录在影片中。当教授和所有行人安全地回到桥头时,他们看到巍然屹立的大桥突然断裂!束缚整个桥梁的钢缆完全崩断!整个桥面轰然倒塌!庞大的桥 体拍落到下方普及特海峡的水面上。桥面上Leonard Coatsworth和那对夫妇的车子也仿佛电影中的慢镜头一样,随同桥体落入海峡。整个事件从发生到结束没有超过两分钟。目睹整个过程的所有人都惊得目 瞪口呆。可怜的小狗Tubby也一同掉落进普及特海峡,成为这次事故的唯一遇难者,所幸没有其他人员伤亡。
1   940年11月7日早上11点15分(美国太平洋时间),塔科马大桥轰然倒塌,如图1-4所示。后人称之为“桥梁建筑史上的珍珠港”。对普及特海峡来说, 倒塌的大桥也成为了世界上最大的人造礁石之一。1940年11月28日,美国海军的水文办公室报告称,桥梁遗骸的地理坐标是 (47.16'00"N,122.33'00"W),深度180英尺(55 m)。
    当人们从大桥的倒塌事件中回过神后,工程设计人员开始分析大桥被风“吹”断的原因。
首 先,大桥的施工质量是无可挑剔的:使用了高质量的板型钢材及性能稳定的水泥,整个施工过程被严格监督。整个桥梁是用板型碳钢大梁坚实地支撑着,大梁被深深 地固定在巨大混凝土桥墩上。但可惜的是,这样看似设计完美的悬锁桥,却忽略了一个重要的问题:由于风力带来的共振和扭力。可以理解,当时的桥梁工程还没有 总结出这样的设计实践。
    在塔科马大桥之前,世界上其他的悬索桥大多采用具有开放式孔格结构的大梁。这样的大梁对风力的扰流效果很好,所以不会使风振的能量聚集。但是对于塔科马大 桥这样板型钢质大梁的新型悬索桥来说,板型设计结构会把风力牵制在桥梁断面上。这样被牵制住的风力,会造成两种的扭转模式:共振模式和扭力模式。共振是一 种纵向的扭力,意味着振动力沿着桥梁的长度发生作用,塔科马大桥也不例外。所以出现了以大桥中央为分界点,桥面顺着桥长上下起伏的现象。这样,司机会看见 对面开来的汽车有时会消失在跌宕起伏的桥谷中。
     但是,共振模式并不是导致桥梁坍塌的原因。当时的风速达到了每小时68公里,一旦风力达到这样的强度,第二种扭转模式“扭力模式”就开始作用于大桥。当时在坍塌现场的人们可以看到,桥上的路面出现了两侧路面交替上升、下降的现象。
    应该这样说,对所有桥梁设计来讲,桥面与水面的长距离,造成了穿过桥梁的风力对桥梁本身的振动。因为当风吹向桥梁时,风力将分流绕过其桥梁断面而形成周期 性交替的风流。周期性交替的风流绕过障碍物时会使桥身产生共振。当风速达到一定程度时,风力对桥梁这样有明显仰角的物体会产生强烈的扭力。周期性的共振加 上扭力累积到一定幅度时,就会引起桥梁的折断。如果不能有效降低这种逐渐增大的振幅和扭力,桥梁的安全就难以得到保障。
    桥梁界最后给出的正式结论是震撼而有深远借鉴意义的:“塔科马大桥使用了崭新而没有经过验证的桥梁设计结构,使大桥建成后毁于风力造成的风振。”看来,正是由于桥梁设计(换成IT界的话来讲,就是桥梁的架构)的原因,导致了这样惨痛的工程失败。
    理解塔科马大桥事件的原因,可以说只有在严谨的数学分析下,结合空气动力学和系统结构学才能完全搞清楚。在以后的研究和工程实践中,建筑结构工程界和航空工程界借鉴塔科马大桥的失败经验,进一步完善了空气动力学。这对以后研究解决桥梁的风振问题提供了很好的借鉴。
    自此以后,桥梁界专业人士开始认识到:为了解决风振,首先要避免由于桥梁结构所累积的风力振动,而不是通过加强主梁或桥体的强度来抵抗风力。为了减少累积 的风振,可以运用具有开放的网格结构使大梁和桥面的气流顺利通过,不致产生涡流和扭力的积累,这样就大大减小了风振。
     故事是令人震撼的,背后的教训也是深刻的。虽然后续桥梁工程实施的质量无可挑剔,但正是桥梁设计使用了全新的架构,并且该架构没有经过实践的检验,从而导 致最终桥梁崩溃性灾难的发生。人类所有工程领域的进步都是建立在这样一系列失败的基础之上,并逐渐走向成熟和成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

code删除前两个_听说用python来批量删除说说也挺快乐的呢~

原文链接听说用python来批量删除说说也挺快乐的呢~​mp.weixin.qq.com先睹为快在终端运行如下命令即可:python clearQzone.py (--manual)如果加了--manual选项,意思就是每条说说删除前你都要先人工确认一下是否真的需要删除它,否则就是直接把…

放弃Python转向Go语言:我们找到了以下9大理由

转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。 为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C相似…

开源许可证的变更带给我们什么启示?

喜欢就关注我们吧!近日,Elastic 公司将旗下的知名开源项目 Elasticsearch 和 Kibana 的开源许可证变更的事件持续发酵,再次把我们的目光聚焦到开源公司与云服务厂商之间的矛盾旋涡中。事实上,Elastic 公司与云服务厂商的“积怨”由…

[reship]某类领导

某类领导 在我们眼里,他们没文化,没水平,没魄力,他一无是处 但是他对上级忠诚,唯命是从,鞍前马后,忠诚得像一条哈巴狗 凭借着这种忠诚,甚至是卑贱,他总是有骨头啃&#x…

as本地仓库更改_将gitee仓库连接GitHub Desktop。新建更改仓库并上传至gitee。

Ⅰ、在GitHub Desktop上登陆账号GitHub Desktop上只能用GitHub账户登陆第一次打开GitHub Desktop使会直接有登陆界面出现的,直接用GitHub的账户登陆就好了可以在最上方的菜单,File → Options打开页面登陆 (详细操作见图)这是已经…

有人问我:程序员要供祖师爷的话该供谁?

有人问我:程序员是不是都抽烟? 我想了半天我抽烟完全是因为医生,在我刚上大学的时候还不会吸烟,有一天嗓子特别疼,我就去医院检查,大夫检查之后对我说,没什么太大毛病,你少抽点烟就行…

java父类转子类_java中什么是继承,和继承的接口的关系?

继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相…

cisco命令大全解释、注释

cisco命令大全 1. switch配置命令(1)模式转换命令用户模式----特权模式,使用命令"enable"特权模式----全局配置模式,使用命令"config t"全局配置模式----接口模式,使用命令"interface接口类型接口号"全局配置模式----线控模式,使用命令"lin…

VSCode+BeetleX.VueHost开发Vue应用

BeetleX.VueHost是一个用于打包Vue和提供HTTP服务的程序,它能提供在没安装vue-cli和webpack的情况下开发vuejs应用。使用 BeetleX.VueHost无须安装下载运行即可,可以通过以下地址下载:链接:https://pan.baidu.com/s/1z4Jfz…

8 无法识别raid盘_王者荣耀防沉迷规则再升级;未来将采用人脸识别验证

昨天,《王者荣耀》官网发布了《未成年人防沉迷新规接入公告》,这份公告对于未成年人的可游玩时长、充值金额等都做出了规定。规则规定:在游玩时长方面,未成年用户每日22时至次日8时禁玩,法定节假日每日限玩3小时&#…

干货|MIT线性代数课程精细笔记[第二课]

0前言 MIT线性代数课程精细笔记[第一课]笔记见MIT线性代数课程精细笔记[第一课]。 该笔记是连载笔记,希望对大家有帮助。 1知识概要 这一节中我们介绍一下消元法,即是上一节中我们提到的“系统化”求解方程所用的方法,通过矩阵消元运算可以很…

python创建一个空的dataframe_python 创建一个空dataframe 然后添加行数据的实例

实例如下所示:import pandas as pdimport reimport mathdframe1 pd.read_excel("window regulator分析报告数据对比源.xlsx", sheetname"Sheet1") #读取数据dframe2 pd.read_excel("window regulator分析报告数据对比源.xlsx", she…

压缩解压缩

核心库NewLife.Core内置了压缩相关功能扩展,并且独立实现的ZipFile还支持.NET2.0和.NET4.0,该类在.NET4.5以后成为.NET Framework框架标配。数据流压缩IOHelper类扩展了字节数组和数据流的压缩扩展方法Byte[] Compress(this Byte[] data); Byte[] Decomp…

累~

真累~!!!转载于:https://blog.51cto.com/jianchi1825/159002

在以下说法错误的是_外行人对翡翠有哪些错误认知?行家给你最精准的答案

玉石行业虽然在我们国家有着很悠久的历史!但是就行业认知而言,仍然属于小众行业。正所谓隔行如隔山,在很多外行人眼里,翡翠行业很神秘,而且水也很“深”!甚至很多人认为这个行业“三年不开张,开…

参加美赛,需掌握这些算法和模型

昨天晚上的直播甚是精彩 方同学不但分享了 获奖论文、解题技巧 还分享了 赛前准备、比赛经验和日程规划 po几张截图让大家感受下 此时此刻可能会有不少童鞋 正在为错过直播而懊悔 不用担心 超模君又准备了一份豪华大礼 本周 超模君特意邀请到 今年美赛A题特等奖获奖者 徐乾同学…

yii 使用 有赞sdk_有赞ABTest系统:数据驱动增长实践

‍‍点击关注“有赞coder”获取更多技术干货哦~作者:子固部门:数据中台一、背景有赞是一个商家服务公司,致力于帮助每一位重视产品和服务的商家成功。随着移动互联网的流量增长红利渐渐褪去,商家获得新的流量越来越困难…

分布式数字签名令牌TokenProvider

在分布式系统中,令牌签发系统往往需要跟令牌应用系统分离,并且应用系统可以独立验证令牌,无需请求签发系统接口。数字签名令牌属于发明专利《基于令牌协议的令牌组网构建方法》(已授权专利号201510213377.X)的一部分&a…

热力地图高德_高德地图:最新动态

高德地图是国内最专业的手机地图,超过3.2亿用户在使用!高德地图是应用商店上数据准确率最高、最省流量、躲避拥堵功能最强大的手机地图,平均每天为用户省油61万升!高德地图今日宣布上线货车导航功能,帮助全国3000万货车…

有效处理 Java 异常三原则

Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。 异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? 在有效使用异常的情况下&#x…