You are on page 1of 12

CHNG 4 : XY DNG V TRIN KHAI NG DNG

4.1

C s l thuyt
Phn mm ng dng l cng c c lc gip con ngi hon thnh cng vic nht

nh mt cch d dng v nhanh chng. i vi nhng cng vic phc tp, c nhiu quy
trnh v giai on, ngi ta cn mt h thng cc phn mm ni kt vi nhau c th
thc hin mt chui cc chc nng nm trong mt chu trnh hon chnh.
Trong lun vn, h thng phn mm bao gm cc module khc nhau :
Module qun l (business, rule, thng tin nh phn phi, thng tin sn
phm, thng tin khch hng).
Module GUI (web application, desktop application, mobile application)
dnh cho nh phn phi.
Module GUI dnh cho cng ty phn phi, module report thc hin chc
nng bo co.
Module quan h khch hng thc hin cc chc nng marketing, thng bo,
chm sc khch hng.

Hnh 2.4 :H thng h tr kinh doanh theo mng.


H thng phn mm h tr kinh doanh theo mng gip cng ty phn phi, nh
phn phi hot ng hiu qu hn v tit kim thi gian hn thng qua cc chc nng:

4.1.1

Tnh chit khu.


T l tr thng.
Qun l thng tin.
Bo co thng k.
Marketing.
Chm sc khch hng.
Qun l ti chnh c nhn.

Cng ngh s dng

H thng h tr kinh doanh theo mng cn c cc c im sau :


Giao din r rng v d dng cho ngi s dng.

Kh nng s l cc nghip v phc tp v c quy trnh y .


Kh nng tng tc vi d liu nhanh chng v ng b.
Tnh cht ch v bo mt ca h thng.
C s phn bit r rng gia cc i tng v vic m rng, bo tr h thng
phi d dng.

4.1.1.1 Spring

Hnh 2.6 : M hnh cu trc ca spring framework.


4.1.1.1.1

Gii thiu

Spring l mt application framework m ngun m, c gii thiu vo nm


2002. Rod Johnson a ra tng ny t kinh nghim lm vic vi kin trc J2EE.
ng ta vit cun sch vi tiu : J2EE Develoment without using EJB
gii thiu khi nim trnh cha hng nh (lightweight container). Vi l lun: EJB th c
gi tr ca n, nhng khng phi lc no cng cn thit v ph hp cho tt c cc ng
dng.

Nh Hibernate chng li CMP v nguyn l c bn ca k thut ORM, Spring


chng li EJB v s phc tp v khng ph hp cho cc unit test. Thay v EJB, Spring s
dng Java bean, vi mt vi s thay i thu c tt c cc thun li m mi trng
EJB a ra. Do Spring l mt s la chn khc so vi EJB.
Spring khng phi l mt k thut persistence nhng n cho php tch hp vi cc
k thut khc. EJB th tp trung vo k thut persistence v by gi n cng tc vi
Hibernate, mt ORM tt nht ngy nay. N ang d nh cng tc vi mt k thut ORM
tt khc l JDO (cung cp cho Object Database).
Trong Spring, chng ta c th s dng Java Bean rt trch cc th m lc trc
ch c th vi EJB. Mc tiu chnh ca Spring l n gin vic pht trin J2EE v testing.
EJB c xut hin vo 1988 v l mt chun, c t trong th gii Enterprise.
Mc d c mt s k thut Java gn y, nhng khng c k thut no ng k so vi
EJB v mc tng cc c tnh ca n.
Theo Rod Johnson th EJB khng phc tp nhng n c gng cung cp cch gii
quyt cho cc vn phc tp. EJB c pht trin chnh cho cc giao dch, i tng
c phn pht trn my khc. Nhng mt s enterprise project khng c mc phc
tp v vn s dng EJB v thm ch cc ng dng n gin tr nn phc tp. Trong
trng hp ny th Spring l mt s chn la.
T lc Spring h tr cc dch v mc enterprise, th n tuyn b l mt s la
chn khc i vi EJB.
4.1.1.1.2

Ti sao spring c s dng trong lun vn :

Mc ch ca Spring l tr thnh mt application framework. Cc framework ph


bin khc nh Struts, Tapestry, JSF,... l cc framework tt cho tng web nhng khi
chng ta s dng cc framework ny, chng ta phi cung cp thm framework khc
gii quyt tng enterprise m tch hp tt vi cc framework ny. Spring lm gim bt
vn ny bng cch cung cp mt framework ton din bao gm:
Core bean container.

MVC framework.
AOP integration framework.
JDBC integration framework.
EJB integration framework.

Spirng cng cung cp module tch hp vi O/R tool nh Hibernate v JDO. Do


Spring framework c th c xem nh mt kin trc cha 7 module. Chc nng ca
mi thnh phn nh sau:
4.1.1.1.3

Core Container

Core container cung cp chc nng c bn ca Spring. Thnh phn chnh


