You are on page 1of 71

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML LI NI U Nu nh trc y phn mm (software) c bn km theo my tnh, phn mm coi nh c cho

khng th ngy nay hon ton khc, gi c phn cng h xung v phn mm dn dn tr nn thng lnh. My tnh tr nn hu dng trong mi mt ca cuc sng, sn xut kinh doanh, khoa hc k thut, qun l, gio dc ... c th p dng my tnh vo nhng nhu cu ca i sng x hi ta phi c cc chng trnh iu khin, qun l, tnh ton v thc hin cc chc nng nh mong mun m ta gi l phn mm. Quy trnh sn xut c mt phn mm gm nhiu cng on t phn tch thit k, c t yu cu khch hng cho ti lp trnh, bo tr...Mi cng on l c qu trnh i hi k s phn mm phi kho st t m, chnh xc trong tng thao tc. Cht lng phn mm do khu phn tich thit k quyt nh l ch yu, do vy phn tch thit k v c t cc yu cu l giai on quan trng nht. Ni n cng ngh phn mm chng ta phI k n cc h thng phn tn. Trong thi k pht trin mnh ca mng ton cu Internet, cc ng dng phn tn pht trin rt mnh v mang tnh cp thit. N em li li ch v cng to ln cho con ngi. Nhm tm hiu theo hng pht trin ny, n ca em tip cn mt cng ngh xy dng ng dng phn tn, a tng c tnh bo mt cao. l cng ngh J2EE- Java 2 Platform, Enterprise Edition, n tng i mi. Cng vi cng ngh ny, ngn ng m hnh thun nht(UMLUnified Modeling Language) l ngi bn ng hnh m hnh ha, hin thc ho ng dng trong qu trnh phn tch v thit k hng i tng. Trong n tt nghip em pht trin ng dng J2EE vi UML (Unified Modeling Language) v Rational Rose. Trong thi gian ngn cng nh kh nng, trong n cn nhiu sai st, rt mong s chnh sa ca thy hng dn v s gp t pha ngi c. Mt ln na em xin cm n thy Nguyn Thanh Tng tn tnh hng dn cho em hon thnh n ny. Nha Trang thng 07/ 2003 Sinh vin thc hin: L Quang Dung

PHN I GII THIU CNG NGH Trang 1

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 1 GII THIU V PHN TCH V THIT K HNG I TNG VI UML M hnh ha v thit k hng i tng l mt cch suy ngh v vn s dng cc m hnh c t chc xung quanh cc khi nim th gii thc. Cu trc nn tng l i tng, n kt hp c cu trc d liu v hnh vi vo trong mt thc th n. Cc m hnh hng i tng l c ch cho vic hiu vn , vic trao i vi ngi dng, m hnh ho cc t chc kinh doanh, chun b ti liu v thit k chng trnh cng c s d liu. 1.1. Cc nguyn tc c bn ca OO-Object Orientation 1.1.1. Tru tng ha (Abstraction) Tru tng ha bao gm vic tp trung vo cc kha cnh bn cht c hu ca mt thc th v l i cc c tnh ph ca n. Trong pht trin h thng, iu ny c ngha l tp trung vo i tng l ci g v lm ci g, trc khi quyt nh n c ci t nh th no. S dng tru tng ho gia quyn thc hin cc quyt nh lu di nhm trnh cc rng buc vi v ti cc chi tit. Vic s dng tru tng ha trong khi phn tch c ngha l ch gii quyt vi cc khi nim lnh vc ng dng, khng thc hin cc quyt nh thit k v ci t trc khi hiu vn . S dng chnh xc tru tng ho cho php cng mt m hnh c s dng cho c phn tch, thit k mc cao, cu trc chng trnh, cu trc d liu v ti liu. 1.1.2. Bc kn (Encapsulation) Bc kn (che giu thng tin) bao gm vic phn tch cc kha cnh bn ngoi ca i tng, t cc chi tit ci t bn trong ca i tng. Bc kn ngn nga mt chng trnh tr nn qu ph thuc ln nhau n ni mt thay i nh cng c cc hiu ng ln. Vic ci t mt i tng c th b thay i m khng nh hng n cc ng dng c dng n n. Vic bc kn l khng duy nht i vi cc ngn ng hng i tng, nhng kh nng kt hp cu trc d liu v hnh vi trong mt thc th n thc hin vic bc kn l k diu hn so vi cc ngn ng truyn thng. 1.1.3. Kt hp d liu v hnh vi(data - behavior) Ni gi mt thao tc khng cn xem xt vic thc hin thao tc cho tn ti nh th no. a hnh di chuyn gnh nng ca vic quyt nh s dng ci t no t vic gi m ti phn cp lp. Trong mt h thng hng i tng, phn cp cu trc d liu l ng nht vi phn cp k tha thao tc.

1.1.4. Phn chia K thut hng i tng xng vic phn chia ti vi mc khc nhau. Vic k tha c cu trc d liu v hnh vi cho php cu trc chung c chia s trong vi lp con ging nhau m khng d tha. Vic phn chia m s dng k tha l mt trong nhng tin b chnh ca ngn ng hng i tng. Pht trin hng i tng khng ch cho php chia s thng tin trong ng dng m cn a ra trin vng ca vic s dng li cc thit k v m trong cc n tng lai. Pht trin hng i tng cung cp cc cng c nh l tru tng bc kn, k tha xy dng cc th vin ca cc thnh phn c th dng li c. Trang 2

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML 1.2. Cc khi nim c bn ca hng i tng Khi ni v hng i tng, cc khi nim c bn sau y cn c hiu r: sau. 1.3. Pht trin hng i tng l g? Pht trin hng i tng l mt cch suy ngh mi v phn mm t c s trn nhng khi nim tru tng ang tn ti trong th gii thc. Bn cht ca vic pht trin hng i tng l nhn bit v t chc cc khi nim thuc lnh vc ng dng. 1.3.1. Cc khi nim m hnh ho Cc ngn ng lp trnh hng i tng l c ch trong vic loi b cc hn ch do tnh khng mm do ca cc ngn ng lp trnh truyn thng. Pht trin hng i tng l qu trnh nhn thc c lp vi ngn ng lp trnh cho n cc bc cui cng. Pht trin hng i tng l hng suy ngh mi v khng l k thut lp trnh. Li ch ca vn ny l gip cc chuyn gia, pht trin vin v khch hng biu l cc khi nim tru tng mt cch r rng v truyn gi chng ti ni khc. N c th phc v nh l mt trung gian cho vic xc nh, phn tch, lp ti liu v giao tip cng nh vic lp trnh. 1.3.2. Phng php hng I tng Chng ta a ra phng php pht trin hng i tng v cc k hiu ha cho vic biu din cc khi nim hng i tng. Phng php bao gm vic xy dng mt m hnh ca lnh vc ng dng, sau thm cc chi tit vo n trong khi thit k h thng. C nhiu phng php phn tch v thit k hng i tng khc nhau tiu biu l cc phng php Booch ca Grady Booch, phng php OMT (Object Modeling Technique) ca James Rumbaugh, phng php OOSE (Object Oriented Software Engineering) ca Ivar Jacobson. Nhn chung, mt cch chc chn rng cc phng php ny u bao gm cc bc: phn tch, thit k h thng, thit k i tng, ci t. Mc d vy, mi phng php c cch thc m hnh ho khc nhau. Trong n ny, em s trnh by phng php hng i tng vi vic s dng k php ca UML m hnh ho. 1.4. Li ch v sc mnh ca OO Cch tip cn hng chc nng Trc kia chng ta thng hay s dng phng php hng chc nng xy dng h thng. Vi phng php ny, d liu v chc nng(hnh vi hay x l) c tch ra Trang 3 i tng (Object) Lp (Class) Thuc tnh (Atribute) Thao tc (Operation) Giao tip a hnh (Interface - Polymorphism) Thnh phn (Component) ng gi (Package) H thng con (Subsystem) Quan h (Relationship) phn

Tt c cc khi nim ny c trnh by trong phn tng quan v UML

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

ring r. , chc nng c coi nh l nhng hnh vi c tnh ch ng, cn d liu l b phn nm gi thng tin mt cch b ng v c tc ng bi cc chc nng. H thng c chia thnh cc chc nng nh dn cho ti khi n c th d dng cho vic m ho, cn d liu c gi gia cc chc nng ny. Mt h thng c pht trin theo cch ny thng tr nn kh bo tr. Mt vn quan trng vi phng php hng chc nng l tt c cc chc nng phi bit lm th no d liu c lu tr, cu trc d liu ca n. Cc kiu khc nhau ca d liu c nhng nh dng khc nhau, v th vic m ho chng trnh tr nn rc ri. Hn na, khi ta thay i cu trc d liu, dn n ta phi thay i tt c cc chc nng lin quan n cu trc ny. H thng c pht trin theo phng php ny tr nn c tnh n nh km. Mt cht thay i s gy nn hu qu nghim trng. Mt vn khc i vi phng php hng chc nng l chng ta thng khng c nhng t duy mt cch t nhin v cu trc ca vn n c cu to nh th no. Do vy vic xy dng h thng tr nn kh khn hn. Mt nguyn nhn khc i vi phng php hng chc nng l h thng rt kh sa i, tnh kh chuyn km, nhy cm vi s thay i, v d liu v hnh vi b tch ring. Cch tip cn hng i tng Vic pht trin h thng theo cch tip cn hng i tng s mang li cho ta nhiu li ch, tiu biu l: - Gim chi ph bo tr: bi v hu ht cc x l trong h thng c bc kn - d liu v hnh vi c gom chung li, cc hnh vi c th c s dng li v kt hp thnh cc hnh vi mi. - M hnh th gii thc: h thng hng i tng l nh hng m hnh th gii thc. Cc i tng c t chc thnh cc lp i tng, v cc i tng c kt hp vi cc hnh vi. M hnh da trn i tng hn l da trn d liu v x l. Cch thc ny gn gi vi t duy con ngi, do vy vic xy dng d dng hn. - Tnh tin cy cao: bi v cc hnh vi mi c xy dng t cc i tng c sn. - Kh nng s dng li m ngun cao: bi c ch kt hp d liu vi hnh vi vo mt i tng ring bit, c ch ng gi, c ch bc kn. Do vy, d dng cho vic k tha, hay s dng li. 1.5. Tng quan v UML UML c vit tt ca cm t Unified Modeling Language, tm dch l ngn ng m hnh hp nht. UML l th h k v ca ln sng phn tch v thit k hng i tng (OOA & D) xut hin trong nhng nm u 80 v cui nhng nm 90. UML pht trin trn s hp nht trong cc phng php ca tc gi Booch, Rumbaugh (OMT) v Jacopson, v c chun ha bi OGM.

