Các công cụ hỗ trợ phát triển ứng dụng của Versant

Một phần của tài liệu XÂY DỰNG hệ QUẢN TRỊ HYPERMEDIA HƯỚNG đối TƯỢNG (Trang 134)

30. VERSANT

30.3.1. Các công cụ hỗ trợ phát triển ứng dụng của Versant

http://www.versant.com

30.3. Tìm hiu

30.3.1. Các công cụ hỗ trợ phát triển ứng dụng của Versant Versant

- Khả năng hỗ trợ đối tượng dữ liệu kiểu persistent.

- Trong C++ ta có toán tử NEW hỗ trợ việc tạo đối tượng (thể hiện) cho một lớp nào đó, và đối tượng được tạo ra đó sẽ có thuộc tính là transient, có nghĩa là sự tồn tại của nó sẽ

phụ thuộc vào đời sống của ứng dụng, nó sẽ bị huỷ trong thời điểm nào đó của ứng dụng và sẽ bị hủy khi ứng dụng

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 135

của ta kết thúc. Còn nếu như ta xác định thể hiện ta xử lý vẫn tồn tại sau khi chương trình kết thúc thì ta sẽ cho nó thuộc tính persistent. Và đối với Versant thì phạm vi thực thi của một ứng dụng sẽ nằm trong một phiên làm việc của database. Tức là khi ta thực thi một ứng dụng nào đó sử dụng hệ OODBMS Versant thì có nghĩa ta đã vào một phiên làm việc hoàn toàn với database hiện hành đang xử lý. Hay nói cách khác, một ứng dụng có thể truy xuất với nhiều database khác nhau trong quá trình xử lý của mình, nhưng cho dù có kết nối với với các database khác đi nữa thì cũng chỉ có một và chỉ một database được coi là mặc định hiện hành của phiên làm việc. Và khi đó mọi thể hiện cần lưu trữ sẽ được lưu vào database mặc định này

- Versant không cung cấp cho ta cấp độ truy cập vào các đối tượng persistent được lưu trong database. Mà Versant chỉ cung cấp cho ta các mức phân chia truy xuất các đối tượng (thể hiện) persistent cho các lớp đối tượng, và việc phân chia này phải được mô tả trong các file dẫn hướng biên dịch và không thay đổi đựơc trong quá trình ứng dụng thực thi. Các dẫn hướng về mức độ truy xuất sẽ được mô tả chi tiết và Versant sẽ xác định lại các thông số cần thiết cho quá trình lưu database sau này (việc này dùng để thiết kế trường hợp truy xuất đồng thời các thể hiện của các lớp). - Tất cả các thể hiện persistent được lưu trong database đều

dựa trên nền tảng kỹ thuật con trỏ. Việc nạp chồng toán tử NEW của Versant sẽ đảm bảo cho ta các truy xuất đến các đối tượng được lưu trên bộ nhớ được chính xác.

- Tại sao lại sử dụng con trỏ ? Ta thấy rằng với một lệnh

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 136

quả), việc này sẽ dẫn đến tràn bộ nhớ nếu kết quả của câu truy vấn quá nhiều, do đó ta phải dùng địa chỉ của các đối tượng để thể hiện cho đối tượng và quan hệ giữa chúng. Điều này cũng sẽ làm tăng tốc độ xử lý của ứng dụng khi ta chỉ xử lý trên các con trỏ mà không xử lý trực tiếp trên tập các đối tượng. Versant sẽ tự động đọc tập các đối tượng vào bộ nhớ khi cần xử lý. Và ở đây Versant đã xây dựng cho mình một CACHE để tăng tốc và cũng để dễ dàng đồng bộ dữ liệu giữa ứng dụng Server và bộ lưu trữ (harddisk). CACHE sẽ chứa mạng các node địa chỉ lưu trữ đối tượng tương ứng trên database link với nhau, và căn cứ vào điều này mà Versant sẽ quyết định load phần nào cần xử lý lên bộ nhớ để tiết kiệm được không gian cũng như cải thiện tốc độ.

30.3.2. Các trình hỗ trợ ứng dụng

Các trình phát triển của Versant cũng giống như các trình phát triển một hệ OODBMs. Versant cung cấp các trình tiện ích trong việc tạo, cấu hình database. Còn việc phát sinh các schema cho database thì Versant đã cung cấp một khuôn mẫu cho việc mô tả các lớp thông các file header, và các file này sẽ

