1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU GOOGLE APP ENGINE VÀ XÂY DỰNG MỘT SỐ ỨNG DỤNG MINH HỌA

29 839 4

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 1,62 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Google App Engine cung cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một trình duyệt web, còn các phần mềm và dữ liệu được lưu trên các máy chủ.. Google App

Trang 1

LỜI MỞ ĐẦU



Hiện nay chúng ta nghe nói về điện toán đám mây (Cloud Computing) khá nhiều Đây là mô hình điện toán sử dụng các công nghệ mạng máy tính và phát triển dựa vào mạng Internet Điện toán đám mây là khái niệm tổng thể bao gồm các khái niệm như phần mềm dịch vụ, Web 2.0 và các vấn đề khác xuất hiện gần đây, các xu hướng công nghệ nổi bật, trong đó đề tài chủ yếu là vấn đề dựa vào Internet để đáp ứng những nhu cầu điện toán của người dùng (theo wikipedia)

Google App Engine (viết tắt là AppEngine hay GAE), một trong những nền tảng điện toán đám mây phát triển hàng đầu trên thị trường Ở đó, Google cung cấp sẵn một hệ thống máy chủ điện toán đám mây, và người lập trình viết ứng dụng của mình lên đó Ứng dụng này sẽ chạy trên đám mây của Google Google App Engine cung cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một trình duyệt web, còn các phần mềm và dữ liệu được lưu trên các máy chủ

Google App Engine là một hệ thống tích hợp đầy đủ các kỹ thuật cho một ứng dụng web hiện đại Google App Engine cung cấp một khả năng phát triển và triển khai ứng dụng nhanh chóng, việc quản lý đơn giản, dễ dàng để quy mô như lưu lượng truy cập và nhu cầu lưu trữ dữ liệu của ứng dụng lớn Người dùng cũng không cần lo lắng về phần cứng, các bản vá lỗi hoặc sao lưu

Qua đó để nắm bắt được công nghệ tương lai này, em thực hiện đề tài “Tìm hiểu Google App Engine, xây dựng một số ứng dụng minh họa” Thông qua việc tìm hiểu các kỹ thuật, các service mà công nghệ Google App Engine cung cấp, em sẽ làm một

số ứng dụng minh họa

Chương 1: GIỚI THIỆU GOOGLE APP ENGINE

Trang 2

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

Điện toán đám mây là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet Rất nhiều các nhà cung cấp đã tuyên bố cung cấp nền tảng "đám mây" Hiện nay, Google, Amazon.com và Salesforce.com đang dẫn đầu trong cộng đồng và phát triển không gian điện toán doanh nghiệp Có ba mức độ chính của các dịch vụ điện toán đám mây Cơ sở hạ tầng như một dịch vụ (IaaS), nền tảng như một dịch vụ (PaaS) và phần mềm như một dịch vụ (Saas)

o Góc độ khác về SaaS là việc sử dụng phần mềm chạy từ xa trên mạng Phần mềm này

có thể ở dạng Web services (các dịch vụ dùng bởi ứng dụng cục bộ) hay các ứng dụng

từ xa mà có thể theo dõi kết quả thông qua trình duyệt web Một ví dụ đó là Google Apps

dữ liệu (dùng Google Query Language) bên cạnh các hỗ trợ về xác thực người dùng, thao tác hình ảnh và gửi email

- Infrastructure-as-a-Service

Trang 3

o IaaS là việc phân phối hạ tầng máy tính như một dịch vụ Tầng này khác với PaaS ở chỗ : phần cứng ảo được cung cấp không kèm theo software stack IaaS là dạng

“thô” nhất của “computing as a service” Nhà cung cấp IaaS thương mại nối tiếng nhất là Amazon Elastic Compute Cloud (EC2) Trong EC2 , người dùng có thể chỉ định máy ảo (VM) đặc biệt của mình và triển khai các ứng dụng trên đó hay là cung cấp VM image và chạy nó trên server Người dùng chỉ phải trả tiền cho thời gian tính toán, dung lượng lưu trữ và băng thông mạng Hình 1.1 và 1.2 mô tả các Service của điện toán đám mây và các nhà cung cấp

