You are on page 1of 8

NGHIN CU CNG NGH IN TON M MY.

VIT MT NG
DNG DEMO DNG MT TRONG CC GI TH VIN SAU: Google App
Engine ca Google Window Azure ca Microsoft Sun Cloud ca Sun Mc lc:
Chng I: Gii thiu Tm tt h thng: gip mi ngi hnh dung m hnh
in ton m my nh th no .Nhm chng ti vit ng dng nh da trn cc
gi th vin c sn ca google.V hnh thc cc bn c th hnh dung ng dng
ny ging nh l cc blog ,facebook,din n ..qua thnh lp cc nhm hc tp
cc bn c th trao i hay bnh lun v mt vn g . Chng II: C s l
thuyt 1.in ton m my l gi: in ton m my l mi trng tnh ton da
trn internet m tt c phn mm, d liu, ti nguyn c cung cp cho my
tnh v cc thit b khc theo nhu cu (tng t nh mng in) Theo Wikipedia
M hnh ny v ang c cc cng ty ,doanh nghip hng n .S dng m
hnh ny cc doanh nghip ch cn tr ph cho nhng ng dng m h dung ,m
khng cn u t nhiu vo s s h tng, cng nh quan tm nhiu n cng
ngh . Hnh 1: Mi th u tp trung vo m my 2. Li ch cloud computing:
Tnh linh ng: Ngi dng c th thoi mi la chn cc dch v ph hp vi
nhu cu ca mnh, cng nh c th b bt nhng thnh phn m mnh khng
mun. (Thay v phi b ra hng trm USD cho 1 b Ms office, ta c th mua ring
l tng phn hoc ch tr 1 khon ph rt nh mi khi s dng 1 phn no ca
n) Gim bt ph: Ngi dng khng ch gim bt chi ph bn quyn m cn gim
phn ln chi ph cho vic mua v bo dng my ch. Vic tp hp ng dng ca
nhiu t chc li 1 ch s gip gim chi ph u t ban u, cng nh tng hiu
nng s dng cc thit b ny mt cch ti a. To nn s c lp: Ngi dng s
khng cn b b hp vi 1 thit b hay 1 v tr c th no na. Vi in ton m
my, phn mm, d liu c th c truy cp v s dng t bt k u, trn bt k
thit b no m khng cn phi quan tm n gii hn phn cng cng nh a l.
(Bn c th chi Call of Duty 6 trn iPad hoc iPhone m khng cn quan tm n
cu hnh ca n) Tng cng tin cy: D liu trong m hnh in ton m
my c lu tr 1 cch phn tn ti nhiu cm my ch ti nhiu v tr khc

nhau. iu ny gip tng tin cy, an ton ca d liu mi khi c s c hoc


thm ha xy ra. (Hy tng tng 1 ngy no , server yu qu ca cng ty t
nhin bc chy vi ton b d liu qu gi bn trong, bn s lm g??) Bo
mt: Vic tp trung d liu t nhiu ngun khc nhau s gip cc chuyn gia bo
mt tng cng kh nng bo v d liu ca ngi dng, cng nh gim thiu ri
ro b n cp ton b d liu. (D liu c t ti 6 my ch khc nhau trong
trng hp hacker tn cng, bn cng s ch b l 1/6. y l 1 cch chia s ri ro
gia cc t chc vi nhau) Bo tr d dng: Mi phn mm u nm trn server,
lc ny, ngi dng s khng cn lo lng cp nht hay sa li phn mm na. V
cc lp trnh vin cng d dng hn trong vic ci t, nng cp ng dng ca
mnh. 3. Ai ang ng dng Cloud computing: Cc ng ln bt u rc rch
trong cuc chy ua n vi in ton m my. Nhng Google, Microsoft,
Amazone, Sun u v ang pht trin nhng nn tng in ton m my ca
ring mnh. Cc nn tng in ton m my ln c th k n by gi bao gm:
Google App Engine ca Google: Windows Azure ca Microsoft: Nn tng in
ton m my ra i u tin: Amazone Webservice ca Amazon.com Sun Cloud
ca Sun Facebook 4. Google App Engine l g: Google App Engine (GAE) l
mt nn tng hosting bao gm web server, c s d liu BigTable and kho lu tr
file GFS. GAE cho php bn vit ng dng web da trn c s h tng ca
Google. Ngha l bn khng cn quan tm l trang web bn c lu tr nh th
no (k c database i km), m ch cn quan tm n vic pht trin ng dng
theo cc API do Google cung cp. Vi App Engine,Bn ch cn ti ln cc ng
dng ca bn, v n sn sng phc v ngi dng ca bn. Bn c th s dng
tn min ring ca mnh (chng hn nh ) thng qua google apps. Hoc bn c
th dng sub-domain min ph ca appspot.com. GAE cho php c host min
ph vi dung lng 500 MB lu tr v cho php 10 GB bng thng lu
chuyn mi ngy hay tng ng 5 triu pageview hng thng,Vt qua mc
ny bn s phi tr ph. Dng GAE, chng ta khi phi thit k database, vit
SQL truy vn data, map data v object. Chng ta ch cn design cc class v

