Giới thiệu – Nét chính

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 150)

32. FASTOBJECTS – FASTOBJECTS.NET COMPONENT

32.1.Giới thiệu – Nét chính

Trong phần này chúng ta sẽ tìm hiểu thêm một dòng sản phẩm nữa về OODBMS, đó là FastObject, một sản phẩm khá là mạnh trong thị trường OODBMS.

Là sản phẩm của tập đoàn Poet Sofware GmbH 1993-2004, FastObject ngày càng trở nên mạnh hơn với khả năng tích hợp vào nhiều môi trường phát triển. Ban đầu Poet Software với sản phẩm FastObject của mình chỉ hỗ trợ cho môi trường phát triển Visual Studio 6.0 với ngôn ngữ hướng đối tượng là C++ - ngôn ngữ đã có vị trí tương đối trong danh sách các ứng viên cho OODBMS. Và ngày nay, với khả năng phát triển của mình Poet Software cộng tác với tập đoàn Versant đã nâng cấp FastObject tích hợp vào Visual Studio .NET, với khả năng hỗ trợ thêm 3 ngôn ngữ lập trình nữa là CSharp, Visual Basic.NET và JSharp. Và kết quả là FastObject.NET ra đời, có thể nói đây thực sự là bước tiến trong việc xây dựng hệ quản trị cơ sở dữ liệu hướng đối tượng. Với sự nâng cấp này FastObject đã tạo cho mình một khả năng vượt trội so với các dòng sản phẩm trước đây, bởi FastObject.NET theo Poet ngày nay thì đã thực sự là một COM. Để biết sự vượt trội của FastObject.NET sau đây ta sẽ tìm hiểu các nét chính yếu của FastObject.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 151 32.1.1. Lưu đối tượng một cách trực tiếp, dễ dàng hơn với

FastObject.NET

“Sơđồ mức logic của ứng dụng không còn phức tạp và sơ đồ

mức logic đó sẽ không là bỏđi khi cài đặt cơ sở dữ liệu”

FastObject đã đưa ra câu nói trên như để khẳng định tính năng của mình.

32.1.2. Khả năng trong suốt

Các dòng sản phẩm OODBMS ngày càng nâng cao tính năng trong suốt của mình. Bởi một hệ càng trong suốt thì càng có chỗ đứng trong thị trường database. Vậy thì trong suốt là gì? Tính trong suốt - transparent - ta có thể hiểu nó là tính năng dễ dàng trong việc tìm hiểu và sử dụng sản phẩm. Với những khả năng hỗ trợ ở mức cấp cao, giúp cho người lập trình, phát triển phần mềm không phải tốn quá nhiều công sức, nhiều code khi muốn thực hiện một yêu cầu nào đó liên quan đến việc xử lý database ở mức đơn vị. Ta có thể thấy được mức độ trong suốt của sản phẩm FastObject.NET khi mô tả một lớp có thuộc tính persistent so với mô tả lớp ban đầu thông qua hình sau:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 152 Hình 5. 22 - Mô t thuc tính persistent cho mt lp

Ta có thể thấy chỉ với từ khoá “persistent” ta đã có thể mô tả lớp Customer là persistent.

32.1.3. Chi phí về source code cho việc lưu trữ một đối tượng tượng

Với FastObject.NET, không chỉ các hàm có sẵn mà các hàm do developer xây dựng thì chỉ với 6 dòng mã nguồn ta đã có thể lưu trữ bất kì đối tượng nào, bao gồm các thuộc tính

“persistent” của đối tượng đó. Các hỗ trợ về giao tác (transaction) và các dòng mã nguồn khởi tạo sẽ vỏn vẹn trong 6 dòng code sau:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 153 Hình 5. 23 – Hình mô t mc độ code cho thao tác trên mt đối tượng

Mở database, yêu cầu một không gian làm việc (work space) cho section hiện hành. Thông qua chuỗi URL, database được nhận biết và không gian làm việc cho database đó được thiết lập. Tất cả các thao tác liên quan đến database đều nằm trong không gian làm việc này.

Dòng 2:

KHOA CNTT –

ĐH KHTN

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

Dòng 3:

Tạo đối tượng cần lưu trữ Dòng 4:

Gắn kết đối tượng vào ‘work space’. Một khi ta đã gắn đối tượng vào ‘work space’ thì FastObjects sẽ chịu trách nhiệm về đối tượng này, cũng như mọi hoạt động của đối tượng sẽ được phản hồi về FastObjects.

Dòng 5:

Kết thúc phiên giao tác (transaction). Lúc này FastObjectes sẽ (adsbygoogle = window.adsbygoogle || []).push({});

thực sự lưu đối tượng vào database trong tiến trình commit dữ liệu.

Dòng 6:

Đóng database và giải phóng vùng nhớ của work space.

Nhưng thông thường ở thực tế ta thấy việc thay đổi nội dung của dữ liệu (đối tượng) xảy ra với tần suất cao hơn là tạo lập các đối tượng mới. Và thực tế đó không gây trở ngại gì đối với một FastObjects. Nếu như một đối tượng đã được lưu trữ và nội dung bị thay đổi thì FastObjects tự động cập nhật khi kết thúc phiên giao tác chúng ta không phải lo đến vấn đề này như các hệ OODBMS trước đây.

32.1.4. Khả năng truy vấn như thế nào?

Ngay từ khi ý tưởng về hệ quản trị cơ sở dữ liệu hướng đối tượng được hình thành thì ngôn ngữ truy vấn là một trong những yếu tố cần chú ý và ODMG (Object Database Management Group – www.odmg.org), nhóm đề xuất cơ sở dữ

KHOA CNTT –

ĐH KHTN

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

liệu hướng đối tượng, đã đưa ra một ngôn ngữ truy vấn cho cơ sở dữ liệu hướng đối tượng là OQL (Object Query Language), như là ngôn ngữ chuẩn cho việc truy vấn các đối tượng trong một hệ cơ sở dữ liệu hướng đối tượng. Ngày nay hầu hết các hệ quản trị cơ sở dữ liệu hướng đối tượng đều lấy các tiêu chuẩn của ODMG như là tiêu chuẩn để thiết kế. Và FastObjects cũng không ngoại lệ, cũng dựa trên các tiêu chuẩn đó, và do đó nó cũng đã có được một bộ ngôn ngữ OQL cho riêng mình. Tuy nhiên với version 9.5.13.124 thì giới hạn của OQL còn rất hạn chế, do FastObjects vẫn đang trong giai đoạn phát triển nhưng điểm mạnh mà FastObjects làm được hiện nay là FastObjects đã tạo được sản phẩm OODBMS như là một component (phát triển trên .NET). Và với sản phẩm FastObject.NET thì việc mở rộng sử dụng OODBMS trở nên dễ dàng và mạnh hơn, đây là điều đáng mừng cho hướng phát triển của cơ sở dữ liệu hướng đối tượng. Ta có thể theo dõi một chút khả năng truy vấn của FastObjects thông qua ví dụ sau:

Hình 5. 24 - Thc hin câu truy vn bng query

Và không chỉ là OQL, FastObject đã tự tạo cho mình một ngôn ngữ hay nói đúng hơn là cách, khả năng truy vấn các đối tượng

KHOA CNTT –

ĐH KHTN

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

trong cơ sở dữ liệu thông qua hệ thống các hàm rất tiện lợi và đơn giản, rất hướng đối tượng như sau:

Hình 5. 25 - Thc hin câu truy vn bng cách gi hàm 32.1.5. Database như là một bộ nhớ mở rộng

Tiếp theo ta sẽ nói đến ưu điểm của Versant, đó là giải quyết vấn đề bộ nhớ.

Như ta biết dữ liệu (data) là vô hạn do đó không gian lưu trữ của chúng ta sẽ ngày càng tăng lên, và như vậy việc thực thi các thao tác trên các đối tượng sẽ trở nên vô cùng nan giải nếu ta không có những phương pháp hữu hiệu trong việc quản lý cơ sở dữ liệu. Đây là một trong các vấn đề của một cơ sở dữ liệu hướng đối tượng và ta sẽ xem FastObject giải quyết như thế nào?

Cũng theo ODMG lời giải cho vấn đề này tương đối cũng nhiều, nhưng thông thường và hữu hiệu nhất là dùng mạng lưới các reference và dùng phương thức “load on demand” để thao tác trên các đối tượng của cơ sở dữ liệu. Có nghĩa là các đối tượng lưu trữ trên database không thực sự được đọc hết

KHOA CNTT –

ĐH KHTN

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

vào bộ nhớ của máy tính mà nó chỉ được đọc một phần, và không chỉ có vậy, bộ nhớ không lưu trữ nội dung của đối tượng mà là các địa chỉ logic ánh xạ xuống địa chỉ vật lý thực sự của đối tượng được lưu trên đĩa. Điều này thực sự có giá trị đối với một cơ sở dữ liệu lớn.

32.2. Kh năng tích hp vi Visual Studio