được include trong quá trình biên dịch (ngôn ngữ C++). (Rất tiếc là ở phiên bản 6.0.5 này Versant không cung cấp cho ta trình tiện ích quản lý các schema theo dạng GUI mà chúng ta phải tiến hành làm thông qua các command mà thôi). Tuy nhiên Versant cũng đã đơn giản hoá các commmand trong việc mô tả các file schema thông qua bộ trình preprocessor mà Versant thiết kế, giúp phân tích và phát sinh các schema cần thiết dựa vào nội dung các file mã nguồn và các chỉ dẫn biên dịch trong các file .imp.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 137 30.3.3. Biên dịch project MSVC++6.0/MSVC++7.0

Để compile ứng dụng sử dụng Versant trên môi trường MSVC thì ta chỉ cần thêm các thông số đường dẫn đến các thư mục: thư viện, mã nguồn và các chương trình dịch của Versant là xong.

Cụ thể như sau:

- Ta vào phần menu Tools/Options chọn tab Directories và tương ứng với 3 lựa chọn :

Include Files, Library Files, và Executable

Files ta sẽ thiết lập đường dẫn đến nơi chứa tương ứng :

C:\%Versant Root%\h C:\%Versant Root%\lib C:\%Versant Root%\bin

Với : %Versant Root% là tên thư mục chương trình đã cài đặt vào máy của Versant.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 138 Hình 5. 7 - La chn Option để thiết lp đường dn

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 139 30.3.4. Tạo database trong Versant

Ta có thể tạo database bằng chương trình Administration Console của Versant:

Hình 5. 9 - Chn chc năng to cơ s d liu

Sau khi chọn Create Database ta sẽ tiến hành điền các thông số cần thiết để tạo database (nếu như ta muốn dùng các thông số mặc định thì ta cứ nhấn Finish là xong):

Hình 5. 10 - To database bng công c Wizard

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 140 Hình 5. 11 - Đặt tên database

Tiếp đến ta sẽ thiết lập server nơi lưu trữ database:

Hình 5. 12 - Thiết lp nơi lưu tr database

Tiếp theo là tới option về việc truy xuất database. Ở bước này ta sẽ xác định xem là database của ta có cho phép nhiều người truy xuất hay không. Ta có 2 lựa chọn là GroupPersonal:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 141 Hình 5. 13 - Thiết lp mc độ truy xut database

Cuối cùng ta chọn Finish.

Với các bước trên ta đã tạo được một database, nhưng nếu là một DBA ta muốn cấu hình chi tiết hơn về tổ chức của database ta sẽ click vào tab Advance: khi đó sẽ xuất hiện thêm các option sau:

Hình 5. 14 - Điu chnh các tham s khác khi to database

Template: sử dụng các thông số cấu hình database heo mẫu đinh nghĩa trước.

Creation: điều chỉnh các thông số về nơi lưu trữ các file volume của database. Dựa vào đặc tính này ta có thể tối ưu việc thiết kế database bằng cách để các volume file trên các ổ

đĩa vật lý khác nhau. Cũng như ta có thể thay đổi kích thước của database nếu không muốn sử dụng các thông số mặc định:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 142 Hình 5. 15 - Điu chnh các tham s ca database

Functional: thiết lập thêm các thông số kỹ thuật cho database bao gồm các đặc tính: Locking, Logging, Async Buffer Cleaner, Async Logger, Commit Flush, chi tiết các thông số này sẽ được nói đến ở phần các thành phần cơ bản của một OODBMs, hoặc có thể xem thông tin diễn giải của Versant ở phần Description:

Hình 5. 16 - Thiết lp các tham s cho database

Tuning: phần này thiên về các thông số tốc độ, bộ nhớ mà database sẽ sử dụng trong phiên làm việc của database.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 143 Hình 5. 17 - Thiết lp các tham s cho database

Sau khi tạo xong database ta có thể xem lại bằng công cụ Explorer (Show/Explorer):

Hình 5. 18 – Xem li database va to

30.3.5. Xây dựng file schema (imp) để compile chương trình trình

