You are on page 1of 84

I HC THI NGUYN

TRNG I HC CNG NGH THNG TIN V TRUYN THNG

---------------o0o-----------------

THC TP CHUYN NGNH

KIN TRC PHN MM HIN I

Sinh vin: Nguyn c Trng MSV: DTC0851200034 Gio vin hng dn: ThS Ng Th Lan B mn: Cng Ngh Phn Mm

Thi Nguyn 2012 1

I HC THI NGUYN
TRNG I HC CNG NGH THNG TIN V TRUYN THNG

THC TP CHUYN NGNH

KIN TRC PHN MM HIN I

Sinh vin: Nguyn c Trng MSV: DTC0851200034 Gio vin hng dn:ThS Ng Th Lan B mn: Cng Ngh Phn Mm

MC LC
LI NI U ................................................................................................................ 5 NHN XT CA GIO VIN HNG DN ........................................................... 7 TM TT NI DUNG .................................................................................................. 8 Chng I. TNG QUAN V KIN TRC PHN MM ............................................ 9 I. Khi nim kin trc phn mm v vai tr ca kin trc phn mm..................... 9 II. 1. 2. 3. III. 1. 2. 3. 4. Cc nhn t nh gi cht lng kin trc phn mm .................................... 10 Cc nhn tt cht lng ............................................................................... 11 Hiu nng ..................................................................................................... 11 Kh nng m rng ....................................................................................... 12 Quy trnh thit k kin trc phn mm ........................................................... 16 Phc tho quy trnh ...................................................................................... 16 Xc nh yu cu kin trc .......................................................................... 17 Thit k kin trc ......................................................................................... 19 Chun ha .................................................................................................... 20

Chng II. K THUT XY DNG TNG TRUNG GIAN (MIDLEWARE) ....... 21 I. Gii thiu ............................................................................................................ 21 II. III. IV. V. Phn loi cc k thut xy dng tng trung gian ............................................. 22 Cc i tng phn b .................................................................................... 23 Message-Oriented Middleware ....................................................................... 25 Application Servers ......................................................................................... 28

Chng III. MT S KIN TRC PHN MM HIN I .................................... 31 I. Kin trc phn mm hng dch v (Service Oriented Architecture SOA) ... 31 1. Kin trc hng dch v l g ? ................................................................... 31

2. Bn nguyn tc chnh ca h thng SOA......................................................... 32 3. Cc tnh cht ca mt h thng SOA ............................................................... 33 4. Li ch ca SOA .............................................................................................. 39 5. Mt s m hnh trin khai SOA ................................................................... 43

II. Kin trc phn mm cho dng sn phm phn mm (Software Productline Architechture) ........................................................................................................... 44 3

1. 2. III. 1. 2. 3.

Dng sn phm phn mm .......................................................................... 44 Kin trc phn mm cho dng sn phm phn mm................................... 45 Kin trc phn mm hng m hnh - Model driven architecture (MDA) .... 46 Kin trc phn mm hng m hnh (MDA) l g? ................................... 46 u im ca MDA ...................................................................................... 47 MDA v cc yu cu phi chc nng trong kin trc h thng .................... 47 S ra i ca UML ......................................................................................... 49 Mc ch ca UML ......................................................................................... 49 c im ca UML ......................................................................................... 49 Cc thnh phn ca UML ............................................................................... 50

Chng IV. THIT K KIN TRC PHN MM VI NGN NG UML ........... 49 1. 2. 3. 4.

Chng V. NG DNG THIT K WEBSITE BN HNG S DNG UML ...... 69 A. Bi ton ................................................................................................................ 69 B. Phn tch............................................................................................................... 69 I. Cc tc nhn ...................................................................................................... 69 II. Cc chc nng chnh (Use Case): ................................................................ 70 III. c t ca s dng ......................................................................................... 72 IV. Cc loi biu .............................................................................................. 75 KT LUN .................................................................................................................. 83 TI LIU THAM KHO ............................................................................................ 84

LI NI U

Trong tin trnh k ngh phn mm hin nay, xy dng mt kin trc phn mm ti u lun l mt trong nhng vn then cht c cc t chc pht trin phn mm ln trn ton th gii quan tm. l l do v sao m cc hi tho nh m vi cc ni dung lin quan ti kin trc phn mm c cc tp on cng ngh thng tin ln trn th gii nh IBM, Microsoft t chc ngy mt nhiu hn (Hi tho kin trc hng dch v v qun l dch v - IBM, Hi tho kin trc phn mm v thit b di ng Microsoft). Theo nhiu chuyn gia u ngnh v cng ngh thng tin Vit Nam, lnh vc sn xut phn mm nc ta ang gp phi mt thc trng bo ng l vn thit k kin trc trong xy dng, pht trin phn mm cha c cc nh pht trin phn mm trong nc quan tm ng mc. l mt trong cc l do gii thch v sao vi lc lng lm vic trong lnh vc ng o nh hin nay (khong 200.000 ngi v d kin s tng ln 600.000 ngi n nm 2020) nhng v c bn chng ta vn ch l mt nc gia cng phn mm v sn xut phn mm theo n t hng, cc phn mm do chnh chng ta thit k v sn xut vn cha tao ra c ch ng trn th trng quc t. Cc gio vin lun than phin rng sinh vin hc trong ngnh cng ngh phn mm ca chng ta hin nay hu ht quan tm ti lp trnh hn l thit k, trong khi lp trnh l cng vic c mc thu nhp cng nh c nh gi t nht trong cc d n cng ngh thng tin. Hin nay hu ht sinh vin cng ngh thng tin cc trng i hc ln trn th gii u c hc cc kin thc lin quan ti kin trc phn mm mt cch bi bn v chuyn su. Tuy nhin sinh vin cng ngh thng tin Vit Nam li khng c o to nhiu v kin trc phn mm, bng chng l hin chng ta gn nh cha c mt ti liu chuyn su no v kin trc phn mm vit bng ting Vit(c ebook cng nh gio trnh xut bn thnh sch). Nhn thc c tm quan trng ca kin trc phn mm trong pht trin phn mm, thc trng ngnh phn mm Vit Nam hin nay cng nh s thiu ht cc ti liu chuyn mn trong lnh vc ny chnh l l do thi thc em xut v thc hin ti ny. ti Kin trc phn mm hin i c thc hin di s hng dn nhit tnh ca c Ng Th Lan b mn Cng Ngh Phn Mm, c gip em trong xy dng tng cho ti, phc tho chi tit ni dung ti, cung cp cc ti liu hu ch v hng dn chi tit cc ni dung nghin cu. Ngoi ra em cn nhn c rt nhiu s gip ca cc thy c khc trong b mn Cng Ngh Phn Mm, em xin chn thnh cm n cc thy c nhit tnh gip v gip em hon thnh ti. 5

ng thi em rt mong nhn c s ng gp nhit tnh ca thy c v cc bn ti ny c hon thin hn na, gip em tip tc pht trin ti ny cho t thc tp tt nghip sp ti cng nh phc v cho cng vic sau khi ra trng. Em xin chn thnh cm n. Sinh vin Nguyn c Trng

NHN XT CA GIO VIN HNG DN ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... 7

TM TT NI DUNG Bn bo co c chia thnh 5 chng vi ni dung nh sau: Chng 1: Cc khi nim c bn v kin trc phn mm, bn cht, ngha ca kin trc phn mm trong vic pht trin phn mm, nguyn tc tng quan ca quy trnh thit k kin trc, cc yu t nh gi cht lng kin trc phn mm. Chng 2: Mt s xy dng tn trung gian trong kin trc phn mm. Chng 3: Cc kin trc phn mm hin i ang dnh c s ch hin nay: Mt s k thut xy dng tng trung gian trong kin trc phn mm (Middleware), Kin trc phn mm cho dng sn phm phn mm (ProductLine), Kin trc phn mm pht trin theo hng m hnh (ModelDriven Architecture) , Kin trc phn mm pht trin theo hng dch v (Service- Oriented Architecture) Chng 4: Tng quan v ngn ng UML v s dng UML trong thit k kin trc phn mm Chng 5: Xy dng kin trc website bn in thoi vi UML

Chng I. TNG QUAN V KIN TRC PHN MM I. Khi nim kin trc phn mm v vai tr ca kin trc phn mm Kin trc phn mm l mt chuyn ngnh bt u t nhng nm 70 ca th k trc. Vi vic gia tng phc tp v p lc v vic pht trin cc h thng thi gian thc phc tp, kin trc phn mm ni ln nh l mt kin trc c s ca vic pht trin phn mm v cng ngh h thng ch lc. Nh bt k lnh vc nghin cu no khc, kin trc phn mm cng c nhng thch thc ban u ca n. Mt kin trc phn mm th hin cc phng din cu trc v hnh vi ca mt h thng, n c th c nh ngha nh sau: Kin trc phn mm ca mt chng trnh hoc h thng tnh ton l cu trc hoc cc cu trc ca h thng , gm cc thnh phn ca phn mm, cc thuc tnh c th trng thy c t bn ngoi ca cc thnh phn ny, v cc mi quan h gia chng. nh ngha ny tp trung vo kin trc to nn cc bn dng th (coarsegrained constructs) (tc cc thnh phn ca phn mm) m c th c coi l cc b phn c bn ca kin trc/cc khi xy dng nn kin trc (building blocks of the architecture). Mi thnh phn ca phn mm, hay b phn kin trc c bn, c mt s nht nh cc thuc tnh c th nhn thy t bn ngoi m n thng bo n cc b phn kin trc c bn cn li. Cc chi tit bn trong ca s thit k v ci t thnh phn phn mm khng lin quan n phn cn li ca h thng, xem xt mt phn mm c bit ch nh mt hp en. Hp en ny c cc thuc tnh nht nh m n biu l, ci m cc thnh phn phn mm cn li c th s dng thc hin chung cc ch nghip v hoc cng ngh thng tin. Kin trc phn mm xc nh cc khi kin trc c bn, vi mt mc chi tit thch hp. N cng xc nh v vit t liu vic cc b phn c bn lin quan ln nhau nh th no. Kin trc khi n lin quan n cng ngh phn mm l vic phn tch hoc phn vng mt h thng n l sang mt tp cc b phn m c th c xy dng theo kiu lp li, gia tng, v c lp. Cc b phn ring l c cc mi quan h hin vi nhau. Khi an xen vo nhau, cc b phn ring l to nn kin trc ca h thng, t chc, hoc ng dng.

C mt s nhm ln v s khc nhau gia kin trc vi thit k. Tt c cc kin trc l thit k nhng khng phi tt c cc thit k l kin trc. Cc thit k m cn phi rng buc, v mt h thng, p ng cc nhu cu chc nng v phi chc nng v cc mc tiu ca n, l c tnh kin trc v bn cht. Trong khi kin trc coi mt b phn kin trc c bn l mt hp en, th thit k x l cu hnh, tu bin, v cc cng vic bn trong ca mt b phn kin trc c bn. Kin trc rng buc mt thnh phn phn mm vi cc thuc tnh bn ngoi ca n. Thit k thng lng hn nhiu so vi kin trc, v n cho php nhiu cch gn kt cc thuc tnh bn ngoi ca thnh phn ny. Thit k cng cn nhc cc cch khc nhau thc hin cc chi tit bn trong ca thnh phn. Kin trc phn mm c th c s dng mt cch quy. Hy xem xt mt thnh phn phn mm (C1) m l mt b phn ca mt kin trc phn mm ca mt h thng. Kin trc s phn mm chuyn thnh phn ny n nh thit k h thng, cng vi cc thuc tnh ca n, cc kh nng v chc nng v phi chc nng n phi th hin, v mi quan h ca n vi cc b phn phn mm khc. Nh thit k sau khi phn tch thnh phn phn mm C1, quyt nh n s c phn tch thnh cc thnh phn chi tit hn (C11, C12, v C13), mi ci cung cp mt chc nng c th dng li c m s c s dng thc thi cc thuc tnh gn cho C1. Nh thit k chi tit ho C11, C12, C13 v cc giao din ca chng. Ti im ny, i vi nh thit k, C11, C12, v C13 l cc bn dng kin trc (hoc cc thnh phn); mi ci u c cc giao din bn ngoi c xc nh r rng. i vi nh thit k, C11, C12, v C13 l kin trc ca thnh phn phn mm C1, v cc bn dng cn c son tho v thit k cng phu hn na nhm n cc ci t bn trong ca chng. Kin trc c th c s dng mt cch quy bng cch phn chia h thng ln, phc tp thnh cc b phn nh, v tp trung vo tng b phn. Kin trc rng buc h thng bng cch s dng cc b phn kin trc c bn m tho mn chung cc mc tiu hnh vi v cht lng. Cc c ng phi c kh nng hiu c kin trc. Nh vy iu ct yu l mt kin trc phi c vit t liu tho ng, nh c tho lun trong phn k tip. II. Cc nhn t nh gi cht lng kin trc phn mm 10

1. Cc nhn tt cht lng Cc nh thit k kin trc phn mm dnh hu ht thi gian ca mnh cho vic thit k ra cc h thng m bo tp cc yu cu cht lng ca h thng. Cc yu cu cht lng l mt phn ca cc yu cu phi chc nng. C 4 nht t cht lng m cc nh thit k lun hng ti l: Kh nng m rng Tnh bo mt Hiu nng tin cy

2. Hiu nng Yu cu hiu nng ch ra mt lng xc nh cc cng vic m h thng cn phi thc hin trong khong thi gian no . Thng thng cc ng dng cn c kh nng x l hng trm, i khi l hng ngn hoc vn giao dch (transaction) mi giy, nhng yu cu ny thng thy trong cc h thng ln ca cc t chc, c bit trong cc t chc ti chnh, vin thng v cc chnh ph. a. Throughput Throughput l s o lng lng cng vic m mt ng dng phi thc hin trong mt n v thi gian. N thng c o bng s giao dch mi giy (pts) hay s thng ip c x l mi giy (mps). V d mt ng dng online ca ngn hng phi m bo n c th thc hin c ti thiu 1000, giao dch online mi giy (1000pts), hay mt h thng qun l bn hng c th cn s l 50 thng ip yu cu mua hng t cc khch hng mi giy (50mps). b. Thi gian p ng (Response time) Thi gian p ng ch ra tr v thi gian khi ng dng s l mt giao dch. Thi gian p ng thng gn lin vi thi gian ng dng s dng phn hi li mt u vo no . Thi gian p ng cng ngn hiu qu lm vic ca ngi dng cng cao.

11

