JAVA隨筆

           

          面向組件的一些想法

          ?????這幾天一直在思考幾個(gè)問(wèn)題,現(xiàn)在提出了SCA(面向構(gòu)件)的思想。而現(xiàn)在提出的SCA是在SOA的基礎(chǔ)上建立的。而我就我們目前產(chǎn)品的狀況,談一談我使用古老的技術(shù)實(shí)現(xiàn)SCA的思想,當(dāng)然不是建立在SOA上的。因?yàn)槲覀兠總€(gè)模塊和每個(gè)模塊的聯(lián)系甚?。ú缓贸槌龉蚕韘ervice)。還考慮到SOA一些成本的問(wèn)題。還是用比較本,但應(yīng)該行之有效的方法解決,以下為解決方案。

          ???? 產(chǎn)品背景:研發(fā)人員頻繁的出差,主要是因?yàn)楫a(chǎn)品在各地市(移動(dòng),聯(lián)通,網(wǎng)通,電信)的業(yè)務(wù)需求不同導(dǎo)致,需要在主版本上修改功能以滿足各地市的需求。這樣我們的產(chǎn)品無(wú)疑是湖北移動(dòng),湖北電信,福建電信,福建移動(dòng)等等,各出一個(gè)版本。其實(shí)我們做了很大一部分重復(fù)的工作。我們的產(chǎn)品也就不能稱為產(chǎn)品,而我們一直在做項(xiàng)目。

          ?????現(xiàn)在就可定制、可復(fù)用以節(jié)省開(kāi)發(fā)成本提出一些我的想法。
          ???
          ?????我想我們的產(chǎn)品應(yīng)該面向組件,也就是說(shuō)要松偶合,可復(fù)用,可定制。我們的平臺(tái)(基礎(chǔ)模塊)只包括系統(tǒng)管理(用戶、權(quán)限及公用工具、也可以用portal)一部分。而其他模塊,像作業(yè)計(jì)劃,值班管理,信息發(fā)布等等。每個(gè)都是一個(gè)單獨(dú)可以部署在主版本(系統(tǒng)管理)的應(yīng)用。而平臺(tái)向外發(fā)布web servie接口以及也可以傳統(tǒng)java方式調(diào)用,這些是可配的。這樣可以做到每個(gè)模塊各布署到單獨(dú)的應(yīng)用。如果這樣我們可能還需要一個(gè)單點(diǎn)登陸(除portal)。這些工作是由研發(fā)人員進(jìn)行控制。研發(fā)人員提供實(shí)施人員頁(yè)面操作,實(shí)施人員通過(guò)配置可以將模塊(組件也就是作業(yè)計(jì)劃,值班管理)配到平臺(tái)(基礎(chǔ)模塊)上。這樣我們來(lái)維護(hù)一個(gè)組件庫(kù),組件庫(kù)中包括各模塊的應(yīng)用。組件庫(kù)的豐富是一個(gè)漫長(zhǎng)的過(guò)程,也就是說(shuō),假如我們現(xiàn)在有一個(gè)福建移動(dòng)的作業(yè)計(jì)劃,而不滿足福建電信的要求的,若需要新增功能,我想應(yīng)該在原來(lái)版本上進(jìn)行新增(由研發(fā)人員控制),若要修改功能,如果功能修改量比較小,而又對(duì)業(yè)務(wù)要求不是很合適。我們可以試著讓項(xiàng)目經(jīng)量說(shuō)服客戶。如果二義性比較大,這樣我們可以在原來(lái)版本上新建一個(gè)版本,形成一個(gè)新版本。OK,現(xiàn)在我們有兩個(gè)版本的作業(yè)計(jì)劃了,隨著時(shí)間的增加。我們的組件庫(kù)越來(lái)越豐富。如果某個(gè)地市說(shuō)要上產(chǎn)品一期,我們會(huì)拿出需求去比對(duì),按照每個(gè)相應(yīng)的組件去配置形成一個(gè)滿足某地市的需要。而這些工作完全可以不用研發(fā)人員做。而這樣,我們就實(shí)現(xiàn)了一個(gè)可定制的版本。如果這個(gè)地市要上二期,我們保持主版本的向后兼容,可以直接將新要上的模塊掛上去。

          ???目前面臨的問(wèn)題:
          ??????1.平臺(tái)(基礎(chǔ)模塊)要修改,會(huì)改動(dòng)很多模塊。而我的想法是,基礎(chǔ)模塊的修改應(yīng)該保持向下兼容。若修改應(yīng)明確記錄,其我們的多個(gè)組件也應(yīng)修改。這樣才能使已經(jīng)上線的產(chǎn)品可以很容易的升級(jí)或新增組件。
          ??????2.需要有一個(gè)組件管理庫(kù),它用來(lái)管理組件,組件的版本,主要實(shí)現(xiàn)內(nèi)容啦。修改組件的log,發(fā)布的組件啦。這是一個(gè)非常重要的事情。應(yīng)該由研發(fā)人員撐控。
          ????? 總之主要面臨的問(wèn)題就是版本的管理。

          ?? 我目前也只是構(gòu)思。也希望聽(tīng)聽(tīng)各位的意見(jiàn)。希望能給出意見(jiàn)??赡芪业乃枷牒芾咸琢?,但確實(shí)可以解決我們現(xiàn)在的問(wèn)題。
          ?

          posted on 2006-12-15 09:45 曲靜波 閱讀(1394) 評(píng)論(6)  編輯  收藏 所屬分類: others

          評(píng)論

          # re: 面向組件的一些想法 2006-12-15 11:15 BeanSoft

          可以用 Eclipse 插件模式, 或者 J2EE 的思想, 把應(yīng)用分為 平臺(tái)層 和 業(yè)務(wù)層, 然后每個(gè)包有個(gè)入口的類, 通過(guò)配置文件載入然后執(zhí)行, 典型的例子: WAR 文件.... 當(dāng)然了, 如果有支持熱加載的類載入器(hot-replace class loader), 就可以實(shí)現(xiàn)自己的應(yīng)用不當(dāng)機(jī)升級(jí)了. 或者通過(guò)定義接口來(lái)做, 接口要定義 onDestaroy(), onInit() 這樣的方法, 像 servlet 那樣, 讓容器來(lái)知道共同的約定.  回復(fù)  更多評(píng)論   

          # re: 面向組件的一些想法 2006-12-15 11:30 曲靜波

          @BeanSoft
          嗯,這些我考慮過(guò)。但是有個(gè)問(wèn)題,您是說(shuō)把每個(gè)組件看一個(gè)war嗎?這樣的話。就會(huì)部署在不同的應(yīng)用。也就會(huì)有多個(gè)context,如果有8個(gè)組件(模塊),那就會(huì)有8+1(平臺(tái))context。這樣會(huì)不會(huì)對(duì)效率有影響。如果不是說(shuō)每個(gè)組件看成一個(gè)war的話。那就是設(shè)計(jì)接口實(shí)現(xiàn)。但這塊我還也是在摸索當(dāng)中。有這個(gè)想法。請(qǐng)賜教。或者您有這方面設(shè)計(jì)的資料能否共享下呢。  回復(fù)  更多評(píng)論   

          # re: 面向組件的一些想法 2006-12-15 13:06 BeanSoft

          我也沒(méi)什么具體的想法, 倒是可以看看這個(gè)開(kāi)源項(xiàng)目: http://jmoduleloader.tomjudge.com/documentation.php
          There are 2 types of module that jModuleLoader is capable of loading: thoes that have a specific generic interface (otherwise known withing jModuleLoader as the loading interface) to the modules code and those that do not. Before developing an application with jModuleLoader I suggest that you read up on java class loaders.

            回復(fù)  更多評(píng)論   

          # re: 面向組件的一些想法 2006-12-15 14:58 曲靜波

          我看過(guò)jmoduleloade了,仔細(xì)想了下,其實(shí)我的平臺(tái)已經(jīng)實(shí)現(xiàn)功能項(xiàng)url的配置。也就是說(shuō)已經(jīng)有入口了。jmoduleloader反而不會(huì)很靈活。而我現(xiàn)在主要是想解決war包,就是不能每一個(gè)模塊有一個(gè)war包。怎么把它拆分出來(lái),放入平臺(tái)(BS結(jié)構(gòu))。3x  回復(fù)  更多評(píng)論   

          # re: 面向組件的一些想法 2006-12-15 19:45 fyxruben

          是否想說(shuō)做成服務(wù)器端的eclipse ???  回復(fù)  更多評(píng)論   

          # re: 面向組件的一些想法 2006-12-18 08:55 qujingbo

          @fyxruben
          他指的是eclipse插件模式。就是你要按照一定的規(guī)則(eclipse給你的接口,你需實(shí)現(xiàn))開(kāi)發(fā)。而我們做的是bs,確實(shí)可以借鑒這種方法。但是現(xiàn)在我們的平臺(tái)是配置url,靈活性比eclipse插件好用。  回復(fù)  更多評(píng)論   

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類(9)

          隨筆檔案(8)

          文章分類

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 静乐县| 竹山县| 太保市| 喀喇沁旗| 汉中市| 会同县| 广州市| 涪陵区| 五河县| 安达市| 南宫市| 康乐县| 马关县| 含山县| 安徽省| 渭南市| 柳河县| 临漳县| 富蕴县| 池州市| 桐梓县| 凤城市| 东明县| 华坪县| 苗栗县| 定州市| 长海县| 民权县| 南宁市| 曲麻莱县| 屏边| 霸州市| 镇巴县| 天镇县| 颍上县| 丰顺县| 云浮市| 万州区| 新龙县| 永川市| 淳安县|