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 chí giá thành và dư thừa dữ liệu
Tóm tắt. Phát triển phần mềm hướng thành phần (Component-Based Software Development - CBSD) là một trong những kỹ thuật tiêu biểu xây dựng các phần mềm lớn, phức tạp, giúp giảm thời gian, công sức và giá thành xây dựng phần mềm. Các thành phần thương mại (COTS) đang được sử dụng ngày càng nhiều trong công nghệ phần mềm dựa thành phần để xây dựng các ứng dụng phần mềm, và do đó các nhà phát triển ứng dụng đã yêu cầu một số cơ chế để mô tả, tìm kiếm, lựa chọn và xây dựng các thành phần COTS. Trong bài báo này chúng tôi trình bày giải thuật là chọn các thành phần COTS tối tru theo dư thừa dữ liệu (kích thước) và giá thành, để tích hợp trong phần mềm cần xây dựng. Thuật toán đề xuất có độ phức tạp chấp nhận được. Các thử nghiệm được thực hiện trên một bài toán cụ thể: Thiết kế dịch vụ chuyển đổi khuôn dạng các ảnh không gian.
Tóm tắt nội dung tài liệu: 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 chí giá thành và dư thừa dữ liệu
Ta.p ch´ı Tin ho. c va` Die`ˆu khieˆ’n ho. c, T.23, S.2 (2007), 153–163 CA´C GIA ’ I THUAˆ. T TI`M KIEˆ ´ M VA` LU . . A CHO. N THA`NH PHAˆ ` N COTS TOˆ ´ I U . U THEO CA´C TIEˆU CHI´ GIA´ THA`NH VA` DU . THU` . A DU˜ . LIEˆ.U HUY`NH QUYE´ˆT THA´˘NG1, PHA. M THI. QUY`NH 2 1Khoa CNTT, Tru.`o.ng DHBK Ha` Noˆ. i 2Khoa CNTT, Tru.`o.ng DHSP Ha` Noˆ. i Abstract. Component-based software development is gaining recognition as the key technology for the construction of high-quality, evolvable and large software systems in timely and affordable man- ners. Commercial components (COTS) is being used more and more in Component-Based Software Engineering for building software applications, and accordingly, some mechanisms are demanded by developers of software applications to describe, search, select and compose COTS components. In this paper we presented two algorithms applied to select COTS components witth optimization of cost and data redunancy (size). The proposed algorithms are realized based on .NET platform and experimented on case study Geographic Translator Service. The comparison between proposed and original algorithm also is presented. To´m ta˘´t. Pha´t trieˆ’n pha`ˆn me`ˆm hu.´o.ng tha`nh pha`ˆn (Component-Based Software Development - CBSD) la` moˆ.t trong nhu˜ .ng ky˜ thuaˆ.t tieˆu bieˆ’u xaˆy du . . ng ca´c pha`ˆn me`ˆm lo´ .n, phu´.c ta.p, giu´p gia’m tho`.i gian, coˆng su´.c va` gia´ tha`nh xaˆy du.. ng pha`ˆn me`ˆm. Ca´c tha`nh pha`ˆn thu .o.ng ma.i (COTS) dang du.o.. c su .’ du.ng nga`y ca`ng nhie`ˆu trong coˆng ngheˆ. pha`ˆn me`ˆm du . . a tha`nh pha`ˆn deˆ’ xaˆy du . . ng ca´c u´ .ng du.ng pha`ˆn me`ˆm, va` do do´ ca´c nha` pha´t trieˆ’n u´ .ng du.ng da˜ yeˆu ca`ˆu moˆ.t soˆ´ co . cheˆ´ deˆ’ moˆ ta’, t`ım kieˆ´m, lu.. a cho.n va` xaˆy du . . ng ca´c tha`nh pha`ˆn COTS. Trong ba`i ba´o na`y chu´ng toˆi tr`ınh ba`y gia’i thuaˆ.t lu . . a cho.n ca´c tha`nh pha`ˆn COTS toˆ´i u .u theo du. thu`.a du˜. lieˆ.u (k´ıch thu .´o.c) va` gia´ tha`nh, deˆ’ t´ıch ho.. p trong pha`ˆn me`ˆm ca`ˆn xaˆy du.. ng. Thuaˆ.t toa´n de`ˆ xuaˆ´t co´ doˆ. phu´ .c ta.p chaˆ´p nhaˆ.n du .o.. c. Ca´c thu .’ nghieˆ.m du.o.. c thu . . c hieˆ.n treˆn moˆ.t ba`i toa´n cu. theˆ’: Thieˆ´t keˆ´ di.ch vu. chuyeˆ’n doˆ’i khuoˆn da.ng ca´c a’nh khoˆng gian. 1. MO .’ DA`ˆU Pha´t trieˆ’n pha`ˆn me`ˆm du.. a tha`nh pha`ˆn (CBSD) cho phe´p ngu .`o.i pha´t trieˆ’n ta.o ra nhu˜ .ng u´.ng du.ng du`ng moˆ. t pha`ˆn pha`ˆn me`ˆm du .o.. c go. i la` ca´c tha`nh pha`ˆn. Tha`nh pha`ˆn pha`ˆn me`ˆm la` moˆ.t do .n vi. caˆ´u tha`nh vo´ .i giao dieˆ.n du .o.. c tho’a thuaˆ.n tru .´o.c va` chı’ phu. thuoˆ.c du .´o.i go´c doˆ. noˆ. i dung da˜ ro˜ ra`ng, chu´ng co´ kha’ na˘ng lieˆn keˆ´t, tu .o.ng ta´c vo´.i nhau h`ınh tha`nh neˆn moˆ.t heˆ. thoˆ´ng mo´.i. Tha`nh pha`ˆn pha`ˆn me`ˆm co´ theˆ’ du.o.. c trieˆ’n khai moˆ.t ca´ch doˆ.c laˆ.p. COTS la` moˆ. t tha`nh pha`ˆn pha`ˆn me`ˆm mang t´ınh thu.o.ng ma. i (co´ theˆ’ du .o.. c caˆ´p giaˆ´y phe´p, hoa˘.c du .o.. c ba´n) cho phe´p do´ng go´i, phaˆn phoˆ´i, lu.u giu˜., su.’ a chu˜.a va` tuy` bieˆ´n theo y´ ngu.`o.i su.’ du`ng, nhu˜.ng tha`nh pha`ˆn na`y thu.`o.ng lo´.n va` du.o.. c lu .u tru˜. trong ca´c kho pha`ˆn me`ˆm. Vieˆ.c pha´t trieˆ’n pha`ˆn me`ˆm du . . a ne`ˆn tha`nh pha`ˆn COTS nga`y ca`ng tro .’ neˆn linh hoa.t la` do co´ su.. gia ta˘ng ve`ˆ chaˆ´t lu .o.. ng va` su . . da da.ng cu’a ca´c sa’n phaˆ’m du . . a ne`ˆn tha`nh pha`ˆn COTS 154 HUY`NH QUYE´ˆT THA´˘NG, PHA. M THI. QUY`NH nhu. heˆ. die`ˆu ha`nh, co . so.’ du˜. lieˆ.u, heˆ. thoˆ´ng tin nha˘´n, thu . dieˆ.n tu .’ , GIS, GUI builders... Ca´c sa’n phaˆ’m na`y goˆ`m ca´c u´.ng du.ng va` ca´c tha`nh pha`ˆn hoa`n thieˆ.n va` da˜ co´ ma˘.t treˆn thi. tru .`o.ng CNTT. Soˆ´ lu.o.. ng ca´c tha`nh pha`ˆn COTS dang tieˆ´p tu. c gia ta˘ng, chaˆ´t lu .o.. ng cu˜ng nhu . kha’ na˘ng u´.ng du. ng cu’a no´ nga`y ca`ng du .o.. c ca’ i thieˆ.n. Ho .n nu˜.a, pha´t trieˆ’n pha`ˆn me`ˆm du.. a treˆn ca´c tha`nh pha`ˆn COTS co`n cung caˆ´p kha’ na˘ng mo.’ roˆ.ng va` bieˆ´n doˆ’i ca´c u´ .ng du. ng pha`ˆn me`ˆm thoˆng qua ca´c ha`m APIs, ca´c ngoˆn ngu˜. plug- ins va` script. Tu`. do´, no´ co´ theˆ’ phu` ho.. p vo´ .i nhu ca`ˆu su.’ du.ng cu’a tu` .ng mu. c d´ıch, ra`ng buoˆ.c kha´c nhau. Trong pha´t trieˆ’n pha`ˆn me`ˆm du.. a tha`nh pha`ˆn COTS, vieˆ.c lu . . a cho.n tha`nh pha`ˆn COTS phu` ho..p la` moˆ. t trong nhu˜ .ng ba`i toa´n raˆ´t quan tro.ng. Trong ba`i ba´o na`y chu´ng toˆi taˆ.p trung H`ınh 1. Tieˆ´n tr`ınh xaˆy du.. ng pha`ˆn me`ˆm du.. a treˆn ca´c tha`nh pha`ˆn COTS va`o nghieˆn cu´.u mo.’ roˆ.ng gia’ i thuaˆ.t lu . . a cho.n ca´c toˆ’ ho . .p tha`nh pha`ˆn u´ .ng cu.’ vieˆn COTS cho kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du.. ng. Ca´c mo .’ roˆ.ng trong gia’ i thuaˆ. t lu . . a cho.n na`y du .o.. c xaˆy du . . ng treˆn 2 tieˆu ch´ı: du. thu`.a du˜. lieˆ.u cu’a ca´c tha`nh pha`ˆn va` gia´ tha`nh cu’a tha`nh pha`ˆn. Y´ tu.o.’ ng chu´ng toˆi a´p du.ng trong gia’ i thuaˆ.t xaˆy du . . ng gia’ i thuaˆ.t lu . . a cho.n la` phu .o.ng pha´p nha´nh caˆ.n. Caˆ´u tru´c cu’a ba`i ba´o du.o.. c tr`ınh ba`y nhu. sau. Mu. c 2 tr`ınh ba`y ve`ˆ tieˆ´n tr`ınh xaˆy du.. ng pha`ˆn me`ˆm du . . a tha`nh pha`ˆn COTS. Mu. c 3 se˜ tr`ınh ba`y gia’ i thuaˆ.t COTSCon- figs va` nhu˜.ng da´nh gia´ ve`ˆ ca´c kha’ na˘ng mo.’ roˆ.ng va` toˆ´i u .u thuaˆ.t toa´n. Tieˆ´p theo, Mu.c 4 la` ca´c mo.’ roˆ.ng de`ˆ xuaˆ´t cho thuaˆ.t toa´n COTSConfigs. Trong Mu. c 5 la` ca´c mo .’ roˆ.ng thoˆng tin trong da˘.c ta’ COTS Doc- ument deˆ’ lu.u tru˜. gia´ tha`nh tha`nh pha`ˆn. Mu. c 6 tr`ınh ba`y ca´c da´nh gia´ thu .’ nghieˆ.m da˜ thu.. c hieˆ.n vo´ .i ca´c gia’ i thuaˆ.t de`ˆ xuaˆ´t, cuoˆ´i cu`ng la` keˆ´t luaˆ.n va` hu .´o.ng pha´t trieˆ’n. 2. TIEˆ´N TRI`NH PHA´T TRIEˆ’N PHA`ˆN ME`ˆM DU . . A TREˆN CA´C THA`NH PHA`ˆN COTS Moˆ h`ınh tieˆ´n tr`ınh pha´t trieˆ’n pha`ˆn me`ˆm hu.´o.ng tha`nh pha`ˆn du.. a treˆn ca´c tha`nh pha`ˆn COTS, moˆ ta’ trong Hı`nh 1, du.o.. c chia tha`nh ba giai doa.n ([1, 5, 6]): Giai doa. n 1: Su .’ du. ng ca´c coˆng cu. moˆ h`ınh ho´a (v´ı du. UML-RT cu’a boˆ. coˆng cu. Rational Rose) deˆ’ moˆ ta’ va` thieˆ´t keˆ´ kieˆ´n tru´c pha`ˆn me`ˆm. Maˆ˜u da˘.c ta’ du .o.. c xaˆy du . . ng va` tr`ınh ba`y trong [1, 5]. Giai doa. n 2: Su .’ du.ng moˆ.t tieˆ´n tr`ınh tu . . doˆ.ng deˆ’ xuaˆ´t ca´c thoˆng tin tu` . ky´ pha´p UML - RT tha`nh ca´c maˆ˜u da˘.c ta’ XML. Giai doa. n 3: Tieˆ´n tr`ınh COTSTrader, thu . . c hieˆ.n t`ım kieˆ´m danh sa´ch ca´c tha`nh pha`ˆn u´ .ng cu.’ CA´C GIA’ I THUAˆ. T TI`M KIE´ˆM VA` LU. . A CHO. N THA`NH PHA`ˆN COTS TO´ˆI U . U 155 vieˆn trong kho chu´.a maˆ˜u XML. Co. so.’ cu’a tieˆ´n tr`ınh na`y la` gia’ i thuaˆ. t COTSTrader. Gia’ i thuaˆ.t da˜ du .o.. c tr`ınh ba`y chi tieˆ´t trong [1]. Tieˆ´p theo tieˆ´n tr`ınh t`ım kieˆ´m la` tieˆ´n tr`ınh COTSConfigs lu.. a cho.n toˆ’ ho . .p tha`nh pha`ˆn tu` . danh sa´ch tha`nh pha`ˆn u´.ng cu.’ vieˆn deˆ’ ta.o ra ca´c caˆ´u h`ınh tho’a ma˜n kieˆ´n tru´c pha`ˆn me`ˆm yeˆu ca`ˆu. Trong [1, 2, 3] cu˜ng tr`ınh ba`y chi tieˆ´t gia’ i thuaˆ.t COTSConfigs, a´p du.ng tu . tu.o.’ ng ve´t ca.n ca´c tru.`o.ng ho.. p tho’a ma˜n caˆ´u h`ınh. Moˆ.t soˆ´ ca’ i tieˆ´n cu’a gia’ i thuaˆ.t na`y cu˜ng da˜ du .o.. c tr`ınh ba`y trong [5, 6]. Bu.´o.c cuoˆ´i cu`ng trong giai doa.n na`y, khi taˆ´t ca’ ca´c caˆ´u h`ınh da˜ du .o.. c sinh, chu´ng ta thu . . c hieˆ.n bu .´o.c do´ng go´i ca´c caˆ´u h`ınh deˆ’ ta.o ra moˆ.t u´ .ng du. ng hoa`n chı’nh. Tro.ng taˆm cu’a ba`i ba´o taˆ.p trung va`o bu .´o.c thu´. hai cu’a giai doa.n 3 - tieˆ´n tr`ınh COTSConfigs lu.. a cho.n toˆ’ ho . . p tha`nh pha`ˆn. 3. THUAˆ. T TOA´N COTSConfigs LU . . A CHO. N TOˆ ’ HO . . P CA´C THA`NH PHA`ˆN COTS 3.1. Moˆ ta’ ba`i toa´n Tieˆ´n tr`ınh sinh ca´c caˆ´u h`ınh tu`. taˆ.p ca´c tha`nh pha`ˆn u´ .ng vieˆn la` moˆ. t qua´ tr`ınh quan tro.ng trong toa`n boˆ. qua´ tr`ınh t`ım kieˆ´m ca´c tha`nh pha`ˆn COTS. Tieˆ´n tr`ınh na`y se˜ lu . . a cho.n taˆ.p ca´c tha`nh pha`ˆn phu` ho.. p nhaˆ´t vo´ .i kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du.. ng. Die`ˆu kieˆ.n phu` ho . . p o .’ daˆy la` pha’ i lu.. a cho.n ca´c tha`nh pha`ˆn sao cho taˆ.p di.ch vu. ma` caˆ´u h`ınh da´p u´ .ng du.o.. c pha’ i kho´ .p vo´.i taˆ.p di.ch vu. yeˆu ca`ˆu cu’a kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du . . ng. Ba`i toa´n lu.. a cho.n toˆ’ ho . .p ca´c tha`nh pha`ˆn COTS du .o.. c pha´t bieˆ’u nhu . sau ([1]): Cho moˆ. t kieˆ´n tru´c pha`ˆn me`ˆm A. Co´ moˆ. t kho B chu´ .a toa`n boˆ. ca´c tha`nh pha`ˆn u´ .ng vieˆn COTS phu` ho.. p deˆ’ lu.. a cho.n t´ıch ho . .p va`o A. Ca`ˆn pha’ i sinh ra ca´c caˆ´u h`ınh S la` taˆ.p ho . . p cu’a ca´c tha`nh pha`ˆn u´.ng vieˆn COTS co´ trong B, sao cho caˆ´u h`ınh S da´p u´.ng ca´c di.ch vu./chu´ .c na˘ng ma` A yeˆu ca`ˆu. Nhu. vaˆy caˆ´u h`ınh S ca`ˆn da´p u´.ng hai die`ˆu kieˆ.n: (i) Taˆ.p ca´c di.ch vu. du .o.. c hoˆ˜ tro . . bo .’ i ca´c tha`nh pha`ˆn cu’a S pha’ i tru`ng vo´.i taˆ.p ca´c di.ch vu. du.o.. c hoˆ˜ tro . . bo .’ i A (tu´.c la` khoˆng co´ ca´c loˆ˜ hoˆ’ng di.ch vu. ). (ii) Khoˆng co´ hai tha`nh pha`ˆn na`o cu’a S cung caˆ´p cu`ng moˆ. t di.ch vu. chung (tu´ .c la` khoˆng co´ di.ch vu. tru`ng) Sau daˆy la` thuaˆ.t toa´n se˜ sinh ra ca´c caˆ´u h`ınh S ([1]). Gia’i thuaˆ.t COTSConfigs 1 function COTSconfigs(i, Sol, S) 2 // 1 6 i 6 size(CB(A)) kha’o sa´t qua taˆ´t ca’ ca´c kha’ na˘ng co´ trong kho CB(A) (chu´.a danh sa´ch ca´c tha`nh pha`ˆn u´.ng cu.’ vieˆn) 3 // Sol la` caˆ´u h`ınh ta.m hieˆ.n tho` .i dang du.o.. c xaˆy du . . ng trong gia’ i thuaˆ.t 4 // S chu´.a du.. ng taˆ.p ho . . p taˆ´t ca’ ca´c caˆ´u h`ınh co´ gia´ tri. doˆ´i vo´ .i kieˆ´n tru´c A 5 if i 6 size(CB(A)) then 6 for j := 1 to size(Ci.R) do//thu.. c hieˆ.n vo´ .i taˆ´t ca’ ca´c di.ch vu. trong C1 7 // thu.’ gom di.ch vu. Ci.Ri va`o Sol 8 if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri 6∈ Sol : R? 9 Sol := Sol ∪ {Ci.Ri} 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. tru`ng nhau 13 configs(i, Sol, S) ; // t`ım trong Ci... 14 endif 15 Sol := Sol− {Ci.Ri} 16 endif 17 endfor 18 configs(i+ 1, Sol, S) // tieˆ´p tu. c trong CB(A) 19 endif 20 endfunction Ca´c kho.’ i ta.o cu’a gia’ i thuaˆ.t la` S =;Sol =; configs (1;Sol;S). Moˆ˜i caˆ´u h`ınh (do`ng 9) de`ˆu du.o.. c sinh ra ba`˘ng ca´ch thu .’ taˆ´t ca’ ca´c u´.ng cu.’ vieˆn, keˆ´t ho.. p da`ˆn ca´c di.ch vu. Cj.Rj co`n chu .a chu´.a trong A, va` bo’ di nhu˜.ng di.ch vu. ma` A da˜ co´ roˆ`i (do`ng 8 va` do`ng 10). Khi gia’ i thuaˆ.t keˆ´t thu´c, bieˆ´n S se˜ chu´.a taˆ´t ca’ ca´c caˆ´u h`ınh ca`ˆn thieˆ´t. 3.2. Da´nh gia´ nhaˆ.n xe´t ve`ˆ gia’i thuaˆ.t Thuaˆ.t toa´n a´p du. ng tu . tu.o.’ ng gia’ i thuaˆ.t quay lui deˆ’ thu . . c hieˆ.n qua´ tr`ınh t`ım kieˆ´m lu . . a cho.n ca´c caˆ´u h`ınh ho . . p leˆ. . No´ se˜ sinh tu` . taˆ.p ho . . p ca´c u´ .ng cu.’ vieˆn trong kho B : CB(A) = {C1, ..., Ck}, va` tu`. kieˆ´n tru´c pha`ˆn me`ˆm ca`ˆn xaˆy du.. ng A, moˆ. t taˆ.p S ca´c caˆ´u h`ınh ho . . p leˆ. (do`ng 11). Khoˆng co´ tru.`o.ng ho.. p ca´c caˆ´u h`ınh trong S co`n toˆ`n ta. i co´ loˆ˜ hoˆ’ng di.ch vu. (moˆ. t di.ch vu. na`o do´ khoˆng du.o.. c da´p u´ .ng) hay ca´c di.ch vu. choˆ`ng che´o. Do do´, gia’ i thuaˆ.t se˜ chı’ sinh nhu˜ .ng caˆ´u h`ınh ho.. p leˆ.. Tuy nhieˆn, gia’ i thuaˆ. t na`y co´ nhu .o.. c dieˆ’m la` moˆ.t gia’ i thuaˆ.t t`ım kieˆ´m ve´t ca.n, vo´ .i doˆ. phu´ .c ta.p la` O(2 n), trong do´ n la` soˆ´ lu.o.. ng ca´c di.ch vu. ma` taˆ´t ca’ ca´c tha`nh pha`ˆn trong CB(A) co´ theˆ’ da´p u´.ng. Khi do´ vo´.i moˆ. t kho ca´c tha`nh pha`ˆn u´ .ng vieˆn lo´.n, th`ı se˜ daˆ˜n to´.i bu`ng noˆ’ toˆ’ ho.. p. Qua´ tr`ınh t`ım kieˆ´m nhu . vaˆ.y se˜ khoˆng kha’ thi. 4. CA´C DE`ˆ XUA´ˆT CA’ I TIEˆ´N GIA’ I THUAˆ. T COTSCONFIGS LU . . A CHO. N TOˆ ’ HO . . P CA´C THA`NH PHA`ˆN COTS Deˆ’ gia’m doˆ. phu´ .c ta.p cu’a thuaˆ.t toa´n treˆn, chu´ng ta co´ theˆ’ de`ˆ xuaˆ´t thay ba`˘ng gia’ i thuaˆ.t nha´nh caˆ.n (brand and bound). Tu . tu.o.’ ng cu’a thuaˆ.t toa´n nha´nh caˆ.n la` nho` . va`o moˆ. t soˆ´ ca´c thoˆng tin da˜ co´ deˆ’ nha`˘m loa. i bo’ bo´ .t moˆ.t soˆ´ ca´c phu .o.ng a´n cha˘´c cha˘´n khoˆng pha’ i la` toˆ´i u.u, tu´.c la` co´ theˆ’ lu.o.. c bo´ .t moˆ.t soˆ´ nu´t khoˆng ca`ˆn thieˆ´t treˆn caˆy t`ım kieˆ´m. Vaˆ.y moˆ.t soˆ´ tieˆu ch´ı co´ theˆ’ du.a va`o deˆ’ ta˘ng hieˆ.u qua’ t`ım kieˆ´m nhu .: - Lu.. a cho.n tha`nh pha`ˆn vo´ .i du. thu`.a du˜. lieˆ.u la` toˆ´i thieˆ’u. - Lu.. a cho.n tha`nh pha`ˆn vo´ .i toˆ’ng gia´ tha`nh la` toˆ´i thieˆ’u. 4.1. Ca’i tieˆ´n gia’i thuaˆ.t lu . . a cho.n tha`nh pha`ˆn vo´ .i du. thu`.a du˜. lieˆ.u toˆ´i thieˆ’u Khi xaˆy du.. ng ca´c caˆ´u h`ınh phu` ho . .p vo´ .i kieˆ´n tru´c pha`ˆn me`ˆm yeˆu ca`ˆu, chu´ng ta co´ theˆ’ thu du.o.. c nhie`ˆu keˆ´t qua’ caˆ´u h`ınh ([1, 2, 5, 6]). Trong do´, se˜ co´ nhu˜ .ng caˆ´u h`ınh la` toˆ’ ho.. p ca´c tha`nh pha`ˆn ma` ngoa`i nhu˜.ng di.ch vu. ma` kieˆ´n tru´c pha`ˆn me`ˆm da˜ yeˆu ca`ˆu, co`n co´ nhu˜ .ng di.ch vu. du . thu`.a khoˆng ca`ˆn du`ng. Neˆ´u su.’ du.ng ca´c caˆ´u h`ınh 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 ... 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