Mt v d tiu biu l ng dng h tr vic bn hng ti cc ca hng ln, vi lng khch hng ng, khi mt sn phm c qut ti cc quy thanh ton, vic h thng hin th gi ca sn phm trong thi gian ngn gip cho vic phc v khch hng c nhanh hn, y l mong mun ca c khc hng v ca hng. c. Thi hn hon thnh (Deadlines) Cc ng dng yu cu nghim ngt v thi gian hon thnh mt yu cu ngi dng thng l cc ng dng phc v cc cng vic lin quan ti phn phi sn phm hng ha, th tn, thc hin cc giao dch ti chnh Chng hn mt h thng thanh ton trc tuyn (paypal l mt v d tiu biu), khi ngi s dng gi tin vo t i khon ca mnh, n phi hon thnh trong mt thi gian nht nh yu cu ca ngi dng. Nu trong thi gian m h thng khng th thc hin c yu cu ca ngi dng th h s khng th thc hin c cc giao dch ti chnh ca mnh v y l mt vn khng th chp nhn c. 3. Kh nng m rng Mt cch tng quan, kh nng m rng cho chng ta bit mt thit k s ng ph th no khi m cc yu cu ca ng dng mt s kha cnh no tng nn. Chng ta hy xem xt mt s kha cnh sau: a. Yu cu ti (Request load) V d mt ng dng server c thit k cho php x l 100 giao dch mi giy (100pts) vi mt kin trc no , nhng khi ng dng cn nng cp n c th x l s giao dch tng gp 100 ln th kin trc ny cn ph hp ko? Thng thng c hai gii php thng c s dng nng cao kh nng p ng ca h thng khi ti trng ln n tng gp nhiu ln: Thit k cc ng dng a lung hay nhiu lung n c s l trn cng mt my

tnh (Scale up works). thc hin c iu ny chc chn yu cu v b nh v cc ti nguyn khc s tng nn, tuy nhin tc s l ca h thng s tng nn ng k.

12

Phn b ti ng u trn cc my tnh khc nhau (Scale out works), mc ch l

lm cho cc my tnh c hiu qu lm vic nh nhau v vic u t vo phn cng s tr ln lng ph nu nh mt my tnh no phi lm vic qu ti trong khi cc my tnh khc th khng hot ng ht cng sut. Hnh 1.1 m t qu trnh scale-up v scale-out

Hnh 1.1 Scale out versus scale up b. Nhiu kt ni ng thi (Simultaneous connections) Mt kin trc c thit k phc v 1000 lt truy cp trong cng mt thi im nhng n s p ng ra sao khi s lt truy cp tng ln? Nu mi lt truy cp ca ngi dng yu cu mt lng nht nh no ti nguyn ca h thng th chc chn h thng ch c th thc phc v c hiu qu vi mt gii hn s lt truy cp nht nh. c. Kch thc d liu (Data size) Mt kin trc tt cn c kh nng m rng khi yu cu v kch thc d liu m n s l tng nn. Chng hn vi mt ng dng chat online nh ta thng thy chng c thit k cho php s l nhng mu tin ca ngi dung trong mt gii hn kch thc nht nh (thng thng l gii hn v s k t). Tuy nhin trong mt s trng hp cc mu tin m ngi dng mn gi i vt qu gii hn m ng dng cho 13

php, thng thng trong trng hp ny ngi s dng s phi ct ngn bn tinh mnh mun gi thnh nhiu on v gi tng on i. iu ny t ra cu hi nu mt ngy no ta cn nng cp ng dng cho php gi i cc mu tin vi kch thc ln p ng yu cu ca ngi s dng (i khi l cc file d liu, m thnh, hnh nh) th kin trc hin ti ca h thng c p ng c ko? d. Trin khai ng dng (Deployment) y ta xem xt ti vic h thng c thit k th no m bo rng n c th c trin khai hiu qu (thm ch khi cn thay i) khi s lng ngi s dng h thng tng nn ( y mun ni ti s khch hng), hay ni cch khc l h thng c d dng c ci t trn nhiu my tnh khc nhau khng? N bao gm cc n lc cu hnh, phn phi v cp nht cc phin bn mi. Mt gii php l tng l to ra mt c ch t ng ci t v trin khi h thng n ngi s dng mi da trn nhng thng tin ng k ca ngi s dng. C ch ny ang c s dng rng ri vi cc ng dng phn phi trn Internet. e. Kh nng sa i (Modiability) Kh nng sa i l yu t sng cn quyt nh thi gian tn ti ca phn mm khi m cc yu cu ngi dng lun thay i theo thi gian. Kh nng sa i c th c coi nh l thc o phn nh vic phn mm c d dng c sa i khi c s pht sinh cc yu cu chc nng v phi chc nng hay khng? f. Tnh bo mt (Security) Tnh bo mt ca h thng l mt ch phc tp, trong gii hn nghin cu kin trc phn mm chng ta ch nghin cu ti cc yu cu bo mt ca mt ng dng v a ra mt c ch thch hp h tr n. Cc yu cu bo mt ph bin bao gm: Xc thc (Authentication): Cc ng dng cn c kh nng xc nhn xem i

tng m n ang giao tip ( con ngi hay cc ng dng khc) c hp thc hay khng. 14

S cp quyn (Authorization): Nhng ngi s dng hay cc ng dng c

xc thc ch c php truy cp nhng ti nguyn nht nh ca h thng. Chng hn mt s ngi dng no ch c quyn c d liu ca h thng trong khi nhng ngi khc li c quyn c v ghi M ha (Encryption): H thng phi m bo rng nhng thng tin quan trng khi c gi/ nhn gia cc ng dng hay gia ngi s dng vi h thng c m ha an ton. Ton vn (Integrity): m bo cc thng tin khi truyn nhn khng b thay i. Khng thoi thc (Nonrepudiation): C mt c ch an ton tin cy nhm m bo

c ngi gi tin v ngi nhn tin khng th thoi thc trch nhim vi mu tin trao i (mt v d tiu biu v ni bt l ng dng ch k s). g. Kh nng sn sng (Availability) Kh nng sn sng ca ng dng lin quan cht ch ti tin cy ca n. Nu mt ng dng khng sn sng khi ngi s dng cn iu c ngha n cha p ng c yu cu chc nng. h. Kh nng tch hp (Integration) Cc h thng cn thit k cho php n c th tch hp vi cc ng dng khc trong bi cnh v phm vi hot ng rng hn. Thng thng gi tr ca mt h thng phn mm s tng ln nu n c th tch hp cng hot ng thng nht vi cc h thng khc. Cc ng dng khc c th truy cp trc tip ti d liu ca h thng tuy nhin mt gii php hay c s dng hn l xy dng mt API nh hnh 3.2.

1.2 Cc kiu tch hp 15

Cch duy nht cc ng dng ngoi h thng tch hp vi h thng v truy cp d liu ca n l thng qua API Vic tch hp d liu cn phi mm mng v n gin. Cc ng dng c th vit bng mt ngn ng no x l vn bn, truy cp c s d liu quan h s dng SQL Cho nn vic xy dng mt API yu cu nhiu cng sc nhng n s cung cp mt mi trng c kh nng kim sot nhiu hn, nng cao s chun xc v bo mt khi tch hp cc h thng vi nhau. Ngoi cc nhn t nh gi cht lng cp trn, ty vo tng h thng c th trong mt vi trng hp ngi ta cn xem xt ti cc nhn t quan trng khc nh: kh nng ci t d dng trn cc nn tng phn cng/phn mm khc nhau (Portability), d dng kim th (Testability), d dng cho vic h tr vn hng khi h thng c trin khai trong thc t (Supportability) III. Quy trnh thit k kin trc phn mm

1. Phc tho quy trnh Vai tr ca kin trc s phn mm khng n gin ch l a ra cc hot ng thit k kin trc cng nh kin trc ca h thng. Kin trc s phn mm cn: Lm vic vi i phn tch yu cu h thng: i phn tch yu cu ch trng ti

cc yu cu chc nng t pha khch hng v kin trc s gi vai tr quan trng trong vic tp hp cc yu c bi s hiu tng th h thng cn g v a ra cc nhn t cht lng ca h thng. Lm vic vi cc stakeholder khc nhau: Kin trc s phn mm gi vai tr quan trng trong vic chc chn tt c nhng g stakeholder cn cho h thng c hiu chnh xc v c a vo trong thit k. Chng hn ngi qun tr h thng c th yu cu ng dng cn d dng c ci t, theo di, qun l v cp nht Lnh o i thit k kin trc: Xc nh kin trc ng dng l mt hot ng thit k. Kin trc s lnh o i thit k, bao gm cc thit k vin h thng (hay trong cc h thng ln l cc kin trc s khc) v a ra cc dn dt k thut cui cng a ra bn thit k chi tit (architecture blueprint) ca h thng cn trin khai.

16

Lm vic vi bn qun tr d n: Kin trc s phn mm lm vic mt thit vi

ngi qun tr d n nhm gip a ra nhm a ra k hoch d n, cc c lng, nhim v v k hoch thc hin d n. C 3 bc trong tin trnh thit k kin trc l: xc nh yu cu kin trc, thit k kin trc v chun ha (hnh 1.3)

Hnh 1.3 Tin trnh thit k kin trc Xc nh yu cu kin trc: Lin quan ti vic to ra mt tuyn b hoc m hnh Thit k kin trc: lin quan ti vic xc nh cu trc v vai tr ca cc thnh

cc yu cu, n s thc y vic thit k kin trc. -

phn trong kin trc h thng. Chun ha: lin quan ti vic kim tra (testing) kin trc da trn tp cc yu cu

h thng. 2. Xc nh yu cu kin trc Trc khi mt gii php thit k kin trc c th c chnh thc tin hnh nhm a ra bn thit k h thng, ta cn xem xt chi tit cc yu cu kin trc m h thng cn p ng. Hnh 1.4 th hin qu trnh xc nh cc yu cu kin trc:

17

Hnh 1.4 Input v output ca qu trnh xc nh yu cu kin trc Vic xc nh cc yu cu kin trc ch yu da trn cc yu cu chc nng v cc yu cu khc do stakeholder cung cp. Qu trnh xc nh yu cu kin trc s a ra mt tp cc yu cu v kin trc ca h thng. Tt nhin thc t cc thng tin m kin trc s cn vn cha c ti liu ha y mc ny. Cch duy nht kin trc s phn mm c c y cc thng tin cn thit cho vic thit k kin trc h thng l h phi trc tip lm vic vi cc stakeholder v nhim v ny s kh khn hn nhiu nu nh kin trc s phn mm khng phi l mt chuyn gia trong lnh vc nghip v ca d n h ang trin khai. Khng phi tt c cc yu cu kin trc u c gi tr tng ng nhau, rt nhiu trong s l cc yu cu mc u tin thp hay khng cn thit. V vy chng ta cn phn loi cc yu cu theo mc u tin khc nhau. Ngi ta thng s dng 3 mc sau phn loi: Cao (high): h thng phi h tr cc yu cu ny, y l cc yu cu sng cn ca Trung bnh: cc yu cu ny cn thit mt s trng thi nht nh ca h thng

h thng. nhng khng phi lc no n cng c ngha i vi h thng.

18

Thp: cc yu cu mc ny ch yu l cc mong i ca khch hng v nh pht

trin vi h thng ang xy dng. Tuy nhin n khng c ngha quyt nh vi vic thit k kin trc h thng.

3. Thit k kin trc Nhim v ca kin trc s h thng l cc k quan trng v cht lng ca thit k kin trc thc s l vn phi quan tm. Cc ti liu yu cu hon ho cng nh cng sc lm vic cng stakeholder s tr ln v ngha nu nh rt cuc mt thit k ti c c ra. Hnh 2.5 ch ra cc input v output ca qu trnh thit k kin trc.

Hnh 1.5 Input v output ca qu trnh thit k kin trc C hai bc trong gia on thit k kin trc chng c lp i lp li mt cch t nhin. Bc u tin lin quan ti vic la chn mt chin lc tng th cho kin trc da trn cc mu kin trc c chng minh (framework). Bc th 2 lin qua ti vic xc nh cc thnh phn ring l s to nn ng dng, chng ph hp vi framework v phn b cho chng cc vai tr nht nh trong h thng. u ra ca

19

qu trnh ny l mt tp cc khung nhn kin trc (th hin thit k kin trc) v cc ti liu thit k nhm gii thch cho thit k a ra. 4. Chun ha Trong sut tin trnh thit k kin trc, mc tiu ca pha chun ha l nhm m bo kin trc a ra tha mn cc mc tiu ca h thng. Vic chun ha kin trc h thng lun lun l mt th thch i vi cc kin trc s h thng bi v n khng th c kim th mt cch tng minh xc nh xem liu n hon ton p ng cc cc yu cu hay cha. Thm ch n c th bao gm cc thnh thnh phn mi cn c xy dng hay cc hp en cc thnh phn nh l tng trung gian, cc th vin v cc ng dng tn ti sn.

20

Chng II. K THUT XY DNG TNG TRUNG GIAN (MIDLEWARE) I. Gii thiu minh ha cho vai tr ca tng trung gian trong kin trc phn mm chng ta hy i xem xt qu trnh xy dng kin trc ca mt ngi nh. Khi kin trc s thit k mt ngi nh, h s to cc bn v, v c bn mt bn v s cho thy ci nhn t cc gc khc nhau ca ngi nh, cu trc v kt cu ca tng phn trong ngi nh. S thit k ny da trn nhng yu cu thit k ca ngi nh chng hn nh cc khong khng, loi hnh thit k (vn phng, nh th, trung tm mua sm, nh ), yu cu thm m, yu cu chc nng, gii hn ti chnh. Nhng bn v ny th hin ci nhn tru tng ca ngi nh mong i. Ngi ta vn cn cn ti rt nhiu c gng khc bin bn v kin trc trn thnh ci g m thc t c th bt u xy dng ngi nh. Chng hn, cn thit k chi tit ca tng, sn nh , cu thang, h thng in nc V mi mt thnh phn ny li cn c mt s thit k chi tit nh: vt liu, cc thnh phn xy dng. Vt liu v cc thnh phn dng xy dng ny l cc khi c bn dng xy ln ngi nh chng c thit k cho ngi ta c th xy ln bt c kin trc g m h mong mun. Chng ta hy ngh n tng trung gian trong kin trc phn mm nh l nhng ci ng nc hay dy dn trong kin trc ca mt phn mm. L do l: Tng trung gian trong kin trc phn mm c chng minh l cch gn kt cc thnh phn khc nhau gip chng c th d dng trao i thi tin vi nhau. Tng trung gian cung cp nhng ng ng dn vn chuyn d liu gia cc thnh phn v n c th c s dng trong min rng ln cc loi ng dng khc nhau. Tng trung gian c th c s dng ni kt mt s lng ln cc thnh phn khc nhau theo mt cch hiu qu v d hiu. Cc kt ni c th l: mt mt, mt nhiu v nhiu nhiu. T phi cnh ng dng ca ngi dng, tng trung gian hon ton b n i. Ngi s dng ch cn chy ng dng v h khng cn quan tm xem d liu bn trong n c trao i nh th no. Khi m phn mm vn cn hot ng bnh thng, tng trung gian nh mt c s h tng khng nhn thy t mt ca ngi s dng.

21

Ngi s dng ch nhn thc c s tn ti ca tng trung gian khi n b hng

