999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于自主研發(fā)的軟件框架在地震應(yīng)用系統(tǒng)開發(fā)中的研究和應(yīng)用*

2020-05-01 10:49:38段洪杰楊黎薇劉瓊仙崔建文
地震研究 2020年1期
關(guān)鍵詞:系統(tǒng)

段洪杰,楊黎薇,段 然,劉瓊仙,崔建文

(1.云南省地震局,云南 昆明 650224;2.中國電信翼支付,上海 200000)

0 引言

軟件框架是應(yīng)用系統(tǒng)的核心骨架,其應(yīng)用水平?jīng)Q定了應(yīng)用系統(tǒng)開發(fā)的質(zhì)量(周曉翠等,2016;周偉良,2012;袁帥,2017)。

國際上,開發(fā)者們正嘗試將各種軟件框架與不同新的編程思想相互融合,從而產(chǎn)出許多著名的編程思想及軟件框架。很多著名的開源框架正在快速升級完善,有的框架已經(jīng)連續(xù)開發(fā)了十多年,水平和層次步步提高,如Spring,Hibernate,EJB,SOAP,Open Stack,Struts等。而在國內(nèi),大部分軟件開發(fā)人員不愿投入精力去自主研發(fā)軟件框架,而是直接使用國外開發(fā)的開源框架,將其應(yīng)用到系統(tǒng)的開發(fā)工作中,軟件框架的自主研發(fā)水平與世界水平的距離逐漸拉大。國內(nèi)技術(shù)論壇上存在部分框架程序的代碼片段,但多數(shù)為娛樂性質(zhì),實用性不大。少數(shù)的軟件科技公司擁有自己開發(fā)并可以應(yīng)用的PHP框架,但是設(shè)計有短板。例如不同功能模塊的HTTP上POST和GET的入口點只有同一個page、把程序不相關(guān)邏輯的模塊捆綁一體、編程的可視化效果很差等。國內(nèi)地震行業(yè)中軟件框架存在兩種情況:一是簡單的地球物理算法小程序編程,無需運用軟件工程技術(shù)、軟件版本控制、設(shè)計模式理念以及考慮軟件框架;二是規(guī)模較大的地震應(yīng)用系統(tǒng),但這些系統(tǒng)仍然依托于國外流行的軟件框架開發(fā)。

本文分析了缺乏自主框架技術(shù)造成的危害,并借鑒國外地震系統(tǒng)的設(shè)計思想及設(shè)計模式,自主研發(fā)了軟件框架,并對自主研發(fā)框架的使用情況進行了總結(jié)。

1 現(xiàn)有軟件研發(fā)存在的問題

在開發(fā)地震應(yīng)用系統(tǒng)的過程中,國外開源的軟件框架得到了豐富的應(yīng)用,也取得了很多成果。但沒有基本框架的自主研發(fā),會產(chǎn)生一系列嚴(yán)重的問題:①存在隱性風(fēng)險。國內(nèi)有很多開發(fā)系統(tǒng),例如單位保密系統(tǒng)、電子政務(wù)系統(tǒng)(OA)等(魏玉嬌,2017;高峻,2014;楊璇,2009),就是采用國外開源的框架,如果該框架隱匿了難以發(fā)現(xiàn)的后門漏洞,就有信息泄漏的風(fēng)險,一旦發(fā)生國際糾紛,國外框架構(gòu)建者就可遠(yuǎn)程入侵或破壞(沈逸,2013;趙衍,2011);②受制于人,存在使用局限性。就要遵守相應(yīng)限制規(guī)則,不僅軟件框架的開發(fā)費用會增多,應(yīng)用價值也會大大縮小。如果使用許可證帶有政治因素(開源社區(qū)的軟件框架會受到美國的出口管制等),還容易引起法律風(fēng)險。③國外的軟件框架的開發(fā)者若停止升級,會導(dǎo)致發(fā)現(xiàn)重大漏洞后無法挽救,將建立在該框架上的應(yīng)用系統(tǒng)置于不安全非穩(wěn)定狀態(tài),甚至突然崩潰。例如由于開發(fā)者在2010年停止升級WebWork2框架,致使使用該框架開發(fā)的各種應(yīng)用系統(tǒng)面臨無補丁可打的難題(何華,2006)。④世界上流行的軟件框架并不是針對地震應(yīng)用系統(tǒng)去開發(fā)設(shè)計的??蚣軟]有專屬功能,就需要多種框架融合并行,將造成軟件框架龐大、功能重復(fù)、運行效率低等問題(楊萬里,2016),并且需要開發(fā)人員長時間的學(xué)習(xí)磨合才能熟練掌握。例如Struts為MVC模式(唐琳,2014),但Spring帶有自身的MVC(薛峰等,2012);Hibernate是數(shù)據(jù)庫通用接口層的實現(xiàn)(克里斯蒂安,2016),但Spring也有自己的數(shù)據(jù)庫接口層;Spring自身的數(shù)據(jù)庫接口功能又弱于Hibernate;而Spring的AOP和IOC功能強大,又是開發(fā)應(yīng)用系統(tǒng)的利器(翟劍錕,2013)。將Struts,Spring,Hibernate組合在一起使用非常有益,但是也產(chǎn)生了大量的冗余(林志燦,2018;張志鋒,2013;范新燦,2014)。⑤將不同類型的軟件框架強行捆綁,無法深入各框架的內(nèi)核銜接。這在性能、安全和穩(wěn)定性方面均是隱患。例如,Struts2軟件框架就出現(xiàn)了很多安全漏洞,而且多數(shù)都是高危、緊急的重大安全漏洞,詳見表1。

