Thiết kế lớp duyệt

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

21. MÔ HÌNH LỚP ĐỂ XÂY DỰNG BỘ CÔNG CỤ

23.2.1. Thiết kế lớp duyệt

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 86 Hình 3. 3 – Form to database, thiết kế lp duyt

Mô tả form:

§ Button New Class: Muốn tạo lớp mới cho database, người dùng nhấn button New Class, form thiết kế lớp sẽ hiện ra.

§ Button Update / Delete Class: Muốn cập nhật (tên, các thuộc tính) một lớp đã có sẵn, người dùng chọn tên lớp đó trong danh sách, nhấn button Update Class để gọi form cập nhật lớp, hoặc nhấn button Delete Class để xoá lớp.

§ Button Build DB: Sau khi đã tạo lớp, thuộc tính cho database muốn tạo mới, người dùng nhấn Build DB. Database sẽ thật sự được gửi đi và tạo trên server, còn các thao tác xác nhận trước đó chỉ nhằm lưu trữ trong bộ nhớ ở client.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 87 Hình 3. 4 - Thc hin to các lp duyt cho hypertext BookShopPrj

§ Grid nhập cấu trúc lớp: dùng context menu của grid để thêm hay xoá dòng (tương đương với thêm hay xoá thuộc tính).

§ Sau khi tạo xong lớp, muốn tiếp tục tạo lớp khác, người dùng nhấn button Create Other.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 88 23.2.2. Tạo đối tượng cho các lớp duyệt

Hình 3. 5 – Form nhp liu cho các lp duyt

Thao tác nhập liệu:

§ Chọn database trong combo và nhấn Load. Danh sách các lớp của database được chọn sẽ được đưa vào combo class.

§ Chọn class muốn nhập liệu và nhấn Load. Chương trình sẽ

gửi yêu cầu đến server để lấy các đối tượng hiện có của lớp về và liệt kê trong grid.

§ Dùng grid để nhập liệu. Sau đó để xác nhận thêm, xoá, sửa cho đối tượng nào ta click vào ô bất kỳ của đối tượng đó rồi nhấn button Create, Delete hoặc Update object.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 89 Hình 3. 6 - Nhp liu cho lp Book ca hypertext BookShopPrj

23.2.3. Mô tả ngữ cảnh duyệt

Hình 3. 7 – Form mô t các ng cnh duyt

KHOA CNTT –

ĐH KHTN

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

§ Chọn database cần mô tả và nhấn button Load để lấy từ

server các ngữ cảnh duyệt đã có của database đó. Danh sách các ngữ cảnh sẽ hiện ra trong grid (chỉ dùng để đọc).

§ Muốn sửa hoặc xoá ngữ cảnh nào, người dùng click vào dòng tương ứng với ngữ cảnh đó trong grid rồi nhấn button Update để gọi form cập nhật ngữ cảnh, hoặc nhấn button Delete để xoá.

§ Muốn tạo mới một ngữ cảnh, người dùng nhấn button New. Sau đó chọn loại ngữ cảnh muốn tạo trong context menu. Form mô tả ngữ cảnh sẽ xuất hiện.

KHOA CNTT –

ĐH KHTN

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

23.3. Công c son tho template

Hình 3. 9 – Giao din công c thiết kế template

Thành phần giao diện của công cụ gồm có:

§ TreeView cấu trúc của hypertext, gồm các template nào, mỗi template gồm các frame nào. Khi click chuột phải vào item bất kỳ trên TreeView này, context menu tương ứng với item đó (là hypertext, template hay frame) sẽ hiện ra.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 92 Hình 3. 10 – Context menu cho hypertext

• Context menu cho template: Dùng menu item Template properties có thể đặt màu nền, nhạc nền, ảnh nền cho template đó (tức cho tập tin htm tương ứng)

Hình 3. 11 - Context menu cho template

• Context menu cho frame: Frame có thể được copy từ

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 93 Hình 3. 12 - Context menu cho frame

§ Dãy Toolbar button cũng có chức năng tương tự như các context menu này.

§ TabPage Page Frames để thiết kế vị trí, màu sắc cho các frame.

Hình 3. 13 - TreeView Function và TabPage Design Frames

§ TreeView Function: danh sách các hàm do công cụ cung cấp để thiết kế template. Có thể dùng context menu gắn với TreeView hoặc click đúp vào 1 function để thêm hàm vào frame.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 94 Hình 3. 14 – Context menu cho TreeView Function

