Phát triển Java 2.0: Chào Google App Engine
Phát triển ứng dụng Web nhanh chóng bằng cách sử dụng Groovy, Eclipse và
JDO
Andrew Glover , Tác giả và nhà phát triển, ThirstyHead.com
Tóm tắt: Các giải pháp nguồn mvà các cơ sở hạ tầng vay mượn đang thay đổi
đặc điểm của việc phát triển Java™, cho phép bạn cung cấp phần mềm tốt hơn,
nhanh chóng hơn và với chi phí thấp. Andrew Glover, khi đặt ra thuật ngữ Java
development 2.0 (phát triển Java 2.0) để gói gọn sức mạnh tích lũy của các hiện
tượng này, đã khởi đầu một loạt bài viết mới về một số công cụ và công nghệ có
liên quan. Bài viết đầu tiên này báo hiệu thời kỳ phát triển Java 2.0 đã tới và giải
thích cho bạn cách để có thể làm cho những khái niệm của nó đơm hoa kết trái
nhanh chóng với Google App Engine (Máy ứng dụng của Google) cho Java
Thế giới Java là một hệ sinh thái phong phú với một bố cục trải rộng gồm các nhà
phát triển, các doanh nghiệp và — quan trọng nhất — các ứng dụng, nhiều ứng
dụng đã hoàn thiện trong hơn một thập kỷ qua. Cộng đồng Java trên toàn thế giới
đã đầu tư rất nhiều tiền bạc, thời gian và trí lực vào nền tảng này và những đóng
góp này đã mang lại một kho tàng giàu có các công cmã nguồn mở và các công
cụ thương mại, các khung công tác, và thực sự cả các giải pháp, rất thành công.
Hàng loạt đầu tư như nói trên vào nền tảng Java đã thay đổi cách phát triển Java
một cách khéo léo. Hai xu hướng chính đang thay đổi nhanh chóng đặc điểm của
nó:
Về loạt bài này
Bối cảnh phát triển Java đã thay đổi căn bản kể từ công nghệ Java đầu tiên xuất
hiện. Nhờ sự hoàn thiện các khung công tác mã nguồn mở và các cơ sở hạ tầng
triển khai cho-thuê đáng tin cậy, giờ đây có thể lắp ráp, thử nghiệm, chạy và bảo
trì các ứng dụng Java một cách nhanh chóng và không tốn kém. Trong loạt bài
này, Andrew Glover khám phá một loạt các công nghệ và các công cụ làm cho mô
hình phát triển Java mới này trở thành có th.
Lợi dụng hoàn toàn các công cvà các khung công tác mã nguồn mđể
xây dựng các ứng dụng từ trên xuống dưới.
Thuê (hoặc mượn) cácsở hạ tầng ứng dụng cần thiết ở mọi cấp độ để
quản lý vòng đời phần mềm, bao gồm cả việc tự chạy các ứng dụng.
Không khía cạnh nào trong những gì tôi gọi phát triển Java 2.0 mới hoặc cách
mạng, nhưng các công nghệ cho phép đã hoàn thiện đến mức bây giờ đã có thể,
như chưa từng có trong lịch sử của công nghệ Java, lắp ráp các ứng dụng tốt hơn
một cách nhanh chóng rchắc chắn là một trong những mong muốn trên hết
của các doanh nghiệp trên thế giới.
Bài viết này khởi đầu một loạt bài viết mới sẽ tìm hiểu việc phát triển Java 2.0 sâu
hơn. Bạn sẽ tìm hiểu về việc xây dựng và triển khai các ứng dụng Web với EC2
của Amazon, sử dụng Google App Engine (máy ứng dụng của Google), sử dụng
CouchDB (đang được gọi là cơ sở dữ liệu cho Web) và các công cvà các công
nghệ khác cung cấp các khối xây dựng để lắp ráp, thử nghiệm và triển khai các
ứng dụng nhanh gọn và chi phí ít tiền hơn so với từ trước đến bây giờ.
Điểm dừng đầu tiên: Google App Engine cho Java (xem Tài nguyên). Tôi sẽ giới
thiệu cho bạn nền tảng này bằng phương pháp "Hello World" (Xin chào Thế giới)
truyền thống, sau đó chỉ cho bạn cách tạo một ứng dụng Web hoạt động bằng cách
sử dụng Groovy, Java Data Objects (JDO-Các đối tượng dữ liệu Java) và trình
cắm thêm Eclipse cho Google App Engine. Tuy nhiên, theo trình tự, trước tiên hãy
xem tổng quan nhanh về giá trị kinh doanh của việc phát triển Java 2.0.
Nhanh và r
Các tnhanhr thường không được kết hợp với việc phát triển Java. Trong
thực tế, chúng thường gợi lên các ấn tượng vphát triển phần mềm ít quan trọng
— tầm nhìn của các công ty nhỏ có ít nguồn lực. Tuy nhiên, sự thật của vấn đề là
CNTT là một trọng tâm chi phí đối với nhiều công ty (lớn và nhỏ), thúc đẩy họ giữ
cho các chi phí CNTT thấp trong khi rút ra càng nhiều giá trị càng tốt.
Đó là nơi việc phát triển Java 2.0 vào cuộc. Bằng cách sử dụng các công cụ mã
nguồn mở, các khung công tác và thậm chí các giải pháp, các công ty có thể lắp
ráp các ứng dụng phần mềm nhanh chóng vì họ không phải tự mình viết nhiều mã
lệnh. Khi lần đầu tiên tôi bắt đầu phát triển phần mềm bằng công nghệ Java hơn
10 năm trước đây, phạm vi của các công cụ và các khung công tác có sẵn cho các
nhà phát triển nhỏ bé hơn nhiều. Một số ít các công cụ đó cũng không có sẵn miễn
phí. Bạn phải mua một IDE, một cơ sở dữ liệu, một khung công tác ánh xđối
tượng-quan hệ (ORM) (ôi chết tiệt, bạn có thể đã phải mua trình điều khiển cần
thiết để giao tiếp với cơ sở dữ liệu của bạn) và dĩ nhiên, các máy để triển khai ứng
dụng của bạn trên đó. Bây giờ? Tất cả mọi thứ mà tôi vừa liệt kê (và nhiều hơn
nữa) là có sẵn miễn phí và chất lượng cao.
Hơn nữa, bằng cách vay mượn cơ sở hạ tầng (ví dụ như những cơ sở hạ tầng được
EC2 của Amazon hoặc Google App Engine cung cấp), bạn có thể triển khai ứng
dụng khá rẻ (so với mua toàn bộ cơ sở hạ tầng cần thiết).
Xây dựng, mua, hay mượn: Đó là câu hỏi mới
Nhiều doanh nghiệp có cả một danh sách phần cứng để chạy các ứng dụng như các
cơ sở dữ liệu, các máy chủ ứng dụng, các hệ thống quản lý thay đổi và các công c
lần vết tìm lỗi. Tuy vậy, ngày nay, danh sách này có thể dễ dàng vứt bỏ để thay
bằng việc sử dụng chính gói phần mềm ấy dưới dạng một dịch vụ đang chạy trên
một cơ sở hạ tầng của người nào đó khác.
Toàn bchồng ứng dụng mà một nhóm làm việc có thể phải sử dụng để quản
một quá trình phát triển có thể được vay mượn — nghĩa là, thuê với một khoản phí
nhgiải phóng cho công ty khỏi phải đầu tư vào phần cứng để chạy chúng.
dụ, thay vì mua một máy tính để chạy một hệ thống quản lý thay đổi (như
Subversion hoặc Git, cả hai là mã nguồn mở và có sẵn miễn phí), một nhóm làm
việc có thể sử dụng một dịch vụ quản lý thay đổi dùng chung như GitHub. Công ty
đằng sau GitHub phải gánh chịu chi phí của c tài sản phần cứng và tính một chi
phí danh nghĩa (thường là hàng tháng cho mỗi người dùng) cho các tchức khác
sử dụng Git. Cùng một nguyên tắc thuê phần mềm như là một dịch vụ từ các nhà
cung cấp khác như thế này có thđược áp dụng cho việc lần vết tìm lỗi, quản
các bài kim thử và quản lý các yêu cầu (ví dụ qua JIRA Hosted hoặc Pivotal
Tracker).
Cũng có thể nói giống như vậy đối với các tài sản phần cứng nằm dưới mà các nền
tảng phần mm khác (về bản chất, thường là tùy chỉnh) chạy trên đó. Một doanh
nghiệp có thể vứt bỏ phần cứng nằm bên dưới của một ứng dụng web cụ thể để
thay bằng việc chạy ứng dụng trên phần cứng được cung cấp bởi Amazon, Google
hoặc các đối tác khác. Các công ty này đưa ra khả năng thuê phần cứng ở các mức
độ khác nhau, vừa vặn có thể lưu trữ một ứng dụng. Hơn nữa, các công ty này
quản lý khả năng mở rộng, sao lưu và thậm chí cả an ninh nữa. Hãy suy nghĩ về nó
một lát: Amazon và Google đã nêu ra những mối quan tâm này (và nhiều hơn nữa)
từ lâu rồi và đối phó tốt hơn với chúng, có nhiều đổi mới xung quanh các khía
cạnh của việc chạy các nền tảng phần mềm sao cho hiệu quả. (Đó là đúng. Hãy
đương đầu với nó).
Bằng cách sử dụng App Engine của Google, ví dụ thế, một công ty CNTT có thể
hạ thấp tổng chi phí mua một cơ sở hạ tầng để chạy các ứng dụng cần thiết. Và h
có thtriển khai các ứng dụng đó nhanh n vì vô scác mối quan tâm đan chéo
nhau, kết hợp với việc triển khai ứng dụng và quản lý đã được tính đến và vì thế
được cung cấp cho họ (với nhiều khả năng là theo một cách tốt hơn).
Nhanhr không còn có nghĩa là chất lượng thấp. Ngược lại, phát triển Java 2.0
là một cách tiếp cận chiến thuật đã giả định một quy trình vững chắc để nhấn
mạnh chất lượng.
Một ngày đơn giản với App Engine của Google
App Engine của Google là một nền tảng thực sự để xây dựng và triển khai ứng
dụng Web Java (và Python) trên cơ sở hạ tầng mở rộng của Google. Nó không yêu
cầu lệ phí cấp phép sử dụng (tất nhiên, tr ra một số thư viện phần mềm mà bạn
chọn để sử dụng trên cơ sở hạ tầng ấy yêu cầu giấy phép) và không cần chi phí trả
trước cho băng thông hoặc không gian lưu trữ.sở hạ tầng của App Engine là
hoàn toàn miễn phí cho đến khi bạn đạt đến ngưỡng về mức sử dụng — dung
lượng lưu trữ 500MB và, theo như trích dẫn nguyên văn từ Google, "đủ CPU và
băng thông cho khoảng 5 triệu lượt xem trang mỗi tháng". Chỉ cần nói rằng, khi
bạn đạt tới điểm mà Google bắt đầu gửi hóa đơn tính phí cho bạn, ứng dụng Web
của bạn rõ ràng đã tạo ra lưu lượng đáng kể (và do đó có lãi).
Dựng lên một ứng dụng và chạy nó trên App Engine không thdễ dàng hơn nữa.
Google thậm chí còn cung cấp một trình cm thêm Eclipse xlý gần như mọi thứ
cho bạn. Và trình cắm thêm này bao gm các thành phần thiết yếu của một ứng
dụng servlet "Hello World" để giúp bạn bắt đầu với nền tảng này. Trong bài giới
thiệu nhập môn gần đây của ông trên developerWorks ("App Engine của Google
cho Java, Phần 1: Tăng tốc nó!") Rick Hightower sđưa bạn qua từng bước triển
khai ứng dụng Hello World (bao gồm các ảnh chụp màn hình). Nếu bạn chưa từng
làm việc theo bài viết của Rick, hãy làm theo các bước sau:
Xác định phiên bản
Các triển khai App Engine có thể được định phiên bản đó , bạn có thể gán
một mẫu chuỗi ký tự (biểu hiện một phiên bản) cho một bản triển khai. Điều này
có ích khi bạn bắt đầu có nhiều bản phát hành. Thông qua các URL và bảng điều
khiển của Google, bạn có thể mô tả phiên bản nào là phiên bản "hoạt động" và
phiên bản nào không phải là phiên bản hoạt động (mặc dù bất kỳ bản triển khai đã
xác định phiên bản nào đều vẫn có thể truy cập qua một URL, với điều kiện bạn
chưa gỡ bỏ nó trước). Theo đó, bất cứ lúc nào bạn muốn triển khai một phiên bản
mới của dự án của bạn lên cơ sở hạ tầng của Google, bạn phải cung cấp cho bản
triển khai đó một mã hiệu phiên bản hợp lệ. Mẫu chuỗi ký tự không được bao gồm
các dấu chấm câu (1.1 không dùng được, nhưng 1-1 lại dùng được). Bạn có thể
gán các phiên bản trong tệp AppEngine-web.xml, có trong thư mục war/WEB-INF
đã được sinh ra khi bạn tạo lập một dự án mới. Để triển khai dự án đầu tiên của
mình, bạn không cần phải đối phó với các phiên bản (chưa cần) vì Google chđịnh
một phiên bản khởi đầu là 1 trong tệp appengine-web.xml đã tạo ra.
1. Hãy tạo một tài khoản App Engine của Google (nó là miễn phí) bằng cách
nhấn vào liên kết Sign up (Đăng nhập) trong Getting Started (Bắt đầu)
trên trang http://code.google.com/appengine/.
2. Tải xuống trình cm thêm App Engine của Google cho Eclipse t
http://code.google.com/appengine/downloads.html và cài đặt nó.
3. Tạo một dự án mới bằng cách nhấn vào nút New Web Application Project
(Dự án ứng dụng Web mới) trong Eclipse, trong hộp thoại kết quả, bỏ dấu
chọn của tùy chọn Use Google Web Toolkit (sử dụng dụng cụ Web của
Google). Đặt tên dự án và gói tương ứng là bt cứ cái gì bạn muốn.
4. Chọn dự án của bạn trong hệ thống phân cấp và nhấn vào nút Deploy App
Engine Project (Triển khai dự án App Engine).
5. Nhập mã ủy quyền của bạn (là cái mà bạn đã sử dụng khi tạo ra một tài
khoản App Engine trong Bước 1).
6. Kết hợp dự án cục bộ của bạn với mã nhận dạng (ID) của ứng dụng mà bạn
tạo ra khi bạn bước đầu tạo một tài khoản App Engine. (Bạn có thể đến
10 ID).
7. Nhấn vào nút Deploy (Triển khai). Bạn sẽ thấy rất nhiều văn bản trôi qua
trên bàn điều khiển Eclipse (trình cắm thêm đang thực hiện rất nhiều đằng
sau hậu trường bao gồm việc cải tiến mọi lớp cần thiết nào để sử dụng dịch
vụ lưu trữ-dliệu rất ấn tượng của Google). Khi tiếng ồn dịu dần (và tất cả
mọi thứ đã làm việc đúng), bạn sẽ thấy một thông báo kết thúc bằng dòng
chữ "Việc triển khai đã hoàn tất thành công."
8. Đi tới trang tài khoản App Engine của bạn tại Google và tìm liên kết
Versions trên bảng điều khiển của Google. Ở đó bạn sẽ thấy phiên bản đã
triển khai của bạn và URL tương ứng của nó. Nhấn vào URL và sau đó
nhấn vào liên kết tới servlet đã tạo ra để thấy dòng chữ "Hello, world" (Xin
chào, thế giới) buồn tẻ nhưng lại làm bạn hài lòng làm sao, được in ra dạng
văn bản.
Ít dòng mã hơn với Groovlets
Bạn đã triển khai thành công ứng dụng Google App Engine đầu tiên của bạn và
bạn đã không viết một dòng mã nào. Thực vậy, nếu bạn có kế hoạch sử dụng App
Engine, bạn sẽ đi đến chỗ viết một số dòng mã nhưng hãy nhớ rằng, đã có
nhiều mã đó mà bạn có thể tái sử dụng để làm cho công việc của bạn dễ dàng
hơn. Mã tái sử dụng đó có thể là các dịch vụ mà Google cung cấp (chẳng hạn như