表1 2017—2018年3月Struts2框架的安全漏洞列表Tab.1 Security hole list of Strusts2 framewrok from 2017 to March 2018

注:表中數(shù)據(jù)來源于:https://cwiki.apache.org/confluence/display/WW/Security+Bulletins(Apache Struts網(wǎng)站).

國外開源軟件框架曾多次因安全漏洞問題在中國導(dǎo)致大規(guī)模的網(wǎng)絡(luò)安全事件。如數(shù)量眾多的服務(wù)操作系統(tǒng)被破壞或被植入特洛伊木馬,大量重要的敏感數(shù)據(jù)外泄(呂志泉,賈子驍,2018)等。其中,大學(xué)、科研所、金融、保險等行業(yè)網(wǎng)站屬于重災(zāi)區(qū)?!皣倚畔踩┒垂蚕砥脚_網(wǎng)站”的“綿羊墻”公開查詢的資料顯示:在沒有出現(xiàn)大規(guī)模網(wǎng)絡(luò)安全事件的平靜期,僅2018年4月20日一天,國內(nèi)就有不少運用系統(tǒng)或網(wǎng)站被入侵??梢姂?yīng)用系統(tǒng)的安全是一個嚴(yán)峻的問題,詳見表2。

表2 2018年4月20日公布在“綿羊墻”的被黑客入侵的應(yīng)用系統(tǒng)(公開來源)Tab.2 The hacked application system released on Sheep Wall on April 20,2018(From public websites)

注:表中數(shù)據(jù)來源于:http://www.cnvd.org.cn/sheepWall/list(國家信息安全漏洞共享平臺網(wǎng)站).

地震應(yīng)用系統(tǒng)在地震后要及時處理地震數(shù)據(jù),承擔(dān)著重大的社會責(zé)任,出現(xiàn)安全漏洞、不穩(wěn)定、系統(tǒng)崩潰等問題會造成不可挽回的損失。使用國外的開源軟件框架,會嚴(yán)重影響系統(tǒng)的穩(wěn)定性(王懷,2018)。因此,開發(fā)具有自主研發(fā)的軟件框架,是非常重要和迫切的任務(wù)。

2 國內(nèi)外狀況

筆者分析了國內(nèi)一些地震應(yīng)用系統(tǒng)使用軟件框架的情況,見表3。將多種軟件框架整合到一起,不但會使應(yīng)用系統(tǒng)變得更加復(fù)雜,還對開發(fā)人員的專業(yè)能力有較高的要求。例如云南強震臺網(wǎng)烈度速報系統(tǒng)使用的Struts + Spring + Hibernate的流行開源框架的組合(段洪杰等,2009),需要配置一個管理Session會話的Servlet程序OpenSessionInViewFilter,以便啟動服務(wù)時加載,還要配置ContextLoaderListener監(jiān)聽等。

