part a06 a段架構師-跨自己平台的策略_twok

70
By By 高煥堂 高煥堂 [email protected] [email protected] 海峽兩岸 海峽兩岸 智慧電視 智慧電視&家庭商業策略與技術論壇 家庭商業策略與技術論壇 http://home-cloud.blogspot.tw/ http://home-cloud.blogspot.tw/ 自己平 自己平 策略 策略

Upload: ccpcheng

Post on 20-Jun-2015

275 views

Category:

Business


3 download

TRANSCRIPT

Page 1: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點

By By 高煥堂高煥堂 [email protected] [email protected]

海峽兩岸海峽兩岸智慧電視智慧電視&&家庭商業策略與技術論壇家庭商業策略與技術論壇http://home-cloud.blogspot.tw/http://home-cloud.blogspot.tw/

跨跨自己平自己平台台策略策略

Page 2: Part a06 a段架構師-跨自己平台的策略_twok

內容內容

1. 策略-3:建立中介軟體(middleware) 2. 這個<策略-3>從哪裡來?3. 中介軟體跨平台的效益4. 中介軟體跨客戶端的效益5. 中介軟體的設計

Page 3: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點11、、策略-3:

建立中介軟體(middleware)

Page 4: Part a06 a段架構師-跨自己平台的策略_twok

前言

Page 5: Part a06 a段架構師-跨自己平台的策略_twok

EIT

Page 6: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台

Page 7: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台策略:挾天子以令諸侯

Page 8: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台策略:挾天子以令諸侯

跨晶片小平台

Page 9: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台策略:挾天子以令諸侯

跨晶片小平台策略:把它<EIT>了

Page 10: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台策略:挾天子以令諸侯

跨晶片小平台策略:把它<EIT>了

跨自己的平台

Page 11: Part a06 a段架構師-跨自己平台的策略_twok

EIT

跨Android大平台策略:挾天子以令諸侯

跨晶片小平台策略:把它<EIT>了

跨自己的平台策略:建立中介軟體

Page 12: Part a06 a段架構師-跨自己平台的策略_twok

建立中介軟體(middleware)

– 策略-1:把它”EIT(設計)”了– 策略-2:挾天子以令諸侯– 策略-3:建立中介軟體(middleware)

Page 13: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點22、、這個這個<<策略策略-3>-3>從哪裡來從哪裡來??

Page 14: Part a06 a段架構師-跨自己平台的策略_twok

反思心中”不自覺的假設”

Page 15: Part a06 a段架構師-跨自己平台的策略_twok

商業模式

創新產品 架構設計

獨特性(軟硬整合)

普遍性 可靠性(跨平台) (測試)

略VISION

Page 16: Part a06 a段架構師-跨自己平台的策略_twok

獨特性(軟硬整合)

普遍性 可靠性 (跨平台) (測試)

產品策略

Page 17: Part a06 a段架構師-跨自己平台的策略_twok

• Assumption:只要能跨別人平台,又能跨自己的平台;就能擺脫平台的束縛,而獲得產品的普遍性。

Page 18: Part a06 a段架構師-跨自己平台的策略_twok

• 若<能跨別人平台,又能跨自己的平台>,則<能擺脫平台的束縛>。

• 若<能擺脫平台的束縛>,則<能獲得產品的普遍性>。

Page 19: Part a06 a段架構師-跨自己平台的策略_twok

P

Q基於EIT造形的策略,可實現跨平台

H

基於EIT造形的跨平台策略

跨晶片(小)平台跨Android(大)平台

Page 20: Part a06 a段架構師-跨自己平台的策略_twok

P

Q基於EIT造形的策略,可實現跨平台

H

基於EIT造形的跨平台策略

獲得產品的普遍性

Page 21: Part a06 a段架構師-跨自己平台的策略_twok

假定:若擁有跨平台性,而且能 跨客戶端;就能擁有普遍性。

H(假定)

Page 22: Part a06 a段架構師-跨自己平台的策略_twok

P

Q若有跨平台性,且跨客戶端;就能擁有普遍性。

H

取得接口制定權,且提供通用性接口。

獲得產品的普遍性

Page 23: Part a06 a段架構師-跨自己平台的策略_twok

• 引導我們去探索、 發現新事實。

擁有跨平台性,且跨客戶端。

基於EIT造形

提供通用性接口

Page 24: Part a06 a段架構師-跨自己平台的策略_twok

探索&學習未知事物

通用性接口的基本結構

Page 25: Part a06 a段架構師-跨自己平台的策略_twok

• 茲看看一個大家已經很熟悉的EIT造形:

Page 26: Part a06 a段架構師-跨自己平台的策略_twok

<I>

• 這個<E>可以提供一個接口,如下圖的IE:

Page 27: Part a06 a段架構師-跨自己平台的策略_twok

