?????這幾天一直在思考幾個問題,現在提出了SCA(面向構件)的思想。而現在提出的SCA是在SOA的基礎上建立的。而我就我們目前產品的狀況,談一談我使用古老的技術實現SCA的思想,當然不是建立在SOA上的。因為我們每個模塊和每個模塊的聯系甚小(不好抽出共享service)。還考慮到SOA一些成本的問題。還是用比較本,但應該行之有效的方法解決,以下為解決方案。
???? 產品背景:研發人員頻繁的出差,主要是因為產品在各地市(移動,聯通,網通,電信)的業務需求不同導致,需要在主版本上修改功能以滿足各地市的需求。這樣我們的產品無疑是湖北移動,湖北電信,福建電信,福建移動等等,各出一個版本。其實我們做了很大一部分重復的工作。我們的產品也就不能稱為產品,而我們一直在做項目。
?????現在就可定制、可復用以節省開發成本提出一些我的想法。
???
?????我想我們的產品應該面向組件,也就是說要松偶合,可復用,可定制。我們的平臺(基礎模塊)只包括系統管理(用戶、權限及公用工具、也可以用portal)一部分。而其他模塊,像作業計劃,值班管理,信息發布等等。每個都是一個單獨可以部署在主版本(系統管理)的應用。而平臺向外發布web servie接口以及也可以傳統java方式調用,這些是可配的。這樣可以做到每個模塊各布署到單獨的應用。如果這樣我們可能還需要一個單點登陸(除portal)。這些工作是由研發人員進行控制。研發人員提供實施人員頁面操作,實施人員通過配置可以將模塊(組件也就是作業計劃,值班管理)配到平臺(基礎模塊)上。這樣我們來維護一個組件庫,組件庫中包括各模塊的應用。組件庫的豐富是一個漫長的過程,也就是說,假如我們現在有一個福建移動的作業計劃,而不滿足福建電信的要求的,若需要新增功能,我想應該在原來版本上進行新增(由研發人員控制),若要修改功能,如果功能修改量比較小,而又對業務要求不是很合適。我們可以試著讓項目經量說服客戶。如果二義性比較大,這樣我們可以在原來版本上新建一個版本,形成一個新版本。OK,現在我們有兩個版本的作業計劃了,隨著時間的增加。我們的組件庫越來越豐富。如果某個地市說要上產品一期,我們會拿出需求去比對,按照每個相應的組件去配置形成一個滿足某地市的需要。而這些工作完全可以不用研發人員做。而這樣,我們就實現了一個可定制的版本。如果這個地市要上二期,我們保持主版本的向后兼容,可以直接將新要上的模塊掛上去。
???目前面臨的問題:
??????1.平臺(基礎模塊)要修改,會改動很多模塊。而我的想法是,基礎模塊的修改應該保持向下兼容。若修改應明確記錄,其我們的多個組件也應修改。這樣才能使已經上線的產品可以很容易的升級或新增組件。
??????2.需要有一個組件管理庫,它用來管理組件,組件的版本,主要實現內容啦。修改組件的log,發布的組件啦。這是一個非常重要的事情。應該由研發人員撐控。
????? 總之主要面臨的問題就是版本的管理。
?? 我目前也只是構思。也希望聽聽各位的意見。希望能給出意見。可能我的思想很老套了,但確實可以解決我們現在的問題。
?