Trang 4

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.1: s hp nht ca UML UML c gi l mt ngn ng m hnh ha dng c t, trc quan ha dng xy dng v lm su liu cho cc h thng phn mm M hnh ha : gip cho chng ta hiu c th gii thc, m hnh ha th gii thc c th hiu c nhng c trng, tnh ton cc thng s v d on kt qu s t c. Ngn ng : Chc nng ca UML nh l mt phng tin by t v trao i tri thc (giao tip) Trc quan ha h thng : c s dng din t h thng mt cch trc quan trc khi n c thc hin. Xy dng h thng : c s dng hin thc ha h thng. Lm su liu : c s dng nm bt kin thc v h thng thng qua vng i ca n. UML khng phi l : Mt ngn ng lp trnh trc quan, m n l mt ngn ng m hnh. Mt cng c, m n l mt ngn ng c t m hnh Mt x l, m n cho php x l UML thch hp vi vic gii quyt vn hng i tng. Bt k ai quan tm n UML u quen thuc vi nguyn l c bn v vic gii quyt vn hng i tng, bt u vi vic xy dng m hnh. M hnh (model ) l s tru tng ho vn c bn. Phm vi (domain ) l th gii thc m vn mang n. M hnh cha cc i tng (objects) tc ng ln nhau bng cch gi cc thng tin (messages) khc nhau. Nu mt i tng ang tn ti th i tng c thuc tnh (attributes) v c cc hnh vi (behaviors hoc operations). Gi tr ca cc thuc tnh trong i tng c xc nh bi trng thi ca n (state). Lp (Classes) l bng thit k cho cc i tng. Lp bao gm cc thuc tnh (d liu) v cc hnh vi (phng thc hoc hm) trong mt thc th ring bit n gin. Cc i tng l cc th hin (instance) ca cc lp. 1.5.1. Cc c im ca UML Trang 5

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Bn c im chnh ca UML c th phn bit vi cc ngn ng m hnh khc : a nng (general-purpose) Kh nng ng dng rng ri (broadly applicable) c h tr bi cc cng c (tool- supported) L mt chun cng nghip (industrial standerdized)

1.5.2 Kin trc tng qut ca UML a)Cc m hnh . Xt v c im tnh, cc m hnh nm bt mt s c im v hnh vi ca h thng. Xt v c im ng, nm bt cc c im ca h thng, v c bn chng lu tr cc tri thc v mt ng ngha. b) Cu trc View Ngy nay cc h thng phn mm cng tr nn phc tp, kh khn do vy ta khng th m hnh ha chng ch bng mt lc hay m hnh. H thng phi c phn tch di nhiu gc khc nhau. UML a ra nh ngha v cu trc View. Mi View l mt th hin ca h thng di mt kha cnh no . Mi View c th bao gm nhiu loi lc khc nhau (xem hnh 1.2) Use Case View hay cn gi l Use model view th hin cc vn v gii php lin quan n chc nng tng qut ca h thng. Logical View hay cn gi l Structure Model view hoc Static view: th hin cc vn lin quan n cu trc thit k h thng.

Hnh 1.2 : cu trc View trong UML Process View hay cn gi l bihavioral model view, Dynamic hay Collaboration View th hin cc vn lin quan n x l giao tip v ng b trong h thng. Deployment View hay cn gi l Environment model View : th hin cc vn lin quan n vic trin khai h thng. Mt s model View khc c th c s dng khi cn thit.

c) Cc lc . Lc miu t cc tri thc v mt c php c miu t quanh cu trc, Hnh 1.3 Trang 6

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.3 : Cc lc ca UML

Use Case View Lc ngi s dng (Use Case Diagram) : M t cc chc nng ca h thng. Lc Use Case din t cc Use Case trong h thng v cc quan h rng buc Logical View Lc lp (Class Diagram) : m t cu trc tnh ca h thng th hin cc phn m h thng c th x l c. Lc i tng (Object Diagram): m t cu trc tnh ca h thng ti mt thi im, n c th xem nh mt th hin ca lc lp. Process View Lc tun t ( Sequence Diagram ) :M t s tng tc gia cc thnh phn trong h thng theo thi gian. Lc cng tc (Collaboration Diagram) : m t s tng tc gia cc thnh phn trong h thng theo thi gian v khng gian. Lc trng thi (State Diagram) : m t trng thi, s hi p ca mt thnh phn trong h thng khi c nhng tc ng vo n. Lc hot ng (Activity Diagram) : m t s hot ng ca cc thnh phn trong h thng. Implementation View Lc thnh phn (Component) : m t t chc ca cc thnh phn thc thi trong h thng. Invironmen View Trang 7

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Lc trin khai (Deployment Diagram) : m t cu hnh ca cc thnh phn mi trng v trnh t ca cc thnh phn thc thi trn . 1.5.3. Cc lc trong UML Trng tm ca vic gii quyt vn hng i tng l xy dng mt m hnh. M hnh tru tng ha cc chi tit cn thit ca vn c bn v th gii thc. Trng tm ca UML c th hin qua 8 loi lc khc nhau : Use case diagrams (Lc Use case) Class diagrams (Lc lp) Sequence diagrams (Lc tun t) Collaboration diagrams (Lc cng tc) Statechart diagrams (Lc trng thi) Activity diagrams (Lc hot ng) Component diagrams (Lc thnh phn) Deployment diagrams (Lc trin khai)

1.5.3.1. Use case diagrams (Lc use case) Use case diagrams m t h thng lm g t quan im ca ngi quan st tng quan. iu quan trng l nhn mnh h thng lm g hn l lm nh th no. Lc Use case quan h gn gi n cc s kin. S kin (scenario) l nhng g xy ra khi ai tng tc vi h thng. y l s kin v mt khoa y hc: mt bnh nhn gi phng khm hn gp cho vic kim tra hng nm. Ngi tip tn tm thi gian trng gn nht trong s hn gp v lch hn gp cho thi qian . Use case l tp hp cc s kin v mt cng vic n gin hoc mc ch ca n. actor l ngi tham gia vo cc s kin trong phin lm vic. Actor ng vai tr l ngi hoc i tng hot ng. Hnh di l m t use case l Make Appointment, actor l Patient. Mi lin h gia use case v actor l mi quan h kt hp ( communication association ) (gi tt l communication ).

Hnh 1.4: actor v use case Actor c hnh que, Use case c hnh bu dc, mi quan h l ng thng lin kt gia actor v use case. Lc use case l tp hp cc actor, cc use case, cc mi quan h gia chng. Hnh v di cho ta 4 use case v 4 actor. Ch rng mt use case n gin c th c nhiu actor.

Trang 8

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.5: lc use case Lc Use case h tr 3 phm vi sau : Xc nh cc c trng : Use case mi thng thng pht sinh cc yu cu mi khi h thng phn tch v a ra cc m hnh. Giao tip vi clients : cc k hiu n gin gip cho lc use case c th giao tip vi client. Pht sinh cc trng hp test : tp hp cc s kin cho mt use case c th ngh cc trng hp cho cc s kin ny.

Chi tit lc Use case Lc Use case pht ho tng quan ca h thng. Mi lc Use case c cc actor, cc use case, cc quan h. Mt lc Use case n gin c m rng vi cc c trng thm vo hin th thng tin hn (hnh 1.6). Cc c trng ca lc Use case system boundaries (kt hp h thng) generalizations (tng qut ho) includes (bao hm) extensions (m rng)

Trang 9

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.6: lc use case m rng Lc Use case m rng lc vi cc c trng thm vo. Hnh ch nht kt hp h thng ( system boundary ) phn chia h thng t cc actor m rng. Tng qut ho (generalization) use case biu din rng mt use case l mt loi c bit n gin khc.Pay Bill l use case cha v Bill Insurance l use case con .Use case con c thay th bi use case cha bt c khi no cn thit. S tng qut ho xut hin nh mt dng vi mi tn hnh tam gic u hng v use case cha. Quan h bao hm ( Include ) qun l use case thnh use case thm vo.Quan h bao hm hu ch khi cng use case c phn chia thnh hai use case khc nhau. C Make Appointment v Request Medication quan h bao hm vi nh cng vic con. Trong lc , k hiu bao hm l ng gch t, bt u use case c s v kt thc vi mi tn n use case bao hm. ng gch t c gn nhn <<include>>. Quan h m rng (extend) ch ra mt use case l mt bin i ca use case khc. K hiu quan h m rng l ng gch t, c nhn l <<extend>> v mt mi tn hng v use case c s. im m rng (extension point) c xc nh khi use case m rng l thch hp v c vit bn trong use case c s. 1.5.3.2. Class diagrams (Lc lp) Class diagram a ra tng quan h thng bng cch hin th cc lp v quan h gia chng. Lc lp l lc tnh, hin th nhng g tc ng nhng khng xy ra nhng g khi chng tc ng. Lc lp di y m t mt khch hng t hng. Lp chnh l Order, kt hp vi n l Customer v Payment. Payment l mt trong 3 loi : Cash, Check, hoc Credit. Order cha OrderDetails v kt hp vi Item.

Trang 10

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.6:lc lp Lc lp c 3 loi quan h : association (quan h kt hp) -- mt quan h gia cc th hin ca 2 lp. y l mt quan h kt hp gia hai lp nu mt th hin ca mt lp phi bit n th hin khc lm vic vi n. Trong mt lc , mt quan h kt hp l mt lin kt, kt ni n hai lp. aggregation (quan h thu np)-- mi kt hp trong mt lp thuc v mt tp hp. Mt quan h thu np c mt hnh thoi cui im c xem l ton th. Trong lc ny,Order c mt tp hp l OrderDetails. generalization (quan h tng qut ho)-- mi lin kt k tha din t mt lp l mt lp cha (superclass) ca lp khc. Quan h tng qut ho c mt hnh tam gic biu din lp cha. Payment l lp cha ca Cash, Check, v Credit. Mt mi kt hp c hai u gii hn. Mt u c th c mt tn vai tr (role name) lc ra tnh t nhin ca mi kt hp. V d,OrderDetail l mt ng mu ca Order. navigability (tnh nh hng) : mi tn trong quan h kt hp hin th hng quan h c th xem xt v truy vn. OrderDetail c th truy vn v mu (Item) ca n nhng khng thng qua cch khc. Trong trng hp ny, OrderDetail c Item. Quan h kt hp c mi tn c tnh nh hng . multiplicity (bn s ) ca mt u quan h l s th hin ca lp kt hp vi mt u khc. Bn s l mt s hoc mt dy s. V d : mt Order ch c mt Customer, nhng mt Customer c nhiu Orders.

Bn s 0..1 0..* hoc * 1 1..*

Gii thch 0 hoc 1 th hin. Khng gii hn s th hin Chnh xc 1 th hin t nht 1 th hin Trang 11

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.7: bn s trong lc lp Mi lc lp c cc lp, cc quan h, v cc bn s. Tnh nh hng v cc vai tr l cc mu tu chn t trong lc lm sng t. Chi tit lc lp Lc lp gm cc lp, cc lin kt, cc bn s. Lc lp c th biu din nhiu thng tin. compositions (thnh phn) class member visibility and scope (phm vi v tm vc ca lp thnh vin) dependencies and constraints (ph thuc v rng buc) interfaces (giao din)

Composition and aggregation (Thnh phn v thu np) Quan h kt hp trong i tng l phn m rng ca quan h thu np. Thnh phn (Composition ) l quan h kt hp vi phn (part) thuc v ton b (whole), phn khng tn ti nu khng c ton b. Thnh phn c hin th bi hnh thoi c pha cui ton b. Trong lc ny biu din rng, mt BoxOffice thuc v mt MovieTheater.Nu b MovieTheater th s hu BoxOffice. T

Hnh 1.8:lc thnh phn v thu np

Lp thng tin: tm vc (visibility) v phm vi (scope) Ch thch lp l mt hnh ch nht gm 3 phn : tn lp, thuc tnh (attributes) v phng thc (operations). Thuc tnh v phng thc c gn theo phng thc truy xut v phm vi.

Trang 12

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.9 : lp thng tin tm v v phm vi V d minh ho cch s dng theo qui c UML. Thnh vin tnh c gch di. Thnh vin lm v d th khng. nh sau :

Phng thc c trnh by <access specifier> <name> ( <parameter list>) : <return type> Dependencies and constraints (Ph thuc v rng buc)

Danh sch thng s (parameter list) hin th mi kiu thng s sau du hai chm

Ph thuc (dependency ) l mi quan h gia hai lp m thay i lp ny c th nh hng n lp khc. Ph thuc c v nh ng gch t. Trong lc lp Co op di y ph thuc vo Company. Nu thay i Company th phi thay i Co op.

Hnh 1.10: quan h ph thuc v rng buc trong lc lp Rng buc ( constraint ) l iu kin m mi thc thi v thit k phi hon thnh. Rng buc c biu din di hai du ngoc mc {}. Rng buc trong lc trn ch ra rng mt Section c th l mt phn ca CourseSchedule.. Interfaces (Giao din) v stereotypes (Khun mu) Trang 13

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Giao din (interface) l mt tp hp cc k hiu hot ng. Trong C++, giao din c thc hin nh cc lp tru tng vi cc thnh vin o. Trong Java chng c thc hin trc tip. Lc lp di y l mt m hnh v hi ngh ngh nghip. Lp lin quan n hi ngh l SessionTalk (mt bng trnh by n gin) v Session (tp hp lin quan n SessionTalk). ShuttleSchedule vi danh sch cc ShuttleStop l phn quan trng ng k ti khch sn. Trong lc c mt rng buc, ShuttleStop c phn cp. C ba giao din trong lc : IDated, ILocatable, v ITimed. Tn ca giao din bt u bng k t I v i km vi cc phng thc tru tng c vit bng ch nghing. Mt lp nh lp ShuttleStop, vi cc phng thc kt hp trong giao din nh ILocatable, l implementation ( hoc realization ) ca giao din. Lp ShuttleStop c kiu mu ( stereotype ) << place>>. Kiu mu qui nh phng php m rng UML, l thnh phn m hnh mi c to t cc kiu tn ti. Tn kiu mu c vit trn tn lp. Giao din l mt loi c bit ca kiu mu. C hai cch k hiu giao din trong UML : mt l k hiu nh trn, hai l k hiu hnh que hoc hnh trn. Trong hnh trn ch thch, giao din l hnh trn vi ng thng kt ni n lp thi hnh.

Hnh 1.11:cc lp giao din trong lc .

Trang 14

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.12: cc lp giao din v khun mu Packages (Gi) v objects (i tng) t chc cc lc lp phc tp, ta c th nhm cc lp phc tp vo trong cc gi (packages). Mt gi l mt tp hp cc thnh phn UML lin quan. Lc di y l mt m hnh nghip v vi cc lp c nhm vo cc gi. Cc gi c dng hnh ch nht vi cc nhn (tab) u. Tn gi trong nhn hoc trong hnh ch nht. ng gch ni l quan h ph thuc (dependencies). Mt gi ph thuc vo mt gi khc nu s thay i ca gi khc c nh hng n s thay i ngay lc u.

Hnh 1.13: lc thnh phn 1.5.3.3. Object diagrams (Lc i tng) l mt loi c bit ca lc lp, biu din cc th hin thay v cc lp. Chng dng gii thch cc mi quan h phc tp, c bit l quan h qui. Lc lp di y hin th mt Department c th cha nhiu Departments khc. Trang 15

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.14: lc lp th hin quan h qui Lc i tng di y gii thch lc lp.

Hnh 1.15: lc I tng Mi hnh ch nht trong lc tng ng vi mt th hin. Tn th hin c gch di trong lc UML. Tn lp hoc tn th hin c th c loi b t lc i tng nhng ngha lc vn r. 1.5.3.4. Sequence diagrams (Lc tun t) Lc lp v lc i tng l cc cu trc (view) m hnh tnh. Lc tng tc (Interaction diagrams) l cu trc ng, m t cc i tng cng tc nh th no. Lc tun t (sequence diagram ) l lc tng tc din t cc phng thc (operations ) hot ng nh th no, thng ip no c gi n v khi no. Lc tun t c t chc theo thi gian. Cc i tng lin quan n phng thc c lit k t tri sang phi khi chng tham gia vo thng ip tun t. Di y l lc tun t cho vic t ch khch sn. i tng bt u cc thng ip tun t l Reservation window.

Trang 16

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.16: lc tun t Reservation window gi mt thng ip makeReservation()n HotelChain. Sau HotelChain gi mt thng ip makeReservation() n Hotel. Nu Hotel c phng, th n s t ch (Reservation) tha nhn vic t ch ny (Confirmation ). ng nt t gi l lifeline, biu din thi gian m i tng ang tn ti. Mi mi tn l mt thng ip gi. Mi tn i t ngi gi n nh activation bar ca thng ip trong lifeline ca ngi nhn. Activation bar biu din khong thi gian thc thi thng ip. Trong lc v d, Hotel s dng selfcall quyt nh nu c phng. Khi Hotel to cng vic t ch (Reservation) v th nhn vic t ch ny (Confirmation). Du hoa th trong self call c ngha lp li ( iteration ) chc chn rng c phng mi ngy trong khch sn. Biu thc trong du ngoc n l iu kin ( condition ). Lc c mt thng bo (note) gii thch, l on vn bn trong hnh ch nht c np qun gc. Thng bo c th t vo trong bt k lc UML no. 1.5.3.5. Collaboration diagrams (Lc cng tc) Collaboration diagrams cng l lc tng tc. Chng chuyn thng tin ging nhau nh lc tun t, nhng chng tp trung vo vai tr i tng thay v thi gian m thng ip gi n. Trong lc tun t, vai tr i tng l cc nh v thng ip c kt ni.

Trang 17

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.17: lc cng tc Hnh ch nht ca vai tr i tng c ghi trong lp hoc tn i tng hoc c hai. Tn lp c t trc du hai chm ( : ). Mi thng ip trong lc cng tc c s tun t (sequence number).Thng ip u tin c nh s 1. 1.5.3.6. Statechart diagrams (Lc trng thi) Cc i tng c cc hnh vi v trng thi. Trng thi ca i tng ph thuc vo hot ng hoc iu kin hin hnh. Lc trng thi (statechart diagram) hin th cc trng thi ca i tng v cc bin i trong trng thi. Trong lc v d, m hnh ng nhp vo h thng ngn hng trn mng.Trc ht, ng nhp vo s mt khu v s ID ca ngi , sau submit thng tin xc nhn. ng nhp c th thc hin trong 4 trng thi khng trng lp sau :Getting SSN, Getting PIN, Validating (tnh hp l), v Rejecting (loi b). T mi trng thi n mt s chuyn tip(transitions) hon ton, xc nh c trng thi k tip.

Trang 18

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.18: lc trng thi Cc trng thi c khoanh trn trong hnh ch nht. Cc chuyn tip theo hng mi tn t trng thi ny n trng thi khc. Cc s kin hoc cc iu kin c vit bn cnh mi tn. Trng thi ban u (hnh trn en) l mt ng tc gi bt u hot ng. Trng thi cui cng cng l trng thi gi kt thc hot ng. Hot ng din ra khi kt qu ca mt s kin hoc iu kin c nhn mnh trong phn trnh by hay trong hnh ng. Trong khi trng thi hp l (), i tng khng ch mt s kin bn ngoi n mt trigger chuyn i thay v trnh by mt hot ng. Kt qu ca hot ng c xc nh trng thi k tip. Tin trnh khng ng b hoc trng lp Lc tun t, lc cng tc, lc hot ng, lc trng thi l cc cu trc m hnh ng. Chng cho ta thy c cu trc bn trong m hnh. Lc tun t v lc cng tc tp trung vo cc thng ip lin quan n vic hon tt mt tin trnh n l. Lc trng thi tp trung vo mt i tng n l. Lc hot ng tp trung vo lung hot ng trong cng vic n l. Sau y l phn trnh by v cc hot ng khng ng b hoc trng lp ca lc tun t v lc trng thi . Lc tun t vi thng ip khng ng b Thng ip gi l khng ng b (asynchronous ) nu n cho php gi thm cc thng ip trong khi thng ip ban u vn cn ang x l. Thi gian ca mt thng ip khng ng b c lp vi thi gian cc thng ip xen vo. Lc tun t di y minh ho hot ng ca mt y t yu cu kim tra chun on phng mch. C hai thng dip khng ng b t Nurse :

Trang 19

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.19 : lc tun t vi thng ip khng ng b 1) yu cu phng mch (MedicalLab) ng k ngy kim tra. 2) yu cu cng ty bo him (InsuranceCompany) chp thun kim tra. Yu cu ca cc thng ip ny c gi hoc c thc hin khng thch hp. Nu InsuranceCompany chp nhn kim tra th s ln lch kim tra trong ngy c cung cp bi MedicalLab. UML s dng cc qui c thng ip sau : Biu tng ngha Thng ip c th ng b hoc khng ng b Thng ip phn hi (khng bt buc) Thng ip ng b Thng ip khng ng b Hnh 1.20: cc qui c thng ip ca UML Trng lp v khng ng b trong lc trng thi Cc trng thi trong lc trng thi c th lng nhau. Quan h cc trng thi c th nhm cng trong mt trng thi hon chnh (composite state) n l. Cc trng thi lng nhau th cn thit khi mt hot ng lin quan n cc hot ng con trng lp hoc khng ng b. Lc trng thi di y c hai tiu trnh trng lp dn vo hai trng thi con ca trng thi hon chnh Auction: Bidding v Authorizing Credit. Bidding l trng thi hon chnh vi ba trng thi con.Authorizing Credit c hai trng thi con.

Trang 20

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Auction yu cu phn nhnh u vo thnh hai tiu trnh ring bit. Tr khi c mt tn ti khc thng (nh Cancelled hoc Rejected), s tn ti t trng thi hon chnh Auction din ra khi c cc trng thi con ang tn ti.