國際上地震行業(yè)的應(yīng)用系統(tǒng)主要使用自主開發(fā)的軟件框架,對第三方開源軟件的依賴較少。美國地質(zhì)調(diào)查局(USGS)開發(fā)的ShakeMap 是一個震動圖生成軟件,在世界上得到了廣泛的運用。ShakeMap可繪制地震后儀器烈度的分布和嚴(yán)重程度,可以衡量受地震影響區(qū)域的范圍,確定哪些區(qū)域可能受到最大破壞,這些信息對地震救援的快速評估損失有重要意義。新版的ShakeMap4.0使用python語言開發(fā),使用自主設(shè)計的框架,減少了對開源框架的依賴,不再使用ShakeMap3.5以前版本使用的開源框架LWP,DBD(Perl語言)等。ShakeMap4.0的軟件框架的結(jié)構(gòu)和作用是:①數(shù)據(jù)準(zhǔn)備、處理和渲染都在不同的計算單元中進行;②處理序列在識別地震并決定產(chǎn)生震動圖時,通過震動組合模塊收集關(guān)于地震事件(起源和破裂參數(shù),地震數(shù)據(jù)等)的可用信息,以及ShakeMap4.0的配置信息(其中包括關(guān)于事件的地震構(gòu)造模型和關(guān)于GMPE選擇的相關(guān)選擇的信息),并生成HDF5格式的shake-data.hdf文件;③該文件被注入到消息傳遞系統(tǒng)中,生成各種周期的波譜和特定位置的地面震動信息,再通過網(wǎng)絡(luò)服務(wù)請求任何必需的震動圖圖件數(shù)據(jù),然后通過shake模塊,由shake-result.hdf渲染繪制出震動圖圖件,通過消息傳遞系統(tǒng)或其他手段將其傳送到網(wǎng)站;④網(wǎng)站程序自動為該地震事件創(chuàng)建“頁面”,震動圖件在網(wǎng)站的緩存中緩沖,以提高網(wǎng)站響應(yīng)速度和圖片的顯示速度。ShakeMap4.0框架增加了穩(wěn)定性,減少了數(shù)據(jù)在模塊之間交互的復(fù)雜程度,具體如圖1所示。

表3 地震應(yīng)用系統(tǒng)開發(fā)中使用的國外軟件框架Tab.3 Foreign software frameworks used in the development of seismic application systems

圖1 美國聯(lián)邦地質(zhì)調(diào)查局(USGS)ShakeMap4.0軟件框架Fig.1 Software framework of USGS ShakeMap 4.0

亥姆霍茲中心波茨坦,GFZ德國地球科學(xué)研究中心開發(fā)的SeisComP應(yīng)用系統(tǒng),是全球運用最廣泛的通過互聯(lián)網(wǎng)進行地震數(shù)據(jù)采集和實時數(shù)據(jù)交換的地震應(yīng)用系統(tǒng),其數(shù)據(jù)傳輸網(wǎng)絡(luò)協(xié)議SeedLink成為了事實上的世界標(biāo)準(zhǔn)。SeisComP被設(shè)計為高標(biāo)準(zhǔn)的全自動數(shù)據(jù)采集和(近)實時數(shù)據(jù)處理工具,包括質(zhì)量控制、事件檢測和位置以及事件警報的傳播,并在此基礎(chǔ)上實現(xiàn)了德國印度洋海嘯預(yù)警系統(tǒng)。SeisComP3使用自己的軟件框架,即SeisComP3軟件框架,由C語言開發(fā),其軟件框架的結(jié)構(gòu)和作用是:由一組獨立的應(yīng)用程序組成,每個應(yīng)用程序執(zhí)行一項離散任務(wù),應(yīng)用程序之間的通信通過基于TCP / IP的消息傳遞系統(tǒng)來實現(xiàn)。該消息系統(tǒng)基于工具包Spread(開源),可在本地和廣域網(wǎng)上提供高性能消息服務(wù)。在Spread的頂部,通過scmaster負(fù)責(zé)處理非原生由Spread提供的其他SeisComP3需求。使用消息傳遞交換元數(shù)據(jù)(例如揀選)和配置信息,實現(xiàn)系統(tǒng)各個模塊的協(xié)作,如圖2所示。

圖2 亥姆霍茲中心波茨坦,GFZ德國地球科學(xué)研究中心開發(fā)的SeisComP3軟件框架Fig.2 SeisComP3 software framework of Helmholtz Centre Potsdam,GFZ German Research Centre for Geosciences

SeisComP3可將關(guān)鍵功能作為獨立模塊實施,以保證與其他功能的獨立性(例如選擇器,量級計算,交互式分析);輕松實現(xiàn)自定義模塊,強化了硬件和軟件的獨立性;具備在不同的自動實時系統(tǒng)之間進行數(shù)據(jù)交換的能力(分布式分發(fā)模塊);提高了地震發(fā)生時系統(tǒng)運行速度,并增加了系統(tǒng)的可靠性。

綜上所述,國外的地震應(yīng)用系統(tǒng)主要針對地震業(yè)務(wù)的應(yīng)用特點自己設(shè)計框架,以消息控制器軟件模塊為主線,精練、高效。國內(nèi)的地震應(yīng)用系統(tǒng)主要依賴于國外的開源軟件框架,缺乏自主研發(fā)。在軟件框架自主研發(fā)方面,國外地震行業(yè)遠(yuǎn)遠(yuǎn)地走在了國內(nèi)地震行業(yè)的前面。

3 設(shè)計和實現(xiàn)

國際上的計算機專家重視制定各種軟件開發(fā)標(biāo)準(zhǔn),成立了一些計算機開發(fā)的標(biāo)準(zhǔn)委員會。各種軟件框架主要是實現(xiàn)其制定的最新軟件標(biāo)準(zhǔn),現(xiàn)實中,性能、易用性、兼容性等是放在第二位的。隨著軟件標(biāo)準(zhǔn)的快速更新,其軟件框架也不斷快速更新。由于軟件標(biāo)準(zhǔn)的前后差異,造成軟件框架功能龐雜、不穩(wěn)定、有些脫離實際應(yīng)用。因此要自主研發(fā)軟件框架,除了要吸收國際上通用的軟件框架和國際上地震行業(yè)軟件框架的優(yōu)點外,還要以實用為目標(biāo)。筆者在計算機語言的選擇上考慮了python,Java,PHP三種編程語言:①Python語法簡潔清晰,具有豐富和強大的庫,能夠把用其他語言制作的各種模塊輕松地聯(lián)結(jié)在一起,但考慮到Python各個版本之間的兼容性太差,未來升級Python版本時可能需要對已經(jīng)開發(fā)完成的軟件框架進行修改,因此放棄Python。②Java曾經(jīng)用于開發(fā)云南強震臺網(wǎng)烈度速報系統(tǒng),在開發(fā)過程中發(fā)現(xiàn)Java操作系統(tǒng)底層的能力太弱。③為了增加系統(tǒng)底層控制能力,不得不另外使用PHP語言開發(fā)系統(tǒng)底層。形成兩種計算機語言的底層混合編程,增加了復(fù)雜性。筆者根據(jù)不同的應(yīng)用場景,開發(fā)了2個自主設(shè)計框架的版本:一個是PHP版,專門用于需要對操作系統(tǒng)底層進行操作控制的應(yīng)用系統(tǒng)的開發(fā)(在Linux系統(tǒng)下,可以方便使用C Shell、管道命令等);另一個是Java版,用于不需要對操作系統(tǒng)底層進行操作控制,需要增強網(wǎng)絡(luò)通信能力的應(yīng)用系統(tǒng)的開發(fā)。

設(shè)計自主的軟件框架時需考慮3點:一是盡量避免使用現(xiàn)有的流行國外軟件框架作為基礎(chǔ)框架,這樣才能擁有框架的自主性;二是使用消息做主線控制器模塊,以便適應(yīng)地震業(yè)務(wù)的特點;三是軟件框架要有通用性,除了應(yīng)用于地震系統(tǒng)外,還要可以運用于不同行業(yè)的應(yīng)用系統(tǒng)開發(fā)。所以筆者自主設(shè)計開發(fā)了:面向方面編程的安全策略模塊Check,實現(xiàn)MVC(Action)設(shè)計模式的軟件模塊、Message消息主線控制器、Service業(yè)務(wù)邏輯層、DAO數(shù)據(jù)庫訪問模塊、Cache緩沖模塊。本軟件框架以實用為出發(fā)點,簡單、高效、優(yōu)雅。PHP版命名為PSimple框架,而Java版命名為JSimple框架,兩個版本的框架結(jié)構(gòu)基本相同,軟件框架的模塊(包),見表4。

PSimple 和JSimple 框架的結(jié)構(gòu)和作用是:在系統(tǒng)啟動后調(diào)用init模塊進行初始化。JSimple框架的初始化放在Servlet或構(gòu)造函數(shù)中,PSimple框架的初始化放在構(gòu)造方法中。初始化時開辟3個緩沖區(qū),分別是內(nèi)存緩沖、數(shù)據(jù)緩沖、網(wǎng)頁緩沖,并啟動消息傳遞控制器(地震消息)處于待命狀態(tài)。各個MVC模塊的Action都可以與地震消息通信,實現(xiàn)了各個Action的協(xié)同工作(地震發(fā)生后,監(jiān)測地震信息服務(wù)器的2個Action分別取到地震參數(shù)和強震數(shù)據(jù),通過地震消息將數(shù)據(jù)傳到各個Action中,步調(diào)一致協(xié)同工作)。每個Action又將工作分解為MVC模式,數(shù)據(jù)放在模型(M)中,通過運算流程(C)控制,如果Action有視圖(V)的話調(diào)用視圖層。在Action下增加一層業(yè)務(wù)邏輯層,專門用于存放數(shù)據(jù)計算處理的程序代碼。業(yè)務(wù)邏輯層之下再加一個數(shù)據(jù)庫接口層(孟晨等2012),專門用于程序與數(shù)據(jù)庫的聯(lián)結(jié)以及數(shù)據(jù)入庫、出庫等。數(shù)據(jù)緩沖接到數(shù)據(jù)庫接口中,用于提升數(shù)據(jù)庫查詢性能;網(wǎng)頁緩沖接入到MVC的視圖(V)層,用于增加網(wǎng)頁的打開速度;內(nèi)存緩沖可以在軟件框架的任何地方調(diào)用,用于緩沖任何開發(fā)人員需要緩沖的數(shù)據(jù)。數(shù)據(jù)攔截模為一個自動化模塊,在視圖層數(shù)據(jù)轉(zhuǎn)入轉(zhuǎn)出Action層,Action層數(shù)據(jù)轉(zhuǎn)入轉(zhuǎn)出業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層數(shù)據(jù)轉(zhuǎn)入轉(zhuǎn)出數(shù)據(jù)庫接口層時,成批處理數(shù)據(jù)賦值,大幅提高開發(fā)效率(比如模型數(shù)據(jù),不需要一一賦值每個數(shù)據(jù)屬性,只需要指定到模型即可)。另外,實現(xiàn)了SSO跨域的分布式單點登錄,便于將多個應(yīng)用系統(tǒng)的用戶整合在一起(汪禺,2017)。該自主設(shè)計的軟件框架的通用性、靈活性好,便于系統(tǒng)維護、升級和擴展,能運行于UNIX系列的多種操作系統(tǒng)上(圖3)。

表4 基于自主研發(fā)的軟件框架PSimple,JSimple的主要框架模塊Tab.4 Framework modules of PSimple and JSimple based on independent development

圖3 自主研發(fā)的PSimple和JSimple軟件框架Fig.3 Self-developed PSimple and JSimple software framework

為了強化自主設(shè)計的軟件框架的安全性能,筆者專門設(shè)計了安全策略。自動進行入侵檢測,實現(xiàn)方法是獲取Linux操作系統(tǒng)的進程信息,自動定時做快照和比對。發(fā)現(xiàn)有變化時給出警示,幫助用戶及時發(fā)現(xiàn)和排除特洛伊木馬(后門程序)。國外的軟件框架需要兼容全球不同國家的文字編碼,要在軟件模塊間傳遞特殊字符,容易形成unicode編碼漏洞和數(shù)據(jù)庫SQL注入漏洞。自主設(shè)計的軟件框架使用數(shù)據(jù)字典的設(shè)計方式,簡化了軟件模塊之間復(fù)雜的信息傳遞。外界程序交互界面(Web等)與軟件模塊之間只允許傳遞阿拉伯?dāng)?shù)字和26個英文字母信息(包括數(shù)據(jù)字典的ID),其它字符全部過濾掉,完全杜絕了unicode編碼漏洞和數(shù)據(jù)庫SQL注入漏洞。用自主軟件框架開發(fā)出的應(yīng)用系統(tǒng),要求以獨立的用戶身份運行,進行權(quán)限安全隔離(否則給出警示),避免了權(quán)限提升漏洞,防止黑客獲得ROOT權(quán)限等。

