posts - 32, comments - 153, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          [轉(zhuǎn)]如何組建理想SOA團隊

          Posted on 2006-11-25 09:09 Zou Ang 閱讀(241) 評論(0)  編輯  收藏 所屬分類:

          趨向采用 SOA

            軟件開發(fā)領(lǐng)域的主要發(fā)展趨勢是從傳統(tǒng)軟件體系結(jié)構(gòu)過渡到面向服務(wù)的體系結(jié)構(gòu) (SOA)。在傳統(tǒng)軟件體系結(jié)構(gòu)中,將項目視為單個新應(yīng)用程序的交付。在SOA中,將項目視為集成服務(wù)的交付——一些是新建的,一些是現(xiàn)有的。無論其規(guī)模和預(yù)算如何,幾乎所有信息技術(shù)(Information Technology,IT)部門當(dāng)前都在進行過渡到SOA的工作。您可能已經(jīng)讀過多篇關(guān)于SOA采用、成熟度模型和實現(xiàn)的文章了。本文將描述在組織采用SOA或過渡到更高的SOA成熟度水平的過程中,您的IT團隊成員中所需的一組新角色及其各自的職責(zé)。

            在形成SOA團隊時,最大的范式轉(zhuǎn)換是從組合應(yīng)用程序交付過渡到服務(wù)交付。傳統(tǒng)軟件開發(fā)人員通常構(gòu)建應(yīng)用程序中的一個模塊,或典型的三層體系結(jié)構(gòu)中的單個層的一部分。開發(fā)人員的一個例子就是在模型-視圖-控制器(Model-View-Controller,MVC)體系結(jié)構(gòu)中負(fù)責(zé)控制器或模型層的人員。在SOA環(huán)境中,這些開發(fā)人員現(xiàn)在負(fù)責(zé)服務(wù)實現(xiàn)。他們并不需要知道何時、如何或為什么調(diào)用服務(wù)以及誰調(diào)用服務(wù)。他們所關(guān)心的就是,服務(wù)進行什么工作以及需要符合什么樣的服務(wù)水平協(xié)議(Service Level Agreement,SLA)。

            為了進行此范式轉(zhuǎn)換,您需要形成完整的SOA團隊,其中的每個角色的職責(zé)與傳統(tǒng)軟件開發(fā)團隊中的相同角色略有不同。本文將說明SOA團隊中以下角色的情況:

            ·架構(gòu)師
            ·開發(fā)人員
            ·業(yè)務(wù)分析人員
            ·項目經(jīng)理

            在典型的IT組織中還包括多個其他角色,包括基礎(chǔ)設(shè)施支持、數(shù)據(jù)庫支持、安全性等等。不過,了解了這些主要角色如何改變后,您就能夠?qū)ζ渌巧M行調(diào)整,以與其匹配。

            理解架構(gòu)師的角色

            在較大的組織中,通常有兩個體系結(jié)構(gòu)小組。企業(yè)體系結(jié)構(gòu)小組定義組織內(nèi)的每個應(yīng)用程序小組都必須遵循的控制策略、最佳實踐和過程。應(yīng)用程序體系結(jié)構(gòu)小組負(fù)責(zé)其特定應(yīng)用程序的體系結(jié)構(gòu),確保體系結(jié)構(gòu)能夠支持當(dāng)前和將來的業(yè)務(wù)需求。

            企業(yè)架構(gòu)師

            在SOA組織中,企業(yè)架構(gòu)師的角色是推動和促進SOA的采用。他們需要幫助應(yīng)用程序架構(gòu)師和各個開發(fā)小組理解SOA的基礎(chǔ)知識并將業(yè)務(wù)需求轉(zhuǎn)換為有意義的服務(wù),以便這些小組進行實現(xiàn)和公開。

            僅由您自己的應(yīng)用程序或業(yè)務(wù)流程使用的服務(wù)幾乎沒有價值。企業(yè)架構(gòu)師需要確保所有應(yīng)用程序架構(gòu)師定期討論其項目,以確定他們可以公開或使用的服務(wù)。在不能重用現(xiàn)有服務(wù)的情況下,企業(yè)架構(gòu)師還需要確保充分利用構(gòu)建新服務(wù)的每個機會。促進對現(xiàn)有服務(wù)的重用肯定比編寫新服務(wù)具有更高的優(yōu)先級。最后,他們必須確認(rèn)服務(wù)是在可靠的技術(shù)之上構(gòu)建的,且能夠滿足所確立的 SLA。

            企業(yè)架構(gòu)師負(fù)責(zé)定義測定和跟蹤 SLA 的機制。他們定義有關(guān)控制、安全性、災(zāi)難恢復(fù)等等的策略和過程。他們通常是涉及到 Web 服務(wù)管理、編排和企業(yè)服務(wù)總線的解決方案的主要決策者。

            應(yīng)用程序架構(gòu)師

            應(yīng)用程序架構(gòu)師的角色是確保所編寫的代碼是面向服務(wù)的,且遵循可用于面向服務(wù)的開發(fā)的最佳實踐和流程。他們需要在不會對解決方案進行過度設(shè)計的前提下將業(yè)務(wù)需求轉(zhuǎn)換為有意義的服務(wù)。典型的服務(wù)創(chuàng)建和使用比代碼的直接調(diào)用開銷更大。因此,確定作為服務(wù)公開的粒度級別以及如何進行公開是此角色的主要工作職能。

            應(yīng)用程序架構(gòu)師還要與組織中的企業(yè)架構(gòu)師及其他應(yīng)用程序架構(gòu)師緊密合作,以確保充分利用每個服務(wù)重用機會,且恰當(dāng)?shù)貙Ψ?wù)進行構(gòu)建、發(fā)現(xiàn)、安全保護、使用和測定。

            應(yīng)用程序架構(gòu)師最終負(fù)責(zé)服務(wù)交付和使用(非功能要求)的所有技術(shù)方面的工作,包括 SLA 遵循情況的可測定性、符合控制策略、執(zhí)行和確保安全策略等等。

            閱讀不同SOA文獻(xiàn)中關(guān)于架構(gòu)師的信息時,您可能會遇到術(shù)語業(yè)務(wù)架構(gòu)師,即應(yīng)該理解業(yè)務(wù)情況并設(shè)計服務(wù)的人員。在我的SOA團隊定義中,此角色的工作由應(yīng)用程序架構(gòu)師完成,而不是由企業(yè)架構(gòu)師完成。應(yīng)用程序架構(gòu)師或業(yè)務(wù)架構(gòu)師是業(yè)務(wù)小組和技術(shù)小組間負(fù)責(zé)技術(shù)設(shè)計方面的協(xié)調(diào)人,而業(yè)務(wù)分析人員則是負(fù)責(zé)業(yè)務(wù)方面的協(xié)調(diào)人。??

          ??????? 開發(fā)人員的角色

            在傳統(tǒng)IT小組中,開發(fā)人員通常負(fù)責(zé)應(yīng)用程序的一個片段。這些片段可以由功能(如注冊中心或報告模塊)或技術(shù)(如 JavaServer Pages? [JSP]、Enterprise JavaBeans [EJB]、數(shù)據(jù)庫層等等)確定。

            由于SOA團隊通常采用較短的開發(fā)周期,所以按技術(shù)對開發(fā)人員進行劃分并不實際。因此,將按功能劃分的開發(fā)團隊轉(zhuǎn)變到新的SOA開發(fā)人員角色更為容易一些。

            成功的SOA開發(fā)人員將能同時理解業(yè)務(wù)流程和功能。他們會恰當(dāng)構(gòu)建所需的服務(wù)來滿足業(yè)務(wù)流程的需求。越來越重要的是,要執(zhí)行用于錯誤處理、跟蹤/審核、數(shù)據(jù)轉(zhuǎn)換和安全性的良好設(shè)計原則,并確保將其加入到任何服務(wù)代碼中。由于SOA的核心原則之一是重用,所以開發(fā)人員必須放棄傳統(tǒng)開發(fā)人員希望構(gòu)建一切的想法。如果某個方面的服務(wù)已經(jīng)存在,請使用這個服務(wù)——而不要自己從頭構(gòu)建。

            由于 Web 服務(wù)的技術(shù)發(fā)展并有大量有關(guān)該技術(shù)的參考材料可供使用,因此可以說開發(fā)人員已經(jīng)“全副武裝”,能充分勝任其在新SOA環(huán)境中的工作了。

            業(yè)務(wù)分析人員的角色

            業(yè)務(wù)分析人員可能是最難得到正確認(rèn)識的一個角色。作為技術(shù)人員兼架構(gòu)師,我傾向于將架構(gòu)師視為最關(guān)鍵的SOA團隊成員。不過,基于經(jīng)驗和最慎重的考慮,我必須指出,作為SOA團隊中的一員,實際上業(yè)務(wù)分析人員的工作變化最大。無論開發(fā)環(huán)境如何,業(yè)務(wù)分析人員都執(zhí)行兩個主要職能:

            與執(zhí)行人員和策略級的用戶溝通,以了解其對系統(tǒng)的要求。

            與技術(shù)團隊成員溝通,以將確定的要求轉(zhuǎn)換為能進行編碼和測試的技術(shù)規(guī)范。

            在SOA環(huán)境中,業(yè)務(wù)分析人員還有兩項新職能:

            與整個開發(fā)團隊合作,讓他們開始以服務(wù) 的方式思考問題。(他們需要何種服務(wù)來進行其工作?已經(jīng)存在哪些服務(wù)可供使用或在調(diào)整后進行使用?如此等等。)

            與技術(shù)團隊合作,以設(shè)計和構(gòu)建必要的服務(wù),可能會利用已經(jīng)存在的現(xiàn)有服務(wù)。

            無論喜歡與否,在很多企業(yè)中,由于組織使用的技術(shù)的局限性,業(yè)務(wù)分析人員通常會不斷更改相關(guān)要求。這個問題可能并不能得到消除,但在SOA環(huán)境中,業(yè)務(wù)分析人員進行服務(wù)設(shè)計的空間肯定更大,而不用過多地?fù)?dān)心技術(shù)。

            項目經(jīng)理的角色

            SOA 環(huán)境中的項目經(jīng)理的角色與傳統(tǒng)IT環(huán)境中的項目經(jīng)理之間的主要差異在于項目生命周期。無論SOA團隊采用何種方法(IBM Rational? Unified Process (RUP)、瀑布式、敏捷方法),項目經(jīng)理通常都需要為每個服務(wù)計劃較短的交付周期。他們與業(yè)務(wù)用戶和不同服務(wù)使用者一起定義服務(wù)水平協(xié)議 (SLA)。此外,他們必須與多個IT小組(如基礎(chǔ)設(shè)施支持小組)共同確保這些 SLA 是可以實現(xiàn)的。

            項目經(jīng)理在服務(wù)運行時進行協(xié)調(diào)和跟蹤方面的角色比跟蹤日常服務(wù)交付更為重要。不過,由于周期較短,這個工作相對較為容易一些。

            總結(jié):SOA角色及其對您的團隊的意義

            本文討論的關(guān)鍵詞是培訓(xùn)。當(dāng)您決定進行SOA項目時,需要仔細(xì)考慮團隊人員的當(dāng)前角色,并確保通過培訓(xùn)、指導(dǎo)和調(diào)整試驗及錯誤周期來幫助他們準(zhǔn)備好進行其在SOA中的工作。



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1406628

          主站蜘蛛池模板: 广平县| 剑川县| 临漳县| 科技| 樟树市| 西昌市| 黄浦区| 纳雍县| 碌曲县| 汽车| 即墨市| 叙永县| 沙坪坝区| 榆林市| 马尔康县| 含山县| 凌海市| 尖扎县| 靖西县| 晋城| 平罗县| 静安区| 渝北区| 张北县| 唐山市| 余干县| 任丘市| 泰宁县| 泌阳县| 田东县| 天全县| 萨嘎县| 雅安市| 佛冈县| 乌兰浩特市| 武胜县| 郯城县| 江都市| 瓦房店市| 唐海县| 隆昌县|