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

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 luận văn ths công nghệ thông tin 1 01 10 (Trang 46 - 50)

Chương 2. Các hệ quản trị cơ sở dữ liệu hướng đối tượng

2.2.2. Giao diện trình ứng dụng

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].

2.3. Cơ sở dữ liệu FastObjects t7

2.3.1. Tổng quan

Triết lý thiết kế cho FastObjects t7 là cung cấp một cơ sở dữ liệu giao tác, nhanh và mềm dẻo nó được tích hợp chặt vào trong các ngôn ngữ lập trình Java và C++, và nó là trong suốt với người sử dụng cuối của ứng dụng. FastObjects t7 hoàn thành mục tiêu này và còn nhiều hơn thế.

FastObjects t7 là một server cơ sở dữ liệu đa người dùng được thiết kế để cung cấp việc quản lý đối tượng hiệu suất cao, tin cậy cho các ứng dụng hai tầng và ba tầng được viết bằng Java hoặc C++.

FastObjects t7 cung cấp các giao tác ACID, các điều khiển tương tranh và chức năng quản trị để đảm bảo tính nhất quán và toàn vẹn dữ liệu. Động cơ truy vấn mạnh mẽ của nó và việc định vị dễ dàng giữa các đối tượng cung cấp việc tìm kiếm và khôi phục hiệu suất cao. FastObjects t7 cung cấp một tập các tự chọn triển khai, chẳng hạn như hỗ trợ nhiều bộ xử lý, mã hoá dữ liệu hoặc các giao tiếp, sao lặp cơ sở dữ liệu, bỏ qua lỗi và tái kết nối [23].

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 luận văn ths công nghệ thông tin 1 01 10 (Trang 46 - 50)

Tải bản đầy đủ (PDF)

(97 trang)