Điện toán đám mây với Google App Engine

66 469 3
Điện toán đám mây với Google App Engine

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRNG I HC M TP.H CHÍ MINH KHOA CÔNG NGH THÔNG TIN xyxy IN TOÁN ÁM MÂY VI GOOGLE APP ENGINE BÁO CÁO KHÓA LUN TT NGHIP SVTH: Nguyn Ngc Mãn MSSV: 10761245 Ngành: Khoa Hc Máy Tính Hng Chuyên Ngành: Mng Máy Tính Lp: TH07B1 Ngi Hng Dn TS.Lê Xuân Trng T p . H Chí Minh –Thán g 9 nm 2011 LI CÁM N Khóa lun đc thành công là nh s hng dn, giúp đ ca các thy. Em xin chân thành cm n các thy đã b thi gian quý báu ca mình đ giúp em hoàn thành tt khóa lun này. NHN XÉT CA GIÁO VIÊN HNG DN NHN XÉT CA GIÁO VIÊN HNG DN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… MC LC Chng 1. TNG QUAN 1 1.1. Gii thiu 1 1.2. Mc đích làm đ tài 1 1.3. Phng pháp nghiên cu 2 1.4. Phm vi 2 1.5. B cc báo cáo 2 Chng 2. C S LÝ THUYT 4 2.1. Tng Quan in Toán ám Mây 4 2.1.1. Gii pháp ca đin toán đám mây 5 2.1.2. Cu trúc các phn to nên đám mây 6 2.1.2.1. Các dch v ng dng (SaaS) 6 2.1.2.2. Các dch v nn tng (PaaS) 6 2.1.2.3. Các dch v c s h tng (IaaS) 6 2.1.3. in toán đám mây vi Google App Engine 7 2.2. Kin trúc Google App Engine 7 2.2.1. Tng quan Google App Engine 7 2.2.2. Môi trng phát trin 8 2.2.3. Các loi tp tin tnh trên server 9 2.2.4. DataStore 9 2.2.5. Các loi Dch V 10 2.2.6. Google Accounts 10 2.2.7. Các hn ch ca Google App Engine 10 2.3. Các thành phn ca Google App Engine trong Java 11 2.3.1. BackEnds 11 2.3.2. Datastore 11 2.3.2.1. Thc Th, Thuc 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 dch v ca 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 Chng 3. HIN THC NG DNG 33 3.1. S lc ng dng 33 3.1.1. Mô hình hot đng 33 3.1.2. S lc các chc nng 33 3.2. Xây dng ng dng Frontend và Backend 33 3.2.1. ng b hóa d liu tài khon google 33 3.2.2. S dng App Engine Datastores 34 3.2.2.1. Tùy chnh lu tr d liu 34 3.2.2.2. Xác đnh mi kt hp và bng s 34 3.2.2.3. Mô hình thc th mi kt hp 39 3.2.2.4. Mô hình vt lý d liu 40 3.2.3. S đ trang web (Site map) 40 3.2.4. Apache Struts Framework 41 3.2.5. Thanh toán trc tuyn (Online Payment) 42 3.2.5.1. Tng quan v tính nng thanh toán 42 3.2.5.2. Cng thanh toán Nganluong.vn 43 3.2.6. Các yêu cu v tính toán 44 3.2.7. Dch v Mail 46 3.3. Xây dng ng dng xem đim trên Mobile 46 3.3.1. Mô hình hot đng 47 3.3.2. Cách thc x lý 47 Chng 4. KT QU T C 49 4.1. Các dch v tin ích dành cho giáo viên, ph huynh và hc sinh 49 4.2. Tin ích dành cho ngi qun tr 53 4.3. ng dng trên Mobile 55 Chng 5. KT LUN 56 5.1. Li ích ca đin toán đám mây vi GAE 56 5.2. Hn ch 56 TÀI LIU THAM KHO 57 DANH MC CÁC THUT NG TING ANH VÀ CH VIT TT Datastore: Ni lu tr d liu ca đin toán đám mây OPENID: Th vin giúp đng nhp vào mt website GAE: Google App Engine HDR: High Replication Datastore API: Mt tp các th vin SDK: B công c dành cho phát trin phn mm JDO: Java Data Object JPA: Java Persistence API JDOQL: Mt loi ngôn ng dùng đ truy vn d liu trong Java JPQL: Mt loi ngôn ng dùng đ truy vn d liu trong JPA YAML: Mt ngôn ng giúp cu hình ng dng Java XMPP: Mt giao thc ca Google App Engine trong ng dng Chat G talk DDos: mt loi tn công t chi dch v GFS: Google File System, h thng file ca Google DANH MC CÁC HÌNH Hình 2.1 Mô hình các cm máy ch trên đám mây 4 Hình 2.2 Các gii pháp v cung cp các dch v tài nguyên 5 Hình 2.3 Các phn to nên đám mây 6 Hình 2.4 Kin trúc Google App Engine cho Java 8 Hình 2.5 So sánh gia hai loi lu tr d liu 12 Hình 2.6 Các kiu d liu đc h tr bi GAE 15 Hình 2.7 Mô hình cp nht ca d liu ca Transaction 16 Hình 2.8 Mô hình JDO 17 Hình 2.9 Cu 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 To đi tng EntityManager 22 Hình 2.13 Cách thc lu d liu ca BlobStore trong Datastore 23 Hình 2.14 Cách s dng Capabilities 24 Hình 2.15 Các loi Capabilities GAE h tr 25 Hình 2.16 Trao đi d liu gia client và server s dng Channel API 26 Hình 2.17 Cu hình Channel trong Google App Engine 26 Hình 2.18 Cu hình Mail trong Google App Engine 27 Hình 2.18 Chng thc s dng OAuth 28 Hình 2.20 Chn phng thc chng thc trong GAE 30 Hình 3.1 Quy trình đng b hóa website vi google Accouts 34 Hình 3.2 Mi kt hp xp lp hc sinh 35 Hình 3.3 Mi kt hp xp lp giáo viên 35 Hình 3.4 Mi kt hp xp loi hc sinh 36 Hình 3.5 Mi kt hp kim tra 37 Hình 3.6 Mi kt hp giáo viên ch nhim và phân ban lp hc 38 Hình 3.7 Mô hình thc th mi kt hp 39 Hình 3.8 Mô hình vt lý d liu 40 Hình 3.9 S đ ca website 40 Hình 3.10 Quy trình hot đng ca Struts Framework 41 Hình 3.11 Chng thc tài khon trong thanh toán 42 Hình 3.12 Chuyn khon trong thanh toán 43 Hình 3.13 Thanh toán kiu tích hp đn gin 44 Hình 3.14 Mô hình hot đng ng dng mobile 47 Hình 3.15 Lu đ x lý yêu cu ca ng dng Mobile 48 Hình 4.1 Thông tin ca hc sinh 49 Hình 4.2 Thông tin ca giáo viên 50 Hình 4.3 Thông tin v đim s 51 Hình 4.4 Thông tin v hc phí 51 Hình 4.5 Chuyn khon qua nganluong.vn 52 Hình 4.6 Gi thông tin cho hc sinh 53 Hình 4.7 Các tin ích dành cho ngi qun tr 54 Hình 4.8 màn hình ngi dùng nhp vào mã s sinh viên 55 Hình 4.9 ngi dùng sau khi tra cu đim thành công 55 -1 - Chng 1. TNG QUAN 1.1. Gii thiu Thut ng "cloud computing" ra đi gia nm 2007 không phi đ nói v mt trào lu mi, mà đ khái quát li các hng đi ca c s h tng thông tin vn đã và đang din ra t my nm qua. khái nim này có th đc din gii mt cách đn gin: các ngun đin toán khng l nh phn mm, dch v s nm ti các máy ch o (đám mây) trên Internet thay vì trong máy tính gia đình và vn phòng (trên mt đt) đ mi ngi kt ni và s dng mi khi h cn. Nh vy, cloud computing ch là khái nim hoàn chnh cho mt xu hng không mi bi nhiu doanh nghip hin không có máy ch riêng, PC ch cài mt s phn mm c bn còn tt c đu ph thuc vào cloud. Chng hn, h đ ng ký dch v hosting cho website công ty, thuê công c qun lý doanh thu t Salesforce.com, ly d liu kho sát th trng t t chc Survey Monkey Và tt nhiên, h dùng Google đ tìm kim, phân tích, chia s và lu tr tài liu. Vi các dch v sn có trên Internet, doanh nghip không phi mua và duy trì hàng trm, thm chí hàng nghìn máy tính cng nh phn mm. H ch cn tp trung sn xut bi đã có ngi khác lo c s h tng và công ngh  thay h. 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 server), và các web services s dng các dch v hosting ca Google, đc gi là Google App Engine (GAE). GAE là mt nn tng hosting bao gm web server, c s d liu BigTable và kho lu tr file GFS. GAE cho phép vit ng dng web da trên c s h tng ca Google. Ngha là chúng ta không cn quan tâm là trang web ca chúng ta đc lu tr nh th nào (k c database đi kèm), mà ch cn quan tâm đn vic phát trin ng dng theo các API do Google cung cp. Vì th khi s dng GAE chúng ta nhm đn các li ích mà nó mang li nh gim bt chi phí bn quyn, các chi phí v mua và bo dng máy ch, không cn quan tâm ti gii hn phn cng cng nh v trí đa lý. D liu trong mô hình đin toán đám mây đc lu tr 1 cách phân tán ti nhiu cm máy ch ti nhiu v trí khác nhau. iu này giúp tng đ tin cy, đ an toàn ca d liu mi khi có s c hoc thm ha xy ra. Vic tp trung d liu t nhiu ngun khác nhau s giúp các chuyên gia bo mt tng cng kh nng bo v d liu ca ngi dùng, c ng nh gim thiu ri ro b n cp toàn b d liu. Và các lp trình viên cng d dàng hn trong vic cài đt, nâng cp ng dng ca mình. Da vào nhng tiêu chí này, chúng ta có th to ra mt ng dng có th phát trin thành ng dng ln và nó không là mt ý ngh xa vi da trên nhng li ích mà nó mang li. 1.2. Mc đí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 . dch v c s h tng (IaaS) 6 2.1.3. in toán đám mây vi Google App Engine 7 2.2. Kin trúc Google App Engine 7 2.2.1. Tng quan Google App Engine 7 2.2.2. Môi trng phát trin 8 2.2.3 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. bày các li ích và hn ch  ca Google App Engine -4 - 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

Ngày đăng: 13/05/2015, 23:08

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan