自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

“細(xì)腰”戰(zhàn)事:技術(shù)架構(gòu)的進(jìn)化

開發(fā) 架構(gòu)
熟知的互聯(lián)網(wǎng)協(xié)議棧給了我們深刻的“細(xì)腰”概念。但這種架構(gòu)是如何產(chǎn)生的?它是必然的嗎?“細(xì)腰”架構(gòu)在商業(yè)、技術(shù)、工程上給了我們哪些啟示?互聯(lián)網(wǎng)新的細(xì)腰結(jié)構(gòu)在哪里?

 [[317069]]

題記:誰(shuí)具有靈活的外在表現(xiàn)形式,誰(shuí)就能獲得回報(bào)——這正是進(jìn)化的精髓所在。——凱文·凱利 《失控》

熟知的互聯(lián)網(wǎng)協(xié)議棧給了我們深刻的“細(xì)腰”概念。但這種架構(gòu)是如何產(chǎn)生的?它是必然的嗎?“細(xì)腰”架構(gòu)在商業(yè)、技術(shù)、工程上給了我們哪些啟示?互聯(lián)網(wǎng)新的細(xì)腰結(jié)構(gòu)在哪里?

故事1:CPU指令集的烽火戰(zhàn)事

處理器大戰(zhàn)的這段歷史,已經(jīng)沉睡在計(jì)算機(jī)歷史的博物館之中,鮮有人提及。

在20多年前,有許多不同的處理器平臺(tái),戰(zhàn)事一觸即發(fā)。

首先是Intel的x86平臺(tái),從8086開始,然后是8088、80286、80386,再到奔騰,等等,這些被稱為CISC(復(fù)雜指令集計(jì)算機(jī))。

而在戰(zhàn)場(chǎng)的另一邊,則是基于RISC的處理器,蘋果產(chǎn)品、思科路由器和Sun Sparc工作站。

戰(zhàn)事的爭(zhēng)論可以歸結(jié)為:Intel x86 ISA是復(fù)雜混亂的,有點(diǎn)特別,難以使用,有時(shí)有bug,但在芯片級(jí)別提供了很多功能。另一方面,基于RISC的處理器有一個(gè)更簡(jiǎn)單的ISA,更多的功能留給上層的軟件來(lái)完成。

二十多年后,戰(zhàn)事的溫度已經(jīng)消散,Intel x86 ISA輕松獲勝。我們?nèi)匀挥浀锰O果和思科的產(chǎn)品線從基于RISC的處理器轉(zhuǎn)移到x86平臺(tái);AMD第一次開始制造x86“界面”的處理器,為了運(yùn)行兼容英特爾處理器的軟件。

x86 ISA能夠獲勝的原因是什么?

英特爾x86 ISA雜亂無(wú)章,伴隨著摩爾定律總是在一段時(shí)間內(nèi)增加更多的功能,而與之競(jìng)爭(zhēng)的RISC處理器則保持非常簡(jiǎn)潔,把更多功能留給了上層軟件應(yīng)用。

這個(gè)原因可能是違背了大多數(shù)人的直覺。

事實(shí)上,微軟首席研究研究員Andrew Baumann在《硬件是新的軟件》一文中總結(jié)了 Intel x86 cpu和ISA的復(fù)雜性增長(zhǎng),并使用英特爾在2015-2016年圍繞軟件安全向x86 ISA添加12條新指令作為例子,展示了處理器在一段時(shí)期內(nèi)所增加的復(fù)雜性。盡管12條新指令聽起來(lái)可能不多,但這些特殊的指令要求在CPU中創(chuàng)建新的寄存器、新的堆棧結(jié)構(gòu)(包括聽起來(lái)相當(dāng)復(fù)雜的新影子堆棧)、新的異常處理進(jìn)程(用于中斷)、更改內(nèi)存頁(yè)表格式等等。

這么做的主要目的是使開發(fā)人員能夠停止對(duì)軟件特定安全部分的信任,而開始信任硬件,而硬件(在理論上)是不能改變的。

原來(lái)如此。

Andrew Baumann說(shuō)道:

摩爾定律(Moore’s Law)的放緩將加大銷售CPU的難度:如果沒有微架構(gòu)方面的改進(jìn),它們的運(yùn)行速度不會(huì)大幅提高,也不會(huì)大幅提高能效,而且它們的核心數(shù)量與以前的cpu差不多,價(jià)格也與以前的CPU差不多。為什么會(huì)有人買一個(gè)新的CPU?英特爾轉(zhuǎn)向的一個(gè)原因是它的功能:如果新的CPU實(shí)現(xiàn)了一個(gè)重要的ISA擴(kuò)展——比如說(shuō),一個(gè)軟件需要至關(guān)重要的安全擴(kuò)展——消費(fèi)者將有充分的理由升級(jí)。

如果把計(jì)算機(jī)系統(tǒng)堆棧分層來(lái)看,上層是應(yīng)用程序,底層是實(shí)際的硬件,ISA是整個(gè)堆棧的細(xì)腰部分。Andrew Baumann在《硬件是新的軟件》這樣總結(jié)到:“作為當(dāng)今商品技術(shù)堆棧中最穩(wěn)定的‘細(xì)腰’接口,x86 ISA對(duì)于很多系統(tǒng)來(lái)說(shuō)都是一個(gè)關(guān)鍵點(diǎn)。”

[[317070]]

哲學(xué):

  • 細(xì)腰在應(yīng)對(duì)復(fù)雜問題的過程中非常重要。擁有最簡(jiǎn)單的細(xì)腰是在任何系統(tǒng)中降低復(fù)雜性的最重要的事情之一。
  • 有些情況下,“精簡(jiǎn)”或者簡(jiǎn)潔只是工程師的個(gè)人品味,和商業(yè)無(wú)關(guān)。
  • 反過來(lái)看,復(fù)雜性是生存的基礎(chǔ),也并不可怕。關(guān)鍵是找到自己增長(zhǎng)的“摩爾定律”,比如阿里的復(fù)雜性和“雙十一”。
  • 細(xì)腰總是意味著商品化,而商品化反過來(lái)又意味著利潤(rùn)下降。
  • 細(xì)腰廠商要么學(xué)會(huì)用更少的利潤(rùn)生活,擴(kuò)展到其他領(lǐng)域,要么學(xué)會(huì)拓寬腰圍(比如像英特爾的SGX)。而拓寬腰圍意味著復(fù)雜性的增加,大多數(shù)情況下是以意想不到的方式,而且這又違背設(shè)計(jì)者簡(jiǎn)潔的品味。
  • 雖然說(shuō)軟件吞噬世界,但請(qǐng)小心處理硬件和軟件之間的界限,在更廣泛意義來(lái)說(shuō),很難區(qū)分哪些該是硬件的,哪些該是軟件的。
  • 那些承擔(dān)更多工作并對(duì)外提供簡(jiǎn)單接口(隱藏復(fù)雜性)的組件(人)將贏得未來(lái)。
  • 我們總是在拓寬細(xì)腰。

故事2:SQL語(yǔ)言的峰回路轉(zhuǎn)

互聯(lián)網(wǎng)和個(gè)人電腦出現(xiàn)之前,貝爾實(shí)驗(yàn)室的兩位年輕科學(xué)家在發(fā)明C語(yǔ)言的時(shí)候,意識(shí)到,“計(jì)算機(jī)行業(yè)的成功在很大程度上取決于培養(yǎng)一批用戶,而不是訓(xùn)練有素的計(jì)算機(jī)專家。”

“他們想要一種查詢語(yǔ)言,像英語(yǔ)一樣容易閱讀,而且還包括數(shù)據(jù)庫(kù)管理和操作。對(duì)于沒有受過正規(guī)數(shù)學(xué)或計(jì)算機(jī)編程訓(xùn)練的用戶來(lái)說(shuō),這種語(yǔ)言更容易使用。”——20世紀(jì)70年代早期,IBM研究院的兩位博士Donald Chamberlin和Raymond Boyce在思考關(guān)系數(shù)據(jù)庫(kù)模型時(shí),意識(shí)到查詢語(yǔ)言將成為采用該模型的主要瓶頸,于是著手設(shè)計(jì)一種新的查詢語(yǔ)言。

于是,SQL在1974年首次面試。在接下來(lái)的幾十年里,隨著System R、Ingres、DB2、Oracle、SQL Server、PostgreSQL、MySQL(以及更多)等關(guān)系數(shù)據(jù)庫(kù)占領(lǐng)了軟件行業(yè),SQL成為與數(shù)據(jù)庫(kù)交互的卓越語(yǔ)言,并成為日益擁擠和競(jìng)爭(zhēng)激烈的生態(tài)系統(tǒng)的通用語(yǔ)言。

然而,隨著互聯(lián)網(wǎng)的不斷發(fā)展,軟件社區(qū)發(fā)現(xiàn)當(dāng)時(shí)的關(guān)系數(shù)據(jù)庫(kù)無(wú)法處理新的數(shù)據(jù)規(guī)模。之后,兩個(gè)新的互聯(lián)網(wǎng)巨頭取得了突破,開發(fā)了自己的非關(guān)系型分布式數(shù)據(jù)庫(kù)來(lái)應(yīng)對(duì)這種沖擊:谷歌的MapReduce(2004年發(fā)表論文)和Bigtable(2006年發(fā)表論文),以及亞馬遜的Dynamo(2007年發(fā)表論文)。

這些開創(chuàng)性的論文催生了更多的非關(guān)系型數(shù)據(jù)庫(kù),包括Hadoop(基于MapReduce論文,2006年)、Cassandra(深受Bigtable和Dynamo論文的啟發(fā),2008年)和MongoDB(2009年)。這一切被稱為NoSQL運(yùn)動(dòng)。

NoSQL光彩閃耀,似乎是通向工程成功的捷徑。之后不久,巴別塔的語(yǔ)言效應(yīng)開始出現(xiàn):每個(gè)NoSQL數(shù)據(jù)庫(kù)都提供了自己獨(dú)特的查詢語(yǔ)言,這意味著需要學(xué)習(xí)更多的語(yǔ)言;將這些數(shù)據(jù)庫(kù)連接到應(yīng)用程序的難度增加,導(dǎo)致大量脆弱的粘合代碼;缺乏第三方生態(tài)系統(tǒng),要求公司開發(fā)自己的操作和可視化工具。

[[317071]]

巴別塔的故事:當(dāng)時(shí)地上的人們都說(shuō)同一種語(yǔ)言,當(dāng)人們離開東方之后,他們來(lái)到了示拿之地。在那里,人們想方設(shè)法燒磚好讓他們能夠造出一座城和一座高聳入云的塔來(lái)傳播自己的名聲,以免他們分散到世界各地。上帝來(lái)到人間后看到了這座城和這座塔,說(shuō)一群只說(shuō)一種語(yǔ)言的人以后便沒有他們做不成的事了;于是上帝將他們的語(yǔ)言打亂,這樣他們就不能聽懂對(duì)方說(shuō)什么了,還把他們分散到了世界各地,這座城市也停止了修建。

還記得數(shù)據(jù)庫(kù)領(lǐng)域圖靈獎(jiǎng)得主Michael Stonebraker的文章《MapReduce: A major step backwards》嗎?NoSQL語(yǔ)言的不成熟意味著在應(yīng)用程序級(jí)別需要更多的復(fù)雜性。連接的缺乏也導(dǎo)致了去正規(guī)化,導(dǎo)致數(shù)據(jù)膨脹和僵化。

反向的摩擦力使得社區(qū)重新回到SQL。首先出現(xiàn)的是Hadoop上的SQL接口(后來(lái)是Spark),引領(lǐng)業(yè)界從“NoSQL”轉(zhuǎn)向“Not Only SQL”。然后出現(xiàn)了NewSQL:完全支持SQL的新型可伸縮數(shù)據(jù)庫(kù)。

業(yè)界的焦點(diǎn)聚集在谷歌身上。

谷歌分別在2012年和2017年兩次發(fā)表Spanner的論文(作者包括最初的MapReduce作者),聲稱:

雖然這些系統(tǒng)提供了數(shù)據(jù)庫(kù)系統(tǒng)的一些優(yōu)點(diǎn),但它們?nèi)狈?yīng)用程序開發(fā)人員經(jīng)常依賴的許多傳統(tǒng)數(shù)據(jù)庫(kù)特性。一個(gè)關(guān)鍵的例子是健壯的查詢語(yǔ)言,這意味著開發(fā)人員必須編寫復(fù)雜的代碼來(lái)處理和聚合應(yīng)用程序中的數(shù)據(jù)。因此,我們決定把Spanner變成一個(gè)功能齊全的SQL系統(tǒng),查詢執(zhí)行與Spanner的其他架構(gòu)特性緊密結(jié)合(比如強(qiáng)一致性和全局復(fù)制)。

在論文的后面,他們進(jìn)一步闡述了從NoSQL到SQL轉(zhuǎn)換的基本原理:

Spanner的原始API提供了NoSQL方法,用于對(duì)單個(gè)表和交錯(cuò)表進(jìn)行點(diǎn)查找和范圍掃描。雖然NoSQL方法提供了啟動(dòng)Spanner的簡(jiǎn)單路徑,并且在簡(jiǎn)單的檢索場(chǎng)景中仍然很有用,但是SQL在表達(dá)更復(fù)雜的數(shù)據(jù)訪問模式和將計(jì)算推給數(shù)據(jù)方面提供了重要的附加價(jià)值。

這篇文章還描述了SQL的采用并沒有止步于Spanner,而是實(shí)際上擴(kuò)展到了谷歌的其余部門,在這些部門,多個(gè)系統(tǒng)共享一個(gè)共同的SQL語(yǔ)言:

Spanner的SQL引擎共享一種常見的SQL語(yǔ)言,稱為“標(biāo)準(zhǔn)SQL”,與谷歌上的其他幾個(gè)系統(tǒng)包括內(nèi)部系統(tǒng),如F1和Dremel(以及其他系統(tǒng)),以及外部系統(tǒng),如BigQuery…

對(duì)于谷歌內(nèi)的用戶,這降低了跨系統(tǒng)工作的障礙。針對(duì)扳手?jǐn)?shù)據(jù)庫(kù)編寫SQL的開發(fā)人員或數(shù)據(jù)分析人員可以將他們對(duì)語(yǔ)言的理解轉(zhuǎn)移到Dremel,而不必考慮語(yǔ)法、空處理等方面的細(xì)微差異。

這種方法的成功不言自明。Spanner已經(jīng)是主要谷歌系統(tǒng)(包括AdWords和谷歌Play)的“真實(shí)來(lái)源”,而“潛在的云客戶對(duì)使用SQL非常感興趣”。

因此,有人質(zhì)疑:谷歌這個(gè)老司機(jī)是不是把大數(shù)據(jù)行業(yè)給帶偏了?

目前,所有主要的云供應(yīng)商都提供流行的托管關(guān)系數(shù)據(jù)庫(kù)服務(wù):例如,Amazon RDS、谷歌云SQL、用于PostgreSQL的Azure數(shù)據(jù)庫(kù)、當(dāng)然也有阿里巴巴的數(shù)據(jù)庫(kù)體系。Hadoop、Spark和Kafka上的SQL接口也繼續(xù)蓬勃發(fā)展。

亞馬遜 CTO甚至說(shuō):(與PostgreSQL和mysql兼容的)Aurora數(shù)據(jù)庫(kù)產(chǎn)品是“AWS歷史上增長(zhǎng)最快的服務(wù)”。

這段歷史意味著SQL重新回歸數(shù)據(jù)的通用接口。數(shù)據(jù)分析軟件堆棧的細(xì)腰已經(jīng)形成。

哲學(xué):

  • 從巴別塔的失敗中汲取教訓(xùn)。
  • 所有的細(xì)腰都是語(yǔ)言接口,而SQL更明顯。
  • 我們總是在拓寬細(xì)腰。

故事3:系統(tǒng)調(diào)用原語(yǔ)永存

這張地圖,描繪了免費(fèi)開源軟件與微軟帝國(guó)的史詩(shī)般的斗爭(zhēng)。

在操作系統(tǒng)的戰(zhàn)場(chǎng)上,《軟件戰(zhàn)爭(zhēng)之后》的作者如此評(píng)價(jià)Unix家族樹:Unix和Linux還沒有打敗Windows的最大原因是工作站供應(yīng)商沒有在軟件上一起工作,因此不斷地重新實(shí)現(xiàn)彼此的特性。

