1. Trang chủ
  2. » Công Nghệ Thông Tin

Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên! pot

39 249 1

Đ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

Nội dung

Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên! Xây dựng các ứng dụng sát thủ dựa trên Java, mở rộng được với Máy ứng dụng cho Java Rick Hightower , Giám đốc, eBlox Tóm tắt: Bạn có nhớ khi mà Máy ứng dụng của Google (Google App Engine) chỉ dành cho những người lập trình Python (Pythonistas) không? Những ngày đen tối. Google Inc đã mở nền tảng điện toán đám mây của mình cho các nhà phát triển Java™ trong tháng 4 năm 2009. Trong loạt bài viết ba phần này, Rick Hightower, một huấn luyện viên và tác giả viết về công nghệ Java giúp bạn bắt đầu với nền tảng tin cậy, vững chãi và đầy vui thú này để phát triển ứng dụng dựa trên Java. Trong bài này, bạn sẽ có được một tổng quan về lý do tại sao Máy ứng dụng của Google cho Java có thể là nền tảng để tiếp tục phát triển những ứng dụng sát thủ (N.D: “killer app” tiếng lóng của các lập trình viên, để chỉ một ứng dụng được viết tài tình, đặc biệt hữu ích, hàm ý nó giống như các sát thủ đối với người chơi những trò chơi điện tử), có khả năng mở rộng cao của bạn, sau đó bắt đầu sử dụng các trình cắm thêm (Plugin) của Google cho Eclipse để xây dựng hai ứng dụng ví dụ: một dựa trên bộ công cụ Web của Google (Google Web Toolkit - GWT) và một dựa trên API Servlet của Java. Bạn sẽ tự mình tìm hiểu Máy ứng dụng của Google cho Java làm nên sự khác biệt như thế nào, cả trong việc xây dựng một ứng dụng từ đầu lẫn trong việc triển khai nó dành cho số người truy cập lên đến năm triệu. (Và đó mới chỉ là phiên bản miễn phí.) Một ý tưởng cũng giống như chỗ ngứa: bạn cần phải gãi nó và khi đó cảm thấy thỏa mãn hơn. Với vai trò là những nhà phát triển phần mềm, chúng ta dành nhiều thời gian nghĩ ra những ý tưởng cho các loại ứng dụng khác nhau. Thật là vui, phải vậy không? Nhưng cái khó là tìm ra cách để làm cho một sản phẩm phần mềm đơm hoa kết trái. Thật là hài lòng khi tưởng tượng ra một cái gì đó và sau đó tạo ra nó. Còn trái lại (một chỗ ngứa không được gãi) thì đúng là khó chịu thật. Một lý do làm cho nhiều ứng dụng không bao giờ phát triển được là cần có một cơ sở hạ tầng. Một cơ sở hạ tầng được duy trì tốt thường liên quan đến một đội các nhà quản trị hệ thống, các nhà quản trị cơ sở dữ liệu (DBA) và các kỹ sư mạng, mà cho đến gần đây, vẫn là một hoạt động kinh doanh chủ yếu dành cho người giàu. Thậm chí trả tiền cho một bên thứ ba để cho lưu trú các ứng dụng của bạn cũng không đơn giản: điều gì sẽ xảy ra nếu bỗng nhiên ứng dụng nổi tiếng tăng vọt và có rất nhiều lượt truy cập? Cái gọi là hiệu ứng Slashdot (sự kiện số người truy cập đến trang Web bất thình lình tăng vọt) có thể vứt một ý tưởng tốt vào hố rác, đơn giản vì thật khó dự đoán những đột biến tải. Tuy nhiên, như chúng ta đều biết, điều đó đang thay đổi. Những tiền đề cho các dịch vụ Web đã phát triển lên và ngày nay nó mang lại cho chúng ta những phương tiện, thông qua điện toán đám mây và người anh em tráng kiện hơn của nó, đó là nền tảng-như là-một dịch vụ (PAAS - platform-as-a-service), để xây dựng, triển khai và phân phối các ứng dụng dễ dàng hơn. Bây giờ, khi bạn viết Twitter (dịch vụ mạng xã hội miễn phí) tiếp theo và triển khai nó trên một nền tảng đám mây, nó sẽ có thể mở rộng, bạn thân mến ạ, mở rộng mãi. Trong bài viết ba phần này, bạn sẽ học qua thực hành tại sao điện toán đám mây/PAAS là một bước nhảy tiến hóa quan trọng như vậy cho sự phát triển phần mềm, và đồng thời cũng bắt đầu với một nền tảng mới thú vị để phát triển Java: Máy ứng dụng của Google cho Java, hiện đang sẵn có dưới dạng phiên bản xem trước. Tôi sẽ bắt đầu với một tổng quan về Máy ứng dụng (App Engine) cho Java, bao gồm các kiểu dịch vụ ứng dụng mà nó cung cấp. Sau đó bạn sẽ đi thẳng vào một ví dụ ứng dụng — ví dụ đầu tiên trong hai ví dụ — bằng cách sử dụng trình cắm thêm của Google cho Eclipse làm Máy ứng dụng cho Java. Ví dụ ứng dụng đầu tiên sẽ sử dụng sự hỗ trợ của Máy ứng dụng cho Java đối với giao diện lập trình ứng dụng (API) dành cho Servlet Java và ví dụ ứng dụng thứ hai sẽ sử dụng sự hỗ trợ của nó đối với bộ công cụ Web của Google (GWT). Trong Phần 2, bạn sẽ tạo ra một ứng dụng quản lý liên lạc nhỏ bằng cách sử dụng sự hỗ trợ của Máy ứng dụng cho Java đối với các servlet và GWT, tương ứng. Và trong Phần 3, bạn sẽ sử dụng ứng dụng được xây dựng tuỳ chỉnh của bạn để khám phá sự hỗ trợ lưu giữ lâu bền dựa trên Java của Máy ứng dụng cho Java, sự hỗ trợ này dựa trên các đối tượng dữ liệu Java (Java Data Objects-JDO) và API dành cho lưu giữ lâu bền của Java (Java Persistence API - JPA). Thôi, nói thế là đủ: Hãy rồ máy lên! Về Máy ứng dụng của Google cho Java Google (tôi tin rằng cũng là nhà sản xuất một số dạng máy tìm kiếm) đầu tiên đã phát hành Máy ứng dụng của Google trong tháng 4 năm 2008. Thật thất vọng với nhiều nhà phát triển Java, bản phát hành đầu tiên đã thuần túy là lĩnh vực của các lập trình viên Python — những người cho rằng khoảng trống nên được sử dụng cho các khối! (Tôi đã viết một cuốn sách về Python, vì vậy tôi biết rõ). Google đã đáp lại yêu cầu của đông đảo mọi người bằng cách phát hành Máy ứng dụng của Google cho Java trong tháng 4 năm 2009. Máy ứng dụng của Google cho Java cung cấp một giải pháp xuyên suốt từ đầu đến cuối để phát triển ứng dụng Java doanh nghiệp: một giao diện người dùng đồ họa (GUI) Ajax dựa trên trình duyệt cho dễ sử dụng, hỗ trợ công cụ Eclipse và Máy ứng dụng của Google ở mặt sau. Tính dễ sử dụng và có công cụ đầy đủ cũng là các lợi thế của Máy ứng dụng của Google cho Java so với các giải pháp điện toán đám mây khác. Phát triển ứng dụng trong Máy ứng dụng cho Java có nghĩa là sử dụng nguồn tài nguyên của Google để lưu trữ và lấy ra các đối tượng Java. Lưu trữ dữ liệu dựa trên BigTable, nhưng với các giao diện JDO và JPA cho phép bạn viết mã mà không bị ràng buộc trực tiếp với BigTable. Trong thực tế, Google cung cấp hỗ trợ dựa trên các tiêu chuẩn cho nhiều API để bạn có thể viết mã mà không bị ràng buộc 100% với nền tảng Máy ứng dụng cho Java. Máy ứng dụng cho Java dựa trên các Java API tiêu chuẩn sau đây:  java.net.URL để tìm nạp các dịch vụ (bằng cách giao tiếp với các máy chủ khác, sử dụng giao thức HTTP và HTTPS).  JavaMail để gửi thông điệp thư điện tử.  Một giao diện JCache (JSR 107) cho bộ nhớ truy cập nhanh (Memcache) để cung cấp sự lưu trữ phân tán tạm thời, nhanh chóng để lưu trữ trong bộ nhớ truy cập nhanh (caching) các truy vấn và các tính toán. Triển khai Máy ứng dụng cho Java trên WebSphere/DB2 Khi thông báo khai trương Máy ứng dụng cho Java, các đại diện từ Google và IBM® đã triển khai cùng ứng dụng mẫu như nhau trên DB2®/WebSphere®. IIBM đang làm việc để cung cấp sự hỗ trợ API của Google mức thấp cho Tivoli® LDAP và DB2 sao cho các ứng dụng đã xây dựng với Máy ứng dụng cho Java cũng có thể chạy trên sự xếp chồng nền tảng WebSphere/DB2 của IBM. Ngoài ra, Máy ứng dụng cho Java cung cấp hỗ trợ cho các dịch vụ ứng dụng sau đây:  Xác thực và cấp quyền cho người dùng.  CRON  Nhập/xuất dữ liệu.  Truy cập đến dữ liệu tường lửa. Nhập/xuất dữ liệu là quan trọng cho việc di chuyển dữ liệu từ các nguồn khác vào ứng dụng của Máy ứng dụng cho Java của bạn. Đây là một cách khác mà bạn không bị ràng buộc với Máy ứng dụng cho Java. Hỗ trợ CRON của Google được dựa trên một URL nội bộ, nhận các truy cập theo một lịch trình nhất định, làm nó trở thành một dịch vụ tốt đẹp mà không có nhiều ràng buộc với Máy ứng dụng cho Java. Cơ chế xác thực và cấp quyền cho người dùng là đặc thù riêng cho Máy ứng dụng cho Java, nhưng bạn có thể viết một ServletFilter, một khía cạnh, hoặc trình cắm thêm An ninh Spring để giảm thiểu việc ghép buộc chặt chẽ đó. Tạo ứng dụng đầu tiên của bạn bằng Máy ứng dụng cho Java Nếu bạn đọc đến đây thì bạn đã sẵn sàng để bắt đầu xây dựng ứng dụng đầu tiên của bạn bằng Máy ứng dụng cho Java. Bước đầu tiên của bạn là cài đặt trình cắm thêm Google (Plugin Google) cho Eclipse cho Máy ứng dụng cho Java; khi hoàn thành việc này, bạn có thể tiếp tục. Mở Eclipse IDE của bạn và bạn sẽ thấy ba nút mới trong Eclipse IDE của bạn bên cạnh nút Printer (Máy in): một chữ G trong một quả bóng màu xanh, một G trong một hộp dụng cụ màu đỏ và một hình máy bay phản lực nhỏ của Máy ứng dụng cho Java, như trong Hình 1: Hình 1. Các nút mới sáng lên trong Eclipse IDE của bạn Đây là những gì các nút đó thực hiện:  Quả bóng màu xanh cho phép bạn truy cập vào trình thủ thuật tạo dự án của Máy ứng dụng cho Java.  Hộp dụng cụ màu đỏ cho phép bạn biên dịch một dự án GWT.  Hình máy bay phản lực nhỏ là chìa khóa của bạn để triển khai một dự án Máy ứng dụng. Bạn sẽ sử dụng trình thủ thuật tạo dự án để tạo ra hai dự án mới: một dựa vào các servlet và dự án kia được xây dựng bằng cách sử dụng GWT. Bạn sẽ sử dụng chức năng của hộp công cụ để biên dịch một dự án GWT. Bạn sẽ khởi chạy máy bay phản lực nhỏ khi bạn đã sẵn sàng triển khai dự án Máy ứng dụng, làm cho nó hoạt động. Bây giờ bắt đầu bằng cách tạo ra một dự án của Máy ứng dụng cho Java. Trước tiên, hãy nhấn vào quả bóng màu xanh để truy cập vào trình thủ thuật tạo dự án. Sau đó, tạo một ứng dụng được gọi là SimpleServletApp bằng cách sử dụng gói có tên là gaej.example, như trong Hình 2: Hình 2. Bắt đầu một dự án mới Chú ý rằng người ta đã bỏ đánh dấu chọn hỗ trợ GWT cho ví dụ đơn giản đầu tiên này. Sau khi bạn hoàn thành bước này, trình thủ thuật tạo dự án sẽ tạo một ứng dụng đơn giản dựa trên servlet có một servlet kiểu “Xin chào thế giới”. Hình 3 cho thấy một ảnh chụp màn hình của dự án đó: Hình 3. Dự án SimpleServletApp Hãy chú ý các tệp JAR được tự động bao gồm cho dự án dựa trên servlet mới này:  datanucleus-*.jar: Để truy cập vào kho lưu trữ dữ liệu của Máy ứng dụng cho Java sử dụng JDO tiêu chuẩn hoặc API của BigTable mức thấp.  appengine-api-sdk.1.2.0.jar: Để sử dụng các dịch vụ ứng dụng của Máy ứng dụng cho Java chưa chuẩn như An ninh (Security) cho Máy ứng dụng cho Java.  geronimo-*.jar: Để sử dụng các Java API tiêu chuẩn như API Quản lý giao dịch Java (JTA- Java Transaction Management API) và JPA.  jdo2-api-2.3-SNAPSHOT.jar: Để sử dụng API JDO. Bạn sẽ học cách sử dụng các API về lưu giữ lâu bền từ Máy ứng dụng cho Java và một số dịch vụ ứng dụng của Máy ứng dụng cho Java bắt đầu trong Phần 2 của bài viết này. Cũng cần chú ý đến tệp cấu hình thùng chứa thời gian chạy cho Máy ứng dụng của Google, được gọi là appengine.xml. Trong ví dụ này, appengine.xml đang được sử dụng để đặt cấu hình tệp logging.properties để thực hiện đăng nhập với Máy ứng dụng cho Java. Trước tiên hãy xem xét một ứng dụng servlet của Máy ứng dụng cho Java Một khi bạn đã cấu hình tất cả mọi thứ trong trình thủ thuật tạo dự án, Máy ứng dụng cho Java đưa ra cho bạn khung sườn của một ứng dụng servlet kiểu Xin chào thế giới (Hello World). Hãy xem mã và sau đó xem cách để chạy ứng dụng này như thế nào khi sử dụng các công cụ Eclipse của Máy ứng dụng cho Java. Điểm vào chính của ứng dụng này là SimpleServletAppServlet, như chỉ ra trong Liệt kê 1: Liệt kê 1. SimpleServletAppServlet package gaej.example; import java.io.IOException; import javax.servlet.http.*; @SuppressWarnings("serial") public class SimpleServletAppServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world"); } } Servlet này được ánh xạ với URI /simpleservletapp trong web.xml, như được hiển thị trong Liệt kê 2: Liệt kê 2. web.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> <servlet> <servlet-name>simpleservletapp</servlet-name> <servlet-class>gaej.example.SimpleServletAppServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>simpleservletapp</servlet-name> <url-pattern>/simpleservletapp</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> Trình thủ thuật tạo dự án cũng cung cấp một tệp index.html có một đường liên kết đến servlet mới, như chỉ ra trong Liệt kê 3: Liệt kê 3. Trình thủ thuật tạo dự án tạo tệp index.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <! The HTML 4.01 Transitional DOCTYPE declaration > <! above set at the top of the file will set > <! the browser's rendering engine into > <! "Quirks Mode". Replacing this declaration > <! with a "Standards Mode" doctype is supported, > <! but may lead to some differences in layout. > <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <! > <! Any title is fine > <! > <title>Hello App Engine</title> </head> <! > <! The body can have arbitrary html, or > <! you can leave the body empty if you want > <! to create a completely dynamic UI. > <! > <body> <h1>Hello App Engine!</h1> <table> <tr> <td colspan="2" style="font-weight:bold;">Available Servlets:</td> </tr> <tr> <td><a href="simpleservletapp"/>SimpleServletAppServlet</td> [...]... ứng dụng của mình Bạn sẽ sử dụng gaejarticleforrick để triển khai các ứng dụng lên Máy ứng dụng của Google bằng trình cắm thêm Eclipse của Máy ứng dụng cho Java Hình 8 Tạo ứng dụng mới của Máy ứng dụng cho Java Sau khi bạn thiết lập mã nhận dạng (ID) của ứng dụng, bạn có thể triển khai ứng dụng của mình từ Eclipse Đầu tiên, nhấn vào nút của thanh công cụ trông giống như biểu tượng Máy ứng dụng của Google. .. 6px; } Triển khai Máy ứng dụng của Google Một khi bạn đã tạo ra ứng dụng sát thủ tiếp theo của thế giới (vì chúng ta thực sự cần một ứng dụng lời chào thân thiện với người sử dụng) , bạn sẽ muốn triển khai nó Toàn bộ vấn đề sử dụng Máy ứng dụng của Google là bạn có thể triển khai ứng dụng của mình trên cơ sở hạ tầng vững chắc của Google, làm cho nó dễ dàng điều chỉnh hơn Máy ứng dụng của Google được thiết... án của Máy ứng dụng cho Java Như bạn thấy trong Hình 6, Máy ứng dụng cho Java cung cấp nhiều tạo phẩm mã cho một ứng dụng GWT hơn là cho một ứng dụng dựa trên servlet đơn giản Ứng dụng ví dụ là một GUI được làm trong GWT để trao đổi với một ứng dụng dịch vụ lời chào Hình 6 Các tạo phẩm mã được cung cấp cho một ứng dụng GWT Có thêm một JAR nữa cho ứng dụng GWT mà nó là không cần thiết cho một ứng dụng. .. Bây giờ bạn có một ứng dụng servlet đơn giản được xây dựng khi sử dụng chỉ một số các Java API Và đó là điểm: Máy ứng dụng cho Java bao bọc chức năng Máy ứng dụng, sử dụng các Java API tiêu chuẩn, cho phép Máy ứng dụng hỗ trợ đông đảo các khung công tác sẵn có cho nền tảng Java Triển khai ứng dụng Để chạy ứng dụng dựa trên servlet của bạn với các công cụ Eclipse của Máy ứng dụng cho Java, đầu tiên... tảng cho việc xây dựng các ứng dụng có thể mở rộng "để phát triển từ một đến hàng triệu người dùng mà không nhức đầu về cơ sở hạ tầng" (như đã nêu trên trang chủ Máy ứng dụng - App Engine) Để sử dụng cơ sở hạ tầng này, bạn cần một tài khoản của Máy ứng dụng của Google cho Java Giống như nhiều thứ trong đời, thời gian đầu là miễn phí Phiên bản miễn phí của Máy ứng dụng cho Java cung cấp cho ứng dụng. .. chạy GUI ứng dụng Web của bạn trong trình duyệt Kết quả giống với một ứng dụng GUI truyền thống hơn là một ứng dụng Java Web truyền thống GWT có một thành phần máy khách chạy trong trình duyệt Thành phần máy khách này trao đổi với mã phía máy chủ Java của bạn thông qua một tập hợp các lớp Java kiểu RMI do bạn viết ra Tạo một Máy ứng dụng cho ứng dụng Java/GWT Bạn đã có một ý tưởng về cách một ứng dụng. .. dụng servlet đơn giản của Máy ứng dụng cho Java làm việc như thế nào, vì vậy tiếp theo chúng ta hãy khám phá công cụ Eclipse của Máy ứng dụng cho Java dành cho ứng dụng GWT Bắt đầu bằng cách nhấn vào quả bóng màu xanh trên thanh công cụ của Eclipse IDE để kích hoạt trình thủ thuật tạo dự án của Google Lần này, đánh dấu chọn hỗ trợ cho GWT, như trong Hình 5: Hình 5 Tạo một ứng dụng GWT đơn giản với... khác làm việc với Máy ứng dụng cho Java? Google duy trì một danh sách các công cụ và các khung công tác làm việc tốt với Máy ứng dụng cho Java (xem Tài nguyên) Ví dụ, Máy ứng dụng cho Java hỗ trợ nhiều ngôn ngữ JVM, bao gồm cả BeanShell, Groovy, Scala, JRuby, Jython và Rhino Vì Máy ứng dụng cho Java hỗ trợ khá nhiều các API Java SE và Java EE — như các Servlet, JSP, JPA, JavaMail và API của Java để xử... tên ứng dụng duy nhất và một mô tả, sau đó bạn sẽ thấy một thông báo xác nhận với mã nhận dạng (identifier) ứng dụng của bạn Mã nhận dạng cũng thuộc về tệp app.yaml của ứng dụng của bạn Lưu ý rằng không thể thay đổi mã nhận dạng Nếu bạn sử dụng việc xác thực của Google cho các ứng dụng của bạn, thì "GAEj Article For Rick Part 1" sẽ được hiển thị trong trang Sign In (Đăng nhập) khi bạn truy cập vào ứng. .. lưu trữ để phục vụ cho khoảng 5 triệu lượt truy cập trang Sau đó, cần phải trả tiền khi bạn tiếp tục (Cũng nên nhớ rằng cái sẵn có khi viết bài này là một bản phát hành xem trước của nền tảng Máy ứng dụng cho Java.) Một khi bạn nhận được tài khoản, bạn sẽ thấy một danh sách còn bỏ trống các ứng dụng tại trang Web Máy ứng dụng cho Java Nhấn vào nút Create New Application (Tạo ứng dụng mới) và một biểu . Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên! Xây dựng các ứng dụng sát thủ dựa trên Java, mở rộng được với Máy ứng dụng cho Java Rick Hightower , Giám. án của Máy ứng dụng cho Java Như bạn thấy trong Hình 6, Máy ứng dụng cho Java cung cấp nhiều tạo phẩm mã cho một ứng dụng GWT hơn là cho một ứng dụng dựa trên servlet đơn giản. Ứng dụng. trên trình duyệt cho dễ sử dụng, hỗ trợ công cụ Eclipse và Máy ứng dụng của Google ở mặt sau. Tính dễ sử dụng và có công cụ đầy đủ cũng là các lợi thế của Máy ứng dụng của Google cho Java so với

Ngày đăng: 07/08/2014, 10:22

TỪ KHÓA LIÊN QUAN