Hình 1.1

Trang 4

Hình 1.2

1.2 Lợi ích khi sử dụng Google App Engine

Những ứng dụng điện toán đám mây dù mới nhưng đang mở ra một tương lai đầy hứa hẹn Trong đó có Google App Engine, là một công nghệ mới của Google, một lĩnh vực mới được các công ty lớn trên thế giới đang ứng dụng và phát triển như Socialwork, BuddyPoke, Walk Score… Google App Engine cùng với các Google API, Services song song đó có thể thấy được các ưu điểm nổi bật của ứng dụng Google App Engine như tính linh hoạt, dễ bảo trì, giảm bớt chi phí, bảo mật…

o Tính linh động: Người dùng có thể thoải mái lựa chọn các dịch vụ phù hợp với nhu cầu của mình, cũng như có thể bỏ bớt những thành phần mà mình không muốn Google cung cấp rất nhiều các Service các API cho Google App Engine

o Giảm bớt phí: Người dùng không chỉ giảm bớt chi phí bản quyền mà còn giảm phần lớn chi phí cho việc mua và bảo dưỡng máy chủ Việc tập hợp ứng dụng của nhiều tổ chức lại một chỗ sẽ giúp giảm chi phí đầu tư ban đầu, cũng như tăng hiệu năng sử dụng các thiết bị này một cách tối đa Google cung cấp 500 MB lưu trữ ứng dụng và cho phép 10 GB băng thông lưu chuyển mỗi ngày hay tương đương 5 triệu lượt truy cập hàng tháng, điều này là hoàn toàn miễn phí

o Tạo nên sự độc lập: Với điện toán đám mây, phần mềm, dữ liệu có thể được truy cập

và sử dụng từ bất kì đâu, trên bất kì thiết bị nào mà không cần phải quan tâm đến giới hạn phần cứng cũng như địa lý

o Tăng cường độ tin cậy: Dữ liệu trong mô hình điện toán đám mây được lưu trữ một 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 Google có một danh tiếng về độ tin cậy cao, cơ sở hạ tầng hiệu suất cao With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems.Với App Engine, người dùng có thể tận dụng

Trang 5

khiển The same security, privacy and data protection policies we have for Google's applications applies to all App Engine applications.

o Bảo mật: An ninh, bảo mật thông tin và bảo vệ dữ liệu đã sử dụng cho các ứng dụng của Google sẽ áp dụng cho tất cả các ứng dụng App Engine We take security very seriously and have measures in place to protect your code and application data.GoogleBảo đảm an ninh rất nghiêm túc và có biện pháp để bảo vệ code và dữ liệu của ứng dụng

o Bảo trì dễ dàng: Mọi phần mềm đều nằm trên server, lúc này người dùng sẽ không cần lo lắng cập nhật hay sửa lỗi phần mềm nữa 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

Từ những lợi ích trên bảng so sánh dưới sẽ làm rõ hơn việc sử dụng Google App Engine so với việc sử dụng Web hosting như hiện nay:

GOOGLE APP ENGINE WEB HOSTING Tính sẵn

sàng

-Dữ liệu lưu trữ tập trung trên hệ thông Cloud server không lưu trên một server vật lý

-Dữ liệu được backup đều đặn

-Nếu có một server vật lý bị lỗi, Cloud server vẫn hoạt động ổn định

-Dữ liệu được khởi tạo và chạy trên một server vật lý.-Vào thời gian cao điểm server vật

lý có thể treo dẫn đến các web có thể tạm ngưng hoạt động

Khả năng

mở rộng

-Khả năng mở rộng là ngay lập tức khi có nhu cầu

-Giảm bớt server khi cảm thấy không cần sử dụng nhiều tài nguyên như thế

-Khả năng sử dụng tài nguyên linh hoạt giúp tiết kiệm chi phí

-Các tài nguyên được ảo hóa và cung cấp cho người dùng

-Khi người dùng có nhu cầu sử dụng lớn hơn chúng ta không thể nâng cấp một cách nhanh chóng,

mà phải vất vả đi mua thêm server, trả thêm chi phí cho việc cài đặt

Trang 6

Chi phí -Người dùng chỉ cần chi trả cho

những gì sử dụng (Cpu, Ram, Dung lượng, )

-Chúng có thể nâng cấp/giảm bớt tài nguyên bất kỳ lúc nào giúp người dùng tiết kiệm được chi phí

-Người dùng phải chi trả số tiền theo cấu hình server của chúng ta

đã mua theo thời gian cố định.-Việc sử dụng chung server vật lý khiến web của người dùng bị phụ thuộc

-Để duy trì server người dùng cần trả các khoản chi phí điện, hệ thống mạng, chi phí bảo trì server

Quản lý -Thân thiện người dùng với nhiều

1.3 Phát triển và tải ứng dụng Java cho Google App Engine

Phát triển và tải lên các ứng dụng Java cho Google App Engine bằng cách sử dụng các ứng dụng Java software development kit (SDK)

SDK bao gồm phần mềm cho một web server có thể chạy trên máy tính của mình

để kiểm tra các ứng dụng Java Server mô phỏng tất cả các dịch vụ App Engine, bao gồm cả một phiên bản nội bộ của Datastore, Google Account, và khả năng để lấy các URL, gửi email từ máy tính cá nhân bằng cách sử dụng các App Engine API

1.4 Servlet Container và một số Framework

Trang 7

Đối với các ứng dụng Web, tiêu chuẩn Java Servlet là một trong những nền tảng chính Do đó có thể xây dựng ứng dụng cho App Engine bằng cách sử dụng Servlet

và JSP Tuy nhiên người dùng vẫn có thể sử dụng thêm các Framework

1.5 Google Web Toolkit

GWT là công cụ giúp phát triển các phần client side (HTML, CSS, Jscript, AJAX ) GWT giúp lập trình viên đặc tả các phần tử trên giao diện web 2.0 tương tự như viết các giao diện của các ứng dụng desktop

GWT không phải là framework bên phía server giống như Spring và GraniteDS nhưng đó là sản phẩm riêng biệt mà Google hướng vào App Engine để sử dụng Eclipse plug-in Sử dụng GWT để compiles và tối ưu hóa tốc độ cho trang web bằng việc sử dụng “web 2.0” vào trong trang web mà không bị các lỗi chồng nhau bên phía client-side

GWT cho phép:

o Giao tiếp với server back-end bằng cách sử dụng GWT RPC, JSON, và XML Với GWT RPC, có thể chỉ định các thiết bị đầu cuối từ xa để gọi qua Internet dễ dàng một cách đáng kể

o Tạo các UI components cho phép đóng gói và tái sử dụng

o Phát triển các hàm Javascript riêng cho ứng dụng bằng việc sử dụng JavaScript Native Interface ( JSNI )

o Hỗ trợ nút Back và history trong trình duyệt

o Sử dụng GWT-deferred kết nối kĩ thuật để tạo ra tương tác thông qua dữ liệu người dùng

o Bắt đầu sử dụng bằng các tools như Eclipse, Junit, JProfiler

Trang 8

Chương 2: APP ENGINE DATASTORE

2.1 Giới thiệu Datastore

App Engine cung cấp hai tùy chọn để lưu trữ dữ liệu khác nhau nhưng đảm bảo tính nhất quán:

o High Replication datastore: dữ liệu được nhân rộng trên khắp các trung tâm dữ liệu bằng cách sử dụng một hệ thống dựa trên thuật toán Paxos High Replication cung cấp khả năng tiện lợi cao cho đọc và viết (với chi phí của độ trễ cao hơn viết)

o Master / Slave datastore

2.1.1 Entity và Property

App Engine datastore lưu trữ các đối tượng dữ liệu, được biết đến như những entity

