Professional Documents
Culture Documents
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
Trang 2/77
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.
Trang 3/77
Trang 4/77
* 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
Trang 5/77
so
sun
cung
cp
theo
Web
site:
http://Java.sun.com.
Trang 6/77
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
*/.
Kiu k t
Kiu s thc
Kiu s nguyn
char
byte
long
Trang 7/77
short
int
float
double
Trang 8/77
Trang 9/77
+ Star Topology:
Trang 10/77
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.
Trang 11/77
Method Request
Method Response
Java Virtual
Machine
RemoteObject
Method1()
Method2()
Trang 12/77
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
Trang 13/77
request
response
RMI server
skeleton object
somemethod()
Trang 14/77
Trang 15/77
Trang 16/77
Trang 17/77
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
tr
ca
cc
lp
ny
xc
nh
bng
thuc
tnh
thng
Djava.rmi.server.codebase=http://hostname:port/path
RMIServer
Trang 18/77
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
Trang 19/77
Trang 20/77
109
9
109
9
8
0
8
0
Mng Intranet
Tng la
My ch (Server)
Object
WebServer
Mng Internet
Trang 21/77
Trang 22/77
Trang 23/77
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
Trang 24/77
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
args[])
RMImain(String
Client
{
Gi li tham
chiu t xa
thng kch
hot
Remote method invocation
activation system deamon
process (rmid)
rmiregistry
Trang 25/77
RMI Client
main(String args[])
{
Tr v
kt
qu
cho
Client
Kch
hot dch
v nu
n cha
chy
Yu cu server
kch hot
Nhn kt qu t
server
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
Trang 26/77
cho vic x l kh ln do phi thm vo mt thi gian dnh cho vic kch hot i
tng t xa.
Trang 27/77
Hnh 4.3. Kin trc chng trnh Client-Server theo kiu Fat Client
Trang 28/77
Trang 29/77
Trang 30/77
[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.
Trang 31/77
Hnh 4.9. Giao din pha RMI Server sau khi khi ng
Trang 32/77
Trang 33/77
Trang 34/77
Trang 35/77
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.
Trang 36/77
Ti liu khc
[1]. http://www.javavietnam.org/
[2]. http://java.sun.com/
Trang 37/77