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ệ
Số trang: 21
Loại file: pdf
Dung lượng: 178.93 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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 Google 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...
Nội dung trích xuất từ tài liệu:
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ệ Máy ứng dụng của Google cho Java: Phần 3: Lưu giữ lâu bền và các mốiquan 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ủaGoogleRick Hightower , Giám đốc, eBloxTó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 ứngdụng có khả năng mở rộng trong các môi trường doanh nghiệp. Trong bài viết cuốicù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 AppEngine) cho Java™, Rick Hightower chấp nhận các thách thức của các khungcông tác lưu giữ lâu bền dựa trên Java hiện có của Máy ứng dụn g (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áthà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ờicũ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ềncho các ứng dụng Web mở rộng được, nhưng nó thực hiện mục đích đó đến mứcnà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 choJava 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 đốitượng dữ liệu Java (Java Data Objects-JDO) và API lưu giữ lâu bền của Java (JavaPersistence API-JPA). Mặc dù ban đầu tỏ ra nhiều hứa hẹn, việc lưu giữ lâu bềndự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âycủ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ựctế 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 trongtươ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ảothủ. Nó giống như lặn xuống đáy bể bơi: Không còn ở trong tầm mắt của ngườicứ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ênhệ đã 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 Javadự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 đanglà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 choJava. 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 Javacũ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 kholư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ệcthự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àntoà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 choJava, 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 đốitượng, chúng chỉ có thể được duy trì trong cùng một giao dịch nguyên tử nếuchú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 quanhệ 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ệuLà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ỏibạ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ẩnhó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ảimộ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àmviệ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ớmhơ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 ...
Nội dung trích xuất từ tài liệu:
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ệ Máy ứng dụng của Google cho Java: Phần 3: Lưu giữ lâu bền và các mốiquan 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ủaGoogleRick Hightower , Giám đốc, eBloxTó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 ứngdụng có khả năng mở rộng trong các môi trường doanh nghiệp. Trong bài viết cuốicù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 AppEngine) cho Java™, Rick Hightower chấp nhận các thách thức của các khungcông tác lưu giữ lâu bền dựa trên Java hiện có của Máy ứng dụn g (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áthà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ờicũ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ềncho các ứng dụng Web mở rộng được, nhưng nó thực hiện mục đích đó đến mứcnà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 choJava 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 đốitượng dữ liệu Java (Java Data Objects-JDO) và API lưu giữ lâu bền của Java (JavaPersistence API-JPA). Mặc dù ban đầu tỏ ra nhiều hứa hẹn, việc lưu giữ lâu bềndự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âycủ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ựctế 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 trongtươ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ảothủ. Nó giống như lặn xuống đáy bể bơi: Không còn ở trong tầm mắt của ngườicứ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ênhệ đã 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 Javadự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 đanglà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 choJava. 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 Javacũ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 kholư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ệcthự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àntoà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 choJava, 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 đốitượng, chúng chỉ có thể được duy trì trong cùng một giao dịch nguyên tử nếuchú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 quanhệ 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ệuLà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ỏibạ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ẩnhó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ảimộ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àmviệ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ớmhơ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 ...
Tìm kiếm theo từ khóa liên quan:
lập trình java công nghệ java phát triển với java lập mô hình dịch vụ web java ngôn ngữ lập trìnhGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 261 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 260 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 230 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 221 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 213 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 177 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 169 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 161 0 0