You are on page 1of 37

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

MC LC
MC LC......................................................................................................................................1
LI M U................................................................................................................................3
1.1. Lch s ra i ca Java.........................................................................................................5
1.2. Chu trnh pht trin chng trnh vi Java..........................................................................5
1.3. Mi trng Java....................................................................................................................5
1.4. Cc dng chng trnh ng dng ca Java..........................................................................6
1.4.1 Chng trnh ng dng dng c lp............................................................................6
1.4.2. Chng trnh ng dng dng Applet............................................................................6
1.4.3 Chng trnh ng dng dng Applet ln dng c lp..............................................6
1.5. Cc phn t c s ca Java..................................................................................................6
1.5.1. nh danh (Tn gi)......................................................................................................6
1.5.2. Cc t kha....................................................................................................................7
1.5.3. Ch thch........................................................................................................................7
1.6. Cc kiu d liu nguyn thy...............................................................................................7
1.7. Khai bo cc bin.................................................................................................................8
1.8. Cu trc tp chng trnh Java.............................................................................................8
Chng 2: C S V MNG MY TNH...............................................................................9
2.1. nh ngha mng my tnh...................................................................................................9
2.2. Phn loi mng my tnh......................................................................................................9
2.3. Mt s kin trc mng thng dng..................................................................................10
2.4. Giao thc mng..................................................................................................................10
2.4.1. Giao thc TCP/IP........................................................................................................10
1. Giao thc IP...................................................................................................................10
2. Giao thc TCP...............................................................................................................11
2.4.2 Giao thc UDP.............................................................................................................11
2.5. Cc m hnh hot ng ca mng my tnh.......................................................................11
Chng 3: LP TRNH I TNG PHN TN VI RMI...........................................12
3.1. Tng quan v RMI..............................................................................................................12
3.1.1. RMI l g......................................................................................................................12
3.1.2. So snh gia RMI v RPC..........................................................................................12
3.2 RMI lm vic nh th no...................................................................................................12
3.3. Kin trc ca chng trnh RMI........................................................................................14
3.4. Cc c ch lin quan trong mt ng dng RMI.................................................................15
3.5. C ch thc thi ca mt ng dng RMI............................................................................16
3.6. Cc lp, gi thng c s dng trong RMI...................................................................17
3.7. Nhng vn gp phi khi trin khai RMI.......................................................................17
3.7.1. Np cc lp ng.........................................................................................................17
3.7.2. S khc nhau gia cc my o Java............................................................................18
3.7.3 RMI v Applet..............................................................................................................20
3.8. S dng RMI thc thi vic tham chiu ngc...................................................................22
3.8.1. Tham chiu ngc trong lp trnh hng i tng..................................................22
3.8.2. Tham chiu ngc trong RMI.....................................................................................24
3.9. Kch hot i tng t xa...................................................................................................25
3.9.1 Kch hot i tng l g..............................................................................................25
3.9.2. Kch hot i tng t xa lm vic nh th no........................................................25
3.10. Classpath v Codebase.....................................................................................................27
3.10.1. Gii thiu chung........................................................................................................27
3.10.2. Classpath....................................................................................................................27
3.10.3. URL (Uniform Resource Locator)............................................................................27
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 1/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web


3.10.4. Codebase....................................................................................................................27
Chng 4: CHNG TRNH DEMO TRUY NHP C S D LIU WEB..................28
4.1 Cc m hnh kin trc c s d liu...................................................................................28
4.1.1 Kin trc n lp (Single Architecture)......................................................................28
4.1.2 Kin trc hai lp (Two - Tier Architecture)................................................................28
4.1.3 Kin trc ba lp (Three - Tier Architecture)...............................................................29
4.1.4. Gii thiu v truy nhp c s d liu Web.................................................................29
4.2. M hnh v hot ng ca chng trnh demo..................................................................30
4.3. Thit k chng trnh.........................................................................................................31
4.3.1. Cc tp xy dng trong chng trnh.........................................................................31
4.3.2. Cc bc thc hin chng trnh................................................................................32
4.4 Mt s giao din ca chng trnh.....................................................................................32
TI LIU THAM KHO..........................................................................................................37
.......................................................................................................................................................37

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 2/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

LI M U
S pht trin nh v bo ca h thng mng nht l mng Internet khin cho
my tnh tr nn gn gi v phc v c lc cho con ngi hn. Tuy nhin bn cnh
mt thch thc ln t ra cho cc nh pht trin ng dng l lp trnh mng ngy cng
tr nn phc tp. M hnh lp trnh n l truyn thng b thay i rt nhiu. Ngy
nay, bn khng cn n thun ngi vit nhng ng dng chy trn mt my duy
nht. Chng trnh ng dng i hi s tng tc t nhiu pha ngi dng, chia s ti
nguyn, triu gi t xa, lin kt giao tc, phn tn d liuVi nhng yu cu trn m
hnh khch/ch (hay Client/Server) ra i v tn ti rt lu (thm ch cho n ngy
nay). Theo m hnh khch/ch tt c cc thao tc x l phc tp u c chuyn giao
cho my ch x l. My khch ch ng vai tr gi yu cu v hin th d liu.
Hy hnh dung bn qun l v phn phi ng dng n hng trm my khch
nm nhiu quc gia khc nhau (mt tr ngi v mt a l). Bn ci t trnh iu
khin kt ni c s d liu MS SQL Server ln tng my. Sau mt khong thi gian s
dng, bn mun chuyn h qun tr c s d liu MS SQL Server sang h Oracle th
sao? Bn phi yu cu hng trm my khch cp nht li trnh iu khin truy xut c
s d liu Oracle thay cho MS SQL Server. l cha k vic cu hnh v kt ni vi
tng h c s d liu xem ra cng khng phi l n gin i vi ngi dng. Hay khi
bn mun thay i m ngun ca ng dng khch? Nu ng dng khch ca bn bao
gm nhiu tp tin thc thi .exe v cc th vin lin kt ng (dll) ln n hng chc Mb
th sao? Bn phi gi bn cp nht hng chc Mb ny n hng trm khch yu cu
cp nht li chng trnh.
Tt c nhng ng dng trn lm pht sinh m hnh pht trin ng dng a
tng (multi-tier). Cc ng dng x l ca bn khng ci t trn my khch na m ci
t mt my ch khc. Mc tiu l lm cho my khch tr nn gn nh, d cu hnh,
d thay i pha my ch. Nu bn cn thay i m ngun ca trnh ng dng bn ch
cn thay i trn mt my ch. Tt c cc trnh khch khi kt ni vo my ch chy ng
dng s lun c my ch phc v phin bn mi nht.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 3/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Web l mt ng dng in hnh nht ca m hnh ng dng a tng c th l


