隨著云計(jì)算、大數(shù)據(jù)和分布式系統(tǒng)的普及,當(dāng)前學(xué)術(shù)界和工業(yè)界在互聯(lián)網(wǎng)計(jì)算環(huán)境上還沒(méi)有提出具備通用能力的分布式程序設(shè)計(jì)語(yǔ)言。由于語(yǔ)言是軟件技術(shù)的核心,失去語(yǔ)言的支持意味著互聯(lián)網(wǎng)支持下的程序設(shè)計(jì)存在嚴(yán)重缺陷。GreatFree通用分布式程序設(shè)計(jì)語(yǔ)言(本文中簡(jiǎn)稱(chēng)通用語(yǔ)言)是國(guó)際學(xué)界業(yè)界第一個(gè)具備通用能力的分布式程序設(shè)計(jì)技術(shù),這與傳統(tǒng)的單機(jī)串行語(yǔ)言形成了鮮明對(duì)比。本文將探討GreatFree通用分布式程序設(shè)計(jì)語(yǔ)言、單機(jī)串行語(yǔ)言、并行語(yǔ)言以及并發(fā)語(yǔ)言之間的區(qū)別,并分析它們各自的作用。GreatFree通用分布式程序設(shè)計(jì)語(yǔ)屬于并發(fā)分布語(yǔ)言,是第一個(gè)具備通用特征的程序設(shè)計(jì)語(yǔ)言,它找到互聯(lián)網(wǎng)分布式計(jì)算環(huán)境中各種異質(zhì)分布式系統(tǒng)在代碼意義上的共同規(guī)律,在互聯(lián)網(wǎng)分布式環(huán)境中替代傳統(tǒng)語(yǔ)言。利用通用語(yǔ)言開(kāi)發(fā)具備同質(zhì)特征和靈活適應(yīng)能力的輔助開(kāi)發(fā)工具,從而替代現(xiàn)存各種分布式輔助開(kāi)發(fā)工具,程序效率顯著提高——在兩個(gè)數(shù)量級(jí)以上。
經(jīng)典程序設(shè)計(jì)語(yǔ)言(本文中簡(jiǎn)稱(chēng)為“單機(jī)語(yǔ)言”)仍然只是以支持單機(jī)串行邏輯描述為基本特征。當(dāng)設(shè)計(jì)分布式程序時(shí),程序設(shè)計(jì)人員必須通過(guò)復(fù)雜的轉(zhuǎn)換工作才能將單機(jī)串行邏輯轉(zhuǎn)換為以分布并發(fā)方式運(yùn)行的邏輯——這種改造導(dǎo)致程序設(shè)計(jì)難度大、 成本高,開(kāi)發(fā)質(zhì)量也無(wú)法保證。單機(jī)語(yǔ)言不能確保在分布式算法描述上具有共同規(guī)律,事實(shí)上,單機(jī)語(yǔ)言在分布式程序設(shè)計(jì)領(lǐng)域已經(jīng)被淘汰。
并發(fā)語(yǔ)言為了彌補(bǔ)單機(jī)語(yǔ)言的不足,都增加了一些分布式類(lèi)型用以設(shè)計(jì)分布式系統(tǒng)。遺憾的是,它們都沒(méi)有能夠找到適當(dāng)或者完整的元素。這導(dǎo)致這些語(yǔ)言還不具備真正的通用能力。
二、通用語(yǔ)言找到“共同規(guī)律”,并行語(yǔ)言缺乏對(duì)分布式程序本身規(guī)律的了解?????????????????????
要成為通用語(yǔ)言,需要滿(mǎn)足“原生資源”、“消息交互”以及“原生并發(fā)”三個(gè)必要條件,以及三個(gè)充分條件包括“分布式元素”、“分布式模式”以 及“分布式線程”。三個(gè)充分條件歸納為一點(diǎn)就是:找到互聯(lián)網(wǎng)分布式計(jì)算環(huán)境中各種異質(zhì)分布式系統(tǒng)在代碼意義上的共同規(guī)律。

通用語(yǔ)言提出的分布式元素、分布式模式和分布式線程技術(shù)滿(mǎn)足了對(duì)互聯(lián)網(wǎng)計(jì)算環(huán)境中各種場(chǎng)景需求的適應(yīng)。通用語(yǔ)言在顯著提高開(kāi)發(fā)效率的同時(shí),也能夠確保分布式系統(tǒng)的高質(zhì)量。這是單機(jī)語(yǔ)言、分布式架構(gòu)以及并發(fā)語(yǔ)言所不具備的。這些都為通用語(yǔ)言的廣泛接受提供了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。
- 并發(fā)語(yǔ)言沒(méi)有滿(mǎn)足成為通用語(yǔ)言的充分條件???????
并發(fā)語(yǔ)言都沒(méi)有滿(mǎn)足成為通用語(yǔ)言的充分條件,大多僅僅做到了為單機(jī)并發(fā)提供了便捷。并發(fā)語(yǔ)言歷經(jīng)五十年的發(fā)展,根據(jù)所針對(duì)計(jì)算環(huán)境的不同,大致可分為并行語(yǔ)言和并發(fā)語(yǔ)言?xún)纱箢?lèi)。并發(fā)語(yǔ)言技術(shù)缺乏對(duì)分布式程序本身規(guī)律的了解,沒(méi)有揭示出分布式系統(tǒng)在程序上的一致特征,但仍然希望通過(guò)過(guò)分簡(jiǎn)化的方法,以接近單機(jī)串行的開(kāi)發(fā)方式 實(shí)現(xiàn)分布式系統(tǒng)。當(dāng)場(chǎng)景復(fù)雜時(shí),這些語(yǔ)言開(kāi)發(fā)的系統(tǒng)質(zhì)量是不可靠的。

(并行語(yǔ)言及其特征)

(并行語(yǔ)言必要條件滿(mǎn)足情況統(tǒng)計(jì))
(并發(fā)語(yǔ)言及其特征)