Hnh 1.21: trng lp v khng ng b trong lc trng thi 1.5.3.7. Activity diagrams (Lc hot ng) activity diagram l mt biu tin trnh (flowchart). Lc hot ng v lc trng thi c quan h vi nhau. Khi lc trng thi tp trung vo mt i tng thng qua mt qu trnh, lc hot ng tp trung vo lung hot ng lin quan n mt tin trnh n. Lc hot ng biu din c nhiu hot ng ny ph thuc vo nhiu hot ng khc. V d chng ta s dng theo tin tnh:"Rt tin ra khi ngn hng thng qua ATM " Ba lp lin quan n hot ng Customer, ATM, v Bank.Tin trnh bt u hnh trn en u tin pha trn v kt thc hnh trn trng trng tm l mu en pha di. Lc hot ng c th phn chia thnh i tng swimlanes xc nh i tng no lin quan n hot ng ny. Mt chuyn i (transition) n gin ra khi hnh ng kt ni n hnh ng khc. Mt chuyn i c th tch ra thnh hai hay nhiu chuyn i ring bit qua li. Biu thc chn (Guard expressions) bn trong du [] chuyn i ra khi mt nhnh. Mt nhnh v nhnh k tip ca n kt hp nh du nhnh cui xut hin trong lc di dng hnh thoi rng. Mt chuyn i c th phn nhnh thnh hai hay nhiu hot ng song song. S phn nhnh v s kt hp cc tiu trnh tip theo ra khiphn nhnh xut hin trong lc nh thanh rn.

Trang 21

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 1.22: lc hot ng

Trang 22

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 2 GII THIU V J2EE (Java 2 Platform Enterprise Edition) 2.1. Gii thiu s lc v J2EE System J2EE l nn pht trin cc ng dng phn mm phn tn ca hng. T lc bt u ca ngn ng java, n thch nghi v pht trin tt. Ngy cng nhiu cng ngh tr thnh mt phn ca nn Java, cc API v cc chun mi c pht trin n nhiu a ch cn thit. Sau cng, Sun v 1 nhm nh lnh o cng nghip, di s bo tr ca open Java Community Process(JCP) hp nht tt c cc chun lin quan n hng vo nn J2EE Mt h thng J2EE v tng qut c th bao gm 3 my logic nh sau: my dng cho Client, my J2EE Server, my dng cho Database Server. Xt v cc lp xy dng ng dng th bao gm 4 lp chnh: client tier, web tier, business tier v EIS tier.(hnh 2.1)

Hnh 2.1:tng qut cc my logic ca J2EE Client tier: Application clients: l ng dng client thc thi trn my client (logic) v chun b trc mt s cch thc cho user c th giao tip h thng J2EE thc hin mt cng vic no . Cch thc giao tip c th l thng qua giao din ha hoc dng lnh. Application client c th truy xut trc tip n cc EJB ca lp Business hoc c th th thit lp mt kt ni HTTP n cc servlet ca lp Web. Web Browsers: l mi trng thc thi cc ng dng trn web ca my logic client Applets: cng l mt hnh thc ca application client nhng c thit k c download xung v thc thi trn Java VM ca Web Browser, do kh nng ca Applet c khng ch bi Web Browser. Trang 23

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

JavaBeans component: client cng c th bao gm mt s JavaBean qun l dng data giao tip gia cc application client hoc applet giao tip vi cc component thc thi trn J2EE server. Sau y l s giao tip gia Client tier v J2EE server:

Hnh 2.2: s giao tip gia Client tier v J2EE server Web tier: Bao gm cc trang JSP v cc servlet v c th c cc JavaBean qun l cc dng d liu gia cc web components v business tier ca h thng J2EE.

Hnh2.3:s tng Web tier Business tier: Business tier l mt lp logic dng thc hin vic x l ca h thng J2EE server.

Trang 24

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh2.4: s tng Business tier. Hnh v minh ha cho ta thy 1 Enterprise Bean c th nhn d liu t client, x l n (nu cn thit) v gi n n EIS tier (Enterprise Information System tier) lu tr. 1 Enterprise Bean cng c th nhn d liu t EIS tier, x l d liu (nu cn thit) v sau l gi n tr li cc chng trnh client. C 3 loi Enterprise Bean: session bean, entity bean, message-driven bean. Session Bean th hin cho mt phin dao dch vi client, vi 1 client s c 1 instance ca session bean tng ng, v instance ny c th lu gi cc thng tin ca client . Tuy nhin, khi phin giao dch kt thc (client kt thc vic thc thi), cc instance ny cng s b hy. Ngc li vi session bean, entity bean c th lu gi lu di cc thng tin v client. Cn message-driven bean l s kt hp gia sesssion bean v JMS message listener. Enterprise Information System tier (EIS tier): Lp ny thc hin vic lu tr d liu cho h thng J2EE, bao gm c cc interface giao tip vi cc Database khc nhau, v gia cc OS khc nhau trong vic qun l v lu tr file Kin trc tng th ca mt h thng J2EE: EJB container (Enterprise JavaBean container) qun l vic thc thi ca tt c cc enterprise bean cho mt ng dng J2EE. Cc enterprise bean v container ca n u c chy trn J2EE server. Web container qun l v thc thi ca tt c cc trang JSP v cc servlet cho mt ng dng J2EE. Cc web component v container ca n u c chy trn J2EE server. Application client container qun l v thc thi ca tt c cc thnh phn application client cho mt ng dng J2EE. Cc application client v container ca n u c thc thi trn my client. Applet container chnh l web browser (c cc Java Plug-in) chy trn my client.

Trang 25

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 2.5:kin trc tng th ca h thng J2EE. 2.2. Gii thiu dch v JNDI (Java Naming and Directory Interface) JNDI l dch v ng k v truy tm tn i tng chun. Enterprise JavaBeans da vo JNDI truy tm cc thnh phn phn tn thng qua mng. JNDI l mt cng ngh chnh yu c yu cu cho m khch kt ni n mt thnh phn EJB. Cch ly mt tham chiu ti mt home object thng qua dch v JNDI c trnh by hnh 2.6 nh sau:

Hnh 2.6: ly mt tham chiu n mt home object (Acquiring a reference to a home object) Trang 26

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML H thng JNDI L mt service trong h thng J2EE phc v cho vic t tn ca cc Object, trong 1 object ta c th xem nh l module, mt service thc hin mt chc nng no . Vi 1 object c th c nhiu tn c tham kho n. Thng qua JNDI, client hoc EJB c th truy xut n object thng qua tn m khng cn quan tm object nm u trn mng (khi nim tng t nh vic nh tn cho a ch IP).

Hnh 2.7: s client truy xut I tng thng qua tn Mt h thng JNDI bao gm 3 phn chnh yu sau: lookup services, service providers, v clients. Trong lookup services ng vai tr trung tm, n l cu ni gia service providers v clients. Lookup services c nhim v qun l cc dch v m service providers cung cp, service providers cung cp cc dch v cho h thng JNDI, cn clients l ngi s dng cc dch v, s kt hp cc dch v vi nhau thc hin mt cng vic no . Khi mt service provider mun a ra mt dch v no th n phi ng k dch v vi lookup services. Khi mt client mun dng mt dch v no ca h thng th n s phi xut yu cu vi lookup service, v cc dch v ca h thng c th phc v cho client khi c lookup service cho php. Qu trnh ng k mt dch v ca service provider vi lookup service c thc hin nh sau (qu trnh discovery): u tin service proveider cn thng bo cho lookup service bit nh ca mnh bng cch gi broadcast mt presence announcement packet (dng mt well-known port). Khi loopkup service nhn c mt presence announcement packet (mt packet c tnh cht thng bo), n s m ra v phn tch packet ny v ly cc thng tin v service provider v service m service provider mun cung cp. Nu lookup services chp nhn service ny th n s m cu ni TCP n IP v port do presence announcement packet cung cp gi n mt Object, object ny c gi l service registrar. Mc ch ca service registrar object l to s d dng trong vic giao tip gia service providers v lookup services trong qu trnh ng k service. Khi lookup service chp nhn mt service mi bng cch gi li cho service providers mt service registrar object, th qu trnh a mt service vo lookup service c thc hin nh sau (qu trnh join): service providers s gi hm registrer() ca service registrar object vi thng s l mt object, object ny gi l service item, n cha tt c cc thng tin cn thit cho mt dch v cn a vo h thng JNDI. Khi qu trnh a Service Item vo lookup service kt thc thnh cng th ta c th coi nh qu trnh a mt service mi vo h thng JNDI thnh cng. Service Item c bn cht l mt container v n cha mt s cc Object khc, trong chnh yu nht l mt object c t tn l service object. y l object m thng qua , client c th tng tc vi service. Ngoi ra, service item cn cha mt s cc Object thuc tnh khc nh icon, GUIs ca service. Trang 27

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Trong service registrar object cng cn c mt method c tn l lookup() dnh cho client yu cu lookup service kim tra tnh tn ti ca 1 hoc 1 s service trong h thng JNDI. V method ny tr v service object cho client. Khi client gi mt method trong service object th service object s kt ni trc tip vi service provider tng ng thc thi method (thng qua RMI)

Trong J2EE, JNDI c s dng bi client nhn ConnectionFactory object. C 2 loi k thut c th dng c cho JNDI lookup ca ConnectionFactory Object: Da trn c s ca k thut Serialication: s dng java.io.Serializable. Application server/component to ra mt instance ManagedConnectionFactory. Instance ny c cu hnh bng cch s dng cc thng tin c lu trong 1 file cu hnh theo c php ca XML (cc thng tin v server name, port, gateway). Bc k tip l server/component to ra v thit lp cu hnh cho mt instance ca ConnectionManager v truyn instance ny n method createConnectionFactory ca ManagedConnectionFactory object. Khi server/component thc hin JNDI loookup th n s tr v 1 ConnectionFactory object s dng cho Connection ny. Da trn c s ca k thut Referenceable: s dng javax.naming.spi.ObjectFactory v javax.naming.Referenceable. Application/Component to ra mt Reference object. Reference ny cha tt c cc thng tin m application server/component cn to v cu hnh cho mt ManagedConnectionFactory tng ng. Reference ny c th cha cp <reference name>/<logical name> c s dng nhn cc t tnh ca factory, reference cng c th l mt chui nh phn cha cc thng s dng thit lp cho ManagedConnectionFactory. Method getObjectInstance s c gi khi component thc hin thao tc loookup ca ConnectionFactory. loookup 1 object from naming service, ta s dng Context.lookup() vi thng s l tn ca object m ta mun nhn 2.3. Gii thiu v JDBC (Java Database Connectivity) JDBC l mt chun m rng ca Java cho vic truy cp d liu, m cho php ngi lp trnh Java m ha n giao din lp trnh ng dng c s d liu quan h ng nht. Bng cch dng JDBC, ngi lp trnh Java c th trnh din vic kt ni c s d liu, xut cc cu lnh SQL, kt qu ca vic x l c s d liu, v nhiu cch linh ng lin quan khc. Clients lp trnh n JDBC API ng nht, ci ny c thc hin bi trnh iu khin JDBC (JDBC Driver), mt trnh iu hp m bit cch lm th no giao tip n c s d liu vi cch c quyn. JDBC tng t nh chun ODBC(Open Database Connectivity), v cu ni thng qua hai thnh phn thao tc kh tt l JDBC-ODBC. JDBC 2.0 cha s h tr cho s thm d kt ni c s d liu, tng s c lp c s d liu i vi m ng dng ca bn. Trang 28

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 2.7: kt nI c s d liu qua cu nI JDBC (Java Database Connectivity) 2.4. Gii thiu v RMI (Remote Method Invocation) Mc ch l to ra mt Java distributed object model. Trong kin trc ca RMI, c mt yu t kh quan trng m ta cn phi xc nh r rng, l vic nh ngha ra cc method v vic thc thi cc method l hon ton khc nhau. RMI cho php ta nh ngha 1 method vi m thc thi ca n trn 1 JVM (Java Virtual Machine) v c th gi thc thi method trn mt JVM khc.

