Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Máy ứng dụng của Google cho Java: Phần 3: Lưu giữ lâu bền và các mối quan hệ ppt
Nội dung xem thử
Mô tả chi tiết
Máy ứng dụng của Google cho Java: Phần 3: Lưu giữ lâu bền và các mối
quan hệ
Lưu giữ lâu bền dựa vào Java và kho lưu trữ dữ liệu của Máy ứng dụng của
Rick Hightower , Giám đốc, eBlox
Tóm tắt: Lưu giữ lâu bền dữ liệu là một phần quan trọng của việc phân phối ứng
dụng có khả năng mở rộng trong các môi trường doanh nghiệp. Trong bài viết cuối
cùng của loạt bài giới thiệu của mình về Máy ứng dụng của Google (Google App
Engine) cho Java™, Rick Hightower chấp nhận các thách thức của các khung
công tác lưu giữ lâu bền dựa trên Java hiện có của Máy ứng dụng (App Engine).
Tìm hiểu các chi tiết về tại sao việc lưu giữ lâu bền bằng Java trong bản các phát
hành trước đây chưa phải là hoàn toàn sẵn sàng cho thời kỳ cao điểm, đồng thời
cũng nhận được một trình diễn làm việc thực sự về những gì mà bạn có thể làm để
lưu giữ lâu bền dữ liệu trong các ứng dụng của Máy ứng dụng cho Java. Chú ý
rằng bạ
Máy ứng dụng cho Java cố gắng loại bỏ mối lo phải viết một tầng lưu giữ lâu bền
cho các ứng dụng Web mở rộng được, nhưng nó thực hiện mục đích đó đến mức
nào? Trong bài viết này, tôi kết thúc bài giới thiệu của mình về Máy ứng dụng cho
Java với một tổng quan về khung công tác lưu giữ lâu bền của nó, dựa trên các đối
tượng dữ liệu Java (Java Data Objects-JDO) và API lưu giữ lâu bền của Java (Java
Persistence API-JPA). Mặc dù ban đầu tỏ ra nhiều hứa hẹn, việc lưu giữ lâu bền
dựa trên Java của Máy ứng dụng hiện tại có một số nhược điểm nghiêm trọng mà
tôi sẽ giải thích và chứng tỏ các nhược điểm đó. Bạn sẽ tìm hiểu xem việc lưu giữ
lâu bền của Máy ứng dụng cho Java hoạt động như thế nào, những thách thức là gì
và bạn có những tùy chọn lưu giữ lâu bền nào khi làm việc với nền tảng đám mây
của Google dành cho các nhà phát triển Java.
Khi bạn đọc bài viết này và làm việc qua các ví dụ, bạn sẽ muốn ghi nhớ một thực
tế là Máy ứng dụng cho Java hiện nay là một bản phát hành xem trước. Khi mà
việc lưu giữ lâu bền dựa trên Java có thể không phải là tất cả những gì mà bạn có
thể hy vọng, hoặc cần có, vào lúc này, điều này là có thể và cần thay đổi trong
tương lai. Những gì mà tôi học được trong khi viết bài hướng dẫn này là việc sử
dụng Máy ứng dụng cho Java để phát triển ứng dụng Java tập trung vào dữ liệu, có
khả năng mở rộng, hiện nay, không phải dành cho những người nhút nhát hay bảo
thủ. Nó giống như lặn xuống đáy bể bơi: Không còn ở trong tầm mắt của người
cứu hộ nữa và dự án của bạn chìm xuồng hoặc bơi được là tùy thuộc nơi bạn.
Chú ý rằng ứng dụng ví dụ trong bài viết này được dựa trên ứng dụng quản lý liên
hệ đã phát triển trong Phần 2 của bài viết này. Bạn sẽ cần phải có ứng dụng đó đã
xây dựng và chạy được để tiếp tục các ví dụ ở đây.
Thành phần cơ bản và các sự trừu tượng hóa có lỗ rò
Cũng giống như Máy ứng dụng của Google nguyên thủy, Máy ứng dụng cho Java
dựa vào cơ sở hạ tầng nội bộ của Google với Ba Trụ Lớn (Big Three) để phát triển
ứng dụng có khả năng mở rộng: phân tán, tạo bản sao và cân bằng tải. Vì bạn đang
làm việc với cơ sở hạ tầng của Google, nên hầu hết các phép thuật này xảy ra ở
hậu trường và bạn có thể truy cập qua các API tiêu chuẩn của Máy ứng dụng cho
Java. Giao diện kho lưu trữ dữ liệu (datastore) được dựa trên JDO và JPA, mà
chính chúng lại dựa trên dự án nguồn mở DataNucleus. Máy ứng dụng cho Java
cũng cung cấp một API tiếp hợp (adapter) mức thấp để làm việc trực tiếp với kho
lưu trữ dữ liệu của Máy ứng dụng cho Java, kho lưu trữ dữ liệu này dựa trên việc
thực hiện BigTable của Google (xem Phần 1 để biết thêm về BigTable).
Tuy nhiên, việc lưu giữ lâu bền dữ liệu của Máy ứng dụng cho Java là không hoàn
toàn đơn giản như việc lưu giữ lâu bền trong Máy ứng dụng của Google thuần.
Các giao diện JDO và JPA lộ ra một số sự trừu tượng hóa có lỗ rò do thực tế là
BigTable không phải là một cơ sở dữ liệu quan hệ. Ví dụ, trong Máy ứng dụng cho
Java, bạn không thể thực hiện các truy vấn mà chúng thực hiện các phép nối
(join). Bạn có thể thiết lập các quan hệ trong JPA và JDO, nhưng chúng chỉ có thể
được sử dụng để lưu giữ lâu bền các quan hệ. Và khi bạn lưu giữ lâu bền các đối
tượng, chúng chỉ có thể được duy trì trong cùng một giao dịch nguyên tử nếu
chúng ở trong cùng một nhóm thực thể. Theo quy ước, các quan hệ là quan hệ sở
hữu nằm trong cùng nhóm thực thể với thực thể cha mẹ. Ngược lại, các mối quan
hệ không sở hữu nằm trong các nhóm thực thể tách biệt.
Nghĩ lại về chuẩn hóa dữ liệu
Làm việc với kho lưu trữ dữ liệu có khả năng mở rộng của Máy ứng dụng đòi hỏi
bạn phải suy nghĩ lại luận thuyết của mình về các lợi ích của dữ liệu được chuẩn
hóa. Tất nhiên, nếu bạn đã làm việc đủ lâu trong thế giới thực, có thể bạn đã phải
một hai lần hy sinh sự chuẩn hóa để đổi lấy hiệu năng. Sự khác biệt là, khi làm
việc với kho lưu trữ dữ liệu của Máy ứng dụng, bạn phải không chuẩn hóa sớm
hơn và thường xuyên. Chưa chuẩn hóa không còn là một từ xấu nữa; thay vào đó,
nó là một công cụ thiết kế mà bạn sẽ áp dụng trong nhiều khía cạnh của các ứng
dụng của Máy ứng dụng cho Java của bạn.
Nhược điểm chính với Máy ứng dụng cho sự lưu giữ lâu bền có lỗ rò của Java sẽ
xuất hiện khi bạn cố gắng chuyển một ứng dụng được viết cho một RDBMS tới
Máy ứng dụng cho Java. Kho lưu trữ dữ liệu của Máy ứng dụng cho Java không