4 應(yīng)用和優(yōu)化

4.1 自主框架的應(yīng)用

早期的云南強震臺網(wǎng)中心的烈度速報系統(tǒng)使用國外流行的開源軟件框架開發(fā),主要由3個自行研發(fā)的分布式系統(tǒng)共同組成,并且使用了ShakeMap3.5的部分軟件模塊進行渲染制圖。通過分布式系統(tǒng)協(xié)同工作,實現(xiàn)了云南烈度速報發(fā)布的全自動化。由于沒有掌握國外軟件框架的設(shè)計技術(shù),烈度速報系統(tǒng)在運行過程中存在國外軟件框架的常見的問題和安全隱患,為系統(tǒng)的維護工作帶來了麻煩。因此,筆者使用自主研發(fā)的軟件框架PSimple和JSimple對烈度速報系統(tǒng)進行了升級。主要升級了3個自主研發(fā)的分布式系統(tǒng)(圖4):一是PHP控制中心子系統(tǒng)(PSimple框架)。系統(tǒng)啟動后駐留在內(nèi)存中,(近)實時檢查云南強震臺網(wǎng)是不是收到新的強震數(shù)據(jù),如果發(fā)現(xiàn)有新的強震數(shù)據(jù),自動解碼,將數(shù)據(jù)存入數(shù)據(jù)庫;二是地震自動響應(yīng)子系統(tǒng)(JSimple框架)。系統(tǒng)啟動后駐留在內(nèi)存中,(近)時實檢查是否有地震速報信息,如果有地震發(fā)生,通過系統(tǒng)自動組建虛擬強震臺站網(wǎng)絡(luò),獲取PHP控制中心子系統(tǒng)解碼后的強震臺站數(shù)據(jù),計算出烈度數(shù)據(jù)后自動調(diào)用烈度圖制圖子系統(tǒng)的部分軟件模塊進行渲染制圖;三是HTML視覺發(fā)布網(wǎng)站系統(tǒng)(JSimple框架)。如果地震自動響應(yīng)子系統(tǒng)產(chǎn)生震動圖,則自動將震動圖傳到HTML視覺發(fā)布網(wǎng)站上,自動顯示出來(圖4)。從圖4可以看出:PHP控制中心、地震自動響應(yīng)和HTML視覺發(fā)布3個子系統(tǒng)雖然實現(xiàn)的是不同的功能,但都具有基本相同的軟件框架結(jié)構(gòu),其中地震自動響應(yīng)子系統(tǒng)駐留內(nèi)存運行,沒有與用戶交互的可視化界面,所以MVC模型只使用了MC模式。

圖4 基于自主研發(fā)的軟件框架的烈度速報系統(tǒng)構(gòu)架圖Fig.4 Architecture diagram of the intensity report system of software framework based on independent development

用自主研發(fā)的軟件框架升級后,減少了大量的冗余運算代碼,構(gòu)架系統(tǒng)簡潔、運行穩(wěn)定。且框架安全性較好,沒有發(fā)現(xiàn)有黑客成功入侵的痕跡。同時,對漢化(震動圖圖件)等底層的開發(fā)工作有較好的幫助,有利于將軟件復(fù)雜性隱藏在框架底層(例如在框架內(nèi)部對漢字進行硬編碼等),提高了源程序代碼可讀性、便于維護性能。烈度速報系統(tǒng)升級后應(yīng)用效果良好,能夠在地震發(fā)生后的20 min內(nèi)自動產(chǎn)出地震儀器烈度圖,及時將地震儀器烈度圖提交給應(yīng)急救災(zāi)相關(guān)部門。例如:2017年3月27日云南漾濞5.1級地震的地震儀器烈度圖的震中烈度與云南省地震局現(xiàn)場調(diào)查發(fā)布的震中烈度一致(VI度)(圖5),且局部場地效應(yīng)明顯,對應(yīng)急救災(zāi)有較好的參考價值。