Hnh 2.8: gi thc thi phng thc thng qua RMI RMI Architecture Layers: kin trc ca RMI c th phn vo 3 lp sau: Stub and Skeleton layer: lp ny c nhim v giao tip trc tip vi chng trnh ng dng, tip nhn cc li gi method ca server t client. Remote Reference layer: lp ny qun l cc tham kho c thit lp t client n remote object service trn server. y cng l lp dng thit lp kt ni t client n remote object service trn server. Transport layer: thit lp kt ni TCP/IP gia cc my vi nhau trn mng truyn d liu khi lp Remote Reference yu cu. Kin trc 3 lp ca RMI c th hin nh hnh v sau:

Trang 29

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 2.9: s kin trc ba lp ca RMI Lm th no mt client c th tm ra mt RMI remote service? Client tm remote service thng qua vic s dng naming or directory service, (1 naming or derectory service c chy trn mt well-known host v port). Trn my host, 1 chng trnh server to ra mt remote service bng cch: u tin n to ra mt local object thc thi service , sau n export object n RMI. Khi mt object c export, RMI to ra mt listening service ch client kt ni n. Sau qu trnh export, server ng k object trong RMI vi mt public name v public name ny c th c client s dng kt ni vi object tng ng. RMI (Java Remote Method Invocation) system l mt c cu cho php 1 object trn 1 JVM (Java Virtual Machine) gi method ca 1 object trn 1 JVM khc. Bt k cc object c method c th c gi t xa u phi thc thi (implement) interface java.rmi.Remote. Khi 1 object c gi, cc gi tr truyn cho method c gi t JVM cc b (JVM c cha chng trnh pht sinh li gi remote method) n JVM cha object c method v kt qu tr v c gi v li cho JVM cc b. to nn 1 remote object, chng trnh phi ng k object vi RMI registry. Chng trnh phi cung cp 1 ci tn cho object khi ng k. Khi mt chng trnh no mun truy xut n 1 remote object, n phi cung cp cho RMI system tn ca object m n mun truy xut v h thng s tr v cho chng trnh 1 reference n remote object (gi l stub). Khi chng trnh nhn c stub ca 1 remote object th n c th gi cc method ca remote object c trong stub. Chui tn ca 1 object c RMI register chp nhn phi c c php nh sau rmi:hostname:port/remoteObjectName trong hostname v port ch nh my v port m trn RMI registry ang chy, v remoteObjectName l tn ca remote object c ng k. Ch rng, hostname, port v tip u ng rmi l tu chn. Nu hostname khng c t t th gi tr default l localhost, gi tr default ca port l 1099. RMI c h tr bi vic s dng Java Remote Method Protocol (JRMP) v Internet Inter-ORB Protocol (IIOP). JRMP l t t giao thc c thit k cho RMI, cn IIOP l giao thc chun cho vic giao tip gia cc CORBA object. RMI trn IIOP cho php cc Java remote object khng ch giao tip vi cc CORBA object vit bng Java m cn bng bt k ngn ng khc. 2.5.Tng quan v Enterprise JavaBean(l thnh phn chnh trong c t J2EE) Enterprise JavaBean l m hnh lp trnh ng dng a tng. Cu trc EJB l cu trc Component pht trin v trin khai cc ng dng nghip v phn tn. Cc ng dng c vit vi cu trc EJB c th bo mt a ngi dng, chia mc v thc hin giao tc. Nhng ng dng ny c th c vit mt ln sau c trin khai trn bt k nn server no m h tr c t EJB. Mi trng m cc i tng Bean s hot ng gi l trnh cha (Container). Cc trnh cha s kim sot vic khi to, cung cp ti nguyn cho i tng, lu tr phc hi i tng. Trang 30

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML EJB server cung cp cc dch v h thng v qun l Container(hnh 2.10). EJB server c kh nng cung cp cc dch v giao tc v dch v ng k v truy tm tn i tng (JNDI-Java Naming and Directory Interface). EJB object bao bc cc th hin bean. N c sinh ra bi cc tin ch ca nh cung cp EJB Container. EJB object ci t remote interface ca bean.