GAE t ng lo phn lm vic vi database. Tm li, gi y bn ch cn phi


ngh ra v vit nhng ng dng tuyt vi nht ri ku gi c th gii vo dng.
Tuy nhin, mt tri ca vic xy dng ng dng trn GAE l bn s ph thuc
hon ton vo cc cng ngh ca Google v rt kh c th tch ra thnh mt ng
dng c lp. Yahoo hay Microsoft s chng bao gi mua mt ng dng xy dng
trn nn tng ca i th. Cn cc nh u t cng rt e ngi khi ti sn ca cng
ty bn t ht vo tay ngi khc, d cho l Google. Hin AppEngine h tr 2
loi ngn ng l: Python v Java. Mt s ngn ng khc nh PHP cng c th
chy c nu ci cng vi b chuyn t PHP sang Java. Chng III: Hng dn
ci t 1.Yu cu: Eclipese hay jcreator Google plugin cho Eclipese AppEnginejava-SDK-1.3.8.zip 2.ng k ti khon Google App Engine: Bc 1: trin khai
cc ng dng ca bn vi cc m my ca Google, bn cn mt ti khon
AppEngine. Lm c mt ti khon bn cn mt ti khon email ca Google.
Open v ng nhp vi thng tin ti khon gmail ca bn Bc 2: Chn nt
Create Application Bc 3: Bn cn phi xc minh ti khon ca bn thng qua
mt s in thoi hp l.Sau khi cung cp s in thoi ca bn, Google s nhn
cho bn mt m xc minh qua SMS. Bc 4: Nhp m xc nhn ca google Bc
5: Tin hnh to mt ng dng.Chng ta c php to c 10 ng dng cho
mt ti khon gmail. y l giao din chnh ca ng dng chng ta to ra. 3.To
mt project: Cc ng dng App Engine Java s dng cc chun java servlet
tng tc vi mi trng my ch web. Cc file ca mt ng dng bao gm: cc
file class c bin dch t file java, cc file JAR ca b th vin, cc file tnh
(css,) v cc file xml cu hnh. Tt c c sp xp theo mt cu trc th mc
v nm trong th mc WAR a.Cu trc th mc project: Mt th mc vi tn
Guestbook c to cha d n. Bn trong l 2 th mc, mt th mc mang tn
/src cha m ngun java v mt th mc /war cha cc file class c bin
dch t file ngun java. Th mc war c xem l mt ng dng hon chnh dng
up ln Google App. To cy thc mc nh sau: Guestbook Src (m ngun)
Guestbook META-INF (file cu hnh) Greeting.java GuestbookServlet.java

PMF.java SignGuestbookServlet.java Jdoconfig.xml Guestbook.jsp war WEBINF Web.xml Appengine-web.xml classes lib Compiled classes JARs for
Libraries b.The servlet class: Cc ng dng App Engine Java s dng java servlet
API tng tc vi my ch web. Mt HTTP Servlet l mt lp ng dng c kh
nng x l v phn hi cc yu cu web. Lp ny tha k lp
javax.servlet.GenericServlet hoc lp javax.servlet.http.HttpServlet. Trong th
mc src/guestbook to mt file c tn GuestbookServlet.java c ni dung: package
guestbook; import java.io.IOException; import javax.servlet.http.*; import
com.google.appengine.api.users.User; import
com.google.appengine.api.users.UserService; import
com.google.appengine.api.users.UserServiceFactory; public class
GuestbookServlet extends HttpServlet { public void doGet(HttpServletRequest
req, HttpServletResponse resp) throws IOException { UserService userService =
UserServiceFactory.getUserService(); User user = userService.getCurrentUser();
if (user != null) { resp.setContentType("text/plain");
resp.getWriter().println("Hello, " + user.getNickname()); } else
{ resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); } } }
Google App Engine cung cp mt s dch v hu ch da trn c s h tng
Google, c th truy cp bi cc ng dng bng cch s dng th vin c trong
SDK. One such service is the Users service, which lets your application integrate
with Google user accounts. Mt trong nhng dch v l dch v ngi dng, cho
php tch hp cc ng dng ca bn vi ti khon ngi dng Google. With the
Users service, your users can use the Google accounts they already have to sign in
to your application. Vi dch v ngi dng, ngi dng ca bn c th s dng
Google cc ti khon m h c ng nhp vo ng dng ca bn. Trong
on code trn, class GuestbookServlet s dng Users API kim tra xem ngi
dng ng nhp vi ti khon Google. Nu cha, th ngi dng s c
chuyn n mn hnh ng nhp ti khon Google.
userService.createLoginURL(...) s tr v URL ca mn hnh ng nhp.

