Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
2,74 MB
Nội dung
TRNG I HC M TP.H CHÍ MINH KHOA CÔNG NGH THÔNG TIN xyxy IN TOÁN ÁM MÂY VI GOOGLE APP ENGINE BÁO CÁO KHÓA LUN TT NGHIP SVTH: Nguyn Ngc Mãn MSSV: 10761245 Ngành: Khoa Hc Máy Tính Hng Chuyên Ngành: Mng Máy Tính Lp: TH07B1 Ngi Hng Dn TS.Lê Xuân Trng T p . H Chí Minh –Thán g 9 nm 2011 LI CÁM N Khóa lun đc thành công là nh s hng dn, giúp đ ca các thy. Em xin chân thành cm n các thy đã b thi gian quý báu ca mình đ giúp em hoàn thành tt khóa lun này. NHN XÉT CA GIÁO VIÊN HNG DN NHN XÉT CA GIÁO VIÊN HNG DN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… MC LC Chng 1. TNG QUAN 1 1.1. Gii thiu 1 1.2. Mc đích làm đ tài 1 1.3. Phng pháp nghiên cu 2 1.4. Phm vi 2 1.5. B cc báo cáo 2 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.2.1. Các dch v ng dng (SaaS) 6 2.1.2.2. Các dch v nn tng (PaaS) 6 2.1.2.3. Các dch v c s h tng (IaaS) 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 7 2.2.2. Môi trng phát trin 8 2.2.3. Các loi tp tin tnh trên server 9 2.2.4. DataStore 9 2.2.5. Các loi Dch V 10 2.2.6. Google Accounts 10 2.2.7. Các hn ch ca Google App Engine 10 2.3. Các thành phn ca Google App Engine trong Java 11 2.3.1. BackEnds 11 2.3.2. Datastore 11 2.3.2.1. Thc Th, Thuc Tính và khóa 12 2.3.2.2. Transactions 15 2.3.2.3. Java Data Object (JDO) 17 2.3.2.4. Java Persistence API (JPA) 20 2.3.3. Các dch v ca GAE 23 2.3.3.1. BlobStore Java API 23 2.3.3.2. Capabilities 24 2.3.3.3. Channel API 25 2.3.3.4. Image API 26 2.3.3.5. Mail API 26 2.3.3.6. Memcache Service 27 2.3.3.7. OAuth 27 2.3.3.8. Task Queues 29 2.3.3.9. URL Fetch 29 2.3.3.10. Users Service 29 2.3.3.11. XMPP 30 2.3.3.12. YAML 30 Chng 3. HIN THC NG DNG 33 3.1. S lc ng dng 33 3.1.1. Mô hình hot đng 33 3.1.2. S lc các chc nng 33 3.2. Xây dng ng dng Frontend và Backend 33 3.2.1. ng b hóa d liu tài khon google 33 3.2.2. S dng App Engine Datastores 34 3.2.2.1. Tùy chnh lu tr d liu 34 3.2.2.2. Xác đnh mi kt hp và bng s 34 3.2.2.3. Mô hình thc th mi kt hp 39 3.2.2.4. Mô hình vt lý d liu 40 3.2.3. S đ trang web (Site map) 40 3.2.4. Apache Struts Framework 41 3.2.5. Thanh toán trc tuyn (Online Payment) 42 3.2.5.1. Tng quan v tính nng thanh toán 42 3.2.5.2. Cng thanh toán Nganluong.vn 43 3.2.6. Các yêu cu v tính toán 44 3.2.7. Dch v Mail 46 3.3. Xây dng ng dng xem đim trên Mobile 46 3.3.1. Mô hình hot đng 47 3.3.2. Cách thc x lý 47 Chng 4. KT QU T C 49 4.1. Các dch v tin ích dành cho giáo viên, ph huynh và hc sinh 49 4.2. Tin ích dành cho ngi qun tr 53 4.3. ng dng trên Mobile 55 Chng 5. KT LUN 56 5.1. Li ích ca đin toán đám mây vi GAE 56 5.2. Hn ch 56 TÀI LIU THAM KHO 57 DANH MC CÁC THUT NG TING ANH VÀ CH VIT TT Datastore: Ni lu tr d liu ca đin toán đám mây OPENID: Th vin giúp đng nhp vào mt website GAE: Google App Engine HDR: High Replication Datastore API: Mt tp các th vin SDK: B công c dành cho phát trin phn mm JDO: Java Data Object JPA: Java Persistence API JDOQL: Mt loi ngôn ng dùng đ truy vn d liu trong Java JPQL: Mt loi ngôn ng dùng đ truy vn d liu trong JPA YAML: Mt ngôn ng giúp cu hình ng dng Java XMPP: Mt giao thc ca Google App Engine trong ng dng Chat G talk DDos: mt loi tn công t chi dch v GFS: Google File System, h thng file ca Google DANH MC CÁC HÌNH Hình 2.1 Mô hình các cm máy ch trên đám mây 4 Hình 2.2 Các gii pháp v cung cp các dch v tài nguyên 5 Hình 2.3 Các phn to nên đám mây 6 Hình 2.4 Kin trúc Google App Engine cho Java 8 Hình 2.5 So sánh gia hai loi lu tr d liu 12 Hình 2.6 Các kiu d liu đc h tr bi GAE 15 Hình 2.7 Mô hình cp nht ca d liu ca Transaction 16 Hình 2.8 Mô hình JDO 17 Hình 2.9 Cu hình JDO trong Google App Engine 18 Hình 2.10 Mô Hình JPA 21 Hình 2.11 Mô Hình JPA trong Google App Engine 22 Hình 2.12 To đi tng EntityManager 22 Hình 2.13 Cách thc lu d liu ca BlobStore trong Datastore 23 Hình 2.14 Cách s dng Capabilities 24 Hình 2.15 Các loi Capabilities GAE h tr 25 Hình 2.16 Trao đi d liu gia client và server s dng Channel API 26 Hình 2.17 Cu hình Channel trong Google App Engine 26 Hình 2.18 Cu hình Mail trong Google App Engine 27 Hình 2.18 Chng thc s dng OAuth 28 Hình 2.20 Chn phng thc chng thc trong GAE 30 Hình 3.1 Quy trình đng b hóa website vi google Accouts 34 Hình 3.2 Mi kt hp xp lp hc sinh 35 Hình 3.3 Mi kt hp xp lp giáo viên 35 Hình 3.4 Mi kt hp xp loi hc sinh 36 Hình 3.5 Mi kt hp kim tra 37 Hình 3.6 Mi kt hp giáo viên ch nhim và phân ban lp hc 38 Hình 3.7 Mô hình thc th mi kt hp 39 Hình 3.8 Mô hình vt lý d liu 40 Hình 3.9 S đ ca website 40 Hình 3.10 Quy trình hot đng ca Struts Framework 41 Hình 3.11 Chng thc tài khon trong thanh toán 42 Hình 3.12 Chuyn khon trong thanh toán 43 Hình 3.13 Thanh toán kiu tích hp đn gin 44 Hình 3.14 Mô hình hot đng ng dng mobile 47 Hình 3.15 Lu đ x lý yêu cu ca ng dng Mobile 48 Hình 4.1 Thông tin ca hc sinh 49 Hình 4.2 Thông tin ca giáo viên 50 Hình 4.3 Thông tin v đim s 51 Hình 4.4 Thông tin v hc phí 51 Hình 4.5 Chuyn khon qua nganluong.vn 52 Hình 4.6 Gi thông tin cho hc sinh 53 Hình 4.7 Các tin ích dành cho ngi qun tr 54 Hình 4.8 màn hình ngi dùng nhp vào mã s sinh viên 55 Hình 4.9 ngi dùng sau khi tra cu đim thành công 55 -1 - Chng 1. TNG QUAN 1.1. Gii thiu 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 ti 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. Nh vy, cloud computing ch là khái nim hoàn chnh cho mt xu hng không mi bi nhiu doanh nghip hin không có máy ch riêng, PC ch cài mt s phn mm c bn còn tt c đu ph thuc vào 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. Vi các dch v sn có trên Internet, doanh nghip không phi mua và duy trì hàng trm, thm chí hàng nghìn máy tính cng nh phn mm. H ch cn tp trung sn xut bi đã có ngi khác lo c s h tng và công ngh thay 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. Vì th khi s dng GAE chúng ta nhm đn các li ích mà nó mang li nh gim bt chi phí bn quyn, các chi phí v mua và bo dng máy ch, không cn quan tâm ti gii hn phn cng cng nh v trí đa lý. D liu trong mô hình đin toán đám mây đc lu tr 1 cách phân tán ti nhiu cm máy ch ti nhiu v trí khác nhau. iu này giúp tng đ tin cy, đ an toàn ca d liu mi khi có s c hoc thm ha xy ra. Vic tp trung d liu t nhiu ngun khác nhau s giúp các chuyên gia bo mt tng cng kh nng bo v d liu ca ngi dùng, c ng nh gim thiu ri ro b n cp toàn b d liu. Và các lp trình viên cng d dàng hn trong vic cài đt, nâng cp ng dng ca mình. Da vào nhng tiêu chí này, chúng ta có th to ra mt ng dng có th phát trin thành ng dng ln và nó không là mt ý ngh xa vi da trên nhng li ích mà nó mang li. 1.2. Mc đích làm đ tài [...]... key, datastore com .google. appengine.api.da tastore.Key, or the referenced object (as a child) by path elements (kind, ID or name, kind, ID or name ) link com .google. appengine.api.da tastore.Link Unicode messaging handle com .google. appengine.api.da tastore.IMHandle Unicode null null n/a postal address com .google. appengine.api.da tastore.PostalAddress Unicode rating com .google. appengine.api.da tastore.Rating... Byte string, short com .google. appengine.api.da tastore.ShortBlob byte order Up to 500 bytes A value longer than 500 bytes throws a JDOFatalUserExcep tion Byte string, long com .google. appengine.api.da tastore.Blob n/a up to 1 megabyte; not indexed category com .google. appengine.api.da tastore.Category Unicode Date and time java.util.Date chronological email address com .google. appengine.api.da tastore.Email... Mail App Engine còn cho phép ng d ng có th nh n tin nh n chat c a Google Talk s d ng giao th c XMPP b ng d ch v XMPP service X lý nh c ng là m t ph n trong d ch v c a App Engine bao g m các d ch v xoay nh, c t nh, hi n th nh… 2.2.6 Google Accounts App Engine có kh n ng tích h p các tài kho n Google vào ng d ng, các tài kho n này ng i dùng ã ng kí trên các d ch v Saas nh Google Mail, Google Docs và Google. .. h nh Gmail, Google Doc và t ng Paas h cung c p các t p API dành cho các doanh nhi p, cá nhân, hay t ch c h tr cho các ng d ng web Application s d ng các d ch v hosting c a Google, c g i là Google App Engine (GAE) 2.2 Ki n trúc Google App Engine 2.2.1 T ng quan Google App Engine Nhi u doanh nghi p s d ng r t nhi u ph n c ng ch y các ng d ng nh các c s d li u, các máy ch ng d ng, các h th ng qu n lý thay... ng qu n lý h c sinh minh h a v nh ng l i ích mà Google App Engine mang l i 1.3 Ph ng pháp nghiên c u Áp d ng công ngh Servlet & JSP S d ng FrameWork Apache Struts, Apache Struts là m t web Application FrameWork mã ngu n m c phát tri n trong d án Apache Jakarta, s d ng mô hình MVC Công ngh v i n toán ám mây v i Google App Engine S d ng c s d li u App Engine Datastore, s d ng m t chu n gi ng l nh SQL... ích và h n ch c a Google App Engine -3 - c Ch ng 2 C S LÝ THUY T 2.1 T ng Quan i n Toán ám Mây T “ ám mây trong i n toán ám mây th c ch t ch là 1 phép n d mô t Internet Theo nh ngh a thì i n toán ám mây là bi n pháp s d ng d a trên k t n i Internet, n i mà nh ng ng i dùng chia s cùng m t m ng máy ch , ph n m m và d li u N u nh chúng ta s d ng nh ng ng d ng web t các hãng l n nh Google ho c Microsoft... Platform, Sun ParaScale Cloud Storage 2.1.3 i n toán ám mây v i Google App Engine Google n m trong s nh ng hãng ng h i n toán máy ch o tích c c nh t b i ho t ng kinh doanh c a h d a trên vi c phân ph i các cloud (virtual hai t ng, t ng ng cao nh t c a ám mây server) Google cung c p các d ch v là SaaS, Google cho phép s d ng các d ch v c a h nh Gmail, Google Doc và t ng Paas h cung c p các t p API dành... com .google. appengine.api.da tastore.GeoPt by latitude, then longitude Google Accounts user com .google. appengine.api.us ers.User email address in Unicode order integer short, java.lang.Short, int, java.lang.Integer, long, java.lang.Long -14 - numeric 64-bit double precision, IEEE 754 Stored as long integer, then converted to the field type Out-ofrange values overflow key, blobstore com .google. appengine.api.bl... n Google ch ng th c thay vì s d ng m t h th ng ng nh p riêng T t nhiên, Chúng ta có th s d ng h th ng riêng c a chúng ta ho c là m t nhà cung c p khác mà GAE có h tr nh là OpenID 2.2.7 Các h n ch c a Google App Engine -10 - App Engine cung c p ph ng th c k t n i an toàn(HTTPS) cho tên mi n con c a google h tr là application-id.appspot.com, nh ng ch a h tr ph ng th c k t n i này cho tên mi n khác Google. .. ng Transaction App Engine Java SDK s d ng JPA 1.0 cho c s d li u c a App Engine JPA là m t giao di n chu n cho vi c t ng tác v i c s d li u quan h nh ng App Engine Datastore không ph i là m t c s d li u quan h Vì th , s có m t s ch c n ng c a JPA mà App Engine không h tr -20 - Hình 2.10 Mô Hình JPA ̇ C u Hình s d ng JPA trong GAE Nh ng file jar c a JPA và plugin DataNucleus c a App Engine ph i c t . dch v c s h tng (IaaS) 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 7 2.2.2. Môi trng phát trin 8 2.2.3 cho các ng dng 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 2.2.1. Tng quan Google App Engine Nhiu doanh. bày các li ích và hn ch ca Google App Engine -4 - Chng 2. C S LÝ THUYT 2.1. Tng Quan in Toán ám Mây T “ám mây trong in toán đám mây thc cht ch là 1 phép n d