by 高煥堂ADT團隊
一、從古典API到新潮API
如果你是服務端業者,如何規劃強勢的API呢? 服務端業者天生就具有成爲「強龍」的優勢條件。然而,由於API的古典迷思,讓天生強龍陷入「虎落平陽被犬欺」的困境。原來的強龍變成「小弟」了。在Client/Server架構下,API呈現於Client與Server之間。這API也成爲分工開發的界線。通稱爲「古典API,傳統分工」模式。
圖1、古典的API,傳統的分工
在這種架構裏,是服務端提供服務給Client端,猶如Service_imp種南瓜給Client吃,顯然地,服務端受制於Client端,所以服務端無法對Client端產生制約性力量。此外,API通常是開發團隊之間分工的界線。[歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
那麼,在上圖裏,由於服務端的func()函數名稱被Client端抓住了,它的穩定性、自主性和自由度受限於Client需求的變動。所以,服務端開發團隊,常常成爲救火隊而疲於奔命。即使,加上一層Adapter(或稱Shell)也是無濟於事,如下圖:
圖2、即使加一層Shell,問題還是一樣
此時,服務端可以巧妙地應用父、子類別之間的API,做爲分工的界線。這個新潮的API可以讓服務端擁有制約力量,且不必疲於奔命。如下圖:
圖3、創造新API,取得境內主導權
以上,在境內(服務端)取得制約力量,藉由新API而獲得主導權。進一步將勢力拓展到境外,取得全面性的主導權。
圖4、創造具有全面主導權的架構
或是,採取更具主導性的架構,如下圖:
圖5、更具主導性的架構
二、Android的範例
在Android裏,Service是服務端的主要父類別,而Activity則是在Client端的主要父類別。這兩個父類別相互呼應,取得手機內部的全面性主導權。如下圖:
圖6、Android的主導性架構
此外,在跨進程(IPC)或跨AP的環境裏,Android也提供Binder父類別來主導其間的API和通訊。如下圖:
圖7、Android跨AP的主導性架構
從Android手機端遙看Google雲層上,也是以新型API來主導全局,如下圖:
圖8、更具主導性的架構
當我們(或Google)再從雲層往端看來,可以看到更多的端,當然包含目前最熱門的Google Android電視,如下圖:
圖9、版圖繼續擴大到電視機
當我們更巧妙地運用Google Android TV,在Android TV上安裝i-Jetty Web Server,更是如虎添翼,讓電視機搖身一變,飛上枝頭變鳳凰,從「端」變成「雲」,如下圖:
圖10、電視機從端變成雲
三、結語
無論是硬件廠商或網絡服務公司,大多處於服務端的角色。若依循古典API,基於傳統分工,上述業者大多「被人掐着脖子走」(臺灣新國衆集團 簡明仁 董事長的話)。現在,我們終於能理解及運用新潮API,拓展本身的主導權,拋棄脖子上的枷鎖了。◆