Hiển thị các bài đăng có nhãn Google App Engine. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Google App Engine. Hiển thị tất cả bài đăng

[Mẹo hay] Tìm kiếm trên google

[Mẹo hay] Tìm kiếm trên google

Bạn đã sử dụng google? Bạn đã biết cách tìm thông tin nhanh và chính xác ?
Google đưa ra cho bạn một số lời khuyên hữu ích:

1. Bắt đầu đơn giản

Bất kể bạn đang tìm kiếm điều gì, phương châm của chúng tôi là "thực hiện đơn giản". Bắt đầu bằng cách nhập tên hoặc từ cơ bản. Nếu bạn đang tìm kiếm một địa điểm hoặc sản phẩm tại một vị trí cụ thể, hãy nhập tên cùng với mã thị trấn hoặc mã zip.

2. Bỏ qua chính tả

Trình kiểm tra chính tả của Google sẽ tự động chuyển sang mặc định là cách viết thông dụng nhất của từ đã cho, cho dù bạn đánh vần có chính xác hay không.

3. Sử dụng từ thân thiện với web

Công cụ tìm kiếm hoạt động bằng cách đối sánh các từ bạn nhập với các trang trên web. Do đó, việc sử dụng các từ có khả năng xuất hiện nhiều nhất trên các trang sẽ mang lại các kết quả tốt nhất. Ví dụ: thay vì nói đầu của tôi đau, hãy nói đau đầu, vì đó là thuật ngữ mà trang web y khoa sử dụng.

4. Càng ít càng nhiều

Cụm từ tìm kiếm đơn giản gồm một hoặc hai từ thường mang lại cho bạn các kết quả rộng nhất. Hãy bắt đầu với cụm từ tìm kiếm ngắn của bạn, sau đó tinh chỉnh kết quả bằng cách thêm từ.

5. Tìm kiếm bằng cụm từ chính xác

Đặt dấu ngoặc kép vào các từ "[bất kỳ từ nào]" để tìm kiếm cụm từ chính xác theo trật tự chính xác. Xin lưu ý việc tìm kiếm bằng dấu ngoặc kép có thể loại trừ các kết quả có liên quan. Ví dụ: tìm kiếm "Alexander Bell" sẽ bỏ qua các trang đề cập đến Alexander G. Bell.

6. Sử dụng các từ mô tả

Từ càng duy nhất thì bạn càng có khả năng nhận được kết quả có liên quan. Do đó [nhạc chuông của người nổi tiếng] có lẽ tốt hơn [âm thanh của người nổi tiếng]. Mặc dù vậy, xin lưu ý rằng ngay cả khi từ có nghĩa chính xác, nếu đó không phải là từ mà hầu hết mọi người sử dụng, từ đó có thể không khớp với các trang bạn cần.

7. Đừng lo về chữ hoa và chữ thường

Tìm kiếm không phân biệt chữ hoa và chữ thường. Tìm kiếm new york times tương tự như tìm kiếm New York Times.

8. Tìm kiếm trong trang web cụ thể

Đặt trước truy vấn của bạn từ site: nếu bạn biết bạn muốn có câu trả lời bên trong trang web hoặc loại trang web cụ thể (.org, .edu). Ví dụ: site:edu hoặc site:nytimes.com.

9. Đừng lo về dấu chấm câu

Tìm kiếm bỏ qua dấu chấm câu. Dấu chấm câu này bao gồm @#%^*()=+[]\ và các ký tự đặc biệt khác.

10. Tìm kiếm theo loại tệp

Tìm kiếm các loại tệp cụ thể, chẳng hạn như PDF, PPT, hoặc XLS, bằng cách thêm filetype: và 3 ký hiệu viết tắt của tệp.

11. Bao gồm hoặc bỏ qua các từ và ký tự trong tìm kiếm của bạn

Đánh dấu các từ và ký tự phổ biến, chẳng hạn như the và & nếu chúng quan trọng đối với tìm kiếm của bạn (như trong tiêu đề phim hoặc sách) bằng cách đặt dấu ngoặc kép "the" vào chúng. Bạn cũng có thể sử dụng dấu trừ - để chỉ định các mục cụ thể mà bạn không muốn có trong kết quả tìm kiếm của bạn, chẳng hạn như nguyên liệu trong công thức chế biến món ăn.

12. Tìm các trang có liên quan

Sử dụng toán tử related: để tìm các trang có nội dung tương tự bằng cách nhập related: theo sau là địa chỉ trang web. Ví dụ: nếu bạn tìm một trang web mà bạn yêu thích, hãy thử sử dụng related:[chèn URL] để định vị các trang web tương tự.

13. Tìm công thức chế biến món ăn

Sau khi tìm kiếm công thức hoặc nguyên liệu chế biến món ăn cụ thể, hãy chọn "Công thức chế biến món ăn" ở bảng điều khiển bên trái để xem kết quả công thức chế biến món ăn.

14. Tìm kiếm số trong một phạm vi

Không vượt quá ngân sách của bạn bằng cách chỉ tìm kiếm các mục trong phạm vi số bằng bằng đặt chuỗi .. giữa số tiền.