hc u . iu ny cng ging nh ng ng dn nc v ng dy in trong ngi nh vy. Tng trung gian cung cp mt c s hn tng sn sng cho vic kt ni cc thnh phn phn mm khc nhau n c th c s dng trong nhiu min ng dng khc nhau. Bi v n c thit k mt cch chung chung v c kh nng cu hnh trn nhng nn tng ph bin ca ng dng phn mm. II. Phn loi cc k thut xy dng tng trung gian S d ngi ta s dng thut ng tng trung gian l bi v n nm gia ng dng v h iu hnh tc l nm gia ca kin trc ng dng. Cc min ng dng khc nhau cha ng nhng k thut v cng ngh phc tp khc nhau iu ny lm cho tng trung gian cng tr nn phc tp hn rt nhiu. Tuy nhin trong khun kh ti liu ny chng ta s ch i tm hiu v cc xu hng chnh trong xy dng tn trung gian. Hnh 2.1 a ra mt s phn loi cc k thut ny v tn ca mt vi sn phm cho mi k thut ny.

Hnh 2.1 Cc k thut xy dng tng trung gian Tng chuyn vn (Transport layer) to nn mt ng ng (pipe) c bn gi v

di chuyn d liu gia cc thnh phn phn mm. Nhng ng ng ny to nn mt nn tng cho php di chuyn d liu mt cc mm do v n gin trong cc kin trc ng dng phn b.

22

Application server c xy dng trn nn tng cc dch v chuyn vn. N cung

cp kh nng vn chuyn, bo mt v dn ng. N h tr cho vic lp trnh, xy dng cc ng dng a lung da trn server. Message brokers khai thc cc dch v chuyn vn hoc cc application server v thm vo cc my s l thng ip chuyn gia. Cc my ny cung cp kh nng vn chuyn thng ip nhanh, tnh nng lp trnh ngn ng bc cao nh ngha cc trao i, x l v iu hng cc thng ip gia cc thnh phn khc nhau ca mt ng dng. Business process orchestrators (BPOs) l mt s ra tng cc tnh nng ca Message brokers nhm h tr nhiu ng dng kiu lung cng vic khc nhau. Trong cc ng dng ny, qu trnh x l nghip v c th mt nhiu gi v nhiu ngy hon thnh. BPOs cung cp cc cng c m t qu trnh nghip v thc hin chng v qun l cc trng thi trun gian trong khi mi bc trong qu trnh x l vn c thc hin. III. Cc i tng phn b Cc i tng phn b l mt k thut quan trng trong cc k thut xy dng tng trung gian. Xy dng tng trung gian da trn cc i tng phn b c s dng t trc nm 1990 v c m t tt nht bi CORBA. Xt mt v d n gin, mt client gi mt yu cu ln server trn mt i tng yu cu thnh phn mi gii (object request broker - ORB).

2.2 Cc i tng phn b s dng CORBA

23

Trong CORBA nhng i tng phc v h tr giao din c c t s dng ngn ng c t gian din ca CORBA (Interface description language IDL), n nh ngha nhng phng thc m mt i tng server h tr. Vi u vo l cc tham s v tr v mt kiu d liu no . Mt on code n gin nh sau:

y giao din IDL nh ngha mt i tng CORBA vi mt hm duy nht isAlive(), n tr v mt xu v khng nhn tham s no. Mt chng trnh bin dch IDL s c s dng x l nh ngha giao din ny. Trnh bin dch sinh ra mt b khung i tng trong mt ngn ng lp trnh ch. Cc b khung i tng cung cp c ch gi cc phng thc trn server. Ngi lp trnh vin sau phi vit phn code cho mi phng thc ca server trong mt ngn ng lp trnh t nhin no .

Server phi to mt th hin ca ca i tng Myservant v lm cho n c kh nng gi c t ORB.

By gi client c th khi to mt ORB v tham chiu ti cc phng thc nm trn server. Server lu tr mt tham chiu ti chnh cc phng thc ca n ti mt

24

th mc no trn server. Client truy vn ti th mc ny s dng tn logic ca cc phng thc.

Li gi t cc phng thc trn server trong c v nh c ng b vi cc i tng a phng (local). Tuy nhin nn tng ORB vn chuyn, thng ch cc yu cu v cc thng s kt hp trn mng n server. y cc m lnh c thc hin v kt qu c gi tr li client ang trong trng thi ch. Trn y l mt m t rt n gin v k thut cc i tng phn b. C rt nhiu cc chi tit khc cn phi c gii quyt c th trin khai xy dng mt h thng thc. Chng hn nh x l ngoi l, nh v phng thc trn server, x l a lung T phi cnh kin trc, xy dng mt h thng hon chnh, ta cn gii quyt c cc vn sau: Yu cu ti server l cc li gi t xa (remote call) thng qua ORB v mi trng

mng iu ny gy ra tc ng n hiu nng ca h thng. Do vy ta cn thit k cc giao din cc li gi t xa c th th nh ti a v hiu nng h thng c nng cao. Trong bt k cc ng dng phn b no, u c th xy ra hin tng server hay mng b h hi trong mt khong thi gian nht nh no do vy cc ng dng cn c c ch i ph vi ngoi l ny v c kh nng khi ng li server. Nu server lu gi cc trng thi ca mt tng tc gia client v server (v d i tng customer lu gi tn, a ch), nu server b h hi th cc trng thi ny c th mt v vy cn c mt c ch cho php khi phc cc trng thi trc . IV. Message-Oriented Middleware Message-oriented middleware (MOM) l mt trong nhng k thut then cht hng ti vic xy dng cc h thng ng dng thng mi trn phm vi rng ln. N gip kt dnh cc ng dng c lp trn nhiu nn tng khc nhau vo trong mt h 25

thng tch hp chung. Ngi s dng ko cn vit li cc ng dng c sn hay to ra nhng s thay i cc ng dng ny c th chy trong h thng ng dng thng mi rng ln. Bi v n c thay th bng vic to ra cc hng i (queue) gia ngi gi v ngi nhn, y l mt mc trung gian c to ra trong sut qu trnh giao tip. MOM to ra cc software bus tch hp cc h thng phn mm vi nhau. Hnh 2.3 minh ha ng dng ca MOM trong cc t chc

Hnh 2.3 Tch hp cc ng dng trn MOM Chng ta s i xem xt kin trc MOM c bn: MOM th hin tnh lin kt lng (loosely coupled) v bt dng b (Asynchronous). iu ny c ngha l bn gi v bn nhn khng c lin kt cht ch vi nhau, n khng ging nh k thut xy dng tng trung gian ng b nh trong CORBA. K thut xy dng tng trung gian ng b c nhiu im mnh ring tuy nhin n c mt hn cht l ton b h thng hot ng thnh cng th tt c cc thnh phn trong h thng v cc lin kt mng phi lun lun hot ng trong sut thi gian h thng hot ng. MOM tch bit bn gi v bn nhn bng vic s dng ngn xp trung gian phc v cho vic lu tr cc thng ip. Bn gi c th gi thng ip ti bn nhn thng qua MOM v n bit rng thng ip s c gi ti bn nhn. Thm ch nu c s h hng trn ng truyn hoc bn nhn ko sn sng n nhn thng ip. Bn gi 26

ch cn bo cho MOM bit v thng ip n cn gi i sau tip tc cc tin trnh ca mnh. Bn gi khng quan tm ti vic thng ip c gi i nh th no trn ng truyn. Hnh 2.4 m t MOM c bn

Hnh 2.4 MOM c bn MOM ging nh l mt server c th qun l v iu phi nhiu client trong cng mt khong thi gian. tch bit bn gi v bn nhn, MOM cung cp mt hng i dng l tr cc thng ip. Bn gi s gi cc thng ip n mun gi i n hng i v bn nhn s ly i cc thng ip c gi n cho n t hng i. Mt MOM server c th to v qun l nhiu hng i v n c kh nng qu l nhiu thng ip c gi i ng thi s dng cc lung c t chc. Mt hay nhiu tin trnh c th gi thng ip ti mt hng i v mi hng i c th c mt hay nhiu bn nhn. Mi hng i c tn ring bn gi v bn nhn xc nh khi n mun thc hin mt qu trnh trao i thng ip. Hnh 2.5 minh ha qu trnh gi nhn thng ip thng qua MOM server

Hnh 2.5 Gi nhn thng ip qua MOM server 27

Mi MOM server c mt s trch nhim c bn. u tin n phi chp nhn thng ip c gi t ng dng bn gi v gi li tn hiu bo cho bn gi bit rng n nhn c thng ip. Tip theo, n t thng ip ti im k thc ca hng i, ng dng bn nhn c th gi nhiu thng ip ti mt hng i trc khi bn nhn c th nhn c thng ip th MOM cn phi c s chun b lu gi ip trong hng i trong mt khong thi gian nht nh. Cc thng ip c phn phi theo c ch FIST-IN-FIRST-OUT (FIFO) v theo th t cc thng ip m hng i nhn c. Khi bn nhn yu cu (request) thng ip t hng i, thng ip c phn phi cho bn nhn v nu qu trnh ny thnh cng thng ip s c xa khi hng i. C ch bt ng b gip tch bit mt cch t nhin qu trnh gi thng ip v lm cho d dng hn rt nhiu cho vic gii quyt nhiu vn phc tp trong thit k phn mm. Bn gi khng cn tr li li mt thng ip, n ch cn gi thng ip i sau tip tc cc cng vic ca n. Qu trnh ny thng c gi l send and forget messasging Bn gi khng cn tr li ngay lp tc mt yu cu thng ip, bn nhn s cn mt khong thi gian no s l mt yu cu v bn gi s tip tc lm cc cng vic hu ch ca n thay v ch ch i yu cu thng ip ca bn nhn. Bn nhn v h thng mng kt ni gia bn gi v bn nhn c th b h hi trong mt khong thi gian no v chng khng ng hot ng lin tip nhau. MOM s lu gi thng ip v thc hin phn phi thng ip ti bn nhn trong ln khi to tip theo. V. Application Servers C kh nhiu nh ngha v application server nhng tt c u kh ging nhau v bn cht ct li. Theo application server l mt k thut xy dng cc thnh phn da trn server v n nm lp gia (middle-tier) ca kin trc N-tier v n cung cp s giao tip c phn b, bo mt, cc giao dch v s bn b. Application server c s dng rng ri xy dng cc ng dng internet. Hnh 2.6 m phng kin trc N-tier cho ng dng web.

28

Hnh 2.6 Kin trc N-tier cho ng dng web

Lp client (Client Tier): Trong ng dng web, lp client bao gm mt trnh duyt

web gi yu cu v download cc trang web t server v di dng HTML v k thut ny khng thuc v application server. Lp web (Web Tier): Lp web chy mt web server dng kim sot yu cu t

client. Khi yu cu ti trang t client ti, web tier bo cho nhng thnh phn web server-hosted nh servlets, Java Server Pages (JSPs) hay Active Server Pages (ASPs) n ph thuc vo web server c s dng. Yu cu ti trang t client ch chnh xc thnh phn m n mun gi. Thnh phn ny sau x l cc thng s n nhn c t yu cu ti trang ca client yu cu lp logic nghip v (business logic tier) gi cc thng tin theo yu cu t client. Thnh phn ny tip tc nh dng li d liu m n nhn c t lp logic nghip v sau tr li client di dng HTML thng qua web server. Lp logic nghip v (business logic tier): Lp logic nghip v bao gm s logic nghip v li cho ng dng. Cc thnh phn nghip v nh Enterprise JavaBeans 29

(EJB) trong JEE, thnh phn .NET hay cc i tng CORBA. Thnh phn logic nghip v nhn yu cu t lp web sau tha mn yu cu bng cc truy nhp mt hay nhiu c s d liu ly cc d liu ph hp tr v lp web. Mi trng thi gian thc (run-time enviroment) c v nhng mt b cha ng cc thnh phn logic nghip v ny. B cha ng ny tuy c nhiu loi khc nhau (v d EJB, .NET, CORBA) tuy nhin n u bao gm cc giao dch, s qun l chu k sng ca thnh phn logic nghip v, s qun l trng thi, bo mt, a lung v b qu l ti nguyn. Nhng thnh phn ny ch r trong cc file nm ngoi m lnh ca n kiu ca cc hnh vi (behavior) cng yu cu t b cha ng trong mi trng thi gian thc v da trn b cha ng ny cung cp cc dch v. iu ny gii phng lp trnh vin khi s xo trn gia logic nghip v v m lnh kim sot h thng v cc vn mi trng. Lp nhng h thng thng tin thng mi (Enterprise Information Systems Tier): bao gm mt hay nhiu c s d liu v cc ng dng pha sau (back end application) nh l my tnh ln (mainframe) v cc ng dng chuyn dng khc. Cc thnh phn nghip v phi truy vn v tng tc vi vi nhng d liu c lu tr ny p ng yu cu t client. Li ca application server l b cha cc thnh phn logic nghip v v s h tr n cung cp thc hin vic logic nghip v s dng cc mu thnh phn phn mm.

30

Chng III. MT S KIN TRC PHN MM HIN I I. Kin trc phn mm hng dch v (Service Oriented Architecture SOA) 1. Kin trc hng dch v l g ? Kin trc hng dch v (Service-oriented architecture) l mt hng tip cn vi vic thit k v tch hp cc phn mm, chc nng, h thng theo dng module, trong mi module ng vai tr l mt dch v c tnh loose coupling, v c kh nng truy cp thng qua mi trng mng. Hiu mt cch n gin th mt h thng SOA l mt tp hp cc dch v c chun ho trn mng trao i vi nhau trong ng cnh mt tin trnh nghip v. Trong SOA c ba i tng chnh, minh ha trong Hnh 3.1

Hnh 3.1 S cng tc trong SOA Nh cung cp (service provider) dch v cn cung cp thng tin v dch v ca mnh cho mt dch v lu tr thng tin dch v (service registry). Ngi s dng (service consumer) thng qua service registry tm kim thng tin m t v dch v cn tm v sau l xy dng knh giao tip vi pha nh cung cp. SOA cung cp gii php gii quyt cc vn tn ti ca cc h thng hin nay nh: phc tp, khng linh hot v khng n nh. Mt h thng trin khai theo m hnh SOA c kh nng d m rng, lin kt tt. y chnh l c s v nn tng cho vic tch hp, ti s dng li nhng ti nguyn hin c.

31

Tht ra, t tng v mt h thng SOA khng phi l mi. Comnon Object Request Broker Architecture (CORBA) v m hnh Distributed Component Object Model (DCOM) ca Microsoft hay nh Enterprise Java Bean (EJB) ca Java ca cung cp tnh nng ny t lu. Tuy nhin nhng cch tip cn hng dch v ny vn cn gp phi mt s vn kh khn ( phn tch trn). SOA khng ch l mt ci tin ng k gip gii quyt nhng yu im ca cc cng ngh trc m cn em n nhiu u im ni tri. 2. Bn nguyn tc chnh ca h thng SOA 2.1 S phn nh ranh gii rch ri gia cc dch v Cc dch v thc hin qu trnh tng tc ch yu thng qua thnh phn giao tip. Thnh phn giao tip ny s qui nh v nhng nh dng thng ip s dng trong qu trnh trao i : thng ip no s c chp nhn v thng ip no s khng c x l. V y chnh l cch duy nht cc i tng bn ngoi c th truy cp thng tin v chc nng ca dch v. Ta ch cn gi cc thng ip theo cc nh dng c nh ngha trc m khng cn phi quan tm n cch x l ca dch v nh th no (mi trng thc thi, ngn ng lp trnh...). iu ny t c do s tch bit gia thnh phn giao tip v thnh phn x l trong kin trc ca dch v . 2.2 Cc dch v t hot ng Cc dch v cn phi c trin khai v hot ng nh nhng thc th c lp m khng l thuc vo mt dch v khc. Dch v phi c tnh bn vng cao, ngha l n s khng b sp khi c s c. thc hin iu ny, dch v cn duy tr y thng tin cn thit cho qu trnh hot ng ca mnh c th tip tc hot ng trong trng hp mt dch v cng tc b hng; v trnh cc cuc tn cng t bn ngoi (nh gi thng ip li, hay gi thng ip t) bng cch s dng cc k thut v an ton, bo mt... y chnh l ngha ca khi nim loose coupling service m ta cp trong nh ngha SOA. 2.3 Cc dch v chia s lc Cc dch v nn cung cp thnh phn giao tip ca n (interface) ra bn ngoi, v h tr chia s cc cu trc thng tin, cc rng buc d liu thng qua cc lc d 32

liu (schema) chun (c lp ngn ng, c lp h nn.). Nh th h thng ca ta s c tnh lin kt v kh nng d m rng. 2.4 Tnh tng thch ca dch v da trn chnh sch iu ny ngha l, mt dch v khi mun tng tc vi mt dch v khc th phi tha mn cc chnh sch (policiy) v yu cu (requirements) ca dch v nh l m ha, bo mt... thc hin iu ny, mi dch v cn phi cung cp cng khai cc yu cu, chnh sch . 3. Cc tnh cht ca mt h thng SOA 3.1 Loose coupling Vn kt ni (coupling) m ch n mt s rng buc gia cch module vi nhau. C hai loi coupling l ri (loose) v cht (tight). Cc module c tnh loose coupling c mt s rng buc c m t r rng trong khi cc module c tnh tight coupling li c nhiu rng buc khng th bit trc. Hu nh mi kin trc phn mm u hng n tnh loose coupling gia cc module. Mc kt dnh ca mi h thng nh hng trc tip n kh nng chnh sa h thng ca chnh n. Kt dnh cng cht bao nhiu th cng c nhiu thay i lin quan cn chnh sa pha s dng dch v mi khi c thay i no xy ra. Mc coupling tng dn khi khi bn s dng dch v cng cn bit nhiu thng tin ngm nh ca bn cung cp dch v s dng dch v c cung cp. Ngha l nu bn s dng dch v bit v tr v chi tit nh dng d liu ca bn cung cp dch v th quan h gia hai bn cng cht. Ngc li, nu bn s dng dch v khng cn bit mi thng tin chi tit ca dch v trc khi triu gi n th quan h gia hai bn cng c tnh loose coupling. SOA h tr loose coupling thng qua vic s dng hp ng v lin kt (contract and binding). Mt ngi s dng truy vn n ni lu tr v cung cp thng tin dch v (registry) ly thng tin v loi dch v cn s dng. Registry s tr v tt c nhng dch v thoi tiu chun tm kim. T by gi ngi dng ch vic chn dch v m mnh cn, v thc thi phng thc trn theo m t dch v nhn c t registry. Bn s dng dch v khng cn ph thuc trc tip vo ci t ca dch v m ch da trn hp ng m dch v h tr. 33

Hnh 3.2 - Tnh cht loose-coupling

Tnh loose coupling gip g b nhng rng buc iu khin gia nhng h thng u cui. Mi h thng c th t qun l c lp nhm tng hiu sut, kh nng m rngv kh nng p ng cao. Nhng thay i ci t cng c che du i. Loose coupling em n s c lp gia bn cung cp v bn s dng nhng n i hi cc interface phi theo chun v cn mt thnh phn trung gian qun l, trung chuyn yu cu gia cc h thng u cui. 3.2 S dng li dch v Bi v cc dch v c cung cp ln trn mng v c ng k mt ni nht nh nn chng d dng c tm thy v ti s dng. Nu mt dch v khng c kh nng ti s dng, n cng khng cn n interface m t. Cc dch v c th c ti s dng li bng cch kt hp li vi nhau theo nhiu mc ch khc nhau. Ti s dng li cc dch v cn gip loi b nhng thnh phn trng lp v tng vng chc trong ci t, n cn gip n gin ho vic qun tr. Thc ra ti s dng dch v li d dng hn ti s dng thnh t hay lp. Nhng dch v c dng chung bi tt c cc ng dng ca mt h thng SOA gi l nhng shared infrastructure service. 3.3 S dng dch v bt ng b 34

Trong phng thc triu gi dch v bt ng b, bn gi gi mt thng ip vi y thng tin ng cnh ti bn nhn. Bn nhn x l thng tin v tr kt qu v thng qua mt knh thng ip, bn gi khng phi ch cho n khi thng ip c x l xong. Khi s dng kt hp thng ip dng coarse-grained vi mt dch v chuyn thng ip, cc yu cu dch v c th c a vo hng i v x l vi tc ti u. Do bn gi khng phi ch cho n khi yu cu c x l xong v tr v nn khng b nh hng bi vic x l tr v li khi thc thi cc dch v bt ng b. Trn l thuyt mt h thng SOA c th h tr gi v nhn c thng ip ng b v bt ng b. 3.4 Qun l cc chnh sch Khi s dng cc dch v chia s trn mng, ty theo mi ng dng s c mt lut kt hp ring gi l cc policy. Cc policy cn c qun l cc p dng cho mi dch v c khi thit k ln khi trong thi gian thc thi.Vic ny tng kh nng to ra cc dch v c c tnh ti s dng. Bi v cc policy c thit k tch bit, v ty vo mi ng dng nn gim ti a cc thay i phn mm. Nu khng s dng cc policy, cc nhn vin pht trin phn mm, nhm iu hnh v nhm nhm h tr phi lm vic vi nhau trong sut thi gian pht trin ci t v kim tra nhng policy. Ngc li , nu s dng policy, nhng nhn vin pht trin phn mm gi ch cn tp trung vo quy trnh nghip v trong khi nhm iu hnh v nhm h tr tp trung vo cc lut kt hp. 3.5 Coarse granularity Khi nim granularity trong dch v c th hiu theo hai cch. u tin, n c hiu trong phm vi ton b kin trc ci t ca dch v. Th hai, n c hiu trong phm vi tng phng thc ca tng interface trin khai. Mc granularity cng c hiu mc tng i. V d, nu mt dch v ci t tt c chc nng ca mt h thng ngn hng, chng ta xem n l coarse-grained. Nu n h tr ch chc nng kim tra th tnh dng, chng ta li xem n l fine-grained. Trc khi c kin trc thnh t v dch v, cc h thng phn tn ch yu da trn tng phn tn i tng. Nhng h thng phn tn i tng cha bn trong n nhiu i tng finegrained trao i thng tin vi nhau qua mng. Mi i tng c nhng rng buc vi 35

nhiu i tng khc bn trong h thng. Do truy cp n mt i tng phi qua nhiu trung gian m hiu qu t c khng cao nn thng phn tn interface. Hnh 3.3 minh ha mt h thng phn tn i tng vi nhiu mi lin kt. Cng vi kch thc v phc tp ca h thng ngy cng tng, nhng rng buc ny tr nn ngy cng kh qun l. Hiu sut cng gim tng ng s lng cc kt ni trung gian. Kh nng bo tr cng gim khi s lng rng buc gia nhng i tng ngy mt tng. Khi mt i tng cn c thay i interface, n c th nh hng n mt lng ln nhng i tng phn tn khc. Nhn vin pht trin phi bin dch v trin khai li ton b i tng b thay i v nhng i tng lin quan vi chng.Mt h thng da trn qun l cc truy cp n i tng bn trong dch v thng qua mt s coarse-grained interface nh Hnh 3.4. Mt dch v c th c ci t nh mt tp nhng i tng fine-grained nhng bn thn nhng i tng li c s dng trc tip qua mng. Trong khi mt service c ci t nh nhng i tng c mt hoc nhiu i tng coarse-grained hot ng nh nhng facades phn tn th nhng i tng ny li c th c s dng qua mng v cho php truy cp n cc i tng su bn trong. Tuy nhin cc i tng bn trong service by gi s trao i trc tip vi nhau trong cng mt my ch khng phi trn mng. i tng khuynh hng thit k h ang dn chuyn sang thit k cc coarser-grained

Hnh 3.3 Cc i tng fine-grained 36

Hnh 3.4 Cc i tng coarse-grained Mc d nhng service ni chung h tr coarser-grained interface hn cc h thng phn tn i tng v cc h thng hng thnh t, th vn hm cha bn trong n cha mt mc granularity no , nh hnh Hnh 3.5

Hnh 3.5 Cc mc granularity 3.6 Kh nng cng tc Kin trc hng dch v nhn mnh n kh nng cng tc (Interoperability), kh nng m cc h thng c th giao tip vi nhau trn nhiu nn tng v ngn ng khc nhau. Mi dch v cung cp mt interface c th c triu gi thng qua mt dng kt ni. Mt kt ni gi l interoperable cha bn trong n mt giao thc v mt nh dng d liu m mi client kt ni n n u hiu. Interoperability is achieved bng cch h tr cc giao thc v nh dng d liu chun ca dch v v cc client. K thut ny t c bng cch nh x mi tnh cht v ngn ng qua mt c t trung gian. c t trung gian s chu trch nhim nh x gia nh dng ca d liu kh kt (interoperable) n nh dng d liu ty thuc vo nn tng h thng. V d Web Service l mt c t trung gian cho giao tip gia cc h thng, JAX-RPC v JAXM chuyn i tng dng Java thnh SOAP. 37

3.7 T ng d tm v rng buc ng SOA h tr khi nim truy tm dch v (service discovery). Mt ngi s dng cn n mt dch v no c th tm kim dch v da trn mt s tiu chun khi cn. Ngi s dng ch cn hi mt registry v dch v no tho yu cu tm kim. V d, mt h thng chuyn khong (consumer) yu cu mt registry tm tt c cc dch v c kh nng kim tra th tn dng. Registry tr v mt tp cc entry tho yu cu. Ccentry cha thng tin v dch v, bao gm c ph giao dch. Bn s dng s chn mt dch v c ph giao dch thp nht trong danh sch cc dch v tr v, kt ni n nh cung cp dch v da trn thng tin registry entry s dng dch v kim tra th tn dng. Trong phn m t dch v km theo c tt c cc tham s cn thit dng thc thi dch v, bn s dng ch cn nh dng d liu yu cu ng theo m t cung cp v gi i. Nh cung cp dch v s thc thi kim tr th tn dng v tr v mt thng ip c nh dng ng nh trong phn m t dch v. Mi rng buc duy nht gia bn cung cp v bn s dng l bn hp ng c cung cp bi registry trung gian. Mi rng buc ny l rng buc trong thi gian chy ch khng phi rng buc trong lc bin dch. Tt c thng tin cn thit v dch v c ly v v s dng trong khi chy. V d trn cho thy cch bn s dng triu gi dch v mt cch ng. y l mt th mnh ca SOA. Vi SOA, bn s dng dch v khng cn bit nh dng ca thng ip yu cu v thng ip tr v,cng nh a ch dch v cho n khi cn. 3.8 T hi phc Vi kch c v phc tp ca nhng ng dng phn tn ngy nay, kh nng phc hi ca mt h thng sau khi b li tr thnh mt yu t quan trng. Mt h thng t hi phc (self-healing) l mt h thng c kh nng t hi phc sau khi b li m khng cn s can thip ca con ngi. tin cy (reliability) l mc o kh nng mt h thng x l tt nh th nao trong tnh trng hn lon. Trong kin trc hng dch v, cc dch v lun c th hot ng hay ngng bt k lc no, nht l i vi nhng ng dng tng hp t nhng t nhiu dch v ca nhiu t chc khc nhau. tin cy ph thuc vo kh nng ph 38

hi ca phn cng sau khi b li. H tng mng phi cho php cc kt ni ng t nhiu h thng khc nhau kt ni n trong khi chy. Mt kha cnh khc nh hng n tin cy l kin trc m da trn ng dng c xy dng. Mt kin trc h tr kt ni v thc thi ng khi chy s c kh nng t phc hi hn mt h thng khng h tr nhng tnh nng trn. Thm vo , bi v nhng h thng da trn dch v yu cu s tch bit gia nterface v ci t, nn c th c nhiu ci t khc nhau cho cng mt interface. Nu mt th hin service no khng hot ng th mt th hin khc vn c th hon tt giao dch cho khch hng m khng b nh hng g. Kh nng ny ch c c khi client ch tng tc vi interface ca dch v ch khng tng tc trc tip ci t ca dch v. y l mt trong nhng tnh cht c bn ca cc h thng hng dch v. 4. Li ch ca SOA Ni n SOA l ni n tit kim- c tit kim chi ph ln thu c gi tr nhiu hn t cc h thng c sn. Hn cng phi c l do hng trm tp on ch n SOA nh mt gii php tch hp nhm gim gi thnh ca mt n mt cch rt n ng. S dng li nhng thnh phn c sn Mt trong nhng li ch r rng nht ca SOA l n gip cc cng ty thu c gi tr nhiu hn bng cch s dng li nhng ti nguyn sn c; kt qu l gim chi ph cho phn kin trc v tch hp. Ngoi ra n cn gip gim chi ph mua phn mm mi. Thi gian vit chng trnh ly d liu t my ch trc y c tnh bng thng th by gi ch cn tnh bng pht ! Li ch ca vic s dng li c th chia lm 2 phn : Li ch t vic s dng li nhng thnh phn nhm gim tnh d tha. Li ch t vic s dng li nhng thnh phn c sn khi thit k cung cp mt chc nng mi. u tin nh ni, nhiu phn mm doanh nghip pht trin thnh nhng nhm phn mm tch bit (funtional silos), thng thng l tng ng vi mi n v 39

kinh doanh. V d mt cng ty bn l c th c mt nhm phn mm cho h thng phn phi, mt nhm phn mm cho h thng lu kho v mt nhm phn mm cho nhng chc nng lin kt. Thng thng nhng nhm phn mm ny c pht trin trn nhiu nn tng khc nhau, s dng nhiu ngn ng lp trnh khc nhau v thng c nhiu tnh nng lp li gia chng. Mt h thng SOA cho php cc cng ty trnh tnh trng lp d tha, to ra nhng n th dch v chia s gia cc ng dng. Trong mt h thng SOA, ch cn thay i duy nht mt phin bn ca dch v cn c thay i v ch cn kim th mt ln, s dng nhng k nng tng ng vi nhng k nng dng pht trin dch v. Li ch r rng nht l gim chi ph bo tr phn mm. Ngoi ra iu ny cn gip doanh nghip chu trch nhim nhiu hn vi nhng thay i v v mt nghip v v cho php doanh nghip cp nht nhng tnh nng ca n nhanh hn. Bng cch phn r mt ng dng thnh nhng n th dch v nghip v, sau cho nhng dch v ny lin kt li vi nhau, cc h thng by gi c th s dng li c cc thnh phn c sn, gim chi ph pht trin tng phn c lp cho mi tnh nng mi cha c. Thay v phi thay i , vi SOA ta ch cn to ra cc cu ni lin h gia nhng h thng v ng dng khc nhau, thay v chnh sa hoc xy dng li t u. Bi v c a phn cc dch v mi s dng li nhng dch v sn c nn chi ph pht trin cc thnh phn mi c gim n mc ti thiu. Ngha l : Cc cng ty c th trin khai nhng tin trnh x l mi nhanh hn rt nhiu. Chi ph dnh cho pht trin v kim th gim ng k Gim ri ro khi dch v tm ngng hot ng Li ch cui cng ca vic ti s dng thng kh nhn thy, l s dng nhng thnh phn c sn trc mi khi c th th mi khi c li xy ra ta c th gii hn vo khu vc c nhng thnh phn ang c pht trin. Nh ri ro v li phn mm gim i v tng cht lng dch v. Gim chi ph pht trin v kim th, v trnh cng vic trng lp l mt trong nhng li ch m SOA mang li. Nhng quan trng vn l li ch t vic tng kh 40

nng kinh doanh. Nu nhng nhn t ny c nh gi ng mc th li ch mang li l rt ng k. Gii php ng dng tng hp cho doanh nghip Cng vi v d trn, SOA mang n kh nng tng hp mt lp cc ng dng mi bng cch kt hp chc nng t nhng h thng c sn, cung cp cho ngi cui nhng chc nng lin kt. y mt s tin trnh c c th c kt hp vi nhau bn trong mt cng thng tin (portal) gip cho ngi dng cui ch cn truy cp mt ln m vn c thng tin v hng lot sn phm ca doanh nghip. Loi kt hp ny c th kh khn nu khng s dng SOA v n i hi vic tch hp phc tp, n lc lp trnh v kim th. Nhng vi SOA , mt ng dng tng hp c th c tng hp d dng, bt k s khc nhau v a l hoc cng ngh pht trin cc dch v . iu ny cho php doanh nghip phn ng nhanh theo yu cu, gim chi ph n mc ti thiu v tng sc mnh tho mn yu cu ca ngi dng cui hiu qu hn. Tnh loose coupling gip tng tnh linh hot v kh nng trin khai ci t Li ch k tip n t tnh loose coupling ca SOA, trong pha triu gi dch v khng cn quan tm n a ch hoc cng ngh nn tng ca service. N mang n kh nng linh hot cao v nhiu li ch khc. Trong mt h thng SOA ta triu gi dch v thng qua cc interface theo mt dng thc chun nn gip lp trnh vin trnh c vic phi lp li cng vic to mi cc service c kh nng hiu tt c nhng cng ngh c s dng bi tng dch v trong h thng. Th hai, trong trng hp cn kt ni vi cc i tc thng mi th nhng dch v c tnh loose-coupling, nhng interface chun cng em li nhiu li ch hn. Vi mt h thng SOA, tht d dng khi cung cp mt lot nhng dch v ra bn ngoi cho mt i tc no s dng. Nh tnh c lp a ch v cng ngh ca SOA, i tc kia khng cn quan tm n dch v c ci t nh th no, v nh cc dch v theo chun giao tip nn i tc ch cn mt lng thng tin nh va s dng dch v. Tng t cho iu ngc li, nu i tc xy dng mt h thng SOA th vic em s dng chc nng mt s dch v ca h vo s dng bn trong h thng ca mnh cng tr nn d dng v nhanh chng. c tnh ny ca SOA 41

ha hn tng hiu sut v t ng ho.Cui cng mt li ch m tnh loose coupling mang li l tng kh nng trin khai. Nh phn tch trn, nhng thnh phn c tnh loose coupling c th c triu gi m khng cn bit chng c ci t nh th no m ch cn bit cch thc triu gi chng thng qua mt interface chun. V vy ch cn bc nhng thnh phn s dng interface ng dng thnh dng dch v, ta c mt n th thnh phn c s dng trong h thng SOA nh nhng dch v bnh thng khc. Thch ng vi nhng thay i trong tng lai Cc phng php tip cn truyn thng trong quy trnh pht trin phn mm c th m t ngn gn l ngi dng m t h cn g cng ty pht trin phn mm trin khai h thng theo yu cu. Quy trnh ny i khi gp kh khn khi gp nhng tnh hung thay i khng nh trc. Vi SOA, cng ty pht trin phn mm c th to nn nhng quy trnh nghip v uyn chuyn, phc tp bin i ty theo yu cu v theo thi gian thc. H tr a thit b v a nn tng. SOA cung cp mt tng giao tip tru tng t cc nn tng bn di. iu ny cho php h tr nhiu loi thit b u cui khc nhau bao gm c nhng trnh duyt v thit b di ng nh pager, in thoi di ng, PDA v cc thit b chuyn dng khc s dng cng mt chc nng m vn c thng tin tr v ty theo dng thit b. Tnh c lp cng ngh ny gip cho cc cng ty tit kim chi ph rt nhiu nht l khi phi x l vi v s cng ngh hin ang c s dng. Tng kh nng m rng v kh nng sn sng cung cp. Nh tnh c lp a ch ca SOA, ta c th tng kh nng m rng bng cch thm nhiu th hin (instance) ca mt service. Cng ngh chia ti (load-balancing) s t ng tm v nh tuyn yu cu n th hin service thch hp. Tng t, SOA c th chuyn tip ni dung yu cu n mt th hin khc khi cn,nh tng kh nng

42

sn sng phc v. Cn nhn mnh l li ch m SOA mang li khng phi l t m l rt n tng. Thc t gi tr kinh t m SOA mang li ln n ni cc tp on trn th gii ang suy xt xem lm th no chuyn ton b cc kin trc phn mm c sn ca h thnh SOA. 5. Mt s m hnh trin khai SOA Chng ta s tho lun v ba m hnh trin khai chnh ca SOA l : service registy, service broker v service bus. Service registry : y l m hnh truyn thng nh v v lin kt cc dch v trong mt h thng SOA. (xem hnh Hnh 2-6) . M hnh service registry v c bn ch cn cc chun Web services thng thng l SOAP, WSD v UDDI. Vn ln nht ca m hnh ny l cc lin kt dch v l kt ni tnh v phi nh ngha trong thit k, iu ny lm cho m hnh tr nn cng nhc. C mt cch ci tin lm cho m hnh ny linh hot hn l tm kim, nh v cc dch v khi chy. UDDI h tr nhiu cu hnh khc nhau cho cng mt dch v cung cp bi nhiu nh cung cp dch v khc nhau. iu ny cho php chia ti v tng tnh tin cy bi v service directory c th tm kim mt dch v no trn tt c cc nh cung cp dch v hin c . Service broker : Mt b trung gian lm vic gia dch v cung cp v dch v tiu th. Trong m hnh c bn, tt c nhng thng ip u c trung chuyn qua service broker. Dch v ny c th lm nhiu chc nng nh nh tuyn da trn d liu thng ip, x l li, chuyn i thng ip, chia ti v lc thng tin. N cng c th cung cp dch v bo mt, chuyn i giao thc, lu vt v cc dch v hu ch khc. Tuy nhin, service broker l ni c th xy ra hin tng nghn c chai v l im d b hng hc. M hnh broker phn tn l mt bc ci tin mi, mi nn tng dch v c mt broker cc b cho php giao tip vi mt service broker trung tm v giao tip trc tip vi cc service broker cng cp cc nn tng dch v khc. Service bus : y l m hnh ra i sau nht trong 3 m hnh nhng n c s dng trong cc sn phm thng mi large-scale (nh IBM, BEA). Service bus cng l m hnh c tnh loose coupling nht trong cc m hnh, trong cc dch v khng kt ni trc tip vi nhau. i khi cc service bus kt ni vi nhau thnh mt mng cc service bus. 43

II. Kin trc phn mm cho dng sn phm phn mm (Software Productline Architechture) 1. Dng sn phm phn mm Vn s dng li trong k ngh phn mm lun l yu cu quan trng m mi nh thit k phn mm u t ra trc cc d n phn mm. Vic s dng li cc module c xy dng v kim nh v cht lng trc gip cho cc nh pht trin nhanh chng tm ra cc gii php cht lng cao v rt ngn thi gian xy dng phn mm. Trc y vic s dng l ci cu phn phn mm thng l s dng li cc thnh phn rt nh nh: cc hm n, cc th vin hm, cc kiu d liu N c chng mnh l mang li hiu qu cao nhng n khng th hon ton p ng cc yu cu ca ngnh cng nghip phn mm hin i. Cc phng php tip cn hin i nhng dng sn phm phn mm (software product line hay SPL) c chng minh l mt phng php tip cn c hiu qu, n p ng c cc yu cu v s thay i v a dng, phc tp ca cc sn phm phn mm. N gip h gi thnh sn phm v rt ngn thi gian d n trong khi vn m bo cc yu cu cht lng. Hnh 3.6 minh ha mt v d v vic s dng li trong cc sn phm cng nghip thng thng (product line)

Hnh 3.6 V d v product line Vi mi sn phm trong SPL, hu ht cc thnh phn u c xy dng da trn thnh phn li (core asset). Thnh phn li thc hin cc chc nng c bn m n lp 44

li trn hu ht cc sn phm ng thi n c kh nng p ng cc thay i v c th c s dng cho bt k sn phm ring bit no. Cc thnh phn li cung cp mt giao din cho vic chn lc cc chc nng mong mun vo tng sn phm phn mm. 2. Kin trc phn mm cho dng sn phm phn mm Vic pht trin cc phn mm theo dng sn phm (SPL) thng c hiu l cng vic xy dng kin trc dng sn phm phn mm (product line architecture hay PLA). PLA l kin trc hng ti vic s dng li cc thnh phn l i trong SPL. Mc ch l: H tr c h thng trong phm vi c kim sot s bin i cc chc nng. To ra s d dng cho vic chn la cc ty chn chc nng sn c trong vic to Mt PLA t c mc tiu ny bng cch s dng cc c ch k thut cho vic s dng li v thay i. V bn cht, c th s dng li cc cu phn phn mm, cc nh pht trin cn: Tm kim v hiu cc cu phn phn mm . Lm cho cu phn phn mm sn sng cho s dng bng cc kt hp cht ch n

ra sn phm mi.

vi sn phm m h ang pht trin. S dng cu phn phn mm bng cch gi (invoke) cu phn phn mm

a. Tm kim v hiu mt cu phn phn mm Cn c v c im v cc yu cu chc nng ca ca sn phm phn mm ang pht trin, cc k s phn mm tm kim cc cu phn phn mm ph hp vi sn phm ca mnh v s dng ti liu API v cc ti liu tham kho h tr cho vic dng li cu phn phn mm. b. Tch hp cu phn phn mm v mt sn phm Sau khi tm ra mt cu phn phn mm ph hp cho vic s dng li, nh pht trin phn mm cn lm cho n sn sng s dng cho sn phm ca mnh. C nhiu cch thc hin vic ny, n c th c phn loi da trn rng buc thi gian (binding time) ca h. Di y l mt s v d nhng rng buc thi gian chnh v mt s c ch: Thi gian lp trnh bi kim sot phin bn m ngun 45

Thi gian xy dng (buid time) bi kim sot phin bn ca cc th vin tnh Thi gian lin kt (link time) bi s h tr ca h iu hnh v my o dnh cho Thi gian chy (run time) bi tng trung gian hoc nn tng c bit ca cc ng

cc th vin ng dng cho s cu hnh hay cc plug-in ng, v c ch ngn ng lp trnh. c. Gi mt cu phn phn mm gi cc cu phn phn mm, cc ngn ng lp trnh cun cp cc c ch gi nh th tc / hm / phng thc. C ch ny trong SPL cng hon ton tng t nh trong vic pht trin cc phn mm thng thng. III. Kin trc phn mm hng m hnh - Model driven architecture (MDA) 1. Kin trc phn mm hng m hnh (MDA) l g? Trong tin trnh k ngh phn mm hin nay, cc t chc pht trin phn mm ang c gng gia tng vic s dng cc ngn ng hnh thc tru tng cho cc gii php m hnh ha. Trong nhiu tin trnh pht trin phn mm ph bin hin nay, cc miu t tru tng, v d nh trong Java hay C#, c chuyn sang cc dng thc thi c bi cc cng c h tr. Gii php m hnh ha trong pht trin phn mm gip tng cht lng sn phm, gim thiu li do vic bin dch t dng tru tng sang dng thc thi c c thc hin t ng bi cc cng c nh trnh bin dch. MDA c nh ngha bi OMG nh sau: MDA l mt cch tip cn c t h thng cng ngh thng tin, n phn tch cc c t chc nng v cc c t thc thi. Mt m hnh trong MDA l mt c t hnh thc ca chc nng v cu trc cng nh hnh vi ng x ca mt ng dng hay mt h thng phn mm. Trong cch tip cn MDA mt h thng phn mm u tin c phn tch v c t nh mt m hnh tnh ton c lp (Computation Independent Model CIM (CIM cn c hiu ra m hnh min domain model). CIM ch trng vo mi trng v cc yu cu ca h thng. Cc chi tit tnh ton v trin khai c giu i mc m t ny. Hnh 3.7 m phng CIM c chuyn ha thnh PIM (Platform Independent Model), PIM cha cc thng tin tnh ton phc v cho ng dng nhng n khng cha cc thng tin chi tit v cc cng ngh nn tng c s s c s dng thc hin PIM. Cui cng PIM c chuyn i thnh mt PSM (Platform Specic 46

Model), PSM cha cc m t chi tit v cc yu t c th thc hin nn tng thc hin mc tiu.

