幾千年來,巴別塔的故事一直是人類面對(duì)的一個(gè)核心的困境。為了交流和溝通我們?nèi)祟悇?chuàng)造出語言,但溝通與交流仍然存在障礙……相同語言之間的溝通依語境的不同,尚且存在巨大的鴻溝,不同語言之間更是讓人坐困愁城。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鲅魚圈免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。在物質(zhì)文明高度發(fā)達(dá)、人工智能都已×××的今天,程序員一樣在面對(duì)這樣的困境。我們的先輩基于那時(shí)的技術(shù)條件,基于那時(shí)的業(yè)務(wù)需求,映射性地逐步發(fā)展出FORTRAN/COBOL這樣命令式的程序設(shè)計(jì)、C/PASCAL這樣過程式的程序設(shè)計(jì),到C++/JAVA這樣的面向?qū)ο蟮某绦蛟O(shè)計(jì),再到今天WebService這樣面向服務(wù)的程序設(shè)計(jì)。于是各式各樣的異構(gòu)性層出不窮無所不在,硬件(CPU和指令集、硬件結(jié)構(gòu)、驅(qū)動(dòng)程序)、操作系統(tǒng)(不同操作系統(tǒng)的API和開發(fā)環(huán)境)、數(shù)據(jù)庫(不同的存儲(chǔ)及訪問格式)都不盡相同,高級(jí)語言更是依賴于特定的編譯器和操作系統(tǒng)API編程,它們彼此互不兼容,需要開發(fā)和運(yùn)行環(huán)境的支撐。這樣的異構(gòu)性使得各種不同軟硬件之間在不同平臺(tái)不能互聯(lián)互通,再加上網(wǎng)絡(luò)協(xié)議和通信機(jī)制的不同,系統(tǒng)之間還不能有效地相互集成,如同不同族群之間互相比劃著溝通。很難協(xié)同組織去面對(duì)挑戰(zhàn)。
雖然語言不同,但人類需要表達(dá)的內(nèi)核是相似相通的,同理,各種應(yīng)用系統(tǒng)之間的許多基礎(chǔ)功能和結(jié)構(gòu)是有相似性的,它們提供的服務(wù)和功能是相似的。如果每次開發(fā)都從零開始,就像每次造一款汽車都去重新發(fā)明一次輪子,那無疑是可笑的。
于是,屏蔽各種異構(gòu)性,實(shí)現(xiàn)某種標(biāo)準(zhǔn)的互操作,以實(shí)現(xiàn)復(fù)用(而不用每次都去發(fā)明輪子),通過松耦合,通過將具體的業(yè)務(wù)抽象,通過服務(wù)的表達(dá)和業(yè)務(wù)過程的原子化去架構(gòu)規(guī)劃整個(gè)業(yè)務(wù)流程,這個(gè)架構(gòu)就是SOA。
——SOA就是這樣的一個(gè)范式,用于組織和利用可能處于不同所有權(quán)范圍控制下的分布式系統(tǒng)。
打一個(gè)形象的比喻,一個(gè)企業(yè)的最終服務(wù)就像是要安排各國大廚準(zhǔn)備一桌頂級(jí)的菜肴,需要日本的生魚片、清酒,法國的鵝肝、生蠔,德國的啤酒、肘子,中國的爆炒、佛跳墻,在這種情況下,你并不用再去學(xué)習(xí)各種語言和大廚們交流,只需要自己編排好上菜的順序,在他們制作好的菜肴照片下寫好交付時(shí)間,交給大廚,互相點(diǎn)頭確認(rèn),按點(diǎn)去取菜,有統(tǒng)一的侍者規(guī)范上菜, 以保證最佳用戶體驗(yàn)。每個(gè)大廚后面自成體系,團(tuán)隊(duì)內(nèi)部用各自的語言交流,如同API后面的那個(gè)應(yīng)用。而你編排的上菜順序,就是流程驅(qū)動(dòng),服務(wù)員取菜就好比是API調(diào)用。
實(shí)際上,中國古代的四大發(fā)明中的印刷術(shù),就是SOA思想應(yīng)用的典范。沒有印刷術(shù)之前,書籍需要手工抄寫,因此效率低下,質(zhì)量也不穩(wěn)定,無法保證一致性。有了印刷術(shù),出版效率和內(nèi)容一致性提高了數(shù)量級(jí)!最初的印刷是刻板,這就是“復(fù)用”,如同軟件通過組件的封裝,達(dá)到重復(fù)和在不同場(chǎng)合使用的“復(fù)用”效果。但是,刻板印刷就是一個(gè)緊耦合,一塊刻板只能印某一本書的某一頁,其中具體的“字”無法復(fù)用,就如同軟件技術(shù)中微軟VB開發(fā)的com+組件就只能在windows環(huán)境中使用,無法與JAVA開發(fā)的EJB組件進(jìn)行復(fù)用和編排,因?yàn)樗麄兣c開發(fā)環(huán)境和運(yùn)行環(huán)境是緊耦合的,要在UNIX環(huán)境下使用,必須重新開發(fā),相當(dāng)于換書就得換版。而后的活字印刷就徹底解決了這個(gè)問題,文字和版面之間是松耦合,通過排版來實(shí)現(xiàn)一本書的印刷版面…….這又是數(shù)量級(jí)的躍升——如同我們可以封裝服務(wù),形成一個(gè)個(gè)API,通過服務(wù)編排的API聯(lián)動(dòng)來實(shí)現(xiàn)業(yè)務(wù)流程。
現(xiàn)在流行的所謂微服務(wù),就是單個(gè)的活字,通過SOA串聯(lián)成為文章(服務(wù))。講到這里,就必須提到schema。松耦合的活字印刷要想做好,每個(gè)字之間都需要遵循一定規(guī)范,比如字體,字符的大小,都要遵循一定的模式和契約。如同我們可以封裝服務(wù),形成一個(gè)個(gè)API,服務(wù)的共享通過API模式和契約(schema and contract)來協(xié)調(diào),通過服務(wù)編排的API聯(lián)動(dòng)來實(shí)現(xiàn)業(yè)務(wù)流程。
schema就像是活字印刷里每個(gè)字,都應(yīng)該有的固定規(guī)范,比如字體、大小、線條寬度等等,沒有這個(gè)規(guī)范,有的字大、有的字小,印出來亂七八糟,而這恰恰是目前微服務(wù)領(lǐng)域的現(xiàn)狀:基于XML的很多微服務(wù)根本沒有schema!它們僅僅是山寨SOA。
綜上所述,SOA是把復(fù)雜的業(yè)務(wù)系統(tǒng)切分成一塊塊小的獨(dú)立系統(tǒng),每個(gè)系統(tǒng)都叫一個(gè)服務(wù),對(duì)外提供一組獨(dú)立的API,然后通過API聯(lián)動(dòng)組織起完整的業(yè)務(wù)來。在每家企業(yè)發(fā)展的初期,通常一個(gè)或幾個(gè)數(shù)據(jù)庫表格就完成了業(yè)務(wù),像大多數(shù)小企業(yè)那樣。但當(dāng)企業(yè)的業(yè)務(wù)系統(tǒng)復(fù)雜性膨脹到一定規(guī)模后,就必須考慮如何將各個(gè)子系統(tǒng)按照彼此獨(dú)立的服務(wù)切分開來,不然以后會(huì)亂成一團(tuán)麻,根本就無法管理。
這種聯(lián)動(dòng),按照業(yè)務(wù)流程的要求是可以一步步串起來,提供無限的復(fù)雜度。這是企業(yè)內(nèi)部的情況。那么,在外部呢?現(xiàn)在各種云服務(wù)廠商也有著無數(shù)的API,每一個(gè)都可以看成一個(gè)獨(dú)立的服務(wù)。但如果把這些獨(dú)立的服務(wù)也串起來呢,那就可以創(chuàng)造出一個(gè)個(gè)全新的應(yīng)用。比如:有三個(gè)獨(dú)立的單位,第一個(gè)單位是地方衛(wèi)生系統(tǒng),他的數(shù)據(jù)庫保存的是該地某個(gè)人的醫(yī)療保險(xiǎn)記錄;第二個(gè)單位是某個(gè)醫(yī)院,他的數(shù)據(jù)庫中保存的是某個(gè)人在該醫(yī)院所有的就診記錄;第三個(gè)單位是保險(xiǎn)公司,他的數(shù)據(jù)庫里保存的是某個(gè)人的參保記錄。本來他們的系統(tǒng)互不相干,通過SOA的API聯(lián)動(dòng),就可以很方便地根據(jù)一定條件從上述幾個(gè)子系統(tǒng)中分別獲取數(shù)據(jù)后,組織起一個(gè)完整的新業(yè)務(wù)流程。比如,如果某人以前參加過社保醫(yī)療保險(xiǎn),并且去年就診次數(shù)不多于5次,同時(shí)前三年沒有在保險(xiǎn)公司購買過任何醫(yī)療保險(xiǎn),那么就可以給這個(gè)人提供50萬的醫(yī)療保險(xiǎn),不然就少一點(diǎn)或者拒接保險(xiǎn)申請(qǐng),等等。
……可見,API聯(lián)動(dòng)的想象空間是無限的,但前提是開放!
因?yàn)槊恳粋€(gè)API就如同一個(gè)單獨(dú)的音符,你稍微聯(lián)動(dòng)一下,它就能形成一個(gè)曲調(diào);
如果你是一個(gè)大師,你就能寫成一個(gè)恢弘的交響樂章;
如果你......進(jìn)入APEMESH......
CDIF、API、SOA、云計(jì)算、云服務(wù)、JSON、自動(dòng)測(cè)試、自動(dòng)文檔生成
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。