(并發(fā)語(yǔ)言必要條件滿(mǎn)足情況統(tǒng)計(jì))
- 單機(jī)語(yǔ)言在基本元素上的缺陷????
單機(jī)語(yǔ)言包含著描述單機(jī)串行程序的基本元素,即賦值、判斷、循 環(huán)、子程序以及格式。所有的單機(jī)串行程序都是由這些元素形成 的。在面向?qū)ο蠹夹g(shù)被普遍采用后,類(lèi)型成為一種新的描述方式。這些都屬于單機(jī)串行元素。為了解決分布式開(kāi)發(fā)的問(wèn)題,單機(jī)語(yǔ)言增加了原生線程類(lèi)型和網(wǎng)絡(luò)設(shè)計(jì)類(lèi)型。這可以理解為單機(jī)語(yǔ)言提供的分布式元素。程序員需要付出很大的代價(jià)才能將它轉(zhuǎn)化為分布式計(jì)算層方便使用的類(lèi)型。三、主要分布式程序設(shè)計(jì)技術(shù)的衍生能力不同
分布式系統(tǒng)開(kāi)發(fā)過(guò)程中主要程序設(shè)計(jì)技術(shù)的衍生能力對(duì)比)
第一,單機(jī)語(yǔ)言對(duì)設(shè)計(jì)要素沒(méi)有任何隱藏。它的元素類(lèi)型處于原始狀態(tài),即原生線程與網(wǎng)絡(luò)通信。正是由于元素過(guò)于原始,在進(jìn)行分布式程序 設(shè)計(jì)時(shí)難度高。單機(jī)語(yǔ)言雖然具備接近完整的衍生能力,但是程序設(shè)計(jì)上的難度導(dǎo)致這種能力并沒(méi)有實(shí)踐上的意義。這些技術(shù)的典型案例包括 【1,2,3,6,7】;它們衍生能力由坐標(biāo)(1, 0)至(1, 36)的柱形表示 出來(lái)。第二,并發(fā)語(yǔ)言【232~234】、【259~261】和【266~268】同樣沒(méi)有對(duì)設(shè)計(jì)要素進(jìn)行任何隱藏。這說(shuō)明這些語(yǔ)言處于較原始的狀態(tài)。它們提出的元素在單機(jī)語(yǔ)言元素基礎(chǔ)上增加了消息和消息線程。這些語(yǔ)言雖然也具有非常完整的衍生能力,但難度過(guò)大的設(shè)計(jì)代價(jià)使得它們?cè)诜植际匠绦蛟O(shè)計(jì)中沒(méi)有實(shí)用價(jià)值。第三,并發(fā)語(yǔ)言【211~212】出現(xiàn)了對(duì)設(shè)計(jì)要素的隱藏。這個(gè)要素是網(wǎng)絡(luò)通信。它的主要特征是將網(wǎng)絡(luò)通信資源虛擬化為“通道”。線程乃至分布式節(jié)點(diǎn)之間的交互都是通過(guò)這個(gè)抽象的通道以消息傳遞的方式?進(jìn)行的。然而,它的元素過(guò)于原始,即原生線程和消息,尤其是采用原生并發(fā)技術(shù),導(dǎo)致其在衍生高級(jí)類(lèi)型過(guò)程中并沒(méi)有帶來(lái)與單機(jī)語(yǔ)言的顯著區(qū)別。(3, 0)至(3, 36)的柱形展示了它的衍生能力。第四,通用語(yǔ)言與所有并發(fā)語(yǔ)言最大的區(qū)別在于對(duì)充分條件的滿(mǎn)足。 它擁有最豐富的分布式元素,同時(shí)隱藏了過(guò)于原始的類(lèi)型。更重要的是, 它找到了組合這些元素的分布式模式。因此,它在具備完善衍生能力的同時(shí),還確保了這個(gè)過(guò)程的便捷性。(4, 0)至(4, 36)的柱形展示了它的衍生能力。第五,并發(fā)語(yǔ)言【203~205】與【252~254】使用了“協(xié)程”技術(shù)— —原生線程與消息線程都被隱藏了。需要指出的是,當(dāng)前【252~ 254】提供的消息機(jī)制還不能直接應(yīng)用在分布式環(huán)境下,雖然理論上可以做到。實(shí)踐當(dāng)中,【252~254】甚至保留了原生線程和網(wǎng)絡(luò)通信元素。這實(shí)際上與單機(jī)語(yǔ)言沒(méi)有區(qū)別了。【252~254】實(shí)際上屬于一種混合語(yǔ)言— —這體現(xiàn)出其設(shè)計(jì)者面對(duì)復(fù)雜分布式系統(tǒng)開(kāi)發(fā)時(shí)的兩難選擇。第六,并發(fā)語(yǔ)言【173~174】、【175~177】和【245~251】代表著 分布式程序設(shè)計(jì)中非常重要的一個(gè)分支。這幾個(gè)語(yǔ)言的元素包括消息、消息線程池、分布式消息以及分布式線程池。這些技術(shù)力圖減輕分布式程序設(shè)計(jì)產(chǎn)生高級(jí)類(lèi)型的難度。但由于過(guò)度隱藏必要的設(shè)計(jì)要素,導(dǎo)致質(zhì)量出現(xiàn)下降。同樣,對(duì)于線程的隱藏致使線程池性質(zhì)的高級(jí)類(lèi)型都不能通過(guò)這些語(yǔ)言衍生出來(lái)。(6, 0)至(6, 36)的柱形展示了這些語(yǔ)言的衍生能力。第七,并發(fā)語(yǔ)言中的【183~185】和【247~246】是當(dāng)前較為知名的 技術(shù)。它們與【173~174】代表的流派非常接近,對(duì)同樣的設(shè)計(jì)要素做了隱藏。在元素類(lèi)型特征上,也與【173~174】的元素也大致相同。唯一區(qū)別是元素類(lèi)型中增加了對(duì)等端。這個(gè)變化減輕了設(shè)計(jì)高伸縮系統(tǒng)的代價(jià)。?但這個(gè)變化并不足以確保高級(jí)類(lèi)型衍生后的質(zhì)量提高。高級(jí)線程池這些語(yǔ)言同樣不能衍生。(7, 0)至(7, 36)的柱形展示了他們的衍生能力。第八,并發(fā)語(yǔ)言中的【224】和【235~238】代表著通過(guò)分布式共享內(nèi)存技術(shù)解決分布式程序設(shè)計(jì)問(wèn)題的思想。這屬于比較理想化的方案。它們對(duì)設(shè)計(jì)要素做了大幅度隱藏,只提供了分布式線程池作為元素。它所帶來(lái)的衍生便捷性除了降低程序質(zhì)量以外,還導(dǎo)致很多高級(jí)類(lèi)型無(wú)法實(shí)現(xiàn)。?(8, 0)至(8, 36)的柱形展示了他們的衍生能力。第九,【207~210】和【32~33】屬于最理想化的分布式程序設(shè)計(jì)技術(shù)。它們都力圖只通過(guò)分布式對(duì)象技術(shù)描述應(yīng)用層邏輯從而實(shí)現(xiàn)任何分布式系統(tǒng)。遺憾的是,這個(gè)目標(biāo)在當(dāng)前的互聯(lián)網(wǎng)計(jì)算環(huán)境中是無(wú)法實(shí)現(xiàn)的。從(9, 0)至(9, 36)的柱形中可以看到它的極端程度。需要補(bǔ)充說(shuō)明的一點(diǎn)是,除了第九類(lèi),其他程序設(shè)計(jì)技術(shù)都不能實(shí)現(xiàn)分布式對(duì)象這種高級(jí)類(lèi)型。這也是說(shuō)明【207~210】和【32~33】是脫離實(shí)際計(jì)算環(huán)境過(guò)分理想化的技術(shù)。四、通用語(yǔ)言開(kāi)發(fā)代價(jià)最低
開(kāi)發(fā)代價(jià)指的是在一項(xiàng)程序設(shè)計(jì)技術(shù)專(zhuān)注的領(lǐng)域內(nèi)完成各種軟件系統(tǒng)所需要付出的各種成本的綜合a值。這個(gè)綜合值包括程序行、資金、人員乃至?xí)r間等多個(gè)指標(biāo)。由于篇幅有限,為了簡(jiǎn)便起見(jiàn),通過(guò)不同分布式技術(shù)的編程難度作為代價(jià)的評(píng)估標(biāo)準(zhǔn):當(dāng)一項(xiàng)技術(shù)實(shí)現(xiàn)特定分布式系統(tǒng)時(shí),如果涉及的編程難度相對(duì)低,那么其代價(jià)就應(yīng)該叫小。通過(guò)這個(gè)對(duì)比,可以看出,通用語(yǔ)言綜合代價(jià)是最低的。
第五項(xiàng)是在互聯(lián)網(wǎng)計(jì)算環(huán)境中真正具備通用能力的分布式程序語(yǔ)言。 在并發(fā)策略上,它提出了分布式線程。在交互方式上,利用分布式元素搭建適當(dāng)?shù)募軜?gòu)用以適應(yīng)不同場(chǎng)景下的交互需求。在語(yǔ)言風(fēng)格上,本質(zhì)上也屬于面向?qū)ο笳Z(yǔ)言;但它在這個(gè)基礎(chǔ)上提出了分布式模式,大大簡(jiǎn)化了分布式代碼設(shè)計(jì)代價(jià),達(dá)到了“異質(zhì)同化”的目的。簡(jiǎn)言之,通用語(yǔ)言在整 個(gè)程序設(shè)計(jì)譜系中占有獨(dú)特的位置(2, 2, 4)。

(通用語(yǔ)言在程序設(shè)計(jì)技術(shù)譜系中占有獨(dú)特的位置)
倍兒颯科技研發(fā)的?GreatFree通用分布式程序設(shè)計(jì)語(yǔ)言不僅能實(shí)現(xiàn)互聯(lián)網(wǎng)分布式系統(tǒng)涉及多種分布式供能,同時(shí)開(kāi)發(fā)員可以利用通用語(yǔ)言建立的輔助程序設(shè)計(jì)工具快速開(kāi)發(fā)分布式應(yīng)用層,也可以利用通用語(yǔ)言共同模式重構(gòu)系統(tǒng)層。通用語(yǔ)言以廉價(jià)、高效、高質(zhì)量、易管理以及高適應(yīng)性強(qiáng)為競(jìng)爭(zhēng)力將為開(kāi)發(fā)員和企業(yè)獲得大型程序設(shè)計(jì)項(xiàng)目,也是企業(yè)應(yīng)對(duì)未來(lái)市場(chǎng)變化、提升核心競(jìng)爭(zhēng)力的關(guān)鍵手段。