480 likes | 780 Views
Google app engine. Các công nghệ lập trình hiện đại. Nội dung tìm hiểu. Google App Engine. Giới thiệu sơ lược Kiến trúc hoạt động Các thành phần chính và chức năng Hạn chế Demo. Nội dung tìm hiểu. Google App Engine. Giới thiệu sơ lược Kiến trúc hoạt động
E N D
Google app engine Cáccôngnghệlậptrìnhhiệnđại
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo
Giớithiệusơlược 1. Điệntoánđámmây 2. Google App Engine
Điệntoánđámmây • Điệntoánđámmây (cloud computing), còngọilàđiệntoánmáychủảo, làmôhìnhđiệntoánsửdụngcáccôngnghệmáytínhvàpháttriểndựavàomạng Internet. • Thuậtngữ"đámmây" ở đâylàlốinóiẩndụchỉmạng Internet (dựavàocáchđượcbốtrícủanótrongsơđồmạngmáytính) vànhưmộtliêntưởngvềđộphứctạpcủacáccơsởhạtầngchứatrongnó.
Điệntoánđámmây • Ở môhìnhđiệntoánnày, mọikhảnăngliênquanđếncôngnghệthông tin đềuđượccungcấpdướidạngcác "dịchvụ",chophépngườisửdụngtruycậpcácdịchvụcôngnghệtừmộtnhàcungcấpnàođó "trongđámmây" màkhôngcầnphảicócáckiếnthức, kinhnghiệmvềcôngnghệđó, cũngnhưkhôngcầnquantâmđếncáccơsởhạtầngphụcvụcôngnghệđó.
Điệntoánđámmây • Theo tổchứcXãhộimáytính IEEE "Nólàhìnhmẫutrongđóthông tin đượclưutrữthườngtrựctạicácmáychủtrên Internet vàchỉđượcđượclưutrữtạmthời ở cácmáykhách, baogồmmáytínhcánhân, trungtâmgiảitrí, máytínhtrongdoanhnghiệp, cácphươngtiệnmáytínhcầmtay, ...". • Điệntoánđámmâylàkháiniệmtổngthểbaogồmcảcáckháiniệmnhưphầnmềmdịchvụ, Web 2.0 vàcácvấnđềkhácxuấthiệngầnđây, cácxuhướngcôngnghệnổibật, trongđóđềtàichủyếucủanólàvấnđềdựavào Internet đểđápứngnhữngnhucầuđiệntoáncủangườidùng.
Điệntoánđámmây • Vídụ, dịchvụGoogle App Engine cungcấpnhữngứngdụngkinhdoanhtrựctuyếnthôngthường, cóthểtruynhậptừmộttrìnhduyệt web, còncácphầnmềmvàdữliệuđềuđượclưutrữtrêncácmáychủ. • Mộtsốnềntảngđiệntoánđámmâyhiện nay: Google App Engine, Windows Azure, AmazoneWebservice, Sun Cloud, Facebook, …
Google App Engine • Google App Engine (App Engine hay GAE) làmộtnềntảngđiệntoánđámmâycủa Google đểpháttriểnvàlưutrữứngdụng web trongnhữngtrungtâmdữliệu do Google quảnlý (google-managed data centers). Bản beta đượcgiớithiệulầnđầutiênvàongày 7 tháng 4 năm 2008. • GAE là 1 dịchvụlưutrữcácứngdụng web. Khinóiđến “ứngdụng web”, chúngtamuốnnóitớicácứngdụng hay dịchvụđượctruycậptrêncáctrang web, thườnglàthông qua trìnhduyệt web: nhữngtrang web muabán, mạngxãhội… App Engine cũngcóthểphụcvụcáctrang web truyềnthốngnhưxửlývănbản hay hìnhảnhnhưngđượcthiếtkếdànhchothờigianthực.
Google App Engine • Thựcra, GAE đượcthiếtkếđểlưutrữnhữngứngdụngvàphụcvụnhiềungườidùngmộtcáchđồngthời. Khimộtứngdụngcóthểphụcvụnhiềungườidùngmộtcáchđồngthờimàkhônglàmgiảmhiệusuất, chúngtagọiđólàsự co giãn(scales). • Nhữngứngdụngđượcviếtcho App Engine sẽđược co giãnmộtcáchtựđộng. Càngnhiềungườisửdụngchươngtrình, App Engine sẽtạoracàngnhiềutàinguyênchoứngdụngđóvàquảnlýchúng. Chínhbảnthânứngdụngcũngkhôngcầnphảibiếtđếncáctàinguyênmànóđangsửdụng.
Google App Engine • Khôngnhưnhững server cungcấpcácdịchvụlưutrữthôngthường hay các server cóchứcnăngtựquảnlý, với Google App Engine, chúngtachỉphảitrảtiềnchonhữngtàinguyênmàchúngtasửdụng. Nhữngtàinguyênnàyđượcđobằng gigabyte vàkhôngcóbấtkìlệphíhàngthángnào hay lệphíđểchúngtathayđổidiệnmạotrang web. HóađơnthanhtoánnhữngnguồntàinguyênnàybaogồmCPUchúngtasửdụng, lưutrữhàngtháng, băngthôngvàora(incoming and outgoing bandwidth), vàmộtsốcáctàinguyênkháccủadịchvụ App Engine.
Google App Engine • Đểgiúpchúngtacóthểlàmquenvới GAE, mỗilậptrìnhviênsẽcókhoảng500 MB lưutrữ, mộtlượngtàinguyênmiễnphíđủđểchạynhữngứngdụngnhỏvớibăngthôngthấp. Google dựtoánrằngvớinguồntàinguyênmiễnphí, mộtứngdụngcóthểđạttới 5 triệulượttruycậptrongmộttháng. • HiệnAppEnginehỗtrợ 2 loạingônngữlà: Python và Java. MộtsốngônngữkhácnhưPHPcũngcóthểchạyđượcnếucàicùngvớibộchuyểntừ PHP sang Java.
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo
Kiếntrúchoạtđộng • Kiếntrúccủa App Engine khácvớinhững server lưutrữứngdụng web thôngthường. Ở phầnlõicủanó, App Engine sẽhạnchếnhữngtruycậptừứngdụngcủachúngtađếncơsởhạtầngvậtlý, ngăncảnchúngtatừviệcmởcác socket, chạycáctiếntrìnhngầm, hay cáccáchđikhácbằngcổngsauđểgiúpchươngtrìnhcủatacóquyềntrênmôitrườngnày. • Nênnhớrằng, App Engine đượcthiếtkếđểgiảiquyếtmốiquantâmcủachúngtavềsựmởrộngvàđộ tin cậy. Nóđượcxâydựngdựatrênkháiniệmcóthểmởrộngtheochiềungang, nghĩalàthayvìứngdụngcủachúngtasẽđượcchạytrênmộtphầncứngmạnhmẽ, thìnócóthểchạytrênnhiềuphầncứngyếuhơn.
Kiếntrúchoạtđộng • Chúngtacóthểthấyứngdụng App Engine chạynhưmộtthựcthểcôlậptrongmôitrườnggồmnhiềuthànhphần (multitenant environment). App Engine chiasẻnhữngnguồntàinguyêngiữacácứngdụngnhưngcôlậpvềdữliệuvàbảomậtgiữanhữngthànhphầnvớinhau. • Ứngdụngcủachúngtacóthểsửdụngmộtsốcácdịchvụcủa Google, nhưlàURLFetch. Bởivìchúngtakhôngthểmởcổng (port) mộtcáchtrựctiếptrongứngdụngcủamình, nênchúngtaphảilệthuộcvàodịchvụnày, vídụ: yêucầu Google mởcổngvàthựcthiứngdụngcủamình.
Kiếntrúchoạtđộng • Xemxétkỹhơnmộtchút, giảsử App Engine làmộttòanhàcógắnhệthốngđiềuhòakhôngkhívànhiệtđộ. Chúngtalàmộtphầntrongcănnhàđó (chínhxáchơnlàứngdụngcủachúngta). Chúngtakhôngthểđiềuchỉnhnhiệtđộmộtcáchtrựctiếpbởinósẽảnhhưởngđếnnhữngphầnkháctrongtòanhà (cácứngdụngkhác). Vìvậy, chúngtaphảigửimộtyêucầuđếnngườichủcủacănnhànàyđểnhờhọthayđổinhiệtđộchochúngta. Chínhxácđólàcácdịchvụcủa GAE nhưURLFetch, Bigtable query, Memcache, mail, XMPP, vàcácdịchvụkhác. Đóchínhlàbảnchấtnhữnggìđangxảyratrong App Engine.
Kiếntrúchoạtđộng • Nhưvậy, trong GAE, tùyvàoứngdụngviếttheongônngữnào, nósẽđượcchạytrênmôitrường Java hay Python tươngứng. Song songđó, chúngtasẽđượccungcấpsửdụngmiễnphícácdịchvụcủagooglenhư URL Fetch, Mail, Memcache, … vàđượclưutrữtrêncơsởdữliệuhướngđốitượngdatastore. Khiyêucầuđượcgửilêntừphíangườidùng, GAE sẽchuyểnyêucầuđóchoứngdụngcủachúngta. Tùytheoviệcxửlýchúngmàtacấuhìnhvàsửdụngcácứngdụngthíchhợpcủa GAE.
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo
Cácthànhphầnchínhvàchứcnăng 1. Môitrườngthựcthi 2. Các file server tĩnh 3. Khodữliệu 4. Cácdịchvụ 5. Tàikhoảngoogle 6. Cáccôngcụlậptrình
Môitrườngthựcthi • Mộtứngdụng App Engine đápứngcácyêucầu web. Mộtyêucầu web sẽbắtđầukhicómộtngườidùng hay điểnhìnhlàcáctrìnhduyệt web củangườidùnggửimộtyêucầutruycậpvàoứngdụngthông qua giaothức HTTP. Khi App Engine nhậnđượcyêucầu, nósẽxácđịnhứngdụngdựavàotênmiền, hoặctênmiền con của <tênbạn>.appspot.com (cungcấpmiễnphímỗiứngdụng) hoặclàmộttênmiềnriêngcủachúngtađãđượcđăngkívàthiếtlậpvới Google Apps. App Engine lựachọnmộtmáychủtừnhiềumáychủđểxửlýcácyêucầuđó. • Sauđó, App Engine sẽgửicácyêucầuđãnhậnđượctừngườidùngđếnứngdụngphùhợpđểxửlý, saukhiđãxửlýxongcácứngdụngnàysẽgửidữliệutrảvềcho App Engine, App Engine sẽnhậndữliệuphảnhồitừcácứngdụngvàtrảvềchongườidùngthông qua trìnhduyệt web.
Môitrườngthựcthi • Google App Engine cungcấphaimôitrườngthựcthitốtchocácứngdụng. ĐólàJavavàPython. Môitrườngchúngtachọnsẽphụthuộcvàongônngữvànhữngcôngnghệliênquankhichúngtadùngđểpháttriểnứngdụng.
Môitrườngthựcthi • MôitrườngJavathựcthicácứngdụngđượcviếtchoJVM6. Ứngdụngcóthểđượcpháttriểndựavàongônngữlậptrình Java hoặchầuhếtcácngônngữcóthểbiêndịchvàchạytrênJVM: vídụ PHP (dùngQuercus), Ruby (dùngJRuby), Javascript (dùng Rhino), Scala, Groovy. App Engine cũnghỗtrợ Google Web Tootkit (GWT). • MôitrườngPythonthựcthicácứngdụngđượcviếtdựavàongônngữlậptrìnhPythonbản 2.5. App Engine gọicácứngdụng Python nhờvàoCGI (Common Gateway Interface). Ứngdụngcóthểdùnghầuhếtcácthưviệncủa Python, các framework của Python nhưDjango, web2py, Pylons.
Môitrườngthựcthi • CảhaimôitrườngJavavàPythonđềusửdụngchungmộtmôhình: mộtyêucầugửiđếnứngdụngtrên server, ứngdụngđượckíchhoạt (nếucầnthiết), gọibộphậnxửlýyêucầuvàtrảvềkếtquảcho client. Mỗimôitrườngsửdụngbộtiềnxửlý (interpreter) choriêngmình (JVM hay Python).
Các file server tĩnh • Hầuhếtcác website cómộtsốtàinguyênmàchúngchuyểnđếncáctrìnhduyệtkhôngthayđổitrongsuốthoạtđộngcủa site. Vídụnhưcáchìnhảnhvàcácfile csshỗtrợhiểnthịcủa site, cácđoạnmãJavascriptchạytrêntrìnhduyệt, vàcácfile HTML tĩnh. Vìviệcgửinhững file nàykhôngcầnđếnviệcgọi code củaứngdụng, nóicáchkhác, việcnàykhôngcầnthiết, làmgiảmhiệnquảlàmviệccủacác server ứngdụng.
Các file server tĩnh • Thayvìthế, App Engine cungcấpmộttậpcác server táchbiệtchuyênlàmnhiệmvụtraođổicác file tĩnhnày. Những server nóitrêntốiưuhóachokiếntrúcbêntrongvàhạtầngmạngđểxửlýcác requests chocáctàinguyêntĩnh. Đốivới client, các file tĩnhnàycũnggiốngnhưcáctàinguyênkhácđượccungcấpbởiứngdụngcủachúngta. • Chúngtaupload các file tĩnhcùngvới code ứngdụng. Chúngtacóthểcấuhìnhvàicáchhiểnthịnhấtđịnhchocác filenày, baogồmcác URL cho file tĩnh, loạinội dung, vàcáchướngdẫnchotrìnhduyệtđểlưucácbảnsao filenàytrongbộnhớ cache đểgiảmlưulượngvàtăngtốcchotrang web.
Khodữliệu • Hầuhếtmọiứngdụng web đềucầnmộtnơiđểchứathông tin khixửlýyêucầutừphía client vàlấythông tin chonhữnglầnyêucầusaunày. Việcsửdụngmột server làmmộttrungtâmdữliệulàmột ý tưởngrất hay nhưngcóvấnđềxảyrakhiquánhiềukếtnốiđượcgửitới servernày. • Hệthống database của Google App Engine gầngiốngnhưmộtđốitượng database. Thiếtkếcủa App Engine datastorechỉlàtrừutượngđểcho App Engine cóthểxửlýviệcphântánvà co giãncácứngdụng. Chínhvìthếtrongcácđoạnmãcủachúngtasẽquantâmđếnnhữngthứkhácđượcnêusauđây.
Khodữliệu – Thựcthểvàthuộctính • Mộtứngdụng App Engine cóthểchứadữliệutrongmột hay nhiềuthựcthểdatastore. Mỗithựcthểcómột hay nhiềuthuộctính, mỗithuộctínhđềucótênvàgiátrị. Mỗithựcthểđềuđượcphânloạiđểtiệnchoviệctruyvấn. • Ở cáinhìnđầutiên, chúngtathấythựcthểcóthểgầngiốngcáchàng (row) trongmộtbảngtrongcơsởdữliệuquanhệ. Vàmỗithuộctínhcóthểgiốngvớimộtcột. Tuynhiênđốivớicácthựcthểcùngloạivớinhaucóthểcócácthuộctínhkhácnhau. Cácthựcthểcóthểcócùngthuộctínhvớicácthựcthểcùngloạikhácnhưngkhácvềkiểudữliệu. Mộtđiểmkhácnhaunữagiữathựcthểvàcáchàng (row) làcácthựcthểcóthểcónhiềugiátrịchomộtthuộctínhđơnlẻ.
Khodữliệu – Thựcthểvàthuộctính • Mỗithựcthểcómộtkhóariêng (key) phânbiệtlẫnnhauđượccungcấpbởiứngdụnghoặc do App Engine. Khácvới CSDL quanhệ, khoácủathựcthểkhôngphảilàthuộctính, nótồntạiđộclậpvớithựcthể. Khoácủathựcthểkhôngđượcthayđổikhithựcthểđãđượctạora.
Khodữliệu – Truyvấnvàchỉmục • Mộtcâutruyvấntrêndatastoretrảvềkhônghoặcnhiềuthựcthểcùngloạivớinhau. Nócũngcóthểtrảvềcáckhóacủathựcthể. Câutruyvấncóthểdựavàocácgiátrịthuộctínhcủathựcthểvàđượcsắpxếptheogiátrịcủathuộctính. Câutruyvấncũngcóthểlàmviệcvớicáckhóacủathựcthể. • Với App Engine, mỗicâutruyvấnsẽcómộtchỉmụctrongdatastore. Khiứngdụngcầnthựchiênmộtcâutruyvấn, thìdatastoresẽtìmchỉmụccủacâutruyvấnđó. Khichúngtatạomớimộtthựcthểvàcậpnhậtcáicũthìdatastorecũngsẽcậpnhậtlạichỉmục. Điềunàygiúpchocâutruyvấnđượcnhanhhơn.
Khodữliệu – Phiêngiaodịch • Khimộtứngdụngcóquánhiều client liêntụcđọc hay ghicùngmộtdữliệu ở cùngmộtthờiđiểm, thìphiêngiaodịchrấtcầnthiếtđểdữliệukhôngbịđọcsai. Mỗiphiêngiaodịchlàđơnvịnhỏnhấtvàchỉcóhaitrạngtháilàthànhcônghoặcthấtbại. • Mộtứngdụngđọc hay cậpnhậtnhiềuthựcthểtrongmộtphiêngiaodịch, nhưngnóphảinóicho App Engine biếtnhữngthựcthểnàosẽđượccậpnhậtkhinótạoranhiềuthựcthể. Ứngdụnglàmđượcđiềunàybởiviệctạoranhómthựcthể. Nhờnhómthựcthể, App Engine sẽbiếtđượccácthựcthểsẽphântánnhưthếnào qua các server, vìthếnócóthểkhẳngđịnhchắcchắnlàphiêngiaodịchthànhcông hay thấtbại. App Engine cũnghỗtrợnhữngphiêngiaodịchnộibộ (local transaction).
Khodữliệu – Phiêngiaodịch • Nếumộtngườidùngcốgắngcậpnhậtmộtthựcthểtrongkhingườikhácđangcậpnhậtthựcthểđóthìdatastoresẽngaylậptứctrảvềmộtbiệtlệbáolỗi. Trongthuậtngữ database, thìtanói App Engine sửdụng “optimistic concurrency control”. Vớichỉmụcvà “optimistic concurrency control”, App Engine đượcthiếtkếgiúpchoứngdụngcóthểđọcdữliệunhanhhơnvàđảmbảohơn.
Cácdịchvụ • Dịchvụchínhlàmốiquanhệgiữadatastorevớimôitrườngthựcthi. GAE baogồmmộtsốcácdịchvụhữuíchchocácứngdụng web. • Dịchvụmemcachelàdịchvụlưutrữtheokhóa - giátrị. Thuậnlợichínhcủadịchvụnàytrêndatastorelàtốcđộnhanh, rấtnhanh so vớiviệclưutrữvàlấydữliệumộtcáchbìnhthườngtrêndatastore. Memcachelưutrữdữliệutrênbộnhớthayvìtrên ổ đĩađểtăngtốcđộtruycập. Nócũngphântánnhưdatastoretuynhiênkhônglưutrữ, vìthếnếumấtđiệnthìdữliệutrênmemcachecũngmất. Vànócũngcónhiềugiớihạnsửdụnghơndatastore. Việcsửdụngmemcachetốtnhấtlàlưulạicáckếtquảcủacáccâu query hay cáctínhtoántrướcđó. Ứngdụngsẽkiểmtratrongmemcache, nếukhôngcódữliệuthìsẽtiếnhành query trêndatastore.
Cácdịchvụ • Ứngdụng App Engine cóthểtruycậpcáctàinguyên web khácnhờvàodịchvụ URL Fetch. Dịchvụnàytạoracácyêucầutheodạng HTTP gửiđếncác server kháctrên Internet nhưlàviệctươngtácvớicác web service khác. Vìkhitatruycậpđến server khácthờigiansẽlâunên URL Fetch hỗtrợchạyngầmbêndướitrongkhixửlýcácyêucầukhác. • Ứngdụng App Engine cóthểgửi mail dựavàodịchvụ Mail, hoặcnếuđượccấuhình, nócóthểnhậnđược email. • Ứngdụng App Engine cóthểgửivànhậnnhững tin nhắnđếncácdịchvụ chat cósửdụnggiaothức XMPP baogồm Google Talk.
Tàikhoản Google • Cácchứcnăngcủa App Engine tíchhợptrongcáctàikhoảncủa Googlenhư Google Mail, Google Docs và Google Calendar. Chúngtacóthểsửdụngtàikhoảntrên Google nhưchocácứngdụngcủachúngta, do đókhôngcầnthiếtlậpthêm. Vànếucácngườidùngcủachúngtađãcótàikhoảntrên Google, họcóthểđăngnhậpvàoứngdụngcủachúngtavớicáctàikhoảnđó, màkhôngcầntạotàikhoảnriêngtrongứngdụng. Tấtnhiên, điềuđókhôngbắtbuộc. Chúngtaluôncóthểxâydựnghệthốngtàikhoảnriêngcủamình, hoặcsửdụngmột provider OpenID.
Cáccôngcụlậptrình • Google cungcấpmộtsốtool miễnphíchoviệcphátriểnứngdụng App Engine bằngngônngữ Java và Python. Chúngtacóthể download software development kit (SDK) chongônngữtươngứngvàhệđiềuhànhcủachúngtatừ website Google. Ngườidùng Java cóthể down SDK cho Java trong form plug-in cho Eclipse. Ngườidùng Python sửdụng Windows hoặc Mac OS X cóthểtải SDK cho Python từ form củagiaodiệnứngdụng. Các SDK đóđềucófile zip, sửdụngcommand-linesđểtrựctiếptíchhợpvàomôitrườngpháttriểnhoặcxâydựnghệthống.
Cáccôngcụlậptrình • Mỗi SDK baogồmmột server web chạyứngdụngcủachúngtatạimáycánhân, đóngvaitròmôitrườngthựcthi, khodữliệuvàcác service. Server nàytựđộngpháthiệnnhữngthayđổitrong file source và load lạichúngnếucần, vìthếchúngtacóthểluônmở server trongkhiđanglậptrìnhchoứngdụng. • Nếuchúngtasửdụng Eclipse, chúngtacóthểchạy server cho Java trongbộtíchhợp debugger, vàcóthểđặtcác breakpoint trong code. Chúngtacũngcóthểsửdụng Eclipse choứngdụngpháttriển Python dùngPyDev, mộtnhánhmởrộngcủa Eclipse, baogồmbộ debugger cho Python.
Cáccôngcụlậptrình • Mỗi SDK cũngbaogồmmộtcôngcụchoviệctươngtácvớicácứngdụngchạytrên App Engine. Chủyếulàsửdụngchoviệc upload code lên App Engine. Chúngtacũngcóthểsửdụng tool để download các file logtừứngdụngđangchạy, hoặcquảnlýdanhmụcứngdụng.
Cáccôngcụlậptrình • SDK Python và Java gồmmộtchứcnăngmàchúngtacóthểcàiđặttrongứngdụngchoviệctruycậpcóthứtựtừxamộtcách an toànđếnứngdụng. SDK Python baogồmcáccôngcụdùngchoviệcxửlýdữliệulớn, như upload dữliệutừ file text, vàtảilượnglớndữliệu, hoặcsaolưuchomụcđíchlưutrữ. SDK cũngcócommand-line shell của Python choviệc test, kiểmlỗivàthaotácvớidữliệu. (Các tool nàycótrong SDK cho Python, nhưngcũnglàmviệcvớicácứngdụng Java sửdụngphiênbản Java cóchứcnăngtruycậptừxa). Chúngtacóthểviếtđoạnmã script vàchươngtrìnhsửdụngchứcnăngtruycậptừxachoviệcvậnchuyểnlượnglớndữliệuvàcácbiệnphápbảotrìkhác.
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo
Hạnchế • App Engine hỗtrợ HTTPS đốivới domain con của .appspot.comnhữngvẫnchưahỗtrợđốivớicác domain khác. • Hiện Google App Engine hỗtrợ 2 loạingônngữlà: Python, Java (Mộtsốngônngữkhácnhư PHP cũngcóthểchạyđượcnếucàicùngvớibộchuyểntừ PHP sang Java). • Phụthuộchoàntoànvàocácdịchvụcủa Google. • Microsoft, … sẽchẳngbaogiờmuasảnphẩmđượcxâydựngtrênnềntảngcủađốithủ. • Cácnhàđầutư e ngạivìtoànbộdữliệucủamìnhđềunằmtrongtaynhàcungcấpdịchvụ, dùchođólà Google.
Nội dung tìmhiểu Google App Engine • Giớithiệusơlược • Kiếntrúchoạtđộng • Cácthànhphầnchínhvàchứcnăng • Hạnchế • Demo