雲平臺Server端API的設計策略

雲平臺ServerAPI的設計策略

by 高煥堂ADT團隊


一、從古典API到新潮API

   如果你是服務端業者,如何規劃強勢的API呢? 服務端業者天生就具有成爲「強龍」的優勢條件。然而,由於API的古典迷思,讓天生強龍陷入「虎落平陽被犬欺」的困境。原來的強龍變成「小弟」了。在Client/Server架構下,API呈現於Client與Server之間。這API也成爲分工開發的界線。通稱爲「古典API,傳統分工」模式。

14094240-2fb59128ff2441f48338ad586b1de45

圖1、古典的API,傳統的分工

   在這種架構裏,是服務端提供服務給Client端,猶如Service_imp種南瓜給Client吃,顯然地,服務端受制於Client端,所以服務端無法對Client端產生制約性力量。此外,API通常是開發團隊之間分工的界線。[歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]

   那麼,在上圖裏,由於服務端的func()函數名稱被Client端抓住了,它的穩定性、自主性和自由度受限於Client需求的變動。所以,服務端開發團隊,常常成爲救火隊而疲於奔命。即使,加上一層Adapter(或稱Shell)也是無濟於事,如下圖:

14094255-29df5231ca1c475ca32c329063fae51

 圖2、即使加一層Shell,問題還是一樣

      此時,服務端可以巧妙地應用父、子類別之間的API,做爲分工的界線。這個新潮的API可以讓服務端擁有制約力量,且不必疲於奔命。如下圖:

14094320-7c21cfd9b82c4b07825aee961ef1b3e

 圖3、創造新API,取得境內主導權

     以上,在境內(服務端)取得制約力量,藉由新API而獲得主導權。進一步將勢力拓展到境外,取得全面性的主導權。

14094341-2ffd2b07b7a44872a652ad8634c92a2

圖4、創造具有全面主導權的架構

    或是,採取更具主導性的架構,如下圖:

14094402-39315b0aacd047788bf5ddf7ef4bee9

圖5、更具主導性的架構

二、Android的範例

   在Android裏,Service是服務端的主要父類別,而Activity則是在Client端的主要父類別。這兩個父類別相互呼應,取得手機內部的全面性主導權。如下圖:

14094422-117c6005fea649319f468ba1409555c

圖6、Android的主導性架構

     此外,在跨進程(IPC)或跨AP的環境裏,Android也提供Binder父類別來主導其間的API和通訊。如下圖:

14094435-f582b81036274856a58d449ac83a39e

圖7、Android跨AP的主導性架構

       從Android手機端遙看Google雲層上,也是以新型API來主導全局,如下圖:

14094449-3c4bcdc4070f43ffb49cee3b238bf04

 圖8、更具主導性的架構

     當我們(或Google)再從雲層往端看來,可以看到更多的端,當然包含目前最熱門的Google Android電視,如下圖:

14094514-83d2e72072cf46e4861a1bc2e5c3d4f

 圖9、版圖繼續擴大到電視機

      當我們更巧妙地運用Google Android TV,在Android TV上安裝i-Jetty Web Server,更是如虎添翼,讓電視機搖身一變,飛上枝頭變鳳凰,從「端」變成「雲」,如下圖:

14094546-ddd6b286041047cb81c6a59deb8c500

   圖10、電視機從端變成雲

三、結語

     無論是硬件廠商或網絡服務公司,大多處於服務端的角色。若依循古典API,基於傳統分工,上述業者大多「被人掐着脖子走」(臺灣新國衆集團 簡明仁 董事長的話)。現在,我們終於能理解及運用新潮API,拓展本身的主導權,拋棄脖子上的枷鎖了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章