m hnh ba tng. Trnh ch Web nm trn mt my ch, my khch ch cn dng trnh
duyt Web (browser) kt ni vo my ch v c th truy cp c mi thng tin cng
nh dch v. Trnh ch s dng java servlet, trang jsp hay cc ng dng CGI kt ni
vo c s d liu, i tng phn tn RMI, CORBA (nm trn mt my ch khc) x l
tnh ton v tr v kt qu cho trnh khch thng qua cc trang Web tnh. M hnh a
tng phn r chc nng mt cch c th, cho php ng dng chy trn nhiu my
ch khc nhau. D dng cho ngi pht trin, nh cung cp cng nh ngi s dng
mng din rng nht l mng Internet.
Trong phm vi ca n em nghin cu cch truy cp s s d liu Web bng
i tng phn tn RMI. Cu trc ca n gm bn chng. Trong chng mt trnh
by s lc v Java, cu trc ca mt chng trnh Java, cc dng chng trnh ng
dng ca Java, cc phn t c s v cc kiu d liu nguyn thy ca Java. Trong
chng hai trnh by khi nim, kin trc, m hnh mng my tnh v giao thc thng
dng trong mng. Trong chng ba trnh by v lp trnh i tng phn tn vi RMI,
khi nim v RMI, kin trc ca mt chng trnh RMI, cc vn gp phi khi trin
khai RMI v mt s k thut trin khai RMI. Cui cng trong chng bn xy dng
chng trnh demo truy cp c s d liu Web. Chng trnh c cc giao din cho
ngi s dng v c ngi qun tr h thng. Tt c cc chc nng ca chng trnh
u c thc hin t xa.
Do trnh v thi gian c hn nn n tt nghip khng th trnh khi cc
thiu st. Em rt mong nhn c s hng dn v ng gp kin ca cc thy c v
cc bn tt n tt nghip ca em hon thin hn.
Em xin chn thnh cm n cc thy c gio, cc bn tn tnh gip trong
qu trnh hc tp.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 4/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Chng 1: GII THIU V NGN NG LP TRNH JAVA


1.1. Lch s ra i ca Java
Ngn ng lp trnh Java do Java do James Gosling v nhm cng s ca hng Sun
Microsystems xy dng vo nm 1990 vi tn gi ban u l Oak (Cy si).
Java c xy dng ch yu trong b cng c pht trin JDK (Java Development
Kit).
Bt u vi JDK phin bn 1.0 t nm 1995, nm 1996 Sun a ra phin bn JDK
1.1, nm 1998 cho ra i phin bn JDK 1.2 v hin nay c phin bn 1.6.

1.2. Chu trnh pht trin chng trnh vi Java


Java vt qua c cc nhc im trn bng cch dch cc chng trnh ngun sang
ngn ng my o khng ph thuc vo chip (h lnh c th) no c v sau khi cn
thc hin s thng dch sang h my c th. Kt qu ca chng trnh l chui cc bytes
c s bao gm cc m lnh thc hin (Opcode) v cc tham s ca my l thuyt (my
o), l my Java o JVM1. Chng trnh c thc hin nh sau:

1.3. Mi trng Java


Java c th dch v thc hin trong mi mi trng iu hnh, min l c
chng trnh thng dch (my Java o - JVM).
C ch x l cc Web site.
Ti sao li s dng Java cho cng ngh Web.
T chc thc hin cc d n ng dng vi Java.

* X l cc Web site
* Java v Web
- c lp vi mi trng (Platform Independent)
- m bo an ninh (secure) thng tin
- m bo an ton (safe)
- Thc hin a lung (multithreads)
- m bo s linh hot
- m bo s gn nh
- m bo tnh nht qun
1

Java Virtual Machine

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 5/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

* B cng c pht trin ng dng JDK2


- Hin nay c nhiu mi trng h tr pht trin phn mm Java nh: Visual
J++, Symantecs Caf, Boland Jbuilder, JDK v.v. B
JDK

so

sun

cung

cp

theo

Web

site:

http://Java.sun.com.

1.4. Cc dng chng trnh ng dng ca Java


C ba loi chng trnh c th pht trin vi Java:
+ Cc chng trnh ng dng c lp.
+ Cc chng trnh ng dng nhng (applet).
+ Cc chng trnh kt hp c hai loi trn.
1.4.1 Chng trnh ng dng dng c lp
Chng trnh ng dng c lp l mt chng trnh ngun m sau khi dch c th
thc hin trc tip.
1.4.2. Chng trnh ng dng dng Applet
Applet l loi chng trnh Java c bit m khi thc hin phi c nhng vo
chng trnh ng dng khc nh trnh duyt Web Browser, hoc appletviewer ca JDK.
1.4.3 Chng trnh ng dng dng Applet ln dng c lp
Java cho php xy dng chng trnh chy c c Web Browser ln mt ng
dng c lp. Mt chng trnh nh th phi:
+ nh ngha lp ng dng m rng, k tha t lp Applet.
+ Trong lp ng dng phi c hm main().

1.5. Cc phn t c s ca Java


1.5.1. nh danh (Tn gi)
Tn gi ca cc thnh phn trong chng trnh c gi l nh danh (Identifier).
Trong Java nh danh l mt dy cc k t gm cc ch ci, ch s v mt s cc k
hiu nh: k hiu gch ni _, cc k hiu tin t $, , , , v khng c bt u bng
ch s.