1980年代的“ UNIX戰(zhàn)爭(zhēng)”之所以發(fā)生,是因?yàn)樵S多UNIX供應(yīng)商(他們的產(chǎn)品均基于原始Bell Labs UNIX的不同版本),其產(chǎn)品略有不同,并引起了激烈的競(jìng)爭(zhēng)。

Unix在商業(yè)爆發(fā)之前已經(jīng)流行了很多年,但是其商業(yè)成功的關(guān)鍵是一波低成本工作站的迅速涌現(xiàn),它迅速將集中式微型計(jì)算機(jī)推到了一邊。這些工作站運(yùn)行的操作系統(tǒng)在許多情況下幾乎與大型系統(tǒng)上的操作系統(tǒng)相同,但是它們更小,更便宜,以至于它們可以部署在單個(gè)員工的桌面上。一些供應(yīng)商進(jìn)入了該市場(chǎng)以及相關(guān)的存儲(chǔ)和計(jì)算服務(wù)器市場(chǎng)。

問題是這些供應(yīng)商中的每一個(gè)都有自己的Unix版本。所有的Unix變體可能都有某種共同的遺產(chǎn),但是,當(dāng)它們出現(xiàn)在已部署的系統(tǒng)上時(shí),它們已經(jīng)完全不同了。類Unix系統(tǒng)的異構(gòu)網(wǎng)絡(luò)給系統(tǒng)管理員,開發(fā)人員和用戶都帶來(lái)了挑戰(zhàn)。每種新的系統(tǒng)類型都有其自己的一套怪癖,錯(cuò)誤和不完善的特性要處理。隨著各種Unix實(shí)現(xiàn)的分歧,它們變得越來(lái)越令人討厭。結(jié)果,許多組織試圖標(biāo)準(zhǔn)化單個(gè)供應(yīng)商,希望他們選擇了正確的供應(yīng)商。

要么,要么他們轉(zhuǎn)向那些當(dāng)時(shí)沒有以任何令人信服的方式運(yùn)行Unix的廉價(jià)新PC系統(tǒng)。但是它們確實(shí)運(yùn)行DOS(最終運(yùn)行Windows),一旦運(yùn)行它們,它們都是一樣的。打包的軟件變得隨時(shí)可用,到1990年代中期,越來(lái)越清楚的是,未來(lái)的桌面系統(tǒng)將不再運(yùn)行Unix。令人沮喪的是,幾乎所有Unix工作站供應(yīng)商都在與Microsoft進(jìn)行交易,并宣布未來(lái)的工作站(和服務(wù)器)將改為運(yùn)行Windows NT。那是一個(gè)黑暗的時(shí)期。

Linux是在Windows幾乎遍布全世界的情況下,嘗試拯救世界。但是,幾乎從一開始,批評(píng)者就開始說(shuō)Linux會(huì)像Unix一樣嚴(yán)重地分裂。

事情發(fā)展正是如此。

在商業(yè)面前,Unix和Linux的似乎沒有辦法汲取巴別塔的教訓(xùn)。

操作系統(tǒng)的細(xì)腰在拓寬,但Unix的哲學(xué)卻保留了下來(lái)。

作為細(xì)腰模型的案例經(jīng)常被提及的,一個(gè)互聯(lián)網(wǎng)協(xié)議棧,一個(gè)是Unix系統(tǒng)調(diào)用接口。

正是Unix的哲學(xué)讓系統(tǒng)調(diào)用的原語(yǔ)一直保存下來(lái):

  • 模塊化規(guī)則:編寫通過干凈接口連接的簡(jiǎn)單零組件。
  • 平行思考:大多數(shù)任務(wù)由可能并行運(yùn)行的子任務(wù)組成。這也適用于用戶交互。并行可以節(jié)省大量時(shí)間和挫敗感。
  • 分層思考:層次結(jié)構(gòu)允許跨嵌套元素統(tǒng)一應(yīng)用任務(wù)和屬性。這是一個(gè)鼓勵(lì)分解和模塊化的重大想法。