Hnh 3.7 Chuyn i m hnh trong MDA Mt nn tng trong MDA cha cc tp hp cc h thng con v cc cng ngh cung cp mt t hp cc chc nng da trn giao din v cc mu c c t. MDA c h tr bi mt series cc chun ca OMG, bao gm UML, MOF (Meta Object Facility), XMI (XML Metadata Interchange), v CWM (Common Warehouse Metamodel). Cc chun trong MDA nh ngha mt h thng c pht trin nh th no theo cch tip cn hng m hnh v s dng cc cng c MDA tng thch. 2. u im ca MDA M hnh (model) gi vai tr chnh trong MDA nhng chnh xc ti sao chng ta li cn ti cc m hnh? Di y l cu tr li. M hnh cung cp s tru tng ha ca h thng, cho php cc stakeholder khc nhau c nhng khung nhn cc mc khc nhau v h thng. Ngoi ra m hnh cn c s dng theo nhiu cch khc nh: d on cht lng h thng, iu chnh li thit k theo ng yu cu, dng trao i vi phn tch vin h thng, kin trc s h thng v k s lp trnh h thng. c bit trong th gii MDA, chng cn c s dng nh k hoch tri tit cho vic trin khai h thng. u im th 3 ca MDA l kh nng di ng, kh nng tng tc v ti s dng iu ny c c nh kin trc kiu phn chia ca MDA. Cc vn chnh v thit k ca CIM, PIM v PSM rt khc nhau v c th c pht trin c lp vi nhau. Nhiu CIM, PIM v PSM c th c s dng cho cng mt ng dng nhm th hin cc mc sng lc khc nhau v cc khung nhn khc nhau. 3. MDA v cc yu cu phi chc nng trong kin trc h thng Cc m hnh trong MDA hu ht u tp trung th hin mt kin trc h thng. Theo mt ngha rng, m hnh min (domain model) v m hnh h thng (system 47

model) l s tru tng cc khung nhn khc nhau ca kin trc h thng. Cc m hnh sn sinh m lnh x l cc thnh phn khc nhau ca m hnh kin trc cng vi chi tit thc thi. Cc m lnh sau c th c s dng bi cc cng c cu trc li kin trc ng dng. Cc yu cu phi chc nng (non functional requirement or NFR) l tr ngi chnh ca kin trc h thng. NFR lin quan ti nhng nhn t cht lng nh: hiu sut, kh nng ti s dng, kh nng di ng, kh nng tng tc, tnh kh chuyn v bo mt. Mc d MDA khng trc tip ch ra cc nhn tt cht lng ny nhng n gip h thng t c cc nhn t : Mt mc nht nh ca cc nhn t trn (hiu sut, kh nng ti s dng) c xy dng trong tt c cc m hnh thng qua s phn tch cc thnh phn MDA nh trnh by trn. MOF v UML cho php m rng cc yu cu v cc thnh phn thit k nhm ti Cc quy tc to lp m hnh gip ch cho vic gii quyt cc nhn t cht lng cc yu cu phi chc nng. trong sut cc s chuyn i m hnh.

48

Chng IV. THIT K KIN TRC PHN MM VI NGN NG UML 1. S ra i ca UML u thp k 90, trc khi UML ra i, c mt vi ngn ng m hnh ho: Grady Boochs Booch Modeling Methodology James Rambaughs Object Modeling Technique OMT Ivar Jacobsons OOSE Methodology Hewlett- Packards Fusion Coad and Yordon's OOA and OOD Mi ngn ng trn u c h thng k hiu ring, phng php x l ring v cng c h tr ring, v c im mnh, im yu ring. Cc nh pht trin phn mm thng s dng phi hp cc im mnh ca mi phng php cho ng dng ca mnh. Trong thc t, s khc bit gia cc phng php hu nh khng ng k v theo cng tin trnh thi gian, tt c nhng phng php trn tim cn li v b sung ln cho nhau. Mt khc, mt nhu cu ny sinh t thc t l cn c mt ting ni chung (ngn ng chung) cho cc nh pht trin phn mm m hnh ha h thng. V vy, nhng ngi tin phong trong lnh vc m hnh ho hng i tng ngi li cng nhau tch hp nhng im mnh ca mi phng php v a ra mt m hnh thng nht cho lnh vc cng ngh phn mm. Dn n s ra i ca ngn ng UML (Unified Modeling Language) l ngn ng m hnh ha hp nht t cc cch k hiu ca OMT, Booch91 v OOSE cng nh cc tng tt nht ca mt s phng php khc. 2. Mc ch ca UML M hnh ho cc h thng s dng cc khi nim hng i tng. Thit lp mt kt ni t nhn thc ca con ngi n cc s kin cn m hnh ho. Gii quyt vn v mc tha k trong cc h thng phc tp, c nhiu rng

buc khc nhau. To mt ngn ng m hnh ho c th s dng c bi ngi v my. 3. c im ca UML UML l ngn ng dng trc quan ha: Khi khng c ngn ng m hnh ha trc quan th vic trao i v cc tng gia nhng ngi lp trnh s gp kh khn. Vic xy dng m hnh s dng ngn ng UML gii quyt c cc kh khn trn. 49

Khi tr thnh mt chun trong vic lp m hnh, mi k hiu mang mt ngha r rng v duy nht, mt nh pht trin c th c c m hnh xy dng bng UML do mt ngi khc vit. Nhng cu trc m vic nm bt thng qua c m lnh l kh khn nay c th hin trc quan. C th ha: UML cho php xy dng cc m hnh mt cc t m, r rng, y cc mc chi tit khc nhau. c bit l UML thc hin vic chi tit ho tt c cc quyt nh quan trng trong phn tch, thit k v thc thi mt h thng phn mm. Sinh m dng nguyn mu : Cc m hnh xy dng bi UML c th nh x ti mt ngn ng lp trnh c th nh : Java, C++... thm ch c cc bng trong mt CSDL quan h hay CSDL hng i tng. UML cho php cp nht mt m hnh t cc m thc thi.( nh x ngc). iu ny to ra s nht qun gia m hnh ca h thng v cc on m thc thi m ta xy dng cho h thng . Lp v cung cp ti liu: Mt t chc phn mm ngoi vic to ra cc on m

lnh( thc thi) th cn to ra cc ti liu: Ghi chp v cc yu cu ca h thng, kin trc ca h thng, thit k , m ngun, k hoch d n, tests, cc nguyn mu, UML s cho ta bit cch to ra v c hiu c mt m hnh c cu trc tt, nhng n khng cho ta bit nhng m hnh no nn to ra v khi no to ra chng. l nhim v ca quy trnh pht trin phn mm. 4. Cc thnh phn ca UML 4.1 Hng nhn (quan st) Hng nhn (view): l s tru tng ha gm cc biu khc nhau. Mi hng nhn ch ra mt kha cnh ring bit ca h thng. Cc hng nhn ni kt ngn ng m hnh ha vi quy trnh c chn cho giai on pht trin.

50

Hnh 4.1 Cc hng nhn trong UML Hng nhn ca s dng(Use-Case View): Ch ra kha cnh chc nng ca mt h

thng, nhn t hng tc nhn bn ngoi. Bao gm cc Use Case m t ng x ca h thng theo cch nhn nhn ca ngi dng, ngi phn tch h thng. N khng ch ra cch cu trc ca h thng phn mm, n ch dng nhn nhn mt cch tng qut nhng g m h thng s cung cp, thng qua ngi dng c th kim tra xem cc yu cu ca mnh c p ng y hay cha hoc c chc nng no ca h thng l khng cn thit. Hng nhn Use case mang tnh trung tm, bi n t ra ni dung thc y s pht trin cc hng nhn khc. Hng nhn Use case l hng nhn dnh cho khch hng, nh thit k, nh pht trin v ngi th nghim; n c miu t qua cc biu Use case (use case diagram) v thnh thong cng bao gm c cc biu hot ng (activity diagram) Hng nhn logic (Logical View): Ch ra chc nng s c thit k bn trong h thng nh th no, qua cc khi nim v cu trc tnh cng nh ng x ng ca h thng. c dng xem xt cc phn t bn trong h thng v mi quan h, s tng tc gia chng thc hin cc chc nng mong i ca h thng. Cu trc tnh c miu t bng cc biu lp (class diagram) v biu i tng (object diagram). Qu trnh m hnh ha ng c miu t trong cc biu trng thi (state diagram), biu trnh t (sequence diagram), biu tng tc (collaboration diagram) v biu hot ng (activity diagram). Hng nhn logic c s dng cho cc nh thit k v nh pht trin.

51

Hng nhn song song (Concurrency View) (hay hng nhn tng tranh Process

View): Chia h thng thnh cc tin trnh(process) v lung(thread), m t vic ng b ha v cc x l ng thi. Dng cho ngi pht trin v tch hp h thng, bao gm cc biu sequence, collaboration, activity v state. Hng nhn thnh phn (Implementation View): Bao gm cc component v file

to nn h thng vt l. N ch ra s ph thuc gia cc thnh phn ny, cch kt hp chng li vi nhau to ra mt h thng thc thi. Hng nhn trin khai (Deployment View): Ch ra cu hnh phn cng m h thng s chy trn . N th hin s phn tn, ci t cc phn m to nn kin trcvt l ca h thng. Biu c s dng l biu Deployment.Ngoi cc hng nhn k trn, ngnh cng nghip phn mm cn s dng c cc hng nhn khc, v d hng nhn tnh-ng, hng nhn logic-vt l, quy trnh nghip v (workflow) v cc hng nhn khc. Ty theo c im ca h thng m ngi pht trin h thng s quyt nh l cn m t n di gc nhn no, vn dng cc biu no. Nu h thng nh gn c ci t trn mt my tnh n th m t n di 2 gc nhn l gc nhn ca s dng v gc nhn thit k l . Nu l h thng phn ng theo s kin th phi ch thm gc nhn qu tnh. Nu h thng l mt h khch hng / dch v th phi cp n gc nhn thc thi v gc nhn b tr m t phng tin vt l ca h thng. 4.2. Phn t cu trc Phn t cu trc l cc danh t trong m hnh UML. Chng l b phn tnh ca m hnh biu din cc thnh phn khi nim hay vt l. C by loi phn t cu trc nh m t sau y: Lp: m t tp cc i tng cng chung thuc tinh, thao tc, quan h v ng Giao din: l tp hp cc thao tc lm dch v ca lp hay thnh phn. Giao din

ngha. Mt lp ci t mt hay nhiu ghp ni. m t hnh vi thy c t ngoi ca thnh phn. Giao din biu din ton b hay mt phn hnh vi ca lp. Giao din nh ngha tp c t thao tc ch khng nh ngha

52

ci t ca chng. Giao din thng khng ng mt mnh m c gn vo lp hay thnh phn thc hin giao din. Thnh phn: Thnh phn biu din vt l m ngun, cc tp nh phn trong qu Trng hp s dng (Use case): M t trnh t cc hnh ng m h thng s thc trnh pht trin h thng. hin t c mt kt qu cho tc nhn no . Tc nhn l nhng g bn ngoi tng tc vi h thng. Tp hp cc Use Case ca h thng s hnh thnh cc trng hp m h thng c s dng. Nt (node): l th hin thnh phn vt l, tn ti khi chng trnh chy v biu din cc ti nguyn tnh ton. C th t tp cc thnh phn trn nt chuyn t nt ny sang nt khc. Nt c th l my tnh, thit b phn cng. 4.3 Phn t hnh vi Phn t hnh vi l b phn ng ca m hnh UML. Chng l cc ng t ca m hnh, biu din hnh vi theo thi gian v khng gian. Tng tc: l hnh vi bao gm tp cc thng ip trao i gia cc i tng trong ng cnh c th thc hin mc ch c th. Hnh vi ca nhm i tng hay ca mi thao tc c th c ch ra bng tng tc. My trng thi: l hnh vi ch ra trt t cc trng thi m i tng hay tng tc s i qua p ng s kin. Hnh vi ca lp hay cng tc ca lp c th c xc nh bng my trng thi. My trng thi kch hot nhiu phn t, bao gm trng thi, chuyn tip (t trng thi ny sang trng thi khc), s kin v cc hot ng (p ng s kin).

Hnh 4.2 Phn t hnh vi v trng thi 4.4 Phn t nhm Phn t nhm l b phn t chc ca m hnh UML. 53

Gi (package): l c ch a nng t chc cc phn t vo nhm. Cc phn t cu trc, hnh vi v ngay c phn t nhm c th cho vo gi. Khng ging thnh phn (component), phn t nhm hon ton l khi nim, c ngha rng chng ch tn ti vo thi im pht trin h thng ch khng tn ti vo thi gian chy chng trnh 4.5 Ch thch (annotaitonal) Phn t ch thch l b phn ch gii ca m hnh UML. l li gii thch p dng m t cc phn t khc trong m hnh. Phn t ch thch c gi l ghi ch (note).

Hnh 4.3 Gi v ch thch 4.6 Cc quan h trong UML - Ph thuc (dependency): l quan h ng ngha hai phn t trong thay i phn t c lp s tc ng n ng ngha ca phn t ph thuc.

Kt hp (association): l quan h cu trc m t tp lin kt (mt lin kt l kt

ni gia cc i tng). Khi i tng ca lp ny gi/nhn thng ip n/t i tng ca lp kia th ta gi chng l c quan h kt hp. T hp (aggregation): l dng c bit ca kt hp, n biu din quan h cu trc gia ton th v b phn.

54

Quan h hp thnh (composition): nu nh i tng ton th b hy b th cc i Khi qut ha (generalization): l quan h c bit ha/ khi qut ha m trong Hin thc ha (realization): l quan h ng ngha gia giao din v lp (hay thnh

tng b phn ca n cng b hy b theo. i tng c th s k tha cc thuc tnh v phng php ca i tng tng qut. phn) hin thc lp; gia UC v hp tc hin thc UC. 4.7 Biu Biu l cc hnh v bao gm cc k hiu phn t m hnh ha c sp xp minh ha mt thnh phn c th hay mt kha cnh c th ca h thng. Mt biu l mt thnh phn ca mt hng nhn c th; v khi c v ra, n thng thng cng c xp vo mt hng nhn. Mt khc, mt s loi biu c th l thnh phn ca nhiu hng nhn khc nhau, ty thuc vo ni dung ca biu . Mt m hnh h thng thng c nhiu loi biu , mi loi c nhiu biu khc nhau. a. Biu trng hp s dng (Use case UC) Biu UC ch ra chc nng tng th ca h thng ang pht trin. Khch hng, qun l d n, phn tch vin, lp trnh vin, k s kim tra cht lng v nhng ai quan tm tng th n h thng u c th bit c h thng s h tr g thng qua biu ny. V d:

55

Hnh 4.4 Biu Use Case mu Trong hnh trn cho ta thy cc chc nng ca h thng rt tin t ng ATM: Khch hng (l tc nhn) c thc hin cc chc nng Rt tin, Gi tin, Chuyn tin, Xem s d ti khon, Thay i s cn cc c nhn (PIN) v Thanh ton. Nhn vin ngn hng (l tc nhn khc) c kh nng khi ng UC vi Thay i s cn cc c nhn. Trng hp s dng Thanh ton c mi tn i n tc nhn ngoi l h thng tn dng: h thng tn dng s s dng thng tin tr v t chc nng thanh ton ca h thng ATM. Vi cc s m t ca s dng r rng v n gin c cung cp trn s nh vy, cho ta d dng nhn thy chc nng cn thit no c hay khng c trong h thng. b. Biu trnh t. Biu trnh t ch ra lung chc nng xuyn qua cc UC, n l biu m t tng tc gia cc i tng v tp trung vo m t trt t cc thng ip theo thi gian. Phn tch vin thy c lung tin trnh, ngi pht trin thy c cc i tng cn xy dng v cc thao tc cho cc i tng ny, k s kim tra cht lng c th thy chi tit ca tin trnh xy dng qui trnh th nghim, kim tra. Biu trnh t c ch cho mi ngi tham gia d n. 56

V d:

Hnh 4.5 V d v biu trnh t

c. Biu cng tc Biu cng tc ch ra cc thng tin nh biu trnh t theo cch khc, n tp trung vo t chc cu trc ca cc i tng gi v nhn thng ip. Biu cng tc v biu trnh t thuc loi biu tng tc v chng c th bin i qua li. Cc i tng giao tip trc tip vi nhau c th hin bng ng ni. Qua biu cng tc, k s kim tra cht lng v kin trc s h thng thy c vic phn b tin trnh gia cc i tng. V d:

57

Hnh 4.6 V d v biu tng tc d. Biu lp Biu lp ch ra tng tc gia cc lp trong h thng. Cc lp c xem nh k hoch chi tit ca cc i tng. Ngi pht trin s dng biu lp xy dng cc lp. Cc cng c phn mm nh Rose pht sinh m trnh xng sng cho cc lp, sau ngi pht trin phi chi tit ha n bng ngn ng lp trnh. Kin trc s quan st thit k h thng thng qua biu lp. Kin trc s cng d pht hin ra nu gia cc lp thiu giao tip. V d:

58

Hnh 4.7 Biu lp e. Biu trng thi (Sate transition) Biu chuyn trng thi m t vng i ca i tng, t khi n c sinh ra n khi bi ph hy. Biu chuyn trng thi cung cp cch thc m hnh ha cc trng thi khc nhau ca i tng. Trong khi biu lp cung cp bc tranh tnh v cc lp v quan h ca chng th biu chuyn trng thi c s dng m hnh ha cc hnh vi ng ca h thng. Thng thng, khng to lp biu chuyn trng thi cho mi lp m ch s dng cho cc lp phc tp. Nu i tng ca lp tn ti trong nhiu trng thi v c ng x khc nhau trong mi trng thi th nn xy dng biu chuyn trng thi cho chng. Biu chuyn trng thi ch dnh cho vic lm ti liu Rose khng pht sinh m trnh t biu ny. V d:

59

Hnh 4.8 Biu trng thi f. Biu thnh phn (component) Biu thnh phn cho ta ci nhn vt l ca m hnh. Biu thnh phn cho ta thy c cc thnh phn phn mm trong h thng v quan h gia chng. Hai loi thnh phn trong biu , l thnh phn kh thc v thnh phn th vin. Trong Rose, mi lp m hnh c nh x n mt thnh phn m ngun. C th c nhiu biu thnh phn cho mt h thng, s lng ny ph thuc vo cc h thng con ca chng. Mi h thng con l gi thnh phn. Tng qut, gi l tp hp cc i tng. Bt k ai c trch nhim dch chng trnh u quan tm n biu loi ny. Biu cho ta thy trnh t dch ca cc moun trong h thng. ng thi n cng cho bit r thnh phn no c to ra khi chy chng trnh. Biu thnh phn ch ra nh x ca lp v cc thnh phn ci t. V d:

60

Hnh 4.9 Biu thnh phn

g. Biu trin khai (deployment) Biu trin khai ch ra b tr vt l ca mng v cc thnh phn h thng s t u. Thng qua biu trin khai m ngi qun l d n, ngi s dng, kin trc s v i ng trin khai hiu phn b vt l ca h thng v cc h thng con s c t u. V d:

Hnh 4.10 Biu trin khai 61

Da trn tnh cht ca cc biu , UML chia cc biu thnh hai lp m hnh: Biu m hnh cu trc (Structural Modeling Diagrams): biu din cc cu trc

tnh ca h thng phn mm c m hnh ho. Cc biu trong m hnh tnh tp trung biu din kha cnh tnh ca h thng, lien quan n cu trc c bn cng nh cc phn t chnh trong min quan tm ca bi ton. Cc biu trong m hnh tnh bao gm: Biu gi Biu i tng v lp Biu thnh phn Biu trin khai Biu m hnh hnh vi (Behavioral Modeling Diagrams): Nm bt n cc hot ng v hnh vi ca h thng, cng nh tng tc gia cc phn t bn trong v bn ngoi h thng. Cc dng biu trong m hnh ng bao gm: Biu use case Biu tng tc dng tun t Biu tng tc dng cng tc Biu trng thi Biu ng 5. Gii thiu v RUP (Rationnal Unified process) 5.1 Gii thiu tng quan v RUP Quy trnh pht trin phn mm ni bt nht v ngy cng c s dng rng ri l Rationnal Unified process (RUP). Mc d RUP mi c pht trin trong nhng nm gn y, nhng s xut hin ca RUP nh du mt xu hng pht trin mi trong giai on bng n ca ngnh cng ngh phn mm. Tin trnh RUP l mt tin trnh m hnh ha vi UML do ba ngi bn a ra, RUP l quy trnh cng ngh phn mm c pht trin bi hng Rational. Mc

song n khng phi l mt chun. ch chnh ca RUP l gip sn xut phn mm c cht lng cao tho mn nhu cu ca ngi dng cui, trong khun kh thi gian v ngn sch. Rup m bo quy trnh lun c ci tin hn trn c s nhng kinh nghim phn 62 hi t i tc s dng, s tin ho v nhng cch vn dng tt nht trong thc t.

RUP s dng ngn ng UML m hnh ho v cung cp nhng hng dn s

dng UML mt cch hiu qu nht. Hot ng chnh ca RUP l to, ci tin v qun l cc loi m hnh. Ngoi ra, RUP nhn mnh vic pht trin nhng m hnh giu ng ngha biu din h thng di gc ca ngi pht trin. Ngy nay, RUP c h tr bi cc cng c, gip t ng ho phn ln cc quy trnh pht trin phn mm. Cc cng c h tr RUP c th k n l qun l n, phn cng nhn s, to lp v qun l m hnh, kim chng 5.2 Kin trc tng quan ca RUP

Rup c t chc theo 2 trc: c tt c 4 pha theo chiu dc v 9 cng on tri di xuyn sut 4 pha theo chiu ngang. - Trc honh: t chc theo thi gian pht trin d n, th hin kha cnh ng ca quy trnh gm: Chu k, cc pha, cc qu trnh lp, cc ct mc. - Trc tung: T chc theo ni dung cng vic th hin kha cnh tnh ca chng trnh gm: ai (worker), nh th no (Activities), lm ci g (Artifacts) v khi no (workflows). Trong mi pha c cc ln lp, mi ln lp gm nhiu vng lp sau khi kt thc mt ln lp s cho ra mt sn phm c th.

63

5 .3 c im ca RUP Tin trnh RUP l mt tin trnh pht trin phn mm da trn nguyn tc: lp v tng trng, tp trung vo kin trc, dn dt theo cc ca s dng v khng ch bi cc nguy c. - Lp v tng trng: D n c ct thnh nhng vng lp hoc giai on ngn cho php kim sot d dng s tin trin ca d n. Cui mi vng lp th mt phn thi hnh c ca h thng c sn sinh theo cch tng trng ( thm vo) dn dn. Cc cng on chnh trong mt ln lp:Trong mi ln lp, c th bao gm bt k nm cng on no t cng on xc nh yu cu n kim tra. Ln lp u tp trung vo nhng cng on u. Mt ln lp li c th khi ng sau hoc trong vi tr-ng hp l bt u ngay sau khi hon thnh ln lp trc. Nhng ln lp li khc nhau thc hin mi workflow vi mc chi tit khc nhau. Nhng ln lp u thc hin cc workflows u tin su hn. Nhng ln lp sau thc hin workflows sau su hn. S l-ng ca cng vic s -c lm trong mt workflow l t-ng i. Workflows no c th yu cu nhiu cng sc hn. i khi mt workflow cchn ph thuc vo yu cu ca d n. Ta khng th t -c s hon thin trong mi ln lp li. Ta cn phi s dng quy tc 80 / 20 (80 phn trm ca cng vic c th hon thnh vi 20 phn trm cng sc, 20 phn trm cui cng ca cng vic c th t -c bi 80 phn trm cng sc). Khi ln lp l 80 th ta c th tip tc chuyn sang giai on khc. - Tp trung vo kin trc: Ton b h thng phc tp phi c phn chia thnh tng phn (cc mun) c th d dng trin khai v duy tr, to nn mt kin trc. Kin trc phi c trnh by theo nm gc nhn khc nhau bi cc biu UML. Dn dt theo cc ca s dng: RUP nhn mnh s p ng cc nhu cu ca ngi dng, th hin bi cc ca s dng. Do d cc ca s dng nh hng v dn ng cho mi giai on pht trin h thng. Nm bt yu cu l pht hin ra cc ca s dng. Thit k v ci t l xy dng h thng theo tng ca s dng. Kim nh v nghim thu h thng thc hin theo tng ca s dng. Ca s dng l cn c xc nh cc vng lp v tng trng, cng l cn c phn cng cng vic trong nhm pht trin h thng. - Khng ch bi cc nguy c: Cc nguy c chnh i vi d n phi pht hin sm v phi loi b cng sm cng tt. Yu cu ny cng l cn c xc nh th t trc sau ca cc vng lp. 5.4 Cc thnh phn ca RUP RUP nh ngha bn thnh phn sau:

64

- Worker: nh ngha cng vic v trch nhim ca mi c nhn, hoc mt s c nhn lm vic vi nhau trong nhm. - Tm cc use case v cc actor cho h thng ca phn tch vin h thng. - Artifacts: l nhng thng tin c pht sinh, thay i hoc s dng bi quy trnh.V d: M hnh Use Case (Use Case Mode), m hnh thit k (Design mode), cc su liu (document), cc thnh phn thc thi. - Workflows: m t cch thc tin hnh cc hot ng theo trnh t v vai tr ca mi worker. 5.5 Cc pha trong tin trnh RUP Tin trnh RUP c t chc thnh pha ni tip trong thi gian l: Khi u, trin khai, xy dng v chuyn giao. 1) Pha khi u(inception): Nhm cho ci nhn tng qut v h thng s xy dng (chc nng, hiu nng, cng ngh, ) v v d n s trin khai ( phm vi, mc tiu, tnh kh thi, ). Giai on ny cn a ra tnh hung v mt nghip v c th c i vi h thng v xc nh phm vi ca d n. Cc tnh hung nghip v gm: tiu thc nh gi s thnh cng, nh gi ri ro, xc nh cc ngun lc cn thit cho d n v mt bn k hoch tm tt ch ra lch trnh ca cc im mc ch yu ca d n. Thng thng phi xy dng bn mu khi nim cho pha kho st kh thi nh gi tnh ri ro ca cc chc nng phn mm, sc mnh v phc tp ca h thng, cng ngh mi s p dng. Loi bn mu ny khng cn tun th cc quy lut pht trin phn mm thng thng nh tin cy cao, tc x l phi nhanh.Cui pha ny cn kim tra cc mc tiu ca qu trnh pht trin ca d n v a ra kt lun l nn pht trin hay nn loi b d n. Vi d n nh, kho st kh thi thng ch gii hn bi danh sch yu cu phn mm. vi cc d n trung bnh th pha kho st kh thi s thc hin trong khog mt thng, bao gm c vic xy bn mu makt. Vi cc d n ln, vic xy dng makt c th l mt d n con v n cng c cc bc thc hin nh m t trn. 2) pha trin khai: (elaboration) Bao gm s phn tch chi tit hn v h thng chc nng, cu trc tnh ( dng cc biu ca s dng, biu lp, cc biu tng tc). ng thi mt kin trc h thng cng c xut. Kin trc ny c th dng thnh nguyn mu, trn c th s dng nhiu i vi h thng.

65

Pha ny bt u bng phn tch yu cu v m hnh ha lnh vc. Phn tch cc vn nghip v, xc nh kin trc hp l, xy dng k hoch cho d n, gii hn cc yu t ri ro cao nht. Nhng quyt nh v mt kin trc cn c a ra cho ton b h thng, ng thi cn m t hu ht cc yu cu ca h thng. Cui pha ny cn kim tra cc mc tiu v phm vi chi tit ca h thng, s la chn v kin trc v cch x l cc ri ro c th ng thi quyt nh c tip tc chuyn sang pha xy dng hay khng. 3) Pha xy dng (construction): Tp trung vo vic thit k v thc thi ( ci t) h thng nu pha trin khai ch mi cho mt kin trc h thng c bn th pha xy dng kin trc c tinh t v chi tit ha, c th chnh sa, tha i. Pha xy dng kt thc khi pht hnh c (t nht l trong ni b) mt h thng hon chnh cng cc t liu km theo. Pha xy dng l pha ko di v thi gian v tn hao v sc lc hn c. Pha ny bao gm vic m t cc yu cu cn li cha c xc nh, xc nh cc tiu thc chp nhn, lm mn thit k v hon thnh vic lp trnh ng dng. Cui pha ny cn xc nh liu h thng phn mm, cc im trin khai v ngi dng sn sng i vo hot ng cha. 4) Pha chuyn giao (transition): Nhm chuyn h thng xy dng t tay nhng ngi pht trin h thng ti tay cc ngi dng cui, phi m bo rng phn mm lun sn sng cho ngi s dng. Khi h thng ti tay ngi s dng th cc vn thng pht sinh i hi nhng bc tip theo l cn chnh h thng, xc nh cc vn cha c pht hin trc hay hon thin cc chc nng trc b tr hon. Pha ny thng bt u vi vic tung ra phin bn Beta v sau l thay th bi bn chng trnh y . Pha chuyn giao c th tri rng trn nhng ln lp ring v bao gm cc cng vic chnh sau: Thc thi cc hoch nh pht trin. Hon thnh cc h tr cn thit i vi ngi s dng. Kim tra sn phm phn phi v tr pht trin. To phin bn Release cho sn phm. Ly cc phn hi t ngi s dng. Hiu chnh sn phm da trn phn hi t ngi s dng. Phn phi sn phm.

Mi pha c bit l pha xy dng v pha trin khai li c chia thnh mt s vng lp (ko di t 2 n 4 tun). Mi vng lp li hon thnh mt phn ca h thng v tri qua mt s cng on trong 9 cng on khc nhau. 66

5.6 Cc cng on trong tin trnh RUP Rup c 9 cng on sau: M hnh ha nghip v hin ti (Business modeling): m t cu trc v quy trnh nghip v. Nm bt yu cu h thng (Requirement): m t nghip v bng phng php tnh hung s dng (use case base method) Phn tch v thit k (Analysis & Design). Ci t h thng (implementation). Kim tra sn phm (Test): m t cc tnh hung v kch bn th nghim, tin hnh th nghim h thng phn mm. Phn phi sn phm (devolopment). Qun l d n (Project managerment). Qun l thay i yu cu v cu hnh h thng (Configuration & Change Mgmt): kim sot cc thay i v duy tr s hp nht ca cc thnh phn d n. Thit lp mi trng lm vic trong ton b d n (Envirionment): m bo cc h tng cn thit c th pht trin c h thng. 5.7 Cc m hnh v ti liu trong RUP Qu trnh thc hin qua ton b cc pha c gi l chu trnh pht trin; Kt qu ca qu trnh pht trin cc RUP c gi l cc Artifact, bao gm cc m hnh v cc b ti liu, l: - M hnh nghip v: l s tru tng ha t chc nghip v ca h thng cn xy dng. - M hnh tnh hung s dng:(use case) cc yu cu mang tnh chc nng ca h thng phn mm. - M hnh phn tch v thit k: m hnh t chc cc i tng ca h thng phn mm gii quyt vn ca bi ton. - M hnh trin khai: m hnh kin trc phn cng v phn m h thng cn thit trin khai. - M hnh th nghim: xc nh cc bc m h thng s c kim tra. Cc ti liu: B ti liu v xc nh yu cu h thng: m t nhng g h thng cn lm. B ti liu thit k: m t h thng s c xy dng nh th no. B ti liu lp trnh: m t cc thnh phn ng dng c pht trin nh th no. B ti liu trin khai: m t cu trc trin khai h thng

