???
????? 對于專業的REBOL程序員,REBOL Technologies公司推出了REBOL/SDK,可以解決原本REBOL的一些小麻煩:
l?????????? REBOL因為是解釋型語言,所以源碼就是執行文件,任何人取得REBOL的執行文件就等于取得REBOL的源碼,完全不設防。如果你擔心你的程序被人窺視,你需要利用REBOL/SDK來將程序加密處理。
l?????????? 當你把REBOL程序交給別人時,別人可能因為沒有REBOL解釋器而無法執行。你可以利用REBOL/SDK來將REBOL解釋器和REBOL程序代碼結合成一個執行文件,以方便執行。
l?????????? 你的REBOL程序可能是由許多文件所組成,比較不方便傳送給別人。你可以利用REBOL/SDK來將這些文件全都整合成一個文件。
REBOL/SDK是商業軟件,需要向REBOL Technologies公司購買,請參考網頁:http://www.rebol.com/purchase.html。
REBOL/SDK的內部組成,如圖1所示。
Kernel
??????????? REBOL/SDK的Kernel內包括了三個精簡版的解釋器,分別是:/Base、/Pro、/Face(另有兩個非精簡的解釋器:/Command與/CommandView)。其中/Base是最簡單的版本,比REBOL/Core更小。而/Pro比/Base多了一些功能,/Face也比/Base多了一些功能,如圖2所示。

圖1? REBOL/SDK的內部組成

圖2? 三個精簡版Kernel的關系
??????????? REBOL/Core中有太多東西,許多程序都用不到(例如輔助說明文件,各種通信協議),如果將這些用不到的功能通通包進執行文件,會導致執行文件體積太大。所以REBOL/SDK設計出此三個精簡版的解釋器,并將許多原本REBOL/Core或REBOL/View內建的功能和通訊協議以源碼的方式公開(圖1中的Source Code Module),需要這些功能或通信協議的話,將其含入(include)即可。
Encapsulation
?????????? REBOL/SDK提供許多工具,可以將REBOL腳本和REBOL Kernel包在一起,成為一個執行文件。這些工具統稱為EnCap,是Encapsulation(封裝)的意思。EnCap系列的工具命名方式一律以En開頭,包括了:EnBase、EnPro、EnFace、EnCmd、EnCmdView,分別用來包裝/Base、/Pro、/Face、/Command、/CommandView。包裝的方式如圖3所示。
?????從圖2中,我們可以發現,EnCap程序,會將主要腳本(Main Script)、相關的文件(影像、聲音或其它數據),連同REBOL/SDK的一個Kernal以及被含入的源碼(included source),包在一起,成為一個執行文件。

圖3? EnCap將程序執行時所需要的一切通通包進一個執行文件中
???? 比較特別的是,EnCap會對這些包裝內容進行壓縮和加密【注】,所以也會把key和解密算法包進執行文件中。執行此程序時,會先將這些腳本和數據解密、解壓縮、然后才執行。
?
【注】還是要提醒你,這種加密其實效果不大。只能防一般人,不能防專家。千萬別認為經由EnCap處理過的程序可以絕對防止他人取得源碼。
?
發表日期: Mar. 21, 2004