應(yīng)用程序必須是服務(wù)
下面的段落描述了 W3School 對(duì)未來(lái)的因特網(wǎng)分布式應(yīng)用程序的展望。
應(yīng)用程序必須是一系列的服務(wù)
應(yīng)用程序不再被允許包含大量已編輯的可執(zhí)行代碼。應(yīng)用程序應(yīng)被分為一系列更小的專(zhuān)門(mén)的服務(wù),這樣就更易創(chuàng)建和維護(hù)。這些專(zhuān)門(mén)的服務(wù)可由更精簡(jiǎn)的團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)和維護(hù)。服務(wù)(Services)與可執(zhí)行文件、組件或者 DLL 文件不同。服務(wù)可對(duì)提交的請(qǐng)求進(jìn)行應(yīng)答,也可返回?cái)?shù)據(jù)。我們的建議是把服務(wù)作為一系列服務(wù)器端的 HTML 以及(或者)XML 頁(yè)面來(lái)進(jìn)行開(kāi)發(fā)。
服務(wù)不能為某個(gè)特殊的目的創(chuàng)建
在歷史上,充斥著為完成某個(gè)單一的任務(wù)而創(chuàng)建的應(yīng)用程序。這些應(yīng)用程序中的許多在它們被發(fā)布前就已經(jīng)失敗了,這是由于它們無(wú)法根據(jù)需求的變化而進(jìn)行改變。這是對(duì)金錢(qián)和時(shí)間的巨大浪費(fèi)。我們(以及那些為我們的應(yīng)用程序買(mǎi)單的人們)都希望可以創(chuàng)建更靈活的應(yīng)用程序,這些應(yīng)用程序具有很強(qiáng)的普適性,可以更好地應(yīng)對(duì)未來(lái)的改變。未來(lái) - 即使(在過(guò)去)沒(méi)有考慮過(guò) - 應(yīng)用程序應(yīng)當(dāng)在保持完整性的同時(shí)更容易適應(yīng)變化。我們的建議是創(chuàng)建靈活的標(biāo)準(zhǔn)服務(wù)來(lái)服務(wù)于大量的不同的請(qǐng)求。
服務(wù)必須易于創(chuàng)建和編輯
只要可以避免,服務(wù)(Services)就不應(yīng)被代碼化。即使需要被代碼化,我們的建議是最好使用腳本。服務(wù)不應(yīng)被編譯為可執(zhí)行文件。這樣做會(huì)令服務(wù)難于訪(fǎng)問(wèn)和編輯。任何在應(yīng)用程序中使用的預(yù)編譯組件都會(huì)威脅到創(chuàng)建可移動(dòng)、可伸縮以及良好支持未來(lái)擴(kuò)展和變化的應(yīng)用程序的可能性。應(yīng)用程序應(yīng)該通過(guò)編輯其屬性和方法來(lái)創(chuàng)建和修改,而不是改變它們的可執(zhí)行代碼。我們的建議是使用某個(gè) XML 編輯器來(lái)創(chuàng)建和編輯服務(wù),并使用標(biāo)準(zhǔn)的服務(wù)引擎通過(guò)執(zhí)行服務(wù)描述來(lái)提供服務(wù)。服務(wù)描述應(yīng)當(dāng)存儲(chǔ)于類(lèi)似數(shù)據(jù)庫(kù)的數(shù)據(jù)倉(cāng)庫(kù)中或者某個(gè) XML/HTML 文件中。
服務(wù)和數(shù)據(jù)必須能自我描述
應(yīng)用程序客戶(hù)端應(yīng)當(dāng)有能力為某個(gè)服務(wù)查詢(xún)服務(wù)器,以及有能力請(qǐng)求當(dāng)前的服務(wù)器功能?蛻(hù)端和服務(wù)器也應(yīng)當(dāng)有能力通過(guò)某種可理解數(shù)據(jù)中每個(gè)元素的方法來(lái)交換數(shù)據(jù)。我們的建議是使用帶有 DTD 的信息詞表來(lái)交換服務(wù)器函數(shù),并使用 XML 來(lái)交換數(shù)據(jù)。