Hnh 2.10 Quan h gia EJB server v EJB container EJB home gn ging vi EJB object, n c t ng sinh ra khi ci t enterprise bean trong Container. N ci t cc phng thc c nh ngha bi home interface v chu trch nhim h tr container qun l vng i bean. Kt hp vi EJB container, EJB home chu trch nhim to, t, v loi b enterprise bean. Khi phng thc to c gi trn home interface th EJB home to mt th hin ca EJB object m tham chiu ti th hin bean c kiu tng ng. Khi th hin bean c kt hp vi EJB object th phng thc ejbCreate() tng ng ca th hin s c gi. Khi hon thnh phng thc ejbCeate(), EJB home tr li tham chiu remote ti client cho EJB object. Sau client c th lm vic trc tip vi EJB object bng cc phng thc nghip v. ci t Enterprise JavaBean, chng ta cn hai nh ngha interface v mt hoc hai lp: Home interface: nh ngha phng thc vng i ca bean: to mt th hin bean mi, loi b bean, v tm kim bean. Remote interface: nh ngha cc phng thc nghip v, (m rng javax.ejb. EJBObject-i tng ny li l m rng ca java.rmi.Remote). Bean class: ci t cc phng thc nghip v ca bean, khng ci t cc phng thc ca home interface v remote interface. Primary key: l mt lp cc k n gin, cung cp con tr ti c s d liu. Ch bean thc th(entity bean) mi cn primary key. Hot ng: client khng bao gi tng tc trc tip vi lp bean m n lun lun s dng cc phng thc giao tip home interface v remote interface ca bean thc hin cng vic ca n. Client s dng dch v JNDI tham chiu ti lp ch. Lp ch s triu gi phng thc to ra tham chiu n lp giao tip ca bean ri tr v trnh khch. Trnh Trang 31

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML khch triu gi bean thng qua lp giao tip trung gian m do lp ch tr v. Lp trung gian ny l giao tip gia trnh cha Container v i tng bean thc s. Nh ta gii thiu trn, enterprise bean l mt thnh phn phn mm pha Server m c th trin khai trong mt mi trng phn tn. Mt enterprise bean c th gm mt hay nhiu cc i tng java ti v mt thnh phn c th l nhiu hn mt i tng n gin. C cc loi Bean:(Type of Beans) Session Beans:(Bean thao tc) ch c nhim v phc v trnh khch trong mt phin kt ni. Bean thao tc ch thc hin cc hnh vi x l, tnh ton n thun khng i hi n vic th hin d liu. Cc Session bean c th dng bi mt my khch ti mt thi im, chng khng chia x cho cc my khch khc. Khi my khch ang dng mt session bean my khch l my khch duy nht gii quyt session bean . iu ny tri ngc vi entity bean, trng thi ca n c chia x gia cc my khch vi nhau. Trong session bean c chia lm hai loi: Stateful Session Bean v Stateless Session Bean: Stateful Session Bean: l cc thnh phn bean cn lu li kt qu hay v tr giao dch trc phc v cho cc ln giao dch tip theo - thng phc v cho nhng thao tc i hi qua nhiu bc triu gi trc khi tr v kt qu cui cng. Stateless Session Bean: l cc thnh phn bean khng lu li trng thi ca giao dch trc s dng li cho ln giao dch sau. Session beans qun l cc x l nghip v. Cc session bean c th s dng entity beans th hin d liu m chng dng. Mt im khc bit gia Session Bean v Entity Bean l: Entity Bean c vng i lu hn Session Bean nhiu. Khi ng dng Server b s c th Entity Bean c th c xy dng li trong b nh bng cch n gin l c li d liu t c s d liu bn vng. Entity Bean: Mt phn c bn khc ca mt nghip v l bn vng d liu m x l nghip v s dng. Entity Bean chnh l mt thnh phn m i din cho bn vng d liu. Entity Bean khng cha x l nghip v logic. C hai loi bean thc th (entity bean) Bean thc th t qun l(Bean Managed Persistent Entity Beans): l cc thnh phn bean c kh nng t truy vn cc h c s d liu ly v d liu n th hin. BMP (Bean Managed Persistent) c nhng u im: mnh c th vit m cho cc phng thc, nht l cc phng thc thao tc vi nhiu bng d liu cng mt lc. ng thi s tin hn khi to mi d liu, v ta c th s dng nh dng sequence tng t ng ch s id trong bng d liu. Nhng c mt nhc im l s tn thi gian vit, m chnh ta vit th c th b li. Bean thc th qun l bi trnh cha: (Container Managed Persistent Entity Beans) L cc thnh phn bean khng cn s dng lnh SQL tm kim hay to mi d liu m ch cn khai bo cc tn trng hay ct d liu tng ng vi cc bng trong h CSDL. Trnh cha s t ng thc hin cng vic truy vn d liu gip thnh phn bean. CMP(Container Managed Persistent) li c mt u im rt ln l chng ta khng phi vit m, trnh cha thc hin iu ny. V nh th chng trnh khng bao gi c li. Nhng n li bt li ch: trng primary key c kiu java.math.BigDecimal nn khng tn dng c nh dng sequence ca c s d liu. Hn na, khi chng ta cn thao tc Trang 32

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML vi nhiu bng cng mt lc(c s join gia cc bng) th s phc tp hn- cn vit thm lp bean kt ni hai thc th bean ca hai bng d liu kia. Message driven bean: x l cc thng ip ( message mt cch khng ng b. N tng t nh stateless session bean ch n khng lu tr trng thi giao dch. im khc vi Session v Entity Bean l client khng th truy cp chng qua interface. Message driven bean ch l mt lp bean, khng c interface. Ch cn mt bean ny n vn c th x l nhiu message t nhiu hoc mt client. Bean ny l mt khi m ng dng m c th thc hin khi message n. 2.6. Pht trin cc thnh phn: (Developing Beans) The Enterprise Bean class: c t EJB nh ngha vi giao tip chun m lp bean c th thc hin. Sc mnh giao tip ca lp bean l trnh by cc phng thc m bo m tt c cc beans phi cung cp, nh nh ngha bi m hnh thnh phn EJB. Trnh cha gi nhng phng thc yu cu qun l cc bean v thay i bean n cc s kin quan trng. Hu ht cc giao tip c bn ca cc lp bean (c session v entity bean) phi thc hin l: public interface javax.ejb.EnterpriseBean { } Source 3.1 javax.ejb.EnterpriseBean interface The EJB object: Khi mt my khch mun dng mt th hin ca mt lp enterprise bean, my khch khng bao gi triu gi phng thc mt cch trc tip. Ni ng hn l s vin cu b ngn chn bi trnh cha EJB v ri chuyn giao cho th hin ca bean. Trnh cha EJB ang hot ng nh mt tng gin tip gia m khch v bean. Tng gin tip ny biu hin nh mt i tng n nhn bit mng, c gi l EJB object. EJB object l mt i tng i din m nhn bit v mng, giao tc, an ninh N l mt i tng thng minh bit lm th no thc hin logic trung gian cc yu cu ti trnh cha EJB trc khi mt li gi phng thc c phc v bi mt th hin ca lp bean. Mt EJB object hot ng hn gn gia my khch v thnh phn bean, v n trnh by mi phng thc nghip v m chnh bean biu hin. EJB object chuyn giao tt c cc yu cu my khch n bean. EJB object l mt thnh phn vt l ca trnh cha (container). The Remote Interface: nh ngha cc phng thc nghip v. Cc thnh phn my khch triu gi phng thc trn EJB object, ng hn l chnh cc bean . thc hin iu ny, EJB object phi nh ngha tng phng thc nghip v m cc lp bean biu hin. Nhng lm th no cc cng c t ng to ra EJB object bit phng thc no nh ngha? Cu tr li l mt giao tip c bit m nh cung cp bean vit. Giao tip ny sao li tt c cc phng thc nghip v m lp bean tng ng biu hin. Giao tip ny c gi l remote interface. Remote interface phi ph hp vi cc lut m c t EJB nh ngha. Xem m ngun 3.2(Source 3.2) extends java.io.Serializable

Trang 33

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 2.11: s gi phng thc t Client n EJB objects public interface javax.ejb.EJBObject extends java.rmi.Remote { public abstract java.ejb.EJBHome getEJBHome() throws java.rmi.RemoteException; public abstract java.lang.object getPrimaryKey() throws java.rmi.RemoteException; public abstract void remove() throws java.rmi.RemoteException,javax.ejb.RemoveException; public abstract java.ejb.Handle getHandle() throws java.rmi.RemoteException; public abstract boolean isIdentical(javax.ejb.EJBObject) throws java.rmi.RemoteException; } Source 3.2 the javax.ejb.EJBObject interface M khch mun lm vic vi cc bean gi cc phng thc trong javax.ejb.EJBObject. M khch c th l ng dng stand-alone, applets, servlet thm ch c cc bean khc. Thm vo , remote interface sao li cc phng thc nghip v ca bean. Khi mt trnh khch ca bean triu gi bt k phng thc nghip v no, EJB object s chuyn giao phng thc ti s thc hin tng ng, s thc hin ny c tr bn trong cc bean . The Home Object: Nh chng ta bit, m client x l vi EJB object v khng bao gi lm vic trc tip vi bean. Cu hi l lm th no trnh khch t c tham chiu ti EJB object. My khch khng th thuyt minh EJB object mt cch trc tip ti v EJB object c th tn ti trn mt my khc ch khng cng trn my client. Dng nh s nh v EJB object l trong sut, v vy my khch s khng bao gi nhn ra chnh xc EJB object c tr ni no. t c tham chiu ti mt EJB object, m client yu cu mt EJB object t mt x nghip EJB object (EJB object factory). X nghip ny chu trch nhim cho s thuyt minh EJB object. c t EJB gi x nghip ny l mt home object. Trch nhim ca home object l lm cc vic sau: + To EJB objects Trang 34

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML + Tm cc EJB object ang tn ti + Hy b cc EJB object. Home object l mt phn vt l ca trnh cha v c t ng to ra bi cng c ca nh cung cp trnh cha(container provider). The Home Interface: Chng ta thy home object l cc x nghip cho EJB object. Nhng bn phi cung cp thng tin cho trnh cha bng c t mt home interface. Home interface nh ngha cc phng thc n gin cho vic to, hu, tm kim EJB object. Home object ca trnh cha thc hin home interface cho chng ta. Vi phng thc m c t EJB yu cu cc home interface phi h tr. Nhng phng thc yu cu ny c nh ngha trong javax.ejb. EJBHome interface- mt home interface m home interface ca chng ta phi tha k. Javax.ejb. EJBHome c trnh by nh sau: Public interface javax.ejb.EJBHome extendx java.rmi.Remote { public abstract EJBMetaData getEJBMeTaData() throws java.rmi.RemoteException; public abstract void remove(Handle handle) throws java.rmi.RemoteException, javax.ejb.RemoveException; public abstract void remove(Object primaryKey) throws java.rmi.RemoteException, javax.ejb.RemoveException; } Source 3.3 The javax.ejb.EJBHome interface

Hnh 2.12:s yu cu to mt EJB object t Home objects Trang 35

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Gii thch qu trnh lm vic ca hnh 2.11 v 2.12: Khi phng thc to c gi trn home interface t trnh khch th EJB home to mt th hin ca EJB object m tham chiu ti th hin bean c kiu tng ng. Khi th hin bean c kt hp vi EJB object th phng thc ejbCreate() tng ng ca th hin s c gi. Khi hon thnh phng thc ejbCeate(), EJB home tr li tham chiu remote ti client cho EJB object, (hnh 2.12) . Sau client c th lm vic trc tip vi EJB object bng cc phng thc nghip v, (hnh 2.11) .

PHN II PHT TRIN NG DNG

Trong phn ny s xy dng ng dng E-store m t nhng k thut, cng ngh trong vic pht trin ng dng theo cng ngh J2EE. ng dng c m t phn tch vi use case v min phn tch theo UML. Sau c thit k theo kin trc MVC ModelView-Controller. Cui cng s ci t theo cc tng nh sau: Tng giao din Web (Web tier):cng ngh JSP, JavaBean, Servlet Tng nghip v (Business tier): cng ngh EJB (Enterprise Java Bean) phin bn 1.x Tng EIS (Enterprise Information System tier) Tm hiu vic s dng UML phn tch thit k ng dng theo hng i tng. Minh ha cch s dng Rational Rose Tm hiu cng ngh EJB, JSP, Servlet ... ca c t J2EE. Trang 36

Mc ch ca pht trin ng dng ny l:

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 3 PHN TCH M T YU CU TRNG HP NGI DNG V KCH BN NG DNG

3.1. M t kch bn ca ng dng ng dng ny l mt phn ca h thng thng mi in t. ng dng ny m trch chc nng chnh trong c h thng, cho php khch hng tm chn v t mua hng thng qua mng. V kh nng v thi gian nn em ch tp trung vo phn ng dng ny. Kch bn mua hng c m t theo trnh t sau: 1. Khch hng truy cp vo trang ch Web site ca ng dng ny. N cho php tm sn phm thng qua giao din tm kim. 2. Bt c khi no khch hng cng c th ng nhp vo h thng bng cch cung cp mt account v password. Nu khch hng cha c account th h thng yu cu to mi account bt c khi no. 3. Khch hng duyt qua danh mc hng, khch hng chn loi hng hin th danh sch tt c cc sn phm trong loi hng . 4. Khch hng chn mt sn phm c th trong danh sch. H thng hin th thng tin v sn phm chn nh: s m t v sn phm, hnh nh, thng tin gi c. Mi sn phm c nhiu mc hng, mi mc hng c trnh by ring bit. 5. Khch hng quyt nh mua mt mc hng c th 6. Khch hng chn mc hng cn mua vo trong gi hng. Nu khch hng cha ng nhp vo h thng th c h thng yu cu ng nhp. Nu khch hng cha c ti khon th c th to mi. 7. Khi khch hng yu cu ghi tn trc khi ri h thng th h thng s hin th cc mc hng chn cng vi thng tin gi c. 8. Khch hng xc nhn ho n, h thng thu thp thng tin v vn chuyn, thanh ton cho ha n. 9. Cui cng khch hng xc nhn n t hng v h thng chp nhn vic pht chuyn ha n i. 3.2. Phn tch yu cu trng hp ngi dng Bc u tin trong qu trnh phn tch l ta nh ngha cc use case - nhng chc nng yu cu h thng. Vic phn tch use case lin quan n vic phn tch nhng c t ca ngi s dng pht hin ra cc use case, actor. 3.2.1. Xc nh cc Actor T m t kch bn ca ng dng ta c c Actor l khch hng (customer) Khch hng l ngi cn tm mn hng v t mua hng trn mng thng qua h thng ny. Trang 37

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML 3.2.2. Xc nh cc Use case Qua qu trnh kho st c t ng dng c c cc use case ca phn ng dng ny nh sau: To ti khon (create account) Cp nht ti khon (update account) ng nhp vo v thot khi h thng (signin and off ) Duyt xem danh mc hng (browse catalog): tm kim danh mc(search catalog), duyt xem loi hng (browse category), duyt xem chi tit sn phm (browse product details), duyt xem chi tit mc hng (browse Item details) Chn mua hng vo gi (shopping cart): thm v xo mc hng(add and remove Item), cp nht s lng ca mc hng (update quantity item), t mua mc hng (order item) Gi n mua hng n trung tm x l n hng (Send Purchase Order to Order Fulfillment Center)

Hnh 3.1: lc cc Use case ca c ng dng

Trang 38

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML 3.2.3. M t cc use case 3.2.3.1 Use case to ti khon (create account) Tm tt Use case ny cho php ngi dng to v kch hot mt account cha thng tin ngi dng. Mt khi account c to v c kch hot, ngi dng c xem nh c ng nhp. Cc lung s kin Lung cc s kin chnh Use case ny bt u khi ngi dng mun to mt account mi, ngi cha c account trong h thng. 1. H thng hin th thng tin m ngi dng phi nhp vo. 2. Ngi dng nhp thng tin c yu cu v h thng lu nhng gi tr . 3. Ngi dng submit nhng thng tin va nhp. Mt account mi c to. 4. H thng thng bo account c to thnh cng 5. Account c to thnh cng, xem nh ng nhp vo h thng. 6. Use case kt thc. Lung s kin ph 1. Ngi dng nhp thng tin ca account khng hp l. Nu h thng xc nh thng tin m ngi dng nhp vo khng hp l th xy ra cc iu sau: - H thng thng bo nhng d liu nhp vo khng hiu lc, yu cu nhp li. - Ngi dng nhp li thng tin v h thng xc nhn li nhng thng tin . - Nu nhp vo thng tin hp l th s c lu vo h thng. - Nu khng hp l th h thng yu cu nhp li cho n khi hp l. Pre Condition (iu kin trc):khng c. Post Condition (iu kin sau): 1. Account ngi dng c to. 2. Account khng c to: iu ny xy ra khi ngi dng nhp thng tin khng hp l. 3.2.3.2 Use case cp nht ti khon (update account) Tm tt Use case ny cho php ngi dng cp nht li account cha thng tin ngi dng. Mt account c cp nht khi n c v c kch hot trong h thng, thng tin mi ca account c cp nht. Cc lung s kin Lung cc s kin chnh Use case ny bt u khi ngi dng mun cp nht mt account, account c trong h thng, vi iu kin ngi dng ng nhp vo ri. 1. H thng hin th thng tin account ca ngi dng. 2. Ngi dng nhp, chnh sa thng tin cn cp nht. Trang 39

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML 3. Ngi dng submit nhng thng tin va cp nht. Account c cp nht. 4. H thng thng bo account c cp nht thnh cng 5. Use case kt thc. Lung s kin ph 1. Ngi dng nhp thng tin ca account khng hp l. Nu h thng xc nh thng tin m ngi dng nhp vo khng hp l th xy ra cc iu sau: - H thng thng bo nhng d liu nhp vo khng hiu lc, yu cu nhp li. - Ngi dng nhp li thng tin v h thng xc nhn li nhng thng tin . - Nu nhp vo thng tin hp l th s c lu vo h thng. - Nu khng hp l th h thng yu cu nhp li cho n khi hp l. Pre Condition (iu kin trc): ngi dng phi ng nhp vo h thng trc khi mun cp nht account ca mnh Post Condition (iu kin sau): 1. Account ngi dng c cp nht. 2. Account khng c cp nht: iu ny xy ra khi ngi dng nhp thng tin khng hp l. 3.2.3.3 Use case ng nhp vo v thot khi h thng (Signin and off). a) Use case ng nhp (signin) Tm tt Use case ny l ni m ngi s dng c nhn din trong h thng. Nu ngi dng c mt account trong h thng, ngi dng cung cp mt user name v password xc nhn. Nu ngi dng cha c xc nhn th cha ng nhp vo h thng c. Nu ngi dng khng c mt account trong h thng th c th to mi. Khi account c to mi th ngi dng c ng nhp. Cc lung s kin Lung cc s kin chnh Use case ny bt u khi ngi dng mun ng nhp h thng. 1. H thng a du nhc n ni nhp user name v password. 2. Ngi dng nhp thng tin user name v password vo. H thng xc nhn thng tin nhp vo c hp l hay khng. 3. H thng thng bo ng nhp thnh cng. 4. Use case kt thc. Lung s kin ph 1. New User: Ngi dng khng c mt account, h thng cho php to account. Mt khi account c to, ngi dng c xem nh ng nhp. 2. Li xc nhn ngi s dng: ngi dng nhp user name v password b sai, s ng nhp khng thnh cng, h thng bo li yu cu tr li ng nhp tip. Pre Condition (iu kin trc): khng c. Trang 40

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Post Condition (iu kin sau): nu ng nhp thnh cng, ngi dng c xc nhn vo h thng. b) Use case thot khi h thng (sign off) Tm tt Use case ny cho php ngi dng thot khi h thng sau khi ng nhp vo ri(signed in). Cc lung s kin Lung cc s kin chnh Use case ny bt u khi ngi dng mun thot khi h thng khi ng nhp ri. 1. H thng kt thc mi hot ng, kt thc mt phin ng nhp chn mua hng... 2. Ngi dng tr v trng thi cha ng nhp 3. H thng thng bo thng ip kt thc. 4. Use case kt thc. Lung s kin ph Khng c Pre Condition (iu kin trc): ngi dng phi ng nhp ri Post Condition (iu kin sau): ngi dng thot khi h thng. 3.2.3.4 Use case duyt xem danh mc hng (browse catalog) Tm tt Use case ny cho php ngi dng duyt xem danh mc hng trong h thng. Ngi dng c th tm kim mc hng c th hoc cc mc hng xp sn thnh loi (category). H thng hin th thng tin mc hng yu cu, mt khi mc hng hin th, ngi dng c th chn vo gi hng Cc lung s kin Lung cc s kin chnh 1. Use case ny bt u khi ngi dng mun tm cc mc hng c trong h thng. 2. H thng hin th mc hng cho ngi dng, ngi dng cng c th nhp t kho tm kim. Cng vic ny c th lp i lp li nhiu ln. Tm kim c nhiu cch: - Search catalog: ngi dng nhp t kho vo tm loi hng, hoc mc hng c th. Ngi dng c th chn mc hng vo gi hng. - Browse category: ngi dng c th chn loi hng trc tip c sn trong danh mc hng (catalog). H thng hin th cc sn phm (product) ca loi hng . - Browse product detail: ngi dng sau khi duyt qua loi hng(category), cc sn phm ca loi hng c hin th. Ngi dng c th duyt qua tng loi sn phm. Mi loi sn phm c cc mc hng (Item) c th, mi mc hng gm cc thng tin: m s mc hng (ItemID), tn mc hng, v gi c ca mc hng. - Browse Item detail: khi ngi dng duyt n cc mc hng c th, ngi dng mun xem chi tit mt mc hng c th no th h thng hin th thng tin: tn mc hng, hnh nh, m t, gi c, s lng c sn trong kho hng. 3. Use case kt thc. Trang 41

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Lung s kin ph 1. T kho nhp vo tm kim khng tm thy trong h thng. Pre Condition (iu kin trc):khng c. Post Condition (iu kin sau): khng c. 3.2.3.5 Use case chn mua hng vo gi (shopping cart) Tm tt Use case ny cho php ngi dng chn mc hng v t vo gi hng. Khi ngi dng chn xong nhng mn hng mnh cn mua th xc nhn ng mua. H thng yu cu ngi mua nhp thng tin v th tn dng, a ch ho n, a ch vn chuyn. H thng s xc nhn tnh hp l ca th tn dng v nhng thng tin khc. Sau ngi dng submit ho n n h thng. H thng gi thng ip xc nhn thng qua emai. Nu ngi dng cha ng nhp th h thng bt buc phi ng nhp. Cc lung s kin Lung cc s kin chnh 1. Use case ny bt u khi ngi dng mun mua cc mc hng trong h thng. Ngi dng tm cc mc hng mnh cn mua v t cc mc hng vo gi, qu trnh chn hng lp i lp li cho n khi ngi dng chn hng xong. Trong qu trnh chn mua hng ngi dng c th: Thm hoc xo mc hng. Thay i s lng ca mt mc hng trong gi hng. ng mua mc hng . 2. Khi chn xong gi hng, h thng yu cu xc nhn ng mua cc mc hng . 3. Nu ngi mua cha ng nhp th h thng bt buc phi ng nhp. Khi ng nhp ri th h thng yu cu nhp thng tin v th tn dng, a ch ho n, a ch vn chuyn v cc thng tin khc. 4. H thng yu cu ngi dng xc nhn li nhng thng tin trn, ng thi h thng thm nh thng tin c hp l hay khng. 5. H thng hin th mt ho n cho ngi mua. 6. H thng gi mt thng ip xc nhn thng qua email 7. Use case kt thc. Lung s kin ph 1. Ngi dng mua mt mc hng no vi s lng vt qu s lng c trong kho. 2. Thng tin v th tn dng, a ch ho n, email ngi dng nhp vo khng hp l. Pre Condition (iu kin trc):khng c. Post Condition (iu kin sau): mt n hng c to cho ngi mua (khch hng), n hng c gi n h thng x l n hng, h thng ny xc nhn v thc hin cc bc tip theo. Trang 42

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