哲學(xué):

  • 簡(jiǎn)單。簡(jiǎn)單性的一個(gè)關(guān)鍵方面是正交性。在服務(wù)接口中,正交性意味著只有一種方法可以訪問任何基本的底層服務(wù)或資源。冗余特性增加了接口的復(fù)雜性,卻沒有使它在邏輯上更強(qiáng)大。系統(tǒng)架構(gòu)師理解接口設(shè)計(jì)中正交性的價(jià)值,并且接受這種簡(jiǎn)單形式的設(shè)計(jì)標(biāo)準(zhǔn)。Unix系統(tǒng)調(diào)用接口中的一個(gè)正交性示例是將目錄之間的文件移動(dòng)分解為三個(gè)操作:創(chuàng)建物理鏈接(使用link())、在目標(biāo)位置創(chuàng)建鏈接的副本,然后刪除原始鏈接(使用unlink())。這種復(fù)合性的文件移動(dòng)操作是在用戶級(jí)命令(mv)中實(shí)現(xiàn)的。這使得用戶級(jí)文件移動(dòng)操作可以很容易地一般化,包括物理卷之間的移動(dòng)(這需要復(fù)制內(nèi)容),以及使用link()在同一個(gè)卷中實(shí)現(xiàn)有效的文件共享。
  • 原語(yǔ)。人們經(jīng)常注意到,操作系統(tǒng)和互聯(lián)網(wǎng)支持的應(yīng)用程序的多樣性遠(yuǎn)遠(yuǎn)超過了其初始設(shè)計(jì)者所預(yù)見的。設(shè)計(jì)人員創(chuàng)建了一組通用原語(yǔ),以便這些目標(biāo)應(yīng)用處于原語(yǔ)所支持的空間中。這個(gè)空間還包括許多其他的應(yīng)用,包括許多最初沒有預(yù)見到的應(yīng)用。
  • 抽象。實(shí)現(xiàn)資源限制和信息隱藏。細(xì)腰層提供其實(shí)現(xiàn)中的資源抽象,防止應(yīng)用程序直接訪問它們。信息隱藏是通過隱藏模塊的實(shí)現(xiàn)細(xì)節(jié)來(lái)實(shí)現(xiàn)模塊化編程,從而使用戶無(wú)需了解模塊內(nèi)部的復(fù)雜性。

故事4:IP協(xié)議適者生存

毫無(wú)疑問,互聯(lián)網(wǎng)的細(xì)腰是網(wǎng)絡(luò)層IP協(xié)議。盡管有很多文章宣稱UDP,TCP,HTTP成為新的細(xì)腰,但并沒有得到廣泛認(rèn)可。

美國(guó)計(jì)算機(jī)學(xué)會(huì)(SIGCOMM)數(shù)據(jù)通信特別興趣小組在2011年的一項(xiàng)研究表明:互聯(lián)網(wǎng)細(xì)腰結(jié)構(gòu)的出現(xiàn)遵循一個(gè)進(jìn)化模型,稱為EvoArch。在自然界中,共享同一生態(tài)系統(tǒng)的物種經(jīng)常爭(zhēng)奪資源,導(dǎo)致較弱的競(jìng)爭(zhēng)者滅絕?;ヂ?lián)網(wǎng)架構(gòu)演變也發(fā)生了類似的事情:網(wǎng)絡(luò)的結(jié)構(gòu)隨著不同層新協(xié)議的創(chuàng)建而變化,現(xiàn)有協(xié)議由于與同一層其他協(xié)議的競(jìng)爭(zhēng)而被刪除。

在分組交換網(wǎng)絡(luò)的發(fā)展過程中,開發(fā)了許多不同的協(xié)議(或協(xié)議棧)。隨著時(shí)間的推移,所有這些協(xié)議都被放棄了,轉(zhuǎn)而支持IP協(xié)議棧。例如,Banyan Vines有自己基于IP協(xié)議的協(xié)議棧,稱為VIP(Vines Internet Protocol),而Novell NetWare也有自己的基于IPX協(xié)議的協(xié)議棧,叫做IPX。其他標(biāo)準(zhǔn)化組織同樣創(chuàng)建了各自標(biāo)準(zhǔn)的協(xié)議族,如國(guó)際電信聯(lián)盟(International Telecommunications Union,ITU)就構(gòu)建了無(wú)連接模式網(wǎng)絡(luò)服務(wù)的協(xié)議族(Connectionless Mode Network Service,CLNS)。

