0
Tải bản đầy đủ (.pdf) (97 trang)

Giao diện trỡnh ứng dụng

Một phần của tài liệu NGHIÊN CỨU VÀ PHÁT TRIỂN CÁC ỨNG DỤNG VỚI CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG (Trang 46 -46 )

PSE Pro được cung cấp trong cỏc phiờn bản Java hoặc C++, chỳng là tương đương về chức năng. Cả hai cung cấp một tập đầy đủ cỏc dịch vụ quản lý dữ liệu bền vững trong việc hỗ trợ cỏc ứng dụng nhiều giao dịch. Khỏc với cỏc hệ cơ sở dữ

liệu quan hệ, PSE Pro khụng yờu cầu những thay đổi diện rộng của hệ thống lớp Java hoặc C++ để quản lý cỏc đối tượng dữ liệu. PSE Pro thừa kế cỏc định nghĩa lớp đó định nghĩa trong ứng dụng.

Giao diện trỡnh ứng dụng của PSE Pro cho phộp [1, 19, 22]:

- Khởi động và kết thỳc cỏc phiờn cho phộp cỏc luồng tiến trỡnh sử dụng API.

- Tạo, mở, đúng và huỷ cỏc cơ sở dữ liệu.

- Khởi động, cam kết, và huỷ bỏ cỏc giao dịch truy cập dữ liệu trong cơ sở dữ liệu.

- Đọc và ghi cỏc gốc cơ sở dữ liệu, để cung cấp điểm bắt đầu cho việc điều hướng tới những đối tượng bền vững.

- Lưu trữ, khụi phục, và cập nhật cỏc đối tượng được quản lý trong cơ sở dữ liệu. Mụ hỡnh giao dịch của PSE Pro cho phộp nhiều giao dịch đọc xảy ra đồng thời, mỗi giao dịch trờn một luồng hoặc một tiến trỡnh và một giao dịch cập nhật duy nhất (việc cập nhật khoỏ toàn bộ cơ sở dữ liệu). Với cỏc ứng dụng cần khả năng thực hiện việc đọc cơ sở dữ liệu mà khụng bị trở ngại bởi hoạt động cập nhật, PSE Pro cũng hỗ trợ điều khiển tương tranh đa phiờn bản (MVCC) cho phộp cỏc hoạt động đọc và ghi đồng thời trong khi vẫn duy trỡ sự nhất quỏn giao dịch.

Hỗ trợ giao dịch tổng thể trong PSE Pro bao gồm sự phục hồi lại từ những hỏng húc của ứng dụng hoặc đổ vỡ của hệ thống. Một hỏng húc sẽ ngăn chặn những thay đổi trong một giao dịch từ khi được lưu, PSE Pro đảm bảo rằng khụng cú thay đổi giao dịch nào được lưu vào trong cơ sở dữ liệu. Khi ứng dụng được khởi động lại, cơ sở dữ liệu tiếp tục đồng nhất với trạng thỏi phớa trước của nú.

Sự kết hợp chặt chẽ với việc lập trỡnh cho phộp những người phỏt triển tập trung thời gian và sự chỳ ý vào việc viết mó trỡnh ứng dụng thay vỡ lo lắng về mặt lụ gớch để quản lý dữ liệu bền vững bờn trong ứng dụng. PSE Pro đọc và ghi dữ liệu trực tiếp từ đĩa do vậy khụng cần tớch hợp mó trỡnh chuyển đổi vào trong ứng dụng. Việc này làm tăng thờm những nỗ lực phỏt triển và duy trỡ ứng dụng.

Thụng thường, khoảng 25% tới 75% lượng cụng việc phỏt triển phỏt triển ứng dụng Java hoặc C++ là việc viết mó trỡnh để tương tỏc với cỏc bộ lưu trữ dữ liệu quan hệ. Những mó trỡnh như vậy được loại bỏ với PSE Pro, do vậy cải thiện đỏng kể sự phỏt triển, duy trỡ, và thực thi ở thời điểm chạy của ứng dụng [1, 22].

Tạo và lưu đối tượng

Trỏi tim của PSE Pro API là sự nạp chồng đặc biệt của hàm toàn cục ::operator new(), được hiểu như new bền vững. Việc cấp phỏt dữ liệu với new bền vững rất giống với việc cấp phỏt dữ liệu với new thụng thường. Điều khỏc biệt đú là dữ liệu được cấp phỏt với new thụng thường là tạm thời. Tức là, nú biến mất sau khi việc cấp phỏt ứng dụng kết thỳc. Dữ liệu được cấp phỏt với new bền vững cư trỳ ở nơi lưu trữ bền vững trong một cơ sở dữ liệu, cho đến khi thực sự bị xoỏ. Chỳng ta cú thể sử dụng new bền vững để cấp phỏt cỏc phần tử bền vững thuộc cỏc kiểu dựng sẵn chẳng hạn như int hoặc char*, hoặc thuộc cỏc lớp đó được định nghĩa.