3.3. Phn tch min ng dng. Sau khi xy dng xong m hnh yu cu trng hp ngi dng: use case, m hnh c ngi dng tn thnh, ta pht trin m hnh phn tch, phn tch min ng dng c nm bt. 3.3.1. M hnh i tng: 3.3.1.1. Tm cc lp giao din(interface class) Bc u hnh thnh nim v giao din, l ca s tng tc gia h thng vi ngi dng. Chuyn cc yu cu ngi dng vo h thng, h thng p ng li thng tin cn thit m ngi dng mong mun. Giao din c th l cc form... 3.3.1.2. Tm cc lp min ng dng(hay cc lp nghip v) Cc th hin ca cc lp ny l cc i tng c th lu tr d liu, x l cc tnh ton nghip v, x l cc thng ip. i tng c tm nh l thc th tn ti mt cch t nhin trong min ng dng. tm i tng chng ta cn r sot li c t yu cu t m hnh use case, nm bt nhng danh t cha khi nim ch cht ca ng dng. ng thi a ra nhng chc nng m h thng cn h tr. tm i tng min nghip v (hay min ng dng) ta lm nh sau: Dng cc lung s kin ca Use case nh l u vo. Cc tru tng ho then cht ca use case. Nhn vo nhng khi nim ch cht (nhng khi nim m h thng phi h tr) rt ra nhng danh t. Gi li cc lp ng n: ta loi b cc lp khng cn thit v khng chnh xc theo cc tiu chun sau: - Cc lp d tha: nu hai lp cng biu din mt thng tin, gi li tn din t ng n nht. - Cc lp khng thch hp: nu mt lp c t hoc khng c g thc hin vn , n phi c loi b. - Cc lp m h: mt lp phi xc nh, mt s lp th c th c bin gii khng r rng hoc l qu rng, cn c loi b. - Cc thuc tnh: cc tn m t cc i tng ring l. Cc thao tc: - Cc vai tr: tn cc lp, phi phn nh bn cht t nhin ca n, khng phi l vai tr m n ng trong kt hp. - Cc cu trc ci t: cc cu trc bt ngun t th gii thc, phI c loi b, chng s c cn n trong khi thit k. Nhn din cc kt hp xc nh cc kt hp, thng thng l ta da vo ti liu c t ng dng v c bit l t m t use case rt ra cc ng t hay nhm ng t. Sau ta tin hnh lc b gi li cc kt hp tt. Ta loi b cc kt hp khng cn thit v khng chnh xc theo cc tiu chun sau: - Cc kt hp gia cc lp b loi ra: nu mt trong cc lp ca kt hp b loi b, th kt hp phi c loi b, hoc pht biu li bng cc lp khc. Trang 43

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

- Cc kt hp khng thch hp hoc ci t: loi b bt c kt hp no m ngoi lnh vc vn hoc c quan h vi cu trc ci t. - Cc tc ng: kt hp phi m t mt c tnh v cu trc ca lnh vc ng dng. - Cc kt hp ba nhnh: cc kt hp ba nhnh nn c tch ra thnh cc kt hp hai nhnh. - Cc kt hp dn xut: cc kt hp c nh ngha bng cc kt hp khc. Nhn din cc thao tc nhn din cc thao tc, mt cng c thun li l ta nhn vo cc hnh vi ca cc use case - lung cc s kin, sau phn b cc hnh vi ny vo cc lp c s dng bi use case . Nhn din cc thuc tnh Cc thuc tnh l c tnh ca i tng ring l. Thuc tnh thng tng ng vi danh t theo sau l nhm t s hu. Thuc tnh km thch hp m t y mt vn . Thuc tnh t nh hng n cu trc c s ca vn . u tin ta ghi nhn cc thuc tnh quan trng trc, sau thm dn cc chi tit vo sau. 3.4. Cc lc trong cc gi Sau khi tm ra cc lp min nghip v ta nhm cc lp c quan h gn gi vo trong cc gi. Trong mi gi c th cha gi con trong . Ta c cc gi sau: + sign in and off package: gi ng nhp + shopping cart package: gi mua chn hng, c cc gi con l: cart package v catalog package + inventory package: gi thng k s lng hng. + customer package: gi khch hng, c cc gi con l: account package, customer package, order package. Lc quan h gia cc lp nghip v v lp giao din: 3.4.1. cc lc trong gi sign in and off m hnh quan nim phn tch, m t yu cu ng dng ta ch m t s lc v cc chc nng m h thng s lm. y l m hnh giao tip gia nh pht trin vi ngi dng, n l bn mu cho s giao tip, cha can thip vo cch thc hin nh th no. Ci thuc v pha thit k. a) Cc lc trong sign in