Java Development Kit

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 6/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Lu : Java phn bit ch thng v ch hoa, v d Hoa v hoa l hai nh danh khc
nhau. di (s k t) ca nh danh trong Java v l thuyt l khng gii hn.
1.5.2. Cc t kha
Cc t kha ca Java c th chia lm 9 nhm.
1. T chc cc lp
2. nh ngha cc lp
3. Cc t kha cho cc bin v cc lp
4. Cc kiu d liu nguyn thy (n gin)
5. Nhng t kha cho cc gi tr v cc bin
6. X l ngoi l
7. To lp v kim tra cc i tng
8. Dng iu khin
9. Nhng t kha cha c s dng.
1.5.3. Ch thch
Ch thch trn mt dng: Tt c cc k t sau // cho n cui dng l ch thch.
Ch thch nhiu dng: Ging nh trong C, phn nm gia /* v */ l ch thch.
Ch thch trong t liu: y l loi ch thch c bit c t vo nhng ch thch
hp trong chng trnh javadoc c th c v s dng to ra t liu dng HTML
cho chng trnh. Phn ch thch trong t liu c bt u bng /** v kt thc bng
*/.

1.6. Cc kiu d liu nguyn thy


Mi ngn ng lp trnh u nh ngha sn mt s kiu d liu c bn gi l kiu
nguyn thy.

Kiu nguyn thy

Cc kiu nguyn thy ca Java c chia thnh 3 nhm:


+ Kiu nguyn gm cc s nguyn v kiu k t.
+ Kiu
phy
ng hay kiu s thc: Loi ny c hai
kiu
Kiu du
boolean
(logic)
Kiu
s float v double
biu din cho cc s thp phn c du.
+ Kiu boolean: L kiu boolean c hai gi tr true (ng) v false (sai).
Kiu nguyn

Kiu k t

Kiu s thc

Kiu s nguyn

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP


boolean

char

byte

long

Trang 7/77
short

int

float

double

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 1.1. Cc kiu nguyn thy trong Java

1.7. Khai bo cc bin


Trong Java c bn loi bin:
+ Cc bin thnh phn
+ Cc bin tham chiu i tng (Object Reference)
+ Cc bin tnh (static)
+ Cc bin cc b (local)

1.8. Cu trc tp chng trnh Java


Tp chng trnh Java c th c cc thnh phn c c t nh sau:
+ nh ngha mt gi l ty chn thng qua nh danh ca gi (package).
+ Mt s lnh import (khng hoc nhiu).
+ Mt s nh ngha lp v interface c th nh ngha theo th t bt k.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 8/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Chng 2: C S V MNG MY TNH


2.1. nh ngha mng my tnh
Mng my tnh l mt tp hp cc my tnh c ni vi nhau bi ng truyn theo
mt cu trc no v thng qua cc my tnh trao i thng tin qua li cho nhau.

Hnh 2.1. M hnh lin kt cc my tnh trong mng

2.2. Phn loi mng my tnh


Da theo phm vi phn b ca mng ngi ta c th phn ra cc loi mng nh sau:
+ GAN (Globa Area Network)
+ WAN (Wide Area NetWork)
+ MAN (Metropolitan Area Network)
+ LAN (Local Area Network)

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 9/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

2.3. Mt s kin trc mng thng dng


+ Ring Topology:

Hnh 2.2. Ring Topology


+ Bus Topology:

Hnh 2.3. Bus Topology

Hnh 2.4. Start Topology

+ Star Topology:

2.4. Giao thc mng


Giao thc mng l mt tp cc quy tc, quy c trao i thng tin gia hai h
thng my tnh hoc hai thit b my tnh vi nhau. Ni mt cch hnh thc th giao thc
mng l mt ngn ng c cc my tnh trong mng s dng trao i d liu vi
nhau. C nhiu loi giao thc c s dng trong mng my tnh nh: Apple Talk,
DLC, NetBEUI, nhng hin nay giao thc c s dng ph bin nht trong mng
my tnh l giao thc TCP/IP.
2.4.1. Giao thc TCP/IP
1. Giao thc IP
Nhim v chnh ca giao thc IP l cung cp kh nng kt ni cc mng con thnh
lin kt mng truyn d liu, vai tr ca IP l vai tr ca giao thc tng mng trong

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 10/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

m hnh OSI. Giao thc IP l mt giao thc kiu khng lin kt (connectionlees) c
ngha l khng cn c giai on thit lp lin kt trc khi truyn d liu.
2. Giao thc TCP
TCP l mt giao thc hng kt ni, c cung cp mt ng truyn d liu tin cy
gia hai my tnh. Tnh tin cy th hin vic n m bo d liu c gi s n c
ch v theo ng th t nh khi n c gi.
2.4.2 Giao thc UDP
UDP (User Datagram Protocol) l giao thc theo phng thc khng lin kt c s
dng thay th cho TCP trn IP theo yu cu ca tng ng dng.

2.5. Cc m hnh hot ng ca mng my tnh


M hnh hnh hot ng ca mng my tnh ch yu c hai loi:
+ M hnh hot ng ch khch (Clients/Server).
+ M hnh hot ng ngang hng (Peer to Peer).

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 11/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Chng 3: LP TRNH I TNG PHN TN VI RMI


3.1. Tng quan v RMI
RMI3 l mt cng ng ca cc h thng phn tn n cho php mt my o Java
(JVM) gi nhng phng thc ca i tng nm trn my o Java khc trong cng
mt mng.
3.1.1. RMI l g
RMI l mt cng ngh Java cho php mt JVM giao tip vi mt JVM khc v thi
hnh cc phng thc ca i tng nm trn JVM .

Java Virtual Machine


Object
Main (String args[])

Method Request

Method Response

Java Virtual
Machine
RemoteObject
Method1()
Method2()

Hnh 3.1. Li triu gi phng thc t xa c thi hnh trn my o Java xa


3.1.2. So snh gia RMI v RPC4
Java l mt ngn ng nn tng, d hiu, n cho php nhng ng dng Java giao tip
vi nhng ng dng Java khc chy trn bt k mi trng phn cng no h tr mt
JVM. S khc nhau ch yu gia RPC v RMI l RPC h tr nhiu ngn ng, trong khi
RMI ch h tr nhng ng dng vit trn Java.

3.2 RMI lm vic nh th no


Cc h thng s dng RMI cho vic truyn thng tiu biu c phn thnh 2 loi:
Clients v Servers. Server cung cp dch v RMI, v Client gi cc phng thc do
3
4

Remote Method Invocation


Remote Procedure Calls

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 12/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Server cung cp. RMI Server phi ng k mt dch v tm kim, cho php cc Client
tm thy thng tin Server cung cp, hoc chng c th tham chiu ti dch v khc. Mt
ng dng chy nn cho RMI c tn l rmiregistry. ng dng ny chy v x l
c lp vi cc chng trnh RMI, n cho php cc i tng trn Server ng k tn
ca mnh. Mi ln mt i tng c ng k xong, n s i sau thc hin li gi
t pha Client.