- Như ta biết schema là một trong những thành phần của một OODBMs. Với bất kì sản phẩm OODBMs đều phải hỗ trợ một dạng thức schema khác nhau, nhưng mục đích chung vẫn là dùng để đánh dấu, mô tả các lớp đối tượng sẽ được lưu vào database.

- Và ở Versant ta sẽ thấy khác với FastObject một chút ở chỗ: Versant không hỗ trợ GUI cho vấn đề thiết kế schema mà ta phải thiết kế thông qua các file dạng header trong C++. Các tập tin này được đặt tên với phần mở rộng là *.imp và sau đó sẽ được Versant tổng hợp và phát sinh cho ta file schema *.cxx và *.sch.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 144

- Các tập tin *.cxx chứa mã nguồn include các thư viện cần thiết. Còn các tập tin *.sch chứa mô tả các lớp cần lưu trữ vào database.

30.4. Nhn xét

Versant là một trong các sản phẩm về OODBMs khá nổi tiếng trên thế giới, đã thực sự khẳng định mình trên thế giới database, và hiện nay đã là version 6.05, Versant đã có nhiều cải tiến trong việc lưu trữ các đối tượng, cũng như cải tiến tốc độ ngày càng nhanh hơn.

Tuy nhiên ta cũng phải nhìn nhận rằng việc dùng một dòng sản phẩm bất kì nào để thiết kế cơ sở dữ liệu cho một bài toán có tính chất tương ứng cũng là khá phức tạp, nó không có được sự đơn giản trong thiết kế như bên RDBMs, ta phải làm nhiều công đoạn hơn, lo nhiều việc hơn, cũng như chịu trách nhiệm nhiều hơn cho việc thiết kế hoàn chỉnh các đối tượng dữ liệu và mạng lưới quan hệ giữa chúng.

Tuy nhiên ta cũng sẽ thấy dễ hiểu bởi tính chất của các hệ OODBMs được thiết kế cho các đối tượng dữ liệu phức tạp, có nhiều cấu trúc lồng nhau nên việc thiết kế phức tạp là điều dễ hiểu. Tuy nhiên ta vẫn mong sự phát triển của OODBMs sẽ ngày càng xa, và ngày càng có thêm nhiều dòng sản phẩm hỗ trợ tốt hơn, đơn giản hơn, tính tự động hoá cao hơn trong vấn đề phát triển một ứng dụng. Việc này sẽ nâng cao rất nhiều năng suất của một ứng dụng lớn có dùng hệ quản trị cơ sở dữ liệu làm nền tảng lưu trữ.

Đề xuất mở rộng :

Ta có thể thấy được những điều sau qua một số dòng sản phẩm nổi tiếng trên thị trường OODBMs như sau:

- Thiếu vắng đi các công cụ (tools) hỗ trợ việc tạo và thiết kế các lớp đối tượng một cách trực quan và độ an toàn cao.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 145

- Nếu có đi nữa thì sự hỗ trợ của các tool đó quá sơ sài mà lại rườm rà như FastObject chẳng hạn, chỉ dừng lại ở mức kết hợp các tập tin nguồn (C++) lại với nhau mà không có sơ đồ mô tả trực quan việc hình thành các schema rõ ràng để quản lý tốt hơn.

- Việc thiết kế các lớp đối tượng và việc phát sinh các tập tin dẫn hưóng khá rời rạc với nhau. Điều này sẽ làm cho chi phí phát triển ứng dụng tăng lên, dẫn đến khó khăn trong việc thêm/sửa các lớp đối tượng.

31. FASTOBJECTS

31.1. Gii thiu sn phm

- FastObject một thương hiệu của dòng sản phẩm hệ quản trị cơ sở dữ liệu hướng đối tượng của tập đoàn Poet Software, ra đời vào năm 2002. Tuy ra đời gần đây nhưng FastObject cũng được biết đến khá nhiều bởi sự hỗ trợ khá rộng của nó trong vấn đề database engine theo hướng đối tượng với 3 sản phẩm chính:

o FastObject j2 (phiên bản single-user): dùng để lưu trữ dữ liệu cho ứng dụng trên nền Java ở mức cục bộ.

o FastObject e7 (phiên bản single-user): dùng để lưu trữ dữ liệu cho ứng dụng trên nền C++ ở mức cục bộ.