Trang 44

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

MainForm SignInForm signin() browsec at al og() 0..1 up dateac count() displayc at al og() displays hop pingc art () se arch() signou t() creat eaccount () 0..1 s ignin () c reate ac count() enter user name an d pas sword() displa y() displa y user information() displa y m ess age() 1..*

S ignon us ername password getPas sW ord() updatePas sW ord() 1 create() rem ove() add signin()

1 SigninHandler
(from P etsto reEJB)

0..*

s ign in us er() c hec k password() validate entered usernam e and password() 0..1 retrieves us erId 0..* Ac count
(from acco unt)

Addres s
(from Uti l i ty)

Contac tInformation
(f rom Ut il ity)

getStreetName1() getStreetName2() getCity () getState() getZipCode() getCountry ()

telephone email address getE Mail() getA ddress() getTelephone()

us erId password sta tus Contac tInform ation cre ate() update() get us er info() get em ail addres s () fi nd ac count ()

Hnh 3.2 : lc lp sign in Lc tun t ca sign in

Trang 45

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

: customer

: MainForm

: SignInForm

: Signi nHandler

: Signon

: Account

1://sign in() 2://display()

3://enter user name and password( ) 4://sign in user( )

5://validate entered username and password( ) 6://fin d account( )

7://getPassWord( )

8://check password( )

9://add signin( )

10://display user information( )

Hnh 3.3: lc tun t ca sign in b) Cc lc trong sign off Lc lp ca sign off

Trang 46

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 3.4: lc lp ca sign off lc tun t ca sign off

Hnh 3.5: lc tun t ca sign off 3.4.2. cc lc trong gi shopping cart Lc lp shopping cart

Trang 47

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 3.6: lc lp ca shopping cart Lc tun t shopping cart Hnh 3.7: lc tun t ca shopping cart nh di y

Trang 48

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Trang 49

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML 3.4.3. cc lc trong gi customer Lc lp ca create account

Hnh 3.8: lc lp ca create account Lc tun t ca create account

Hnh 3.9: lc tun t ca create account Trang 50

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Lc lp ca update account

Hnh 3.10: lc lp ca update account Lc tun t ca update account

Hnh 3.11: Lc tun t ca update account

Trang 51

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 4 THIT K THNH PHN Thit k l qu trnh m rng ca pha phn tch bng vic ta thm vo nhng kha cnh k thut. Mc ch ca thit k l xc nh mt gii php d dng cho vic m ho, cng nh nhng yu cu k thut, cng ngh c trng cho ng dng. V y ng dng c xy dng theo hng thnh phn (Component), theo c t J2EE. Trc tin t pha phn tch ta xy dng nn cc thnh phn thuc tng nghip v (business tier). Cc thnh phn ny c chc nng lu tr d liu, tnh ton, x l nghip v. Trong tng ny ca ng dng ny ta xy dng cc Entity Bean, Session Bean. Vi EJB phin bn 1.x cha a loi Message Driver Bean vo. Da vo pha phn tch ta xc nh thnh phn no l Entity Bean, thc hin vic lu tr d liu, thnh phn no l Session Bean, thc hin cc thao tc tnh ton, x l, khng lin quan n vic lu tr d liu. Trc khi i vo thit k chi tit thnh phn, ta phi thit k kin trc, y l giai on thit k mc cao. Thit k kin trc ta s chn kin trc MVC- Model-View-Controller. Kin trc tng qut ny c trnh by nh hnh di y.

Hnh 4.1: kin trc tng qut ca h thng - kin trc MVC. y l kin trc c chn la xy dng ng dng, i vi cc ng dng Web, kin trc ny l la chn ti u v n gim tnh phc tp v d qun l hn. Kin trc ny tng cng mc bo tr v m rng. Bng cch tch bit logic nghip v v logic iu khin vi s trnh din d liu, kin trc ny cung cp tnh linh ng gii quyt cc ng dng phc tp.

Trang 52

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

4.1. Thit k cc thnh phn Trong ng dng ny cc Bean thc th (Entity Bean) u thuc loi BMP(Bean Managed Persistent), Bean thc th t qun l. tng nghip v (business tier) cc Entity Bean thao tc vi d liu thng qua lp DAO (Data Access Object), y l mt chin lc thit k ti u. N c lp vi cc h qun tr c s d liu. 4.1.1. Thnh phn sign in Sign in l thnh phn kiu Entity Bean (BMP), c th hin nh sau:

Hnh 4.2: m hnh EJB ca signin. S giao tip gia EJB vi lp DAO nh sau

Trang 53

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 4.3: quan h gia thnh phn EJB vi cc lp truy cp d liu 4.1.2. Thnh phn shopping cart a) Thnh phn catalog Catalog l thnh phn thuc kiu Session Bean- SB (l Stateless Session Bean), l Bean thao tc phi trng thi. S ca n c trnh by nh sau:

Hnh 4.4. s thnh phn EJB ca catalog Trang 54

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML S giao tip gia catalogEJB vi cc lp lin quan.

Hnh 4.5: quan h gia thnh phn catalogEJB vi cc lp ngip v lin quan

Trang 55

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML b) Thnh phn shopping cart L thnh phn thuc kiu Stateful Session Bean, l Bean lu vt trng thi, c trnh by nh sau:

Hnh 4.6: s EJB ca shopping cart Quan h gia shoppingcartEJB vi cc lp nghip v khc c trnh by nh sau:

Hnh 4.7: quan h gia shoppingcartEJB vi cc lp nghip v lin quan 4.1.3. Thnh phn inventory Trang 56

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML L thnh phn thuc loi Entity Bean, Bean thc th. S ca n c th hin nh sau:

Hnh 4.8: s EJB ca thnh phn Inventory Quan h gia inventoryEJB vi lp DAO c th hin nh sau:

Hnh 4.9: quan h gia inventoryEJB vi lp inventoryDAO, inventoryModel 4.1.4. Thnh phn customer Trang 57

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML a) Thnh phn order: l thnh phn thuc loi Bean thc th (Entity Bean). N c trnh by nh sau:

Hnh 4.10: s EJB ca thnh phn order Quan h gia orderEJB vi cc lp DAO v cc lp nghip v nh sau:

Hnh 4.11: quan h gia orderEJB vi lp DAO, Model v cc lp nghip v khc b) Thnh phn customer Trang 58

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML L thnh phn thuc loi Stateless Session Bean, Bean thao tc phi trng thi. c trnh by nh sau:

Hnh 4.12: s EJB ca thnh phn customer b) Thnh phn account L thnh phn thuc loi Entity Bean, Bean thc th ny c trnh by nh sau:

Hnh 4.13: s EJB ca thnh phn account Quan h gia accountEJB vi cc lp DAO v cc lp khc c trnh by nh sau: Trang 59

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 4.14: quan h gia accountEJB vi cc lp DAO, Model 4.2. Biu thnh phn ca cc thnh phn nghip v tng business tier

Hnh 4.15: biu thnh phn ca cc thnh phn nghip v

Trang 60

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 5 THIT K HIN THC HA CC USE CASE Chng ny chng ta i vo thit k ton din hin thc ha cc use case. Trong phn thit k ny chng ta tun theo gii php chn chng 4, tc theo kin trc MVC-Model-View-Controller. Trong Model l cc thnh phn (cc Enterprise Java Bean) thuc tng nghip v (business tier). View l cc trang JSP v cc lp JavaBean, ci ny thuc tng Web (Web tier). Controller l cc lp iu khin v cc EJB m hot ng nh thnh phn iu khin. N tch gia Web tier v EJB tier v ng gia lm cu ni cho hai tng ny. Theo kin trc MVC nh hnh 4.1 chng bn, ta i vo thit k cho cc use case ca ng dng. 5.1. Thit k hin thc ha cc use case 5.1.1. Thit k hin thc ha use case sign in

Hnh 5.1: lc lp ca Sign in

Trang 61

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Trang 62

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 5.2: lc tun t ca sign in (phn 1)

: customer

: MainForm

: Template

: ScreenDefinitions

: ScreenFlowManager

: SignInForm

: SignInSuccessForm

1://signin( ) 2://forward(req,resp) 3://include

4:// getSigninScreen( )

5://display( ) 6://display

Hnh 5.3: lc tun t ca sign in (phn 2). 5.1.2. Thit k hin thc ha use case create account

Hnh 5.4: lc lp ca create account Trang 63

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Trang 65

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML Hnh 5.5: lc tun t ca create account (phn 1)

Hnh 5.6: lc tun t ca create account (phn 2) Cc lc cn li ca cc use case khc c trnh by phn ph lc.

Trang 66

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

CHNG 6 THC HIN CI T V TRIN KHAI NG DNG 6.1.Thc hin ci t pha ny ta tin hnh m ho h thng. Trong h thng e-store ny ta dng ngn ng Java, vi cng ngh EJB 1.x tng nghip v (business tier) m ho. tng Web (Web tier) ta dng cng ngh JSP, Servlet, JavaBean m ho. tng c s d liu EIS (Enterprise Information System tier) ta dng h qun tr c s d liu Cloudscape tch hp trong J2EE Server. Lc thnh phn ca c h thng trnh by di y:

H nh 6.1: lc thnh phn ca h thng. 6.2. Mt vi giao din ca ng dng

Trang 67

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 6.2: form ng nhp vo h thng

Hnh 6.3: Form hin th cc sn phm

Trang 68

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 6.4: form hin th thng tin mc hng

Hnh 6.5: hin th gi hng

Trang 69

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

Hnh 6.6: hin th n hng va t 6.3. Trin khai h thng

Hnh 6.7: lc trin khai h thng E-store

Trang 70

n tt nghip - Xy dng ng dng J2EE vi Rational Rose v UML

KT LUN n tt nghip ny em i vo tip cn cng ngh J2EE, cng c UML, Rational Rose. Cc cng ngh, cng c ny tng i mi nhng em c gng tm hiu. Trong n ny, em xy dng mt ng dng J2EE cng vi Rational Rose v UML. ng dng ny mang tnh demo, cha thnh mt h thng hon chnh v y ch l mt phn ca h thng thng mi in t. Mc d c gng nhng em ch mi gii thiu v cng ngh J2EE, UML.... Nhng kin thc ny ht sc tng qut, vi s lng cng ngh mi kh nhiu nn khng th nm bt mt cch chi tit ht c. Trong thi gian ngn em tip cn cc cng ngh trn, kh trnh nhng sai st, rt mong thy hng dn tn tnh ch bo, cng nh nh gi, nhn xt. Em chn thnh cm thy Nguyn Thanh Tng hng dn v gip em hon thnh n ny. Em xin cm n thy c khoa Cng ngh thng tin trng i Hc Bch Khoa H Ni, trng i Hc Thy Sn Nha Trang gip em trong qu trnh lm n.

Trang 71

You might also like