§ TabPage Design Frames chứa nội dung các hàm của frame đó, cách nhau bằng dấu xuống dòng. Có thể dùng context menu gắn với RichTextBox để hỗ trợ cho việc sử dụng hàm:

Hình 3. 15 - Context menu cho TabPage Design Frames

23.4. Công c Browser

o Giao diện trình duyệt: người dùng nhấn vào nút Select template để chọn template bắt đầu. Trình duyệt sẽ tự động phân tích, tạo tập tin htm tương ứng (đặt trong thư mục Htm của thư mục hypertext) và trình bày. Người dùng click vào link trên trang htm kết quả để chuyển sang trang kế tiếp.

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 95 Hình 3. 16 - Tp tin htm được to tương ng vi template tplHome.tpl

Template tplHome.tpl:

tplHome,BookShopPrj,-8323073,,,1 frHome,-1,10,10,712,523

{

Alignment(center)

Text(Minh họa việc tạo template, function cũng như tạo và duyệt htm tương ứng; Font(Arial;6;Bold, Italic;-16744448))

NewLine()

Image(ConCaiChungTaGioiThat.jpg) EndAlignment()

NewLine()

LinkTpl(tplIdxClsDerivedCtx.tpl; Template với context loại 1 IdxClsDerivedCtx)

KHOA CNTT –

ĐH KHTN

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

LinkTpl(tplIdxClsDerivedGrpCtx.tpl; Template với context loại 2 IdxClsDerivedGroupCtx)

}

Hình 3. 17 - Tp tin htm được to tương ng vi template tplIdxClsDerivedCtx.tpl Template tplIdxClsDerivedCtx.tpl: tplIdxClsDerivedCtx,BookShopPrj,-1,wallpaper01.jpg,,1 frIdxClsDerivedCtx,-1,10,10,651,501 { Alignment(center)

KHOA CNTT –

ĐH KHTN

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

Text(Minh họa context loại 1 IdxClsDerived; Font(Arial;6;Bold;-65536))

EndAlignment() NewLine()

Text(Danh sách các sách trong lớp Book; Font(Arial;5,25;Bold, Italic;-16744320))

NewLine()

IdxClsDerived(BookList; BookName; Vertical()) }

KHOA CNTT –

ĐH KHTN

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

Template tplBook.tpl:

tplBook,BookShopPrj,-1,,Adoration.mid,5 Default frame,-1,10,10,784,83

{

AllLinksAtt(BookName; GlobalContext; Horizontal(><)) }

Default frame 2,-1,10,93,784,167 {

Alignment(center);

AttribImg(Book; GlobalInstance; BookImg; GlobalContext) EndAlignment();

}

Default frame 3,-1,10,260,787,286 {

AttribFont(Book; GlobalInstance; BookDescr; GlobalContext; Font(Times New Roman;3;Regular;-16777088))

} frNext,-1,696,547,100,53 { NextLinkHtm(Next; GlobalContext) } frPrev,-1,596,546,100,54 { PrevLinkHtm(Prev; GlobalContext) }

KHOA CNTT –

ĐH KHTN

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

CHƯƠNG 4:

XÂY DNG SERVER CHO

OOHDM

24. GII THIU CHUNG

- Nội dung chương này sẽ đề cập đến vấn đề xây dựng server cho việc lưu trữ các lớp đối tượng hypermedia dựa trên phương pháp OOHDM và sử dụng cơ sở dữ liệu hướng đối tượng để lưu trữ. Môi trường lập trình được chọn để phát triển là Microsoft Visual C# (.NET Framework 1.1.1432) chạy trên hệ điều hành WindowsXP/2k/NT.

- Toàn bộ quá trình cài đặt chia làm 4 phần:

- Cài đặt OOHDM Server. Đây là chương trình chạy trên máy chủ quản lý toàn bộ các giao dịch với các máy client, quản trị cơ sở dữ liệu hypermedia

- Cài đặt chương trình OOHDM Definition

- Cài đặt chương trình OOHDM Template Designer - Cài đặt chương trình OOHDM Browser

25. GII PHÁP CHO VIC LA CHN CƠ S D LIU

- Ban đầu khi xây dựng OOHDM, vì hoạt động trên môi trường mạng, cơ sở dữ liệu tập trung ở Server và do bài toán mang tính hướng đối tượng

KHOA CNTT –

ĐH KHTN

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