Khi chuẩn bị một lớp để cỏc phần tử của nú cú thể được lưu trữ trong một cơ sở dữ liệu PSE Pro, chỳng ta cú thể phải sửa đổi sự thi hành của một số hàm thành phần. Nếu một hàm thành phần cấp phỏt một đối tượng nào đú mới, chỳng ta phải quyết định đối tượng mới này cú được dự định cấp phỏt trong một cơ sở dữ liệu hay khụng. Nếu đỳng như vậy, chỳng ta phải thay đổi sự cấp phỏt để sử dụng new bền vững như được định nghĩa bởi PSE Pro API. New bền vững đũi hỏi cỏc tham số:

• os_database*, cho biết cơ sở dữ liệu trong đú cấp phỏt đối tượng mới • os_typespec* chỉ ra kiểu của đối tượng mới

Khi sử dụng PSE Pro API, việc lưu trữ đối tượng hầu như hoàn toàn tự động. Cỏc bước cơ bản sau đõy phải tuõn theo để lưu cỏc đối tượng vào trong một cơ sở dữ liệu:

- Khi tạo một đối tượng, chỳng ta cấp phỏt nú trong một cơ sở dữ liệu với việc nạp chồng ::operator new() của PSE Pro thay cho new() thụng thường của C++.

- Gọi os_database::save() hoặc os_transaction::commit() để tự động lưu trữ tất cả cỏc đối tượng bền vững mới và tất cả cỏc đối tượng bền vững được cập nhật trong cơ sở dữ liệu của chỳng.

Khụi phục đối tượng

Một gốc cơ sở dữ liệu cung cấp cỏch thức đặt tờn bền vững cho một đối tượng. Điều này cho phộp đối tượng xử sự như một điểm vào của cơ sở dữ liệu. Khi một đối tượng cú một tờn bền vững, bất cứ tiến trỡnh nào cũng cú thể dựa vào cỏi tờn này để tỡm kiếm và khụi phục đối tượng. Sau khi đó khụi phục một đối tượng, chỳng ta cú thể khụi phục đối tượng bất kỳ liờn kết với nú bằng việc sử dụng sự điều hướng. Tức là, chỳng ta cú thể khụi phục thờm cỏc đối tượng bằng việc đi theo cỏc con trỏ thành phần dữ liệu. Mỗi cơ sở dữ liệu chỉ cần cú một hoặc một số lượng nhỏ cỏc điểm vào. Việc tỡm kiếm một điểm vào chậm hơn đỏng kể so với việc điều hướng tới một đối tượng.

Một gốc cơ sở dữ liệu là một phần tử của os_database_root, nú liờn kết một đối tượng với một xõu. Hóy chỉ ra tờn của đối tượng khi tạo một gốc với os_database::create_root(). Việc thiết lập và nhận về một con trỏ trỏ tới đối tượng điểm vào được thực hiện thụng qua os_database_root::set_value() và os_database_root::get_value().

Cỏc đối tượng được khụi phục hầu như hoàn toàn tự động. Cỏc bước sau đõy chỳng ta cần phải tuõn theo để khụi phục cỏc đối tượng từ một cơ sở dữ liệu:

- Khụi phục một đối tượng điểm vào được đặt tờn từ một cơ sở dữ liệu bằng việc sử dụng PSE Pro API.

- Sử dụng sự điều hướng (huỷ tham chiếu con trỏ) để khụi phục cỏc đối tượng khỏc từ cơ sở dữ liệu theo cỏch chỳng ta làm với dữ liệu C++ thụng thường.

Khi chỳng ta huỷ tham chiếu một con trỏ trỏ tới một đối tượng chưa được khụi phục từ cơ sở dữ liệu, PSE Pro sẽ khụi phục đối tượng một cỏch tự động và trong suốt.

Khi chỳng ta huỷ tham chiếu một con trỏ trỏ tới một đối tượng đó được khụi phục rồi, việc truy cập đến nú nhanh như là truy cập đến dữ liệu C++ thụng thường. Điều này là vỡ đối tượng đó được phục hồi cư trỳ trong bộ nhớ ảo, và trỏ tới chỳng là cỏc con trỏ thụng thường cú thể được xử lý ở tốc độ phần cứng thụng thường [1, 19, 20, 21].

Một phần của tài liệu NGHIÊN CỨU VÀ PHÁT TRIỂN CÁC ỨNG DỤNG VỚI CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG (Trang 46 -46 )

×