Bối cảnh và vấn đề nghiên cứu
Trong giai đoạn kinh tế biến động và suy thoái (thời điểm năm 2013), việc ứng dụng công nghệ thông tin (CNTT) nhằm quản trị dữ liệu nội bộ cũng như thông tin khách hàng và đối tác trở thành thách thức lớn đối với các tổ chức, đặc biệt là các doanh nghiệp vừa và nhỏ. Theo mô hình vận hành truyền thống, doanh nghiệp buộc phải hoạch định và chi trả nhiều khoản ngân sách lớn ngay từ giai đoạn đầu, bao gồm chi phí mua sắm phần cứng máy chủ, bản quyền phần mềm, hạ tầng mạng, chi phí bảo trì định kỳ, nâng cấp hệ thống và chi phí duy trì đội ngũ nhân sự vận hành chuyên trách. Bên cạnh gánh nặng chi phí, doanh nghiệp còn gặp khó khăn trong việc mở rộng quy mô khi nhu cầu tăng trưởng, bảo đảm tính sẵn sàng và kiểm soát an toàn dữ liệu.
Sự phát triển của mô hình điện toán đám mây (Cloud Computing) cho phép chuyển giao toàn bộ trách nhiệm quản trị hạ tầng phần cứng và nền tảng công nghệ cho các nhà cung cấp dịch vụ chuyên nghiệp. Doanh nghiệp có thể tiếp cận tài nguyên tính toán qua Internet theo nhu cầu thực tế và chuyển hướng tập trung vào các hoạt động kinh doanh cốt lõi. Trong số các giải pháp nền tảng đám mây, Google App Engine (GAE) của Google nổi bật với mô hình Nền tảng dưới dạng Dịch vụ (PaaS), hỗ trợ phát triển và vận hành ứng dụng trực tiếp trên hạ tầng phân tán của Google.
Từ bối cảnh thực tiễn đó, tác giả Chu Thị Hạnh đã thực hiện khóa luận tốt nghiệp ngành Hệ thống thông tin quản lý tại Học viện Ngân hàng với đề tài: "Xây dựng ứng dụng WikiBanking trên nền tảng điện toán đám mây Google App Engine". Khóa luận xác định 3 mục tiêu và nhiệm vụ nghiên cứu cụ thể:
- Nghiên cứu tổng quan về mô hình điện toán đám mây, bao gồm khái niệm, kiến trúc phân tầng, các mô hình dịch vụ, mô hình triển khai, cơ chế vận hành, cùng các lợi ích và hạn chế kỹ thuật.
- Tìm hiểu sâu về nền tảng Google App Engine: môi trường phát triển (Java/Python), kiến trúc xử lý yêu cầu, các dịch vụ lưu trữ và tiện ích tích hợp, hệ thống quản trị Administration Console và quy trình đóng gói, triển khai ứng dụng.
- Ứng dụng nền tảng Google App Engine để phân tích, thiết kế và xây dựng thử nghiệm hệ thống tra cứu từ vựng chuyên ngành tài chính - ngân hàng mang tên WikiBanking.
Đối tượng nghiên cứu của đề tài là công nghệ điện toán đám mây, nền tảng PaaS Google App Engine và hệ thống tra cứu thuật ngữ ngân hàng trực tuyến. Về phạm vi không gian, nghiên cứu được thực hiện tại Khoa Hệ thống thông tin quản lý - Học viện Ngân hàng, kết hợp quá trình thực tập chuyên môn tại Công ty TNHH TSG (Hà Nội). Về phạm vi thời gian, khóa luận được hoàn thành vào tháng 5 năm 2013 trong khuôn khổ khóa học 2009 – 2013.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khóa luận sử dụng các khái niệm và định nghĩa học thuật chuẩn mực về điện toán đám mây, tiêu biểu là định nghĩa của tổ chức Xã hội máy tính IEEE: điện toán đám mây là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được lưu trữ tạm thời ở các máy khách (máy tính cá nhân, thiết bị cầm tay, trung tâm giải trí).
Khung lý thuyết của đề tài dựa trên việc phân tích kiến trúc phân tầng của điện toán đám mây gồm 5 lớp tác động qua lại lẫn nhau:
- Lớp Khách hàng (Client): Giao diện và thiết bị người dùng (trình duyệt web, máy tính để bàn, thiết bị di động).
- Lớp Ứng dụng (Application): Cung cấp phần mềm như một dịch vụ (SaaS) qua mạng Internet.
- Lớp Nền tảng (Platform): Điểm tựa cho ứng dụng với môi trường Cloud Runtime và Cloud Services, cung cấp khả năng co giãn tự động dựa trên ảo hóa và kiến trúc phân tán.
- Lớp Cơ sở hạ tầng (Infrastructure): Môi trường ảo hóa và lưu trữ dữ liệu phân tán (như Google BigTable, Amazon SimpleDB).
- Lớp Máy chủ (Server): Hệ thống phần cứng và phần mềm chuyên dụng có cấu hình cao phục vụ tính toán tập trung.
Song song đó, tác giả phân loại 3 mô hình dịch vụ cơ bản gồm SaaS (Phần mềm như một dịch vụ), PaaS (Nền tảng như một dịch vụ), IaaS (Hạ tầng như một dịch vụ với tính đàn hồi cao); cùng 3 mô hình triển khai: Đám mây công cộng (Public Cloud), Đám mây riêng (Private Cloud) và Đám mây lai (Hybrid Cloud). Cơ chế vận hành được giải thích qua mô hình hai phân lớp Front-End và Back-End, kết hợp kiến trúc phục vụ đa khách hàng (Multi-tenant).
Đối với công nghệ Google App Engine, khóa luận đi sâu vào cơ chế PaaS của Google với các thành phần cốt lõi:
- Môi trường thực thi Java Virtual Machine (JVM 6) hỗ trợ JSP, Servlet, Java Data Objects (JDO), Java Persistence API (JPA), Google Web Toolkit (GWT).
- Hệ thống quản trị cơ sở dữ liệu phi quan hệ Google App Engine Datastore hoạt động trên nền tảng BigTable và Google File System (GFS), Google Cloud SQL và Google Cloud Storage.
- Tập hợp các giao diện lập trình ứng dụng (APIs): Memcache, User Service, Mail Service, Images API, Task Queue, URL Fetch.
Phương pháp nghiên cứu thực tế được tác giả triển khai bao gồm:
- Phương pháp thu thập và phân tích - tổng hợp tài liệu: Khảo sát các tài liệu học thuật, tài liệu kỹ thuật của Google Developers và tài liệu công nghệ điện toán đám mây từ các tổ chức quốc tế.
- Phương pháp kỹ thuật phần mềm: Phân tích quy trình nghiệp vụ, thiết kế giao diện, lập trình hướng đối tượng với Java trên môi trường Eclipse tích hợp Google Plugin for Eclipse.
- Phương pháp kiểm thử phần mềm: Kiểm thử cục bộ (Local Unitest) bằng các công cụ thử nghiệm dịch vụ do GAE SDK cung cấp (Datastore and Memcache Tests, High Replication Datastore Tests, Task Queue Tests).
Nguồn dữ liệu sử dụng trong nghiên cứu gồm tài liệu đặc tả kỹ thuật của nền tảng Google App Engine, thông số hạn mức dịch vụ từ tài khoản Google và tập danh mục thuật ngữ chuyên ngành tài chính - ngân hàng dùng cho thử nghiệm hệ thống.
Thiết kế và triển khai hệ thống WikiBanking
Là một đồ án xây dựng phần mềm trên nền tảng đám mây, khóa luận trình bày chi tiết về kiến trúc công nghệ, các phân hệ chức năng và quy trình cài đặt, triển khai ứng dụng WikiBanking:
Kiến trúc công nghệ và môi trường phát triển
- Môi trường lập trình: Java SDK phiên bản 1.0 trở lên, IDE Eclipse tích hợp Google Plugin for Eclipse.
- Công nghệ phía máy chủ: Java Servlet và JavaServer Pages (JSP).
- Lưu trữ dữ liệu: Tác giả sử dụng App Engine Datastore dựa trên cấu trúc phân cấp thực thể (Entities), Khóa (Keys) và Thuộc tính (Properties). Cấu trúc dữ liệu hình cây cho phép gán thực thể cha (Parent Entity) và thực thể gốc (Root Entity). Ứng dụng sử dụng ngôn ngữ truy vấn GQL do Google cung cấp để truy xuất dữ liệu thay cho SQL truyền thống.
- Kiểm soát giao dịch (Transaction): Datastore hỗ trợ tính toàn vẹn thông qua cơ chế kiểm soát tương tranh lạc quan (optimistic concurrency control), tự động hoàn nguyên khi có xung đột dữ liệu giữa nhiều phiên ghi đồng thời.
- Tích hợp dịch vụ: Tích hợp User Service của Google (
com.google.appengine.api.users.UserService) để xác thực đăng nhập qua tài khoản Google Accounts, tích hợp bộ nhớ đệm Memcache để tăng tốc độ truy vấn thuật ngữ, và dịch vụ Mail để hỗ trợ tương tác người dùng.
Quy trình và giao diện chức năng chính
Hệ thống WikiBanking phục vụ việc tra cứu và biên tập thuật ngữ ngân hàng với hai quy trình quản lý cốt lõi:
- Phân hệ Quản lý quản trị viên: Thiết lập hệ thống phân quyền 3 cấp bậc theo chuẩn của Google Administration Console:
- Viewer: Chỉ có quyền xem thông tin hệ thống.
- Developer: Qem và chỉnh sửa mã nguồn, cấu hình ứng dụng.
- Owner: Quyền hạn cao nhất, bao gồm xem, sửa, xóa ứng dụng, mời và phân quyền cho các quản trị viên khác. Hệ thống cung cấp form thêm mới, danh sách quản trị viên và thao tác xóa quản trị viên.
- Phân hệ Quản lý thuật ngữ: Cho phép hiển thị nội dung chi tiết của thuật ngữ chuyên ngành tài chính - ngân hàng, cung cấp biểu mẫu (Form) thêm mới và chỉnh sửa thuật ngữ. Toàn bộ các thao tác chỉnh sửa nội dung đều được ghi nhận vào bảng Lịch sử chỉnh sửa để phục vụ công tác kiểm duyệt.
Quy trình đóng gói và triển khai (Deployment)
Tác giả thực hiện việc tải ứng dụng lên hạ tầng của Google qua 3 bước:
- Thiết lập cấu hình dự án trong Eclipse (App Engine Project Settings), xác định phiên bản Java SDK và đặt tên định danh ứng dụng (Application ID) để trỏ về tên miền truy cập (ví dụ:
http://wikibanking.appspot.com hoặc trỏ tên miền riêng qua Google Apps).
- Cấu hình các tham số lưu trữ cho Datastore hoặc Google Cloud SQL, thiết lập các tệp tĩnh (Static Files) và bộ điều phối Front-End.
- Kích hoạt tính năng Deploy to App Engine trên Google Plugin for Eclipse, xác thực bằng tài khoản Google quản trị để hệ thống tự động tải gói nhị phân lên trung tâm dữ liệu của Google.
Nội dung chính theo từng chương
Chương I: Tổng quan về điện toán đám mây
Chương I tập trung làm rõ các vấn đề lý luận căn bản của công nghệ điện toán đám mây:
- Lịch sử và bản chất: Thuật ngữ ra đời từ giữa năm 2007 nhằm khái quát hóa xu hướng dịch chuyển hạ tầng tính toán từ máy trạm nội bộ lên các máy chủ ảo hóa trên mạng Internet.
- So sánh mô hình: Phân biệt chi tiết giữa điện toán truyền thống và điện toán đám mây:
| Tiêu chí |
Điện toán truyền thống |
Điện toán đám mây |
| Đầu tư ban đầu |
Tốn kém chi phí mua sắm phần cứng, bản quyền phần mềm, hạ tầng mạng. |
Chi phí ban đầu gần như bằng 0; thanh toán theo nhu cầu sử dụng thực tế. |
| Vận hành & bảo trì |
Doanh nghiệp tự gánh vác việc sửa chữa, cập nhật bản vá, thuê nhân sự IT. |
Nhà cung cấp dịch vụ đám mây chịu trách nhiệm bảo trì, cập nhật tự động. |
| Khả năng mở rộng |
Chậm chạp, phức tạp, phụ thuộc vào giới hạn nâng cấp phần cứng vật lý. |
Tính đàn hồi cao; tự động co giãn tài nguyên theo lưu lượng truy cập. |
| Vị trí xử lý dữ liệu |
Xử lý và lưu trữ cục bộ tại các máy tính hoặc máy chủ nội bộ. |
Dữ liệu lưu trữ tập trung tại các trung tâm dữ liệu ảo hóa trên Internet. |
- Kiến trúc và mô hình dịch vụ: Trình bày chi tiết 5 lớp kiến trúc (Client, Application, Platform, Infrastructure, Server); 3 mô hình dịch vụ (SaaS, PaaS, IaaS) và 3 kiểu đám mây (Public, Private, Hybrid).
- Lợi ích và hạn chế: Tác giả phân tích 8 lợi ích vượt trội (giảm chi phí, hiệu quả tài nguyên với mô hình Multi-tenant, tinh gọn cơ cấu doanh nghiệp, tăng dung lượng lưu trữ, tốc độ xử lý nhanh, chia sẻ tài nguyên rộng lớn, dễ bảo trì, định lượng chi phí rõ ràng) và chỉ ra 4 rào cản lớn: rủi ro an toàn bảo mật, tính sẵn dùng khi mạng gián đoạn, nguy cơ mất mát dữ liệu do sự cố nhà cung cấp, cùng vấn đề di động dữ liệu và quyền sở hữu.
Chương II: Tìm hiểu về Google App Engine
Chương II đi sâu nghiên cứu hạ tầng PaaS của Google với các nội dung kỹ thuật trọng tâm:
- Tổng quan và giới hạn dịch vụ: GAE cung cấp môi trường lưu trữ miễn phí 1GB dung lượng dữ liệu, đáp ứng khoảng 5 triệu lượt xem trang (pageviews) mỗi tháng. Người dùng có thể sử dụng tên miền phụ miễn phí dạng
appspot.com hoặc trỏ về tên miền riêng thông qua Google Apps.
- Môi trường phát triển: Phân tích cơ chế chạy ứng dụng trên máy ảo Java (JVM 6) và Python 2.x. Môi trường Java hỗ trợ chạy các ngôn ngữ như PHP (thông qua Quercus), Ruby (JRuby), JavaScript (Rhino), Groovy, Scala và Google Web Toolkit.
- Mô hình kiến trúc GAE: Lưu lượng từ Front-End gửi tới sẽ được ứng dụng chủ (App Master) điều phối: các yêu cầu tệp tĩnh chuyển trực tiếp đến Static Files; các yêu cầu xử lý động được đưa vào ứng dụng để tương tác với Datastore, Memcache, Image Manipulation qua API.
- Các dịch vụ tích hợp trên GAE:
| Nhóm dịch vụ |
Tên các dịch vụ hỗ trợ trên GAE |
| Nhận diện & Bảo mật |
App Identity, Users (User Service), OAuth |
| Lưu trữ & Truy vấn |
App Engine Datastore, Google Cloud SQL, Google Cloud Storage, Blobstore, Memcache, Search, Prospective Search |
| Xử lý tác vụ & Kết nối |
Task Queues, Sockets, URL Fetch, Channel, XMPP, Google Cloud Endpoints |
| Đa phương tiện & Quản trị |
Images, Logs, Mail, Capabilities, Multitenancy |
- Thông số kỹ thuật của một số dịch vụ tiêu biểu:
- Google Cloud SQL: Kích thước yêu cầu tối đa (Maximum Request Size) là 16 MB.
- Google Cloud Storage: Cung cấp miễn phí 5GB lưu trữ, 25GB tải về (download) và 25GB tải lên (upload) từ các trung tâm dữ liệu tại Mỹ, Châu Âu và Châu Á.
- Dịch vụ xử lý ảnh (Images): Kích thước ảnh tối đa gửi/nhận qua dịch vụ là 32 MB; độ phân giải tối đa cho phép là 50 megapixel. Hỗ trợ định dạng đầu vào JPEG, PNG, WebP, GIF, BMP, TIFF, ICO và định dạng đầu ra JPEG, WebP, PNG.
- Công cụ quản trị Administration Console: Tác giả phân tích các bảng điều khiển giám sát Dashboard (biểu đồ thống kê Request, Milliseconds, CPU Seconds, Errors, Bytes Received theo các mốc thời gian 30 phút, 3 giờ, 6 giờ, 12 giờ, 1 ngày, 2 ngày), xem tệp Logs theo mức độ (Debug, Error, Warning, Info, Critical), quản lý Datastore Viewer, Memcache Viewer, công cụ phân quyền tài khoản (Owner, Developer, Viewer), danh sách chặn IP (Blacklist hỗ trợ tối đa 100 địa chỉ IP) và kiểm soát chi phí (Billing).
Chương III: Xây dựng ứng dụng WikiBanking với nền tảng điện toán đám mây Google App Engine
Chương III áp dụng toàn bộ cơ sở lý thuyết để hiện thực hóa sản phẩm phần mềm:
- Giới thiệu bài toán: Xây dựng cổng tra cứu thuật ngữ tài chính - ngân hàng trực tuyến nhằm giải quyết nhu cầu tra cứu từ vựng chuyên ngành một cách nhất quán, chính xác và có thể truy cập mọi lúc, mọi nơi qua trình duyệt.
- Mô hình quy trình nghiệp vụ: Xây dựng quy trình quản lý thông tin quản trị viên và quy trình biên tập, hiệu đính nội dung thuật ngữ ngân hàng.
- Thiết kế giao diện và dữ liệu: Hiện thực hóa các bảng dữ liệu quản trị viên, bảng thuật ngữ và bảng lịch sử chỉnh sửa; xây dựng các màn hình đăng nhập tài khoản Google, form thêm/sửa thuật ngữ, màn hình hiển thị danh mục từ vựng và chi tiết giải nghĩa.
- Cài đặt và cấu hình: Hướng dẫn từng bước thiết lập Google Plugin for Eclipse, kết nối dự án với tài khoản App Engine và đưa hệ thống WikiBanking lên vận hành thực tế trên đám mây của Google.
Kết quả và đóng góp
Kết quả chính
- Hệ thống hóa toàn diện cơ sở lý luận về công nghệ điện toán đám mây và làm rõ cơ chế vận hành của mô hình PaaS Google App Engine.
- Tổng hợp đầy đủ các thông số định mức kỹ thuật của tài khoản GAE miễn phí: 1GB dung lượng lưu trữ, băng thông và CPU đủ phục vụ 5 triệu lượt xem trang/tháng, dung lượng lưu trữ Cloud Storage 5GB (băng thông tải lên/xuống 25GB), giới hạn yêu cầu Cloud SQL 16MB, giới hạn tệp tin ảnh xử lý 32MB / 50 megapixel, cùng danh mục chặn mạng tối đa 100 IP.
- Xây dựng và triển khai thành công ứng dụng mẫu WikiBanking viết bằng ngôn ngữ Java (JSP/Servlet), tích hợp các dịch vụ đám mây thực tế gồm Datastore, Memcache và User Service.
Đề xuất và giải pháp
- Khóa luận khuyến nghị các doanh nghiệp vừa và nhỏ, các đơn vị triển khai dự án thử nghiệm nên tận dụng các nền tảng PaaS như Google App Engine nhằm loại bỏ chi phí đầu tư ban đầu, rút ngắn thời gian đưa ứng dụng vào hoạt động và giảm bớt gánh nặng quản trị hạ tầng phần cứng.
- Đề xuất quy trình phát triển chuẩn hóa dựa trên bộ công cụ mã nguồn mở kết hợp plug-in đám mây (Eclipse, Google Plugin for Eclipse, Local Unitest) để kiểm thử hệ thống trước khi triển khai chính thức.
Đóng góp về mặt học thuật và thực tiễn
- Khóa luận kết nối thành công lý thuyết điện toán đám mây với bài toán nghiệp vụ chuyên ngành ngân hàng, cung cấp một trường hợp nghiên cứu cụ thể về việc tin học hóa từ điển chuyên ngành tài chính.
- Cung cấp tài liệu tham khảo có tính thực hành cao về cách thức cấu hình, phân quyền quản trị, xử lý giao dịch dữ liệu phân tán trên Google App Engine bằng Java.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Ứng dụng WikiBanking mới dừng lại ở mức độ thử nghiệm các chức năng cốt lõi (quản lý thuật ngữ, phân quyền quản trị), chưa trải qua quá trình đánh giá tải trọng trong môi trường vận hành quy mô lớn với lượng truy cập vượt ngưỡng miễn phí của GAE.
- Hệ thống phụ thuộc hoàn toàn vào cấu trúc hạ tầng đóng của Google App Engine; việc sử dụng Datastore API và cú pháp GQL gây khó khăn nhất định nếu muốn chuyển đổi ứng dụng sang các nhà cung cấp đám mây khác.
- Đề tài chưa đưa ra giải pháp kỹ thuật triệt để đối với các rủi ro chung của điện toán đám mây mà chính văn bản đã chỉ ra, bao gồm tính di động của dữ liệu (data portability), quyền sở hữu dữ liệu và phương án sao lưu dự phòng khi dịch vụ đám mây gặp sự cố gián đoạn.
Hướng nghiên cứu tiếp
- Tiếp tục bổ sung, làm giàu cơ sở dữ liệu thuật ngữ chuyên ngành tài chính - ngân hàng và mở rộng các tính năng cộng tác người dùng trên WikiBanking.
- Nghiên cứu cơ chế đồng bộ và sao lưu dữ liệu tự động giữa Google Datastore với các hệ quản trị cơ sở dữ liệu ngoài đám mây để bảo đảm an toàn dữ liệu.
- Mở rộng phạm vi nghiên cứu sang việc đo lường, tối ưu hóa chi phí vận hành khi ứng dụng vượt ngưỡng tài nguyên miễn phí và so sánh hiệu năng của GAE với các giải pháp PaaS cạnh tranh khác (như Windows Azure).
Giá trị tham khảo
Báo cáo khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng sau:
- Sinh viên ngành Hệ thống thông tin quản lý, Công nghệ thông tin, Tin học ngân hàng: Tài liệu cung cấp góc nhìn tổng quan, mạch lạc về các mô hình dịch vụ đám mây (SaaS, PaaS, IaaS) và kiến trúc hệ thống phân tán.
- Lập trình viên và nhà phát triển ứng dụng Java: Phần hướng dẫn chi tiết tại Chương II và Chương III là tài liệu tham khảo hữu ích cho việc tích hợp các API của Google (Datastore, Memcache, User Service), cấu hình Eclipse với Google Plugin và quy trình đóng gói triển khai ứng dụng web lên GAE.
- Cán bộ quản trị hệ thống và quản trị dự án CNTT: Cung cấp thông tin chi tiết về các tính năng giám sát hệ thống trên Google Administration Console (Dashboard, Quota Details, phân quyền Owner/Developer/Viewer, quản lý Blacklist IP và kiểm soát chi phí dịch vụ).
Câu hỏi thường gặp
1. Hạn mức tài nguyên miễn phí mà Google App Engine cấp cho một ứng dụng tại thời điểm nghiên cứu là bao nhiêu?
Theo công bố trong khóa luận, Google App Engine cho phép lưu trữ miễn phí với dung lượng 1 GB và cung cấp đủ tài nguyên CPU, băng thông để đáp ứng khoảng 5 triệu lượt xem trang (pageviews) mỗi tháng. Bên cạnh đó, dịch vụ Google Cloud Storage đi kèm cấp miễn phí 5 GB lưu trữ, 25 GB băng thông tải xuống và 25 GB băng thông tải lên.
2. Yêu cầu gửi từ người dùng được kiến trúc của Google App Engine tiếp nhận và điều phối như thế nào?
Yêu cầu từ trình duyệt của người dùng được gửi tới GAE thông qua lối vào (Front End). Tại đây, thành phần ứng dụng chủ (App Master) sẽ tiếp nhận, điều khiển và lập lịch: nếu là yêu cầu tệp tin tĩnh thì chuyển trực tiếp tới dịch vụ Static Files; nếu là yêu cầu nội dung động thì chuyển vào máy ảo thực thi ứng dụng để tương tác với các dịch vụ Datastore, Memcache, Image Manipulation thông qua hệ thống API độc lập.
3. Cơ chế kiểm soát giao dịch (Transaction) của App Engine Datastore hoạt động theo nguyên lý nào?
Mỗi phiên giao dịch trong Datastore là đơn vị xử lý nhỏ nhất, chỉ có hai trạng thái thành công hoặc thất bại (tự động hoàn nguyên toàn bộ thao tác trước đó nếu có lỗi). Khi có nhiều yêu cầu đồng thời đọc/ghi trên cùng một thực thể, Datastore sử dụng cơ chế kiểm soát tương tranh lạc quan (optimistic concurrency control); nếu xung đột xảy ra, hệ thống sẽ trả về biệt lệ báo lỗi ngay lập tức để bảo đảm tính nhất quán dữ liệu.
4. Hệ thống phân quyền của Google Administration Console bao gồm những vai trò nào và quyền hạn cụ thể ra sao?
Bảng phân quyền của GAE xác định 3 vai trò (Role) mặc định:
- Viewer: Chỉ có quyền xem thông tin ứng dụng trên trang quản trị Administration Console.
- Developer: Có quyền xem và chỉnh sửa ứng dụng trên Administration Console.
- Owner: Toàn quyền quản trị cao nhất, bao gồm xem, chỉnh sửa, xóa ứng dụng, mời thêm quản trị viên mới và phân quyền cho họ.
5. Dịch vụ xử lý ảnh (Images Service) trên Google App Engine hỗ trợ những định dạng nào và có giới hạn ra sao?
Dịch vụ chấp nhận ảnh đầu vào ở các định dạng JPEG, PNG, WebP, GIF (gồm cả GIF động), BMP, TIFF, ICO và xuất ra định dạng JPEG, WebP, PNG. Giới hạn dung lượng tối đa cho mỗi tệp ảnh gửi đến hoặc nhận về từ dịch vụ là 32 MB, với độ phân giải tối đa cho phép là 50 megapixel.
Kết luận
Khóa luận tốt nghiệp của sinh viên Chu Thị Hạnh đã tổng hợp một cách có hệ thống cơ sở lý thuyết về điện toán đám mây và đi sâu phân tích toàn diện nền tảng Google App Engine. Trên cơ sở đó, tác giả đã ứng dụng thành công công nghệ PaaS của Google để xây dựng và triển khai thử nghiệm hệ thống từ điển thuật ngữ tài chính - ngân hàng WikiBanking bằng ngôn ngữ Java. Công trình thể hiện giá trị học thuật và thực tiễn rõ nét, đóng vai trò là tài liệu tham khảo hữu ích cho sinh viên chuyên ngành Hệ thống thông tin quản lý và các nhà phát triển phần mềm trên nền tảng đám mây.