Một entity có một hoặc nhiều property

Một property có một hoặc nhiều value và property name có thể là string, int…Mỗi entity thường có một key duy nhất xác định

Một key đơn giản gồm có kind và entity ID được cung cấp bởi datastore Một ứng dụng có thể lấy một entity từ datastore bằng cách sử dụng key của entity đó hoặc thực hiện một câu truy vấn thể hiện các property của entity này Một câu truy vấn có thể trả về một hay nhiều entity hoặc trả về các giá trị property đã được sắp xếp

2.2 Sử dụng JDO trong App Engine

App Engine datastore là một trong số các service được cung cấp bởi App Engine với hai API: standard API và low-level API

Trang 9

App Engine hỗ trợ cho hai standard API khác nhau là Java Data Objects (JDO) và Java Persistence API (JPA) Các interface này được sử dụng để mô hình hóa và tổ chức các entity Các interface này được cung cấp bởi DataNucleus Access Platform.Java Data Objects (JDO) là một interface tiêu chuẩn cho các đối tượng lưu trữ có chứa dữ liệu vào một database Một ứng dụng sử dụng JDO có thể làm việc với các loại database khác nhau mà không sử dụng code của database đó, bao gồm CSDL quan hệ, CSDL phân cấp, CSDL đối tượng

App Engine Java SDK hỗ trợ JDO 2.3 cho App Engine datastore dựa trên nền tảng DataNucleus Access Platform

2.3 Định nghĩa lớp dữ liệu với JDO

2.3.1 Định nghĩa lớp dữ liệu với JDO

Sử dụng JDO để lưu trữ các đối tượng dữ liệu Java (hay còn được gọi là “Plain Old Java Objects” hoặc “POJO”) trong datastore Mỗi đối tượng được lưu trữ bởi JDO trở thành một entity trong App Engine datastore Tên của lớp đại diện cho kind của entity và các field của lớp là các property của entity

Để khai báo một lớp Java có khả năng lưu trữ và nhận dữ liệu từ datastore với JDO, JDO cung cấp một chú thích @PersistenceCapable

Các field của lớp được lưu trữ trong datastore được chú thích @Persistent và chú thích @NotPersistent nếu filed đó không được lưu trữ trong datastore

Một lớp dữ liệu phải có một và chỉ một field làm nhiệm vụ lưu trữ primary key của entity tương ứng Kiểu dữ liệu của field này sẽ là một đối tượng Key và với một giá trị duy nhất khi đối tượng được lưu vào datastore Primary key có kiểu là Key sẽ được chú thích @PrimaryKey và @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)

2.3.2 Đối tượng Serializable

Lớp Serializable như là một lớp để trung chuyển dữ liệu giữa các layer, do đó đây không phải là một lớp JDO nên không có chú thích Persistent

Trang 10

2.4 Truy vấn trong JDO

Một truy vấn lấy các entity từ datastore đáp ứng lại các yêu cầu JDO hỗ trợ một ngôn ngữ truy vấn để lấy các đối tượng gọi là JDOQL JDOQL tương tự như SQL, nhưng thích hợp nhiều hơn cho các cơ sở dữ liệu hướng đối tượng chẳng hạn như App Engine datastore (App Engine datastore không hỗ trợ SQL cho JDO interface)

Sử dụng cú pháp JDOQL để viết một câu truy vấn hoàn chỉnh trong một chuỗi, ngoài

ra cũng có thể sử dụng một số thành phần của câu truy vấn bằng cách gọi các phương thức trên đối tượng được truy vấn

Chương 3: APP ENGINE SERVICES

Google App Engine cung cấp một số service sau đây:

Em chỉ tìm hiểu 3 Service được sử dụng trong ứng dụng: Blobstore, Memcache

service, Mail API.

Trang 11

3.1 Blobstore

Blobstore API cho phép lưu trữ các đối tượng dữ liệu có kích thước lớn hơn kích thước đối tượng trong Datastore Các đối tượng dữ liệu có kích thước lớn chẳng hạn như video, hình ảnh và tập tin

