Các giải thuật tìm kiếm và lừa chọn thành phần COTS tối ưu theo các tiêu trí giá thành và dư thừa dữ liệu
Tóm tắt Các giải thuật tìm kiếm và lừa chọn thành phần COTS tối ưu theo các tiêu trí giá thành và dư thừa dữ liệu: ...} 10 if A.R ⊆ Sol.R then // Kieˆ’m tra xem Sol co´ la` moˆ.t caˆ´u h`ınh khoˆng? 156 HUY`NH QUYE´ˆT THA´˘NG, PHA. M THI. QUY`NH 11 S := S ∪ {Sol} // Neˆ´u Sol la` moˆ.t caˆ´u h`ınh, no´ se˜ du .o.. c gom nho´m va`o trong S 12 else // nhu.ng neˆ´u vaˆ˜n co`n ca´c di.ch goˆ´i nhau va` di.ch vu. ... −m tha`nh pha`ˆn kha´c nhau. Nhu . vaˆ.y, die`ˆu kieˆ.n deˆ’ tieˆ´p tu. c t`ım kieˆ´m la` toˆ’ng: (soˆ´ di.ch vu. hieˆ.n co´ cu’a Sol coˆ.ng vo´ .i (n−m) tha`nh pha`ˆn nhaˆn vo´.i soˆ´ di.ch vu. nho’ nhaˆ´t co´ theˆ’ cu’a moˆ. t tha`nh pha`ˆn) pha’ i nho’ ho .n ngu.˜o.ng toˆ’ng soˆ´ di.ch vu. ... cu’a maˆ˜u XML, hoa˘.c du .o.. c lu .u o.’ ngoa`i va` su.’ du. ng tham chieˆ´u href deˆ´n no´. De`ˆ xuaˆ´t tha`nh pha`ˆn boˆ’ sung trong COTS DOCUMENT Ca´c thoˆng tin ve`ˆ marketing: Ca´c loa. i thoˆng tin dieˆ’n h`ınh o .’ daˆy ca`ˆn moˆ ta’ bao goˆ`m: ba’n quye`ˆn, chu´.ng nhaˆ.n, thoˆng t...
na`y se˜ la`m ta˘ng doˆ. phu´ .c ta.p daˆ˜n to´ .i du. thu`.a du˜. lieˆ.u va` tha`nh pha`ˆn cu’a heˆ. thoˆ´ng pha`ˆn me`ˆm du .o.. c xaˆy du . . ng. Daˆy la` nhu˜ .ng caˆ´u CA´C GIA’ I THUAˆ. T TI`M KIE´ˆM VA` LU. . A CHO. N THA`NH PHA`ˆN COTS TO´ˆI U . U 157 h`ınh khoˆng du.o.. c lu . . a cho.n. Vı` vaˆ.y chu´ng ta ca`ˆn pha’ i xaˆy du . . ng gia’ i thuaˆ.t t`ım kieˆ´m, lu . . a cho.n COTSConfigs sao cho loa. i bo’ nhu˜ .ng caˆ´u h`ınh khoˆng ca`ˆn thieˆ´t na`y. Gia’ i thuaˆ.t nha´nh caˆ.n t`ım kieˆ´m lu . . a cho.n ca´c tha`nh pha`ˆn vo´ .i du. thu`.a du˜. lieˆ.u la` toˆ´i thieˆ’u du.o.. c de`ˆ xuaˆ´t nhu . sau. Gia’i thuaˆ.t COTSConfigs ca’i tieˆ´n vo´ .i du. thu`.a du˜. lieˆ.u toˆ´i thieˆ’u 1 total = numOfInterfaces(CB(A)) //toˆ’ng soˆ´ di.ch vu. cu’a moˆ. t caˆ´u h`ınh 2 function brandAndBound(i, Sol, S) //gia’ i thuaˆ.t nha´nh caˆ.n 3 if i 6 size(CB(A)) then 4 for j := 1 to size(Ci.R) do //thu.. c hieˆ.n vo´ .i taˆ´t ca’ ca´c di.ch vu. trong C1 // thu.’ gom di.ch vu. Ci.Ri va`o Sol 5 if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri 6∈ Sol : R? 6 Sol := Sol ∪ {Ci.Ri} 7 if A.R ⊆ Sol.R then // 8 if numOfInterface(S) < total then //soˆ´ di.ch vu. cu’a caˆ´u h`ınh na`y co`n ı´t ho .n ca’ ngu.˜o.ng(mu. c tieˆu) neˆn //daˆy la` moˆ. t gia´ tri. cu’a ngu .˜o.ng ve`ˆ soˆ´ di.ch vu. cu’a moˆ. t caˆ´u h`ınh mo´.i 9 total := numberOfInterface(S) // caˆ.p nhaˆ.t ngu .˜o.ng mo´.i 10 S := // xo´a ca´c keˆ´t qua’ cu˜ 11 S := S ∪ {Sol} // du.a Sol va`o taˆ.p keˆ´t qua’ S 12 else if numberOfInterface(S) = total then //tho’a ma˜n ngu.˜o.ng ve`ˆ soˆ´ di.ch vu. 13 S := S ∪ {Sol} // du.a Sol va`o taˆ.p keˆ´t qua’ S 14 endif 15 else // nhu.ng neˆ´u vaˆ˜n co`n ca´c di.ch vu. goˆ´i nhau hoa˘. c di.ch vu. tru`ng nhau 16 configs(i, Sol, S) // t`ım trong Ci... 17 endif 18 Sol := Sol− {Ci.Ri} 19 endif 20 endfor 21 if (numberOfInterface(S) + (n−m)× minOfInterface(CB(A)) ⇐ total then 22 brandAndBound(i+ 1, Sol, S) 23 endif 24 endif 25 endfunction Ta co´, moˆ. t caˆ´u h`ınh toˆ´i da se˜ la` taˆ.p ho . . p cu’a toa`n boˆ. ca´c ca´c tha`nh pha`ˆn u´ .ng vieˆn. Nhu. vaˆ.y, tu´ .c la` soˆ´ ca´c di.ch vu. toˆ´i da cu’a moˆ.t caˆ´u h`ınh se˜ la` toˆ’ng cu’a ca´c di.ch vu. du .o.. c cung caˆ´p bo.’ i ca´c tha`nh pha`ˆn u´.ng vieˆn. Vaˆ.y, tru .´o.c tieˆn, ta go. i bieˆ´n total la` bieˆ´n lu .u toˆ’ng soˆ´ di.ch vu. cu’a moˆ. t caˆ´u h`ınh (do`ng 1). Kho .’ i ta.o bieˆ´n na`y ba`˘ng toˆ’ng soˆ´ di.ch vu. cu’a toa`n boˆ. ca´c tha`nh pha`ˆn u´.ng vieˆn. Daˆy ch´ınh la` ngu.˜o.ng ve`ˆ toˆ’ng soˆ´ du˜. lieˆ.u cu’a moˆ. t caˆ´u h`ınh. 158 HUY`NH QUYE´ˆT THA´˘NG, PHA. M THI. QUY`NH Tu.o.ng tu.. nhu . gia’ i thuaˆ.t chuaˆ’n COTSConfigs chu´ng ta cu˜ng la`ˆn lu .o.. t thu .’ ca´c caˆ´u h`ınh (do`ng 5 va` 6). Chu´ng ta theˆm va`o kieˆ’m tra xem Sol co´ la` moˆ. t caˆ´u h`ınh khoˆng va` neˆ´u du´ng, kieˆ’m tra caˆ´u h`ınh na`y co´ toˆ´i thieˆ’u ve`ˆ du˜. lieˆ.u khoˆng (do`ng 9). Gia’ su .’ ta. i moˆ. t tho` .i dieˆ’m trong qua´ tr`ınh t`ım kieˆ´m ta co´, kieˆ´n tru´c A ca`ˆn n di.ch vu. , ma` lu´c na`y Sol da˜ tho’a ma˜n du .o.. c m di.ch vu. cu’a A. Nhu . vaˆ.y, co`n ca`ˆn n−m di.ch vu. cu’a A nu˜ .a th`ı Sol tho’a ma˜n la` moˆ.t caˆ´u h`ınh. Toˆ`i nhaˆ´t, la` m− n di.ch vu. na`y na`˘m treˆn n −m tha`nh pha`ˆn kha´c nhau. Nhu . vaˆ.y, die`ˆu kieˆ.n deˆ’ tieˆ´p tu. c t`ım kieˆ´m la` toˆ’ng: (soˆ´ di.ch vu. hieˆ.n co´ cu’a Sol coˆ.ng vo´ .i (n−m) tha`nh pha`ˆn nhaˆn vo´.i soˆ´ di.ch vu. nho’ nhaˆ´t co´ theˆ’ cu’a moˆ. t tha`nh pha`ˆn) pha’ i nho’ ho .n ngu.˜o.ng toˆ’ng soˆ´ di.ch vu. . Neˆ´u tho’a ma˜n th`ı tieˆ´p tu. c t`ım kieˆ´m, co`n khoˆng th`ı du` .ng qua´ tr`ınh t`ım kieˆ´m. 4.2. Ca’i tieˆ´n gia’i thuaˆ.t lu . . a cho.n tha`nh pha`ˆn vo´ .i toˆ’ng gia´ tha`nh toˆ´i thieˆ’u Nhu. ta da˜ bieˆ´t, ca´c tha`nh pha`ˆn COTS la` ca´c tha`nh pha`ˆn du.o.. c dem ra thu .o.ng ma.i. Vı` vaˆ.y, khi xaˆy du . . ng heˆ. thoˆ´ng pha`ˆn me`ˆm su .’ du.ng ca´c tha`nh pha`ˆn COTS, ngoa`i yeˆ´u toˆ´ k˜ı thuaˆ.t la` pha’ i da´p u´.ng du.o.. c kieˆ´n tru´c pha`ˆn me`ˆm, th`ı yeˆ´u toˆ´ ve`ˆ ma˘. t gia´ tha`nh cu’a COTS cu˜ng la` moˆ. t yeˆ´u toˆ´ raˆ´t quan tro.ng. Thoˆng tin ve`ˆ gia´ tha`nh cu’a tha`nh pha`ˆn COTS du .o.. c di ke`m trong ta`i lieˆ.u da˘.c ta’ ve`ˆ tha`nh pha`ˆn, COTS Document. Vı` vaˆ.y, thuaˆ. t toa´n sau daˆy du .o.. c de`ˆ xuaˆ´t deˆ’ ca’ i tieˆ´n thuaˆ.t toa´n t`ım kieˆ´m deˆ’ du .a ra nhu˜.ng caˆ´u h`ınh phu` ho.. p doˆ`ng tho` .i pha’ i tho’a ma˜n moˆ. t gia´ tha`nh cho tru .´o.c. Gia’i thuaˆ.t COTSConfigs ca’i tieˆ´n vo´ .i gia´ tha`nh toˆ´i thieˆ’u 1 total = numOfInterfaces(CB(A)) 2 function brandAndBound(i, Sol, S) // gia’ i thuaˆ.t nha´nh caˆ.n 3 if i 6 size(CB(A)) then 4 for j := 1 to size(Ci.R) do // thu.. c hieˆ.n vo´ .i taˆ´t ca’ ca´c di.ch vu. // thu.’ gom di.ch vu. Ci.Ri va`o Sol 5 if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri 6∈ Sol : R? 6 Sol := Sol ∪ {Ci.Ri} 7 if A.R ⊆ Sol.R then 8 if totalCost(S) 6 maxCost then 9 S := S ∪ {Sol} // du.a Sol va`o taˆ.p keˆ´t qua’ S 10 endif 11 else // nhu.ng neˆ´u vaˆ˜n co`n ca´c di.ch goˆ´i va` di.ch vu. tr u`ng 12 configs(i, Sol, S) // t`ım trong Ci... 13 endif 14 Sol := Sol− {Ci.Ri} 15 endif 16 endfor 17 if (totalCost(S) + (n−m)× minOfCost(CB(A)) 6 maxCost then // neˆ´u tho’a ma˜n th`ı tieˆ´p tu. c t`ım kieˆ´m, co`n khoˆng th`ı thoˆi 18 brandAndBound(i+ 1, Sol, S) 19 endif 20 endif 21 endfunction CA´C GIA’ I THUAˆ. T TI`M KIE´ˆM VA` LU. . A CHO. N THA`NH PHA`ˆN COTS TO´ˆI U . U 159 Tru.´o.c tieˆn, thuaˆ.t toa´n yeˆu ca`ˆu nhaˆ.p va`o ngu .˜o.ng gia´ cu’a moˆ. t caˆ´u h`ınh. Thuaˆ.t toa´n se˜ thu.. c hieˆ.n t`ım kieˆ´m taˆ´t ca’ ca´c caˆ´u h`ınh tho’a ma˜n ma` toˆ’ng gia´ tha`nh cu’a ca´c tha`nh pha`ˆn se˜ nho’ ho.n ngu.˜o.ng gia´ cho tru.´o.c maxCost := 〈kho.’ i ta.o moˆ.t gia´ tri. ngu .˜o.ng gia´〉. Tu.o.ng tu.. nhu . gia’ i thuaˆ.t chuaˆ’n COTSConfigs chu´ng ta cu˜ng la`ˆn lu .o.. t thu .’ ca´c caˆ´u h`ınh (do`ng 5 va` 6). Chu´ng ta theˆm va`o kieˆ’m tra xem Sol co´ la` moˆ.t caˆ´u h`ınh khoˆng va` neˆ´u Sol da˜ la` moˆ. t caˆ´u h`ınh kieˆ’m tra caˆ´u h`ınh na`y co´ tho’a ma˜n ve`ˆ gia´ hay khoˆng. Gia’ su.’ ta. i moˆ. t tho` .i dieˆ’m trong qua´ tr`ınh t`ım kieˆ´m ta co´, kieˆ´n tru´c A ca`ˆn n di.ch vu. , ma` lu´c na`y Sol da˜ tho’a ma˜n du.o.. c m di.ch vu. cu’a A. Nhu . vaˆ.y, co`n ca`ˆn n−m di.ch vu. cu’a A nu˜ .a th`ı Sol tho’a ma˜n la` moˆ.t caˆ´u h`ınh. Toˆ`i nhaˆ´t, la` n −m di.ch vu. na`y na`˘m treˆn m − n tha`nh pha`ˆn kha´c nhau. Nhu. vaˆ.y, die`ˆu kieˆ.n deˆ’ tieˆ´p tu. c t`ım kieˆ´m la` toˆ’ng: (gia´ tha`nh hieˆ.n ta. i cu’a Sol coˆ.ng vo´ .i (m − n) tha`nh pha`ˆn nhaˆn vo´.i gia´ nho’ nhaˆ´t co´ theˆ’ cu’a moˆ. t tha`nh pha`ˆn) pha’ i nho’ ho.n ngu.˜o.ng gia´ cho tru.´o.c o.’ treˆn. 4.3. Nhaˆ.n xe´t ve`ˆ hai gia’i thuaˆ.t ca’i tieˆ´n Thuaˆ.t toa´n a´p du. ng tu . tu.o.’ ng gia’ i thuaˆ.t nha´nh caˆ.n deˆ’ thu . . c hieˆ.n qua´ tr`ınh t`ım kieˆ´m lu . . a cho.n caˆ´u h`ınh ho . . p leˆ. va` tho’a ma˜n tieˆu ch´ı du . thu`.a du˜. lieˆ.u toˆ´i thieˆ’u va` toˆ’ng gia´ tha`nh toˆ´i thieˆ’u. Do do´, khi so sa´nh vo´.i gia’ i thuaˆ.t COSTConfigs coˆ’ dieˆ’n, soˆ´ lu .o.. ng nu´t ca`ˆn duyeˆ.t trong hai gia’ i thuaˆ.t se˜ gia’m di raˆ´t nhie`ˆu. Vı` khi chu´ng ta kieˆ’m tra ngu .˜o.ng ma` thaˆ´y khoˆng tho’a ma˜n th`ı thuaˆ. t toa´n se˜ khoˆng tieˆ´p tu. c di theo nha´nh do´ nu˜ .a. Tuy nhieˆn, trong tru.`o.ng ho.. p toˆ`i nhaˆ´t th`ı doˆ. phu´ .c ta.p t´ınh toa´n cu’a hai gia’ i thuaˆ.t da˜ ca’ i tieˆ´n na`y vaˆ˜n la` O(2 n). Ngoa`i hai thuaˆ.t toa´n da˜ ca’ i tieˆ´n, ta´c gia’ co`n boˆ’ sung theˆm ca´c tieˆu ch´ı ve`ˆ toˆ´i thieˆ’u ho´a du . thu`.a du˜. lieˆ.u va` toˆ’ng gia´ tha`nh. Vı` vaˆ.y, caˆ´u h`ınh t`ım du .o.. c sau khi thu . . c hieˆ.n hai gia’ i thuaˆ.t na`y la` duy nhaˆ´t va` toˆ´i u.u nhaˆ´t theo tieˆu ch´ı cho tru.´o.c. Daˆy la` moˆ.t keˆ´t qua’ kha´ quan tro.ng khi keˆ´t qua’ cu’a gia’ i thuaˆ. t COSTConfigs coˆ’ dieˆ’n cho bieˆ´t taˆ´t ca’ ca´c caˆ´u h`ınh ho . . p leˆ. . 5. CA’ I TIEˆ´N MA˜ˆU TA`I LIEˆ. U COTSDocument, DA˘. C TA ’ THA`NH PHA`ˆN COTS Deˆ’ phu.c vu. cho mu. c d´ıch t`ım kieˆ´m va` lu . . a cho.n tha`nh pha`ˆn COTS th`ı vieˆ.c da`ˆu tieˆn la` pha’ i di.nh ngh˜ıa moˆ.t maˆ˜u XML da˘.c ta’ COTSDocument chuaˆ’n cho kho du˜ . lieˆ.u COTS XML. Deˆ’ thu.. c hieˆ.n da˘ng ky´ ca´c di.ch vu. va`o kho du˜ . lieˆ.u COTS XML, ca´c nha` cung caˆ´p (Exporter) ca`ˆn moˆ ta’ thoˆng tin ve`ˆ ca´c di.ch vu. cu’a mı`nh theo maˆ˜u da˘. c ta’ na`y. Ca´c thoˆng tin ch´ınh trong moˆ. t maˆ˜u da˘.c ta’ goˆ`m co´ ([1]): // Di.nh ngh˜ıa IDL cu’a giao dieˆ.n tha`nh pha`ˆn theBuffer module theBuffer { // giao dieˆ.n cung caˆ´p interface Buffer { void write(in long x) long read() } } // giao dieˆ.n yeˆu ca`ˆu interface out { 160 HUY`NH QUYE´ˆT THA´˘NG, PHA. M THI. QUY`NH oneway void print(in long x) } } 〈?xml-stylesheet type=“text/xsl” href=“ COTS-XMLStyle.xsl”?〉 〈COTScomponent name=“theBuffer” xmlns=“” xmlns:types=“”〉 〈functional〉 ... 〈/functional〉 〈properties〉 ... 〈/properties〉 〈packaging〉 ... 〈/packaging〉 〈marketing〉 ... 〈/marketing〉 〈/COTScomponent〉 • Ca´c moˆ ta’ mang t´ınh chu´.c na˘ng (Functional description) ([1]): Pha`ˆn da`ˆu tieˆn moˆ ta’ taˆ´t ca’ ca´c kh´ıa ca.nh mang t´ınh chaˆ´t t´ınh toa´n cu’a tha`nh pha`ˆn, bao goˆ`m taˆ.p ca´c giao dieˆ.n cung caˆ´p va` yeˆu ca`ˆu. Pha`ˆn na`y co´ 3 pha`ˆn ch´ınh du.o.. c go. i la` providedInterfaces, requiredInterfaces, va` serviceAccessProtocols. ([1, 5, 6]). • Ca´c moˆ ta’ khoˆng mang t´ınh chu´.c na˘ng (Non-functional description): su.’ du. ng ca´c kieˆ’u W3C cho moˆ ta’ ca´c loa. i thoˆng tin na`y. • Ca´c ra`ng buoˆ.c ve`ˆ do´ng go´i/kieˆ´n tru´c: Chu´ y´ ra`˘ng, cu˜ng gioˆ´ng nhu . pha`ˆn treˆn, ca´c thoˆng tin ve`ˆ go´i va` pha´t trieˆ’n ca´c tha`nh pha`ˆn co´ theˆ’ du.o.. c moˆ ta’ tru . . c tieˆ´p theo moˆ.t ky´ pha´p da˘. c bieˆ.t va` mieˆu ta’ trong the’ 〈description〉 cu’a maˆ˜u XML, hoa˘.c du .o.. c lu .u o.’ ngoa`i va` su.’ du. ng tham chieˆ´u href deˆ´n no´. De`ˆ xuaˆ´t tha`nh pha`ˆn boˆ’ sung trong COTS DOCUMENT Ca´c thoˆng tin ve`ˆ marketing: Ca´c loa. i thoˆng tin dieˆ’n h`ınh o .’ daˆy ca`ˆn moˆ ta’ bao goˆ`m: ba’n quye`ˆn, chu´.ng nhaˆ.n, thoˆng tin nha` cung caˆ´p... Chu´ y´ thoˆng tin trong the’ 〈expirydate〉 va` the’ 〈cost〉 la` raˆ´t quan tro.ng, thu´c daˆ’y ca´c di.ch vu. da˜ cu˜ du .o.. c naˆng caˆ´p nhanh ho .n va` ta˘ng t´ınh ca.nh tranh trong moˆi tru .`o.ng mo.’ . Thoˆng tin lu.u trong hai the’ na`y du.o.. c ca´c trader t`ım kieˆ´m va` lu.. a cho.n tha`nh pha`ˆn toˆ´i u .u theo gia´ tha`nh. 〈marketing〉 〈license href=“ /license.html”/〉 〈certificate href=“ /lcard.pgp”/〉 〈vendor〉 〈companyname〉Vendor 3 Corp.〈/companyname〉 〈webpage〉〈/webpage〉 〈mailto〉sales@cotstrader.vendor3.com〈/mailto〉 〈address〉 〈zip〉04120〈/zip〉 〈street〉Ctra Sacramento s/n〈/street〉 〈city〉Almeria〈/city〉 〈country〉Spain〈/country〉 CA´C GIA’ I THUAˆ. T TI`M KIE´ˆM VA` LU. . A CHO. N THA`NH PHA`ˆN COTS TO´ˆI U . U 161 〈street〉Campus de Teatinos〈/street〉 〈city〉Malaga〈/city〉 〈country〉Spain〈/country〉 〈/address〉 〈/vendor〉 〈cost〉500〈/cost〉 〈currency〉USD〈/currency〉 〈/marketing〉 Nhu. vaˆ.y, nhu˜ .ng thoˆng tin da˘. c ta’ treˆn du .o.. c coi la` ta`i lieˆ.u chuaˆ’n ma` ca´c nha` cung caˆ´p du`ng da˘. c ta’ ca´c di.ch vu. . Tu` . do´, ca´c trader mo´.i co´ co. cheˆ´ t`ım kieˆ´m va` lu.. a cho.n th´ıch ho . . p. Chu´.c na˘ng va` gia´ tha`nh cu’a tha`nh pha`ˆn cu˜ng co´ theˆ’ du.o.. c da´nh gia´ thoˆng qua ta`i lieˆ.u da˘. c ta’ na`y. To´m la. i, thoˆng tin trong maˆ˜u ta`i lieˆ.u da˘.c ta’ XML COTSDocument du .o.. c theˆ’ hieˆ.n qua Hı`nh 2. H`ınh 2. Ca´c thoˆng tin co´ trong maˆ˜u da˘.c ta’ tha`nh pha`ˆn 6. LAˆ. P TRI`NH THU . . C HIEˆ. N CA´C THUAˆ. T TOA´N VA` DA´NH GIA´ THU .’ NGHIEˆ.M 6.1. Xaˆy du.. ng pha`ˆn me`ˆm thu .’ nghieˆ.m Coˆng cu. lu . . a cho.n: Visual C#, .NET. Daˆy la` moˆi tru .`o.ng, ngoˆn ngu˜. tieˆn tieˆ´n hieˆ.n nay. Dieˆ’m ma.nh cu’a moˆi tru .`o.ng na`y cho phe´p chu´ng ta de˜ˆ da`ng ta.o ca´c u´ .ng du. ng nhanh treˆn ne`ˆn heˆ. die`ˆu ha`nh Windows, de˜ˆ da`ng ta.o giao dieˆ.n moˆ.t ca´ch thaˆn thieˆ.n. Die`ˆu da˘. c bieˆ.t quan tro.ng, la` ngoˆn ngu˜ . na`y hoˆ˜ tro.. nhu˜ .ng thu. vieˆ.n xu .’ ly´ ca´c va˘n ba’n XML raˆ´t toˆ´t. Deˆ’ phu.c vu. thu.’ nghieˆ.m ca´c gia’ i thuaˆ.t, heˆ. thoˆ´ng da˜ du .o.. c xaˆy du . . ng cu`ng KS. Nguye˜ˆn Thu Thuy’ va` KS. Nguye˜ˆn Leˆ Minh, Khoa CNTT, Tru.`o.ng DHBK Ha` Noˆ. i bao goˆ`m ca´c lo´ .p co. ba’n la`: Interface, InterfaceSet, COTSComponent, Configure, Architecture, Repository. Daˆy la` nhu˜.ng lo´.p moˆ ta’ ca´c kha´i nieˆ.m co . ba’n phu.c vu. cho gia’ i thuaˆ.t nhu .: kha´i nieˆ.m ve`ˆ taˆ.p giao dieˆ.n cu’a moˆ. t tha`nh pha`ˆn, caˆ´u h`ınh, kho chu´.a ca´c tha`nh pha`ˆn, kieˆ´n tru´c pha`ˆn me`ˆm. Tieˆ´p theo, heˆ. thoˆ´ng xaˆy du.. ng ca´c lo´ .p ConfigGenerator, StandardConfigGenerator, MinCostConfigGenerator, MinDat- aConfigGenerator. Trong do´, lo´.p ConfigGenerator la` moˆ.t lo´ .p tru`.u tu.o.. ng moˆ ta’ qua´ tr`ınh t`ım kieˆ´m, sinh ra ca´c caˆ´u h`ınh. Lo´.p StandardConfigGenerator du.o.. c keˆ´ thu` .a tu`. ConfigGenerator se˜ la˘´p da˘. t cu. theˆ’ gia’ i thuaˆ.t sinh caˆ´u h`ınh, daˆy la` gia’ i thuaˆ.t ve´t ca.n da˜ de`ˆ caˆ.p o .’ treˆn. Tu.o.ng tu.. MinCostConfigGenerator va` MinDataConfigGenerator cu˜ng keˆ´ thu` .a tu`. ConfigGenerator se˜ la˘´p da˘.t ca´c thuaˆ.t toa´n lu . . a cho.n caˆ´u h`ınh toˆ´i u .u theo gia´ tha`nh, va` lu.. a cho.n caˆ´u h`ınh gia’m thieˆ’u du. thu`.a du˜. lieˆ.u. 6.2. Thu.’ nghieˆ.m ca´c thuaˆ.t toa´n 162 HUY`NH QUYE´ˆT THA´˘NG, PHA. M THI. QUY`NH Du.. a treˆn thu . vieˆ.n da˜ pha´t trieˆ’n ta xaˆy du . . ng chu .o.ng tr`ınh pha`ˆn me`ˆm thu.’ nghieˆ.m ca´c gia’ i thuaˆ.t da˜ tr`ınh ba`y. Chu .o.ng tr`ınh cho phe´p na.p va`o ca´c teˆ.p XML, moˆ. t teˆ.p chu´ .a du˜. lieˆ.u ve`ˆ kho chu´.a ca´c tha`nh pha`ˆn u´.ng vieˆn, va` moˆ. t teˆ.p moˆ ta’ ve`ˆ kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du . . ng. Thu.. c nghieˆ.m ca´c thuaˆ.t toa´n da˜ du .o.. c tieˆ´n ha`nh treˆn hai teˆ.p XML: - GTSCandidates.xml: Teˆ.p chu´ .a du˜. lieˆ.u ve`ˆ kho chu´ .a ca´c tha`nh pha`ˆn u´.ng vieˆn. - GTSArchitecture.xml: Teˆ.p chu´ .a du˜. lieˆ.u ve`ˆ kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du . . ng. Ca´c taˆ.p XML moˆ ta’ ca´c tha`nh pha`ˆn u´ .ng vieˆn ca`ˆn xaˆy du.. ng va` ca´c tha`nh pha`ˆn u´ .ng vieˆn co´ trong kho du.o.. c laˆ´y tu` . ba`i toa´n dieˆ’n h`ınh ([1, 2, 3]): Thieˆ´t keˆ´ di.ch vu. chuyeˆ’n doˆ’i khuoˆn da.ng ca´c a’nh khoˆng gian, co´ teˆn go. i la` GTS (Geographic Translator Service). Neˆ´u t`ım kieˆ´m theo thuaˆ.t toa´n ve´t ca.n ban da`ˆu th`ı soˆ´ lu .o.. ng nu´t treˆn caˆy t`ım kieˆ´m pha’ i duyeˆ.t qua la` 958 nu´t, va` keˆ´t qua’ thu du.o.. c la` 24 caˆ´u h`ınh tho’a ma˜n. Neˆ´u t`ım kieˆ´m theo gia’ i thuaˆ.t toˆ´i u .u ve`ˆ gia´ tha`nh. Khi ngu.`o.i du`ng nhaˆ.p va`o gia´ tha`nh la` 2200 USD th`ı se˜ chı’ cho moˆ.t keˆ´t qua’ caˆ´u h`ınh tho’a ma˜n, va` soˆ´ nu´t ca`ˆn duyeˆ.t qua la` 855. Neˆ´u t`ım kieˆ´m theo gia’ i thuaˆ.t toˆ´i u .u ve`ˆ du˜. lieˆ.u, tu´ .c toˆ´i u.u ve`ˆ khoˆng du. thu`.a ca´c di.ch vu. . Keˆ´t qua’ thu du .o.. c chı’ la` moˆ. t caˆ´u h`ınh duy nhaˆ´t, vo´.i soˆ´ di.ch vu. toˆ’ng coˆ.ng chı’ la` 7, vu` .a du´ng doˆ´i vo´.i soˆ´ di.ch vu. ma` kieˆ´n tru´c pha`ˆn me`ˆm yeˆu ca`ˆu. Keˆ´t qua’ so sa´nh thu.’ nghieˆ.m ca´c gia’ i thuaˆ.t du .o.. c toˆ’ng ho . . p trong Ba’ng 1. Ba’ng 1. Keˆ´t qua’ thu.’ nghieˆ.m vo´ .i ca´c thuaˆ.t toa´n (*) (**) (***) Soˆ´ nu´t ca`ˆn duyeˆ.t 958 823 855 Soˆ´ caˆ´u h`ınh thu du.o.. c 24 1 1 (*) Gia’ i thuaˆ. t COTSConfigs chuaˆ’n (**) Gia’ i thuaˆ.t t`ım kieˆ´m tha`nh pha`ˆn COTS toˆ´i u .u theo du. thu`.a du˜. lieˆ.u (***) Gia’ i thuaˆ.t t`ım kieˆ´m tha`nh pha`ˆn COTS toˆ´i u .u theo gia´ tha`nh 6.3. Da´nh gia´ va` keˆ´t luaˆ.n Keˆ´t qua’ thu.’ nghieˆ.m cho thaˆ´y a´p du. ng tu . tu.o.’ ng nha´nh caˆ.n trong thuaˆ.t toa´n lu . . a cho.n va` t`ım kieˆ´m ca´c caˆ´u h`ınh ho.. p leˆ. cho gia’ i thuaˆ.t COTSConfigs da˜ du .a la. i hieˆ.u qua’ toˆ´t. Soˆ´ lu .o.. ng ca´c nu´t ca`ˆn duyeˆ.t da˜ gia’m di la` do ta khoˆng ca`ˆn t`ım kieˆ´m toa`n boˆ. ca´c toˆ’ ho . . p caˆ´u h`ınh trong ba`i toa´n duyeˆ.t caˆy ma` chı’ ca`ˆn lu . . a cho.n nha´nh phu` ho . . p deˆ’ du .a ra keˆ´t qua’ t`ım kieˆ´m cuoˆ´i cu`ng. Vieˆ.c du .a va`o ca´c tieˆu ch´ı t`ım kieˆ´m cho ca´c caˆ´u h`ınh ca`ˆn lu.. a cho.n - toˆ´i u .u theo du. thu`.a du˜. lieˆ.u va` toˆ´i u .u theo gia´ tha`nh la`m cho phu.o.ng pha´p xaˆy du.. ng pha`ˆn me`ˆm du . . a treˆn ca´c tha`nh pha`ˆn COTS tro.’ neˆn kha’ thi ho.n trong thu.. c teˆ´. Trong ba`i ba´o da˜ tr`ınh ba`y ca´c gia’ i pha´p naˆng cao hieˆ.u qua’ tieˆ´n tr`ınh t`ım kieˆ´m va` lu . . a cho.n tha`nh pha`ˆn COTS, pha´t trieˆ’n gia’ i thuaˆ.t t`ım kieˆ´m va` lu . . a cho.n tha`nh pha`ˆn COTS toˆ´i u .u theo hu.´o.ng gia’m thieˆ’u du. thu`.a du˜. lieˆ.u va` gia´ tha`nh cu’a tha`nh pha`ˆn COTS va` thu.’ nghieˆ.m gia’ i thuaˆ.t va`o heˆ. thoˆ´ng GTS (Geographic Translator Service). Ba`i ba´o da˜ tr`ınh ba`y da´nh gia´ thu.’ nghieˆ.m ca´c gia’ i thuaˆ.t t`ım kieˆ´m, lu . . a cho.n ca´c tha`nh pha`ˆn pha`ˆn me`ˆm theo ca´c tieˆu ch´ı. Daˆy la` moˆ.t vaˆ´n de`ˆ quan tro.ng trong pha´t trieˆ’n pha`ˆn me`ˆm hu.´o.ng tha`nh pha`ˆn cho phe´p lu.. a cho.n tha`nh pha`ˆn phu` ho . .p nhaˆ´t vo´ .i da˘.c ta’ kieˆ´n tru´c ca`ˆn xaˆy du.. ng. Moˆ.t soˆ´ hu .´o.ng pha´t trieˆ’n cu’a ba`i toa´n na`y nhu. kieˆ’m tra t´ınh du´ng da˘´n cu’a ca´c da˘. c ta’ tha`nh pha`ˆn theo ca´c da˘. c ta’ XML moˆ. t ca´ch tu . . doˆ.ng, mo .’ roˆ.ng tieˆu ch´ı lu . . a cho.n ca´c tha`nh pha`ˆn pha`ˆn me`ˆm du.. a treˆn da´nh gia´ ca´c tu .o.ng ta´c cu’a no´ vo´.i ca´c tha`nh pha`ˆn da˜ co´ sa˘˜n trong CA´C GIA’ I THUAˆ. T TI`M KIE´ˆM VA` LU. . A CHO. N THA`NH PHA`ˆN COTS TO´ˆI U . U 163 kieˆ´n tru´c, v.v. Hieˆ.n ta. i chu´ng toˆi dang pha´t trieˆ’n ca´c nghieˆn cu´ .u theo ca´c di.nh hu .´o.ng na`y. TA`I LIEˆ. U THAM KHA ’O [1] Luis Iribarne, Jose M. Trova, Antonio Vallecillio, A trading service for COTS components, The Computer Journal 47 (3) (2004). [2] G.T. Heineman, W.T. Councill, Component-Based Software Engineering (Putting the pieces together) Addison Wesley, 2001. ISBN 0-201-70485-4. [3] B. Meyer, Object-Oriented Software Construction, 2nd Ed. Series on Computer Science, Prentice Hall, 1997. [4] N. Medvidovic, and R.N. Taylor, A classification and comparison framework for soft- ware architecture description languages, IEEE Transactions on Software Engineering (3) (2000) 70–93. [5] Huy`nh Quyeˆ´t Tha˘´ng, Phan Theˆ´ Da. i, Pha´t trieˆ’n pha`ˆn me`ˆm hu .´o.ng tha`nh pha`ˆn - tieˆ´n tr`ınh tu.. doˆ.ng ho´a khi xaˆy du . . ng pha`ˆn me`ˆm phu´ .c ta.p du . . a ne`ˆn tha`nh pha`ˆn COTS, Ky’ yeˆ´u Hoˆ. i tha’o khoa ho. c quoˆ´c gia ve`ˆ Nghieˆn cu´ .u pha´t trieˆ’n va` u´.ng du. ng Coˆng ngheˆ. thoˆng tin va` truye`ˆn thoˆng ICT.RDA la`ˆn thu´. II, Ha` Noˆ. i 24-25/9/2004 (165–174). [6] Huy`nh Quyeˆ´t Tha˘´ng, Doˆ˜ Tuaˆ´n Du˜ng, Pha´t trieˆ’n pha`ˆn me`ˆm hu.´o.ng tha`nh pha`ˆn - lu.. a cho.n va` da´nh gia´ ca´c tha`nh pha`ˆn pha`ˆn me`ˆm hoˆ˜ tro . . da giao dieˆ.n, Ky’ yeˆ´u Hoˆ. i tha’o Khoa ho. c Quoˆ´c gia la`ˆn thu´ . nhaˆ´t - Nghieˆn cu´.u co. ba’n va` u´.ng du. ng Coˆng ngheˆ. thoˆng tin FAIR 2003, Ha` Noˆ. i 4-5/10/2003 (423– 433). [7] Huy`nh Quyeˆ´t Tha˘´ng, Pha.m Thi. Quy`nh, Mo .’ roˆ.ng ca´c phe´p do kha’ na˘ng t´ıch ho . .p va` kha’ na˘ng ta´i su.’ du. ng va` xaˆy du . . ng phe´p do toˆ’ng ho . . p cho pha`ˆn me`ˆm hu .´o.ng tha`nh pha`ˆn, Ky’ yeˆ´u Hoˆ. i tha’o khoa ho. c quoˆ´c gia ve`ˆ Nghieˆn cu´ .u pha´t trieˆ’n va` u´.ng du.ng Coˆng ngheˆ. thoˆng tin va` truye`ˆn thoˆng ICT.RDA la`ˆn thu´. III, Ha` Noˆ. i 22-23/5/2006 (257–267). Nhaˆ. n ba`i nga`y 19 - 10 - 2006 Nhaˆ. n la. i sau su .’ a nga`y 29 - 6 -2007
File đính kèm:
- cac_giai_thuat_tim_kiem_va_lua_chon_thanh_phan_cots_toi_uu_t.pdf