下面的段落描述了 chazidian 對(duì)未來(lái)因特網(wǎng)分布式應(yīng)用程序的展望。
客戶(hù)端和服務(wù)器標(biāo)準(zhǔn)
Executables, C++ (以及 Java) 會(huì)走向滅亡
C++ 和 Java 過(guò)去都無(wú)法創(chuàng)建運(yùn)行于所有計(jì)算機(jī)之上的標(biāo)準(zhǔn)組件。在未來(lái)的分布式應(yīng)用程序中,這些語(yǔ)言已經(jīng)沒(méi)有什么發(fā)展空間了。Executables 是非標(biāo)準(zhǔn)的。COM 對(duì)象也是非標(biāo)準(zhǔn)的,DLL 文件是非標(biāo)準(zhǔn)的。注冊(cè)設(shè)置(Registry settings)是非標(biāo)準(zhǔn)的,INI 文件是非標(biāo)準(zhǔn)的。我們不會(huì)讓這些組件毀壞了關(guān)于標(biāo)準(zhǔn)的分布式應(yīng)用程序的那個(gè)夢(mèng)想,即可運(yùn)行于世界上所有的計(jì)算機(jī)上。
客戶(hù)端必須成為標(biāo)準(zhǔn)的因特網(wǎng)瀏覽器
應(yīng)用程序客戶(hù)端必須是不帶有額外組件的標(biāo)準(zhǔn)客戶(hù)端。應(yīng)用程序的任何一部分都不能存儲(chǔ)在客戶(hù)端計(jì)算機(jī)中。應(yīng)用程序絕不能使用或依賴(lài)于任何組件、dll 或 ini 文件、注冊(cè)設(shè)置或者任何其它非標(biāo)準(zhǔn)的存儲(chǔ)在客戶(hù)端計(jì)算機(jī)之中的設(shè)置或文件。(這樣我們稱(chēng)之為瘦客戶(hù)端)。我們的建議是最好讓所以的用戶(hù)在 Windows 或 Mac 中使用標(biāo)準(zhǔn)的因特網(wǎng)瀏覽器,比如 Internet Explorer、Netscape 或 Firefox 等。
服務(wù)器必須成為標(biāo)準(zhǔn)的因特網(wǎng)服務(wù)器
應(yīng)用程序服務(wù)器必須是運(yùn)行不帶有額外組件的標(biāo)準(zhǔn)軟件的標(biāo)準(zhǔn)的因特網(wǎng)服務(wù)器。應(yīng)用程序絕不能使用或依賴(lài)于任何組件、dll 或 ini 文件、注冊(cè)設(shè)置或者任何其它非標(biāo)準(zhǔn)的存儲(chǔ)在客戶(hù)端計(jì)算機(jī)之中的設(shè)置或文件。我們的建議是最好使用標(biāo)準(zhǔn)的因特網(wǎng)服務(wù)器,比如 IIS,帶有標(biāo)準(zhǔn)的請(qǐng)求處理程序,比如 ASP,以及標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)連接程序(接口),比如 ADO。至于數(shù)據(jù)存儲(chǔ),應(yīng)該使用標(biāo)準(zhǔn)的基于 SQL 的數(shù)據(jù)庫(kù),比 Oracle 或者 MS SQL Server。
應(yīng)用程序必須使用因特網(wǎng)通信
不允許應(yīng)用程序客戶(hù)端和服務(wù)器經(jīng)由任何私有的協(xié)議進(jìn)行通信。客戶(hù)端必須經(jīng)由標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議請(qǐng)求服務(wù)器,服務(wù)器必須經(jīng)由同樣的協(xié)議作出響應(yīng)。客戶(hù)端必須有能力在不必維持某個(gè)永久的服務(wù)器連接的情況下使用任何的服務(wù)。我們的建議是最好讓對(duì)服務(wù)器使用標(biāo)準(zhǔn)的無(wú)國(guó)界的因特網(wǎng) HTTP 請(qǐng)求進(jìn)行請(qǐng)求。服務(wù)器應(yīng)當(dāng)使用標(biāo)準(zhǔn)的無(wú)國(guó)界的因特網(wǎng) HTTP 應(yīng)答進(jìn)行應(yīng)答。