• <E>提供了IE接口給Client使用;於是Client透過IE接口而調用<E>的operation()函數,由於它是一個抽象函數,所以就直接執行了<T>的operation()函數的程式碼。這裡的IE接口與<I>接口是一致的。

• 它有一個更常見的變形:

Page 28: Part a06 a段架構師-跨自己平台的策略_twok

<I>

Page 29: Part a06 a段架構師-跨自己平台的策略_twok

• 其中的operation()函數將IE接口轉換成為<I>接口;於是Client透過IE接口而呼叫<E>的operation()具象函數,然後呼叫onOperation()抽象函數,就執行了<T>的onOperation()函數的實現程式碼。這裡的IE接口與<I>接口是不一樣的。

Page 30: Part a06 a段架構師-跨自己平台的策略_twok

• 其實,上述這是接口設計模式,是由兩個EIT造形所組成的,所以我們稱之為”樣式”(Pattern),而不稱為”造形”(Form)。

Page 31: Part a06 a段架構師-跨自己平台的策略_twok

EIT

EIT

Page 32: Part a06 a段架構師-跨自己平台的策略_twok

• 上面的EIT造形,是一個退化的EIT造形,沒有限定它的<E>;也可以說,所有的Client都能扮演它的<E>角色,而是這個IE接口就成為”通用性接口”了。

Page 33: Part a06 a段架構師-跨自己平台的策略_twok
Page 34: Part a06 a段架構師-跨自己平台的策略_twok

• 其實,通用性接口常常示成雙成對的,例如下圖裡的<IMS>是對 Client端的通用性接口;此外,還常常設計一個對 Server端的通用性接口,它就是大家熟悉的EIT造形裡的<I>了。

Page 35: Part a06 a段架構師-跨自己平台的策略_twok

框架I

Page 36: Part a06 a段架構師-跨自己平台的策略_twok

• 隨著系統的成長,會設計出更多的通用性接口,就成為一個框架,或俗稱的”中介軟體”。

Page 37: Part a06 a段架構師-跨自己平台的策略_twok

框架

Page 38: Part a06 a段架構師-跨自己平台的策略_twok

中間件

Page 39: Part a06 a段架構師-跨自己平台的策略_twok

中介軟體

Page 40: Part a06 a段架構師-跨自己平台的策略_twok

• 其實,通用性接口常常示成雙成對的,其中一個是對 Client端的通用性接口,讓我們的產品能跨客戶端。另一個是對 Server端的通用性接口,它就是大家熟悉的EIT造形裡的<I>了,讓我們的產品能跨平台。

Page 41: Part a06 a段架構師-跨自己平台的策略_twok

隨著對未知事物的探索和學習,

新事實顯示支援我們的假定(H) 。

Page 42: Part a06 a段架構師-跨自己平台的策略_twok

P

Q若有跨平台性,且跨客戶端;就能擁有普遍性。

H

取得接口制定權,且提供通用性接口。

獲得產品的普遍性

Page 43: Part a06 a段架構師-跨自己平台的策略_twok

• 於是,我們繼續探索這個<實踐策略-3>。

Page 44: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點33、、中介軟體跨平中介軟體跨平台台的效益的效益

沒錢就改版,改版就有錢

Page 45: Part a06 a段架構師-跨自己平台的策略_twok

確保自己平台的變動自由度

• 美好狀態:讓自己的產品版本不斷升級之中, 繼續維持自己產品的高度變動自由度,積極鼓勵自家人的創新精神,持續展現自己產品的獨創性。

• 目的:沒錢就改版,改版就有錢。

Page 46: Part a06 a段架構師-跨自己平台的策略_twok

• 方法:把自己的平台”EIT(設計)”了。• 說明:設計一個新平台(即新<E&I>) ,然

後規劃外掛程式<T>來包容自己(原有)平台的版本變動。

• 比喻:設計一個萬里長城(即新<E&I>) 來保護關內居民的變動自由度(即安居樂業)。記得,萬里長城不是為了北方民族的利益,而是為了關內居民的自由度和安居樂業。

Page 47: Part a06 a段架構師-跨自己平台的策略_twok

• 無論是: 1) 跨別人的晶片平台; 2) 跨Android大平台(版本升級&碎片化) ; 3) 跨自己平台(保護自己版本更新自由度)。

• 都是要確保自己變動的自由度,這自由度就意味著穩定性(不因別人平台的變而變)。

Page 48: Part a06 a段架構師-跨自己平台的策略_twok

• 平台框架(Framework)是四合院的圍牆,API就是大門口。

• 四合院圍牆的主要用途是:牽制外人的入侵,保護院裡人們的安全。因之,<開發框架、制定API>是主事者(一家之主)的責任。

四合院的比喻

Page 49: Part a06 a段架構師-跨自己平台的策略_twok