Trong ứng dụng sẽ có form để upload các đối tượng này, thiết lập phương thức blobstoreService.createUploadUrl() cho action của form Khi form được submit hoặc gửi một request HTTP POST Blobstore sẽ tạo một Blobstore value hay còn gọi là một blob từ nội dung của file và trả về một opaque tham chiếu đến blob, được gọi là blob key

Ứng dụng không truy cập trực tiếp đến blob mà thông qua blob entity (đại diện là

lớp BlobInfo) trong datastore

Ngoài ra cũng phải thiết lập enctype của form là multipart/form-data Khi form được submit, Blobstore API sẽ tạo các blob và các dòng thông tin cho các blob được lưu trữ trong Datastore Sau đó sẽ gửi lại cho ứng dụng các blob key

3.2.2 Thời gian lưu trữ dữ liệu trong Cache

Theo mặc định, các giá trị được lưu trữ trong bộ nhớ cache được giữ càng lâu càng tốt, nhưng cũng có thể cấu hình thời gian hết hạn cho một giá trị được thêm vào bằng một số giây hoặc cung cấp một thời gian tuyệt đối Tuy nhiên các giá trị cũng có thể bị mất khỏi bộ nhớ cache trước khi hết hạn vì những lý do khác như tràn bộ nhớ

Trang 12

cache Do đó phải chắc chắn rằng các giá trị này có thể rỗng trong một phiên làm việc của người dùng.

Kích thước lưu trữ của một giá trị là 1MB Kích thước tổng các cuộc gọi và các giá trị là 32MB

App Engine Java SDK hỗ trợ JCache API, một interface tiêu chuẩn cho bộ nhớ cache và một interface cho App Engine Memcache Service Với JCache, người dùng

có thể thiết lập và gán giá trị cho bộ nhớ cache, kiểm soát hạn dùng của các giá trị và các số liệu thống kê từ bộ nhớ cache JCache API vẫn đang còn được phát triển

3.3 Mail service

Các ứng dụng AppEngine có thể gửi message sử dụng Mail service Mail service

hỗ trợ JavaMail interface cho việc gửi email Ứng dụng có thể gửi email thay mặt cho admin của ứng dụng hoặc các user Google Accounts

Địa chỉ người gửi phải là địa chỉ mail của admin ứng dụng hoặc địa chỉ mail có định dạng sau: string@appid.appspotmail.com Trong đó “string” có thể đặt tùy ý,

Trang 13

Trong Administration Console có thể tạo mới Application IDs, mời các developers khác để đóng góp cho ứng dụng, xem dữ liệu và các lỗi phát sinh, phân tích hoạt động, xem qua datastore …

App Engine Administration Console có hai bản Nếu sử dụng Google Account cá nhân thì Google account cá nhân, có thể vào trang http://appengine.google.com để quản lý ứng dụng Nếu sử dụng Google Apps account để lập trình App Engine, Administration Console được đặt ở http://appengine.google.com/a/yourdomain.com , yourdomain.com là tên ứng dụng

4.2 Application Dashboard

Khi mở bảng dashboard cho một trong các ứng dụng App Engine thì người dùng

sẽ nhận được ảnh chụp các số liệu của ứng dụng như trong hình 5-2

Hình 5-2

Trang 14

Ba phần làm nên tiêu đề cho bảng dashboard gồm các navigation , version selector, và đường link dẫn đến danh sách ứng dụng.

Ngày đăng: 19/05/2015, 22:46

HÌNH ẢNH LIÊN QUAN

Bảng hiển thị các cấp độ thông tin về ứng dụng, version, lưu  thông, và quotas - TÌM HIỂU GOOGLE APP ENGINE VÀ XÂY DỰNG MỘT SỐ ỨNG DỤNG MINH HỌA
Bảng hi ển thị các cấp độ thông tin về ứng dụng, version, lưu thông, và quotas (Trang 14)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w