15. Xem chuyển đổi đơn vị

Chuyển đổi mọi đơn vị đo lường -- như dặm sang kilômét hoặc aoxơ sang lít -- bằng cách nhập số và đơn vị đo lường.

16. Xem thời gian

Để xem thời gian tại bất kỳ nơi nào trên thế giới, hãy tìm kiếm thời gian và thành phố hoặc quốc gia.

17. Xem chuyển đổi ngoại tệ

Xem tỷ giá hối đoái hiện hành bằng cách tìm kiếm [đơn vị tiền tệ 1] bằng [đơn vị tiền tệ 2].

18. Bằng tất cả ngôn ngữ

Khi bạn đang tìm kiếm, hãy nhấp vào "Công cụ tìm kiếm khác" trên bảng điều khiển bên trái của trang kết quả của bạn, sau đó chọn "Các trang tiếng nước ngoài đã dịch". Tính năng này sẽ chọn ngôn ngữ tốt nhất để tìm kiếm và cung cấp các kết quả được dịch lại bằng tiếng Anh.

19. Xem thời tiết

Tìm kiếm thời tiết theo sau là mã zip tại Hoa Kỳ hoặc tên của thành phố bất kỳ trên thế giới để nhận thông tin thời tiết và dự báo hiện hành. Nhập thời tiết để nhận dự báo thời tiết cho vị trí hiện tại của bạn.

20. Xem tin tức chứng khoán thời gian thực

Nhập ký hiệu mã cổ phiếu bất kỳ vào hộp tìm kiếm sẽ cung cấp cho bạn giá chứng khoán trong thời gian thực được cập nhật trực tiếp trong các kết quả tìm kiếm của bạn. Nhấp vào liên kết trên trang kết quả để có phân tích thị trường chi tiết từ Google Finance.


21. Xem tỷ số và lịch thi đấu thể thao

Xem điểm số và lịch thi đấu của các đội NBA, NFL, NHL và MLB yêu thích của bạn chỉ bằng cách nhập tên đội hoặc giải đấu vào hộp tìm kiếm.

22. Tìm kiếm bằng Goggles

Bạn muốn tìm kiếm trên web bằng máy ảnh trên điện thoại di động của bạn thay vì bằng các từ? Trên Android, hãy mở ứng dụng Google Goggles của bạn (trên iPhone, hãy mở ứng dụng Tìm kiếm của Google và chọn Goggles), chụp nhanh hình ảnh của mục bạn muốn tìm kiếm và đợi kết quả. Không cần phải nhập.

23. Xem định nghĩa

Đặt define: trước bất kỳ từ nào để nhận định nghĩa của từ đó.

24. Tìm kiếm bằng tìm kiếm hình ảnh nâng cao

Sử dụng Tìm kiếm hình ảnh nâng cao để tìm kiếm kích thước, màu hoặc loại ảnh hoặc bản vẽ chính xác. Với các công cụ trong bảng điều khiển bên trái, bạn có thể lọc tìm kiếm của mình để chỉ bao gồm các ảnh có khuôn mặt, hình mẫu, hình ảnh có độ phân giải cao hoặc chỉ các hình ảnh sẵn có cho việc sử dụng mang tính thương mại.

25. Tính toán

Nhập bất kỳ phương trình toán học nào vào hộp tìm kiếm và chúng tôi sẽ tính đáp án.

26. Định vị hoạt động động đất

Nhập earthquake vào hộp tìm kiếm và kết quả sẽ hiển thị thông tin Nghiên cứu địa chất của Hoa Kỳ hiển thị thời gian, địa điểm và cường độ của các trận động đất gần đây.

27. Tìm kiếm theo vị trí

Thêm mã zip vào cuối bất kỳ tìm kiếm địa điểm nào như sườn barbecue và nhận kết quả hiển thị các cửa hàng bán sườn gần nhất, cùng với số điện thoại, bản đồ và thậm chí là các bài đánh giá. Nếu bạn không bao gồm mã zip, chúng tôi có thể đề xuất các địa điểm gần bạn.

28. Tìm kiếm vị trí theo mã zip và mã vùng

Bạn muốn biết mã zip hoặc mã vùng đã cho của một nơi nào đó? Chỉ cần nhập mã zip hoặc mã vùng đó vào hộp tìm kiếm.

29. Mua sắm và so sánh

Sử dụng liên kết "Mua sắm" trên bảng điều khiển bên trái trên trang kết quả để mua sắm các sản phẩm và so sánh giá trên web.

30. Xem thời gian bình minh/hoàng hôn

Để xem thời gian chính xác lúc bình minh và hoàng hôn tại các thành phố tại Hoa Kỳ và trên thế giới, hãy tìm kiếm sunrise hoặc sunset theo sau là tên thành phố.

31. Khám phá doanh nghiệp địa phương

Để tìm cửa hàng, nhà hàng hoặc doanh nghiệp khác trong vùng lân cận đã cho, hãy nhập loại doanh nghiệp và vị trí và chúng tôi sẽ cung cấp danh sách các địa điểm gần đó, cùng với bản đồ, các bài đánh giá và thông tin liên hệ. Nếu bạn không bao gồm vị trí trong tìm kiếm của mình, chúng tôi sẽ chỉ tìm các vị trí gần bạn.

