Cơ sở dữ liệu thời gian thực và ứng dụng trong bài toán tính cước và chăm sóc khách hàng
Cơ sở dữ liệu trong bộ nhớ IMDS (In Memory Database System hoặc còn gọi là MMDS - Main Memory Database System) có một vai trò rất quan trọng trong sự phát triển của ngành công nghệ thông tin hiện đại. IMDS xuất hiện trong các hệ thống cung cấp các dịch vụ yêu cầu các đáp ứng thời gian thực như các Tổng đài thế hệ mới, các router hoặc các chương trình phải xử lý số lượng rất lớn các giao dịch trong một giây như các hệ thống xử lý cước nóng, hệ thống chăm sóc khách hàng, hệ thống cung cấp SMS, hệ thống cung cấp các dịch vụ trên Internet. Để nâng cao tính mềm dẻo, độ thông minh và khả năng xử lý dữ liệu nhanh của các sản phẩm phần mềm của mình, nhóm thiết kế phòng Phần mềm Viễn thông thuộc trung tâm Công nghệ Thông tin đã nghiên cứu để ứng dụng công nghệ Cơ sở dữ liệu bộ nhớ vào trong Hệ thống Tính cước và chăm sóc khách hàng đang được nâng cấp
5 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2385 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Cơ sở dữ liệu thời gian thực và ứng dụng trong bài toán tính cước và chăm sóc khách hàng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
C¬ së d÷ liÖu thêi gian thùc vµ øng dông trong
bµi to¸n tÝnh cíc vµ ch¨m sãc kh¸ch hµng
ThS.§Æng Hµ Vinh,KS. NguyÔn §¨ng Quang
Trung t©m C«ng nghÖ Th«ng tin
Tãm t¾t:
C¬ së d÷ liÖu trong bé nhí IMDS (In Memory Database System hoÆc cßn gäi lµ MMDS - Main Memory Database System) cã mét vai trß rÊt quan träng trong sù ph¸t triÓn cña ngµnh c«ng nghÖ th«ng tin hiÖn ®¹i. IMDS xuÊt hiÖn trong c¸c hÖ thèng cung cÊp c¸c dÞch vô yªu cÇu c¸c ®¸p øng thêi gian thùc nh c¸c Tæng ®µi thÕ hÖ míi, c¸c router hoÆc c¸c ch¬ng tr×nh ph¶i xö lý sè lîng rÊt lín c¸c giao dÞch trong mét gi©y nh c¸c hÖ thèng xö lý cíc nãng, hÖ thèng ch¨m sãc kh¸ch hµng, hÖ thèng cung cÊp SMS, hÖ thèng cung cÊp c¸c dÞch vô trªn Internet. §Ó n©ng cao tÝnh mÒm dÎo, ®é th«ng minh vµ kh¶ n¨ng xö lý d÷ liÖu nhanh cña c¸c s¶n phÈm phÇn mÒm cña m×nh, nhãm thiÕt kÕ phßng PhÇn mÒm ViÔn th«ng thuéc trung t©m C«ng nghÖ Th«ng tin ®· nghiªn cøu ®Ó øng dông c«ng nghÖ C¬ së d÷ liÖu bé nhí vµo trong HÖ thèng TÝnh cíc vµ ch¨m sãc kh¸ch hµng ®ang ®îc n©ng cÊp.
1.Yªu cÇu thùc tiÔn
Møc ®é th«ng minh cña c¸c thiÕt bÞ viÔn th«ng ngµy cµng t¨ng ®i ®«i víi nã lµ khèi lîng d÷ liÖu mµ c¸c hÖ thèng phÇn mÒm nhóng ph¶i xö lý ngµy cµng nhiÒu vµ phøc t¹p. C¸c nhµ ph¸t triÓn phÇn mÒm nhóng nhËn thÊy r»ng c¸c tæ chøc d÷ liÖu theo ph¬ng ph¸p tiÕp cËn truyÒn thèng trë nªn ngµy cµng khã kh¨n vµ ch¬ng tr×nh trë nªn khã b¶o dìng vµ n©ng cÊp mçi khi n¶y sinh yªu cÇu míi. C¸c ch¬ng tr×nh cung cÊp c¸c dÞch vô thêi gian thùc hoÆc gÇn thùc trë nªn nÆng nÒ khi sö dông c¸c flat-file hoÆc c¬ së d÷ liÖu truyÒn thèng chËm ch¹p. Cïng víi ®ã, gi¸ RAM ngµy c¶ng gi¶m vµ tèc ®é CPU ngµy cµng nhanh khiÕn cho c¸c nhµ ph¸t triÓn nghÜ tíi lèi tho¸t lµ x©y dùng c¸c C¬ së d÷ liÖu trong bé nhí. IMDS ®· ra ®êi tõ nhu cÇu ®ã. C¸c nhµ ph¸t triÓn phÇn mÒm lóc nµy chØ viÖc chó träng vµo viÖc gi¶i quyÕt bµi to¸n cña m×nh cßn viÖc tæ chøc, lu tr÷ vµ truy suÊt d÷ liÖu trong bé nhí thÕ nµo hoµn toµn do IMDS ®¶m nhiÖm.
ViÖc sö dông IMDS ®Æc biÖt ph¸t huy hiÖu qu¶ trong c¸c hÖ thèng nhóng nh c¸c IP router hiÖn ®¹i, c¸c tæng ®µi thÕ hÖ míi, c¸c phÇn mÒm cÇn yªu cÇu cao vÒ hiÖu xuÊt vµ thêi gian ®¸p øng. C¸c s¶n phÈm cña mét sè h·ng lín ®Òu cã sö dông c¸c IMDS nh Kenan cña CSG, c¸c gi¶i ph¸p cña Amdocs...
2. So s¸nh DBMS vµ IMDS
C¸c DBMS truyÒn thèng lu tr÷ d÷ liÖu trªn ®Üa cøng nªn cã tèc ®é truy xuÊt d÷ liÖu bÞ h¹n chÕ bëi tèc ®é chËm ch¹p cña c¸c linh kiÖn c¬ khÝ t¹o nªn ®Üa cøng. Cßn ®óng nh tªn gäi, IMDS lu tr÷ d÷ liÖu hoµn toµn trªn bé nhí vµ chØ truy xuÊt ®Üa cøng trong trêng hîp cÇn.
Ph¶i ch¨ng IMDS chØ ®¬n gi¶n lµ c¸c DBMS ®îc n¹p hoµn toµn vµo bé nhí? C©u tr¶ lêi lµ kh«ng. IMDS cã nh÷ng kh¸c biÖt c¬ b¶n víi ngêi hä hµng DBMS cña nã. Do kh«ng ph¶i truy xuÊt ®Üa cøng n÷a nªn kh«ng cã phÇn d÷ liÖu nµo bÞ chuyÓn qua l¹i gi÷a ®Üa cøng vµ bé nhí. §iÒu ®ã dÉn tíi gi¶m thiÓu ®îc tiªu tèn xung nhÞp CPU vµ cã ®¸p øng nhanh h¬n tõ hµng chôc ®Õn hµng tr¨m lÇn so víi c¸c DBMS truyÒn thèng. Sau ®©y lµ c¸c kh¸c biÖt c¬ b¶n gi÷a DBMS truyÒn thèng vµ IMDS
2.1.Lu tr÷ t¹m thêi (Caching)
§Ó h¹n chÕ sè lÇn ph¶i truy xuÊt ®Üa cøng, c¸c DBMS truyÒn thèng ®Òu sö dông biÖn ph¸p lu gi÷ phÇn d÷ liÖu ®îc truy xuÊt míi nhÊt trong bé nhí. Caching bao gåm c¶ viÖc ®ång bé d÷ liÖu. ViÖc nµy ®¶m b¶o r»ng phÇn ¶nh cña d÷ liÖu ®îc cache gièng víi phÇn gèc ®îc lu trªn ®Üa cøng cña nã. Ngoµi ra caching gåm c¶ thñ tôc t×m kiÕm d÷ liÖu. NÕu d÷ liÖu mµ øng dông yªu cÇu n»m trong cache th× nã ®îc lÊy ra vµ tr¶ vÒ cho ch¬ng tr×nh, nÕu kh«ng th× d÷ liÖu nµy sÏ ®îc lÊy ra tõ ®Üa cøng vµ thªm vµo cache ®Ó cho nh÷ng lÇn dïng sau.
§èi víi c¸c DBMS, c¸c thñ tôc nµy ®Òu ®îc thùc hiÖn cho dï nã ®îc n¹p vµo bé nhí. Cßn ®èi víi c¸c IMDS, do lo¹i bá ®îc c«ng ®o¹n ra vµo ®Üa nªn caching lµ kh«ng cÇn thiÕt do ®ã gi¶m bít ®îc sù phøc t¹p vµ tiªu tèn tµi nguyªn RAM vµ xung nhÞp CPU
2.2. Data-Transfer Overhead
Chóng ta h·y xem xÐt ®iÒu g× sÏ xÈy ra khi øng dông truy vÊn d÷ liÖu sau ®ã thay ®æi nã vµ ghi l¹i trªn DBMS truyÒn thèng.
H×nh 1: Luång d÷ liÖu lu©n chuyÓn trong mét DBMS truyÒn thèng
Mµu ®á thÓ hiÖn luång d÷ liÖu
MÇu x¸m thÓ hiÖn lu«ng th«ng ®iÖp
øng dông truy vÊn d÷ liÖu tõ CSQL th«ng qua c¸c giao diÖn API cña nã.
CSDL híng dÉn hÖ thèng file lÊy d÷ liÖu tõ thiÕt bÞ lu tr÷.
HÖ thèng file sÏ chuyÓn mét b¶n copy cña d÷ liÖu vµo cache cña nã vµ chuyÓn mét b¶n copy kh¸c tr¶ l¹i cho CSDL.
CSDL gi÷ l¹i mét b¶n copy cho cache cña nã vµ chuyÓn mét b¶n cho øng dông.
øng dông cËp nhËt d÷ liÖu vµ chuyÓn nã trë l¹i cho CSDL th«ng qua c¸c API cña nã
CSDL sao l¹i d÷ liÖu ®· thay ®æi vµo cache.
B¶n sao cña cache cña CSDL cuèi còng còng sÏ ®îc lu vµo hÖ thèng file, t¹i ®ã cache cña hÖ thèng file còng ®îc cËp nhËt.
Cuèi cïng th× d÷ liÖu l¹i ®îc ghi vµo thiÕt bÞ lu tr÷ vËt lý
C¸c bíc nµy lµ tr×nh tù c¬ b¶n kh«ng thÓ bá qua trong bÊt kú mét CSDL truyÒn thèng nµo ngay c¶ khi c«ng viÖc ®îc thùc hiÖn hoµn toµn trong bé nhí. C¸c bíc nµy trong thùc tÕ cßn phøc t¹p h¬n nhiÒu khi tÝnh ®Õn c¸c c«ng ®o¹n Log c¸c thao t¸c vµ mét sè c«ng ®o¹n quan träng kh¸c
Ngîc l¹i, trong c¸c IMDS, viÖc truyÒn d÷ liÖu qua l¹i lµ kh«ng cÇn thiÕt. CSDL cho cho phÐp ngêi dïng truy cËp d÷ liÖu th«ng qua c¸c con trá trùc tiÕp tíi d÷ liÖu. Tuy nhiªn d÷ liÖu vÉn ®îc ®¶m b¶o an toµn do con trá nµy chØ ®îc sö dông th«ng qua c¸c API cña IMDS. Lo¹i bá ®îc viÖc ph¶i chuyÒn d÷ liÖu qua l¹i nhiÒu lÇn lµm t¨ng tèc ®é truy xuÊt d÷ liÖu. Gi¶m ®îc sè lîng b¶n sao cña d÷ liÖu dÉn ®Õn gi¶m tµi nguyªn chiÕm dông bëi CSDL. Sù ®¬n gi¶n trong ho¹t ®éng khiÕn cho thiÕt kÕ ®¬n gi¶n lµm t¨ng ®é tin cËt cña hÖ thèng
2.3. Xö lý giao dÞch
Trong c¸c trêng hîp cã sù cè nghiªm träng nh lµ mÊt ®iÖn, CSDL dùa trªn ®Üa cøng sÏ ®îc kh«i phôc b»ng c¸ch commit nh÷ng giao dÞch ®· ®îc hoµn tÊt vµ håi phôc l¹i d÷ liÖu liªn quan ®Õn nh÷ng giao dÞch cha hoµn tÊt tõ log file khi hÖ thèng khëi ®éng l¹i. C¸c CSDL truyÒn thèng xö lý c¸c giao dÞch dùa trªn c¸c log file.
IMDS còng cup cÊp c¸c tÝnh n¨ng ®¶m b¶o tÝnh toµn vÑn cña c¸c giao dÞch. §Ó lµm ®iÒu nµy, c¸c IMDS lu l¹i c¸c b¶n sao cña c¸c ®èi tîng ®îc cËp nhËt hay bÞ xãa vµ mét danh s¸ch c¸c d÷ liÖu ®îc chÌn vµo CSDL trong suèt qu¸ tr×nh giao dÞch diÔn ra. Khi øng dông commit giao dÞch, phÇn bé nhí cña c¸c b¶n sao cña c¸c d÷ liÖu ®îc bá ®i vµ c¸c d÷ liÖu ®îc chÌn vµo ®îc chuyÓn tíi vïng nhí chøa d÷ liÖu chÝnh cña CSDL, thao t¸c nµy ®îc thùc hiÖn rÊt nhanh vµ hiÖu qu¶. NÕu øng dông hñy giao dÞch th× c¸c b¶n sao d÷ liÖu ®îc chuyÓn thµnh b¶n chÝnh vµ c¸c d÷ liÖu ®îc chÌn vµo trong qu¸ tr×nh giao dÞch bÞ huû bá.
NÕu c¸c sù cè nghiªm träng xÈy ra th× d÷ liÖu trong IMDS sÏ bÞ mÊt. §ã lµ ®iÒu kh¸c biÖt lín gi÷a c¸c DBMS truyÒn thèng vµ c¸c IMDS. Khi hÖ thèng ®îc khëi ®éng l¹i, ®Ó cã thÓ tiÕp tôc sö dông ®îc th× d÷ liÖu ph¶i ®îc n¹p l¹i b»ng c¸ch nµy hay c¸ch kh¸c. Nguyªn nh©n cña sù kh¸c biÖt nµy lµ IMDS ®îc t¹o ra ®Ó t¨ng tèi ®a tèc ®é truy xuÊt d÷ liÖu cã thÓ nªn mét sè tÝnh n¨ng nh ghi log file vµ c¸c tÝnh n¨ng lµm ¶nh hëng ®Õn hiÖu xuÊt kh¸c ®Òu bÞ lo¹i bá.
§Æc tÝnh nµy cña IMDS râ rµng lµ kh«ng phï hîp víi mäi lo¹i øng dông. Tuy nhiªn l¹i rÊt thÝch hîp trong lÜnh vùc phÇn mÒm nhóng hoÆc nh÷ng øng dông ®ßi hái truy xuÊt d÷ liÖu víi tèc ®é thêi gian thùc.
Tuy nhiªn mét phÇn lín c¸c IMDS hiÖn nay ®Òu cung cÊp tÝnh n¨ng Sao lu vµ Håi phôc d÷ liÖu. Cã thÓ kÓ ®Õn c¸c IMDS phæ biÕn lµ: FastDB, GigaBase, Goods
3. C¸c m« h×nh IMDS
HiÖn t¹i, c¸c IMDS cha hÒ cã chuÈn. C¸c h·ng ph¸t triÓn hoÆc lµ ¸p dông c¸c chuÈn cña DBMS hoÆc tù ®Þnh nghÜa riªng cho m×nh. C¸c c¸ch tiÕp cËn vµ triÓn khai, c¸c kh¸i niÖm cña chóng còng kh¸c nhau. Trªn thÕ giíi c¸c IMDS tån t¹i díi 2 m« h×nh chÝnh lµ m« h×nh híng øng dông (Application Oriented - AO) vµ m« h×nh Client/Server. PhÇn lín c¸c IMDS hiÖn nay ®Òu lµ c¸c CSDL híng ®èi tîng hoÆc CSDL Híng ®èi tîng - Quan hÖ.
3.1. M« h×nh client/server
§©y lµ m« h×nh gÇn víi c¸c DBMS truyÒn thèng nhÊt vµ næi bËt trong sè nµy lµ GOODS (Generic Object Oriented Database System). Chóng hç trî m«i trêng ph©n t¸n vµ cã rÊt nhiÒu tÝnh n¨ng cña mét DBMS nhng cã lîi ®iÓm lµ truy xuÊt d÷ liÖu rÊt nhanh so víi c¸c s¶n phÈm truyÒn thèng. Client vµ Server cã thÓ n»m trªn c¸c node kh¸c nhau.
M« h×nh nµy thêng ®îc sö dông trong c¸c øng dông lín víi nh÷ng ®ßi hái kh¾t khe vÒ thêi gian ®¸p øng.
GOODS lµ mét IMDS m· nguån më kh¸ m¹nh víi rÊt nhiÒu tÝnh n¨ng cña mét DBMS nh Replication, qu¶n lý c¸c giao dÞch chÆt chÏ nhê c¸c REDO log vµ Global History Log. GOODS lµ mét CSDL ph©n t¸n, d÷ liÖu cã thÓ ®Æt trªn nhiÒu node trong m¹ng.
3.2.M« h×nh AO
§©y lµ mét m« h×nh kh¸ phæ biÕn cña IMDS. Chóng ®îc cung cÊp díi d¹ng c¸c th viÖn nhóng vµo trong ch¬ng tr×nh phÇn mÒm. Thùc chÊt chóng cung cÊp c¸c dÞch vô lu tr÷, truy vÊn vµ cËp nhËt d÷ liÖu cho c¸c øng dông. Thêng th× c¸c IMDS kh«ng thÓ söa ®æi cÊu tróc khi ch¹y ch¬ng tr×nh mµ ®iÒu nµy ®îc thùc hiÖn khi viÕt ch¬ng tr×nh vÝ dô cña lo¹i nµy lµ FastDB, GigaBase, Berkeley DB.
§a phÇn IMDS còng cung cÊp kh¶ n¨ng Sao lu vµ håi phôc d÷ liÖu. Khi øng dông gÆp sù cè th× d÷ liÖu vÉn cã thÓ kh«i phôc l¹i ®îc nh tríc ®ã nhê c¸c file d÷ liÖu ®îc lu trªn æ cøng. C¸c IMDS lo¹i nµy mang l¹i cho øng dông kh¶ n¨ng truy cËp d÷ liÖu rÊt nhanh.
C¸c DBMS lo¹i nµy thêng chØ hç trî viÖc truy cËp d÷ liÖu tõ mét hay nhiÒu tiÕn tr×nh trong cïng mét øng dông chø kh«ng cho phÐp nhiÒu øng dông cïng truy cËp.
CSDL lo¹i nµy ®îc dïng nhiÒu trong c¸c øng dông ®ßi hái tèc ®é xö lý cao vµ ph¶i qu¶n lý rÊt nhiÒu tham sè nh hÖ thèng tÝnh cíc cña chóng tèi lµ mét vÝ dô.
3.3. ¸p dông vµo HÖ thèng TÝnh cíc vµ ch¨m sãc kh¸ch hµng
Sau khi thiÕt kÕ hÖ thèng TÝnh cíc vµ Ch¨m sãc kh¸ch hµng, hÖ thèng ®· phøc t¹p lªn rÊt nhiÒu, c¸c b¶ng tham sè ®· lªn tíi h¬n 70 vµ cÊu tróc tham sè v« cïng phøc t¹p. ViÖc qu¶n lý c¸c th«ng sè nµy trë nªn khã kh¨n vµ dÔ g©y lçi. Chóng t«i ®· nghÜ ngay ®Õn viÖc øng dông IMDS vµo ch¬ng tr×nh ®Ó gi¶m bít c«ng søc trong viÖc qu¶n lý c¸c tham sè.
Sau mét sè thêi gian nghiªn cøu vµ t×m kiÕm th«ng tin trªn m¹ng, chóng t«i ®· t×m ®îc mét sè IMDS phï hîp víi nhu cÇu vµ ®iÒu kiÖn cña m×nh. Sau ®©y chóng t«i xin giíi thiÖu 2 IMDS næi bËt lµ FastDB vµ GigaDB.
§©y ®Òu lµ 2 IMDS m· nguån më vµ ®· ®îc sö dông kh¸ phæ biÕn. C¶ hai cïng cung cÊp tÝnh n¨ng sao lu vµ phôc håi d÷ liÖu rÊt tèt. Chóng lµ c¸c AO viÕt b»ng ng«n ng÷ C++ nªn viÖc giao tiÕp còng rÊt thuËn lîi. Vµ mét ®iÒu ®Æc biÖt quan träng, chóng ®Òu lµ c¸c CSDL híng ®èi tîng nªn rÊt thuËn tiÖn trong viÖc tÝch hîp vµo c¸c ch¬ng tr×nh hiÖn t¹i cña phßng ®ang ph¸t triÓn b»ng c«ng nghÖ híng ®èi tîng.
GigaBase sö dông kü thuËt page-pool ®Ó truy cËp d÷ liÖu nªn sÏ lu tr÷ ®îc nhiÒu d÷ liÖu h¬n nhng chËm h¬n so víi FastDB sö dông kü thuËt virtual-memory. Qua c©n nh¾c, chóng t«i lùa chän FastDB do ch¬ng tr×nh TÝnh cíc cña chóng t«i ®ßi hái thêi gian ®¸p øng ng¾n vµ ph¶i xö lý rÊt nhiÒu d÷ liÖu cuéc gäi.
Sau ®©y chóng t«i xin giíi thiÖu vÒ FastDB:
FastDB lµ mét IMDS híng øng dông vµ híng ®èi tîng, m· nguån më. Nã cã mét sè tÝnh n¨ng m¹nh nh qu¶n lý giao dÞch, tù ®éng sao lu vµ håi phôc khi cã sù cè. Thñ tôc ‘commit’ ho¹t ®éng rÊt hiÖu qu¶ dùa trªn thuËt to¸n “shadow root pages”. Vµ mét tÝnh n¨ng rÊt hay n÷a cña FastDB lµ nã hç trî truy vÊn d÷ liÖu th«ng qua mét ng«n ng÷ gÇn gièn SQL (SQL liked language). C©u lÖnh truy vÊn bao gåm: ®iÒu kiÖn läc d÷ liÖu, s¾p xÕp d÷ liÖu.
Mét b¶n ghi trong FastDB chÝnh lµ mét ®èi tîng cña ch¬ng tr×nh. C¸c thñ tôc trong ®èi tîng ®ã cã thÓ dïng nh nh÷ng tõ khãa trong c©u lÖnh truy vÊn d÷ liÖu.
C«ng nghÖ s¾p xÕp vµ t×m kiÕm d÷ liÖu ë ®©y lµ T-tree, extensible hash table, GiST khiÕn cho ch¬ng tr×nh cã thÓ truy vÊn d÷ liÖu rÊt hiÖu qu¶.
Víi nh÷ng tÝnh n¨ng u viÖt cña m×nh, FastDB sÏ ®ãng mét vai trß quan träng trong hÖ thèng TÝnh cíc vµ Ch¨m sãc kh¸ch hµng cña chóng t«i trong thêi gian tíi.
Mong r»ng bµi tham luËn cña chóng t«i sÏ gióp Ých ®îc nhiÒu cho quÝ ®éc gi¶.
Các file đính kèm theo tài liệu này:
- CSDL thời gian thực và ứng dụng trong bài toán tính cước và chăm sóc khách hàng.doc