圖5 2017年3月27日云南漾濞5.1級地震儀器烈度圖Fig.5 Instrumental intensity diagram for the Yunnan Yangbi M5.1 earthquake occurred on March 27,2017

烈度速報系統(tǒng)是一個全自動系統(tǒng),由實際地震的信息觸發(fā),自動產(chǎn)出震動圖。為了適應(yīng)地震演練等需要,工作人員與烈度速報信息交互的新情況,筆者用自主研發(fā)的軟件框架開發(fā)了新的系統(tǒng)firstShake(JSimple框架),該系統(tǒng)實現(xiàn)了烈度速報系統(tǒng)的人機交互界面,可以通過系統(tǒng)界面對地震參數(shù)等數(shù)據(jù)進行設(shè)置,有利于將其它方式算出的有價值的地震模型參數(shù)加入到全自動烈度速報系統(tǒng)中。在2018年4月19日的大理洱源的地震演練中,通過自行研發(fā)的firstShake系統(tǒng)交互界面產(chǎn)出了加速度峰值預(yù)測圖和地震烈度預(yù)測圖。錄入地震參數(shù)后的5 min內(nèi)生成PS打印機格式的圖形。在沒有實際強震臺站收到可用數(shù)據(jù)的情況下,使用了Wald(2017)和Worden等(2010)提出的通過地形坡度計算剪切波速分布,再計算得到近似場地放大效應(yīng)(VS30)。所得到的加速度峰值預(yù)測圖和地震烈度預(yù)測圖的局部場地效應(yīng)效果明顯,應(yīng)用效果好(圖6,7)。

4.2 自主框架和環(huán)境的優(yōu)化

地震是突發(fā)事件,在沒發(fā)生地震時地震應(yīng)用系統(tǒng)的運算量較小,而當(dāng)發(fā)生地震后地震應(yīng)用系統(tǒng)的數(shù)據(jù)計算量可能呈指數(shù)增長,因此要防止地震應(yīng)用系統(tǒng)在關(guān)鍵時刻停止工作或崩潰。筆者對用自主研發(fā)軟件框架開發(fā)的地震應(yīng)用系統(tǒng)進行了長達(dá)一年多的性能優(yōu)化和測試,模擬對地震應(yīng)用系統(tǒng)進行DDOS分布式攻擊(王飛,2013)。方法是從數(shù)臺服務(wù)器上,使用壓力測試工具,遠(yuǎn)程對應(yīng)用系統(tǒng)進行攻擊。隨著攻擊強度的不斷增強,不斷強化軟件框架性能、應(yīng)用系統(tǒng)性能和優(yōu)化運行環(huán)境,具體操作如下:一是對軟件框架內(nèi)部的優(yōu)化。使用數(shù)據(jù)庫聯(lián)結(jié)池(JSimple框架),使用數(shù)據(jù)庫長聯(lián)結(jié)(PSimple框架)。增大緩沖內(nèi)存,改進緩沖數(shù)據(jù)獲取算法、存貯算法;二是對Java虛擬機、Web服務(wù)的優(yōu)化(王曉亮,2017),優(yōu)化Xmx和Xms等內(nèi)存(JSimple框架),把Apache服務(wù)改為Nginx(PSimple框架)(黃靜,李炳,2016);三是對Linux操作系統(tǒng)的底層參數(shù)進行優(yōu)化,包括最大打開文件數(shù),TCP/IP聯(lián)結(jié)數(shù)等,最后關(guān)閉Linux的OOM,以避免Linux操作系統(tǒng)承受不住內(nèi)存壓力而殺掉地震應(yīng)用系統(tǒng)的進程。經(jīng)過這一系列的優(yōu)化后,用JSimple框架和PSimple框架開發(fā)的地震應(yīng)用系統(tǒng)性能優(yōu)異。實測結(jié)果表明:同時可以承受3 500個以上的TCP/IP聯(lián)結(jié),響應(yīng)快速,內(nèi)存釋放速度快,已經(jīng)達(dá)到了目前國內(nèi)專業(yè)網(wǎng)站系統(tǒng)的高流量的優(yōu)異性能,如圖8所示。

圖6 在2018年4月19日的大理洱源的地震演練時產(chǎn)出的加速度峰值預(yù)測圖Fig.6 Prediction of peak ground acceleration for earthquake drills in Eryuan,Dali on April 19,2018

