| Editorial staff (dwinfo@us.ibm.com), developerWorks, IBM 2006 年 8 月 10 日 IBM 專(zhuān)家將提供各自的個(gè)人觀(guān)點(diǎn),以推動(dòng) IT 體系結構實(shí)踐方面的發(fā)展,從而幫助您更好地擔當架構師這一職責。 注意:有關(guān)觀(guān)點(diǎn)與展望 專(zhuān)欄的全面的信息,請參閱以前的部分: 我希望能有電視節目展示 IT 架構師的生活。但您知道在電視上的樣子。人們都很了不起,通常長(cháng)得很好看,手邊有所有需要的東西,他們都異常的聰明——而且所有部分都非常輕易地就整合到 一起了。您可能看著(zhù)這樣的節目,而忘記了他們的實(shí)際工作有多困難。暫時(shí)逃避一下現實(shí)。而且,每周您都有機會(huì )假裝這就是真實(shí)的生活。 我們都知道,和生活一樣,IT 體系結構并不是這樣的。(真是的,撰寫(xiě)這個(gè)專(zhuān)欄甚至也不那樣簡(jiǎn)單,只是純粹說(shuō)說(shuō)才很簡(jiǎn)單。)需要進(jìn)行培訓,需要努力工作,需要使用技能技巧,會(huì )犯很多錯誤,而且需要很多的耐心。當然,說(shuō)需要一定天分也未嘗不可。 知道了成為一個(gè)成功的 IT 架構師需要投入多少工作后,我們就想知道哪些因素對成為一個(gè)不錯的架構師起決定性作用。因此,我們向專(zhuān)家組提出了這樣的問(wèn)題:“什么技能對 IT 架構師最有價(jià)值,架構師如何學(xué)習這些技能?” 可以在很多地方找到成為好的架構師所需的技能列表——書(shū)上、培訓課程、大學(xué)、有關(guān)體系結構的其他網(wǎng)站上等等。例如,IBM 的內部專(zhuān)業(yè)提高網(wǎng)站就提出以下幾點(diǎn) IT 架構師的理想特征:
和可能看到的很多其他列表類(lèi)似,這個(gè)列表相當泛泛,可能并不如您所期望的那樣有可操作性。而這正是我們詢(xún)問(wèn)前面的問(wèn)題的原因所在:幫助您確定一個(gè)明確的方向。 我們希望對此問(wèn)題的討論能為您提供幫助。我們鼓勵您在 IT 體系結構討論論壇發(fā)表您對這些觀(guān)點(diǎn)的看法。如果您有任何問(wèn)題希望我們的專(zhuān)家進(jìn)行答復,請與我聯(lián)系。充分利用專(zhuān)家資源——他們非常樂(lè )意為您提供幫助,非常愿意能推動(dòng) IT 體系結構方面的實(shí)踐。 Paul Dreyfus,編輯 另,為了避免對我們的排序方式的意見(jiàn),我們已根據專(zhuān)家的名字按字母順序對專(zhuān)欄進(jìn)行了排序。不過(guò),請一定閱讀全文;您肯定不希望漏掉 Walker Royce 的連珠妙語(yǔ)。 ![]()
架構師必須 學(xué)習權衡各個(gè)相互沖突的需求的技能。在調和體系結構的各個(gè)組成部分時(shí),我們必須對各個(gè)看起來(lái)截然相反的事項進(jìn)行權衡,如下面這些事項:
無(wú)論從技術(shù)角度出發(fā),還是就業(yè)務(wù)角度而言,我們都需要對經(jīng)常沖突的各種考慮和各個(gè)側面進(jìn)行權衡。在看起來(lái)似乎無(wú)法解決的情況下進(jìn)行正確的權衡是架構師成功的關(guān)鍵。 這經(jīng)常意味著(zhù)要首先確定有哪些約束,理解這些約束為何存在沖突,并確定如何在問(wèn)題空間對這些考慮進(jìn)行權衡,從而解決所面臨的問(wèn)題。 ![]() 這就是體系結構:專(zhuān)門(mén)化的彼此不同的部分一起協(xié)作,形成完整的應用程序。IT 架構師知道如何將問(wèn)題劃分為專(zhuān)門(mén)化的各個(gè)部分,并使其作為整體一起協(xié)同工作。 那么,什么是對 IT 架構師最具價(jià)值的技能呢?就是要了解這些不同類(lèi)型的服務(wù)器以及其提供來(lái)幫助解決問(wèn)題的不同功能,并要了解如何將它們一起使用來(lái)開(kāi)發(fā)和部署應用程序。成為一 個(gè)引擎方面的專(zhuān)家也非常誘人,如數據架構設計人員、規則專(zhuān)家、J2EE 開(kāi)發(fā)人員。團隊也需要這樣的人員,但他們不是架構師。IT 架構師至少對所有這些方法都有所了解,了解哪個(gè)引擎適合用于執行應用程序中的何種任務(wù),知道如何將應用程序分解成各個(gè)專(zhuān)門(mén)化的部分以及如何使這些部分一起 工作。 實(shí)際上,這是 IT 軟件 架構師。真正的 IT 架構師不僅需要了解軟件,也要了解以下內容——甚至可能還要包括其他方面的東西:
需要學(xué)習很多內容,但軟件方面無(wú)疑可以作為一個(gè)很好的起點(diǎn)開(kāi)始學(xué)習。 如何學(xué)習這些技能呢?您需要逐個(gè)學(xué)習各個(gè)部分,并學(xué)習如何將其作為整體結合使用。首先要學(xué)習如何實(shí)現各個(gè)部分,如何使用每種類(lèi)型的引擎。不知道工作流到底是什么?獲取 WebSphere Integration Developer 并實(shí)現 HelloWorld 業(yè)務(wù)流程執行語(yǔ)言(Business Process Execution Language,BPEL)流程。不了解消息傳遞?閱讀 developerWorks 上介紹如何使用服務(wù)集成總線(xiàn)的簡(jiǎn)單示例的文章。學(xué)習了每種服務(wù)器的細節知識后,請將這些細節放在一邊,而將精力放在每種引擎所能完成的任務(wù)的全局狀況上。 消息傳遞、規則、工作流、數據和自定義代碼——這些都彼此不同,但差異在哪里呢?了解了這一點(diǎn)后,您將能夠把應用程序劃分為多個(gè)部分,從而利用每種引擎的 獨特功能。 此時(shí)您就成為了一名 IT 架構師。 ![]() 快速學(xué)習新事物的能力。這一點(diǎn)適用于我們這個(gè)不斷發(fā)展的行業(yè)的很多角色,而不僅是 IT 架構師。 那么,如何學(xué)習這個(gè)技能呢? 我是在讀大學(xué)時(shí)學(xué)到這項技能的。從那以后,我們忘記了在那里學(xué)習過(guò)的很多東西,包括 Lisp、微分方程等。但我保留了快速學(xué)習這一技能。 ![]() 顯然,對這個(gè)職位而言,溝通和推動(dòng)力是其關(guān)鍵的技能。IT 架構師使用他們的經(jīng)驗和直觀(guān)推斷來(lái)將暫時(shí)的定義欠佳的問(wèn)題空間簡(jiǎn)化為能夠構建和交付的內容,并同時(shí)始終以客戶(hù)的需求為工作的核心。
![]() 如何學(xué)習這項技能?練習,練習,再練習。
![]() 這就是將架構師與專(zhuān)業(yè)人員區分開(kāi)的一項技能:通過(guò)全局性的視圖,可以更全面地看待整個(gè)系統并了解其他一些注意事項,從而幫助您確定哪些是重要內容, 哪些是干擾信息。此技能也能在不同角色身上和不同情況下發(fā)揮作用,不受技術(shù)、行業(yè)和職務(wù)級別的影響。具有這種能力的技術(shù)架構師可以幫助在業(yè)務(wù)和技術(shù)之間建 立聯(lián)系。 如何獲得此技能:體驗學(xué)習。接觸架構師工作的解決方案的子項目或子組件,不斷詢(xún)問(wèn)自己這些問(wèn)題:“為什么這個(gè)重要?”和“我的這一部分解決方案與什么相關(guān)?”嘗試了解各個(gè)部分如何形成更大的完整程序。從外向內了解各個(gè)部分。
如何學(xué)習此技能:我發(fā)現,對于嘗試學(xué)習和進(jìn)行全局思維實(shí)踐的人來(lái)說(shuō),一種稱(chēng)為思維導圖的創(chuàng )造性思考技術(shù)異常有用。(思維導圖是由 Tony Buzan 于 20 世紀 60 年代末提出的,用以幫助人們開(kāi)發(fā)大腦潛能。)這項技術(shù)可幫助您捕獲和組織各個(gè)想法(或組件),能在單頁(yè)中體現各個(gè)組件的多層次分解和組件的相關(guān)關(guān)系。由于 與某個(gè)主題相關(guān)的所有內容的全貌都呈現在單個(gè)頁(yè)面上,這就訓練大腦在相關(guān)上下文中看待所有事項,并允許對有興趣的主體進(jìn)行進(jìn)一步分解,且同時(shí)保持對全局情 況的了解。 ![]() 很多工程方面的造詣依賴(lài)于理解和分析故障以了解根源的實(shí)踐。而這個(gè)技能正是我所要討論的技能——系統地對故障和性能問(wèn)題進(jìn)行分析,然后對問(wèn)題進(jìn)行細化,以確定根源。IT 架構師首先需要能夠對潛在的吞吐問(wèn)題進(jìn)行預先估計,并設計恰當的解決方案來(lái)防止發(fā)生此類(lèi)問(wèn)題。
![]()
除了通過(guò)固有的基本學(xué)習能力外,還可以通過(guò)一些其他方式來(lái)獲得此技能:
![]() 例如,在分析 Web 應用程序的性能時(shí),如果所耗的大部分時(shí)間(如 90%)都花在數據庫服務(wù)器上的密集型數據庫搜索、查詢(xún)和數據聚合上了,則通過(guò)調整 Web 表示層的算法并不會(huì )帶來(lái)太多改善。關(guān)鍵是能夠處理查詢(xún)性能問(wèn)題(如果您是專(zhuān)家)或找到能夠及時(shí)解決問(wèn)題的專(zhuān)家。進(jìn)行此類(lèi)推理要求具有分析技能,能考慮更大 范圍內的情況和進(jìn)行恰當的折衷,并同時(shí)對特定技術(shù)領(lǐng)域進(jìn)行深入分析。 那么如何學(xué)習這項技能呢?通過(guò)實(shí)際接觸多個(gè)項目、向同事學(xué)習以及了解和利用體系結構模式和最佳實(shí)踐。 ![]() 有能力的架構師是天生的,而不是培訓出來(lái)的。有潛質(zhì)的人可以進(jìn)行培養,但如果您天生就不能領(lǐng)悟多維的“美麗”,您可以永遠也學(xué)不會(huì )。因此,一個(gè)更好的問(wèn)題是,如何能確定那些天生就具有架構師能力的人并培養他們的相關(guān)技能呢? 這方面我也不確定。 Ali Arsanjani 博士是 IBM Global Services 的 SOA and Web Services Center of Excellence 的首席架構師,主要負責收集和制定 SOA 和 Web 服務(wù)的建模、分析、設計和實(shí)現方面的最佳實(shí)踐。他是內部的 IBM 全球 SOA and Web Services Community of Practice(擁有 4,000 名成員)的負責人,是 SOA 的面向服務(wù)的建模和體系結構(Service-Oriented Modeling and Architecture,SOMA)方法的主要作者之一。他目前的工作重點(diǎn)是支持建模 (SOMA)、評估、策略與計劃、管理、體系結構和實(shí)現的 SOA 工具,以及其在 IBM 內部和外部的實(shí)際應用。請訪(fǎng)問(wèn)他的博客:Best Practices in Service-Oriented Architecture。 Bobby Woolf 是一名 IBM Software Services for WebSphere 咨詢(xún)師,負責幫助客戶(hù)使用 WebSphere 實(shí)現成功。他與人合著(zhù)了 Enterprise Integration Patterns 和 The Design Patterns Smalltalk Companion。請參閱 developerWorks 上 Bobby 的博客,以了解更多信息。 Christina Lau 是 On Demand Development 團隊的一名架構師。她目前參與的項目包括創(chuàng )建 Pattern Solutions using Rational Software Architect 和試用業(yè)務(wù)創(chuàng )新和優(yōu)化功能。Christina 一位高級技術(shù)人員,同時(shí)也是 IBM Academy of Technology 的成員。她還是新書(shū)《Introduction to IBM Rational Application Developer》的合著(zhù)者。 David K. Jackson 是 IBM Americas Software Sales 的一位咨詢(xún) IT 架構師,是常駐 New York Technical Exploration Center 的 IT 架構師。同時(shí),他還是 Open Group Architecture Forum 的副主席。The Open Group 是一個(gè) IT 行業(yè)標準組織,是 X-open 和 Open Software Foundation 合并而成的。The Open Group Architecture Forum 已制定并發(fā)布了唯一的行業(yè)標準企業(yè)體系結構開(kāi)發(fā)方法。The Open Group 還于 2005 年建立了一個(gè) IT 架構師認證計劃,對 IT 行業(yè)中的 IT 架構師的含義進(jìn)行了定義。 Grady 是 IBM Fellow,曾參與過(guò)全球幾乎能想象得到的所有領(lǐng)域的很多復雜的以軟件為中心的系統,在其中擔任架構師或體系結構顧問(wèn)。Grady 編寫(xiě)過(guò)六本暢銷(xiāo)書(shū),發(fā)表了數百篇關(guān)于軟件工程的文章,其中包括在上個(gè)世紀 80 年代早期發(fā)布的數篇論文,后來(lái)從這些論文中發(fā)展出來(lái)了面向對象的設計的術(shù)語(yǔ)和實(shí)踐。請訪(fǎng)問(wèn)他的博客 Software architecture, software engineering, and Renaissance jazz。 IBM 杰出工程師 Jenny Choy 是 IBM Canada Ltd 的 Business Consulting Services 內 Application Services 的 Transformation Engineering 負責人。她同時(shí)也是 IBM Academy of Technology 的成員和認證 IT 架構師。 Kurt Bittner 從事 IBM? Rational 軟件的產(chǎn)品策略工作。他 23 年來(lái)一直在從事幫助各個(gè)團隊更好地開(kāi)發(fā)軟件方面的工作。他曾是早期 Rational Unified Process (RUP)? 開(kāi)發(fā)團隊的一員,負責過(guò)很多行業(yè)的開(kāi)發(fā)團隊的工作。不進(jìn)行軟件開(kāi)發(fā)工作時(shí),他喜歡的休閑活動(dòng)是攀爬冰瀑。Kurt 和 Ian Spence 合作編寫(xiě)了 Use Case Modeling(Addison-Wesley,2003 年)和 Managing Iterative Software Development(Addison-Wesley,2006 年即將出版)。 Sanjay Bose 供職于 IBM Software Strategy 部門(mén),負責 Enterprise Integration Design Center,該中心對 IBM Software 投資組合需求進(jìn)行標識,并通過(guò)參與企業(yè)客戶(hù)和 IBM Software 產(chǎn)品開(kāi)發(fā)實(shí)驗室的工作來(lái)開(kāi)發(fā)解決方案組件和資產(chǎn)。他有超過(guò) 12 年的 IT 行業(yè)從業(yè)經(jīng)驗,主要涉及創(chuàng )建產(chǎn)品體系結構、設計和細化技術(shù)策略以及使用分布式技術(shù)設計企業(yè)應用程序系統。他擅長(cháng)的領(lǐng)域包括 SOA、Enterprise Service Bus (ESB)、Web 服務(wù)、Java? 2 Platform, Enterprise Edition (J2EE) 和電子商務(wù)技術(shù)。他與人合著(zhù)了《SOA Compass》一書(shū),并在 IBM developerWorks and Systems Journal 上發(fā)表了一些文章。他目前在賓夕法尼亞州匹茲堡居住和工作,業(yè)余時(shí)間他喜歡參加哲學(xué)講座、讀書(shū)、看到電影和玩 Sony PlayStation。請參閱他的博客:SOA, ESB, and beyond。 杰出工程師 Sridhar Iyengar 負責 IBM Rational Software 開(kāi)發(fā)團隊的技術(shù)策略。他是 OMG Architecture 委員會(huì )和董事會(huì )的成員,對模型驅動(dòng)的體系結構標準的發(fā)展進(jìn)行指導。 Walker Royce 是 Rational Software 團隊的老牌成員,目前擔任 IBM Software Services Rational 的副總裁。他是《Software Project Management, A Unified Framework》 (Addison Wesley Longman,1998 年)的作者,同時(shí)也是 Rational Unified Process 中繼承的管理理念的主要倡導者。在加入 Rational 前,Walker 在 TRW Electronics and Defense 從事了 16 年軟件開(kāi)發(fā)工作,并獲得了 Chairman‘s Award for Innovation。 |
聯(lián)系客服