nên ta phải chọn một hệ quản trị cơ sở dữ liệu hướng đối tượng và phải hỗ trợ mô hình client/server với multi-user. Và ứng cử viên đầu tiên là Versant, một trong những sản phẩm nổi tiếng và lâu đời với công nghệ OODBMS. Thế nhưng do Versant phát triển từ rất sớm nên Versant bị dính rất chặt với C/C++. Vậy cho nên khi công nghệ .NET ra đời thì Versant gặp vấn đề ở ngôn ngữ hỗ trợ, các version từ 6.0.5.2 trở về trước không thể biên dịch thành công 100% các chương trình trên môi trường Microsoft VC++ 7.0 trở lên. Một lý do đơn giản là C mà .NET sử dụng là ANSI C++, còn Versant lại sử dụng C/C++ thường cho việc xây dựng các thư viện hỗ trợ của mình. Do đó sẽ không thể phát triển ứng dụng trên môi trường .NET.

- Do đó ta sẽ chọn sản phẩm của FastObjects thuộc tập đoàn Poet. Ở những ngày đầu FastObjects cũng chỉ hỗ trợ trên môi trường Microsoft Visual C++6.0 mà thôi. Nhưng năm 2004 FastObjects đã cộng tác với Versant tung ra sản phẩm FastObjects.Net với khả năng tích hợp hoàn toàn vào môi trường Visual Studio .NET, hỗ trợ ngôn ngữ C#, VB.NET, Jsharp, và với sản phẩm FastObjects.Net này Poet đã thực sự có được một OODBMS theo kiểu Component của mình.

- Vấn đề về hệ quản trị cơ sở dữ liệu đã được giải quyết, thế nhưng lại phát sinh vấn đề là làm thế nào để chuyển các đối tượng đã được lưu vào trong cơ sở dữ liệu từ server đến client ? Và vấn đề cũng đã được giải quyết, ta có thể xem cách giải quyết ở phần “kiến trúc phần lưu trữ” bên dưới.

26. CÀI ĐẶT NG DNG OOHDM SERVER

26.1. Kiến trúc tng lưu tr

- Ta sẽ xem xét sơ đồ quan hệ giữa các lớp OOHDM được lưu trữ vào cơ sở dữ liệu hướng đối tượng, đây là sơ đồ biểu diễn mới ở mức cơ sở dữ liệu của FastObject.NET:

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 101 Hình 4. 1 - Kiến trúc tng lưu tr

- Khi có yêu cầu lưu trữ từ client, server sẽ tiến hành đổi các đối tượng tương ứng sang dạng có thể lưu trữ.

- Lý do chuyển đổi?

Thật ra theo như tính chất của sản phẩm FastObjects.NET mà ta nói ở các chương trước, thì không cần phải thêm bất kì thao tác hay thêm dòng code nào ngoài những dòng code chuẩn của FastObjects.NET để thực hiện việc lưu trữ các đối tượng của một lớp cả. Nhưng do ứng dụng của ta hoạt động theo giao thức TCP/IP, giữa client và server có sự chuyển dữ liệu với nhau và dữ

KHOA CNTT –

ĐH KHTN

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

liệu ở đây là những thể hiện (đối tượng) của các lớp OOHDM. Do đó ta phải sử dụng tính năng Serialize của .NET để đồng bộ các thể hiện của các lớp thành các đối tượng dữ liệu tập tin; khi đó ta chỉ việc gửi các gói tin với phần dữ liệu là nội dung của tập tin từ

server cho client hoặc ngược lại để trao đổi thông tin với nhau. Nhưng thuộc tính Serialize của .NET chỉ cho phép serialize một số kiểu cơ bản mà thôi, vì lý do này ta không thể serialize các đối tượng đã được đánh dấu là persistent của FastObjects.NET. Do đó ta phải tạo các lớp gần như song sinh với các lớp OOHDM cơ bản nhưng chỉ chứa các thuộc tính và phương thức cần lưu vào cơ sở dữ liệu bằng cách xây dựng thêm hàm Clone().

- Sau khi đã có được các đối tượng có khả năng lưu vào cơ sở dữ liệu, ta sẽ gởi lệnh lên FastObjects.NET component để lưu vào cơ sở dữ liệu.

KHOA CNTT –

ĐH KHTN

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

26.2. Kiến trúc tng runtime

Hình 4. 2 - Kiến trúc tng runtime

- Server được thiết kế theo mô hình 3 lớp.

- Giao diện tách với phần xử lý, ứng với mỗi form ta sẽ có lớp xử lý tương ứng cho form đó, và nếu có yêu cầu về dữ liệu, lớp xử lý sẽ

