雲與端平衡發展的設計思維和模式
By 高煥堂
** 其他相關文章 **
** "雲端服務與Android軟硬整合之路" 課程
(經濟部主辦、工研院承辦、高煥堂主講)
-----------------------------------------------------
設計思維
在前面的文章裡,已經闡述過,公有雲平台就像百貨公司,而跨雲的行動端服務平台則像百貨公司裡的連鎖專櫃(如SK-II、星巴克等)。百貨公司與連鎖專櫃是相輔相成的,當兩者能獨立成長、又能融合成為一個合諧的整體時,就成為具有「有機次序」(Organic Order)的共生體系。
極富盛名的建築學家ChristopherAlexander就對OrganicOrder做如下的闡述:
l The principle of organicorder: Planning and construction will be guided by a process which allows thewhole to emerge gradually from local acts.
l Organic Order: …the kind of order that is achieved when there is aperfect balance betweenthe needs of the parts and the needs of the whole.
為了建立這個共生體系的Organic Order,必須先分辨出part和whole。在上述的體系裡,有兩種part:
l 百貨公司。
l 連鎖專櫃。
將之對應到IT產業上,有兩種part:
l 公有雲(如Google、Facebook等雲平台),如同百貨公司的角色。
l 行動端(如醫療跨雲平台),如同連鎖專櫃的角色。
於是,分析如下:
The needs of the parts
◇ 公有雲是part,它的期望(Needs)之一是:成為強龍。從百貨公司看來,百貨公司是大哥(強龍),而連鎖專櫃則是小弟。
◇ 行動端也是part,它的期望(Needs)之一是:成為強龍。從連鎖專櫃看來,連鎖專櫃是大哥(強龍),而公有雲則是小弟。
The needs of the whole
◇ 對於整體共生體系而言,它的期望(Needs)之一是:公有雲與領域雲兩者能相輔相成,以維持整體(whole)合諧及成長。
從雲看端:公有雲是強龍
在上一篇文章裡,説明了TM樣式將兩種API做了美妙的組合,成為「強龍軟體架構」的核心元素,如下圖:

圖1、從百貨公司觀點的「強龍軟體架構」
在此圖裡,百貨公司軟體模組掌握了控制權,就像章魚的頭,伸出章魚腳(即專櫃框架),腳上有吸盤(即主動型API),控制了專櫃模組。因而有效支撐百貨公司,此其成為商業上的強龍角色。
將上圖對應到雲計算產業上,TM樣式提供兩個API來支持公有雲平台,讓公有雲主成為商業上的強龍。如下圖:

圖2、將百貨公司對應到公有雲
稍微調整一下上圖2,得到下圖3,這是常見的層級(Layered)結構:

圖3、公有雲的層級表示法
這XX公有雲的雲主是強龍,其負責撰寫雲平台和雲框架的軟體。由於框架擁有主動型API,所以雲主敢大膽地讓外人(地頭蛇)進來撰寫領域模組軟體。於是,在公有雲平台(含框架)裡,會有含有眾多外人進來撰寫的領域模組,如下圖:

圖4、公有雲像百貨公司,領域軟體模組像專櫃
從端看雲:領域雲際平台也是強龍
公有雲像百公司,而領域模組像專櫃。領域雲際平台就像連鎖專櫃。就雲際平台而言,它也希望自己成為強龍。它除了撰寫雲際平台軟體之外,還在各公有雲裡撰寫領域模組(如同開設專櫃)。如下圖所示:

圖5、領域雲際平台的角色
雖然A領域雲際平台期望自己是強龍,但是從上圖可以看出,圖裡的軟體架構,並不能支撐A連鎖專櫃成為強龍。其原因是:在公有雲裡的「A領域模組」只提供被動型API給公有雲框架來呼叫(實現了公有雲框架的主動型API),因而扮演小弟的角色。
那麼,如何才能調整上述的軟體架構,才能支撐A領域雲際平台的強龍地位呢?方法是:在公有雲裡創造自己的「吸盤」(即主動型API),如下圖:

圖6、領域雲際平台的「強龍軟體架構」
起初,可能必須由A領域雲際平台負責撰寫公有雲裡的「A領域模組_Stub」,然而隨著A領域雲平台所支撐的商業強龍地位日益形成,可能轉變為A領域雲際平台與YY公有雲平台合作一起開發「A領域模組_Stub」,或者由YY公有雲平台負責撰寫「A領域模組_Stub」。
領域雲際平台的「挾天子以令諸侯」
上圖還可以繼續改進,形成更精緻的強龍軟體架構(對A領域雲際平台而言)。改進的原因是:上圖裡的A領域雲際平台使用YY框架的被動型API,這個API是由YY公有雲平台所定義的,奇定義權掌握在YY公有雲平台手中,而不是由A領域雲際平台所定義的。於是將上圖改進,其精緻化方法是建立一個「A領域模組_Adapter」,如下圖所示:

圖7、精緻化的領域雲際平台「強龍軟體架構」
為了說明上圖的經濟效益,還是拿曹操的「挾天子以令諸侯」來做比喻最為傳神了。上圖的「A領域模組_Adapter」和「A領域模組框架」成為曹操角色,將YY雲平台的API封裝起來,達到「挾天子」的意境。由於「A領域模組框架」提供主動型API來呼叫A領域模組_Stub,逐漸形成「令諸侯」的意境。其中,值得留意的是:一般而言,先能挾天子,之後才能令諸侯,並非同步達成的。
結語
雲與端是互補的兩個角色,能夠互相輝映、相輔相成。從百貨公司與連鎖專櫃之間的互惠互利關係,就很容易體會出來。每一家百貨公司都希望各領域的強勢業者(如SK-II、星巴克等)來百貨公司開設專櫃店面;同樣地,每一領域的連鎖專櫃也希望能進入一流的百貨公司去開設專櫃店面。
那麼,在IT的雲產業裡,我們又如何規劃出一個美好的軟體架構來支撐上述的「雙強龍商業架構」呢? 於是,本文就提出筆者的觀點,與您共享之。◆