圖7 在2018年4月19日的大理洱源的地震演練時產(chǎn)出的地震儀器烈度預(yù)測圖Fig.7 Prediction of seismic instrument intensity for earthquake drills in Eryuan,Dali,April 19,2018

圖8 基于自主研發(fā)的軟件框架的性能優(yōu)化Fig.8 Performance optimization based on self-developed software framework

5 結(jié)論

本文分析了國內(nèi)軟件開發(fā)缺乏自主研發(fā)的問題與危害。在研究國際上通用著名框架和地震應(yīng)用系統(tǒng)框架的基礎(chǔ)上,吸收其優(yōu)點開發(fā)了自主研發(fā)的軟件框架。在框架的設(shè)計上始終堅持不過度設(shè)計,把復(fù)雜的事件做簡單的原則,框架具有靈活性、高效性,簡單易用性等,在地震應(yīng)用系統(tǒng)的開發(fā)上取得了良好的效果。同時,對軟件框架做了深入的優(yōu)化、測試與研究,取得了優(yōu)異的性能,達(dá)到了開發(fā)高性能、高容量的(地震)應(yīng)用系統(tǒng)的目標(biāo)。此外,該框架具有較好的通用性,可廣泛應(yīng)用于各種行業(yè)。該框架的CRUD開源模塊按照PGL許可證協(xié)議,在全球性網(wǎng)站github.com提供免費下載。當(dāng)然,一個成熟的軟件框架,需要幾十年的升級維護,才會越來越成熟,未來依然任重道遠(yuǎn)。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: a级毛片免费网站| av尤物免费在线观看| 中文一区二区视频| 色屁屁一区二区三区视频国产| 亚洲av日韩av制服丝袜| 日本午夜视频在线观看| 欧美成人在线免费| 免费一级无码在线网站| 国产亚洲精品自在久久不卡| 国产亚洲精品在天天在线麻豆 | 欧美国产日韩在线播放| 乱人伦中文视频在线观看免费| 亚洲男女在线| 国产欧美专区在线观看| 青青草原国产av福利网站| 四虎影视库国产精品一区| 国产女人在线| 四虎国产精品永久在线网址| 国产区人妖精品人妖精品视频| 丁香综合在线| 国产精品自在自线免费观看| 国产黄色免费看| 九月婷婷亚洲综合在线| 高清大学生毛片一级| 亚洲天堂色色人体| 天天色综合4| 国产一级裸网站| 91福利免费| 91精品啪在线观看国产91| 国产无码高清视频不卡| 免费不卡在线观看av| 亚洲成人手机在线| 亚洲人成成无码网WWW| 天天躁狠狠躁| 亚洲swag精品自拍一区| 99爱视频精品免视看| 2022国产无码在线| 在线欧美日韩国产| 人妖无码第一页| 亚洲香蕉伊综合在人在线| 欧美自慰一级看片免费| 四虎综合网| 国产丝袜一区二区三区视频免下载| 午夜国产精品视频| 日韩免费毛片视频| 国产一级毛片高清完整视频版| 狠狠躁天天躁夜夜躁婷婷| 国产精品第一区在线观看| 欧美日韩精品一区二区在线线 | AV不卡无码免费一区二区三区| 国产微拍精品| 欧美一区福利| 欧美中文字幕在线视频| 免费在线看黄网址| 亚洲bt欧美bt精品| 成年A级毛片| 97影院午夜在线观看视频| 亚洲欧美精品日韩欧美| 性网站在线观看| 日韩少妇激情一区二区| 久草性视频| 成人在线第一页| 国产性生大片免费观看性欧美| 成人免费视频一区二区三区| 国产欧美日韩资源在线观看| 人妻中文久热无码丝袜| a毛片在线免费观看| 亚洲第一综合天堂另类专| 免费国产不卡午夜福在线观看| 免费看一级毛片波多结衣| 又粗又硬又大又爽免费视频播放| 伊人中文网| 亚洲av成人无码网站在线观看| 国产成人综合在线观看| 欧美一级视频免费| 国产成人乱无码视频| 色综合成人| 欧美亚洲国产精品久久蜜芽| 久久99蜜桃精品久久久久小说| 亚洲Av综合日韩精品久久久| 激情综合网址| 精品久久香蕉国产线看观看gif|