32. Xem thời gian chiếu phim

Tìm kiếm tên bộ phim hoặc chỉ phim để xem các vị trí của rạp chiếu phim và thời gian chiếu trong khu vực của bạn.

33. Đọc sách trên miền công cộng

Đọc miễn phí toàn bộ văn bản của tác phẩm trong miền công cộng như Moby Dick bằng cách chọn "sách" trong bảng điều khiển bên trái của kết quả tìm kiếm của bạn.

34. Tập trung vào phạm vi cụ thể

Để chỉ định một phạm vi số cụ thể, nhập .. rồi đến một dấu cách rồi các số trong phạm vi của bạn. Ví dụ: nếu bạn đang tìm kiếm xe hơi hơn 300 mã lực, hãy tìm kiếm xe hơi "300.. mã lực". Dưới đây là một số ví dụ khác: "220.. V" hoặc "1.. RPM" hoặc pin "8000.. mAh"

35. Xem lịch bay

Để xem lịch bay đến hoặc đi từ một điểm đích cụ thể, hãy nhập chuyến bay từ hoặc chuyến bay đến theo sau là tên thành phố hoặc sân bay yêu thích. Bạn cũng có thể thêm một vị trí khác đến hoặc từ và xem lịch cho tuyến đường cụ thể. *Dữ liệu lịch bay được cung cấp bởi OAG và QuickTrip của Innovata.


36. Nghiên cứu tình trạng sức khỏe

Để xem thông tin về một căn bệnh hoặc triệu chứng cụ thể, hãy nhập tên căn bệnh và triệu chứng đó vào hộp tìm kiếm và chúng tôi sẽ trả lại phần bắt đầu bản tóm tắt của một chuyên gia. Bạn có thể nhấp vào để đọc toàn bộ bài viết.

37. Xem giờ bay

Xem thông tin điểm đến và điểm xuất phát trực tiếp cho các chuyến bay tại Hoa Kỳ chỉ bằng cách tìm kiếm tên của hãng hàng không và số chuyến bay.

38. Xem tin thế giới

Tìm kiếm chủ đề bất kỳ rồi nhấp vào tab "Tin tức" trong bảng điều khiển bên trái để nhận các kết quả tin tức từ các nguồn tin trên thế giới.

39. Tìm kiếm địa chỉ

Để tìm bất kỳ vị trí nào trên bản đồ, hãy nhập vào tên thành phố hoặc mã zip sau từ [map] và bạn sẽ thấy bản đồ về vị trí đó. Nhấp vào bản đồ để xem vị trí đó trên Google Maps.

40. Các cụm từ tương tự

Nhận kết quả bao gồm từ đồng nghĩa bằng cách đặt ký hiệu ~ ngay phía trước cụm từ tìm kiếm của bạn. Ví dụ: tìm kiếm Giáng sinh ~công thức chế biến món tráng miệng sẽ trả lại các kết quả cho các món tráng miệng, cùng với kẹo, bánh quy và các món ăn khác.

41. Tìm kiếm bằng giọng nói

Để tìm kiếm trên web bằng giọng nói, bấm vào nút micrô trên hộp tìm kiếm của Google trên màn hình chính hoặc bấm và giữ nút tìm kiếm vật lý trên điện thoại của bạn một vài giây để kích hoạt màn hình "Nói ngay bây giờ". Tìm kiếm bằng giọng nói dành cho Android hỗ trợ các tác vụ thoại trên Android 2.2 (Froyo) trở lên.

42. Khám phá dữ liệu công khai

Tìm kiếm các cụm từ nhân khẩu học như population hoặc unemployment rate, theo sau là hạt, bang hoặc quốc gia và bạn sẽ nhận được dữ liệu tức thì về vị trí đã chọn trực tiếp từ Cục điều tra dân số Hoa Kỳ và Cục thống kê lao động Hoa Kỳ. Từ đây, bạn có thể nhấp để so sánh các tỷ lệ tại các vị trí khác nhau.

43. Xem thông tin tài chính tương tác

Để nhận kết quả tài chính tương tác, hãy truy cập google.com trên iPhone hoặc thiết bị hỗ trợ Android (2.1 trở lên) và tìm kiếm mã cổ phiếu yêu thích của bạn. Bạn sẽ thấy biểu đồ tương tác được hiển thị trên thẻ; bạn có thể chuyển đổi các chế độ xem theo các phạm vi ngày khác nhau bằng cách bấm vào các nút bên dưới biểu đồ.

44. Tìm thông tin về dược phẩm

Tìm kiếm tên của thuốc theo toa chung hoặc tên nhãn hiệu và chúng tôi sẽ hiển thị bản tóm lược và mô tả của thuốc đó. Bạn cũng có thể nhấp qua để biết thêm thông tin về các phản ứng phụ, liều lượng và phòng ngừa từ Viện sức khỏe quốc gia.

