作者: 清茶,  出處:IT專家網(wǎng), 責(zé)任編輯: 李春禹,
2008-05-14 09:56
   如果代碼開發(fā)人員一直以來都不能為代碼使用者提供真正需要的代碼開發(fā),那所謂的最佳“企業(yè)級(jí)架構(gòu)”將永遠(yuǎn)無法實(shí)現(xiàn)。然而,在現(xiàn)實(shí)中,大部分從事代碼開發(fā) 的人并不會(huì)把另外一些可能需要到這些代碼開發(fā)的人當(dāng)作使用者去對(duì)待。這也是面向服務(wù)架構(gòu)(SOA)未能獲得成功的原因所在。

  【IT專家網(wǎng)獨(dú)家】SOA絕對(duì)不是一個(gè)單純的IT問題,企業(yè)必須從業(yè)務(wù)角度和IT角度兩方面出發(fā)分析自己的需求,根據(jù)自身現(xiàn)狀和業(yè)務(wù)需求確定合適的SOA。 如果代碼開發(fā)人員一直以來都不能為代碼使用者提供真正需要的代碼開發(fā),那所謂的最佳“企業(yè)級(jí)架構(gòu)”將永遠(yuǎn)無法實(shí)現(xiàn)。然而,在現(xiàn)實(shí)中,大部分從事代碼開發(fā)的 人并不會(huì)把另外一些可能需要到這些代碼開發(fā)的人當(dāng)作使用者去對(duì)待。這也是面向服務(wù)架構(gòu)(SOA)未能獲得成功的原因所在。

  SOA所能帶來的價(jià)值已經(jīng)是清楚的了,在這幾年中我們也一直努力創(chuàng)造出SOA軟件產(chǎn)品以供使用。我也知道COBOL(面向商業(yè)的通用語言,又稱為企業(yè)管理語言、數(shù)據(jù)處理語言等,Common Business Oriented Langauge)應(yīng)用曾經(jīng)是建立在同樣的原則之上。我曾作為一個(gè)項(xiàng)目的團(tuán)隊(duì)負(fù)責(zé)人參與了在遵從COBOL 74規(guī)范基礎(chǔ)之上的超過700個(gè)核心功能服務(wù)的興建工作,我們所編寫的代碼具有著高度的可重用性。當(dāng)然,這也是我們?yōu)榻鹑跈C(jī)構(gòu)所建立起來的一個(gè)豎井中的大型系統(tǒng)。我們以這樣的環(huán)境需求為基礎(chǔ)構(gòu)建了這一系統(tǒng),并保證其可以在該企業(yè)的其他部門重復(fù)使用。

  對(duì)于這份工作我當(dāng)時(shí)是覺得非常自豪的,但是現(xiàn)在回想起來,我們卻并不是一個(gè)非常好的使用者。我們樂于去試圖找到一些非商業(yè)定制的應(yīng)用從而滿足我 們的主要功能需求,但是卻并不是作為自身企業(yè)一個(gè)好的代碼使用者而存在。我們甚至根本沒有考慮過從企業(yè)現(xiàn)有軟件應(yīng)用的重用方向入手。這個(gè)問題直到現(xiàn)在也沒 有真正改變,因?yàn)楦嗟臅r(shí)候我們只是專注于如何編寫代碼,并讓其實(shí)現(xiàn)“可重用”。

  問題的關(guān)鍵并不是說我們需要從代碼的角度去考慮實(shí)現(xiàn)可重用。我們必須得明白,這些代碼使用者即其他的程序開發(fā)人員和架構(gòu)師。 我們必須把自己看作是服務(wù)的提供者,為這些使用者創(chuàng)造代碼,并準(zhǔn)確的提供給他們使用。這些代碼必須是易于使用的,必須是很方便就能找到的,必須得到有效推 廣和準(zhǔn)確定位,同時(shí)也必須是能夠滿足使用者需求的,而在做到這一切的前提是我們應(yīng)該首先成為一個(gè)好的使用者,學(xué)會(huì)如何去使用他們。

  類似于這樣對(duì)于使用者的認(rèn)識(shí)以及整個(gè)企業(yè)和團(tuán)隊(duì)中服務(wù)的認(rèn)識(shí)可能并不是一個(gè)主流的理念。就目前而言,我們對(duì)使用者還缺少足夠的了解和反饋,僅僅只是感覺上的評(píng)斷。

  相對(duì)于我們的開發(fā)團(tuán)隊(duì),在整個(gè)組織范圍或者更廣的范圍內(nèi)將會(huì)有更多的人能夠接觸到我們所能接觸的使用者。如果我和我的團(tuán)隊(duì)是為這些使用者的服務(wù)提供者,也許在這個(gè)領(lǐng)域還 有更多的團(tuán)隊(duì)是這個(gè)使用者的服務(wù)提供者,那么我是不是應(yīng)該提前就問自己一些應(yīng)該被問到的問題:如果我的使用者能夠自主的選擇它所需要的服務(wù)提供者,那在所 有服務(wù)提供者都沒出錯(cuò)的情況下,我應(yīng)該怎樣做才能確保我會(huì)是他唯一的選擇,并且能持續(xù)不斷的贏得這場(chǎng)業(yè)務(wù)?我應(yīng)該怎么做才能讓我的服務(wù)盡可能的便于使用?

  在當(dāng)前的市場(chǎng)上有不少杰出的工具可以用來支持這種對(duì)遺留應(yīng)用的再次使用。這些都是資源管理中可以共同使用的內(nèi)容。對(duì)于軟件行業(yè)而言,這些工具能 夠有助于度量之前的投資組合在實(shí)際消費(fèi)的可重復(fù)使用資產(chǎn)的價(jià)值。而這些信息在過去一般來說是不會(huì)有的。我試圖從這些工具的使用者中整理出一個(gè)具有說服力的 數(shù)字出來,但是,無法避免的是,這個(gè)數(shù)字絕不會(huì)很高。那么,如果我的統(tǒng)計(jì)沒有出錯(cuò)的話,是什么阻止了我們對(duì)可重用代碼的重復(fù)使用呢?

  作為軟件開發(fā)人員我們并不是好的使用者,相比之下我們的同事也許更好的處理好如何去“使用”的工作。當(dāng)我們要尋找一些有用的東西或者是一些示例 的時(shí)候我們可能首先想到的是互聯(lián)網(wǎng)而不是公司內(nèi)部的資源庫。當(dāng)然,這其中可能的原因是企業(yè)內(nèi)部缺少一個(gè)應(yīng)用能夠類似于網(wǎng)絡(luò)中的搜索工具。但是,更重要的 是,當(dāng)我們?cè)诰帉懘a的時(shí)候可能并沒有想到會(huì)有別的開發(fā)人員可以使用這些內(nèi)容。

  我們并沒有為我們所編寫的代碼內(nèi)容創(chuàng)造接口以方便人們能夠更好的使用,我們甚至根本就未曾考慮過這個(gè)問題。我們不提供設(shè)計(jì)層次的抽象內(nèi)容從而有 助于其他程序員和架構(gòu)師能夠從我們的解決方案中選出合適的建議整合到他們的方案中去。我們并沒有將代碼整理給團(tuán)隊(duì)中沒有參與的人員或者是整個(gè)企業(yè)范圍的其 他團(tuán)隊(duì)。我們?nèi)狈κ袌?chǎng)調(diào)研,不清楚那么沒有使用我們代碼的使用者究竟需要什么,無法將我們的代碼開發(fā)發(fā)揮至最大效用。我們沒有合理的將代碼打包,使得即便 選擇使用我們的使用者也覺得不易使用。

  技術(shù)支持的工作正是因?yàn)槲覀兊倪@些做法才發(fā)展起來并部分的存在于當(dāng)前的工作之中。我們必須開始將我們的服務(wù)提供工作從代碼層面轉(zhuǎn)向到人的層面,并更有效的利用這些技術(shù)支持。緊接著我們可以利用這些工具更好的輔助市場(chǎng),并能使我們的代碼更廣泛的提供給別人。

  我希望在這些工作之后能夠有一些好的度量重用的方式,真正顯示出我們艱苦工作后所建立起的可重用軟件在重復(fù)使用方面的回報(bào)。并且使用者的需求將會(huì)是真正放在第一的位置。同時(shí),在整個(gè)SOA模型當(dāng)中,服務(wù)的有效消費(fèi)應(yīng)該是占到一半以上的重要程度。

原文地址:http://soa.ctocio.com.cn/xwpl/188/8114688.shtml
Flock 瀏覽器 創(chuàng)建

標(biāo)簽: ,