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

11 304 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

https://mkienthuc.blogspot.com/2017/06/do-an-khao-sat-he-thong-thuy-luc-tren-may-ui-komatsu.html https://mkienthuc.blogspot.com/2017/06/ung-dung-logic-mo-trong-chan-doan-hong-he-thong-phanh.html

`eu khiˆe’n ho.c, T.23, S.2 (2007), 153–163 Ta.p ch´ı Tin ho.c v` a Diˆ ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH `.A DU ˜ LIE ˆ U ´ TIEU ˆ CH´I GIA ´ THANH ` ` DU THU THEO CAC VA ´˘ NG1 , PHAM THI QUYNH ` ˆ´T THA ` HUYNH QUYE CNTT, Tru.`o.ng DHBK H` a Nˆ o.i a Nˆ o.i Khoa CNTT, Tru `o ng DHSP H` Khoa 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 manners 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 ´t Ph´ `an mˆ `em hu.´ `an (Component-Based Software Development T´ om t˘ a at triˆe’n phˆ o.ng th` anh phˆ ’ `an mˆ `em l´ o.n, ph´ y thuˆ a.t tiˆeu biˆeu xˆ ay du ng c´ac phˆ u.c ta.p, gi´ up gia’m CBSD) l` a mˆ o.t nh˜ u ng k˜ `an mˆ `em C´ `an thu o ng ma.i (COTS) dang th` o i gian, cˆong s´ ac th` anh phˆ u c v` a gi´ a th` anh xˆ ay du ng phˆ `an dˆe’ xˆ `eu cˆong nghˆe phˆ `an mˆ `em du a th` anh phˆ ´.ng ay c`ang nhiˆ du.o c su’ du.ng ng` ay du ng c´ac u `au mˆ `an mˆ `em, v` o c´ac nh` a ph´ at triˆe’n u ´ ng du.ng d˜ a yˆeu cˆ o.t sˆ o´ co chˆe´ dˆe’ mˆ o ta’, t`ım kiˆe´m, du.ng phˆ a d´ `an COTS Trong b` a xˆ ay du ng c´ac th` anh phˆ b´ ao n` ay ch´ ung tˆ oi tr`ınh b` ay gia’i thuˆ a.t lu a lu a cho n v` ’ `an COTS tˆ cho.n c´ac th` anh phˆ o´i u u theo du th` u a d˜ u liˆe.u (k´ıch thu ´o c) v` a gi´ a th` anh, dˆe t´ıch ho p `e xuˆa´t c´o dˆ `an mˆ `em cˆ `an xˆ a.t to´ an dˆ ac thu’ nghiˆe.m a´p nhˆ a.n du.o c C´ o ph´ u.c ta.p chˆ phˆ ay du ng Thuˆ du.o c thu c hiˆe.n trˆen mˆ o’i khuˆ on da.ng c´ac a’nh khˆong o.t b` to´ an cu thˆe’: Thiˆe´t kˆe´ di.ch vu chuyˆe’n dˆ gian ’ D` ˆU MO A `an (CBSD) cho ph´ep ngu.`o.i ph´at triˆe’n ta.o nh˜ `an mˆ `em du a th`anh phˆ u.ng Ph´at triˆe’n phˆ `an phˆ `an mˆ `em du.o c go.i l`a c´ac th`anh phˆ `an Th`anh phˆ `an phˆ `an mˆ `em ung mˆo.t phˆ u ´.ng du.ng d` l`a mˆo.t n vi cˆa´u th`anh v´o i giao diˆe.n du o c tho’a thuˆa.n tru ´o c v`a chı’ phu thuˆo.c du ´o i g´oc dˆo ung c´o kha’ n˘ang liˆen kˆe´t, tu.o.ng t´ac v´o.i h`ınh th`anh nˆen mˆo.t hˆe nˆo.i dung d˜a r˜o r`ang, ch´ `an phˆ `an mˆ `em c´o thˆe’ du.o c triˆe’n khai mˆo.t c´ach dˆo.c lˆa.p COTS l`a mˆo.t thˆo´ng m´o i Th`anh phˆ `an phˆ `an mˆ `em mang t´ınh thu.o.ng ma.i (c´o thˆe’ du.o c cˆa´p giˆa´y ph´ep, ho˘a.c du.o c b´an) th`anh phˆ u., su’.a ch˜ y biˆe´n theo y´ ngu.`o.i su’ d` u.a v`a tu` ung, nh˜ u.ng cho ph´ep d´ong g´oi, phˆan phˆo´i, lu.u gi˜ `an mˆ `em `an n`ay thu.`o.ng l´o.n v`a du.o c lu.u tr˜ u c´ac kho phˆ th`anh phˆ ’ `an mˆ `em du a nˆ `en th`anh phˆ `an COTS ng`ay c`ang tro’ nˆen linh hoa.t l`a Viˆe.c ph´at triˆe n phˆ `e chˆa´t lu o ng v`a su da da.ng cu’a c´ac sa’n phˆa’m du a nˆ `en th`anh phˆ `an COTS c´o su gia t˘ang vˆ 154 ´ ` ˆ´T THA ˘ NG, PHA ` HUYNH QUYE M THI QUYNH `eu h`anh, co so’ d˜ nhu hˆe diˆ u liˆe.u, hˆe thˆo´ng tin nh˘a´n, thu diˆe.n tu’., GIS, GUI builders C´ac `an ho`an thiˆe.n v`a d˜a c´o m˘a.t trˆen thi tru.`o.ng sa’n phˆa’m n`ay gˆo`m c´ac u ´ ng du.ng v`a c´ac th`anh phˆ `an COTS dang tiˆe´p tu.c gia t˘ang, chˆa´t lu.o ng c˜ ung nhu kha’ CNTT Sˆo´ lu.o ng c´ac th`anh phˆ `an mˆ `em du a trˆen u a, ph´at triˆe’n phˆ n˘ang u ´ ng du.ng cu’a n´o ng`ay c`ang du o c ca’i thiˆe.n Ho n n˜ `an COTS c`on cung cˆa´p kha’ n˘ang mo’ rˆo.ng v`a biˆe´n dˆo’i c´ac u `an mˆ `em ´.ng du.ng phˆ c´ac th`anh phˆ u ho p v´o.i u d´o, n´o c´o thˆe’ ph` thˆong qua c´ac h`am APIs, c´ac ngˆon ng˜ u plug- ins v`a script T` `au su’ du.ng cu’a t` u.ng mu.c d´ıch, r`ang buˆo.c kh´ac nhu cˆ `an mˆ `em du a th`anh phˆ `an COTS, viˆe.c lu a cho.n th`anh phˆ `an COTS Trong ph´at triˆe’n phˆ u ng b`ai to´an rˆa´t quan tro.ng Trong b`ai b´ao n`ay ch´ ung tˆoi tˆa.p trung ph` u ho p l`a mˆo.t nh˜ v`ao nghiˆen c´ u.u mo’ rˆo.ng gia’i thuˆa.t lu a `an u ´.ng cu’ viˆen cho.n c´ac tˆo’ ho p th`anh phˆ `an mˆ `em cˆ `an xˆay COTS cho kiˆe´n tr´ uc phˆ du ng C´ac mo’ rˆo.ng gia’i thuˆa.t lu a cho.n n`ay du.o c xˆay du ng trˆen tiˆeu ch´ı: `an v`a u.a d˜ u liˆe.u cu’a c´ac th`anh phˆ du th` ´ `an Y tu o’ ng ch´ gi´a th`anh cu’a th`anh phˆ ung tˆoi ´ap du.ng gia’i thuˆa.t xˆay du ng gia’i thuˆa.t lu a cho.n l`a phu.o.ng ph´ap nh´anh cˆa.n Cˆa´u tr´ uc cu’a b`ai b´ao du.o c tr`ınh b`ay `e tiˆe´n tr`ınh xˆay nhu sau Mu.c tr`ınh b`ay vˆ ` ` `an COTS du ng phˆan mˆem du a th`anh phˆ Mu.c s˜e tr`ınh b`ay gia’i thuˆa.t COTSCon`e c´ac kha’ n˘ang mo’ figs v`a nh˜ u.ng d´anh gi´a vˆ rˆo.ng v`a tˆo´i u u thuˆa.t to´an Tiˆe´p theo, Mu.c `e xuˆa´t cho thuˆa.t to´an l`a c´ac mo’ rˆo.ng dˆ COTSConfigs Trong Mu.c l`a c´ac mo’ rˆo.ng thˆong tin d˘a.c ta’ COTS Doc`an u gi´a th`anh th`anh phˆ ument dˆe’ lu.u tr˜ Mu.c tr`ınh b`ay c´ac d´anh gi´a thu’ nghiˆe.m `e xuˆa´t, d˜a thu c hiˆe.n v´o.i c´ac gia’i thuˆa.t dˆ `an mˆ `em H`ınh Tiˆe´n tr`ınh xˆay du ng phˆ cuˆo´i c` ung l`a kˆe´t luˆa.n v`a hu ´o ng ph´at triˆe’n `an COTS du a trˆen c´ac th`anh phˆ ˆ´N TR`INH PHAT ´ TRIE ˆ’ N PH` ˆ N M`E ˆM TIE A ` ˆ ´ ` ˆ DU A TREN CAC THANH PHAN COTS `an mˆ `em hu.´o.ng th`anh phˆ `an du a trˆen c´ac th`anh phˆ `an Mˆo h`ınh tiˆe´n tr`ınh ph´at triˆe’n phˆ ’ COTS, mˆo ta H`ınh 1, du o c chia th`anh ba giai doa.n ([1, 5, 6]): Giai doa.n 1: Su’ du.ng c´ac cˆong cu mˆo h`ınh h´oa (v´ı du UML-RT cu’a bˆo cˆong cu Rational `an mˆ `em Mˆa˜u d˘a.c ta’ du.o c xˆay du ng v`a tr`ınh b`ay uc phˆ Rose) dˆe’ mˆo ta’ v`a thiˆe´t kˆe´ kiˆe´n tr´ [1, 5] y ph´ap UML - RT Giai doa.n 2: Su’ du.ng mˆo.t tiˆe´n tr`ınh tu dˆo.ng dˆe’ xuˆa´t c´ac thˆong tin t` u k´ ˜ th`anh c´ac mˆau d˘a.c ta’ XML `an u Giai doa.n 3: Tiˆe´n tr`ınh COTSTrader, thu c hiˆe.n t`ım kiˆe´m danh s´ach c´ac th`anh phˆ ´.ng cu’ ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH 155 viˆen kho ch´ u.a mˆa˜u XML Co so’ cu’a tiˆe´n tr`ınh n`ay l`a gia’i thuˆa.t COTSTrader Gia’i thuˆa.t d˜a du o c tr`ınh b`ay chi tiˆe´t [1] `an t` u Tiˆe´p theo tiˆe´n tr`ınh t`ım kiˆe´m l`a tiˆe´n tr`ınh COTSConfigs lu a cho.n tˆo’ ho p th`anh phˆ `an u `an mˆ `em yˆeu danh s´ach th`anh phˆ ´ ng cu’ viˆen dˆe’ ta.o c´ac cˆa´u h`ınh tho’a m˜an kiˆe´n tr´ uc phˆ `au Trong [1, 2, 3] c˜ cˆ ung tr`ınh b`ay chi tiˆe´t gia’i thuˆa.t COTSConfigs, ´ap du.ng tu tu o’ ng v´et ca.n ung d˜a du.o c tr`ınh c´ac tru.`o.ng ho p tho’a m˜an cˆa´u h`ınh Mˆo.t sˆo´ ca’i tiˆe´n cu’a gia’i thuˆa.t n`ay c˜ b`ay [5, 6] ung giai doa.n n`ay, tˆa´t ca’ c´ac cˆa´u h`ınh d˜a du.o c sinh, ch´ ung ta thu c Bu.´o.c cuˆo´i c` ´ ng du.ng ho`an chı’nh hiˆe.n bu ´o c d´ong g´oi c´ac cˆa´u h`ınh dˆe’ ta.o mˆo.t u ’ Tro.ng tˆam cua b`ai b´ao tˆa.p trung v`ao bu ´o c th´ u hai cu’a giai doa.n - tiˆe´n tr`ınh COTSConfigs `an lu a cho.n tˆo’ ho p th`anh phˆ ˆ’ HO ˆ T TOAN ´ COTSConfigs LU THUA A CHO N TO P ´ THANH ` ˆ N COTS CAC PH` A 3.1 Mˆ o ta’ b` to´ an `an u ´.ng viˆen l`a mˆo.t qu´a tr`ınh quan tro.ng Tiˆe´n tr`ınh sinh c´ac cˆa´u h`ınh t` u tˆa.p c´ac th`anh phˆ `an COTS Tiˆe´n tr`ınh n`ay s˜e lu a cho.n tˆa.p c´ac to`an bˆo qu´a tr`ınh t`ım kiˆe´m c´ac th`anh phˆ `an mˆ `em cˆ `an xˆay du ng Diˆ `eu kiˆe.n ph` `an ph` uc phˆ u ho p o’ dˆay th`anh phˆ u ho p nhˆa´t v´o i kiˆe´n tr´ `an cho tˆa.p di.ch vu m`a cˆa´u h`ınh d´ap u ´.ng du.o c pha’i kh´o.p l`a pha’i lu a cho.n c´ac th`anh phˆ `au cu’a kiˆe´n tr´ `an mˆ `em cˆ `an xˆay du ng uc phˆ v´o i tˆa.p di.ch vu yˆeu cˆ ’ `an COTS du.o c ph´at biˆe’u nhu sau ([1]): Cho mˆo.t B`ai to´an lu a cho.n tˆo ho p c´ac th`anh phˆ `an mˆ `em A C´o mˆo.t kho B ch´ `an u kiˆe´n tr´ uc phˆ u a to`an bˆo c´ac th`anh phˆ ´.ng viˆen COTS ph` u ho p `an pha’i sinh c´ac cˆa´u h`ınh S l`a tˆa.p ho p cu’a c´ac th`anh phˆ `an dˆe’ lu a cho.n t´ıch ho p v`ao A Cˆ u.c n˘ang m`a A yˆeu ´.ng c´ac di.ch vu./ch´ u ´ ng viˆen COTS c´o B, cho cˆa´u h`ınh S d´ap u `an d´ap u `eu kiˆe.n: `au Nhu vˆay cˆa´u h`ınh S cˆ ´.ng hai diˆ cˆ ˜ `an cu’a S pha’i tr` ’ ung v´o.i tˆa.p c´ac di.ch vu (i) Tˆa.p c´ac di.ch vu du o c hˆo tro bo i c´ac th`anh phˆ du o c hˆo˜ tro bo’ i A (t´ u c l`a khˆong c´o c´ac lˆo˜ hˆo’ng di.ch vu.) `an n`ao cu’a S cung cˆa´p c` (ii) Khˆong c´o hai th`anh phˆ ung mˆo.t di.ch vu chung (t´ u.c l`a khˆong c´o di.ch vu tr` ung) Sau dˆay l`a thuˆa.t to´an s˜e sinh c´ac cˆa´u h`ınh S ([1]) Gia’i thuˆ a.t COTSConfigs function COTSconfigs(i, Sol, S) // i size(CB(A)) kha’o s´at qua tˆa´t ca’ c´ac kha’ n˘ang c´o kho CB(A) `an u (ch´ u.a danh s´ach c´ac th`anh phˆ ´.ng cu’ viˆen) // Sol l`a cˆa´u h`ınh ta.m hiˆe.n th`o i dang du.o c xˆay du ng gia’i thuˆa.t // S ch´ u.a du ng tˆa.p ho p tˆa´t ca’ c´ac cˆa´u h`ınh c´o gi´a tri dˆo´i v´o.i kiˆe´n tr´ uc A if i size(CB(A)) then for j := to size(Ci.R) do//thu c hiˆe.n v´o.i tˆa´t ca’ c´ac di.ch vu C1 // thu’ gom di.ch vu Ci.Ri v`ao Sol if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri ∈ Sol : R? Sol := Sol ∪ {Ci.Ri} 10 if A.R ⊆ Sol.R then // Kiˆe’m tra xem Sol c´o l`a mˆo.t cˆa´u h`ınh khˆong? ´ ` ˆ´T THA ˘ NG, PHA ` HUYNH QUYE M THI QUYNH 156 S := S ∪ {Sol} // Nˆe´u Sol l`a mˆo.t cˆa´u h`ınh, n´o s˜e du.o c gom nh´om v`ao S ung 12 else // nhu.ng nˆe´u vˆa˜n c`on c´ac di.ch gˆo´i v`a di.ch vu tr` 13 configs(i, Sol, S) ; // t`ım Ci 14 endif 15 Sol := Sol − {Ci.Ri} 16 endif 17 endfor 18 configs(i + 1, Sol, S) // tiˆe´p tu.c CB(A) 19 endif 20 endfunction `eu C´ac kho’.i ta.o cu’a gia’i thuˆa.t l`a S =; Sol =; configs (1; Sol; S) Mˆo˜i cˆa´u h`ınh (d`ong 9) dˆ `an c´ac di.ch vu Cj.Rj c`on chu.a ´ ng cu’ viˆen, kˆe´t ho p dˆ du o c sinh b˘`a ng c´ach thu’ tˆa´t ca’ c´ac u u.ng di.ch vu m`a A d˜a c´o rˆo`i (d`ong v`a d`ong 10) Khi gia’i thuˆa.t ch´ u.a A, v`a bo’ di nh˜ `an thiˆe´t kˆe´t th´ uc, biˆe´n S s˜e ch´ u a tˆa´t ca’ c´ac cˆa´u h`ınh cˆ 11 `e gia’i thuˆ 3.2 D´ anh gi´ a nhˆ a.n x´ et vˆ a.t Thuˆa.t to´an ´ap du.ng tu tu.o’.ng gia’i thuˆa.t quay lui dˆe’ thu c hiˆe.n qu´a tr`ınh t`ım kiˆe´m lu a u tˆa.p ho p c´ac u ´.ng cu’ viˆen kho B : CB(A) = cho.n c´ac cˆa´u h`ınh ho p lˆe N´o s˜e sinh t` `an mˆ `em cˆ `an xˆay du ng A, mˆo.t tˆa.p S c´ac cˆa´u h`ınh ho p lˆe (d`ong {C1 , , Ck}, v`a t` u kiˆe´n tr´ uc phˆ 11) Khˆong c´o tru `o ng ho p c´ac cˆa´u h`ınh S c`on tˆo`n ta.i c´o lˆo˜ hˆo’ng di.ch vu (mˆo.t di.ch vu n`ao d´o khˆong du.o c d´ap u ´.ng) hay c´ac di.ch vu chˆo`ng ch´eo Do d´o, gia’i thuˆa.t s˜e chı’ sinh nh˜ u.ng cˆa´u h`ınh ho p lˆe Tuy nhiˆen, gia’i thuˆa.t n`ay c´o nhu o c diˆe’m l`a mˆo.t gia’i thuˆa.t t`ım kiˆe´m v´et `an u.c ta.p l`a O(2n ), d´o n l`a sˆo´ lu.o ng c´ac di.ch vu m`a tˆa´t ca’ c´ac th`anh phˆ ca.n, v´o.i dˆo ph´ ’ ` ´ ng viˆen l´o n, th`ı s˜e dˆa˜n ´ ng Khi d´o v´o i mˆo.t kho c´ac th`anh phˆan u CB(A) c´o thˆe d´ap u t´o i b` ung nˆo’ tˆo’ ho p Qu´a tr`ınh t`ım kiˆe´m nhu vˆa.y s˜e khˆong kha’ thi ’ I TIE ’ I THUA ˆ XUA ˆ´T CA ˆ´N GIA ˆ T COTSCONFIGS ´ D`E CAC ˆ’ HO.P CAC ´ THANH ` ˆ N COTS A CHO N T O PH` A LU `e xuˆa´t thay b˘`a ng gia’i thuˆa.t ung ta c´o thˆe’ dˆ Dˆe’ gia’m dˆo ph´ u.c ta.p cu’a thuˆa.t to´an trˆen, ch´ ’ ’ nh´anh cˆa.n (brand and bound) Tu tu o ng cua thuˆa.t to´an nh´anh cˆa.n l`a nh`o v`ao mˆo.t sˆo´ c´ac thˆong tin d˜a c´o dˆe’ nh˘`a m loa.i bo’ b´o.t mˆo.t sˆo´ c´ac phu.o.ng ´an ch˘a´c ch˘a´n khˆong pha’i l`a tˆo´i u.u, `an thiˆe´t trˆen cˆay t`ım kiˆe´m Vˆa.y mˆo.t sˆo´ tiˆeu ch´ı c´o ut khˆong cˆ t´ u.c l`a c´o thˆe’ lu.o c b´o.t mˆo.t sˆo´ n´ thˆe’ du a v`ao dˆe’ t˘ang hiˆe.u qua’ t`ım kiˆe´m nhu.: `an v´o.i du th` - Lu a cho.n th`anh phˆ u.a d˜ u liˆe.u l`a tˆo´i thiˆe’u `an v´o.i tˆo’ng gi´a th`anh l`a tˆo´i thiˆe’u - Lu a cho.n th`anh phˆ `an v´ 4.1 Ca’i tiˆ e´n gia’i thuˆ a.t lu a cho.n th` anh phˆ o.i du th` u.a d˜ u liˆ e.u tˆ o´i thiˆ e’u `an mˆ `em yˆeu cˆ `au, ch´ Khi xˆay du ng c´ac cˆa´u h`ınh ph` u ho p v´o.i kiˆe´n tr´ uc phˆ ung ta c´o thˆe’ ` ´ ´ ´ thu du o c nhiˆeu kˆet qua’ cˆa u h`ınh ([1, 2, 5, 6]) Trong d´o, s˜e c´o nh˜ u ng cˆa u h`ınh l`a tˆo’ ho p c´ac `an mˆ `em d˜a yˆeu cˆ `au, c`on c´o nh˜ `an m`a ngo`ai nh˜ uc phˆ u.ng di.ch th`anh phˆ u ng di.ch vu m`a kiˆe´n tr´ `an d` vu du th` u.c ta.p dˆa˜n t´o.i u.a khˆong cˆ ung Nˆe´u su’ du.ng c´ac cˆa´u h`ınh n`ay s˜e l`am t˘ang dˆo ph´ `an cu’a hˆe thˆo´ng phˆ `an mˆ `em du o c xˆay du ng Dˆay l`a nh˜ u.ng cˆa´u du th` u a d˜ u liˆe.u v`a th`anh phˆ ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH 157 `an pha’i xˆay du ng gia’i thuˆa.t t`ım kiˆe´m, lu a cho.n h`ınh khˆong du.o c lu a cho.n V`ı vˆa.y ch´ ung ta cˆ `an thiˆe´t n`ay COTSConfigs cho loa.i bo’ nh˜ u ng cˆa´u h`ınh khˆong cˆ `an v´o.i du th` u.a d˜ u liˆe.u l`a tˆo´i thiˆe’u Gia’i thuˆa.t nh´anh cˆa.n t`ım kiˆe´m lu a cho.n c´ac th`anh phˆ `e xuˆa´t nhu sau du.o c dˆ Gia’i thuˆ a.t COTSConfigs ca’i tiˆ e´n v´ o.i du th` u.a d˜ u liˆ e.u tˆ o´i thiˆ e’u total = numOfInterfaces(CB(A)) //tˆo’ng sˆo´ di.ch vu cu’a mˆo.t cˆa´u h`ınh function brandAndBound(i, Sol, S) //gia’i thuˆa.t nh´anh cˆa.n if i size(CB(A)) then for j := to size(Ci.R) //thu c hiˆe.n v´o.i tˆa´t ca’ c´ac di.ch vu C1 // thu’ gom di.ch vu Ci.Ri v`ao Sol if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri ∈ Sol : R? Sol := Sol ∪ {Ci.Ri} if A.R ⊆ Sol.R then // if numOfInterface(S) < total then //sˆo´ di.ch vu cu’a cˆa´u h`ınh n`ay c`on ´ıt ho.n ca’ ngu.˜o.ng(mu.c tiˆeu) nˆen `e sˆo´ di.ch vu cu’a mˆo.t cˆa´u h`ınh //dˆay l`a mˆo.t gi´a tri cu’a ngu.˜o.ng vˆ m´o.i total := numberOfInterface(S ) // cˆa.p nhˆa.t ngu.˜o.ng m´o.i 10 S := // x´oa c´ac kˆe´t qua’ c˜ u 11 S := S ∪ {Sol} // du a Sol v`ao tˆa.p kˆe´t qua’ S 12 else if numberOfInterface(S ) = total then `e sˆo´ di.ch vu //tho’a m˜an ngu.˜o.ng vˆ 13 S := S ∪ {Sol} // du.a Sol v`ao tˆa.p kˆe´t qua’ S 14 endif 15 else // nhu.ng nˆe´u vˆa˜n c`on c´ac di.ch vu gˆo´i ho˘a.c di.ch vu tr` ung 16 configs(i, Sol, S) // t`ım 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 `an u Ta c´o, mˆo.t cˆa´u h`ınh tˆo´i da s˜e l`a tˆa.p ho p cu’a to`an bˆo c´ac c´ac th`anh phˆ ´.ng viˆen Nhu vˆa.y, t´ u.c l`a sˆo´ c´ac di.ch vu tˆo´i da cu’a mˆo.t cˆa´u h`ınh s˜e l`a tˆo’ng cu’a c´ac di.ch vu du.o c cung cˆa´p `an u ´.ng viˆen Vˆa.y, tru.´o.c tiˆen, ta go.i biˆe´n total l`a biˆe´n lu.u tˆo’ng sˆo´ di.ch vu bo’ i c´ac th`anh phˆ cu’a mˆo.t cˆa´u h`ınh (d`ong 1) Kho’.i ta.o biˆe´n n`ay b˘`a ng tˆo’ng sˆo´ di.ch vu cu’a to`an bˆo c´ac th`anh `an u `e tˆo’ng sˆo´ d˜ phˆ ´.ng viˆen Dˆay ch´ınh l`a ngu.˜o.ng vˆ u liˆe.u cu’a mˆo.t cˆa´u h`ınh ´ ` ˆ´T THA ˘ NG, PHA ` HUYNH QUYE M THI QUYNH 158 `an lu.o t thu’ c´ac cˆa´u h`ınh Tu.o.ng tu nhu gia’i thuˆa.t chuˆa’n COTSConfigs ch´ ung ta c˜ ung lˆ ung, (d`ong v`a 6) Ch´ ung ta thˆem v`ao kiˆe’m tra xem Sol c´o l`a mˆo.t cˆa´u h`ınh khˆong v`a nˆe´u d´ ’ ’ ’ ´ ´ ` kiˆe m tra cˆa u h`ınh n`ay c´o tˆoi thiˆe u vˆe d˜ u liˆe.u khˆong (d`ong 9) Gia’ su’ ta.i mˆo.t th`o i diˆe m `an n di.ch vu., m`a l´ qu´a tr`ınh t`ım kiˆe´m ta c´o, kiˆe´n tr´ uc A cˆ uc n`ay Sol d˜a tho’a m˜an du.o c m `an n − m di.ch vu cu’a A n˜ di.ch vu cu’a A Nhu vˆa.y, c`on cˆ u.a th`ı Sol tho’a m˜an l`a mˆo.t cˆa´u h`ınh `eu kiˆe.n `an kh´ac Nhu vˆa.y, diˆ Tˆo`i nhˆa´t, l`a m − n di.ch vu n`ay n˘`a m trˆen n − m th`anh phˆ ’ ’ `an nhˆan dˆe tiˆe´p tu.c t`ım kiˆe´m l`a tˆo ng: (sˆo´ di.ch vu hiˆe.n c´o cu’a Sol cˆo.ng v´o i (n − m) th`anh phˆ `an) pha’i nho’ ho.n ngu.˜o.ng tˆo’ng sˆo´ di.ch vu v´o.i sˆo´ di.ch vu nho’ nhˆa´t c´o thˆe’ cu’a mˆo.t th`anh phˆ Nˆe´u tho’a m˜an th`ı tiˆe´p tu.c t`ım kiˆe´m, c`on khˆong th`ı d` u.ng qu´a tr`ınh t`ım kiˆe´m `an v´ 4.2 Ca’i tiˆ e´n gia’i thuˆ a.t lu a cho.n th` anh phˆ o.i tˆ o’ng gi´ a th` anh tˆ o´i thiˆ e’u `an COTS l`a c´ac th`anh phˆ `an du.o c dem thu.o.ng ma.i V`ı Nhu ta d˜a biˆe´t, c´ac th`anh phˆ `an mˆ `em su’ du.ng c´ac th`anh phˆ `an COTS, ngo`ai yˆe´u tˆo´ k˜ı thuˆa.t vˆa.y, xˆay du ng hˆe thˆo´ng phˆ `an mˆ `em, th`ı yˆe´u tˆo´ vˆ `e m˘a.t gi´a th`anh cu’a COTS c˜ uc phˆ ung l`a l`a pha’i d´ap u ´ ng du o c kiˆe´n tr´ ´ ´ ´ ` ` ’ mˆo.t yˆeu tˆo rˆa t quan tro.ng Thˆong tin vˆe gi´a th`anh cua th`anh phˆan COTS du o c di k`em `e th`anh phˆ `an, COTS Document V`ı vˆa.y, thuˆa.t to´an sau dˆay du.o c dˆ `e xuˆa´t t`ai liˆe.u d˘a.c ta’ vˆ ’ ’ ` ´ ´ ´ ’ ’ ’ u ng cˆa u h`ınh ph` u ho p dˆo ng th`o i phai thoa m˜an dˆe cai tiˆen thuˆa.t to´an t`ım kiˆem dˆe du a nh˜ mˆo.t gi´a th`anh cho tru.´o.c a th` anh tˆ o´i thiˆ e’u Gia’i thuˆ a.t COTSConfigs ca’i tiˆ e´n v´ o.i gi´ 10 11 12 13 14 15 16 17 18 19 20 21 total = numOfInterfaces(CB(A)) function brandAndBound(i, Sol, S) // gia’i thuˆa.t nh´anh cˆa.n if i size(CB(A)) then for j := to size(Ci.R) // thu c hiˆe.n v´o.i tˆa´t ca’ c´ac di.ch vu // thu’ gom di.ch vu Ci.Ri v`ao Sol if {Ci.Ri} ∩ Sol.R = ∅ then // Ci.Ri ∈ Sol : R? Sol := Sol ∪ {Ci.Ri} if A.R ⊆ Sol.R then if totalCost(S) maxCost then S := S ∪ {Sol} // du.a Sol v`ao tˆa.p kˆe´t qua’ S endif else // nhu.ng nˆe´u vˆa˜n c`on c´ac di.ch gˆo´i v`a di.ch vu tr u `ng configs(i, Sol, S) // t`ım Ci endif Sol := Sol − {Ci.Ri} endif endfor if (totalCost(S) + (n − m)× minOfCost(CB(A)) maxCost then // nˆe´u tho’a m˜an th`ı tiˆe´p tu.c t`ım kiˆe´m, c`on khˆong th`ı thˆoi brandAndBound(i + 1, Sol, S) endif endif endfunction ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH 159 `au nhˆa.p v`ao ngu.˜o.ng gi´a cu’a mˆo.t cˆa´u h`ınh Thuˆa.t to´an s˜e Tru.´o.c tiˆen, thuˆa.t to´an yˆeu cˆ `an s˜e thu c hiˆe.n t`ım kiˆe´m tˆa´t ca’ c´ac cˆa´u h`ınh tho’a m˜an m`a tˆo’ng gi´a th`anh cu’a c´ac th`anh phˆ nho’ ho n ngu ˜o ng gi´a cho tru ´o c maxCost := kho’.i ta.o mˆo.t gi´a tri ngu.˜o.ng gi´a `an lu.o t thu’ c´ac cˆa´u h`ınh Tu.o.ng tu nhu gia’i thuˆa.t chuˆa’n COTSConfigs ch´ ung ta c˜ ung lˆ (d`ong v`a 6) Ch´ ung ta thˆem v`ao kiˆe’m tra xem Sol c´o l`a mˆo.t cˆa´u h`ınh khˆong v`a nˆe´u Sol d˜a `e gi´a hay khˆong l`a mˆo.t cˆa´u h`ınh kiˆe’m tra cˆa´u h`ınh n`ay c´o tho’a m˜an vˆ ’ ´ `an n di.ch vu., m`a ’ ’ uc A cˆ Gia su ta.i mˆo.t th`o i diˆe m qu´a tr`ınh t`ım kiˆem ta c´o, kiˆe´n tr´ `an n − m di.ch vu cu’a A n˜ u.a l´ uc n`ay Sol d˜a tho’a m˜an du o c m di.ch vu cu’a A Nhu vˆa.y, c`on cˆ th`ı Sol tho’a m˜an l`a mˆo.t cˆa´u h`ınh Tˆo`i nhˆa´t, l`a n − m di.ch vu n`ay n˘`a m trˆen m − n th`anh `an kh´ac Nhu vˆa.y, diˆ `eu kiˆe.n dˆe’ tiˆe´p tu.c t`ım kiˆe´m l`a tˆo’ng: (gi´a th`anh hiˆe.n ta.i cu’a phˆ `an nhˆan v´o.i gi´a nho’ nhˆa´t c´o thˆe’ cu’a mˆo.t th`anh phˆ `an) pha’i Sol cˆo.ng v´o i (m − n) th`anh phˆ nho’ ho n ngu ˜o ng gi´a cho tru ´o c o’ trˆen `e hai gia’i thuˆ 4.3 Nhˆ a.n x´ et vˆ a.t ca’i tiˆ e´n Thuˆa.t to´an ´ap du.ng tu tu.o’.ng gia’i thuˆa.t nh´anh cˆa.n dˆe’ thu c hiˆe.n qu´a tr`ınh t`ım kiˆe´m lu a cho.n cˆa´u h`ınh ho p lˆe v`a tho’a m˜an tiˆeu ch´ı du th` u.a d˜ u liˆe.u tˆo´i thiˆe’u v`a tˆo’ng gi´a th`anh tˆo´i `an duyˆe.t ut cˆ thiˆe’u Do d´o, so s´anh v´o.i gia’i thuˆa.t COSTConfigs cˆo’ diˆe’n, sˆo´ lu.o ng n´ `eu V`ı ch´ ung ta kiˆe’m tra ngu.˜o.ng m`a thˆa´y khˆong tho’a hai gia’i thuˆa.t s˜e gia’m di rˆa´t nhiˆ u.a Tuy nhiˆen, tru.`o.ng ho p tˆo`i m˜an th`ı thuˆa.t to´an s˜e khˆong tiˆe´p tu.c di theo nh´anh d´o n˜ u.c ta.p t´ınh to´an cu’a hai gia’i thuˆa.t d˜a ca’i tiˆe´n n`ay vˆa˜n l`a O(2n ) nhˆa´t th`ı dˆo ph´ `e tˆo´i thiˆe’u h´oa du Ngo`ai hai thuˆa.t to´an d˜a ca’i tiˆe´n, t´ac gia’ c`on bˆo’ sung thˆem c´ac tiˆeu ch´ı vˆ u liˆe.u v`a tˆo’ng gi´a th`anh V`ı vˆa.y, cˆa´u h`ınh t`ım du.o c sau thu c hiˆe.n hai gia’i thuˆa.t th` u.a d˜ n`ay l`a nhˆa´t v`a tˆo´i u.u nhˆa´t theo tiˆeu ch´ı cho tru.´o.c Dˆay l`a mˆo.t kˆe´t qua’ kh´a quan tro.ng kˆe´t qua’ cu’a gia’i thuˆa.t COSTConfigs cˆo’ diˆe’n cho biˆe´t tˆa´t ca’ c´ac cˆa´u h`ınh ho p lˆe ˜ U TAI ’ I TIE ˆ´N MA ˆ ` LIE ˆ U COTSDocument, CA ’ THANH ˘ C TA ` ˆ N COTS DA PH` A `au tiˆen l`a `an COTS th`ı viˆe.c dˆ Dˆe’ phu.c vu cho mu.c d´ıch t`ım kiˆe´m v`a lu a cho.n th`anh phˆ pha’i di.nh ngh˜ıa mˆo.t mˆa˜u XML d˘a.c ta’ COTSDocument chuˆa’n cho kho d˜ u liˆe.u COTS XML ’ Dˆe thu c hiˆe.n d˘ang k´ y c´ac di.ch vu v`ao kho d˜ u liˆe.u COTS XML, c´ac nh`a cung cˆa´p (Exporter) `an mˆo ta’ thˆong tin vˆ `e c´ac di.ch vu cu’a m`ınh theo mˆa˜u d˘a.c ta’ n`ay C´ac thˆong tin ch´ınh cˆ ` ˜ mˆo.t mˆau d˘a.c ta’ gˆo m c´o ([1]): `an theBuffer // Di.nh ngh˜ıa IDL cu’a giao diˆe.n th`anh phˆ module theBuffer { // giao diˆe.n cung cˆa´p interface Buffer { void write(in long x) long read() } } `au // giao diˆe.n yˆeu cˆ interface out { ´ ` ˆ´T THA ˘ NG, PHA ` HUYNH QUYE M THI QUYNH 160 oneway void print(in long x) } } ?xml-stylesheet type=“text/xsl” href=“http://www.cotstrader.com/ COTS-XMLStyle.xsl”? COTScomponent name=“theBuffer” xmlns=“http://www.cotstrader.com/COTS-XMLSchema.xsd” xmlns:types=“http://www.w3.org/2000/10/XMLSchema” functional /functional properties /properties packaging /packaging marketing /marketing /COTScomponent `an dˆ `au tiˆen mˆo ta’ tˆa´t ca’ • C´ac mˆo ta’ mang t´ınh ch´ u.c n˘ang (Functional description) ([1]): Phˆ `an, bao gˆo`m tˆa.p c´ac giao diˆe.n cung cˆa´p c´ac kh´ıa ca.nh mang t´ınh chˆa´t t´ınh to´an cu’a th`anh phˆ `au Phˆ `an n`ay c´o phˆ `an ch´ınh du.o c go.i l`a providedInterfaces, requiredInterfaces, v`a v`a yˆeu cˆ serviceAccessProtocols ([1, 5, 6]) • C´ac mˆo ta’ khˆong mang t´ınh ch´ u.c n˘ang (Non-functional description): su’ du.ng c´ac kiˆe’u W3C cho mˆo ta’ c´ac loa i thˆong tin n`ay `an trˆen, c´ac thˆong tin `e d´ong g´oi/kiˆe´n tr´ uc: Ch´ u y´ r˘`a ng, c˜ ung giˆo´ng nhu phˆ • C´ac r`ang buˆo.c vˆ ’ ’ `e g´oi v`a ph´at triˆe n c´ac th`anh phˆ `an c´o thˆe du o c mˆo ta’ tru c tiˆe´p theo mˆo.t k´ vˆ y ph´ap d˘a.c biˆe.t v`a miˆeu ta’ the’ description cu’a mˆa˜u XML, ho˘a.c du.o c lu.u o’ ngo`ai v`a su’ du.ng tham chiˆe´u href dˆe´n n´o `e xuˆ `an bˆ Dˆ a´t th` anh phˆ o’ sung COTS DOCUMENT `e marketing: C´ac loa.i thˆong tin diˆe’n h`ınh o’ dˆay cˆ `an mˆo ta’ bao gˆo`m: ba’n C´ac thˆong tin vˆ `en, ch´ u y´ thˆong tin the’ expirydate v`a the’ quyˆ u ng nhˆa.n, thˆong tin nh`a cung cˆa´p Ch´ ’ cost l`a rˆa´t quan tro.ng, th´ uc dˆa y c´ac di.ch vu d˜a c˜ u du.o c nˆang cˆa´p nhanh ho.n v`a t˘ang t´ınh ca.nh tranh mˆoi tru `o ng mo’ Thˆong tin lu u hai the’ n`ay du.o c c´ac trader t`ım kiˆe´m `an tˆo´i u.u theo gi´a th`anh v`a lu a cho.n th`anh phˆ marketing license href=“http://www.cotstrader.com/samples/vendors/vendor3/theBuffer /license.html”/ certificate href=“http://www.cotstrader.com/samples/vendors/vendor3/theBuffer /lcard.pgp”/ vendor companyname Vendor Corp /companyname webpage http://www.cotstrader.com/samples/vendors/vendor3 /webpage mailto sales@cotstrader.vendor3.com /mailto address zip 04120 /zip street Ctra Sacramento s/n /street city Almeria /city country Spain /country ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH 161 street Campus de Teatinos /street city Malaga /city country Spain /country /address /vendor cost 500 /cost currency USD /currency /marketing u.ng thˆong tin d˘a.c ta’ trˆen du.o c coi l`a t`ai liˆe.u chuˆa’n m`a c´ac nh`a cung cˆa´p Nhu vˆa.y, nh˜ u d´o, c´ac trader m´o.i c´o co chˆe´ t`ım kiˆe´m v`a lu a cho.n th´ıch ho p d` ung d˘a.c ta’ c´ac di.ch vu T` `an c˜ ung c´o thˆe’ du.o c d´anh gi´a thˆong qua t`ai liˆe.u d˘a.c ta’ Ch´ u c n˘ang v`a gi´a th`anh cu’a th`anh phˆ n`ay T´om la.i, thˆong tin mˆa˜u t`ai liˆe.u d˘a.c ta’ XML COTSDocument du.o c thˆe’ hiˆe.n qua H`ınh `an H`ınh C´ac thˆong tin c´o mˆa˜u d˘a.c ta’ th`anh phˆ ˆ N CAC ´ THUA ˆ T TOAN ´ ˆ P TR`INH THU.C HIE LA ˆ M ´ ´ THU’ NGHIE ` DANH GIA VA `an mˆ `em thu’ nghiˆ 6.1 Xˆ ay du ng phˆ e.m Cˆong cu lu a cho.n: Visual C#, NET Dˆay l`a mˆoi tru.`o.ng, ngˆon ng˜ u tiˆen tiˆe´n hiˆe.n Diˆe’m ma.nh cu’a mˆoi tru.`o.ng n`ay cho ph´ep ch´ ung ta dˆ˜e d`ang ta.o c´ac u ´.ng du.ng nhanh trˆen `eu h`anh Windows, dˆ˜e d`ang ta.o giao diˆe.n mˆo.t c´ach thˆan thiˆe.n Diˆ `eu d˘a.c biˆe.t quan `en hˆe diˆ nˆ ˜ tro.ng, l`a ngˆon ng˜ u n`ay hˆo tro nh˜ u ng thu viˆe.n xu’ l´ y c´ac v˘an ba’n XML rˆa´t tˆo´t Dˆe’ phu.c vu ung KS Nguyˆ˜en Thu Thuy’ v`a KS thu’ nghiˆe.m c´ac gia’i thuˆa.t, hˆe thˆo´ng d˜a du.o c xˆay du ng c` Nguyˆ˜en Lˆe Minh, Khoa CNTT, Tru `o ng DHBK H`a Nˆo.i bao gˆo`m c´ac l´o.p co ba’n l`a: Interface, InterfaceSet, COTSComponent, Configure, Architecture, Repository Dˆay l`a nh˜ u.ng l´o.p mˆo ta’ `e tˆa.p giao diˆe.n cu’a mˆo.t th`anh c´ac kh´ai niˆe.m co ba’n phu.c vu cho gia’i thuˆa.t nhu : kh´ai niˆe.m vˆ ` ´ ` `em Tiˆe´p theo, hˆe thˆo´ng xˆay ` ´ uc phˆan mˆ phˆan, cˆa u h`ınh, kho ch´ u a c´ac th`anh phˆan, kiˆen tr´ du ng c´ac l´o p ConfigGenerator, StandardConfigGenerator, MinCostConfigGenerator, MinDatu.u tu.o ng mˆo ta’ qu´a tr`ınh t`ım aConfigGenerator Trong d´o, l´o.p ConfigGenerator l`a mˆo.t l´o.p tr` u.a t` u ConfigGenerator kiˆe´m, sinh c´ac cˆa´u h`ınh L´o p StandardConfigGenerator du o c kˆe´ th` `e cˆa.p o’ trˆen Tu.o.ng s˜e l˘a´p d˘a.t cu thˆe’ gia’i thuˆa.t sinh cˆa´u h`ınh, dˆay l`a gia’i thuˆa.t v´et ca.n d˜a dˆ tu MinCostConfigGenerator v`a MinDataConfigGenerator c˜ ung kˆe´ th` u a t` u ConfigGenerator s˜e l˘a´p d˘a.t c´ac thuˆa.t to´an lu a cho.n cˆa´u h`ınh tˆo´i u.u theo gi´a th`anh, v`a lu a cho.n cˆa´u h`ınh gia’m u.a d˜ u liˆe.u thiˆe’u du th` e.m c´ ac thuˆ a.t to´ an 6.2 Thu’ nghiˆ 162 ´ ` ˆ´T THA ˘ NG, PHA ` HUYNH QUYE M THI QUYNH `an mˆ `em thu’ nghiˆe.m c´ac gia’i Du a trˆen thu viˆe.n d˜a ph´at triˆe’n ta xˆay du ng chu.o.ng tr`ınh phˆ `e u.a d˜ u liˆe.u vˆ thuˆa.t d˜a tr`ınh b`ay Chu o ng tr`ınh cho ph´ep na.p v`ao c´ac tˆe.p XML, mˆo.t tˆe.p ch´ ` ` ´ ` ` ` ´ ng viˆen, v`a mˆo.t tˆe.p mˆo ta’ vˆe kiˆen tr´ uc phˆan mˆem cˆan xˆay du ng kho ch´ u a c´ac th`anh phˆan u Thu c nghiˆe.m c´ac thuˆa.t to´an d˜a du.o c tiˆe´n h`anh trˆen hai tˆe.p XML: `e kho ch´ `an u - GTSCandidates.xml: Tˆe.p ch´ u.a d˜ u liˆe.u vˆ u.a c´ac th`anh phˆ ´.ng viˆen `e kiˆe´n tr´ `an mˆ `em cˆ `an xˆay du ng u liˆe.u vˆ uc phˆ - GTSArchitecture.xml: Tˆe.p ch´ u a d˜ `an xˆay du ng v`a c´ac th`anh phˆ `an u `an u ´.ng viˆen C´ac tˆa.p XML mˆo ta’ c´ac th`anh phˆ ´.ng viˆen cˆ c´o kho du.o c lˆa´y t` u b`ai to´an diˆe’n h`ınh ([1, 2, 3]): Thiˆe´t kˆe´ di.ch vu chuyˆe’n dˆo’i khuˆon da.ng c´ac a’nh khˆong gian, c´o tˆen go.i l`a GTS (Geographic Translator Service) Nˆe´u t`ım kiˆe´m `au th`ı sˆo´ lu.o ng n´ theo thuˆa.t to´an v´et ca.n ban dˆ ut trˆen cˆay t`ım kiˆe´m pha’i duyˆe.t qua l`a 958 `e n´ ut, v`a kˆe´t qua’ thu du o c l`a 24 cˆa´u h`ınh tho’a m˜an Nˆe´u t`ım kiˆe´m theo gia’i thuˆa.t tˆo´i u.u vˆ ´ ´ ung nhˆa.p v`ao gi´a th`anh l`a 2200 USD th`ı s˜e chı’ cho mˆo.t kˆet qua’ cˆa u gi´a th`anh Khi ngu `o i d` `an duyˆe.t qua l`a 855 Nˆe´u t`ım kiˆe´m theo gia’i thuˆa.t tˆo´i u.u vˆ `e d˜ h`ınh tho’a m˜an, v`a sˆo´ n´ ut cˆ u `e khˆong du th` u.a c´ac di.ch vu Kˆe´t qua’ thu du.o c chı’ l`a mˆo.t cˆa´u h`ınh liˆe.u, t´ u.c tˆo´i u.u vˆ `an mˆ `em u.a d´ uc phˆ nhˆa´t, v´o i sˆo´ di.ch vu tˆo’ng cˆo.ng chı’ l`a 7, v` ung dˆo´i v´o.i sˆo´ di.ch vu m`a kiˆe´n tr´ `au Kˆe´t qua’ so s´anh thu’ nghiˆe.m c´ac gia’i thuˆa.t du o c tˆo’ng ho p Ba’ng yˆeu cˆ Ba’ng Kˆe´t qua’ thu’ nghiˆe.m v´o.i c´ac thuˆa.t to´an (*) (**) (***) `an duyˆe.t Sˆo´ n´ ut cˆ 958 823 855 ´ ´ Sˆo cˆa u h`ınh thu du o c 24 1 (*) Gia’i thuˆa.t COTSConfigs chuˆa’n `an COTS tˆo´i u.u theo du th` (**) Gia’i thuˆa.t t`ım kiˆe´m th`anh phˆ u.a d˜ u liˆe.u `an COTS tˆo´i u u theo gi´a th`anh (***) Gia’i thuˆa.t t`ım kiˆe´m th`anh phˆ anh gi´ a v` a kˆ e´t luˆ a.n 6.3 D´ Kˆe´t qua’ thu’ nghiˆe.m cho thˆa´y ´ap du.ng tu tu.o’.ng nh´anh cˆa.n thuˆa.t to´an lu a cho.n v`a t`ım kiˆe´m c´ac cˆa´u h`ınh ho p lˆe cho gia’i thuˆa.t COTSConfigs d˜a du.a la.i hiˆe.u qua’ tˆo´t Sˆo´ lu.o ng `an duyˆe.t d˜a gia’m di l`a ta khˆong cˆ `an t`ım kiˆe´m to`an bˆo c´ac tˆo’ ho p cˆa´u h`ınh c´ac n´ ut cˆ `an lu a cho.n nh´anh ph` u ho p dˆe’ du.a kˆe´t qua’ t`ım kiˆe´m cuˆo´i c` ung b`ai to´an duyˆe.t cˆay m`a chı’ cˆ `an lu a cho.n - tˆo´i u.u theo du th` u.a Viˆe.c du a v`ao c´ac tiˆeu ch´ı t`ım kiˆe´m cho c´ac cˆa´u h`ınh cˆ `an mˆ `em du a trˆen c´ac d˜ u liˆe.u v`a tˆo´i u.u theo gi´a th`anh l`am cho phu.o.ng ph´ap xˆay du ng phˆ `an COTS tro’ nˆen kha’ thi ho n thu c tˆe´ Trong b`ai b´ao d˜a tr`ınh b`ay c´ac gia’i th`anh phˆ `an COTS, ph´at triˆe’n gia’i ph´ap nˆang cao hiˆe.u qua’ tiˆe´n tr`ınh t`ım kiˆe´m v`a lu a cho.n th`anh phˆ `an COTS tˆo´i u u theo hu ´o ng gia’m thiˆe’u du th` u.a d˜ u liˆe.u thuˆa.t t`ım kiˆe´m v`a lu a cho.n th`anh phˆ `an COTS v`a thu’ nghiˆe.m gia’i thuˆa.t v`ao hˆe thˆo´ng GTS (Geographic v`a gi´a th`anh cu’a th`anh phˆ Translator Service) B`ai b´ao d˜a tr`ınh b`ay d´anh gi´a thu’ nghiˆe.m c´ac gia’i thuˆa.t t`ım kiˆe´m, lu a cho.n c´ac th`anh `e quan tro.ng ph´at triˆe’n phˆ `an mˆ `em `an phˆ `an mˆ `em theo c´ac tiˆeu ch´ı Dˆay l`a mˆo.t vˆa´n dˆ phˆ `an cho ph´ep lu a cho.n th`anh phˆ `an ph` `an xˆay hu ´o ng th`anh phˆ u ho p nhˆa´t v´o i d˘a.c ta’ kiˆe´n tr´ uc cˆ du ng ung d˘a´n cu’a c´ac d˘a.c ta’ Mˆo.t sˆo´ hu.´o.ng ph´at triˆe’n cu’a b`ai to´an n`ay nhu kiˆe’m tra t´ınh d´ `an theo c´ac d˘a.c ta’ XML mˆo.t c´ach tu dˆo.ng, mo’ rˆo.ng tiˆeu ch´ı lu a cho.n c´ac th`anh th`anh phˆ `an phˆ `an mˆ `em du a trˆen d´anh gi´a c´ac tu.o.ng t´ac cu’a n´o v´o.i c´ac th`anh phˆ `an d˜a c´o s˘a˜n phˆ ´ GIA’I THUA ˆ T T`IM KIE ˆ´M VA ` LU ` ˆ N COTS TO ˆ´I U.U CAC PH`A A CHO N THANH 163 kiˆe´n tr´ uc, v.v Hiˆe.n ta.i ch´ ung tˆoi dang ph´at triˆe’n c´ac nghiˆen c´ u.u theo c´ac di.nh hu.´o.ng n`ay ’O ` LIE ˆ U THAM KHA TAI [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 software architecture description languages, IEEE Transactions on Software Engineering (3) (2000) 70–93 `an - tiˆe´n `an mˆ `em hu.´o.ng th`anh phˆ [5] Hu` ynh Quyˆe´t Th˘a´ng, Phan Thˆe´ Da.i, Ph´at triˆe’n phˆ `an mˆ `em ph´ `en th`anh phˆ `an COTS, Ky’ yˆe´u u c ta.p du a nˆ tr`ınh tu dˆo.ng h´oa xˆay du ng phˆ ’ ´ ` at triˆe n v` a ´u ng du.ng Cˆ ong nghˆe thˆ ong tin Hˆ o.i tha’o khoa ho.c quˆ oc gia vˆe Nghiˆen c´u u ph´ `e n thˆ `an th´u II, H`a Nˆo.i 24-25/9/2004 (165–174) v` a truyˆ ong ICT.RDA lˆ `an - lu a `an mˆ `em hu.´o.ng th`anh phˆ [6] Hu` ynh Quyˆe´t Th˘a´ng, Dˆo˜ Tuˆa´n D˜ ung, Ph´at triˆe’n phˆ `an phˆ `an mˆ `em hˆo˜ tro da giao diˆe.n, Ky’ yˆe´u Hˆ cho.n v`a d´anh gi´a c´ac th`anh phˆ o.i tha’o Khoa ´ ´ ` a t - Nghiˆen c´u u co ba’n v` a ´u ng du.ng Cˆ ong nghˆe thˆ ong tin FAIR ho.c Quˆ oc gia lˆ an th´u nhˆ 2003, H`a Nˆo.i 4-5/10/2003 (423– 433) [7] Hu` ynh Quyˆe´t Th˘a´ng, Pha.m Thi Qu` ynh, Mo’ rˆo.ng c´ac ph´ep kha’ n˘ang t´ıch ho p v`a kha’ `an mˆ `em hu.´o.ng th`anh phˆ `an, Ky’ n˘ang t´ai su’ du.ng v`a xˆay du ng ph´ep tˆo’ng ho p cho phˆ ’ `e Nghiˆen c´u u ph´ at triˆe n v` a ´u ng du.ng Cˆ ong nghˆe thˆ ong yˆe´u Hˆ o.i tha’o khoa ho.c quˆ o´c gia vˆ `e n thˆ `an th´u III, H`a Nˆo.i 22-23/5/2006 (257–267) tin v` a truyˆ ong ICT.RDA lˆ Nhˆ a.n b` ng` ay 19 - 10 - 2006 Nhˆ a.n la.i sau su’ a ng` ay 29 - -2007 ... ?xml-stylesheet type=“text/xsl” href=“http://www.cotstrader.com/ COTS- XMLStyle.xsl”? COTScomponent name=“theBuffer” xmlns=“http://www.cotstrader.com /COTS- XMLSchema.xsd” xmlns:types=“http://www.w3.org/2000/10/XMLSchema”... thu du o c 24 1 (*) Gia’i thuˆa.t COTSConfigs chuˆa’n `an COTS tˆo´i u.u theo du th` (**) Gia’i thuˆa.t t`ım kiˆe´m th`anh phˆ u.a d˜ u liˆe.u `an COTS tˆo´i u u theo gi´a th`anh (***) Gia’i thuˆa.t... hai cu’a giai doa.n - tiˆe´n tr`ınh COTSConfigs `an lu a cho.n tˆo’ ho p th`anh phˆ ˆ’ HO ˆ T TOAN ´ COTSConfigs LU THUA A CHO N TO P ´ THANH ` ˆ N COTS CAC PH` A 3.1 Mˆ o ta’ b` to´ an

Ngày đăng: 10/06/2017, 17:17

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan