微軟的新網路平台科技: Microsoft Silverlight (Flash殺手?)

Posted by Mr. Saturday

微軟在今年 (2007) 五月於Las Vegas舉辦的Microsoft MIX 07正式推出了Microsoft Silverlight Beta版 (Code-named Windows Presentation Foundation/Everywhere,WPF/E),Silverlight本身是一個小小的plug-in,可安裝在各種瀏覽器上,檔案的大小不到2MB,但是這樣的一個小東西,可能會是微軟在節節敗退的網路事業上,一個相當重要的里程碑。Mr. Sunday已經在Windows Presentation Foundation一文中提及Silverlight,在這篇文章中我們就來仔細瞧瞧Silverlight到底帶給我們什麼樣的東西。根據微軟官方的定義,Silverlight是一個跨瀏覽器、跨作業系統平台的plug-in,主要功用是在提供使用者更好的多媒體體驗。恩…講了好像沒講,其實簡單來說,Silverlight是架構在瀏覽器之上的一個執行環境 (runtime),使用者在這個環境之下,可以接收和分享各式各樣的數位內容,這個執行環境的主要目的,在於整合多媒體、圖像、動畫以及使用者的互動。講得更白話一點,比如說大家的瀏覽器裝了Flash Player之後,就可以看到網路上各式各樣精緻的Flash動畫和互動式的內容。Silverlight也是一樣,你裝了它之後,平常沒事也不會感覺到它的存在,但是你可以看到各式各樣針對Silverlight這個執行環境打造出來的應用程式和多媒體內容。而且這些內容將會遠比Flash動畫要來得更為豐富。對於了解Silverlight架構有興趣的讀者,可以參考下面的架構圖:

silverlight-stack

就如同.NET Framework透過CLR (Common Language Runtime) 這個virtual machine來包山包海,把C++、C#、VB.NET等程式語言都涵蓋進來一樣,Silverlight想要做的事情,也是把現在網路上的主流開發技術開發出來的東西,透過CLR Execution Engine來整合和執行。無論開發者是以哪種技術開發出來應用程式或是製造出content,透過Silverlight都可以在網路上各地平穩地執行和相容,無論客戶端是使用什麼瀏覽器或是作業系統都一樣。由於檔案大小的關係,Silverlight並沒有把所有.NET裡面CLR之中所有的library包含進來,所以算是CLR的縮減版本。

而Silverlight對於一般網路使用者的意義,就是更為精緻的使用者介面和多媒體內容,微軟在去年 (2006) 年底推出的Expression Studio多媒體內容及網站開發工具,現在也與Silverlight更緊密整合在一起。以下是一些小DEMO (其中第三部影片介紹了Silverlight在Windows Mobile上面開發出來的程式),想看更完整的Silverlight以及Expression Studio這個開發工具的介紹,絕對不能錯過Microsoft MIX 07網站的豐富內容:http://www.visitmix.com

另外一個值得注意的Service是伴隨Silverlight而來的Silverlight Streaming,這個服務平台提供使用者一個分享Silverlight Application還有Expression Studio (或是其他開發工具) 製造出來的多媒體內容。微軟目前提供每個註冊的使用者4GB的免費空間,讓使用者可以上傳自己開發出來的Silverlight Application和影片,一方面可以分享,一方面可以從這個平台把這些多媒體內容整合到自己的網站或是部落格裡面去 (Silverlight Streaming提供外連讓使用者可以整合這些內容)。看起來YouTube也可以有同樣的功能,不過呢,Silverlight Streaming不僅可以分享影片等多媒體內容,還可以分享應用程式,而且目前Silverlight Streaming已經可以支援分享DVD畫質等級的影片 (~700Kbps),不像YouTube上面的影片解析度有限。

