我碰到個問題不知道如何解決。還有我想知道我的想法、我公司內討論過的,是否正確…。
我公司,生產型,從小企業做起,現在有點規模。資訊化方面,以前公司小,各方面找到好的軟體就選用它,為達到某個單一功能。我相信很多小企業都有相同情況。現在,開始有需求要各軟體之間要互連。
討論過的是:
- 現存單獨軟體能做到的功能,是否應該在 ERP 內重新開發,重現相同功能?還是要接受現有 ERP 內那個破爛的類似功能來達到整合?
拿具體的一個業務來說,我們有一套專門用來計算產品報價的軟體,報價後,我們會做產品樣板給客人,之後才會收到確實的訂單,而訂單我們會輸入到現在的 ERP 內。ERP 內其實也有報價功能,但功能上無法與我們先前購買的軟體相比。類似的情況,還出現在不同的應用環節上,不只是報價這環節。
切換另一套 ERP 是不可能的(跟某些顧問談起這問題,要麼就跟我推 R3,要麼就 Oracle,或者用友 NC等等),即使切換,要找到完全吻合我們所有需求的,也是不可能。ERP + 2 次開發,即上面提到,在重現一個現有的功能,要花費而且對公司沒有明顯的增值。
內部討論的結果是,希望保留舊軟體。我覺得這討論結果是個非常合理的。但兩套軟體,是有必要互動,比如做樣板的生產成本應該歸類到該報價上;又或者,將來客人真的有訂單下的時候,該價格應該取自報價,二者要吻合。除了忍受不互動之外,我希望有另一條路可走。所以接下來另一個問題是,ERP 與報價系統,如何串連。
- 我們已擁有的軟體,已經有六套,都需要互動的,是否對各自需要互動的部分,獨立開發?
這問題我馬上知道不可以各自寫。我不希望將來有什麼變化時候,要自行修改或找人修改十幾個地方,這樣的維護惡夢我先前已經領教過,不想再次發生。
經過 Google 一番,幾乎都指向 SOA。我判斷是,我要的是架構沒錯,但不必是web service。我不是說 SOA 中的 SO 等於 web service,只是我們不需要 web service。我們有分公司,但他們沒有自行採購軟體的權力,這都是由總部決定。再者,現在我們的六套軟體,平台、開發語言、資料庫系統,都是已知。全是內部應用,全在內網中。將來嘛,將來需要時候才暴露個 service 出來也不遲。至於BPM,互動的確有商務邏輯在裡面的。
隨後,看到 ESB 。
目前躊躇著不知道怎麼搞,是否要幹下去。
題外話,我的想法是,企業發展過程中,沒多少公司可以一開始就扔一兩千萬出來搞 Oracle、R3等等。所以成長過程中,必然會有不同的軟體存在,它們之間需要互動也是非常正常的事。(中小企比如我們,對這的確有需求,貌似因為增值不及提供實際功能的程式,好像都沒人想幹這種事)
說回來,整合方案,是否 SOA 都毫無關係,達到我們的目的就好了。尋找這些 middleware 時候,我們要求的是,商務邏輯調整時候要靈活(比如類似 BPEL 等方式),重用性是個考慮但不可以有太大的犧牲。
巧婦難為無米之炊,但沒米做不成飯,做麵條行不?我只想著不能就此停步,不夠 budget 也得想辦法解決。這或許是在購買更大型更好的系統前的一個過渡期吧。
我正在 open source 之中找答案,目前正在研究的有 JBoss+JBPM (貌似不是我要的)、Apache Camel、還有 FuseSource 系列我也準備看看。
我有極多不懂,沒有這些架構的經驗,連尋找的方向其實也不明確。有沒有高人指點一下?有做上述軟體的顧問介紹也請通知一下~
謝謝。