tiến hành gởi yêu cầu cho lớp chuyên trách về Database.

Ví dụ: ta có lớp FrmMain là lớp hiển thị giao diện tương tác với người dùng, thì nó sẽ có lớp xử lý tương ứng là DFormMain. - Khi client có yêu cầu về dữ liệu, client sẽ gởi yêu cầu lên cho

KHOA CNTT –

ĐH KHTN

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

HDBServerCtl. Trong HDBServerCtl có chứa đối tượng HDBServerEngine, đối tượng này sẽ lo các giao tác giữa client và server.

- HDBServerEngine sẽ tạo biến session cho client để theo dõi hoạt động của client, đồng thời cập nhật các trạng thái của server và theo dõi hoạt động kết nối và ngắt kết nối từ client.

26.3. Giao din chương trình

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 105 Hình 4. 4 – Form điu chnh các tham s v connection

Ở form này ta có thể thiết lập lại các tham số liên quan đến phần kết nối giữ client và server như: thay đổi địa chỉ ip của server, số hiệu cổng lắng nghe…

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 106 Hình 4. 5 – Form điu chnh các tham s v session

Với form này ta có thể thay đổi các tham số liên quan đến vấn đề session và log file. Ta có thể điều chỉnh chế độ tạo log file, kích thước tối đa của log file…

26.4. Chc năng ca Server

Như đã trình bày ở trên, OOHDM Server sẽ lắng nghe ở port mặc định là 2411, và số hiệu này có thể điều chỉnh lúc runtime, hoặc thay đổi lúc cài đặt chương trình.

Server có các chức năng sau:

- Khởi động dịch vụ gởi nhận thông tin để lắng nghe yêu cầu từ

phía client

- Tạo phiên làm việc cho client khi client kết nối thành công - Ghi nhận các phiên làm việc của từng client

KHOA CNTT –

ĐH KHTN

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

- Ghi nhận các hoạt động của client có liên quan đến thao tác trên cơ sở dữ liệu

- Ghi nhận trạng thái làm việc của chính mình (server) - Hủy phiên làm việc của client

- Tạo kết nối với client - Hủy kết nối với client

- Lưu dữ liệu nhận được vào cơ sở dữ liệu - Đọc dữ liệu từ có sở dữ liệu và gửi cho client - Sao lưu cơ sở dữ liệu

- Tạm dừng liên lạc với client

- Dừng hẳn dịch vụ gửi nhận thông tin

27. CHI TIT CÁC LP ĐỐI TƯỢNG TNG STORAGE

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 108 Hình 4. 6 – Sơđồ quan h gia các lp OOHDM

27.1. PERCArbitraryCtx

27.1.1. Thuộc tính

STT Kiểu dữ liệu Tên thuộc tính Ý nghĩa

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 109 27.1.2. Phương thức

STT Dữ liệu trả ra Tên phương thức Các tham số Ý nghĩa

5. CNavigationContext override Clone Hàm sao chép đối tượng hiện hành và trả về một đối tượng có khả năng serialize

27.2. PERCAttributeValue

27.2.1. Thuộc tính

STT Kiểu dữ liệu Tên thuộc tính Ý nghĩa

1. String attValue Chuỗi chứa giá trị cho các biến của lớp CClassAttribute

27.2.2. Phương thức

STT Dữ liệu trả ra Tên phương thức Các tham số Ý nghĩa

1. CAttributeValue Clone Hàm sao chép đối tượng hiện hành và trả về một đối tượng có khả năng serialize 2. String override ToString

27.3. PERCClassAttribute

27.3.1. Thuộc tính

STT Kiểu dữ liệu Tên thuộc tính Ý nghĩa 3. string m_sAttName Tên thuộc tính

KHOA CNTT –

ĐH KHTN

Sinh viên thc hin: Cao Th Thu Liên - Nguyn Thế Vũ Trang 110 27.3.2. Phương thức

STT Dữ liệu trả ra Tên phương thức Các tham số Ý nghĩa

1. CClassAttribute Clone Hàm sao chép đối tượng hiện hành và trả về một đối tượng có khả năng serialize 2. CClassAttribute static DeSerialize string fn Đọc thông tin từ file

vào đối tượng

3. Serialize string fn Ghi đối tượng ra tập tin

27.4. PERCClassDerivedGroupCtx

27.4.1. Thuộc tính

STT Kiểu dữ liệu Tên thuộc tính Ý nghĩa

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

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

(178 trang)