Việc tạo khả năng trong suốt trong việc lưu trữ các đối tượng ra database chỉ xảy ra khi ta thiết lập khả năng cho phép nhúng các chức năng FastObjects vào trong project. Nhờ đó ta có thể tích hợp các pre- compile và nhúng các assemblies cần thiết của FastObjects để tạo khả năng persistent cho các đối tượng cần lưu trữ. Kết quả là sau mỗi tiến trình compile ta được tập tin chương trình thực thi đã tích hợp các khả năng của FastObjects, tiến trình này gọi là ‘enhanced’. Điều này rất quan trọng bởi nếu tập tin thực thi không được ‘enhanced’ nó sẽ

không có khả năng liên lạc với database.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 158 Hình 5. 27 - B sung thuc tính “persistent” vào trong Visual Studio 2003 (adsbygoogle = window.adsbygoogle || []).push({});

Thêm nữa, để bổ sung cho tính năng ‘transparent persistent’, tên của database và dictionary của database sẽ được xem như là Property của project. Sau khi chương trình được ‘enhanced’, Visual Studio sẽ tự động thiết lập thuộc tính còn lại để tạo khả năng liên lạc với database.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 159 Hình 5. 28 -Toàn cnh kh năng tích hp ca FastObject.NET vào trong Visual

Studio 2003

32.3. H tr - Cài đặt

KHOA CNTT –

ĐH KHTN

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

§ Microsoft NT 4.0, Windows 2000, Windows XP and Windows 2003 Server

§ Microsoft Windows CE (e7)

§ Linux Kernel 2.2 or greater

§ Solaris 7 / Solaris 8 / Solaris 9 (t7)

§ AIX 5.1 (t7)

§ HP-UX 11.0 (t7)

§ WindRiver VxWorks (e7)

32.4. Gii thiu FastObject.NET – phiên bn cho Microsoft .NET Framework .NET Framework

32.4.1. Giới thiệu

- FastObjects.NET một giải pháp của tập đoàn Poet đã đạt được các tiêu chuẩn của công nghệ Microsoft.NET. Nó thật sự cung cấp cho các nhà phát triển một giải pháp dễ dàng trong việc thay thế các cơ sở dữ liệu quan hệ bằng cơ sở dữ liệu hướng đối tượng. Do FastObjects.NET hỗ trợ cho chúng ta khả năng persistent của đối tượng một cách trong suốt lẫn việc quản lý trạng thái của các đối tượng hoàn toàn trong tầm tay của nhà phát triển. Với FastObjects.NET các nhà phát triển ứng dụng sẽ không còn phải lo lắng nhiều về dữ liệu cũng như vấn đề địa chỉ nơi chứa cơ sở dữ liệu của ứng dụng

- FastObjects.NET với sự tương thích Microsoft.NET thì khả năng tương thích và hỗ trợ các ngôn ngữ lập trình cũng được mở rộng thêm so với các dòng sản phẩm trước đây như FastObjects t7, FastObjects j7… FastObjects.NET làm việc với cả ngôn ngữ mô tả hình thức .NET IL

KHOA CNTT –

ĐH KHTN

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

(Intermediate Language), vì vậy nó hỗ trợ ứng dụng trên C#, J#, Manage C++, VB.NET và bất kì ngôn ngữ lập trình IL nào. Cũng như ADO.NET, FastObject.NET làm việc ở cả 2 chế độ: connect và disconnect. Thêm nữa một trong những cái mạnh của FastObjects.NET trong việc mang ý nghĩa là hệ quản trị cơ sở hướng đối tượng là nó hỗ trợ hoàn toàn mô hình kế thừa mức quan niệm, các kiểu interface và tập hợp (collection) của .NET. Và cuối cùng nó thực sự tích hợp vào trong môi trường Visual Studio.NET bởi vì nó cho phép chúng ta cập nhật lại cơ sở dữ liệu một cách tự động mỗi khi chúng ta cập nhật và biên dịch (compile) lại code.

- Bằng kiến trúc của mình, FastObjects.NET có thể bảo đảm khả năng bảo toàn nguyên vẹn dữ liệu cho các nhà phát triển ứng dụng thông qua việc sử dụng các giao tác ACID. Thêm nữa, FastObjects.NET sẽ sử dụng mô hình dữ liệu của bạn như là lược đồ cơ sở dữ liệu, điều này sẽ giúp tạo khả năng dễ truy xuất, và tăng tốc độ truy xuất, truy vấn cho các “query engine.”

32.4.2. Kiến trúc