為什么這些協(xié)議族都半途而廢了呢?因?yàn)槠渲幸恍﹨f(xié)議是私有的,許多政府和大型組織出于各種原因拒絕了分組交換網(wǎng)絡(luò)中私有性質(zhì)的解決方案。私有協(xié)議通常是由少數(shù)人群開發(fā)和維護(hù)的,通常也會(huì)缺乏深思熟慮。基于標(biāo)準(zhǔn)的協(xié)議可能更復(fù)雜,但它們也往往由更多經(jīng)驗(yàn)豐富的工程師開發(fā)和維護(hù)?;贑LNS的協(xié)議棧在過去的一段時(shí)間里一直是個(gè)有力的競(jìng)爭(zhēng)者,但它從未真正在全球互聯(lián)網(wǎng)上流行起來(lái),而當(dāng)時(shí)全球互聯(lián)網(wǎng)正成為一股重要的經(jīng)濟(jì)力量。還有一些具體的技術(shù)原因,例如,CLNS不對(duì)線路編號(hào),而是對(duì)主機(jī)編號(hào)。可達(dá)性信息的聚合由此受到了許多方面的限制。

——《計(jì)算機(jī)網(wǎng)絡(luò):?jiǎn)栴}與解決方案》

EvoArch的研究指出:

  • 細(xì)腰的上部在拓寬,但競(jìng)爭(zhēng)是你死我活。文件傳輸協(xié)議(FTP)和HTTP提供的服務(wù)在特定于應(yīng)用程序的層中重疊。當(dāng)HTTP因其自身的高層產(chǎn)品(如Web瀏覽器等應(yīng)用程序)而變得更有價(jià)值時(shí),F(xiàn)TP就消失了。
  • 細(xì)腰的底層模塊每一個(gè)都必不可少,對(duì)于網(wǎng)絡(luò)來(lái)說(shuō),其主要原因可能是這些協(xié)議模塊靠近硬件,迭代周期長(zhǎng),沒有一個(gè)協(xié)議能夠占絕對(duì)的主導(dǎo)地位,所以長(zhǎng)時(shí)間共同存在。
  • 細(xì)腰部分出現(xiàn)古老而強(qiáng)大的協(xié)議。這些協(xié)議被稱為演化核心,很難進(jìn)行重大修改。
  • 競(jìng)爭(zhēng)必然導(dǎo)致細(xì)腰,保持細(xì)腰多樣性的一個(gè)建議是在設(shè)計(jì)服務(wù)和功能時(shí)候不要重疊,以避免競(jìng)爭(zhēng)。
  • 最好的協(xié)議不一定在競(jìng)爭(zhēng)中獲勝。

EvoArch的研究表明,即使未來(lái)的互聯(lián)網(wǎng)架構(gòu)最初不是以細(xì)腰的形狀構(gòu)建的,隨著它們的發(fā)展,它們也可能演進(jìn)為細(xì)腰的形狀。

哲學(xué):

  • 自由軟件在復(fù)雜的環(huán)境中工作得很好。也許根本沒有人了解全局,但進(jìn)化并不需要全球的理解,它只需要局部的小改進(jìn)和一個(gè)開放的市場(chǎng)(“適者生存”)。——Linus Torvalds
  • 進(jìn)化的結(jié)果,細(xì)腰緩慢地沿著協(xié)議棧向上移動(dòng)。
  • 良好的細(xì)腰設(shè)計(jì)帶來(lái)互操作性。
  • 細(xì)腰結(jié)構(gòu)帶來(lái)部署擴(kuò)展性。
  • 保持較低的層次通用,以便最有效地滿足較高層次的特定要求。

互聯(lián)網(wǎng)新的細(xì)腰結(jié)構(gòu)在哪里?

IP成為互聯(lián)網(wǎng)協(xié)議的細(xì)腰之后,業(yè)界有兩個(gè)力量推進(jìn)細(xì)腰結(jié)構(gòu)的演進(jìn)。

第一個(gè)是社區(qū)推動(dòng)整個(gè)網(wǎng)絡(luò)協(xié)議棧成為細(xì)腰。