c.Signgustbookservlet.java file: Trong src/guestbook/ to 1 file


SignGuestbookServlet.java c ni dung sau: package guestbook; import
java.io.IOException; import java.util.Date; import java.util.logging.Logger; import
javax.jdo.PersistenceManager; import javax.servlet.http.*; import
com.google.appengine.api.users.User; import
com.google.appengine.api.users.UserService; import
com.google.appengine.api.users.UserServiceFactory; import guestbook.Greeting;
import guestbook.PMF; public class SignGuestbookServlet extends HttpServlet
{ private static final Logger log =
Logger.getLogger(SignGuestbookServlet.class.getName()); public void
doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException
{ UserService userService = UserServiceFactory.getUserService(); User user =
userService.getCurrentUser(); String content = req.getParameter("content"); Date
date = new Date(); Greeting greeting = new Greeting(user, content, date);
PersistenceManager pm = PMF.get().getPersistenceManager(); try
{ pm.makePersistent(greeting); } finally { pm.close(); }
resp.sendRedirect("/guestbook.jsp"); } } on code ny to i tng Greeting
mi bng vic gi hm. lu i tng vo kho d liu, n to ra
PersistenceManager nh vo vic s dng PersistenceManagerFactory . Khi
makePersistent c tr v, cc i tng mi c lu trong kho d liu. d.PMF
file: Mi khi yu cu s dng, kho d liu s to ra mt i tng mi ca lp
PersistenceManager thong qua th class PersistenceManagerFactory. Trong th
mc src/guestbook tao mt file PMF.java c ni dung: package guestbook; import
javax.jdo.JDOHelper; import javax.jdo.PersistenceManagerFactory; public final
class PMF { private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory("transactions-optional"); private PMF()
{} public static PersistenceManagerFactory get() { return pmfInstance; } }
Chng IV: Kim th v nhn xt 1.Kim th: e.Getting.java Trong th mc
src/guestbook ta to mt file Greeting.java c ni dung: package guestbook;

import java.util.Date; import javax.jdo.annotations.IdGeneratorStrategy; import


javax.jdo.annotations.IdentityType; import
javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey; import
com.google.appengine.api.users.User; @PersistenceCapable(identityType =
IdentityType.APPLICATION) public class Greeting { @PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;
@Persistent private User author; @Persistent private String content; @Persistent
private Date date; public Greeting(User author, String content, Date date)
{ this.author = author; this.content = content; this.date = date; } public Long
getId() { return id; } public User getAuthor() { return author; } public String
getContent() { return content; } public Date getDate() { return date; } public void
setAuthor(User author) { this.author = author; } public void setContent(String
content) { this.content = content; } public void setDate(Date date) { this.date =
date; } } Lp ny s nh ngha 3 thuc tnh: author, content v date. Ba ci trng
ny s c ch thch @Persistence thng bo cho DataNucleus lu chng nh
3 i tng thuc tnh trong Goolge App. f.jdoconfig.xml file: Trong th mc
war/WEB-INF/classes/META-INF/, ta to file jdoconfig.xml cu hnh Goole
APP thnh nn tng try xut. <jdoconfig xmlns="" xmlns:xsi=""
xsi:noNamespaceSchemaLocation=""> <property
name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFact
ory"/> g.guestbook.jsp file: Trong war/ ta to 1 file guestbook.jsp lm giao din
cho ngi s dng post cc bnh lun. The guestbook has no messages. <% } else
{ for (Greeting g : greetings) { if (g.getAuthor() == null) { %> An anonymous
person wrote: <% } else { %> wrote: <% } %> <% } } pm.close(); %> -Test case
1: Nhp sai cc thng tin SQL server connect. Server thng bo, kt ni khng
thnh cng. h.web.xml file: Khi my ch web nhn c yu cu, n xc nh
servlet class gi bng cch s dng mt file cu hnh c gi l "m t trin