ca n l Bean Factory, mt ci t ca Factory pattern. BeanFactory p dng IoC
pattern c t s ph thuc t code ca ng dng.
4.1.1.1.4

Spring Context/Application Context

Spring context l mt file cu hnh cung cp thng tin ng cnh ca


Spring. Spring context cung cp cc service nh JNDI access, EJB integration, email, internalization, validation, v scheduling functionality.
4.1.1.1.5

Spring AOP (Aspect-Oriented)

Spring AOP module tch hp chc nng lp trnh hng kha cnh vo
Spring framework thng qua cu hnh ca n. Spring AOP module cung cp cc
dch v qun l giao dch cho cc i tng trong bt k ng dng no s dng
Spring. Vi Spring AOP chng ta c th tch hp declarative transaction
management vo trong ng dng m khng cn da vo EJB component.
Spring AOP module cng a lp trnh metadata vo trong Spring. S dng
ci ny chng ta c th thm annotation vo source code hng dn Spring ni
v lm th no lin h vi aspect.
4.1.1.1.6

Spring DAO

Tng JDBC v DAO a ra mt cy phn cp exception qun l kt ni


n database, iu khin exception v thng bo li c nm bi vendor ca

database. Tng exception n gin iu khin li v gim khi lng code m


chng ta cn vit nh m v ng kt ni. Module ny cng cung cp cc dch v
qun l giao dch cho cc i tng trong ng dng Spring.
4.1.1.1.7

Spring ORM

Spring c th tch hp vi mt vi ORM framework cung cp Object


Relation tool bao gm: JDO, Hibernate, OJB v iBatis SQL Maps.
4.1.1.1.8

Spring Web module

Nm trn application context module, cung cp context cho cc ng dng


web. Spring cng h tr tch hp vi Struts, JSF v Webwork. Web module cng
lm gim bt cc cng vic iu khin nhiu request v gn cc tham s ca
request vo cc i tng domain.
4.1.1.1.9

Spring MVC Framework

MVC Framework th ci t y c tnh ca MVC pattern xy dng


cc ng dng Web. MVC framework th cu hnh thng qua giao din v cha
c mt s k thut view bao gm: JSP, Velocity, Tiles v generation of PDF v
Excel file.
4.1.1.2 ng dng cc module ca spring vo h thng phn mm

Core Container: nh ngha cc bean.


Spring Context/Application Context: s dng tp tin xml nh ngha ng cnh

cho ton b ng dng.


Spring AOP (Aspect-Oriented): qun l giao dch.
Spring DAO.
Spring ORM: kt hp vi Hibernate cho gii php tng c s d liu.
Spring Web module: kt hp vi Google Web cho gii php tng giao tip vi

ngi dng.
Spring MVC Framework: trong lun vn, Spring MVC c thay th bi GWT
MVP, mt m hnh x l hiu qu hn.

4.1.1.3 Hibernate
4.1.1.3.1

Gii thiu

ORM (Object Relational Mapping) framework l mt c ch cho php


ngi lp trnh thao tc vi database mt cch hon ton t nhin thng qua cc
i tng. Lp trnh vin hon ton khng quan tm n loi database s dng,
SQL
Hibernate l mt th vin ORM c vit bng Java tt nht hin nay.
Hibernate gii quyt tt nhng vn gp phi khi nh x cc i tng, cc quan
h gia cc i tng vi nhau, cc cch thc ca lp trnh hng i tng vo
trong c s d liu d liu quan h m khng quan tm nhiu n phn c s d
liu bn di ch cn thao tc thng qua cc lp model.

Hnh 2.7 :Hibernate Framework.


4.1.1.3.2

Cc thnh phn ca hibernate

Hibernate c chia thnh cc phn khc nhau, c th s dng c lp tng


phn hay kt hp ty nhu cu:
Hibernate Core: Cung cp cc chc nng c bn ca mt persistence
layer cho cc ng dng Java vi cc APIs v h tr XML mapping
metadata.
Hibernate Annotations: Cc map class vi JDK 5.0 annotations, bao
gm Hibernate Validator.
Hibernate EntityManager: S dng EJB 3.0 EntityManager API
trong JSE hoc vi bt k JEE server no.

Hibernate Tools: Cc tool tch hp vi Eclipse v Ant dng cho vic


sinh ra cc persistence object t mt schema c sn trong database
(reverse-engineering) v t cc file hbm sinh ra cc class java
hin thc cc persistence object, ri Hibernate t to cc object trong
database (forward-engineering).
NHibernate: Hibernate cho .Net framework.
JBoss Seam: Mt Java EE 5.0 framework cho pht trin cc ng
dng JSF, Ajax v EJB 3.0 vi s h tr ca Hibernate. Seam hin
rt mi v t ra rt mnh pht trin cc ng dng Web 2.0. Sean
tch hp y tt c cc cng ngh mi nht, tt nht v c
nhiu ngi s dng nht hin nay.
4.1.1.4 Ti sao hibernate c s dng trong h thng phn mm ?

Hibernate l ORM framework ph bin hin ti vi cc u im:


-

Hibernate l mt dch v lu tr v truy vn d liu quan h mnh m v

nhanh.
Hibernate gip pht trin cc class dng lu tr d liu theo cch thc
hng i tng: association, inheritance, polymorphism, composition v

collections.
Hibernate cho php thc hin cc cu truy vn d liu bng cch s dng
ngn ng SQL m rng ca Hibernate (HQL) hoc l ngn ng SQL

nguyn thy cng nh l s dng cc API.


Hibernate c license theo LGPL (Lesser GNU Public License). Theo ,
c th thoi mi s dng Hibernate trong cc d n open source hoc cc
d n thng mi (commercial).

4.1.1.5 ng dng hibernate trong h thng phn mm


4.1.1.5.1

Hibernate Annotations

Cc class cn thit cho vic lu tr thng tin ca h thng s c s dng


cc Annotation, cc annotation s nh ngha cc thng tin cn thit trong c s d
liu v nh x n c s d liu.

4.1.1.5.2

Hibernate Core :

H thng s s dng cc API v cc chc nng c bn m hibernate mang


n tnh tin li hn v tin cy cao hn trong vic s l thng tin. Bn cnh
cc hm v chc nng m hibernate nh ngha sn cng h tr tt cho h thng
trong vic s dng v rt trch thng tin t tng c s d liu.
4.1.1.6 S kt hp spring v hibernate vo h thng phn mm
4.1.1.6.1

M hnh MVC trong spring :

Cng ging nh cc m hnh MVC khc, m hnh Sping MVC cng c


chia thnh ba lp chnh Model View Controller. Sau y l hai m hnh MVC
(MVC thng thng (tri) - Spring MVC (phi))

Hnh 2.8 : M hnh MVC thng thng v m hnh MVC ca spring framework.
y dispatched Servlet c coi ging nh l front controller. N ng vai
tr quan trng trong m hnh MVC chnh l iu hng cc thng tin gi n v
tr v.

Cng vic ca DispatcherServlet l gi yu cu n Spring MVC


Controller (Controller l mt spring m n iu khin yu cu v n
quyt nh Controller no no gi yu cu n).
V vy DispatcherServlet xem xt mt hoc nhiu hn handler
mappings(2) tm ra ni chnh l im dng ca yu cu tip theo.
Handler mapping s tr mt ch c th n URL c mang theo bi
yu cu khi to ra mt quyt nh.
Mt khi controller c chn. DispatcherServlet gi yu cu n
controller c chn(3). Sau controller s tr v thng tin thn thin
v hiu qu hn vi ngi dng. Vic cui cng m controller s lm l
ng gi model data v tn ca view vo i tng ModelAndView(4).
Mt khi ModelAndView c gi i n DispatcherServlet,
DispatcherServlet yu cu view resolver gip tm JSP thc s (5).
By gi DispatcherServlet bit view no s nhn c kt qu, cng
vic gi yu cu kt thc.
Trong im dng cui cng ny (c th l JSP) ni m n gi data
model i (6). Vi model data c gi i n view, cng vic ca yu
cu c hon thnh. V view s s dng model data nhn mt
trang m n s thc thi tr li n trnh duyt bi (not-so-hard-working)
i tng phc p.
4.1.1.6.2

S dng cc API, Annotation ca Hibernate

Hibernate framework l mt framework cho persistence layer. Nh vy,


nh c Hibernate framework m gi y khi pht trin ng dng ch cn ch tm
vo nhng layer khc m khng phi bn tm nhiu v persistence layer bng vic
s dng cc annotaion cho cc class.
Hibernate l mt dch v lu tr v truy vn d liu quan h mnh m v
nhanh. Thng qua cc API ca hibernate, Framework cung cp cc hm c nh
ngha sn thay cho cc cu truy vn trong SQL.
4.1.1.6.3

S kt hp mnh m gia spring v hibernate

Spring vi cu trc m hnh MVC gp phn tch ring cc tng layer


mt cch r rng v d kim sot hn. Vi m hnh MVC s lm cho h thng d
kim sot, bo tr v vic m rng s d dng hn.
Cng vi m hnh MVC vi s kt hp ca hibernate cng lm mnh m
hn kh nng tng tc vi c s d liu. Mt m hnh iu phi hot ng ca h
thng cng vi mt hibernate tng tc mnh m vi c s d liu. y c th
c coi l mt s kt hp cht ch v ton din.

4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5

Chi tit ci t trong h thng.


Cu hnh v ci t h thng s dng spring framework.
Cu hnh v ci t h thng s dng hibernate framework.
Cu hnh v ci t h thng s dng spring sercurity.
Cu hnh v ci t a ngn ng (ting Vit v ting Anh) cho h thng.
Cu hnh v ci t thanh ton trc tuyn trn c s v in t
(nganluong.com).
4.2.6 Cu hnh v ci t s dng mail cho h thng.
4.2.7 Cu hnh v ci t h tr bo co cho h thng da trn th vin
jasperreports.

You might also like