2011年11月12日 星期六

browser + web server + cgi = ??

01


看到 web app (HTML5+Javascript+CSS) 在 mobile 上應用的威力後,開始想要一個類似在 Windows 運作的平台,如 PhoneGap 幫你把 web app 包成 native app 的方式等,此原理就是用一個含有 UIWebView/WebView 的元件呈現指定的 web app 等,成果類似開啟瀏覽器呈現某個網址內容等,然而,在 PC 上有沒類似的平台?有的,那就是眾多的 Chrome extension、 Chrome Web app 和 Firefox plugin 等。


而 mobile 採用 Webkit 元件,如 UIWebView 於 iOS、WebView 於 Android 上,我開始在想能不能也有類似的情境用在 PC 端呢?例如 Webkit 於 Windows 上?但我不想直接拿 Safari Windows 或 Chromium Windows 來用,所以,我開始想惡搞小東西。


除此之外,以一個 WebView 元件,大多只能執行 Javascript 來作事,有沒可能執行 CGI 呢?對 mobile 上,以 Android 和 iOS 上,的確有一些架構可以巧妙地達成,對於 PC 平台,通常就是架一個 web server + cgi 功能。這樣的好處是讓習慣在 server 端寫 web app 的開發者,可以專心寫 web app 然後又可以運行在 PC 上。


總結一下,打算做的東西將提供的功能:



  • Windows 平台

  • 支援 HTML5/Javascript/CSS 環境

  • 支援 CGI 環境


為啥挑 Windows 平台?對 Open Source 開發者來說,不少對 Windows 很反感,但不可否認的,在 UI 和 App 數量上,Windows 有傑出的表現,簡單說那就是 OS 市占率還是 Windows 最高,例如遊戲平台大多都是 Windows 吧?或是周遭親友都還在用 Windows 吧!並且 Unix 環境上搞那小東西,反而更加無意義,因為下一個小指令,整個 web server 不就都裝好了 :P 所以我挑選 Windows 平台來惡搞。


實作的元件:



  • Chromium Embededd Framework (Browser)

  • Nginx 1.0.9 on Windows (Web server)

  • PHP 5.3.8 VC9 x86 Non Thread Safe (CGI)


成果:


http://web-apps-platform-on-windows-client.googlecode.com/files/YYWebAppsPlatformOnWindows-1.0.zip


用法:



  • 將程式碼擺在 nginx\html 目錄,當程式開啟自動瀏覽該目錄的 index.php 檔案

  • 此程式解壓縮後,請避開使用桌面、包含空白等位置 (有空再來處理)


應用情境:



  • 透過 HTML5、PHP 開發 Windows 視窗應用程式

  • 使用者使用時就像打開一般的視窗程式,接著操作畫面為 Web UI,使用者不須自行安裝和管理 Web server 等環境


主要會想搞這種東西的理由之一,是不想啥東西都要擺在 server 上頭,並且 Windows 的普及性的關係,如果可以提供一個 client 端的平台來運行 web apps 的話,這樣就可以方便得把程式散佈出去,並且不須網路連線也可以運作。更實際的應用例子,可以用在一些小案子上頭,幫別人做做單機版管理方面的應用服務等。




沒有留言:

張貼留言