rmiregistry

RMI Server

RMI Server

RMI Server

Hnh 3.2. Nhiu dch v ng k vi mt b ng k


Cc i tng trn Client s gi nhng thng ip ti nhng phng thc xa.
Trc khi mt phng thc xa c thc thi Client phi c tham chiu ca n trn
Server. iu c thc hin bi dch v tm kim trong b ng k RMI. i tng
trn Client yu cu mt tn dch v, v s nhn c mt URL. Nn nh nhng URL
khng phi cho HTTP, hu ht cc giao thc c th i din s dng c php ca URL.
nh dng c s dng bi RMI i din cho mt i tng tham chiu t xa nh
sau:
rmi://hostname:port/servicename
Trong hostname tn ca ca Server hoc a ch IP ca Server, port s hiu
cng cung cp dch v, servicename l mt chui m t dch v. Nhng thng tin
chi tit ca hot ng mng th lun trong sut vi ngi pht trin ng dng khi lm
vic vi cc i tng xa, vic tr nn n gin nh khi lm vic vi i tng ti
my cc b. iu ny c thc hin nh mt php chia thng minh ca h thng RMI
thnh hai thnh phn, mt l stub v mt l skeleton.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 13/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

RMI client application


stub object
somemethod()

request
response

RMI server
skeleton object
somemethod()

Hnh 3.3. i tng stub gi i tng skeleton.


Ti RMI Server, i tng skeleton c nhim v lng nghe nhng yu cu v chuyn
cc yu cu ti dch v RMI. Sau khi ngi pht trin to ra mt giao din RMI,
ngi cn phi nh ngha c th giao din . i tng c nh ngha ny s
c gi l i tng skeleton.

3.3. Kin trc ca chng trnh RMI


Kin trc ca mt chng trnh theo c ch RMI c m t nh hnh sau:

Hnh 3.4. Kin trc chng trnh kiu RMI


Trong :
+ Server l chng trnh cung cp cc i tng c th c gi t xa.
+ Client l chng trnh c tham chiu n cc phng thc ca cc i tng xa
trn Server.
+ Stub cha cc tham chiu n cc phng thc xa trn Server.
+ Skeleton n nhn cc tham chiu t Stub kch hot phng thc tng ng trn
Server.
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 14/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

+ Remote Reference Layer l h thng truyn thng ca RMI.


+ Transport l tng giao vn c da trn giao thc TCP/IP gia cc my trong
mng.
Bng cch s dng kin trc phn tng nh trn m mi tng c th phn cp hoc
thay th m khng nh hng ti cc tng cn li ca h thng.

3.4. Cc c ch lin quan trong mt ng dng RMI


Trong mt ng dng phn tn cn c cc c ch sau:
+ C ch nh v i tng xa (Locate remote objects)
+ C ch giao tip vi cc i tng xa (Communicate with remote objects)
+ Ti cc lp danh bytecodes cho cc lp m n c chuyn ti qua li gia my o
(Load class bytecodes for objects that are passed around)

Hnh 3.5. Vai tr ca dch v nh x tn


Trong :
+ Server ng k tn cho i tng c th c gi t xa ca mnh vi dch v nh
x tn (Registry Server).
+ Client tm i tng xa thng qua tn ng k trn Registry Server (looks up)
v tip gi cc phng thc xa.
+ Hnh 3.5 cng cho thy cch thc m h thng RMI s dng mt WebServer sn c
truyn ti m bytecodes ca cc lp qua li gia Client v Server.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 15/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

3.5. C ch thc thi ca mt ng dng RMI


Tin trnh thc thi ca mt ng dng RMI din ra nh sau:

Hnh 3.6. Tin trnh thc thi ca ng dng RMI


+ Bc 1: Server to cc i tng cho php gi t xa cng vi Stub v Skeleton ca
chng.
+ Bc 2: Server s dng lp Naming ng k tn cho mt i tng t xa (1).
+ Bc 3: Naming ng k Stub ca i tng t xa vi Registry Server (2).
+ Bc 4: Registry Server sn sng cung cp tham chiu n i tng t xa khi c
yu cu (3).
+ Client yu cu Naming nh v i tng xa thng qua tn c ng k
(phng thc lookup) vi dch v tn (4).
+ Naming ti Stub ca i tng xa t dch v tn m i tng ng k v
Client (5).
+ Ci t i tng Stub v tr v tham chiu i tng xa cho Client (6).
+ Client thc thi mt li gi phng thc xa thng qua i tng Stub (7).

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 16/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

3.6. Cc lp, gi thng c s dng trong RMI


Trong k thut triu gi t xa, mt h thng RMI s dng rt nhiu gi v lp ca
Java nhng cc lp quan trng nht vn l:
+ java.rmi.
+ java.rmi.activation.
+ java.rmi.dgc.
+ java.rmi.registry.
+ java.rmi.server.
Trong cc gi trn th quan trng nht l gi java.rmi vi gi ny lp Naming
ng vai tr cc k quan trng, tt c cc phng thc ca lp ny u l phng thc
tnh. Lp ny dng ng k hoc khi phc cc tham chiu i tng vi b ng k
rmiregistry. Gi ny gm cc phng thc:
+ static void bind(String url, Remote Object).
+ static String[] list(String url.
+ static Remote lookup(String url).
+ static void rebind(String url, Remote Object).

3.7. Nhng vn gp phi khi trin khai RMI


3.7.1. Np cc lp ng
Trong cc h thng nh (ch c mt vi Client s dng cc dch v t Server), vic
phn tn cc lp Stub v Skeleton din ra bnh thng. Nhng khi c mt s lng ln
cc Client cng s dng cc dch v ny th iu g s xy ra?. Nu mt b ng k
RMI c s dng cho tt c cc dch v, khi mt dch v mi c gii thiu trong h
thng th file Stub ca dch v phi c sao chp ti classpath ca b ng k trc
khi Server ng k n. Vn trn c gii quyt bng mt k thut c bit n
l k thut np lp ng.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 17/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Kim tra lp
c np

ng

Tr v lp

Sai

Kim tra
vic ci t
bo mt

Tm np lp
t mng

ng

Sai
B qua ngoi l
ClassNotFoundException

Hnh 3.7. Qu trnh x l np lp ca h thng RMI


Trc khi tm np lp c nh ngha, th v tr ca lp phi c xc nh.
V

tr

ca

cc

lp

ny

xc

nh

bng

thuc

tnh

thng

java.rmi.server.codebase. Vic xc nh v tr c thc hin Client hoc


Server. Mun vy ta phi t mt URL, ng dn n th mc codebase. T
RMIClassLoader ti cc lp s dng cho h thng RMI.
Cch n gin nht t codebase l s dng mt lnh, tham s ch r thuc tnh
cn t.
java

Djava.rmi.server.codebase=http://hostname:port/path

RMIServer

Trong hostname l a ch IP hoc tn ca my ch, Port l s hiu cng


chng trnh chy, Path l ng dn n th mc codebase
Nu Server c th ch r codebase ca mnh th Client cng lm c iu .
java Djava.rmi.server.codebase=http://hostname:port/path
RMIClient

3.7.2. S khc nhau gia cc my o Java


1. My o Java ca Microsoft thiu h tr li triu gi phng thc t xa

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 18/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Mc d nhng gi RMI l mt phn ca li Java API, nhng cc JVM ca Microsoft


cng khng h tr RMI. iu lm cho cc RMI Client hoc Server khng d dng
chy trn cc JVM . V th vic s dng Applet tr nn kh khn bi a s ngi s
dng Internet u dng trnh duyt IE5. khc phc iu ny ta phi thm mt bn v
li cho cc JVM ca Microsoft h tr RMI. Tuy nhin ta khng th chc chn tt c
cc Client u c ci t bn v ny.
2. Nhng thay i trong RMI t JDK 1.02 n JDK 1.1
Trong JDK 1.02, vic thi hnh mt dch v RMI l s m rng ca lp
java.rmi.server.UnicastRemoteServer. Lp ny khng sn c trong JDK 1.1,

n c thay th bi lp java.rmi.server.UnicastRemoteObject. S h tr
RMI trong JDK 1.02 ch l tm thi, cn phi trnh trong cc h thng tip theo. Tnh
sn sng trong JDK 1.1 hoc trong cc JVM cao hn trong a s cc nn tng ca h
iu hnh l s la chn tt nht cho RMI.
3. Nhng thay i trong RMI t JDK 1.1 n nn tng th hai ca Java
Cc ng dng s dng vic np lp ng, mc d c ci t mc nh vic qun
l bo mt l RMISecurityManager, nhng n s khng chy nu khng c mt
vi thay i di nn tng th hai Java.
Di nn tng th hai Java vic thit lp bo mt c mt vi ty chn cho ngi pht
trin:
+ Loi b ton b RMISecurityManager, v v hiu ha vic np lp ng.
+ Thay th RMISecurityManager vi mt ty chnh bo mt, yu cu vit thm
mt on m qun l bo mt.
+ Ch r tp tin chnh sch bo mt, chnh sch ny cho php truy cp nhng thng
tin cn thit.
Cu trc ca tp tin chnh sch bo mt, c ch r trong cc ti liu v nn tng th
hai Java, nhng cho hu ht cc ng dng tp tin chnh sch bo mt u c khun dng
chung. N cho php kt ni ti TCP bng cng 1024. N gii hn cc tp tin c php
c trong th mc c:\rmi, v c php ghi trong th mc c:\rmi\data.
on m cho tp rmi.policy:
Grant
5

Internet Explorer

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 19/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web


{
permission java.net.SocketPermission "*:1024-65535",
"accept, connect, listen, resolve";
permission java.net.SocketPermission "*:1-1023","connect,
resolve";
permission java.io.FilePermission "c:\\rmi\\", "read";
permission java.io.FilePermission "c:\\rmi\\data\\",
"write";
}

Vic ch r chnh sch bo mt khi chy phn mm RMI c thit t trong h


thng chnh sch bo mt java.security.policy, n ch r ng dn n tp
tin chnh sch. V d xc nh r ng dn ti tp tin rmi.policy ti RMI
Client ta s dng lnh sau:
java Djava.security.policy=c:\rmi\rmi.policy RMIClient
3.7.3 RMI v Applet
RMI gp mt vi kh khn i vi applet. Ngoi nhng vn h tr RMI trong IE
c ni n trn, th applet cn b hn ch trong mi trng mng. S hn ch
ny rt nghim trng, n cn tr vic RMI applet giao tip vi cc dch v RMI.
1. Khng c kh nng kt ni ti cng TCP
Khi mt applet khng th kt ni ti cng TCP, n khng th l mt RMI Server.
iu dn n cc dch v RMI khng th chy trn trnh duyt Web. Chnh v vy
khng th d dng s dng callbacks trong RMI, mt Applet Client c th triu gi cc
phng thc trn Server , nhng cc my khc khng th triu gi cc phng thc
ny.
2. Cc hn ch trong nhng kt ni mng
Mt applet ch c th kt ni ti my ch t codebase m n np v. Khi mt applet
c np v t mt my ch, nh my ch www.davidreilly.com, n ch c th
to cc ht ni TCP v UDP ti my ch. y l mt hn ch ca applet bi trnh duyt.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 20/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 3.8. Nhng hn ch ca applet trong kt ni mng


Nh vy applet khng th lm tt nhim v ca RMI Clients, tr khi applet v Server
chy trn cng mt my.
3. Cc hn ch bi tng la.
Tng la l phn mm (c th c ci t hoc iu khin bi phn cng ty theo
nh cung cp Internet) chn ngay ng ra vo ca ng truyn d liu kt ni mng ca
bn vi bn ngoi (Internet). Chc nng ca tng la l kim sot cch thc truyn d
liu v kt ni gia mng Intranet vi mng Internet. Mc ch trnh s t nhp v tn
cng hay n cp d liu ca cc tay hacker bn ngoi mng. Tng la cng c dng
hn ch s truy xut ca bn ra bn ngoi mng Internet.
Hu nh tt c cc tng la u ch cho s dng mt s t cng. Cng kt ni theo
giao thc http (port 80) l cng ni ting v c php s dng kt ni vi dch v
Web server. Nh vy cc ng dng Java hu nh khng s dng c m hnh Client Server nu gp phi tng la.
rmiregistry (port 1099)
Applet
My
Hockhch
trnh
khch Java

109
9

109
9

8
0
8
0

Mng Intranet

Tng la

My ch (Server)
Object
WebServer

Mng Internet

Hnh 3.9. Kt ni gia trnh khch v rmiregistry trn my ch b chn bi tng la

Tuy nhin nh bn thy cng 80 l cng ca dch v http hu nh c mi tng


la cho qua. Cng dch v http chuyn cung cp trang Web cho cc trnh duyt browser
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 21/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

nn t khi b tng la ngn cm. Chnh v vy ng dng phn tn Java gi n i


tng t xa c th gii quyt vn tng la bng hai cch.
+ Th nht, bn yu cu ngi qun tr tng la cung cp cho bn mt s cng
s dng. Tuy nhin cch ny t khi c chp nhn v nu c bn phi tr chi ph rt
cao cho vic m cng.
+ Th hai s dng c ch trung gian thng qua cng 80 ca dch v Web Server.

Hnh 3.10. Gi i tng xa thng qua c ch trung gian ca Web Server


Hnh trn l c ch gi i tng t xa thng qua dch v Web Server bn ngoi
tng la. i tng Object ca ta ng k vi rmiregistry trn my ch (1) lng nghe
cng 1099. Trnh khch gi yu cu theo giao thc http n my ch Web Server yu
cu truy xut n i tng Object (2). Web Server yu cu mt i tng trung gian
trn my ch x l li gi (3). Servlet lin lc vi rmiregistry ly v tham
chiu ca i tng Object (4). Servlet triu gi Object (5) v tr kt qu v cho
Web Server (6). Sau cng l Web Server tr kt qu v cho trnh khch.

3.8. S dng RMI thc thi vic tham chiu ngc


3.8.1. Tham chiu ngc trong lp trnh hng i tng
Trong mt h thng hng i tng, khi mt i tng cn thng bo mt s kin
xy ra th n s dng k thut tham chiu ngc. Cch ny lm cho h thng hot ng
c hiu qu hn, v mt i tng khng cn kim tra nh k trng thi ca mt i

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 22/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

tng khc, n s thay th thng bo li nu s kin xy ra. Nhiu i tng lng


nghe c th ng k vi cng mt s kin.

Hnh 3.11. Nhiu i tng c th ng k vi mt hoc nhiu s kin


Khi mt s kin xy ra ( kt qu ca s tng tc gia i tng v h thng, hoc
mt qu trnh x l bn trong nh hon thnh mt khi lng cng vic hoc tc ng
vi ngi s dng), s kin gc s thng bo ti mi i tng ang lng nghe. Mun
lm c vy s kin gc phi duy tr mt danh sch ca tt c cc i tng ang hot
ng, sau gi thng bo tr li cc i tng khi s kin xy ra.

Hnh 3.12. Gi thng bo tr li cho tt c cc i tng ang lng nghe

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 23/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Cc i tng ny lun c lm vic bi nhng li gi phng thc. Trong nhng


h thng hng i tng Callbacks tham chiu mt i tng ti mt i tng l
s kin gc. S kin gc ti thi im thch hp, n s gi mt phng thc ca i
tng nghe thng bo n hot ng v sn sng tr li.

Hnh 3.13. Tham chiu ngc c thc hin bi mt i tng ang lng nghe
Kiu h thng ny c s dng rng ri trong lp trnh hng i tng, trong
ng cnh ca Java. M hnh x l s kin ca AWT yu cu nhng ngi pht trin
thc thi giao din ca b lng nghe v ng k cc thnh phn n cn s dng vi b
kim tra. Nhiu b lng nghe c th ng k cng vi mt thnh phn, v chng cng
c th ng k c vi nhiu thnh phn. Khi xy dng mt h thng, bn c th to
cho mnh mt giao din lng nghe, v thm cc phng thc cn thit.
3.8.2. Tham chiu ngc trong RMI
C ch gi ngc t xa ca trnh ch n trnh khch thng qua tham chiu c
gi l callback. K thut gi ngc callback thng rt hu hiu cho trnh khch thit
lp cc yu cu ty bin khng phi l thuc nhiu vo trnh ch.

i tng trn
my khch

Gi phng thc

i tng trn
my ch
m

Gi phng thc

Hnh 3.14. i tng gia trnh khch v trnh ch triu gi ln nhau


Bng cch ny ta c th cho trnh khch v trnh ch triu gi ln nhau. Khi i
tng trn my ch phi ci t giao tip Remote, tip sinh ra cc lp trung gian
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 24/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

tnlp_Stub, tnlp_Skel, sau cng l ng k n rmiregistry trnh khch tham


chiu n.

3.9. Kch hot i tng t xa


3.9.1 Kch hot i tng l g
Kch hot i tng t xa l mt cng ngh gii quyt vn mt s lng ln
cc dch v RMI nhn ri gy tn ti nguyn. N cho php cc dch v ny ng k vi
rmiregistry, nhng cha cn phi khi to gi tr ban u. V vy cc dch v ny
s khng hot ng cho n khi c mt li gi t Client. Mt qu trnh x l ngm c
gi l remote method invocation activation system deamon (rmid) s lng nghe v khi
to dch v RMI m Client yu cu. Bng cch no rmid tip nhn cc yu cu t
Client v to cc dch v Client yu cu.
3.9.2. Kch hot i tng t xa lm vic nh th no
S kch hot i tng t xa c mt t khc bit so vi RMI Server thng thng.
Mt dch v thng thng khi ng k i tng ca mnh vi RMI registry th n phi
c khi to. Kch hot i tng t xa trnh c iu , v n s kch hot i
tng khi c yu cu, mt li tham chiu t xa c ng k ti y. Khng ging nh
UnicastRemoteObject chy lin tc, M Server ci t chng trnh chy trong

khong thi gian ngn. Mc ch ca n l thng bo cho h thng bit vic kch hot
ca mt i tng xa, v ng k li tham chiu t xa vi rmiregistry.

Yu cu
tham
chiu
i
tng
xa

Faulting remote reference


someMethod()

Gi phng thc li tham chiu t


xa

args[])
RMImain(String
Client
{

Gi li tham
chiu t xa

Server installation class

ng k li tham chiu t xang k i


nh dch v ca RMI
tng vi h

thng kch
hot
Remote method invocation
activation system deamon
process (rmid)

rmiregistry

Hnh 3.15. Server ci t chng trnh ng k kch hot i tng vi rmid v


li tham chiu vi rmiregistry
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 25/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Ti mt thi im no trong tng lai, RMI Client s tm kim rmiregistry


v la chn dch v m n cung cp bi li tham chiu t xa. Khi tham chiu ny c
kch hot, n s kim tra v thy tham chiu tn ti Server. u tin li tham
chiu nhn mt li gi, lc ny c gi tr ban u l null, n cho bit i tng phi
c kch hot trc khi s dng. N nh s gip ca ng dng rmid, to mt thc
th mi Server thng qua gi i tng mi c kch hot. Nhng yu cu
phng thc li tham chiu c y ti i tng kch hot v sau quay tr li
Client. Tuy nhin c mt khong thi gian ch, ci ny khng c lp li cho nhng
yu cu k tip trong khi dch v sn sng cho hot ng.

RMI Client
main(String args[])
{

Tr v
kt
qu
cho
Client

Activated RMI Server


someMethod()

Kch
hot dch
v nu
n cha
chy

Yu cu server
kch hot

Nhn kt qu t
server

Remote method invocation


activation system deamon
process (rmid)

Faulting remote reference


someMethod()

Yu cu kch hot
i tng

Hnh 3.16. Tham chiu li vi s gip ca rmid, thng tin kch hot quay tr
li Client
C ch kch hot i tng t xa c th to cho ta mt mi trng hiu qu hn v
mt s dng ti nguyn ca JVM Server, nhng li c mt yu im l thi gian dnh

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 26/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

cho vic x l kh ln do phi thm vo mt thi gian dnh cho vic kch hot i
tng t xa.

3.10. Classpath v Codebase


3.10.1. Gii thiu chung
Java RMI cho php ta np cc lp ng, ngha l trong lc gi hm t xa ni ring v
thc thi chng trnh ni chung nu c tham chiu ti mt lp mi m JVM cha c
nh ngha ca lp ny th Java s t ng np lp ny cng vic c tip tc.
3.10.2. Classpath
Classpath l mt bin mi trng cha ng dn Java c th ti thy cc lp
ma chng trnh Java cn trong lc chy
3.10.3. URL (Uniform Resource Locator)
Trong phn trc ta nhc n rt nhiu v Codebase, hiu c Codebase ta
cn nm vng khi nim URL.
+ URL: l mt con tr, tr ti mt ti nguyn c th v tr xc nh.
+ C php ca mt URL l:
Protocol://hostname[:port]/path/filename
3.10.4. Codebase
1. Khi nim Codebase
Codebase l mt thuc tnh do Java nh ngha, gi tr ca n l mt URL (Uniform
Resource Locator) ch ti mt ni cha Bytecode ca nhng lp m chng trnh c th
tm c Bytecode ca mt lp no trn mng.
2. C ch hot ng
Trong k thut phn tn RMI, Client mun gi mt phng thc ca i tng t xa
no th bt buc Client phi tham chiu ti i tng t xa , c mt tham chiu
n i tng t xa Client phi c mt th hin thuc lp, l lp Stub, lp ny
c to ra bi chng trnh rmic. Mi i tng t xa c mt lp Stub ng vai
tr trung gian trn JVM Client. Gi tr Codebase l mt hay chiu URL ch n ni cha
Stub ny.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 27/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Chng 4: CHNG TRNH DEMO TRUY NHP C S D


LIU WEB
4.1 Cc m hnh kin trc c s d liu
4.1.1 Kin trc n lp (Single Architecture)
Trong kiu kin trc ny, c ba thnh phn ca chng trnh ng dng (User Intrface,
Business Rule, Data Storage) u c tch hp vo mt tp tin thc thi.
V d : BKAV, D2, Winword,
Cc ng dng kiu ny ch c thc thi trn mt my tnh.
User Interface
Business Rule
Data Storage

Hnh 4.1. Kin trc chng trnh n lp


4.1.2 Kin trc hai lp (Two - Tier Architecture)
Cc chc nng v Bussiness Rule c th c ci t phn Client hoc phn
Server to ra hai loi kin trc Client-Server l:
+ Fat Client.
+ Fat Server.
1. Loi Fat Client
Trong loi ny Business Rule c ci t bn pha Client. Phn Server ch yu thc
hin chc nng v truy vn v lu tr thng tin.

Hnh 4.3. Kin trc chng trnh Client-Server theo kiu Fat Client

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 28/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

2. Loi Fat Server


Trong loi ny, phn ln cc chc nng v Business Rule c t phn Server.
Phn Client ch thc hin mt s chc nng nh ca Business Rule v kim tra tnh hp
l ca d liu nhp bi ngi dng.

Hnh 4.4. Kin trc Client-Server theo kiu Fat Server


4.1.3 Kin trc ba lp (Three - Tier Architecture)
M hnh c chia lm ba lp:
+ Lp th nht: lp giao din ngi dng.
+ Lp th hai: lp ng dng thc thi.
+ Lp th ba: lp c s d liu.

Hnh 4.5. Kin trc chng trnh ba tng


4.1.4. Gii thiu v truy nhp c s d liu Web
M hnh truy nhp c s d liu Web hot ng theo kin trc c s d liu ba lp. Bao
gm cc lp:
+ Lp client : L mt trnh duyt.
+ Lp trung gian : l mt ng dng chy trn my ch Web.
+ Lp c s d liu.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 29/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 4.6. Kin trc ca c s d liu Web

Client s dng mt trnh duyt Web gi cc yu cu ti Web Server. Sau Web


Server truy nhp vo c s d liu ly thng tin Client yu cu v tr v kt qu cho
Client. M hnh trn c thc hin trn mi trng Internet.
u im ca m hnh truy nhp c s d liu Web:
+ Pha client: khng cn ci t thm bt k chng trnh ng dng no vo my ca
mnh, m vn c th thi hnh ng dng nh mt trnh duyt web c tch hp
sn trong h iu hnh v mt my o Java.
+ Pha server: chng trnh ngun ch nm trn mt my nht nh k c chng
trnh ngun ca Client, nn cng vic bo tr, pht trin, khc phc s c tng i
d dng v n cn m bo tnh b mt ca m ngun.

4.2. M hnh v hot ng ca chng trnh demo

Hnh 4.7. M hnh chng trnh truy cp c s d liu web


* C ch hot ng ca chng trnh
[1]. Client thc hin truy nhp vo Web server thng qua trnh duyt Web, Applet c
chc nng truy nhp CSDL Web c ti v trnh duyt pha client.
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 30/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

[2]. Applet c trnh duyt Web pha client khi ng, sau thc hin kt ni n
i tng RMI Application Server pha server, khi kt ni thnh cng Applet thc
hin li gi phng thc t ca i tng RMI Application Server.
[3]. i tng RMI Application Server pha server thc hin truy nhp CSDL ly d
liu theo yu cu ca pha client thng qua cu ni jdbc:microsoft:sqlserver.
[4]. i tng RMI Application Server tr d liu yu cu v cho pha client nh kt
qu ca mt li gi phng thc thng thng.

4.3. Thit k chng trnh


C s d liu s dng trong chng trnh c xy dng trn h qun tr c s d liu
MS SQL Server c tn l Database c bng nhanvien v Account c cu trc nh sau:

Hnh 4.8. Cu trc bng nhanvien v bng Account ca chng trnh


4.3.1. Cc tp xy dng trong chng trnh
* c t giao tip interface.
- Readdatabase.java: khai bo cc phng thc thc thi.
- Client.java : lp thc thi pha Client
* Ci t cho lp Readdatabase.java.
- ReaddatabaseImpl.java: ci t cc phng thc ca giao din interface.
* Cc tp tin ng dng.
- readData.java : lp hin th danh sch nhn vin.
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 31/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

- addData.java: lp thm mt nhn vin.


- searchData.java: lp tm kim nhn vin.
- deleteData.java: lp xa nhn vin.
- DangNhap.java: ng nhp vo quyn qun tr h thng
* Cc tp tin HTLM trong th mc Web
- index.html: Trang Web ch.
- Themmoi.html: Trang b sung nhn vin.
- Thongtin.html: Trang hin th danh sch nhn vin.
- TimkiemNV.html: Trang tm kim thng tin nhn vin.
- XoaNV.html: Trang xa thng tin ca nhn vin.
- DangNhap.html: Trang hin th giao din ng nhp quyn qun tr h thng
4.3.2. Cc bc thc hin chng trnh
- Chy tp tin run_Server trong th mc cha m ngun.
- Truy cp vo a ch : http://localhost/totnghiep/index.html.

4.4 Mt s giao din ca chng trnh

Hnh 4.9. Giao din pha RMI Server sau khi khi ng

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 32/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 4.10. Giao din trang ch

Hnh 4.11. Giao din ton b thng tin v nhn vin

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 33/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 4.12. Giao din tm kim thng tin v nhn vin.

Hnh 4.13. Giao din b sung nhn vin


Nu bn cha ng nhp vi quyn qun tr h thng bn s khng c quyn b sung
thm nhn vin.
Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 34/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

Hnh 4.14. Giao din xa thng tin ca nhn vin

Hnh 4.15. Giao din ng nhp quyn qun tr h thng

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 35/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

KT LUN
Ngy nay vic pht trin cc phn mm ng dng lun cn c trin khai theo m
hnh ca phn tn, v nu cc ng dng trn cc my tnh c lp th cc ng dng
khng cn ngha nhiu v mt thc tin.
Trong phm vi ca n, em i tm hiu mt s khi nim c bn trong Java,
mng my tnh v phng php, k thut trin khai ng dng phn tn trong Java.
Sau mt thi gian nghin cu v trin khai, n ca em t c mt s kt qu
nh sau:
+ V mt l thuyt, n trnh by cc khi nim c bn v:
- Lp trnh Java.
- C s v mng my tnh.
- Tm hiu k thut lp trnh i tng phn tn trong Java vi RMI (Gi
phng thc t xa).
+ V chng trnh, em xy dng mt chng trnh demo truy cp c s d liu
Web. Chng trnh c mt s chc nng sau:
- Hin th ton b thng tin v nhn vin.
- Tm kim thng tin ca nhn vin.
- B sung nhn vin.
- Xa nhn vin.
Tt c cc chc nng ca chng trnh u c thc hin xa, ngi s dng v
qun tr h thng khng cn bn my ch vn c th cp nht c thng tin cho c
s d liu.
Vi nhng kt qu l thuyt t c v kinh nghim khi trin khai chng trnh
demo trn gip em hiu su hn v k thut lp trnh i tng phn tn v c th
trin khai ng dng su hn: nh kt hp RMI vi Servlet, xy dng h thng chia s
ti nguyn my in
Vi thi gian hn ch v trnh c hn, n khng th trnh khi cc thiu st, em
rt mong nhn c s nhn xt v gp ca cc thy c v cc bn n c
hon thin hn.

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 36/77

Tm hiu Lp trnh phn tn vi RMI ng dng truy cp c s d liu Web

TI LIU THAM KHO


Ti liu ting Vit
[1]. Phm Vn Thiu, Nguyn Quang Thanh, H Th Thanh Tm - Java dnh cho sinh
vin, NXB Thng k, NXB 2000.
[2]. Nguyn Vit Linh v u Quang Tun - Hc nhanh k thut lp trnh Java, X
nghip in Bn Tre, NXB 2001.
[3]. Nguyn Anh Tun - Gio trnh lp trnh mng bng Java, NXB Thng k, H Ni,
NXB 2003.
[4]. i Hc Quc Gia Thnh ph H Ch Minh - Gio trnh lp trnh mng bng Java,
NXB Thng K, H Ni, NXB 2003.
[5]. Nguyn Phng Lan, Hong c Hi - Lp trnh ng dng Web vi JSP/Servlet,
NXB Lao ng X Hi.

Ti liu ting Anh


[1]. Thinhking in Java (gio trnh in t).
[2]. Java_Network_Programming_(O'Reilly-2nd_Ed-2000) (gio trnh in t).
[3]. RMI - Java RMI - Tutorial (gio trnh in t).
[4] Java Network Programming and Distributed Computing (Addison Wesley)

Ti liu khc
[1]. http://www.javavietnam.org/
[2]. http://java.sun.com/

Sinh vin: Nguyn Th Long - Khoa CNTT - HDLHP

Trang 37/77

You might also like