45. Ngay tức thì trên thiết bị di động

Google Instant trên điện thoại di động giúp tìm kiếm nhanh hơn bằng cách hiển thị không chỉ các đề xuất mà còn là các kết quả tìm kiếm thực tế khi bạn nhập. Phiên bản beta sẵn cho cho hầu hết các thiết bị iPhone và Android tại Hoa Kỳ. Để thử sử dụng, hãy đi đến google.com trong trình duyệt của điện thoại của bạn và bấm liên kết "Bật" Google Instant bên dưới hộp tìm kiếm (nếu bạn không thấy liên kết "Bật", hãy thử đợi một lúc rồi sau đó làm mới trang).

Google Xem trước tức thì sẵn có trên điện thoại di động dành cho các điện thoại Android (2.2+) và iOS (4.0+) ở 38 ngôn ngữ. Giống như phiên bản dành cho máy tính để bàn của Xem trước tức thì, bạn có thể so sánh trực quan các kết quả tìm kiếm từ các ảnh chụp màn hình trang web, giúp dễ dàng hơn khi chọn đúng kết quả một cách nhanh hơn.

46. Tìm kiếm theo vị trí

Nếu bạn muốn tìm kiếm sushi gần đó, hãy truy cập Google.com trên điện thoại thông minh của bạn và nhập "sushi". Nếu bạn đã chọn chia sẻ vị trí của mình với Google, bạn sẽ nhận được các kết quả doanh nghiệp gần vị trí hiện tại của bạn. Nếu bạn muốn tìm kiếm nơi nào khác, hãy chỉ định vị trí trong truy vấn, như pizza Kansas City.

[Google App Engine] Giới thiệu Google App Engine và hướng dẫn cài đặt [Công nghệ điện toán đám mây]

I. GIỚI THIỆU GOOGLE APP ENGINE

1. KHÁI NIỆM VÀ SỰ RA ĐỜI

   Trước khi đi vào phần giới thiệu về Google App Engine, chúng ta cần làm rõ khái niệm điện toán đám mây. Điện toán đám mây (Cloud Computing, hay còn biết đến với tên gọi “Điện toán máy chủ ảo”) là môi trường tính toán dựa trên Internet mà ở đó tất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bị khác theo nhu cầu.

Thuật ngữ “đám mây” ở đây là lối nói ẩn dụ chỉ mạng Internet và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó.
Nói một cách đơn giản nhất, ứng dụng điện toán đám mây chính là những ứng dụng trực tuyến trên Internet. Trình duyệt là nơi ứng dụng hiện hữu và vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp ứng dụng đó.

Một số nền tảng điện toán đám mây hiện nay: Google App Engine, Windows Azure, Amazone Webservice, Sun Cloud, Facebook, …

Google App Engine (App Engine hay GAE) là một nền tảng điện toán đám mây của Google để phát triển và lưu trữ ứng dụng web trong những trung tâm dữ liệu do Google quản lý (google-managed data centers). Bản beta được giới thiệu lần đầu tiên vào ngày 7 tháng 4 năm 2008.

GAE là 1 dịch vụ lưu trữ các ứng dụng web. Khi nói đến “ứng dụng web”, chúng ta muốn nói tới các ứng dụng hay dịch vụ được truy cập trên các trang web, thường là thông qua trình duyệt web: những trang web mua bán, mạng xã hội, … App Engine cũng có thể phục vụ các trang web truyền thống như xử lý văn bản hay hình ảnh nhưng được thiết kế dành cho thời gian thực.

Thực ra, GAE được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều người dùng một cách đồng thời. Khi một ứng dụng có thể phục vụ nhiều người dùng một cách đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn (scales). Những ứng dụng được viết cho App Engine sẽ được co giãn một cách tự động. Càng nhiều người sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài nguyên cho ứng dụng đó và quản lý chúng. Chính bản thân ứng dụng cũng không cần phải biết đến các tài nguyên mà nó đang sử dụng.

Không như những server cung cấp các dịch vụ lưu trữ thông thường hay các server có chức năng tự quản lý, với Google App Engine, chúng ta chỉ phải trả tiền cho những tài nguyên mà chúng ta sử dụng. Những tài nguyên này được đo bằng gigabyte và không có bất kì lệ phí hàng tháng nào hay lệ phí để chúng ta thay đổi diện mạo trang web. Hóa đơn thanh toán những nguồn tài nguyên này bao gồm CPU chúng ta sử dụng, lưu trữ hàng tháng, băng thông vào ra (incoming and outgoing bandwidth), và một số các tài nguyên khác của dịch vụ App Engine.

Để giúp chúng ta có thể làm quen với GAE, mỗi lập trình viên sẽ có khoảng 500 MB lưu trữ, một lượng tài nguyên miễn phí đủ để chạy những ứng dụng nhỏ với băng thông thấp. Google dự toán rằng với nguồn tài nguyên miễn phí, một ứng dụng có thể đạt tới 5 triệu lượt truy cập trong một tháng.

2. KIẾN TRÚC HOẠT ĐỘNG

