110個提高架構質量的觀點主講人:高煥堂misoo.tw@gmail.com2IntroductionIT架構師和建築師類似,都必需具備多重觀點。同樣地,欲提高架構的質量,也依賴架構師兼具多重觀點。3ArchitectureofArchitectures•本文基於5個元素觀點,從這些觀點看到5項元素架構,將之融合為一個整體。•然後,從10個觀點觀看上述的整體,探討我們的優勢與弱點,始能有效提升架構質量及產業效益。4Part#1架構與觀點5架構:融合“序”與“繁雜多變”VISA信用卡創始人哈克(DeeHock)融合了“序”與“繁雜多變”,創造了傑出的VISA系統架構。參閱:哈克著亂序,李明譯,台灣大塊文化出版。6容易:以“序”包容“繁雜多變”古代中國的建築師(架構師)設計了萬里長城,包容了北方的“繁雜多變”,創造了中原長治久安之“序”。7多重觀點:兩隻眼睛的用意讓我們兼顧“序”與“繁雜多變”。序容易“序"是绝佳的手段,“容易"是甜美的目標。8Part#25個元素觀點9IT架構的傳統觀點(EV1)傳統的單一元素觀點:以技術為Input,以產品為Output。10近年來熱門新觀點(EV2)目標:以IT系統支撐企業。如同:IT系統架構是樹幹,企業架構是樹枝。11觀點(BV2)的實踐:例如SOA手段:兩種架構融合為一系統架構企業架構12觀點(BV2)的實踐:例如DoDAF(組織作業觀點)(系統觀點)(技術觀點)DoDAF13中華文化特色之觀點(EV3)目標:以文化支撐技術。如同:文化架構是樹幹,技術架構是樹枝。14觀點(BV3)的實踐:FaçadePattern門面(Façade)四合院VS.FaçadePattern15觀點(BV3)的實踐:Interface設計禮記:“良弓之子,必學為箕”。接口、卡榫與基類16創意思考之觀點(EV4)17觀點(EV4)的實踐:創意Gelb寫一本關於達芬奇(daVinci)的書:7Brains:怎樣擁有達芬奇的7種天才寫道:「能不能看出事物的關係和模式,並做出不尋常的組合和關連,乃是創造力的核心要素。」18觀點(EV4)的實踐:逆向推理然而,從那個角度去觀察事物呢?又以什麼新的形去組合及連結這些事物呢?該書寫道:達芬奇經常寫下『務必徹徹底想清楚』和『先考慮終點』。19觀點(EV4)的實踐:假設/實證Gelb在書中提到,達文西擅用實證,從錯誤中學習,以經驗來實證知識的真假,如下:「文藝復興的真正意義,在於它改變了許多基本假設、成見和信念。達文西應用了實證原則,挑戰當時的世界觀,成為這場革命的先驅。」20觀點(EV4)的實踐:思考架構(設計&實證)(貫徹執行)創意實現計畫終點目標(領悟)創新過程21IT產業之觀點(EV5)22觀點(EV5)的實踐:規模經濟IT產業架構將創新之IT系統架構「創造岀大型規模經濟及效益。」目標:以IT系統支撐IT產業。如同:IT系統架構是樹幹,IT產業架構是樹枝。23觀點(EV5)的實踐:強龍+地頭蛇強龍只做系統40%,預留60%工作給地頭蛇,但強龍享有60%的收益。例如:Google的AndroidFramework,微軟的.NETFramework等。24觀點(EV5)的實踐:軟硬整合是王道軟:容易更改(漸進型改變)(蛻變型改變)硬:不易更改軟件是樹幹,硬件是樹葉,企業是果實。25元素架構之Summary思考、文化是我們的優勢,最欠缺的是:IT產業/IT系統架構。26Part#310個整體觀點27衍生出整體架構之多重觀點28觀點View#1~#5V1.架構是創意的表現,架構來自創意與思考,創意是假設(Hypothesis)。V2.假設需要檢驗,以需求檢驗創意與思考。V3.創意根源于固有文化,設計是文化與技術相遇的地方。V4.從文化體悟序(Order)之美,追求建立美的IT系統架構。V5.以標準化與互換性衡量美之效益。29觀點View#6~#10V6.以序容易(包容改變),包容企業的繁雜多變。V7.上層架构設計是IT系統與企業相遇的地方。V8.下層架构設計是軟件與硬件相遇的地方。V9.上下層虛實相依,實踐美之IT系統架構。V10.架構質量發揮於IT系統與IT產業相遇的地方。30V1.架構是創意的表現,架構來自創意與思考,創意是假設(Hypothesis)。架構師/建築師的TopDown思維,又稱為逆向推理。開發者(Developers)是BottomUp思維,又稱為正向推理。31以最终目標(Goal)為起點終點目標(領悟)創意Step-1.找到燈塔32V2.假設需要檢驗,以需求檢驗創意與思考。架構師/建築師的產出是:可實現的計畫。然後交由開發者去執行。創意(假設)實現計畫終點目標(領悟)(分析&實證)Step-2.找到航線33V3.創意根源於固有文化,設計是文化與技術相遇的地方。中華文化讓我們面對科技變化時,不在心浮氣燥,而得到平靜心靈和流暢思緒,進而得到高雅的設計。文化源源不絕提供許多思維上的模式(Pattern),讓我們在面對設計上全新的挑戰時,得到創意及其實踐的勇氣。當設計成為文化與技術相遇的地方,則設計品就呈現出白裡透紅的高雅氣質了。Step-3.注入文化涵量34V4.從文化體悟序(Order)之美,追求建立美的IT系統架構。易经干卦:天的多變。坤卦:大地的繁(即複雜繁榮)。GoogleAndroidFramework:包容複雜而呈現簡單的序,支持IT產業及企業的無盡繁榮。Step-4.注入美的涵量35不登長城,不知“序”為何物古代的偉大建築師(即架構師)深深體會中原廣大居民內心深處的渴望:「序」。因為北方游牧民族的干擾,而讓他們失序了。因此他們內心並不是渴望敏捷地應付游牧民族的干擾,而是能安居樂業的穩定之序。36V5.以標準化與互換性衡量美之效益。文藝復興時代,威尼斯(Venice)擁有強大武裝艦隊,其明訂標準化與互換性的要求,例如:所有的弓,必需符合發射任何箭矢之用。所有的舵柱,必需按照相同尺寸和樣式製造。所有船具的規格介面均需一致,列為船載配備,可在別港或航行中更換修理。因為強盛,所以要求標準化和互換性。反之,不追求標準化和互換性的IT產業,意味著不夠強強盛。Step-5.依循強盛指標37V6.以序容易(包容改變),包容企業的繁雜多變。古代的建築師擅長於設計各種長城,包容關外的繁雜多變,從失序中重建序。現代的架構師擅長於設計像SOA的IT長城,包容企業的繁榮多變;於是,從人月神話中,締造IT人員安居樂業的殿堂。Step-6.興建IT長城38V7.上層架構設計是IT系統與企業相遇的地方。手段:以序包容企業的繁榮多變,目的:維持IT系統的變動自由度。(以SOA為例)Step-7.維持IT系統自由度39V8.下層架構設計是軟件與硬件相遇的地方。Step-8.維持硬件模組自由度(以Android為例)硬體BIOS桌腳桌面桌上40V9.上下層虛實相依,實踐美之IT系統架構。Step-9.虛實相依(以Android為例)應用軟體(SOA)硬體(桌面)(桌腳)AndroidBSP41V10.架構大規模效益發揮於IT系統與IT產業相遇的地方。Step-10.強龍不壓地頭蛇(以Android為例)APLinux硬體frameworkSuperClass*.SOSubClassLibraryVMClient42Part#4結語探討我們的優勢與弱點,始能有效提升架構質量及產業效益。43我們最欠缺的是什麼?思考、文化是我們的優勢,最欠缺的是:IT產業/IT系統架構。因此優勢無從發揮!!44優勢無從發揮之困境•沒有完美IT系統架構的支撐,無法建立生產分工的CN(Co-DesignNation-wide)產業架構。•比喻:張良是Architect,韓信是DeveloperLeader,韓信滿京城表示沒有分工產業架構。參閱:高煥堂撰寫“CN軟件策略”,程序員May2007。45優勢無從發揮之困境(續)•沒有完美IT系統架構的支撐,無法建立強龍+地頭蛇的聯合服務產業架構。•比喻:請看下一頁的愚公移山故事。46GoogleAndroid的啟示:愚公移山大家幾乎都聽過愚公移山的故事,但是大家常把焦點擺在愚公和移山,而忽略了畚「箕」的角色。禮記.學記篇上有言:良弓之子,必學為箕。其意思是,欲做出優良的弓,必先好好研究其模子(即箕)。47最近許多人知道Google推出轟動武林、驚動萬教的Android手機平台。但是我們都關心如何在該平台上開發應用程式,卻忽略了Android是個框架(Framework),而框架裡含有成百上千個「箕」類(註:基類是SuperClass的譯詞)。GoogleAndroid的啟示:架構的威力48移動時代IT產業的三個分工角色:做畚箕者:如Andriod開發團隊。畚箕買主:如Google公司。挑畚箕者:如Android應用程式師。GoogleAndroid的啟示:強龍所為何事?49因為缺乏白裡透紅的IT產業/IT系統之架構。GoogleAndroid的啟示:為何只能當愚公?參閱:高煥堂的4本GoogleAndroid書籍@gmail.com詢問50Part#5Q&A