第二個(gè)是NDN推動(dòng)IP細(xì)腰向內(nèi)容細(xì)腰的轉(zhuǎn)變。

IPFS是一個(gè)雄心勃勃的項(xiàng)目,融合了NDN, Git, BitTorrent, IPFS, Tahoe-LAFS, SFS等多種思想,旨在取代HTTP構(gòu)建新的互聯(lián)網(wǎng)細(xì)腰。

在IPFS協(xié)議的腰部,是一個(gè)稱為星際鏈?zhǔn)綌?shù)據(jù)(InterPlanetary Linked Data,IPLD)的數(shù)據(jù)結(jié)構(gòu)。簡(jiǎn)單來(lái)說(shuō),IPLD是將傳統(tǒng)Posix語(yǔ)義的文件目錄樹映射為不同節(jié)點(diǎn)上的DAG圖,稱為IPFS unixfs 。IPFS unixfs 使用可插拔的數(shù)據(jù)分片算法對(duì)傳統(tǒng)posix 語(yǔ)義的文件進(jìn)行分片。傳統(tǒng)posix 語(yǔ)義的文件是順序存儲(chǔ)的字節(jié),IPFS unixfs 是基于分片的有向無(wú)環(huán)圖。IPFS unixfs的最小單位是分片,這些分片被稱為葉子或者數(shù)據(jù)片,為了構(gòu)建有向無(wú)環(huán)圖,必然需要引入中間文件對(duì)象,這些中間對(duì)象通過一定拓?fù)鋒ash為一個(gè)root CID。IPFS unixfs 這種構(gòu)建圖式數(shù)據(jù)存儲(chǔ)的方式被稱為IPLD,即是星際鏈?zhǔn)綌?shù)據(jù),這也是IPFS 內(nèi)容尋址的基礎(chǔ)。

把IPLD這樣的數(shù)據(jù)結(jié)構(gòu)映射在互聯(lián)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)之上,IPFS就有了星際互聯(lián)的能力。

協(xié)議在變胖,應(yīng)用在變瘦,Web正在走向Web3。

和區(qū)塊鏈(Filecoin)一起,IPFS正在成為Web3的基礎(chǔ)設(shè)施。

分布式,模塊化,邊緣生長(zhǎng),元變化,。。。很多IPFS正在踐行的哲學(xué)需要IPFS自身給出證明。

我們拭目并報(bào)以溫暖的期待。

混沌和隨機(jī)是兩回事

在混沌中存在著秩序。——凱文·凱利 《失控》

[[317072]]

 

責(zé)任編輯:武曉燕 來(lái)源: 補(bǔ)天遺石
相關(guān)推薦

2019-04-25 15:45:38

華為

2023-02-14 07:54:31

元宇宙區(qū)塊鏈

2022-03-24 10:51:41

架構(gòu)技術(shù)數(shù)據(jù)庫(kù)

2023-12-12 07:34:54

炎凰數(shù)據(jù)大數(shù)據(jù)分析數(shù)據(jù)庫(kù)開發(fā)

2022-05-09 11:29:42

架構(gòu)數(shù)據(jù)

2024-04-15 12:43:26

人工智能LLM

2009-10-28 09:11:17

2024-09-21 10:43:15

數(shù)據(jù)技術(shù)信息

2022-04-24 11:01:09

架構(gòu)數(shù)據(jù)庫(kù)專車

2024-10-14 17:35:30

2020-06-16 16:11:23

手機(jī)市場(chǎng)中國(guó)市場(chǎng)出貨量

2011-09-01 09:34:21

架構(gòu)

2018-08-22 17:58:01

數(shù)據(jù)平臺(tái)數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)

2013-10-14 09:29:06

IT數(shù)據(jù)云計(jì)算

2016-10-17 13:50:31

2024-09-21 11:14:01

2020-10-08 18:29:43

數(shù)據(jù)安全數(shù)據(jù)庫(kù)審計(jì)數(shù)據(jù)庫(kù)安全

2009-10-29 16:28:04

2018-05-14 12:30:37

數(shù)據(jù)驅(qū)動(dòng)算法優(yōu)化

2018-07-23 16:05:44

大數(shù)據(jù)進(jìn)化技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)