• 框架(Framework)是萬里長城,API就是關口(如山海關)。萬里長城有兩項用途:1. 王者可以框住塞外人民,號令關內居民,成為強勢王者。2. 牽制塞外的軍隊入侵,保護關內居民,成為仁之王者。<開發框架、制定API>是主事者的責任。

長城的比喻

Page 50: Part a06 a段架構師-跨自己平台的策略_twok

• 許多人都以為只有強者才能制定API,這是一個迷思。

• 其實,框架(Framework)是萬里長城,API就是關口(如山海關)。在秦國、漢時代,就是為了<抵抗>北方強敵,所以<不得不>舉全國之力築城防禦。因之,弱者而不做API,只做App,只好披髮左衽(當強敵的奴工)矣。

Page 51: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點44、、中介軟體跨客戶端的效益中介軟體跨客戶端的效益

擴大應用範圍、增加用戶量

Page 52: Part a06 a段架構師-跨自己平台的策略_twok

• 在產業裡並不是每一個廠商都有足夠的主導權來制定API,所以中介軟體妥善提供通用性介面,能擴大應用範圍、擁有普遍性;能跨客戶端、增加客戶量。

Page 53: Part a06 a段架構師-跨自己平台的策略_twok

通用性接口

擴大

應用範圍

Page 54: Part a06 a段架構師-跨自己平台的策略_twok

◎擁有通用性,兼顧獨特性• 自己平台愈多差異化(獨特性),在商場上,

可能擁有更多優勢。• 在規劃中介軟體時,除了提供穩定的共同

API之外,往往也需要凸顯自己平台的獨特性,如下圖:

Page 55: Part a06 a段架構師-跨自己平台的策略_twok
Page 56: Part a06 a段架構師-跨自己平台的策略_twok

• 跨自己平台的中介軟體,能夠兼具有<通用性服務>和<獨特性服務>,才是完美的架構設計。

Page 57: Part a06 a段架構師-跨自己平台的策略_twok

基於軟硬整合觀點

55、、中介軟體的設計中介軟體的設計

Page 58: Part a06 a段架構師-跨自己平台的策略_twok

曹操框架能夠保護大員外<我的module>的變動自由度和穩定性。

Stub就是

曹操類

Page 59: Part a06 a段架構師-跨自己平台的策略_twok

擺脫掉App

的束縛(即

跨App了)

曹操框架擴大成為一個平台框架

Page 60: Part a06 a段架構師-跨自己平台的策略_twok

中介軟體

Page 61: Part a06 a段架構師-跨自己平台的策略_twok

• 類似於建立萬里長城,來保護所有關內居民(我的各種版本的模組)的安全與自由。

Page 62: Part a06 a段架構師-跨自己平台的策略_twok

最著名的中介軟體:微軟的 .NET框架

Page 63: Part a06 a段架構師-跨自己平台的策略_twok

中介軟體(平台框架)

我的平台App#1

App#2

別人的平台

E&I

TT

T

P

中介軟體在整體架構中的角色

Page 64: Part a06 a段架構師-跨自己平台的策略_twok

• 擁有自己的中介軟體是最理想的,因為擁有API制定權,就有足夠的話語權。

• 自己擁有中介軟體,就等於擁有一座四合院,包括自己的圍牆(框架<E>) 、內部自己的房間(平台<P>) 、自己的門口(介面<I>)來服務及框住外部別人的App(即外掛程式<T>) ;這是最理想的,如下圖:

Page 65: Part a06 a段架構師-跨自己平台的策略_twok

我的平台App#1

App#2

別人的平台

中介軟體(平台框架)E&I

P

自己的<E&I>

充分保護

<P>

Page 66: Part a06 a段架構師-跨自己平台的策略_twok

• 建立自己的中介軟體(即<E&I>,可凸顯自己的獨特性;並且能制定自己的API(即<I>),來框住App和別人的平台(即<T>) 。

• 掌握 API、制定API,牽制App;然後反過來號令底層,就是贏家。

• 既能主導API,就能號令上下,成為上下爭相抬轎的教主(轎主)。

Page 67: Part a06 a段架構師-跨自己平台的策略_twok

◎擁有通用性,兼顧獨特性• 自己平台愈多差異化(獨特性),在商場上,

可能擁有更多優勢。• 在規劃中介軟體時,除了提供穩定的共同

API之外,往往也需要凸顯自己平台的獨特性,如下圖:

Page 68: Part a06 a段架構師-跨自己平台的策略_twok
Page 69: Part a06 a段架構師-跨自己平台的策略_twok

• 跨自己平台的中介軟體,能夠兼具有<通用性服務>和<獨特性服務>,才是完美的架構設計。

Page 70: Part a06 a段架構師-跨自己平台的策略_twok

高煥堂 [email protected]

Thanks…