如果是新客,這樣的大工程和計劃書我們是不會做,因為接到的機會很微,但既然是舊客戶,也使用了MemDB連鎖零售系統,所以這是一個很難得的機會,我們要好好去做,而且必定要成功.因為如果這工程成功了,對MemDB未來發展有極大幫助.
我非常重視這個工程,所以假期開始了研究各種可行的方案,和跟幾個合作過的伙伴討論.這類的大工程,必須要組織一大團隊才能成事.
MemDB的優勢是已開發了軟件,而且客戶已在使用中.faiwong七間連鎖店用了四年,都未曾出現過軟件問題,所以這點我不太憺心.反而現在要考慮的是硬件和穩定性.
考慮了幾個方案,以下方案是最可行:
客戶要求二十部客戶端,能連接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,或有更好的解決方案 ,歡迎聯絡我們詳談.
BDE? 太舊了吧, dbExpress 或 ADO 比較好, 如果是 MSSQL, 還是 ADO 比較好. Cluster? MemDB 是 cluster aware? Windodws Cluster 或 Hyper-V cluster? BCB... 2010 or? Turbo Explorer 不能下載.
回覆刪除william :
回覆刪除BDE? 太舊了吧, dbExpress 或 ADO 比較好, 如果是 MSSQL, 還是 ADO 比較好. Cluster? MemDB 是 cluster aware? Windodws Cluster 或 Hyper-V cluster? BCB... 2010 or? Turbo Explorer 不能下載.
可用ADO.
正在研究使用那個方案, 不過如果要做Cluster, 價錢都會很高, 要比較一下.
咦,決定咗用FastReport,唔用Crystal Reports喇。
回覆刪除你會不會把 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 有咩分別??
memdb有很多此類系統和客戶, 台灣伙伴已使用流水碼連鎖零售系統24 clients, 在不同地區, 運作正常. 這不是只是想, 已實踐了, 所以我很有信心可以完成.
回覆刪除相比之下, 前者好像好些.
回覆刪除我亦認同,Thin Client 下 32MB RAM已是可行吧!
回覆刪除但Server方面,不須要太擔心,它只是作Listener的工作,若真的如你所寫的是不用SQL,真的不需要太擔心!不過要小心處理Load Balancing的問題,最最重要是你要選的Database Server,不過你係用MemDB就要你自己去寫code了。
你諗住點駁個兩部Server呢?Switching係MemDB入面做?
回覆刪除只要寫個中介Server就能連接多部伺服器!但要連接數據庫亦可!應該要開始發展中介server去處理擴充與兼容問題吧!要做的話,可找我談談吧!
回覆刪除我想研究, 但怕你沒有時間.
回覆刪除基於我的Server平台,修改即成!技術不成問題,問題是接合及數據互動性問題,因為這不是普通的Data Mining方法,是Cloud Computing 的應用方法。可以慢談。
回覆刪除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.
咁叫做3-Tier, 講出黎比人笑喇...
回覆刪除連接二十部Thin Clients根本用唔著超級電腦...
回覆刪除平平地一部 server 仔就可以吧??
而且做 Failover Clusters, HW/SW 成本會將容易幾何線上昇..如果認真係咁想做到 99.99 以上
要有一定經驗嘅人先至識得 balance cost/risk(我不會就是了)
我唸佢只係想做 primary/slave 有個後備呱?