TRNG I HC M TP.H CHÍ MINH
KHOA CÔNG NGH THÔNG TIN
S LIÊN LC IN T
(NG DNG SMARTPHONE VÀ IN TOÁN
ÁM MÂY)
BÁO CÁO ÁN MÔN HC
SVTH: Lý Trng Khoa
MSSV:0851010132
SVTH: Trang Thành Lc
MSSV: 0851010354
Ngành: Khoa Hc Máy Tính
Hng chuyên ngành: C S D Liu
Lp: TH08B2
Ging Viên Hng Dn
TS.Lê Xuân Trng
Tp. H Chí Minh –Tháng 2 nm 2012
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
ĐÁnMônHcSLiênLcĐinTngdngCloudVàAndroid
LI CÁM N
án đc thành công là nh s hng dn, giúp đ ca thy. Em xin chân
thành cm n thy đã b thi gian quý báu ca mình đ giúp em hoàn thành tt khóa
lun này.
Chúng em xin chân thành cm n khoa Công Ngh Thông Tin, trng i Hc
M đã h tr to nhiu điu kin thun li cho chúng em trong quá trình hc tp,
nghiên cu cng nh quá trình thc hin đ án này.
Chúng em xin cm n đn thy cô trong khoa CNTT đã tn tình ging dy,
trang b cho chúng em nhng kin thc cn thit trong sut quá trình hc tp và
nghiên cu ti khoa.
Cui cùng chúng em xin cm n đn thy Lê Xuân Trng ging viên lp lý
thuyt và thc hành môn Nhp Môn Công Ngh Phn Mm đã tn tình hng dn,
truyn đt cho em nhng kin thc quý báu và giúp đ chúng tôi trong quá trình thc
hin đ tài này.
Mc dù chúng em
đã n lc ht sc đ hoàn thành tt đ ca mình nhng dù
sao nhng sai sót trong đ tài là điu không th tránh khi, kính mong thy cô thông
cm và tn tình ch bo cho chúng em.Bên cnh đó cng mong các bn đóng góp ý
kin đ chúng em có th hoàn thin đ tài ca mình hn.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
ĐÁnMônHcSLiênLcĐinTngdngCloudVàAndroid
NHN XÉT CA GIÁO VIÊN HNG DN
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
ĐÁnMônHcSLiênLcĐinTngdngCloudVàAndroid
MC LC
Chng 1. TNG QUAN 1
1.1. GII THIU Ý TNG NGHIÊN CU 1
1.2. Mc đích làm đ tài 2
1.3. Phng pháp nghiên cu 3
1.4. Phm vi 3
Chng 2. C S LÝ THUYT 4
2.1. Tng Quan in Toán ám Mây 4
2.1.1. Gii pháp ca đin toán đám mây 5
2.1.2. Cu trúc các phn to nên đám mây
6
2.1.3. in toán đám mây vi Google App Engine 7
2.2. Kin trúc Google App Engine 7
2.2.1. Tng quan Google App Engine 8
2.2.2. Môi trng phát trin 9
2.2.3. Các loi tp tin tnh trên server 10
2.2.4. DataStore 10
2.2.5. Các loi Dch V 11
2.2.6. Google Accounts 11
2.2.7. Các hn ch ca Google App Engine 11
2.3. Các thành phn ca Google App Engine trong Java 12
2.3.1. BackEnds 12
2.3.2. Storing Data 12
2.3.3. Các d
ch v ca GAE 17
2.4. H tr kt ni Android vi AppEngine 26
2.4.1. Gii thiu s lc 26
2.4.2. Kin trúc Android kt ni Appengine 26
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
ĐÁnMônHcSLiênLcĐinTngdngCloudVàAndroid
Chng 3. HIN THC NG DNG 27
3.1. S lc ng dng 27
3.1.1. Mô hình hot đng 27
3.1.2. S lc các chc nng 27
3.2. Xây dng ng dng Backend và Android 27
3.2.1. ng b hóa d liu tài khon google 27
3.2.2. S dng Google Cloud Sql 28
3.3. Xây dng ng dng xem đim trên Android 36
3.3.1.
Mô hình hot đng 36
3.3.2. Cách thc x lý 36
Chng 4. KT QU T C 38
4.1. Các dch v tin ích dành cho giáo viên, ph huynh và hc sinh 38
4.2. ng dng trên Android 41
Chng 5. KT LUN 47
5.1. Li ích ca đin toán đám mây vi GAE 47
5.2. Hn ch ca đin toán đám mây 47
5.3.
Li ích ca H điu hành Android 47
Tính Nng M: 47
Phá b các rào cn ng dng: 47
Vi Android tc đ nhanh & phát trin ng dng d dàng 48
Phn cng đa dng 48
5.4. Nhc đim ca h điu hành Android: 48
Thi lng s dng pin thp 48
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Chng 1. TNG QUAN
1.1. GII THIU Ý TNG NGHIÊN CU
Theo Công vn s 9772/BGDT-CNTT ngày 20/10/2008 ca B GD&T v
vic hng dn thc hin nhim v CNTT nm hc 2008 – 2009. Trong đó xác đnh
nhim v trng tâm ca nm hc 2008 – 2009 là nm hc đu tiên trin khai thc hin
Ch th s 55/2008/CT-BGDT ngày 30/9/2008 ca B trng B GDT v tng
cng ging dy, đào to và ng dng CNTT trong ngành giáo dc giai đon 2008-
2012. Nm hc 2008 – 2009 đc chn là “Nm hc đy mnh ng dng CNTT, đi
mi qun lý tài chính và xây dng trng hc thân thin, hc sinh tích cc”.
Ngày nay, cùng vi s phát trin ca nn kinh t, các gia đình ngày càng quan
tâm đn tình hình hc tp ca con em mình nhà trng.Tuy nhiên trong nhp sng
tt bt, hi h
ca Xã Hi. Các bc ph huynh không có thi gian đn trng đ qun
lý tình hình hc tp ca con em mình.Nm bt đc tình hình và nhu cu này ca
đông đo quý ph huynh hc sinh.
S liên lc chính là cu ni gia Gia đình - Nhà trng - Hc sinh, cho phép ph
huynh hc sinh nm bt đc tình hình hc tp ca con em nh đim kim tra, hnh
kim, hc lc… nhng ch là nhng thi đim đnh k là cui Tháng hay cui Hc
K.Nh vy thì ph huynh ch có th bit kt qu mà không th dõi theo tng bc
hc hành ca con em mình.Chính vì lý do đó mà cn có mt cu ni nhanh chóng hn,
chính xác hn gia Nhà Trng-Ph Huynh.ó cng là lý do thc hin “S Liên Lc
in T Thông Minh”.
Ph huynh s nhanh chóng nhn đc các thông báo ca Nhà trng nh vi
c
đóng hc phí, lch kim tra hoc lch thi các môn, thy giáo ngh dy, hp ph huynh
hc sinh, liên hoan, thm quan…Nhn đc thông tin chuyên cn ca các con thng
xuyên và nhánh chóng qua tin nhn SMS.
im mi nht đây đó là S Liên Lc in T s đc áp dng công ngh
in Toán ám Mây và in Thoi SmartPhone(Android).
Áp dng in Toán ám Mây(Xu hng tt yu
Vit Nam)
Thut ng "Cloud Computing" ra đi gia nm 2007 không phi đ nói v mt
trào lu mi, mà đ khái quát li các hng đi ca c s h tng thông tin vn đã và
đang din ra t my nm qua. Khái nim này có th đc din gii mt cách đn gin:
các ngun đin toán khng l nh phn mm, dch v s nm t
i các máy ch o
(đám mây) trên Internet thay vì trong máy tính gia đình và vn phòng (trên mt đt) đ
mi ngi kt ni và s dng mi khi h cn.
Công ngh đin toán đám mây đã tr nên khá ph bin và có th mang đn các
thay đi tim nng.Ngày nay, khi mà mc tiêu chính ca hu ht các doanh nghip là
tng doanh s, gim thiu chi phí hot đng và quan trng là thu hút đc các khách
hàng mi, công ngh đin toán
đám mây có th h tr cho vic thc hin tt c các
mc tiêu đó.
in toán đám mây tr nên là công c h tr đc lc cho các công ty không có
h thng máy ch, PC ch cài mt s phn mm c bn còn tt c đu ph thuc vào
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
cloud. “Chng hn, h đng ký dch v hosting cho website công ty, thuê công c
qun lý doanh thu t Salesforce.com, ly d liu kho sát th trng t t chc Survey
Monkey Và tt nhiên, h dùng Google đ tìm kim, phân tích, chia s và lu tr tài
liu”.Nh vy các doanh nghip ch cn tp trung cho dch v và sn xut bi C S
D Liu đã có ngi lo thay cho h.
Google nm trong s nhng hãng
ng h đin toán máy ch o tích cc nht bi
hot đng kinh doanh ca h da trên vic phân phi các cloud (virtual server), và các
web services s dng các dch v hosting ca Google, đc gi là Google App Engine
(GAE).
GAE là mt nn tng hosting bao gm web server, c s d liu BigTable và kho
lu tr file GFS. GAE cho phép vit ng dng web da trên c s h tng ca
Google. Ngha là chúng ta không cn quan tâm là trang web ca chúng ta đc lu tr
nh th nào (k c database đi kèm), mà ch cn quan tâm đn vic phát trin ng
dng theo các API do Google cung cp.
Áp dng SmartPhone (Android)
Android là h điu hành chy trên thit b đin thoi đc phát trin bi Google.
Android ra mt đu tiên vào ngày 5/11/2007
Android có rt nhiu u đim vt tri hn các h điu hành chy trên thit b
đin thoi khác nh
vic phát hành phn mn mã ngun m mi ngi,t chc đu có
th d dàng tip cn can thip và nâng cp phát trin theo ý mun ca mình. Ngoài ra
vic phát trin các ng dng cho Android có nhiu thun li đi vi ngi và cng
đng phát trin. Vic Android đc Google cho ra đi đánh du bc tin trong lnh
vc phát trin nn tng smartphone, không phi nh iOS đc quyn trên th
h máy
ca Apple mà Android đã xut hin trên rt nhiu th h máy ca nhiu nhà sn xut
ln nh HTC, LG, SonyErricsion, Samsung, vic Android đc ng dng đi trà s
giúp Google chim u th ln trong th trng smartphone.ng thi Google còn có
chc nng cho kt hp Android vi GAE.Nh vy xu th ca th gii hin nay là liên
kt tt c lên đám mây.
1.2. M
c đích làm đ tài
Hin nay vic giáo dc con ngi đc đt lên hàng đu các nc trên Th
Gii nói chung và Vit Nam nói riêng.Do đó vic h tr vic liên kt gia các bc ph
huynh hc sinh vi nhà trng là điu quan trng cn phi làm nu mun vic hc tp
ca con em ngày càng tt hn.Chính vì vy “S Liên Lc in T Thông Minh” đc
ra đi.Mc dù “S liên lc đin t” không my xa l đi vi các bc ph huynh trong
nhiu nm tr li đây.Nhng khi áp dng in Toán ám Mây và in Thoi Thông
Minh vào ng dng s liên lc đin t thì gim thiu ti đa thi gian s dng mà chi
phí có th r hn.Mang li nhiu li ích hn v mi mt:
X lí nhanh hn
Bo mt an toàn hn cách truyn thng
Không hao tn nhiu chi phí phát sinh ban đu hay th tc rm rà.
Gim chi phí phn cng, không cn thit phi lp đt nhng thit b đt tin,
mua nhng chic máy tính nhanh nht vi b nh ln nht na.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Bên cnh đó S liên lc đin t là cu ni nhanh chóng và chính xác gia nhà
trng và gia đình.H tr giúp các bc ph huynh hc sinh nm rõ quá trình hc tp
ca con em mình đ đa ra nhng quyt đnh chính xác nhm h tr con em mình hc
ngày càng tin b hn.Nhm thúc đy nn giáo dc nc nhà ngày càng phát trin và
ln mnh hn.
S liên lc đin t đem li nhiu li ích cho c ph huynh ln nhà trng. Mt s
li ích đc đ cp đn nh sau:
Vi ph huynh:
- Nhanh chóng nhn đc đim, nhn xét, thông báo t nhà trng
- D dàng nm bt thông tin v tình hình hc tp hàng ngày ca con em mình
- Nâng cao ý thc t giác ca con em.
Vi nhà trng:
- Nâng cao cht lng ging dy.
- Nâng cao hình nh v mt nhà trng hin đ
i, chuyên nghip.
- Góp phn thúc đy tin hc hóa, hin đi hóa nhà trng.
1.3. Phng pháp nghiên cu
Nghiên cu quá trình hot đng,bo mt thông tin, lu tr d liu trên đám
mây. Công ngh v đin toán đám mây vi Google App Engine
S dng Spring FrameWork MVC.
S dng c s d liu Google Cloud Sql, s dng mt chun MySQL đ truy
vn d liu, s d
ng JDBC và DB-API.
Nghiên cu cách kt hp gia Android và Cloud Computing.
1.4. Phm vi
Dch v web(Web services):
ứ Cung cp cho ph huynh và hc sinh có th tra cu đc đim
ứ Các thông tin v các lp hc
ứ Danh sách lp
ứ Giáo viên ch nhim lp.v.v
Phiên bn SmartPhone
ứ ng dng có th xem đim ngay trc tip trên Smart Phone.Ch cn dùng
mã Hc sinh gi lên máy ch.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Chng 2. C S LÝ THUYT
2.1. Tng Quan in Toán ám Mây
Thut ng “in Toán ám Mây” không còn my xa l đi vi cng đng công ngh
Vit Nam nói riêng và các nc trên Th Gii nói chung. đây xin đa ra mt s
đnh ngha.
Theo Gartner:
“in toán đám mây là mt kiu tính toán trong đó các nng lc CNTT có kh nng
m rng rt ln đc cung cp “d
i dng dch v” qua mng Internet đn nhiu
khách hàng bên ngoài.”
Theo Forrester Research:
“in toán đám mây là mt kho tài nguyên c s h tng o hóa, có kh nng m rng
cao và đc qun lý, có th h tr các ng dng ca khách hàng cui và đc tính tin
theo mc đ s dng.”
Theo NIST (National Institute of Standards and Technology):
“in toán đám mây là mt mô hình cho phép truy cp mng thun tin, theo nhu cu
đn mt kho tài nguyên đ
in toán dùng chung, có th đnh cu hình: mng, máy ch,
lu tr, ng dng,…có th đc cung cp và thu hi mt cách nhanh chóng vi yêu
cu ti thiu v qun lý hoc can thip ca nhà cung cp dch v.”
Hình 2.1 Mi th đu tp trung vào đám mây
Mt cách đn gin, đin toán đám mây là vic o hóa các tài nguyên tính toán và
các ng dng. Thay vì vic bn s dng mt hoc nhiu máy ch tht (ngay trc
mt, có th s đc, có th t bn n nút bt tt đc) thì nay bn s s dng các tài
nguyên đc o hóa (virtualized) thông qua môi trng Internet.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Theo truyn thng thì các cá nhân, doanh nghip s xây dng riêng c s h tng
k thut đ t cung cp các dch v cho các hot đng thông tin.Do đó nhng máy ch
đc đt ngay v trí công ty, h s tr tin đ trin khai, duy trì c s h tng đó
(mua thit b phn cng, phn mm chuyên dng, tr lng cho b phn đi
u hành )
Khác vi mô hình truyn thng mô hình đin toán đám mây lu tr và x lý toàn b
thông tin trong đám mây Internet.Mi công ngh, k thut, c s h tng cng nh chi
phí trin khai trong đám mây s do nhà cung cp đm bo xây dng và duy trì.Các
doanh nghip ch vic kt ni qua mng Internet mà không phi mt chút công sc
nào đ bo trì, bo dng, nâng cp, chy máy ch. Không nhng th, các doanh
nghip còn có th
cho khách hàng ca h s dng ng dng mà không phi mt công
cài đt.Do đó, thay vì phi đu t t đu rt nhiu tin cho chi phí xây dng c s h
tng riêng, các cá nhân, doanh nghip trong quá trình hot đng s ch phi tr s tin
va đ theo nhu cu s dng ca mình (pay-for-what-you-use).
2.1.1. Gii pháp ca đin toán đám mây
Hình 2.2 Các gii pháp v cung cp các dch v tài nguyên
Vn đ v lu tr d liu
D liu đc lu tr tp trung các trung tâm d liu khng l và đc
cp phát cho doanh nghip mt cách t thi. Thay vì vic doanh nghip
phi tính toán xem có nên m rng hay không, phi đu t bao nhiêu máy
ch thì nay doanh nghip ch cn yêu cu và đám mây s t tìm ki
m tài
nguyên ri đ cung cp cho bn.Các công ty ln nh Microsoft, Google có
hàng chc trung tâm d liu nm ri rác khp ni trên th gii. Các công ty
ln này s cung cp các dch v cho phép doanh nghip có th lu tr và
qun lý d liu ca h trên các trung tâm lu tr.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Vn đ v sc mnh tính toán
Có 2 gii pháp chính:
S dng các siêu máy tính đ x lý tính toán.
S dng các h thng tính toán song song, phân tán.
Vn đ v cung cp tài nguyên, phn mm.
Cung cp các dch v nh IaaS (infrastructure as a service), PaaS
(platform as a service), SaaS (Storeage as a service).
2.1.2. Cu trúc các phn to nên đám mây
Hình 2.3 Các phn to nên đám mây
2.1.2.1. Các dch v ng dng (SaaS)
Vi các cu trúc nhiu ngi s dng (mt phiên bn ng dng cho
nhiu khách hàng) hay mt cu trúc đa phiên bn (mt phiên bn ng dng cho
tng khách hàng trong cùng mt môi trng vi s bo mt hoàn ho thông
tin).
Tng dch v ng dng này h tr vic thc hin, qu
n lý, lu tr d án
phát trin ng dng phù hp. ây là nhng ng dng chy trong mt đám mây
SaaS s cung cp giy phép mt ng dng cho khách hàng đ s dng mt dch
v theo yêu cu hay còn gi là “phn mm theo yêu cu”. Vi vic ng dng
thành công mô hình SaaS cho phép cung cp, phát trin, lu tr và vn hành
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
phn mm đ khách hàng s dng.Thay vì mua các phn cng và phn mm đ
chy mt ng dng, khách hàng ch cn mt máy tính hoc mt máy ch đ ti
ng dng và truy cp internet đ chy phn mm.
Các ng dng đc cung cp qua mô hình SaaS làm li cho ngi tiêu
dùng bng cách gii phóng cho h khi vic cài đt và bo trì phn mm và các
ng dng có th đc s
dng thông qua các mô hình cp phép có h tr tr
tin đ s dng.
2.1.2.2. Các dch v nn tng (PaaS)
PaaS là mt nn tng công ngh và k thut đc thit k đc bit không
dành riêng cho mt mô hình c th nào, mà đc thit k mt cách tng th đ
Mô hình nào cng th th ng dng, trin khai và phù hp. PaaS cho phép bn
to ra nhng Phn mm
ng dng trên nn web mt cách nhanh chóng, giúp
bn gim bt đc chi phí và s phc tp liên quan đn vic qun lý và mua
bán các Phn mm hay phn cng thông thng Cng ging nh SaaS nhng
mô hình cloud computing này mang đn môi trng phát trin nh mt dch
v: Ví d : Bn xây dng ng dng chy trên c s h tng ca nhà cung cp
và phân phi ti ngi dùng qua máy ch ca nhà cung cp
đó. Mt s ví d
đin hình v PaaS là Salesforce.com, Google App Engine, Yahoo Pipes và ti
Vit Nam.ây là tng đó chúng ta thy c s h tng ng dng ni lên nh là
mt tp hp các dch v.Các dch v nn tng này cho phép khách hàng chc
chn rng các ng dng ca h đc trang b đ đáp ng các nhu cu ca ngi
dùng bng cách cung cp c
s h tng ng dng da theo yêu cu.
PaaS còn đc bit đn vi mt tên khác là cloudware.
2.1.2.3. Các dch v c s h tng (IaaS)
đây, chúng ta thy mt tp hp các tài sn vt lí nh các máy ch, các
thit b mng và các đa lu tr đc đa ra nh là các dch v đc cung cp
cho ngi tiêu dùng. Các dch v đây h
tr c s h tng ng dng và nhiu
ngi tiêu dùng hn. Cng nh vi các dch v nn tng, s o hóa là mt
phng pháp thng đc s dng đ to ra ch đ phân phi các ngun tài
nguyên theo yêu cu. Ví d v các dch v c s h tng bao gm IBM
Bluehouse, VMware, Amazon EC2, Microsoft Azure Platform, Sun ParaScale
Cloud Storage
2.1.3. in toán đám mây vi Google App Engine
Google n
m trong s nhng hãng ng h đin toán máy ch o tích cc
nht bi hot đng kinh doanh ca h da trên vic phân phi các cloud (virtual
server). Google cung cp các dch v hai tng, tng ng cao nht ca đám mây
là SaaS, Google cho phép s dng các dch v ca h nh Gmail, Google Doc và
tng Paas h cung cp các tp API dành cho các doanh nhip, cá nhân, hay t chc
đ h tr cho các ng d
ng web Application s dng các dch v hosting ca
Google, đc gi là Google App Engine (GAE).
2.2. Kin trúc Google App Engine
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
2.2.1. Tng quan Google App Engine
Nhiu doanh nghip s dng rt nhiu phn cng đ chy các ng dng nh
các c s d liu, các máy ch ng dng, các h thng qun lý thay đi và các
công c ln vt tìm li. Tuy vy, ngày nay, các phn cng này này có th d dàng
vt b đ thay bng vic s dng chính gói phn mm y di dng mt d
ch v
đang chy trên mt c s h tng ca ngi, hay t chc nào đó khác.
Mt doanh nghip có th vt b phn cng nm bên di ca mt ng dng
web c th đ thay bng vic chy ng dng trên phn cng đc cung cp bi
Amazon, Google hoc các đi tác khác. Các công ty này đa ra kh nng thuê
phn cng các m
c đ khác nhau, va vn có th lu tr mt ng dng. Hn
na, các công ty này có kh nng qun lý m rng, sao lu và bo mt. Amazon và
Google đã nêu ra nhng mi quan tâm này và đi phó tt hn vi chúng ta, có
nhiu đi mi xung quanh các khía cnh ca vic chy các nn tng phn mm sao
cho hiu qu.
App Engine ca Google là mt nn tng hosting thc s đ xây dng và
tri
n khai ng dng Web Java, Python và Go trên c s h tng m rng ca
Google. Nó không yêu cu l phí cp phép s dng (tr ra mt s th vin phn
mm mà chúng ta chn đ s dng trên c s h tng y yêu cu giy phép) và
không cn chi phí tr trc cho bng thông hoc không gian lu tr. C s h tng
ca App Engine là hoàn toàn min phí cho đn khi đt đ
n ngng v mc s
dng, dung lng lu tr 500MB và theo nh trích dn nguyên vn t Google, "đ
CPU và bng thông cho khong 5 triu lt xem trang mi tháng". Ch cn nói
rng, khi đt ti đim mà Google bt đu gi hóa đn tính phí, thì ng dng Web
ca chúng ta rõ ràng đã to ra lu lng đáng k , có nhiu ngi xem và có lãi.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Hình 2.4 Kin trúc Google App Engine cho Java
2.2.2. Môi trng phát trin
Hin nay Google App Engine h tr phát trin trên ba môi trng nn tng.
Mt là Java Runtime Environment, Python Runtime Environment và Go Runtime
Environment. Môi trng đc chn ph thuc vào ngôn ng ca ng dng và
công ngh mà chúng ta s dng đ phát trin ng dng.
Môi trng Java h tr cho ng dng s dng Java 6 virtual Machine. ng
dng có th phát trin bng ngôn ng Java, hay hu ht các ngôn ng khác mà có
th ch
y trên JVM nh PHP(s dng Quercus), Ruby (s dng JRuby), JavaScript,
Scala, Groovy. ng dng có th chy trên môi trng và s dng các dch v bng
các công ngh web chun hin nay nh servlet và Java Persistence API
Môi trng Python h tr cho các ng dng đc vit bng ngôn ng
Python 2.5 đc ci tin t phiên bn CPython. Môi trng Python trên Google
App Engine cho phép các ng dng Python s dng CGI, mt th vin chun h
tr giao din. Mt
ng dng python có th s dng đc hu ht các th vin
chun. Nhiu th vin mã ngun m điu hot đng tt vi google App Engine
nh là Django, Web2py, Pylons và App Engine còn cha nhiu th vin ca riêng
nó
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Môi Trng Go h tr cho các ng dng đc vit bng ngôn ng Go phiên
bn Release r58.1 tr lên, môi trng này hin đang đc th nghim trên Google
App Engine. Trong gói SDK ca GAE đã cha trình biên dch ca Go và mt th
vin chun.
Môi trng Java, Python và Go có đim chung đó là s dng cách thc
ging nhau trong vic truy cp d liu: mt ng dng đc đnh tuyn ti máy ch
ca Google, sau
đó máy ch s xem yêu cu và chun b d liu, nu có d liu
theo yêu cu thì máy ch tin hành tr li cho client. Mi môi trng s dng mt
trình thông dch riêng.
Tt c các ng dng ca server cn mt trình thông dch riêng (JVM hay
Python interpreter), vì th trc khi các yêu cu đc gi ti server, thì server phi
thc hin nhim v là chun b môi trng phù hp vi ng dng có yêu c
u.
2.2.3. Các loi tp tin tnh trên server
Mt website có rt nhiu tài nguyên.Hu ht các website có resource đc
cp phát cho trình duyt mà không có s thay đi trong quá trình hot đng thng
xuyên ca nó. Hình nh và CSS đc mô t nh là s xut hin ca các trang
web, mã JavaScript giúp chy các tác v trên trình duyt, và các trang HTML
không có các thành phn d liu đng là các ví d ca nhng tài nguyên này, đc
gi chung là các tp tin tnh. S cp phát tài nguyên này cho browser không liên
quan ti mã code ca ng d
ng, không cn thit và không hiu qu đ đáp ng t
các máy ch. Thay vào đó, App Engine cung cp mt thành phn chuyên bit ca
máy ch chuyên dng đ cung cp tnh các tp tin này. Các server này đc ti u
hóa cho kin trúc ni b và phng thc truyn dn mng đ x lý các yêu cu v
tài nguyên tnh.
Khi duyt website, các tp tin tnh cùng các mã ng dng đc load lên.
các tp tin tnh có th
đáp ng yêu cu ca website, phi cu hình mt s khía
cnh trong các tp tin cu hình bao gm: các URL tnh ca tp tin, các loi ni
dung và hng dn cho các trình duyt đ gi các bn sao ca các tp tin trong b
nh Cache cho mt s lng và thi gian nht đnh đ làm gim lu lng và tc
đ dng hình ca trang khi trang đc load. Mc đnh trong GAE thì các file hình
nh và CSS trong th mc resouse ca ng d
ng đu là các tp tin Static.
2.2.4. DataStore
Hu ht các ng dng web hu ích cn phi lu tr thông tin trong vic x
lý yêu cu. Vì th các website thng có các lung xut nhp d liu và phi có
mt hoc nhiu máy ch web kt ni vi máy ch c s d liu đ lu tr hoc ly
d liu. Tuy nhiên, khó khn đc đt ra khi có nhiu kt n
i đng thi đ yêu cu
d liu, vì th h thng máy ch c s d liu phi đòi hi mt s cu hình v
phn cng đ có th đáp ng đc nhiu yêu cu cùng lúc.
Hin nay, các h thng lu tr d liu ph bin nht cho các ng dng web
là lu tr theo table, hàng và ct, gin lt không gian, s
p xp, s dng các ch s
index đ nâng cao kh nng truy xut d liu. Các loi khác ca h thng lu tr
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
d liu bao gm các kho d liu phân cp (XML) và c s d liu hng đi
tng (Object database). Mi loi c s d liu có u và khuyt đim riêng, và
loi tt nht phù hp cho mt ng dng ph thuc vào bn cht d liu ca ng
dng. Và mi loi c s d liu có nhng k thut c
a riêng mình đ phát trin qua
các h thng các máy ch.
H thng c s d liu ca Google App Engine gn ging nht vi mt c
s d liu kiu đi tng(object). Nó không phi là mt c s d liu quan h,
điu này có th s yêu cu thay đi cách suy ngh v d liu ca ng dng.
2.2.5. Các loi Dch V
Mi quan h gia datastore và thi gian thc thi đó là mt loi dch v: dch
v này cung cp các tp API đ truy xut vào h thng c s d liu. Google App
Engine bao gm mt s dch v hu ích cho các ng dng web. Dch v b nh
Cache là mt dch v giúp kh nng truy xut nhanh vì chính li th ca nó là
nhanh, nhanh hn nhiu so vi truy xut trc ti
p trên database. Nhng mt nhc
đim ca nó là khi server có s c v mt đin hay tt máy thì các giá tr ghi tm
thi trong memcache b xóa hoàn toàn. Nh tên gi ca nó, dch v memcache s
dng nh là mt b nh cache đ lu các kt qu ca các truy vn thng xuyên
hoc thc hin các phép tính toán.
ng dng ca App Engine có th truy xut đn các tài nguyên ca các trang
web khác s dng d
ch v URL Fetch. Dch v này to ra kt ni HTTP ti server
khác trên internet đ nhn v tài nguyên
ng dng App Engine có th gi mail s dng dch v Mail. Tin nhn có
th gi đn các user khác trong Domain hoc ngoài Domain và có th nhn mail t
các user khác. Nu ng dng đc cu hình đ nhn mail thì tin nhn s đc gi
đn đa ch ca ng dng, sau đó ng dng s đnh tuy
n ti Mail service và hin
th trên webform nu có yêu cu
Ngoài gi nhn Mail. App Engine còn cho phép ng dng có th nhn tin
nhn chat ca Google Talk s dng giao thc XMPP bng dch v XMPP service
X lý nh cng là mt phn trong dch v ca App Engine bao gm các
dch v xoay nh, ct nh, hin th nh…
2.2.6. Google Accounts
App Engine có kh nng tích hp các tài khon Google vào ng dng, các
tài khon này ngi dùng đã
đng kí trên các dch v Saas nh Google Mail,
Google Docs và Google Calendar. S bo mt hn nu chúng ta có th s dng tài
khon Google đ chng thc thay vì s dng mt h thng đng nhp riêng. Tt
nhiên, Chúng ta có th s dng h thng riêng ca chúng ta hoc là mt nhà cung
cp khác mà GAE có h tr nh là OpenID
2.2.7. Các hn ch ca Google App Engine
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
App Engine cung cp phng thc kt ni an toàn(HTTPS) cho tên min
con ca google h tr là application-id.appspot.com, nhng cha h tr phng
thc kt ni này cho tên min khác. Google account đng nhp luôn luôn s dng
phng thc kt ni an toàn này
ng dng s dng dch v URL Fetch đ to kt ni HTTPS và gi yêu cu
đn mt website khác, nhng App Engine không kim tra đc certificate (giy
chng nhn) s dng trên máy ch
t xa.
2.3. Các thành phn ca Google App Engine trong Java
2.3.1. BackEnds
Backends đc mô t nh là mt phn ph tr ca GAE, là mt ng dng
đc bit không có gii hn thi gian yêu cu, có b nh cao hn và tng bng
thông CPU. BackEnds đc thit k cho các ng dng cn hiu sut nhanh hn,
cn b nh nhiu hn, và các quá trình yêu cu là liên tc. Nhng phn ph tr
này s tính phí theo thi gian hot đng
2.3.2. Storing Data
Môi trng App Engine cung cp nhng phm vi chc nng dành cho vic
lu tr d liu:
App Engine Datastore cung cp lu tr c s d liu dng mô hình
NoSql(mô hình lu tr cp giá tr-khóa và h thng lu tr phân tán)
Google Cloud Sql cung cp c s d liu Sql dành cho ng dng
Appengine, c bn phát trin trên mô hình quan h quen thuc
MYSQL.
Google Cloud Storage cung cp dch v lu tr cho các đi tng và
tp tin lên đn con s hàng t byte.
2.3.2.1. Google Cloud Sql
n gin là đt mt thc th MySql sng trong đám mây.Nó có tt c
kh nng và chc nng ca MySql, vi mt vài tính nng đc thêm vào và
mt vài tính nng không đc h tr.ây là dch v Google API đc Google
chính thc phát trin và đa vào s dng vào tháng 10 n
m 2011.
Google Cloud Sql rt d dàng cho vic s dng, không đòi hi bt c
vic cài đt phn mm hay bo trì.iu đó rt lý tng cho các ng
dng va và nh.
Mt s tính nng và hn ch:
Tính nng
Kh nng lu tr c s d liu MySql trong các đám mây.
H tr dung lng lên đn 10GB
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
ng b d liu trên môi trng đa lý nhân rng.
Nhp và xut d liu bng cách s dng mysqldump
Kh nng tng thích vi Java và Python
H tr công c dòng lnh
H Tr tin ích đnh hng cho các câu lnh SQL(SQL
Prompt)trong Google API Console.
Hn ch
Dung lng b gii hn ch khong 10GB không thích hp
cho các c s d
liu ln
Chc nng đnh ngha ngi dùng không đc h tr.
Không h tr nhân bn c s d liu.
Và mt s hàm không đc h tr trong MySql nh:
LOAD DATA INFILE
SELECT INTO OUTFILE
SELECT INTO DUMPFILE
INSTALL PLUGIN
UNINSTALL PLUGIN
CREATE FUNCTION
LOAD_FILE()
s dng đc Google Cloud Sql đòi hi cn phi có các thông tin
nh sau:
ng ký / ng nhp dch v Google Cloud Sql
To m
t instance Google Cloud Sql
Cung cp quyn truy cp cho instance t ng dng App Engine
2.3.2.2. Using Google Cloud Sql with Java
Bc 1: To ng dng Appengine
Bc 2: To c s d liu và các bng
To trc tip c s d liu trên Cloud thông qua Sql Prompt vi giao
din trc quan.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
CREATE DATABASE guestbook;
Khi s dng c s d liu ch cn chn C s d liu đó trong danh
sách menu.
Hình 2.5 Giao din Google Cloud Sql
To tng thc th theo cu trúc Mysql rt tin li cho ngi dùng
CREATE TABLE entries (guestName VARCHAR(255),
content VARCHAR(255), entryID INT NOT NULL
AUTO_INCREMENT, PRIMARY KEY(entryID));
Bc 3:To kt ni và truy vn c s d liu hin th lên WebForm
2.3.2.3. Java Database Conectivity (JDBC)
JDBC là vit t
t ca “Java DataBase Connectivity”. Nó là mt API
(Application Programming Interface) có cha mt tp hp các lp, các giao
din Java và các thông báo li ngoi l nm trong cùng mt đc t mà theo đó
c các công ty sn xut JDBC driver cng nh các nhà phát trin JDBC đu
phi tuân th cht ch khi phát trin ng dng.
JDBC là mt chun truy xut c s d liu rt ph bin. Các RDBMS
(Relational Database Management Systems – H qun tr c s d li
u quan
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
h) hay các nhà sn xut phn mm bên th ba phát trin các driver cho Java
đu cn tuân th cht ch đc t JDBC. Các nhà phát trin khác s dng các
driver này đ phát trin nên các ng dng có truy cp c s d liu: ví d, bn
dùng ConnectorJ JDBC driver đ truy cp c s d liu MySQL. Vì các driver
này tuân th cht ch đc t JDBC nên các nhà phát trin ng dng JDBC có
th thay th driver trong ng dng ca h b
ng mt cái tt hn mà không cn
phi vit li ng dng ca h. Nu h đã s dng mt s API đc quyn do mt
s nhà sn xut RDBMS nào đó cung cp thì h s không th nào thay đi
driver và/hoc c s d liu mà không vit li ng dng hoàn toàn.
Kin trúc JDBC:
Trong Java có 2 lp ch yu chu trách nhim v thit l
p kt ni đn
mt c s d liu.
- Lp đu tiên là DriverManager. ó là mt trong rt ít các lp thc s
do JDBC API cung cp. DriverManager chu trách nhim qun lý mt nhóm
(pool) các driver đã đng kí, mà thc cht là là tru tng hóa các chi tit v
vic s dng mt driver, cho nên lp trình viên không cn phi làm vic trc
tip vi driver đó.
- Lp th 2 là mt lp JDBC Driver th
c s. Nó đc cung cp bi các
nhà sn xut phn mm đc lp. Lp JDBC Driver chu trách nhim thit lp
đng kt ni c s d liu và x lý tt c các giao tip vi c s d liu đó.
Các JDBC driver chia thành 4 kiu khác nhau.Chúng ta s chia nó ra làm 2
phn:
JDBC API (các gói java.sql & javax.sql )
Các kiu JDBC Driver JDBC API, JDBC API có sn trong các gói
java.sql và javax.sql. Sau đây là các lp JDBC, các giao din và các li
ngoi l quan trng trong gói java. sql:
1. DriverManager - Np các JDBC driver vào trong b nh. Có th s dng nó
đ m các kt ni ti mt ngun d liu.
2. Connection - Biu th mt kt ni đn mt ngun d liu. c dùng đ to
ra các đi tng Statement, PreparedStatement và CallableStatement.
Statement - Biu din mt lnh SQL tnh. Có th s dng nó đ thu v đi
tng ResultSet.
3. PreparedStatement - Mt gii pháp thay th hot đng t
t hn đi tng
Statement, thc thi mt câu lnh SQL đã đc biên dch trc.
4. CallableStatement – biu din mt th tc đc lu tr. Có th đc s dng
đ thc thi các th tc đc lu tr trong mt RDBMS có h tr chúng.
5. ResultSet - biu din mt tp kt qu trong c s d liu to ra bi vic s
dng mt câu l
nh SQL là SELECT.
6. SQLException - mt lp x lý li ngoi l cha các li truy cp c s d
liu.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Gói th hai, javax.sql là mt b phn ca J2SE 1.4 và J2EE 1.3. Nó b sung
các tính nng sau đây vào JDBC đ h tr thêm cho các tính nng đã có trong
gói java.sql:
7. DataSource - Tru tng hóa mt ngun d liu. i tng này có th s
dng th cho 8. DriverManager đ to ra mt cách có hiu qu các kt ni c
s d liu (có kh nng s dng vic cha/phân chia các đng kt ni ngm).
To s
n c ch phân chia đng kt ni (built-in connection pooling).
9. XADataSource, XAConnection – Cho phép/H tr các giao dch phân phi.
RowSet – Nó m rng giao din ResultSet đ tng thêm s h tr đi vi các
tp kt ni b ngt.
Các loi JDBC Driver
Có 4 loi JDBC driver. Thông dng nht và cng là hiu qu nht là loi 4. Sau
đây là mô t:
JDBC Driver loi 1- Chúng là các trình điu khin cu ni JDBC-
ODBC. Chúng y nhim công vic truy cp d
liu cho ODBC API.
Chúng là trình điu khin chm nht trong s còn li. SUN cung cp
mt phn mm trình điu khin JDBC/ODBC.
JDBC Driver loi 2 – Chúng ch yu s dng API mã nn đ truy cp
d liu và cung cp các lp bao Java đ có th đc gi ra bng cách
dùng các JDBC driver.
JDBC Driver loi 3 – Chúng đc vit thun bng Java và s dng giao
thc Net đc lp nhà sn xut đ
truy cp đn trình theo dõi t xa đc
lp nhà sn xut. Trình theo dõi này đn lt nó li ánh x các li gi
đc lp nhà sn xut này vào các li gi ph thuc nhà sn xut. Bc
đc bit này đã làm tng đ phc tp và gim tính hiu qu trong truy
cp c s d liu.
JDBC Driver loi 4 – Chúng đc vit thun túy bng Java và là loi
hiu qu nh
t. Chúng cho phép kt ni trc tip vào c s d liu, cung
cp kt qu ti u và cho phép lp trình viên thc hin các chc nng
tùy thuc vào c s d liu c th. iu này đã to ra tính c đng cao
nht là khi bn cn thay đi c s d liu bên di mt ng dng. Loi
driver này thng đc dùng cho các ng d
ng phân tán cao.
SUN khuyn cáo s dng và phát trin các trình điu khin loi 4 trong
các ng dng.
2.3.2.4. Cu hình JDBC và kt ni truy vn c s d liu
Trc khi s dng bt c ng dng Java vi Google Cloud Sql đu phi
cn cung cp chính xác trình điu khin vi dch v. s dng JDBC cn
thêm “import com.google.appengine.api.rdbms.AppEngineDriver;” vào
trong class.
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Hình 2.6 Chui kt ni đn c s d liu trên Cloud
2.3.3. Các dch v ca GAE
2.3.3.1. BlobStore Java API
Hình 2.7 Cách thc lu d liu ca BlobStore trong Datastore
BlobStore API cho phép ngi s dng ng dng ca chúng ta đ có th
upload đc d liu dng File vào Datastore. Các Blob đc to khi ngi
dùng upload file s dng giao thc HTTP, BlobStore to ra blob t ni dung
ca File và tr v mt key tham chiu ti Blob g
i là Blob key. Sau đó ngi
dùng có th s dng file thông qua key này, hoc blob có th đc đc trc tip
dng stream. Blob rt hu dng khi ngi dùng mun lu tr các file tài liu
loi ln nh là hình nh hoc Video. Blob không th sa đi sau khi nó đc
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
to ra, ch có th xóa nó. ng dng có th ly mt đon giá tr ca Blobstore
bng cách s dng các API, kích thc ca mi đon ti đa là 32Mb. Kích
thc ti đa ca đon này đc biu din bng bin
“com.google.appengine.api.blobstore.BlobstoreService.MAX_BLOB_FET
CH_SIZE” trong GAE.
to ra blob t file đc upload, s dng :
“blobstoreService.createUploadUrl(“URL”)” t s kin ca HTML
form. Khi đc upload thành công lên Datastore, API t
đng to ra thông tin
v Blob mà chúng ta va upload và lu tr trong Datastore đ phc v cho
ngi dùng khi cn thêm thông tin v Blob mà chúng ta va upload. Sau khi
to ra blob, Blob có th đc chia s cho các ngi dùng khác, th vin cung
cp phng thc serve đ ngi dùng có th ly v Blob
blobstoreService.serve(blobKey, res). Ngoài vic cho ngi dùng upload file,
BlobStore API còn cho phép to ra mt blob rng mi s dng
createNewBlobFile() và có th ghi d liu vào blob mi to này bng File API.
2.3.3.2. Capabilities
Capabilities cung cp mt s
th vin dùng đ kim tra cu hình mà
ngi dùng đã cu hình trong các file XML, t đó gii quyt mt s vn đ, cái
nào dùng đc và cái nào không dùng đc. Có hai trng thái mà Capabilities
tr v là DISABLED và ENABLED. Nu s dng đc thì trng thái tr v là
ENABLED và ngc li
Hình 2.8 Cách s dng Capabilities
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Các loi Capabilities mà GAE h tr
Hình 2.9 Các loi Capabilities GAE h tr
2.3.3.3. Channel API
Channel API to ra mt loi kt ni bn vng gia ng dng và Google
Servers, cho phép ng dng có th gi tin nhn bng JavaScript trong thi gian
thc mà không có kim tra vòng. API này hu ích cho ng nào nào đc th k
dùng đ cp nht các thông tin user s dng App ngay tc thì
JavaScipt Client:
Kt ni ti Channel mt ln và nhn v thông báo thông tin channel t
server
L
ng nghe các cp nht t channel v các Client khác
Gi tin nhn ti server và server thông báo có tin nhn ti cho các
client khác
Server:
To ra mt Channel riêng cho tt c các JavaScrip Clients
To và gi mã chng thc ID ca Channel cho mi Client, đ client có
th kt ni ti và lng nghe
Nhn thông tin cp nht t client thông qua các yêu cu HTTP
Gi các thông tin cp nht cho các client khác cùng Channel
Qun lý các thông tin các trng thái kt ni ca Client
ĐiHcMTPHChíMinh GVHDTSLêXuânTrng
SVTHTrangThànhLcLýTrngKhoa Trang
Hình 2.10 Trao đi d liu gia client và server s dng Channel API
s dng đc Channel, phi cu hình Channel trong file appengine-
web.xml
Hình 2.11 Cu hình Channel trong Google App Engine
2.3.3.4. Image API
App Engine cung cp mt dch v gi là Image service dùng trong các
thao tác vi nh nh, xoay nh, chnh kích thc, ct nh, phóng to, nh, điu
chnh đ sáng ti ca nh, chnh màu và đ tng phn ca nh. Nó có th
chuyn nh sang mt vài đnh dng khác nhau, s dng mt gii thut đc
đnh sn giúp nâng cao cht lng hình nh. Hình
nh x lý có th ly trc tip
t ng dng hoc t Blobstore. Nu hình nh đc ly t Blobstore, nu mun
chnh sa thì kích thc ca blob phi nh hn 32Mb.
Dch v nh h tr các loi đnh dng sau: JPEG,PNG,WEBP,
GIF,BMP,TIFF và ICO.
2.3.3.5. Mail API
T ng dng App Engine có th gi email thay mt cho Qun Tr Viên
ca ng dng, và thay mt cho ngi s
dng vi ng dng vi Google
Accounts. Tt c các chc nng này đu đc h tr bi GAE đc gi là Mail
Service.
Cu hình s dng Mail trong GAE trong file appengine-web.xml