分享應用程式這個概念,微軟並非第一人,網路上也早就有了,大家回顧歷史時應該可以回想起,Java Applet當時推出時早就想到這個概念了,不過Java Applet的graphics支援始終沒有太大的進步,在推出當時也因為網路不像現在這麼受矚目而沒有受到積極的重視,進一步與Java Virtual Machine擴展成類似現在Silverlight想做的網路平台。導致Flash出現之後,Java Applet更顯式微,現在談到製造網路上豐富的動畫和多媒體內容,相信大部分的人會先選擇使用Flash。這是Mr. Saturday覺得相當可惜的一件事情,Java很多的技術創新在推出時都是業界第一人,但是在整合上卻很有問題,給人零零散散的感覺,沒有像微軟這樣一股作氣,把相關技術整合包裝成一個完整的開發和使用平台,和網路服務一併推出。因此在推廣平台科技的手法之上,微軟顯然還是技高一籌。

儘管業界人士大多對於Silverlight抱持正面的態度,但是Silverlight有幾個為人所詬病的主要問題,第一個就是微軟目前在Windows平台之外沒有提供開發Silverlight Application的工具,而且Silverlight不支援Linux (目前僅支援Windows XPWindows Server 2003Windows Vista還有Mac OS X 10.4)。第二個問題是XAML (Extensible Application Markup Language) 這個微軟自己搞出來的XML-Based的Markup Language,XAML是微軟的專屬技術,用來描述vector graphics,但問題是XAML不是國際的標準,因為用來描述向量圖的Markup Language早就已經有了,就是SVG (Scalable Vector Graphics),而且SVG已經通過W3C的審議,成為國際的標準,微軟硬要自己搞一個XAML出來,現在又把它當成Silverlight的基石,等於正面與國際通用的標準對幹,這對於網路技術的標準化有相當不好的影響。(Flash之中也有相當多Video和Audio的格式是專屬的格式就是了,在此略過。)

所以雖然大家極度看好Silverlight可能會為微軟帶來很大的成功,但是在以上的因素克服之前,個人認為這個平台的發展空間會受到一定的限制 (而且現在Expression Studio賣這麼貴,一般使用者應該不會立刻砸錢下去),尤其現在Flash的市佔率高達近98%,短時間內獨佔地位難以撼動。當然微軟會在平台支援還這麼貧乏的情況之下趕緊推出Beta版,無非就是為了及早推出、及早卡位搶食市場。另一方面,Silverlight在整合之外,也直接與現在眾家技術衝突,像是Adobe FlashAdobe FlexOpenLaszlo以及Ajax的一些component。同時它也與Sun Microsystems剛剛推出的JavaFX構成競爭,不過需要注意的是,JavaFX一開始就把重點放在手機等mobile裝置上面的應用程式開發,所以有人認為與Silverlight的衝突並沒有像Flash這麼直接,也有它自己的nitch market存在,詳見Chris Oliver’s Weblog以及java.net,不過Silverlight也有跨足Mobile device的計畫,所以競爭是遲早的事情。這些廠商們及其技術也具有不小的力量和占有絕大多數的市場,微軟想要短時間內達成一統網路平台的計畫,恐怕沒有這麼容易。另外Adobe也在2007年三月推出了Apollo Alpha Preview,所以現在RIA (Rich Internet Applications) 市場上三大player就是Microsoft Silverlight、Adobe Apollo以及Sun JavaFX。

當然,搭配著Expression Web Design Tool這個超級強大開發工具的推出,我相信微軟在網路開發平台上可以藉此占到一席之地,而且微軟的下一步可能就是把Silverlight直接跟IE bundle在一起,就如同之前他們把IE跟Windows bundle在一起把Netscape打死一樣。這種壟斷力量,眾家廠商不得不慎。有的人說,Silverlight和Expression Web Design Tool的出現,遠比Windows Vista和Office 2007的推出重要不知幾倍。這個看法我相當認同,微軟在MIX 07之中,也終於有要在網路事業上扳回一城的氣勢。往其Software + Service的網路願景又邁出一大步。

延伸閱讀及參考網站:

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!