Mi giai on trong Rup bao gm cc m hnh UML khc nhau. 67

Nhn t kha cnh qun l, RUP b tr ton b thi gian vo cc pha c kt thc bng mt ct mc. cui mi pha c mt nh gi kt qu thc hin. Nu chp nhn d n chuyn sang pha k tip cn ngc li th thc hin pha li trn. Hoch nh cc pha: Vic hoch nh cc pha khng nht thit phi ging nhau. i vi h thng va v nh nn hoch nh cc pha nh sau:
Khi u Cng sc Thi gian 5% 10 % Trin khai 20 % 30 % Xy dng 65 % 50 % Chuyn giao 10% 10%

Liu lng cho mi cng on l ty thuc vng lp pha no: cc pha u th cng on u: nm bt yu cu, phn tch v thit k dc nhn mnh, pha cui th cng on: Thc thi, kim nh v b tr li c nhn mnh

68

Chng V. NG DNG THIT K WEBSITE BN HNG S DNG UML

A. Bi ton
Khi c yu cu nhp thit b: nhn vin tin hnh ghi phiu yu cu gm cc thng tin chi tit v thit b v gi n cho nh cung cp. Nh cung cp s gi n cho hng chi tit cc thit b bao gm cc thng tin nh: tn, loi thit b, s lng, ngun gc.Qua n cho hng ca nh cung cp th ca hng s a ra n t hng v gi n cho nh cung cp, p ng nhu cu nhp thit b ca ca hng nh cung cp s chuyn thit b cho ca hng theo hp ng mua,bn hng ha v bin lai bn giao thit b (kim ha n thanh ton tin thit b).Trc khi nhp hng vo kho th ca hng s kim tra xem thit b cha theo bin bn bn giao thit b m nh cung cp gi n, ng thi ca hng s ghi cc thng tin cn thit vo s chi v s kho. Nu thit b no khng t yu cu th ca hng s tr li nh cung cp, v yu cu nha cung cp cp li nhng thit b nh hp ng tha thun. Khi khch c nhu cu mua thit b, khch hng xem thng tin hng ha, tm kim hng cn mua. Nu khch hng chn c thit b cn mua th ca hng s kim tra trong kho, nu trong kho cn hng th nhn vit s vit phiu bn hng v thng bo cho khch. Khch hng gi tin thanh ton cho ca hng qua th ATM hoc thanh ton trc tip ti ca hng, ca hng s lp bin lai thu tin cho khch ng thi s ghi cc thng tin cn thit vo s thu v s kho. Sau ca hng s tin hnh bn giao thit b cho khch v gi khch hng ha n thanh ton, phiu bo hnh v cc giy t lin quan, c km theo cc khuyn mi(nu c). tin cho vic qun l h thng mi s lu tr v qun l thng tin v nh cung cp v thng tin khch hng. C th sa hoc xa khi cn thit. Sau mt khong thi gian nht nh nhn vin cc b phn s tng hp thng tin mua, bn, v cc thng tin khc. Qun tr vin l ngi c quyn cao nht, c quyn cp pht hoc thu hi cc ti khon ca nhn vin cng nh khch hng.

B. Phn tch
I. Cc tc nhn Tc nhn gm c: 69

1. Khch hng 2. Nhn vin 3. Qun tr vin I. Cc chc nng chnh 1. Qun l hng bn Tc nhn: Nhn vin. iu kin: Phi ng nhp vo h thng. M t: Ca s dng bt u khi nhn vin ng nhp vo h thng. Da vo yu cu ca khch hng, nhn vin s lp ha n bn hng vi cc thng tin ca khch hng: tn khch hng, a ch, in thoi, email v kim tra hng trong kho xem c cn hay p ng c khng (tm hng), nu p ng c th s giao hng cho khch hng v cp nht thng tin hng bn , khch hng vo h thng. Nu hng trong kho khng p ng c th thng bo cho khch hng. 2. Qun l hng nhp Tc nhn: Nhn vin iu kin: Phi ng nhp vo h thng. M t: Sau mt thi gian nh k, ca hng s nhp thm hng mi. Nhn vin lp ha n yu cu nhp hng gm thng tin v hng mun nhp gm: tn hng nhp, s lng nhp, tn nh cung cp. Bn nh cung cp s cung cp hng theo yu cu cho ca hng. Nhng trc khi nhn hng, nhn vin s kim tra hng xem c p ng c v cht lng v s lng khng. Nu khng m bo mt trong cc yu cu th nhn vin s t chi nhp. Sau nhn vin s lp ha n nhp hng gm: tn hng nhp, s lng nhp, n gi nhp, ngy nhp, nh cung cp.

3. Qun l khch hng Tc nhn: Nhn vin iu kin: ng nhp c vo h thng. 70

Khch hng sau khi mua hng ti cng ty s c lu li thng tin: tn khch hng, a ch, in thoi. Khch hng s c xp vo cc nhm khch hng khch nhau tng ng vi gi tr hng mua, da gi tr hng mua khch nhau khch hng s c gim gi tng ng theo cc chng trnh khuyn mi (nu c). 4. Qun l nh cung cp Tc nhn: Nhn vin iu kin: ng nhp c vo h thng. Nh cung cp cng c qun l nh khch hng gm: tn nh cung cp, a ch, in thoi, mt hng cung cp. 5. Bo co thng k Tc nhn: Nhn vin iu kin: ng nhp c vo h thng. Hng thng nhn vin s thc hin lp bo co thng k hng nhp, thng k hng bn, thng k doanh thu da vo ha n bn hng v nhp hng hng thng. 6. Qun l quyn truy nhp Tc nhn: Qun tr vin iu kin: ng nhp c vo h thng. Qun tr vin s ng nhp vo h thng. Chn cc chc nng cp pht quyn, thay i quyn, xa quyn ca cc nhn vin ca hng v khch hng. 7. Mua hng Tc nhn: Khch hng iu kin: ng nhp c vo h thng Sau khi chn c cc mt hng mun mua, khch hng c ti khon s ng nhp vo h thng hoc ng k mi ti khon ri ng nhp (nu cha c), sau khc hng thc hin gi thng tin n hng cho ca hng gm: m hng, s lng, m khch hng. Cc thng tin ny s c lu li trn h thng v sau c kim tra bi nhn vin ca hng. 8. Qun l ti khon 71

Tc nhn: khch hng, nhn vin, qun tr vin Khch hng, nhn vin v qun tr vin tin hng ng nhp vo h thng xem v cp nht thng tin c nhn, mt khu thng qua chc nng ny. 9. ng nhp Tc nhn: nhn vin, qu tr vin, khch hng Tc nhn thc hin ng nhp vo h thng thc hin cc thao tc qun l. 10. ng xut Tc nhn: nhn vin, qu tr vin, khch hng Tc nhn ng xut khi h thng, kt thc phin lm vic. 11. ng k ti khon Tc nhn: khch hng Khch hng ng k ti khon vi cc thng tin: username, password, tn, a ch, email, s in thoi (ti khon nhn vin c cp bi qun tr vin, ti khon qun tr vin c khi to bi pha nh cung cp phn mm khi bn giao sn phm). II. c t ca s dng 1. Ca s dng qun l bn hng Tm tt : M phng qu trnh lp ha n v bn hng cho khch Actor: nhn vin Dng s kin: Ca s dng bt u khi nhn vin ng nhp vo h thng. chn cha nng thm ha n bn hng. H thng hin th form yu cu nhn vin nhp cc thng tin ca khch hng: tn khch hng, a ch, in thoi, h s gim. thng tin hng bn: tn hng bn, s lng, gi bn, thng tin ha n: tn hng, s lng, gi bn, ngy lp, nhn vin lp, tng tin. Nhn vin c th nhp trc tip m hng hoc chn chc nng tm kim tm kim hng. H thng lu cc thng tin vo csdl. Nu cc thng tin nhp li th h thng s hin th thng bo li yu cu nhn vin kim tra v nhp li. Ngoi ra nhn vin c th xem, sa, xa cc ha n nhp. 2. Ca s dng qun l nhp hng

72

Tm tt: M t qu trnh nhp hng vo kho. Actor : nhn vin Dng s kin: Ca s dng khi nhn vin ng nhp vo h thng v chn chc nng nhp hng. H thng hin th form nhp hng. Nhn vin nhp cc thng tin v hng nhp : m hng nhp, tn hng nhp, s lng nhp, n gi nhp, tn nh cung cp, ngy nhp. H thng kim tra thng tin nhp v thc hin lu thng tin vo csdl. Nu cc thng tin khng hp l h thng s thng bo li v yu cu nhn vin kim tra cc thng tin, v nhp li. Ngoi ra nhn vin c th xem, sa, xa cc mt hng nhp. 3. Ca s dng qun l khch hng Tm tt: M t qu trnh lp bo co hng nhp Actor : nhn vin Dng s kin : Ca s dng bt u khi nhn vin chn chc nng qun l khch hng. H thng hin th mn hnh qun l khch hng. Nhn vin chn cc chc nng thm, sa, xa thng tin khch hng, thay i nhm khch hng, h s gim khi mua hng. 4. Ca s dng qun l nh cung cp Tm tt: M t qu trnh qun l nh cung cp Actor : nhn vin Dng s kin : Ca s dng bt u khi nhn vin chn chc nng qun l nh cung cp. H thng hin th mn hnh qun l nh cung cp. Nhn vin chn cc chc nng thm, sa, xa thng tin nh cung cp. H thng thc hin lu nhng thay i. 5. Ca s dng Bo co thng k Tm tt: M t qu trnh lp bo co hng bn Actor : Nhn vin 73

Dng s kin: Ca s dng bt u khi nhn vin ng nhp vo h thng v chn chc nng bo co thng k, sau nhn vin c th chn thng k theo hng nhp, hng bn, doanh thu. 6. Ca s dng qun l quyn truy nhp Tm tt: M t qu trnh qun tr quyn truy cp h thng Actor : Qun tr vin Dng s kin: Ca s dng bt u khi qun tr vin ng nhp vo h thng. H thng hin th mn hnh lm vic ca qun tr vin. Qun tr vin c th thc hin cp quyn, thay i quyn, xa quyn ca cc ngi dng. H thng thc hin lu thay i vo csdl. 7. Ca s dng mua hng Khch hng truy cp website, xem cc mt hng trn website v chn cc mt hng mun mua sau chn chc nng gi thng tin n hng gi thng tin n hng mun mua v cho nh cung cp, nu khch hng cha ng nhp h thng s yu cu khch hng ng nhp. Khch hng cng c th sa hoc xa cc mt hng chn. 8. Ca s dng qun l ti khon Nu khch hng cha c ti khon th khch hng s chn chc nng ng k ng k mi ti khon vi cc thng tin username, password, h tn, s in thoi, a ch, email. Qun tr vin, nhn vin v khch hng sau khi ng nhp u c th s dng chc nng xem hoc cp nht thng tin ti khon, ng xut khi h thng. 9. Ca s dng ng nhp Ca s dung bt u khi qun tr vin, nhn vin hoc khch hng truy cp website v chon chc nng ng nhp. Form ng nhp hin th v ngi s dng in username v password ng nhp h thng. 10. Ca s dng ng xut Sau khi ng nhp vo h thng, ngi dng bm nt Log out, thng tin phin lm vic ca ngi dng b xa b v ngi dng tr v trng thi cha ng nhp. 11. Ca s dng ng k ti khon 74

Khch hng truy cp website, bm vo nt ng k, h thng hin th form ng k gm cc thng tin: username, password, tn, a ch, s in thoi, email. Khch hng in cc thng tin yu cu sau bm nt Hon tt ng k hon thnh qu trnh ng k. Nu qu trnh khch hng thao tc gp li h thng s hin th thng bo. III. Cc loi biu thit k kin trc Khi thit k kin trc ta tp trung vo tng quan h thng, qua phn tch xc nh cc usecase ca h thng, ta xem xt ti vic xc nh gi cc lp trong kin trc h thng, xy dng biu gi, biu thnh phn v biu trin khai. Trong tin trnh thit k kin trc ta khng qu ch trng ti chi tit cc lp cng nh cc biu hnh vi ca h thng. Cc biu ny s c xem xt phn thit k chi tit h thng. 1. Biu Use case a) Biu use case mc tng quan

75

b) Biu use case m rng trn Ql ban hang

c) Biu use case m rng trn QL nhap hang

76

d) Biu use case m rng trn QL khach hang

e) Biu use case m rng trn QL nha cung cap

77

f) Biu use case m rng trn Bao cao, thong ke

g) Biu use case m rng trn Bao QL tai khoan

78

h) Biu use case m rng trn QL quyen truy nhap

i) Biu use case m rng trn Mua hang

79

2. Biu gi (cc lp) Theo m hnh MVC a) Cc gi tng quan

b) Gi giao din

80

c) Gi iu khin

d) Gi d liu

81

3. Biu thnh phn

6.Biu trin khai


May Quan Tri Vien

May In

May Nhan Vien

Application Server

CSDL

May Khach Hang

82

KT LUN Cc vn lin quan ti kin trc phn mm vn lun dnh c s quan tm c bit i vi cc t chc pht trin phn mm trn ton th gii, c bit n v ang tr thnh mt vn cp bch i vi cc nh pht trin phn mm Vit Nam. Cc kin trc s phn mm c o to bi bn s gp phn khng nh gip ngnh cng ngh thng tin Vit Nam snh ngang vi cc cng quc cng ngh thng tin khc trn th gii. Ha hn mt tng lai mi cho cc sinh vin cng ngh thng tin ni chung v cng ngh phn mm ni ring. Sau 2 thng n lc ht mnh hon thnh ti di s hng dn ca c Lan v cc thy c khc trong b mn, em t nhn thy mnh t c mt s kt qu v hn ch nh sau: Nhng kt qu t dc: Nghin cu, hiu v lm c cc vn c bn v kin trc phn mm, cc kin trc phn mm hin i, xy dng kin trc phn mm vi UML. Bo co chi tit ti Rn luyn kh nng c hiu ting Anh v ci thin kh nng dch thut Hn ch: Trong thi gian gii hn ca ti (cng nh ti ny mi mc nghin cu phng php lun), em vn cha xy dng c h thng thng phn mm thc s theo cc kin trc phn mm tm hiu, em d nh s xy dng h thng ny trong t thc tp tt nghip sp ti. Mt ln na em xin chn thnh cm n s gip ca thy c v rt mong nhn c nhiu s ng gp hn na gip ti c hon thin hn. Sinh vin Nguyn c Trng

83

TI LIU THAM KHO 1. Essential Software Architecture (2nd edition) Lan Gorton 2. Microsot Application Architecture Guide (2nd edition) Microsoft 3. An Introduction to Software Architecture - David Garlan and Mary Shaw 4. Bi gin pht trin phn mm hng i tng vi UML Ng Th Lan (H CNTT & TT Thi Nguyn)

84

You might also like