o FastObject t7 (phiên bản multi-user): dùng để lưu trữ dữ liệu cho ứng dụng trên nền Java hoặc C++ ở mức phân tán, dữ liệu được để trên server.

- Ở đây ta nghiên cứu trên sản phẩm FO e7(FastObject e7) phiên bản loại trial, do FO không hỗ trợ phiên bản trial ở dòng sản phẩm t7.

- Cả 3 dòng sản phẩm trên của FastObject đều hỗ trợ các đặc điểm sau trong việc quản lý một OODB:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 146

o Quản lý được các đối tượng lưu trữ của bất kì lớp định nghĩa nào.

o Hỗ trợ truy xuất dữ liệu theo kiểu truy vấn (query) lẫn kiểu duyệt trực quan (navigation)

o Hỗ trợ tính kế thừa o Hỗ trợ tính đa hình

o Hỗ trợ quan hệ tham chiếu giữa các đối tượng o Hỗ trợ kiểu tập hợp các đối tượng

o Và có chỉ danh nhận dạng từng đối tượng cụ thể

- Tất cả sản phẩm của FastObject đều có tính chất: high performance, reliability, scalability, transparency.

- Do sử dụng phiên bản trial nên các chức năng không đầy đủ chẳng hạn các chức năng sau không có trong phiên bản trial (FO e7): o Lưu trữ trên Server (phiên bản trial chỉ hỗ trợ lưu trữ trên

localhost) o ODBC

o Vùng đệm xử lý đối tượng o Mã hoá dữ liệu

o Tích hợp UML

o Kết hợp các schema lại với nhau

31.2. Cài đặt

Download phiên bản dùng thử của dòng sản phẩm FO e7 tại địa chỉ

http://www.fastobject.com . Thời hạn sử dụng là: 3 tháng.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 147

31.3. Tìm hiu

31.3.1. Compile một project MSVC++6.0/MSVC++7.0

Để compile được project MSVC mà FastObject hỗ trợ cần làm những bước sau :

- Vào Project/Setting/

+ Chọn tab C/C++ / processor, ở phần Additional include directories ta sẽ bổ sung các đường dẫn tới thư mục chứa các file *.lib và các file *.hxx của FastObject.

Hình 5. 19 - Thiết lp các thư vin h tr biên dch

+ Chọn tab Link, rồi chọn

+ General, bổ sung file pt90.lib ở phần Object/library model.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 148 Hình 5. 20 – Thêm thư vin pt90.lib

+ Input, bổ sung file pt90.lib ở phần Object/library model, và đường dẫn đến thư mục library ở phần Additionallibrarypath.

Hình 5. 21 - Thêm thư vin pt90.lib 31.3.2. Tạo database trong FastObject

Bạn có thể tạo database bằng code thông qua hàm PtClassDict::CreateDatabase(). hoặc bằng FastObject Administrator.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 149 31.3.3. Xây dựng file schema (ptxx) để compile chương

trình

Để xây dựng các tập tin schema cần thiết có thể compile được trong MSVC++ thì ta dùng tool FastObject Developer. Bởi vì để có thể biên dịch được một project có sử dụng OODB FastObject, ta phải có được file cấu hình các hàm chức năng hệ thống tương ứng với lớp ta cần lưu trữ trên database, với phần mở rộng là *.ptx.

- FastObject đưa ra khái niệm WorkBook giống như khái niệm WorkSpace bên MSVC++, là một nơi chứa tất cả những schema, database cho việc phát sinh các file cần thiết cho compile.

- Để tạo WorkBook bạn dùng công cụ FastObject Developer.

- Sau khi đã tạo được WorkBook, bạn tạo một Project mới cho việc lưu trữ các file ptxx.

- Sau khi bạn tạo Project bạn chọn chức năng Add Item để add các class cần thiết của chương trình của bạn vào trong project.

- Sau khi đã tạo xong vào trong menu Option để điều chỉnh đường dẫn và tên của database tương ứng với project của bạn.

- Cuối cùng bạn chọn chức năng Build All để biên dịch ra các file ptxx tương ứng và database.

31.3.4. Một số lưu ý

Một phần của tài liệu XÂY DỰNG hệ QUẢN TRỊ HYPERMEDIA HƯỚNG đối TƯỢNG (Trang 134)

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

(178 trang)