khai ng dng web." This file is named web.xml , and resides in the war/WEBINF/ directory in the WAR. WEB-INF/ and web.xml are part of the servlet
specification. File ny c t tn l web.xml , v nm trong war/WEB-INF/ th
mc trong WAR. WEB-INF/ v web.xml l mt phn ca c t servlet. <!
DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" ""> guestbook guestbook.GuestbookServlet guestbook /guestbook sign
guestbook.SignGuestbookServlet sign /sign guestbook.jsp i.theappengine-web.xml
: App Engine cn mt tp tin cu hnh b sung tm ra cch trin khai v chy
ng dng. This file is named appengine-web.xml , and resides in WEB-INF/
alongside web.xml . File ny c t tn appengine-web.xml , v nm trong
WEB-INF/ cng vi web.xml . It includes the registered ID of your application
(Eclipse creates this with an empty ID for you to fill in later), the version number
of your application, and lists of files that ought to be treated as static files (such as
images and CSS) and resource files (such as JSPs and other application data). N
bao gm cc ID ng k ca cc ng dng ca bn (Eclipse to ra iu ny vi
mt ID trng bn in vo sau), s phin bn ca ng dng ca bn, v danh
sch cc file phi c i x nh cc file tnh (nh hnh nh v CSS) v cc
file ti nguyn (nh JSP v d liu ng dng khc). In the directory war/WEBINF/ , a file named appengine-web.xml has the following contents: Trong th mc
war/WEB-INF/ , mt tp tin c tn appengine-web.xml c ni dung sau y: 1
4.Trin khai ng dng : upload code v cc file chng trnh ca bn ln
Google App Engine ta dng mt tp lnh c trong SKD c tn: appcfg.cmd Cn
chun b: a ID vo ng dng: Cn 1 ID application c ng k trn
google upload ng dng, theo nh cch ng k phn trn, ta c c ID
application l : le-thao Ta vo thc mc war/WEB-INF/appengine-web.xml m
file appengine-web.xml ln, t ID application vo gia th ri save li nh hnh
v Bt u upload: Sau gii nn ra D ta c D:\appengine-java-sdk, m cmd
ta g: D: // Chuyn v D G: D:\\appengine-java-sdk\bin\appcfg.cmd update
D:\guestbook\war upload nh hnh v in mail v pass nu chng trnh hi,

v upload thnh cng nh hnh di: Chng IV: Hin thc chng trnh Yu cu
phi c internet .cc bn truy cp vo a ch Hnh trn l giao din chnh ca ng
dng .Bn c th ko ng nhp cng c nhng ngi khc khng bit bn l
ai.V vy yu cu bn nn ng nhp trc khi vit bnh lun C nh vy khi
thnh vin vo sau s thy ni dung ngi vit trc v c th vit nhng phn
hi.v hnh thc cc bn thy ng dng nh mt din n hay blog Chc c l
cc bn cng cha hnh dung im khc nhau ca ng dng ny ng ko .Cc bn
thit k websie hay vit cc chng trnh i hi phi to csdl v ni lu csdl .i
vi ng dng ny bn khng cn phi quan tm n csdl lu u v truy vn nh
th no .Bi v iu ny c Google app engine lm . C th ni dung cc bn
bnh lun c lu trn Google app engine Chng V: Kim tra v nh gi t
c: xy dng c ng dng da trn gi th vin ca google ng dng nh
gn ,d s dng Cha t c: - V in ton m my l mt ti ln . v
ang c nhiu ng ln nh google ,intel ,microsoft. nghin cu v pht
trin.cho nn trong thi gian ngn chng em ch c th p ng c yu cu ca
thy ra ,ch cha c th no xy dng mt ng dng ln cho cng ty hay doanh
nghip. Hng pht trin: - in ton m my l mt ti kh hay v mi m
huy vng rng qua s hng dn ca thy .Chng em c th tip tc pht trin ln
lm ti tt nghip __The end__

You might also like