- FastObjects.NET là hệ thống gồm một server với những chức năng khá đầy đủ lo các thao tác với cơ sở dữ liệu và tập hợp các thư viện cho phía các ứng dụng khách (client). - Với FastObjects.NET thì ta có thể thấy dễ dàng hơn trong

việc phát sinh các lược đồ cho các lớp đối tượng một cách trực tiếp từ mô hình đối tượng. Hơn nữa ta có thể ánh xạ trực tiếp các mối quan hệ giữa các đối tượng với nhau một cách rất trực quan và không cần phải thiết kế thêm bất kì

KHOA CNTT –

ĐH KHTN (adsbygoogle = window.adsbygoogle || []).push({});

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

lược đồ trung gian nào. Và các quan hệ đó cũng chính là mối quan hệ giữa các đối tượng lưu trữ ở database.

- FastObjects.NET Server liên lạc với các ứng dụng khách (application client) thông qua giao thức TCP/IP. Và đối với các ứng dụng được thiết kế dù là 2 lớp (two-tiers) hay 3 lớp (three-tiers) đi nữa thì Server cũng sẽ quản lý được tất cả các giao tác trên các ứng dụng đó tuần tự bằng cách đưa ra các điều khiển khoá (lock) đối với các đối tượng.

- Vấn đề lưu trữ đối tượng mức vật lý?

- Các đối tượng được lưu trên hệ thống tập tin của FastObjects Server. Lý do là để tăng cường tốc độ truy xuất. Đồng thời kĩ thuật cache đã được xử dụng để tăng tốc độ xử lý cho Server.

- FastObjects.NET được thiết kế để nhúng vào ứng dụng một cách gần như hoàn toàn trong suốt (transparent) và cung cấp cho ứng dụng khả năng thao tác quản lý các dữ liệu phức tạp mà không cần phải tốn thêm thời gian và chi phí nào trong việc thiết kế mô hình đối tượng. Bên cạnh đó FastObjects.NET còn cung cấp cho các nhà quản trị cơ sở dữ liệu các hàm API như là công cụ trợ giúp trong công tác DBA (Database Administrator) chẳng hạn như khả năng sao lưu cơ sở dữ liệu, gộp cơ sở dữ liệu…

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 163 Hình 5. 29 - Kiến trúc liên h gia FastObjects và .NET Application

Hình 5. 30 – Quy trình phát sinh code và tiến hành enhance 32.4.3. Thông tin kĩ thuật

KHOA CNTT –

ĐH KHTN

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

Managed C++ J#

VB.NET

Ay IL-capable language

Memory FootPoint 5.5MB

Storage Network Fastobjects Server Local File System

Develop Platforms Microsoft.NET

Compilers Visual Studio 2003 (7.1) .NET Framework 1.1 .NET Environment .NET Framework 1.1 Client Deployment OS Microsoft Windows Object Server Deployment OS Microsoft Windows

RedHat Linux Sun Solaris HP-UX

32.5. Mt s lưu ý

32.5.1. Vấn đề phiên bản

- Do điều kiện không cho phép, ta chỉ có thể download phiên bản Trial cho sản phản FastObject.NET component mà thôi.

- Ta có thể download phiên bản trial ở địa chỉ sau :

http://www.fastobjects.com/us/FastObjects_PandS_NET_a .asp

KHOA CNTT –

ĐH KHTN

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

- Mỗi phiên bản trial download ta sẽ có serial key riêng để tạo nên các tập tin license, trong khi cài đặt ta có thể tạo trực tiếp hoặc có thể tạo sau khi cài đặt cũng được. (adsbygoogle = window.adsbygoogle || []).push({});

32.5.2. Vấn đề cài đặt

- Do là phiên bản trial nên nó có một số lỗi về cài đặt đối với hệ điều hành WindowsXP/2K/NT, sau khi cài đặt FastObjects không thiết lập được đường dẫn biến môi trường đến các DLL runtime của mình được, cho nên sẽ

gây ra lỗi nghiêm trọng trong quá trình runtime và compile. Đó là ta không thể tạo database trong môi trường Visual Studio 2003, và cũng không thể chạy chương trình có thao tác đến cơ sở dữ liệu hướng đối tượng FastObjects Database, FastObjects sẽ báo lỗi Stack Dump.

- Để khắc phục lỗi này, ta thiết lập lại biến môi trường trong session làm việc của hệ điều hành trong registry là có thể tạo được database và chạy ứng dụng ở bất kì thư mục nào mà không cần chép theo các DLL runtime.

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 150)