2009年9月21日 星期一

超級市場電腦化計劃書

星期六Wilson告訴我,MemDB有個使用連鎖零售系統的客戶,要開一間四萬尺的大型超級市場,要求我們給他們一份電腦化計劃書.


如果是新客,這樣的大工程和計劃書我們是不會做,因為接到的機會很微,但既然是舊客戶,也使用了MemDB連鎖零售系統,所以這是一個很難得的機會,我們要好好去做,而且必定要成功.因為如果這工程成功了,對MemDB未來發展有極大幫助.

我非常重視這個工程,所以假期開始了研究各種可行的方案,和跟幾個合作過的伙伴討論.這類的大工程,必須要組織一大團隊才能成事.

MemDB的優勢是已開發了軟件,而且客戶已在使用中.faiwong七間連鎖店用了四年,都未曾出現過軟件問題,所以這點我不太憺心.反而現在要考慮的是硬件和穩定性.

考慮了幾個方案,以下方案是最可行:

Picture

客戶要求二十部客戶端,能連接Monitor,Receipt Printer,Barcode Scanner, Cash Drawer和Keyboard.可以考慮購買一部超級電腦Server,連接二十部Thin Clients.而且預備多一部超級電腦Server,兩部Servers做Cluster,當主Server有任何問題,副Server可以即時switch使用,絶對不能影響到店舖經營.

每部Thin client沒有硬碟,有Monitor和USB連接就可以,而且只需要執行MemDB一個客戶端系統,每部32MB Ram已足夠.

以上需要找伙伴提供Server,Network和Support,要確保硬件和網絡能正常使用,軟件交由MemDB負責.

除了以上工程,另一個工程也要做,就是把history record (如銷售記錄)移到另一個資料庫系統做報表.

MemDB的另一個優勢是專門提供快速的記憶體資料庫技術,所有query可以在記憶體內查看和完成,所以交易能在短時間內完成.不過對這類的工程,history record增長很快,有更多的記憶體都不夠用.

不過不用憺心,這個問題有更好的解決方案,就是建立一個Report Server (RS),例如使用MSSQL或Oracle,定期由MemDB把history record移到這RS.這個就是3-tiers結構了Client - MemDB - RS.以MemDB做middle-ware,處理即時的transactions和query (如銷售和庫存管理).

最開心的是RS可以交由第三者開發,他們不用理會MemDB技術,但必須使用Borland C++ Builder和Fast Report開發.那樣MemDB可以使用BDE把history record定期移到RS,而他們要根據客戶的要求做不同的報表,所有版權歸MemDB所有,這樣就不怕被他們限制,用了C++ Builder和Fast Report,就算他們日後無法提供服務,也不會阻礙MemDB發展.

有興趣加入我們團隊做硬件Networking和Report Server,或有更好的解決方案 ,歡迎聯絡我們詳談.

14 則留言:

  1. BDE? 太舊了吧, dbExpress 或 ADO 比較好, 如果是 MSSQL, 還是 ADO 比較好. Cluster? MemDB 是 cluster aware? Windodws Cluster 或 Hyper-V cluster? BCB... 2010 or? Turbo Explorer 不能下載.

    回覆刪除
  2. william :
    BDE? 太舊了吧, dbExpress 或 ADO 比較好, 如果是 MSSQL, 還是 ADO 比較好. Cluster? MemDB 是 cluster aware? Windodws Cluster 或 Hyper-V cluster? BCB... 2010 or? Turbo Explorer 不能下載.

    可用ADO.
    正在研究使用那個方案, 不過如果要做Cluster, 價錢都會很高, 要比較一下.

    回覆刪除
  3. 咦,決定咗用FastReport,唔用Crystal Reports喇。

    回覆刪除
  4. 你會不會把 Network app 想得太簡單了??
    >>一部超級電腦Server
    一部超級 Single point of failure??
    >>Thin Clients
    Disconnect 全世界唔洗做野??
    >>每部32MB Ram已足夠.
    老實, 好多年無見過咁細嘅 RAM 賣...
    還有只有二十部客戶端, 行 exclusive lock 都還可以. 再多就要由加入 Concurrency 提昇
    我一直唔明, 你 memdb 點做 transaction
    你成日話"記憶體內查看和完成"....
    DR 點做?? 個 Transaction log 係邊??
    相比 HSQLDB/Derby, 甚至 mysql memory table 有咩分別??

    回覆刪除
  5. memdb有很多此類系統和客戶, 台灣伙伴已使用流水碼連鎖零售系統24 clients, 在不同地區, 運作正常. 這不是只是想, 已實踐了, 所以我很有信心可以完成.

    回覆刪除
  6. 相比之下, 前者好像好些.

    回覆刪除
  7. 我亦認同,Thin Client 下 32MB RAM已是可行吧!
    但Server方面,不須要太擔心,它只是作Listener的工作,若真的如你所寫的是不用SQL,真的不需要太擔心!不過要小心處理Load Balancing的問題,最最重要是你要選的Database Server,不過你係用MemDB就要你自己去寫code了。

    回覆刪除
  8. 你諗住點駁個兩部Server呢?Switching係MemDB入面做?

    回覆刪除
  9. 只要寫個中介Server就能連接多部伺服器!但要連接數據庫亦可!應該要開始發展中介server去處理擴充與兼容問題吧!要做的話,可找我談談吧!

    回覆刪除
  10. 我想研究, 但怕你沒有時間.

    回覆刪除
  11. 基於我的Server平台,修改即成!技術不成問題,問題是接合及數據互動性問題,因為這不是普通的Data Mining方法,是Cloud Computing 的應用方法。可以慢談。

    回覆刪除
  12. Server DB can use OracleRAC with load balanced TNS listener, dont waste HW (if license is not a concern)
    Nowadays, x86 Linux server is even more powerful than UNIX, e.g dual Quad-Core w/32GB.

    回覆刪除
  13. 咁叫做3-Tier, 講出黎比人笑喇...

    回覆刪除
  14. 連接二十部Thin Clients根本用唔著超級電腦...
    平平地一部 server 仔就可以吧??
    而且做 Failover Clusters, HW/SW 成本會將容易幾何線上昇..如果認真係咁想做到 99.99 以上
    要有一定經驗嘅人先至識得 balance cost/risk(我不會就是了)
    我唸佢只係想做 primary/slave 有個後備呱?

    回覆刪除