Kiến trúc của App Engine khác với những Server lưu trữ ứng dụng Web thông thường. Ở phần lõi của nó, App Engine sẽ hạn chế những truy cập từ ứng dụng của chúng ta đến cơ sở hạ tầng vật lý, ngăn cản chúng ta từ việc mở các Socket, chạy các tiến trình ngầm, hay các cách đi khác bằng cổng sau để giúp chương trình của ta có quyền trên môi trường này. App Engine được thiết kế để giải quyết mối quan tâm của chúng ta về sự mở rộng và độ tin cậy. Nó được xây dựng dựa trên khái niệm có thể mở rộng theo chiều ngang, nghĩa là thay vì ứng dụng của chúng ta sẽ được chạy trên một phần cứng mạnh mẽ, thì nó có thể chạy trên nhiều phần cứng yếu hơn.


Chúng ta có thể thấy ứng dụng App Engine đang chạy như một thực thể cô lập trong môi trường gồm nhiều thành phần (multitenant environment). App Engine chia sẻ những nguồn tài nguyên giữa các ứng dụng nhưng cô lập về dữ liệu và bảo mật giữa những thành phần với nhau. Ứng dụng của chúng ta có thể sử dụng một số các dịch vụ của Google, như là URLFetch. Bởi vì chúng ta không thể mở cổng (port) một cách trực tiếp trong ứng dụng của mình, nên chúng ta phải lệ thuộc vào dịch vụ này, ví dụ: yêu cầu Google mở cổng và thực thi ứng dụng của mình.

Xem xét kỹ hơn một chút, giả sử App Engine là một tòa nhà có gắn hệ thống điều hòa không khí và nhiệt độ. Chúng ta là một phần trong căn nhà đó (chính xác hơn là ứng dụng của chúng ta). Chúng ta không thể điều chỉnh nhiệt độ một cách trực tiếp bởi nó sẽ ảnh hưởng đến những phần khác trong tòa nhà (các ứng dụng khác). Vì vậy, chúng ta phải gửi một yêu cầu đến người chủ của căn nhà này để nhờ họ thay đổi nhiệt độ cho chúng ta. Chính xác đó là các dịch vụ của GAE như URLFetch, Bigtable query, Memcache, mail, XMPP, và các dịch vụ khác. Đó chính là bản chất những gì đang xảy ra trong App Engine.

Như vậy, trong GAE, tùy vào ứng dụng viết theo ngôn ngữ nào, nó sẽ được chạy trên môi trường Java hay Python tương ứng. Song song đó, chúng ta sẽ được cung cấp sử dụng miễn phí các dịch vụ của google như URL Fetch, Mail, Memcache, … và được lưu trữ trên cơ sở dữ liệu hướng đối tượng datastore. Khi yêu cầu được gửi lên từ phía người dùng, GAE sẽ chuyển yêu cầu đó cho ứng dụng của chúng ta. Tùy theo việc xử lý chúng mà ta cấu hình và sử dụng các ứng dụng thích hợp của GAE.

3. CÁC THÀNH PHẦN CHÍNH VÀ CHỨC NĂNG

3.1. Môi trường thực thi (runtime environment)

Một ứng dụng App Engine đáp ứng các yêu cầu web. Một yêu cầu web sẽ bắt đầu khi có một người dùng hay điển hình là các trình duyệt web của người dùng gửi một yêu cầu truy cập vào ứng dụng thông qua giao thức HTTP. Khi App Engine nhận được yêu cầu, nó sẽ xác định ứng dụng dựa vào tên miền, hoặc tên miền con của <tên bạn>.appspot.com (cung cấp miễn phí mỗi ứng dụng) hoặc là một tên miền riêng của chúng ta đã được đăng kí và thiết lập với Google Apps. App Engine lựa chọn một máy chủ từ nhiều máy chủ để xử lý các yêu cầu đó. Sau đó, App Engine sẽ gửi các yêu cầu đã nhận được từ người dùng đến ứng dụng phù hợp để xử lý, sau khi đã xử lý xong các ứng dụng này sẽ gửi dữ liệu trả về cho App Engine, App Engine sẽ nhận dữ liệu phản hồi từ các ứng dụng và trả về cho người dùng thông qua trình duyệt Web.



Google App Engine cung cấp hai môi trường thực thi tốt cho các ứng dụng. Đó là Java và Python. Môi trường chúng ta chọn sẽ phụ thuộc vào ngôn ngữ và những công nghệ liên quan khi chúng ta dùng để phát triển ứng dụng.

Môi trường Java thực thi các ứng dụng được viết cho JVM6. Ứng dụng có thể được phát triển dựa vào ngôn ngữ lập trình Java hoặc hầu hết các ngôn ngữ có thể biên dịch và chạy trên JVM: ví dụ PHP (dùng Quercus), Ruby (dùng JRuby), Javascript (dùng Rhino), Scala, Groovy. App Engine cũng hỗ trợ Google Web Tootkit (GWT).

Môi trường Python thực thi các ứng dụng được viết dựa vào ngôn ngữ lập trình Python bản 2.5. App Engine gọi các ứng dụng Python nhờ vào CGI (Common Gateway Interface). Ứng dụng có thể dùng hầu hết các thư viện của Python, các framework của Python như Django, web2py, Pylons.

Cả hai môi trường Java và Python đều sử dụng chung một mô hình: một yêu cầu gửi đến ứng dụng trên server, ứng dụng được kích hoạt (nếu cần thiết), gọi bộ phận xử lý yêu cầu và trả về kết quả cho client. Mỗi môi trường sử dụng bộ tiền xử lý (interpreter) cho riêng mình (JVM hay Python).

3.2. Các file server tĩnh (static file servers)

Hầu hết các website có một số tài nguyên mà chúng chuyển đến các trình duyệt không thay đổi trong suốt hoạt động của site. Ví dụ như các hình ảnh và các file Css hỗ trợ hiển thị của site, các đoạn mã Javascript chạy trên trình duyện, và các file HTML tĩnh. Vì việc gửi những file này không cần đến việc gọi code của ứng dụng, nói cách khác, việc này không cần thiết, làm giảm hiện quả làm việc của các server ứng dụng.

Thay vì thế, App Engine cung cấp một tập các server tách biệt chuyên làm nhiệm vụ trao đổi các file tĩnh này. Những server nói trên tối ưu hóa cho kiến trúc bên trong và hạ tầng mạng để xử lý các requests cho các tài nguyên tĩnh. Đối với client, các file tĩnh này cũng giống như các tài nguyên khác được cung cấp bởi ứng dụng của chúng ta.

Chúng ta upload các file tĩnh cùng với code ứng dụng. Chúng ta có thể cấu hình vài cách hiển thị nhất định cho các file này, bao gồm các URL cho file tĩnh, loại nội dung, và các hướng dẫn cho trình duyệt để lưu các bản sao file này trong bộ nhớ cache để giảm lưu lượng và tăng tốc cho trang Web.

3.3. Kho dữ liệu (datastore)

Hầu hết mọi ứng dụng web đều cần một nơi để chứa thông tin khi xử lý yêu cầu từ phía client và lấy thông tin cho những lần yêu cầu sau này. Việc sử dụng một server làm một trung tâm dữ liệu là một ý tưởng rất hay nhưng có vấn đề xảy ra khi quá nhiều kết nối được gửi tới server này.

Hệ thống database của Google App Engine gần giống như một đối tượng database. Thiết kế của App Engine datastore chỉ là trừu tượng để cho App Engine có thể xử lý việc phân tán và co giãn các ứng dụng. Chính vì thế trong các đoạn mã của chúng ta sẽ quan tâm đến những thứ khác được nêu sau đây.

3.3.1 Thực thể (entities) và Thuộc tính (properties)

Một ứng dụng App Engine có thể chứa dữ liệu trong một hay nhiều thực thể datastore. Mỗi thực thể có một hay nhiều thuộc tính, mỗi thuộc tính đều có tên và giá trị. Mỗi thực thể đều được phân loại để tiện cho việc truy vấn.

Ở cái nhìn đầu tiên, chúng ta thấy thực thể có thể gần giống các hàng (row) trong một bảng trong cơ sở dữ liệu quan hệ. Và mỗi thuộc tính có thể giống với một cột. Tuy nhiên đối với các thực thể cùng loại với nhau có thể có các thuộc tính khác nhau. Thứ 2, các thực thể có thể có cùng thuộc tính với các thực thể cùng loại khác nhưng khác về kiểu dữ liệu. Một điểm khác nhau nữa giữa thực thể và các hàng (row) là các thực thể có thể có nhiều giá trị cho một thuộc tính đơn lẻ.

Mỗi thực thể có một khóa riêng (key) phân biệt lẫn nhau được cung cấp bởi ứng dụng hoặc do App Engine. Khác với CSDL quan hệ, khoá của thực thể không phải là thuộc tính, nó tồn tại độc lập với thực thể. Khoá của thực thể không được thay đổi khi thực thể đã được tạo ra.

3.3.2 Truy vấn (queries) và Chỉ mục (indexes)

Một câu truy vấn trên datastore trả về không hoặc nhiều thực thể cùng loại với nhau. Nó cũng có thể trả về các khóa của thực thể. Câu truy vấn có thể dựa vào các giá trị thuộc tính của thực thể và được sắp xếp theo giá trị của thuộc tính. Câu truy vấn cũng có thể làm việc với các khóa của thực thể.

Với App Engine, mỗi câu truy vấn sẽ có một chỉ mục trong datastore. Khi ứng dụng cần thực hiên một câu truy vấn, thì datastore sẽ tìm chỉ mục của câu truy vấn đó. Khi chúng ta tạo mới một thực thể và cập nhật cái cũ thì datastore cũng sẽ cập nhật lại chỉ mục. Điều này giúp cho câu truy vấn được nhanh hơn.

3.3.3 Phiên giao dịch (transaction)

Khi một ứng dụng có quá nhiều client liên tục đọc hay ghi cùng một dữ liệu ở cùng một thời điểm, thì phiên giao dịch rất cần thiết để dữ liệu không bị đọc sai. Mỗi phiên giao dịch là đơn vị nhỏ nhất và chỉ có hai trạng thái là thành công hoặc thất bại.

Một ứng dụng đọc hay cập nhật nhiều thực thể trong một phiên giao dịch, nhưng nó phải nói cho App Engine biết những thực thể nào sẽ được cập nhật khi nó tạo ra nhiều thực thể. Ứng dụng làm được điều này bởi việc tạo ra nhóm thực thể. Nhờ nhóm thực thể, App Engine sẽ biết được các thực thể sẽ phân tán như thế nào qua các server, vì thế nó có thể khẳng định chắc chắn là phiên giao dịch thành công hay thất bại. App Engine cũng hỗ trợ những phiên giao dịch nội bộ (local transaction).

Nếu một người dùng cố gắng cập nhật một thực thể trong khi người khác đang cập nhật thực thể đó thì datastore sẽ ngay lập tức trả về một biệt lệ báo lỗi. Trong thuật ngữ database, thì ta nói App Engine sử dụng “optimistic concurrency control”. Với chỉ mục và “optimistic concurrency control”, App Engine được thiết kế giúp cho ứng dụng có thể đọc dữ liệu nhanh hơn và đảm bảo hơn.

3.4 Các dịch vụ (services)

Dịch vụ chính là mối quan hệ giữa datastore với môi trường thực thi. GAE bao gồm một số các dịch vụ hữu ích cho các ứng dụng web.

Dịch vụ memcache là dịch vụ lưu trữ theo khóa - giá trị. Thuận lợi chính của dịch vụ này trên datastore là tốc độ nhanh, rất nhanh so với việc lưu trữ và lấy dữ liệu một cách bình thường trên datastore. Memcache lưu trữ dữ liệu trên bộ nhớ thay vì trên ổ đĩa để tăng tốc độ truy cập. Nó cũng phân tán như datastore tuy nhiên không lưu trữ, vì thế nếu mất điện thì dữ liệu trên memcache cũng mất. Và nó cũng có nhiều giới hạn sử dụng hơn datastore. Việc sử dụng memcache tốt nhất là lưu lại các kết quả của các câu query hay các tính toán trước đó. Ứng dụng sẽ kiểm tra trong memcache, nếu không có dữ liệu thì sẽ tiến hành query trên datastore.

Ứng dụng App Engine có thể truy cập các tài nguyên web khác nhờ vào dịch vụ URL Fetch. Dịch vụ này tạo ra các yêu cầu theo dạng HTTP gửi đến các server khác trên Internet như là việc tương tác với các web service khác. Vì khi ta truy cập đến server khác thời gian sẽ lâu nên URL Fetch hỗ trợ chạy ngầm bên dưới trong khi xử lý các yêu cầu khác.

Ứng dụng App Engine có thể gửi mail dựa vào dịch vụ Mail, hoặc nếu được cấu hình, nó có thể nhận được email.

Ứng dụng App Engine có thể gửi và nhận những tin nhắn đến các dịch vụ chat có sử dụng giao thức XMPP bao gồm Google Talk.

3.5 Tài khoản Google (google accounts)

Các chức năng của App Engine tích hợp trong các tài khoản của Google như Google Mail, Google Docs và Google Calendar. Chúng ta có thể sử dụng tài khoản trên Google như cho các ứng dụng của chúng ta, do đó không cần thiết lập thêm. Và nếu các người dùng của chúng ta đã có tài khoản trên Google, họ có thể đăng nhập vào ứng dụng của chúng ta với các tài khoản đó, mà không cần tạo tài khoản riêng trong ứng dụng. Tất nhiên, điều đó không bắt buộc. Chúng ta luôn có thể xây dựng hệ thống tài khoản riêng của mình, hoặc sử dụng một provider OpenID.

3.6 Các công cụ lập trình (programming tools)

Google cung cấp một số tool miễn phí cho việc phá triển ứng dụng App Engine bằng ngôn ngữ Java và Python. Chúng ta có thể download software development kit (SDK) cho ngôn ngữ tương ứng và hệ điều hành của chúng ta từ website Google. Người dùng Java có thể down SDK cho Java trong form plug-in cho Eclipse. Người dùng Python sử dụng Windows hoặc Mac OS X có thể tải SDK cho Python từ form của giao diện ứng dụng. Các SDK đó đều có file zip, sử dụng command-lines để trực tiếp tích hợp vào môi trường phát triển hoặc xây dựng hệ thống.

Mỗi SDK bao gồm một server web chạy ứng dụng của chúng ta tại máy cá nhân, đóng vai trò môi trường thực thi,kho dữ liệu và các service. Server này tự động phát hiện những thay đổi trong file source và load lại chúng nếu cần, vì thế chúng ta có thể luôn mở server trong khi đang lập trình cho ứng dụng.

Nếu chúng ta sử dụng Eclipse, chúng ta có thể chạy server cho Java trong bộ tích hợp debugger, và có thể đặt các breakpoint trong code. Chúng ta cũng có thể sử dụng Eclipse cho ứng dụng phát triển Python dùng PyDev, một nhánh mở rộng của Eclipse, bao gồm bộ debugger cho Python.

Mỗi SDK cũng bao gồm một công cụ cho việc tương tác với các ứng dụng chạy trên App Engine. Chủ yếu là sử dụng cho việc upload code lên App Engine. Chúng ta cũng có thể sử dụng tool để download các file log từ ứng dụng đang chạy, hoặc quản lý danh mục ứng dụng.

SDK Python và Java gồm một chức năng mà chúng ta có thể cài đặt trong ứng dụng cho việc truy cập có thứ tự từ xa một cách an toàn đến ứng dụng. SDK Python bao gồm các công cụ dùng cho việc xử lý dữ liệu lớn, như upload dữ liệu từ file text, và tải lượng lớn dữ liệu, hoặc sao lưu cho mục đích lưu trữ. SDK cũng có command-line shell của Python cho việc test, kiểm lỗi và thao tác với dữ liệu. (Các tool này có trong SDK cho Python, nhưng cũng làm việc với các ứng dụng Java sử dụng phiên bản Java có chức năng truy cập từ xa). Chúng ta có thể viết đoạn mã script và chương trình sử dụng chức năng truy cập từ xa cho việc vận chuyển lượng lớn dữ liệu và các biện pháp bảo trì khác.

4. HẠN CHẾ CỦA GOOGLE APP ENGINE

• App Engine hỗ trợ HTTPS đối với domain con của .appspot.com những vẫn chưa hỗ trợ đối với các domain khác.

• Hiện Google App Engine hỗ trợ 2 loại ngôn ngữ là: Python, Java

(Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển từ PHP sang Java).

• Phụ thuộc hoàn toàn vào các dịch vụ của Google.

• Microsoft, … sẽ chẳng bao giờ mua sản phẩm được xây dựng trên nền tảng của đối thủ.

• Các nhà đầu tư e ngại vì toàn bộ dữ liệu của mình đều nằm trong tay nhà cung cấp dịch vụ, dù cho đó là Google.

5. SỬ DỤNG GOOGLE APP ENGINE

Bước 1. Download, cài đặt JDK + NetBean hoặc Eclipse
+ NetBean: https://netbeans.org/downloads/
or Eclipse: Cài đặt eclipse Download Link: https://eclipse.org/downloads.
(bạn lưu ý chọn phiên bản phù hợp với máy tính và hệ điều hành của mình)

Bước 2. Đăng ký tài khoản Google App Engine: https://appengine.google.com.

Bước 3. Cài đặt SVN Subclipse để dùng Google Project Hosting làm nơi tập trung chứa Source Code của nhóm. 
B3.1. Download file nén: http://subclipse.tigris.org/files/documents/906/49339/site-1.10.3.zip

B3.2. Giải nén file vừa download về, cho tất cả vào thư mục [plugins] trong thư mục đã cài đặt NetBeab/Eclipse.

B3.3. Khởi động lại NetBean / Eclipse. 
Vào menu (Eclipse): Windows -> Show View -> Others , gõ SVN vào hiện ra bảng sau, chọn SVN Repositories:

Ấn OK thì sẽ thấy bảng sau, ở phần dưới của cửa sổ eclipse 
 

Click chuột phải vào khoảng trắng, chọn New -> Repositories Location
Paste địa chỉ này vào: https://svn.codespot.com/a/eclipselabs.org/cloudcomputing/trunk/

B3.4. Chọn Ok. Eclipse sẽ yêu cầu nhập username và password.
Cách lấy Username và Password, cho mọi người vào https://code.google.com/a/eclipselabs.org/p/cloudcomputing/source/checkout sẽ thấy thông tin như sau:
# Project members authenticate over HTTPS to allow committing changes. svn checkout https://svn.codespot.com/a/eclipselabs.org/cloudcomputing/trunk/ cloudcomputing --username tranlamson When prompted, enter your generated googlecode.com password. 


Như vậy sẽ thấy username của mình, ở đây là tranlamson, ấn vào link googlcode.com password sẽ thấy password của mình. Dùng username và password này để nhập vào khi eclipse yêu cầu nhập.

Nếu thành công thì sẽ thấy folder UploadImage như hình dưới, vừa upload folder này lên để demo 
 

Như vậy là Setup môi trường thành công. Sẽ có một tutorial giới thiệu cách sử dụng svn.

Bước 4. Tải tài liệu hướng dẫn sử dụng: Để sử dụng Google App Engine (GAE) thì tham khảo 2 nguồn chính sau: 
- http://code.google.com/appengine/docs/ (tham khảo phần java) 
- Ebook upload trên project hosting https://code.google.com/a/eclipselabs.org/p/cloudcomputing.

Categories

AI (23) AI programming (1) ASP (1) Android (32) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (111) Bản đồ tư duy (1) C Plus Plus (102) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (3) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (133) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (10) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MS Access (1) Machine learning (6) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (5) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (50) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (2) Toán rời rạc (12) Trí tuệ nhân tạo (24) Tài liệu tham khảo (3) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (7) hợp ngữ (8) lập trình viên (5) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (2) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)