Xây dựng hệ quản trị hypermedia
Trang 1KHOA CNTT –
ĐH KHTN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
CAO THỊ THÙY LIÊN - NGUYỄN THẾ VŨ
XÂY DỰNG HỆ QUẢN TRỊ HYPERMEDIA HƯỚNG ĐỐI TƯỢNG
LUẬN VĂN CỬ NHÂN TIN HỌC
TP HCM, 2004
Trang 2KHOA CNTT –
ĐH KHTN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
CAO THỊ THÙY LIÊN - 0012054 NGUYỄN THẾ VŨ - 0012134
XÂY DỰNG HỆ QUẢN TRỊ HYPERMEDIA HƯỚNG ĐỐI TƯỢNG
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
Thạc sĩ NGUYỄN THỊ BÍCH
NIÊN KHÓA 2000 - 2004
Trang 3Thành quả này cũng xin được gửi đến cha mẹ, để ghi dấu kết thúc cho một chặng đường dài cha mẹ nuôi con ăn học, và mở ra chân trời mới cho con bay vào đời Cuối cùng xin gởi lời cảm ơn đến tất cả thầy cô, anh chị, bạn bè đã có những ý kiến quý báu cũng như động viên chúng em thực hiện thành công đề tài
Mặc dù chúng em đã rất nỗ lực để thực hiện đề tài, thế nhưng khối lượng công việc nhiều mà thời gian có hạn, cho nên không thể tránh khỏi một vài thiếu sót Rất mong thầy cô và các bạn góp ý
Chúng em xin chân thành cảm ơn !
Thành phố Hồ Chí Minh, ngày 11 tháng 7 năm 2004 Nhóm thực hiện
ѯÒ
Trang 47.1 Vì sao lựa chọn hệ quản trị hypermedia hướng đối tượng? 16
7.2 OOHDM và hệ quản trị hypermedia hướng đối tượng 17
8 GIẢIQUYẾTVẤNĐỀLƯUTRỮDỮLIỆU 18
9 OOHDM-TỪPHƯƠNGPHÁPLUẬNĐẾNTHỰCTIỄN 20
CHƯƠNG 2:OOHDM 22
10 GIỚITHIỆU 22
11 PHƯƠNGPHÁPTHIẾTKẾHYPERMEDIAHƯỚNGĐỐITƯỢNG 22
11.1 Pha Thiết kế mức quan niệm: 23
11.2 Pha Thiết kế duyệt: 23
11.3 Pha Thiết kế giao diện trừu tượng: 24
11.4 Pha Thực thi: 24
12 PHATHIẾTKẾMỨCQUANNIỆM 24
13 PHATHIẾTKẾDUYỆT 26
13.1 Lớp duyệt (Navigation class) 26
13.2 Ngữ cảnh duyệt (Navigation context) 30
13.2.1 Ngữ cảnh lớp đơn lẻ (Simple class derived context) 31
13.2.2 Nhóm ngữ cảnh lớp (Class derived context group) 31
13.2.3 Ngữ cảnh link đơn lẻ (Simple link derived context) 31
Trang 5KHOA CNTT –
ĐH KHTN
13.2.4 Nhóm ngữ cảnh link (Link derived context group) 32
13.2.5 Ngữ cảnh tuỳ ý (Arbitrary context) 32
CHƯƠNG 3:XÂY DỰNG BỘ CÔNG CỤHỖ TRỢ PHƯƠNG PHÁP OOHDM 45
18 CÔNGCỤTHIẾTKẾLỚP-TẠOCƠSỞDỮLIỆU 45
Trang 723.1 Tổ chức thư mục cho hypertext 84
23.2 Công cụ thiết kế lớp, tạo cơ sở dữ liệu 85
CHƯƠNG 4:XÂY DỰNG SERVER CHO OOHDM 99
24 GIỚITHIỆUCHUNG 99
25 GIẢIPHÁPCHOVIỆCLỰACHỌNCƠSỞDỮLIỆU 99
26 CÀIĐẶTỨNGDỤNGOOHDMSERVER 100
26.1 Kiến trúc tầng lưu trữ 100
26.2 Kiến trúc tầng runtime 103
26.3 Giao diện chương trình 104
26.4 Chức năng của Server 106
27 CHI TIẾTCÁCLỚPĐỐITƯỢNG TẦNGSTORAGE 107
Trang 930.3.4 Tạo database trong Versant 139
30.3.5 Xây dựng file schema (imp) để compile chương trình 143
30.4 Nhận xét 144
Trang 1031.3.2 Tạo database trong FastObject 148
31.3.3 Xây dựng file schema (ptxx) để compile chương trình 149
31.3.4 Một số lưu ý 149
32 FASTOBJECTS –FASTOBJECTS.NET COMPONENT 150
32.1 Giới thiệu – Nét chính 150
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 151
32.1.2 Khả năng trong suốt 151
32.1.3 Chi phí về source code cho việc lưu trữ một đối tượng 152
32.1.4 Khả năng truy vấn như thế nào? 154
TÀI LIỆU THAM KHẢO 170
PHỤ LỤC:CÁC KHÁI NIỆM VỀCÁC HỆ QUẢN TRỊ CSDL 172
Trang 12Luận văn "Xây dựng hệ quản trị hypermedia hướng đối tượng" tập trung
tìm hiểu các lý thuyết cũng như sản phẩm phần mềm liên quan, nhằm xây dựng hệ quản trị hypermedia hướng đối tượng lưu trữ dữ liệu trên hệ quản trị hướng đối tượng
Đồng thời, luận văn cũng thiết kế một ứng dụng sử dụng hệ hypermedia đã xây dựng để minh hoạ
- Phương pháp thiết kế hypermedia hướng đối tượng OOHDM được nghiên cứu và là hướng tiếp cận chính để xây dựng hệ hypermedia - Để giải quyết phần lưu trữ dữ liệu cho hệ hypermedia, luận văn chọn biện
pháp sử dụng một hệ quản trị khác phù hợp, đó là hệ cơ sở dữ liệu hướng đối tượng Do đó, đi tìm một hệ quản trị hướng đối tượng đáp ứng yêu cầu, tìm hiểu và sử dụng nó cũng là một công việc cần làm
- Đối với ứng dụng minh hoạ, luận văn mong muốn xây dựng một ứng dụng hay, gắn liền với kiến thức lý thuyết Vì vậy mà bộ công cụ hỗ trợ phương pháp OOHDM được lựa chọn
Những công việc luận văn đã làm:
- Tìm hiểu và vận dụng phương pháp OOHDM
- Tìm hiểu hệ quản trị hướng đối tượng Versant, FastObjects và sử dụng FastObjects để cài đặt
- Cài đặt hệ hypermedia hướng đối tượng theo phương pháp OOHDM - Xây dựng bộ công cụ hỗ trợ phương pháp OOHDM
Trang 13Nhiều đề tài luận văn trước đây đã có sự nghiên cứu sâu sắc về lý thuyết hypermedia cũng như xây dựng mô hình hệ quản trị cơ sở dữ liệu hypermedia, chương trình soạn thảo các tài liệu điện tử
Chọn đề tài "Xây dựng hệ cơ sở dữ liệu hypermedia hướng đối tượng", luận văn này
mong muốn tiếp nối và phát triển các đề tài trước, với mục tiêu, đối tượng và phạm vi nghiên cứu như sau:
minh hoạ có vai trò quan trọng vì nó gắn liền với phương pháp lý thuyết Có thể nói nó thể hiện và đưa ý tưởng của phương pháp lý thuyết vào thực tiễn
- Tìm hiểu phương pháp thiết kế hypermedia hướng đối tượng OOHDM Đây là phương pháp được đưa ra để phục vụ cho việc thiết kế các ứng
Trang 14KHOA CNTT –
ĐH KHTN
dụng hypermedia với đặc thù riêng: dữ liệu là các node và link Phương pháp này do Daniel Schwabe và Gustavo Rossi, Rita de Almeida Pontes, Isabela Moura giới thiệu vào khoảng năm 1998 và phát triển dần - Xây dựng mô hình và cài đặt hệ quản trị hypermedia hướng đối tượng
dựa trên phương pháp OOHDM
- Tìm hiểu hệ quản trị cơ sở dữ liệu hướng đối tượng Versant và FastObjects, sử dụng FastObjects phục vụ cho việc cài đặt chương trình - Xây dựng ứng dụng minh hoạ: gồm 3 phần:
o Chương trình cho phép thiết kế lớp, tạo cơ sở dữ liệu theo phương pháp OOHDM
o Chương trình cho phép soạn thảo template (khuôn mẫu) theo phương pháp OOHDM Chương trình này cũng sẽ xây dựng và đưa ra một bộ hàm để soạn thảo
o Chương trình Browser với bộ phân tích template, từ đó tạo ra các trang htm và trình bày
ѯÒ
Trên đây là phần mở đầu sơ lược về lý do chọn đề tài cũng như mục đích, đối tượng và phạm vi nghiên cứu, với mong muốn giúp người đọc có cái nhìn bao quát về đề tài Chi tiết nội dung đề tài sẽ được thể hiện qua các chương tiếp theo
Trang 15KHOA CNTT –
ĐH KHTN
CHƯƠNG 1: TỔNG QUAN
Chương này xin điểm qua một số nét làm nền tảng, xuất phát điểm cho các vấn đề sẽ trình bày chi tiết ở các chương sau
Nhắc lại, theo đề tài luận văn cử nhân khoá 1998 "Tìm hiểu các mô hình
hypermedia – Xây dựng mô hình hypermedia ứng dụng trong việc soạn thảo các tài liệu điện tử" (Trần Ngọc Minh Công - Nguyễn Ngọc Đức, GVHD:
Thạc sĩ Nguyễn Thị Bích):
§ Khái niệm hypertext do Vannevar Bush đưa ra vào năm 1945
§ Hai mươi năm sau, thế hệ thứ nhất của hypermedia ra đời, hỗ trợ văn bản thuần tuý, cho nhiều người dùng chia sẻ
§ Thế hệ thứ hai ra đời vào những năm 80, hỗ trợ thêm giao diện đồ hoạ và các đoạn phim, cho một người hay một nhóm nhỏ người sử dụng
§ Hiện nay, nhiều nghiên cứu nỗ lực xây dựng thế hệ hypermedia thứ ba theo các hướng khác nhau:
• Các hệ thống ứng dụng mô hình HAM HAM do Brad Campell và Joseph M.Goodman đưa ra năm 1988, là server quản lý giao dịch lưu trữ tập trung các node, link
• Các hệ thống ứng dụng mô hình Dexter: Devise, Amsterdam Mô hình Dexter do Frank Halasz và Mayer Schwartz đề xuất vào năm 1990, được rất nhiều hệ thống hypermedia sử dụng bởi nó có một nền tảng cấu trúc bền vững của các tầng, tính mở cao dễ dàng cho các hệ
Trang 16KHOA CNTT –
ĐH KHTN
thống khác phát triển, cho phép link nhiều đầu, cho phép chia sẻ dữ liệu
• Các hệ thống thiết kế theo mô hình hướng đối tượng: Harmony
• World Wide Web: hệ hypermedia được phát triển trở thành kho tri thức chung rộng lớn, không thể thiếu của nhân loại
TRÊN PHƯƠNG PHÁP LUẬN CỦA OOHDM
7.1 Vì sao lựa chọn hệ quản trị hypermedia hướng đối tượng?
So sánh các điểm tương đồng trong phạm trù hypermedia với thế giới phân tích, thiết kế, lập trình hướng đối tượng:
§ Các simple node tương đương với các atomic object đóng vai trò loại dữ liệu nguyên thuỷ như số nguyên, ký tự, chuỗi, video frame hay ảnh bitmap
§ Đối tượng hay node đều được truy cập đến bằng định danh (identifier)
§ Một link có thể được mô tả bằng một tập ít nhất hai định danh đối tượng Bản thân link cũng là một đối tượng với định danh của chính nó, được sử dụng để trích ra thông tin chỉ mục (index) từ nội dung tài liệu
§ Một composite object (tạo bởi mạng các node và link) được xem như một aggregation của các simple object
§ Các khái niệm dữ liệu trừu tượng (data abstraction) hay tính đóng gói (encapsulation) có thể được áp dụng qua việc định nghĩa các phương thức tạo, xoá, sửa, thao tác trên node, link, duyệt link cũng như phát động (trigger) sự kiện
Trang 17KHOA CNTT –
ĐH KHTN
§ Node và link có thể được gom nhóm thành các lớp khác nhau dựa trên ngữ nghĩa cấu trúc và hành vi Việc tổ chức node và link theo ngữ nghĩa có tác dụng giúp quản trị mạng tốt hơn, loại bỏ tính mơ hồ, phân biệt rõ ràng mục đích của những đối tượng này
§ Node và link của một lớp nào đó cũng có thể kế thừa từ thuộc tính của lớp khác
§ Còn những khái niệm hướng đối tượng khác thích hợp với hypertext bao gồm: kiểm soát đồng bộ, quản lý phiên bản và
persistent
Do ngữ nghĩa mang tính hướng đối tượng như vậy, nên hệ hypermedia phát triển theo hướng đối tượng là tự nhiên và phù hợp nhất, bao gồm cả hai khía cạnh lưu trữ và thiết kế
7.2 OOHDM và hệ quản trị hypermedia hướng đối tượng
Phương pháp thiết kế hypermedia hướng đối tượng OOHDM do Daniel Schwabe và Gustavo Rossi, Rita de Almeida Pontes, Isabela Moura giới thiệu vào khoảng năm 1998, phục vụ cho việc thiết kế các ứng dụng hypermedia
Phương pháp thiết kế này sẽ phát huy tác dụng hơn nếu nó được chương trình hoá thành một công cụ hỗ trợ người dùng thay vì chỉ là lý thuyết
Muốn vậy, hệ quản trị hypermedia cũng phải được xây dựng tương
ứng với các khái niệm của OOHDM Chương 2 của luận văn sẽ trình bày lý thuyết OOHDM và qua các chương 3, 4, mô hình hệ
hypermedia hướng đối tượng dựa trên OOHDM sẽ được xây dựng
Trang 18KHOA CNTT –
ĐH KHTN
Như nhận xét ở trên, hệ hypermedia lưu trữ dữ liệu trên hệ quản trị hướng đối tượng là sự lựa chọn tự nhiên nhất Điều này được khẳng định cụ thể và rõ ràng hơn qua một số nghiên cứu của các trường Đại học:
Filesystem KnowledgeBase RDBMS OODBMS
Dễ dàng thực hiện do các khái niệm đã được biết rõ
Kỹ thuật còn mới, và do đó khó thực hiện
Thích hợp cho dữ liệu đơn giản, “flat data”
Tốt cho dữ liệu phức tạp
Cấu trúc được chuyển đổi sang quan hệ Cấu trúc được mô tả như bản thân nó Đối tượng nhận được thông qua truy vấn Thao tác (operation) trên đối tượng được
lưu trong DB
Trang 19KHOA CNTT –
ĐH KHTN
Sử dụng nhiều câu truy vấn để lấy ra 1 đối tượng
Thông điệp (message) gửi đến đối tượng và đối tượng này lại có thể gửi thông điệp đến các đối tượng khác
Kết quả truy vấn được chứa trong cấu trúc dữ liệu của ứng dụng
Thông điệp có thể thao tác trực tiếp dữ liệu trong DB và trả về con trỏ
Mỗi record trong 1 quan hệ (relation)
trong cấu trúc (hierachy) có thể bị khoá (lock)
Toàn bộ cấu trúc có thể bị khoá trong 1 thao tác (single operation)
Dữ liệu phức được "flatten" có thể dẫn đến mất đi tính trừu tượng, tính đóng gói
Có cơ chế quản lý dữ liệu phức
Không hỗ trợ tốt lắm cho làm việc hợp tác như quản lý phiên bản, kiểm soát đồng bộ
Xử lý giao tác uyển chuyển, có nhiều
Tính tương đồng giữa cơ sở dữ liệu và mô hình hypertext làm cho việc thực thi trực tiếp cấu trúc và hành vi của dữ liệu được dễ dàng hơn
Bảng 1 2 - Sự khác biệt giữa RDBMS và OODBMS, theo kết quả đánh giá của Dại học Brown [Smith & Zdonik, 1987], và [Lange, 1993]
Những nghiên cứu trên cho thấy hệ quản trị hướng đối tượng là thích hợp hơn cho cơ chế lưu trữ của hệ hypermedia Bằng cách tích hợp mô hình dữ liệu với hypertext, cách thức thu nhận thông tin sẽ được phát triển, bằng cách chuyển các chức năng từ mức độ người dùng thành mức độ cơ sở dữ liệu, sử dụng hệ quản trị hướng đối tượng
Trang 20KHOA CNTT –
ĐH KHTN
Tuy nhiên, qua các tài liệu mà chúng tôi tham khảo đến thời điểm này, thì tư tưởng trên vẫn chỉ ở mức đang được phát triển, chủ yếu là do sự chưa phổ biến của các hệ quản trị cơ sở dữ liệu hướng đối tượng
Trong quá trình tìm kiếm, chúng tôi có điều kiện tiếp xúc, tìm hiểu và sử dụng một số hệ quản trị hướng đối tượng nổi tiếng, phát triển như Versant và FastObjects Sau khi nghiên cứu và so sánh cả hai, chúng tôi quyết định chọn FastObjects cho công việc của mình
Kết quả tìm hiểu cả hai hệ cũng như lý giải sự lựa chọn trên sẽ được chúng
tôi nêu ra trong Chương 5 – Các hệ quản trị CSDL hướng đối tượng
Như trên đã nói, OOHDM vốn là một phương pháp thiết kế, và nó sẽ hiệu quả hơn nếu được chương trình hoá thành một công cụ hỗ trợ người dùng Ý tưởng này cũng được cha đẻ của OOHDM, những người có công đề ra hệ phương pháp luận này, nghĩ đến, qua công cụ thiết kế, soạn thảo trang Web động OOHDM-Web
Được mô tả chi tiết trong Chương 3 – Xây dựng bộ công cụ hỗ trợ phương pháp OOHDM, ứng dụng minh hoạ trong luận văn chúng tôi cũng
đi theo hướng này, với mong muốn thể hiện được cụ thể, rõ nét ý nghĩa cũng như tác dụng của phương pháp OOHDM Phát triển trên ý tưởng đó, nhưng ứng dụng của chúng tôi có nhiều khác biệt:
o Công cụ thiết kế lớp, tạo cơ sở dữ liệu OOHDM Definition: cho phép thiết kế và tạo các lớp dữ liệu một cách tự nhiên, vì dữ liệu được lưu trữ bằng hệ quản trị hướng đối tượng (OOHDM-Web sử dụng cơ sở dữ liệu quan hệ để lưu trữ, và theo tài liệu chúng tôi tham khảo thì công cụ này vẫn chỉ ở mức đang được phát triển)
o Công cụ thiết kế template OOHDM Template Designer: hỗ trợ người dùng soạn thảo template một cách trực quan Trong khi với OOHDM-Web, template được soạn thảo trên trình soạn thảo html bất kỳ, do đó sự
Trang 21KHOA CNTT –
ĐH KHTN
hỗ trợ người dùng cho các tính năng OOHDM bị hạn chế Ngoài ra, chúng tôi cũng cải tiến hệ thống hàm cho đơn giản, gần gũi với người dùng, đồng thời bổ sung các hàm ngoài phạm trù OOHDM, phục vụ cho việc soạn thảo trang html được hoàn thiện hơn
o Công cụ phát sinh trang htm động OOHDM Browser: phát sinh trang Web động lúc duyệt từ các template thiết kế sẵn là một ý tưởng độc đáo, giúp tiết kiệm không gian lưu trữ, và công sức của người thiết kế Web Đối với những trang Web có cấu trúc giống nhau, họ chỉ cần soạn thảo duy nhất một template (quá trình soạn thảo cũng như tập tin kết quả template đều rất đơn giản) Trình duyệt với bộ phân tích cú pháp sẽ tự phân tích template và phát sinh trang htm động Công cụ này có ý nghĩa quan trọng vì nó cho ra thành quả cuối cùng, quyết định sự thành công của ứng dụng
ѯÒ
Trên đây là cái nhìn tổng quan về những vấn đề được đặt ra và giải quyết trong luận văn này Cụ thể từng vấn đề sẽ được đào sâu trong từng chương sau
Trang 22KHOA CNTT –
ĐH KHTN
CHƯƠNG 2: OOHDM
Phương pháp thiết kế hypermedia hướng đối tượng OOHDM Oriented Hypermedia Design Method) do Daniel Schwabe và Gustavo Rossi, Rita de Almeida Pontes, Isabela Moura giới thiệu vào khoảng năm 1998
(Object-Phương pháp này cung cấp một hệ thống các khái niệm trừu tượng phục vụ cho việc thiết kế ứng dụng hypermedia cũng như làm cho các tác vụ của ứng dụng trở nên dễ dàng hơn
Thông qua kỹ thuật hướng đối tượng, phương pháp OOHDM giúp nhà thiết kế xây dựng được một kiến trúc duyệt tốt, đây là một trong những chìa khoá đưa đến thành công cho ứng dụng hypermedia
TƯỢNG
Cơ sở của hướng tiếp cận OOHDM:
- Các đối tượng duyệt được xem là khung nhìn (view - từ dùng trong cơ sở dữ liệu) của các đối tượng mức quan niệm
- Hình thành các khái niệm trừu tượng thích hợp để tổ chức không gian duyệt, và giới thiệu khái niệm ngữ cảnh duyệt
- Tách các vấn đề giao diện ra khỏi vấn đề duyệt
- Nhận thức rõ rằng có những quyết định thiết kế cần được đưa ra trong và chỉ trong giai đoạn thực thi mà thôi
Trang 23KHOA CNTT –
ĐH KHTN
Nền tảng của hướng tiếp cận OOHDM là tách quá trình thiết kế ứng dụng hypermedia thành bốn pha riêng biệt: Thiết kế mức quan niệm (Conceptual design), Thiết kế duyệt (Navigation design), Thiết kế giao diện trừu tượng (Abstract interface design) và Thực thi (Implementation)
11.1 Pha Thiết kế mức quan niệm:
Giai đoạn mô tả lĩnh vực (domain) của ứng dụng, không quan tâm đến người sử dụng (user profile) hay tác vụ Có hai loại đối tượng được mô tả gồm:
o Những đối tượng cuối cùng sẽ trở thành các node trong mô hình duyệt (entity object)
o Những đối tượng hỗ trợ tính toán cho ứng dụng, đóng gói hành vi như thuật toán, truy cập cơ sở dữ liệu, v.v
Kết quả, giai đoạn này xây dựng nên mô hình cho lĩnh vực của ứng dụng Mô hình này có thể phục vụ cơ bản cho những ứng dụng khác trong cùng lĩnh vực, và không chứa bất cứ thông tin cụ thể nào liên quan đến việc duyệt
11.2 Pha Thiết kế duyệt:
Thông tin về những loại người sử dụng và các tác vụ tương ứng được sử dụng để rút ra các đối tượng duyệt (node, link, kiến trúc truy xuất) và cách chúng được cấu trúc
Ở giai đoạn này, nhà thiết kế sẽ thu thập các đối tượng của không gian duyệt thành một tập hợp có nghĩa gọi là ngữ cảnh duyệt (navigation context) Mỗi ngữ cảnh định nghĩa cách thức mà quá trình duyệt diễn tiến, bằng cách chỉ ra sự biến đổi trong không gian duyệt, nghĩa là, tập hợp các đối tượng duyệt có thể truy cập vào một thời điểm nhất định
Trang 24KHOA CNTT –
ĐH KHTN
11.3 Pha Thiết kế giao diện trừu tượng:
Các đối tượng duyệt được ánh xạ vào bản vẽ giao diện (interface construct)
Công việc của giai đoạn này là chỉ ra các đối tượng giao diện (interface object) làm trung gian cho tương tác của người dùng với các đối tượng duyệt Kết quả, mô hình giao diện (interface model) chỉ ra: đối tượng giao diện nào người sử dụng có thể thấy, đối tượng giao diện nào sẽ hoạt hoá quá trình duyệt, các đối tượng giao diện multimedia sẽ được đồng bộ hoá như thế nào, và sự biến đổi giao diện sẽ xảy ra thế nào
11.4 Pha Thực thi:
Mang trách nhiệm thi hành bản vẽ giao diện, giai đoạn này ánh xạ các đối tượng quan niệm, duyệt và giao diện vào một môi trường run-
time đích, có thể bao gồm việc định nghĩa các trang HTML, script,
truy vấn dữ liệu v.v… Qua đó nhà soạn thảo sẽ có được ứng dụng hypermedia thật sự để chạy
Việc phân chia thiết kế quan niệm, duyệt và giao diện thành các hoạt động riêng biệt cho phép ta tập trung vào một công việc trong một thời điểm Kết quả, ta có những đơn vị thiết kế có thể tái sử dụng
Mặt khác, thiết kế nguyên thuỷ cũng có thể ánh xạ vào môi trường hay ngôn ngữ thực thi phi đối tượng
Sản phẩm của bước này là lược đồ lớp bao gồm các hệ thống con system), lớp và quan hệ
Trang 25(sub-KHOA CNTT –
ĐH KHTN
OOHDM dùng hệ ký hiệu tương tự như UML, nhưng khác biệt ở chỗ sử dụng các thuộc tính đa trị, và việc phân biệt hướng rõ ràng trong các quan hệ
Để minh hoạ, ta xem xét ví dụ sau, một lược đồ đơn giản cho tạp chí trực tuyến:
Hình 2 1 – Mô hình mức quan niệm cho một tạp chí trực tuyến
Trong mô hình này, Story có thể là Essay, Translation hay Interview Một
Interview là một aggregation của Q&A (question & answer) Mỗi Story có
một Author, và một Interview có quan hệ với Person liên quan nó
Không có lớp Magazine trong lược đồ này, mà nó sẽ tồn tại trong giai đoạn
Thiết kế duyệt
Thuộc tính lớp được phân loại, mỗi loại được gọi là một perspective Ví dụ
trong hình trên, thuộc tính Illustration của Essay có thể là Photo hay Video,
ký hiệu [p1, p2], dấu + có thể thêm vào một perspective để cho biết nó là giá
trị mặc định
Trang 26KHOA CNTT –
ĐH KHTN
Aggregation trong định nghĩa lớp tương tự như khái niệm component trong
mô hình hypermedia Mối quan hệ tiềm ẩn tồn tại giữa một đối tượng phức
tạp với thành phần của nó và giữa các thành phần với nhau được gọi là link
cấu trúc trong mô hình hypermedia
Việc sử dụng mô hình hướng đối tượng để mô tả các khía cạnh khác nhau của một ứng dụng hypermedia cho phép diễn tả phong phú các hoạt động tính toán như là truy vấn động, chỉnh sửa đối tượng trực tuyến, tìm kiếm heuristic
Mô hình duyệt (navigational model) ở giai đoạn này được xây dựng như là một khung nhìn trên mô hình quan niệm, do đó có thể xây dựng các mô hình duyệt khác nhau tương ứng với người sử dụng khác nhau
Có hai lược đồ được quan tâm đến trong giai đoạn này:
- Lược đồ lớp duyệt (navigational class schema): định nghĩa phạm vi
duyệt (navigational domain) của ứng dụng hypermedia Tương tự như mô hình hypermedia, trong OOHDM có một tập hợp các loại lớp duyệt được định nghĩa trước: node, link, anchor và các cấu trúc truy cập (index – mô tả các cách có thể để bắt đầu duyệt)
- Lược đồ ngữ cảnh duyệt (navigational context schema)
13.1 Lớp duyệt (Navigation class)
Lớp duyệt (navigation class, tức là node) được ký hiệu bằng ký hiệu lớp với một ô vuông ở góc trên bên phải Thuộc tính đa trị trong mô hình quan niệm được ánh xạ thành các thuộc tính khác nhau của lớp duyệt
OOHDM cho phép node được định nghĩa bằng cách kết hợp các thuộc tính của các lớp riêng biệt có liên quan nhau trong mô hình quan niệm Node sở hữu các thuộc tính đơn, link anchor, và có thể là
Trang 27KHOA CNTT –
ĐH KHTN
atomic hoặc composite Anchor là thể hiện của lớp Anchor (hoặc một
trong những lớp con của nó) và được tham số hoá bằng loại link nó sở hữu Hành vi duyệt chuẩn khi một node nhận được thông điệp
“anchorSelected()” là giao phó thông điệp này cho anchor tương
ứng, để nó hoạt hoá link tương ứng Có thể định nghĩa lại hành vi chuẩn của anchor hay node để thực hiện kiểm tra trước khi quá trình duyệt diễn ra
Đây là một trong những cải tiến chính của OOHDM, nhận ra các đối tượng mà người dùng duyệt không phải là đối tượng mức quan niệm Do đó, thuộc tính node được định nghĩa như là những khung nhìn hướng đối tượng của các lớp mức quan niệm, bằng ngôn ngữ truy vấn Điều này cho phép node được định nghĩa bằng cách cung cấp truy cập đến thuộc tính của các lớp riêng biệt có liên quan nhau trong lược đồ quan niệm
Link phản ánh những mối quan hệ mức quan niệm dự kiến sẽ được duyệt bởi người dùng cuối Các ứng dụng khác nhau (trên cùng một lĩnh vực) có thể chứa không gian duyệt khác nhau tuỳ theo người dùng Ví dụ, website về kiến trúc có thể chứa thông tin phân loại công trình cho các chuyên gia, và không chứa thông tin này đối với người dùng thông thường
Link kết nối các đối tượng duyệt và có thể là quan hệ 1-1 hay 1-n Cấu trúc truy cập (index hay guided tour) được định nghĩa như lớp, mô tả các cách duyệt thay thế trong ứng dụng hypermedia Quan hệ giữa node và các đối tượng mức quan niệm, giữa link và các quan hệ trong lược đồ được diễn tả bằng Observer Design Pattern Cú pháp chung định nghĩa thuộc tính node như sau (tương tự đối với link):
NODE name [FROM className: varName] [INHERITS FROM
nodeClass]
Trang 28KHOA CNTT –
ĐH KHTN
attri: type1 [SELECT name1] [FROM class1:varName1, classj:
- name: tên lớp của node đang tạo
- className: tên lớp mức quan niệm (từ đó node được ánh xạ) - nodeClass: tên super-class
- attri: tên thuộc tính của lớp, typei là loại thuộc tính
- namei: chủ thể cho biểu thức truy vấn, vari là các biến diễn tả điều
kiện logic
- logical expression: cho phép định nghĩa lớp có thể hiện là kết hợp
của các đối tượng được định nghĩa trong lược đồ quan niệm, khi những điều kiện trên các thuộc tính và/hay quan hệ của chúng có hiệu lực
Ví dụ, một lớp node Story, chứa như là thuộc tính của nó name và
bio của Person viết nó, và một anchor của một link đến Person đó
Trong mô hình quan niệm, name và bio của Person là thuộc tính của
lớp này
Ví dụ ở trên cho kết quả định nghĩa node như sau:
Trang 29KHOA CNTT –
ĐH KHTN
NODE Story [FROM Story:St] [INHERITS FROM Person]
author: String [SELECT Name] [FROM Person:Pr WHERE Pr Is
Author of St]
auhtor_bio: String [SELECT Bio] [FROM Person:Pr WHERE Pr Is
Author of St]
(các thuộc tính khác được giữ lại từ lớp Story mức quan niệm)
toAuthor: Anchor (Is Author of) END
Giá trị thuộc tính toAuthor là một anchor được tham số hoá với lớp
Link Is Author of Khi định nghĩa thể hiện giao diện của lớp node Story ta có thể để anchor xuất hiện như một button ẩn phía trên tên
tác giả (thuộc tính author) Mặc dù có vẻ như hai thuộc tính có cùng
hành vi, nhưng chỉ anchor là hồi đáp lại sự kiện giao diện
Trang 30KHOA CNTT –
ĐH KHTN
Hình 2 2 – Mô hình duyệt cho tạp chí trực tuyến
Lớp Person không xuất hiện, và thuộc tính của Author bây giờ là bộ phận của lớp Story Tương tự với lớp Interview
13.2 Ngữ cảnh duyệt (Navigation context)
Một ứng dụng hypermedia thiết kế tốt phải quan tâm đến cách người dùng duyệt không gian hypermedia Ta cần giúp người dùng chọn cách duyệt nào phù hợp mà họ có thể kiểm soát được Giải pháp thông thường cho vấn đề này là có một công cụ định hướng, chính vì vậy mà khái niệm ngữ cảnh duyệt xuất hiện
Sau khi các lớp duyệt đã được xây dựng, tiếp theo ta sẽ cấu trúc không gian duyệt có thể cho người dùng Trong OOHDM, ta nhóm các đối tượng duyệt thành những tập hợp gọi là ngữ cảnh (context)
Trang 31KHOA CNTT –
ĐH KHTN
Một ngữ cảnh duyệt là một tập node, link, lớp ngữ cảnh và các ngữ cảnh duyệt khác Mỗi định nghĩa ngữ cảnh bao gồm: các yếu tố nó chứa; đặc tả cấu trúc duyệt bên trong nó; một điểm vào; giới hạn truy cập bằng các lớp và thao tác người dùng; và những cấu trúc truy cập liên quan
Có năm cách khác nhau để định nghĩa ngữ cảnh:
13.2.1 Ngữ cảnh lớp đơn lẻ (Simple class derived context)
Chứa tất cả đối tượng của một lớp thoả một vài tính chất, ví dụ
“buildings with address = Rio de Janeiro” Một biến thể của
loại này là query-based context, người dùng xác định các tính
chất vào lúc duyệt Ký hiệu đồ hoạ:
Hình 2 3 – Ký hiệu đồ hoạ cho ngữ cảnh lớp đơn lẻ
13.2.2 Nhóm ngữ cảnh lớp (Class derived context group)
Là tập hợp các ngữ cảnh lớp đơn lẻ, trong đó tính chất mang tính định nghĩa cho mỗi ngữ cảnh được tham số hoá; ví dụ
“building by location” (location có thể thay đổi)
Ký hiệu đồ hoạ:
Hình 2 4 – Ký hiệu đồ hoạ cho nhóm ngữ cảnh lớp
13.2.3 Ngữ cảnh link đơn lẻ (Simple link derived context)
Chứa tất cả đối tượng liên quan đến đối tượng cho trước; ví dụ
“buildings designed by Oscar Niemeyer” Ký hiệu đồ hoạ
như 4.2.1
Trang 32KHOA CNTT –
ĐH KHTN
13.2.4 Nhóm ngữ cảnh link (Link derived context group)
Tập hợp các ngữ cảnh link đơn lẻ, mỗi ngữ cảnh có được bằng
cách thay đổi yếu tố nguồn của link; ví dụ “buildings designed
by architect” (architect thay đổi) Ký hiệu đồ hoạ như 4.2.2
13.2.5 Ngữ cảnh tuỳ ý (Arbitrary context)
Là một tập hợp liệt kê (enumerated set); ví dụ, một guided
tour Ký hiệu đồ hoạ như 4.2.1
13.2.6 Ngữ cảnh động (Dynamic context)
Ngoài năm loại ngữ cảnh trên, loại ngữ cảnh động xuất hiện trong một số tài liệu, là tập hợp trong đó các yếu tố của một ngữ cảnh có thể thay đổi như là kết quả của quá trình duyệt bởi
người dùng; ví dụ history, shopping basket (được người đọc
xây dựng trong khi duyệt qua các đối tượng (ví dụ là sách) trong các ngữ cảnh khác) Nếu ứng dụng cho phép tạo hay chỉnh sửa đối tượng (class instance), tất cả ngữ cảnh nhận được từ những đối tượng này sẽ là động, điều này cũng đúng trong trường hợp link
Ký hiệu đồ hoạ:
Hình 2 5 - Ký hiệu đồ hoạ cho ngữ cảnh động
Với tất cả các ngữ cảnh trên, nếu có một cấu trúc truy cập được định nghĩa cho nó, thì ký hiệu đồ hoạ tương ứng chứa một ô đen nhỏ ở góc trên bên trái Kết hợp với ngữ cảnh có các cấu trúc truy cập (index) ký hiệu đồ hoạ bởi:
Trang 33KHOA CNTT –
ĐH KHTN
Hình 2 6 – Ký hiệu đồ hoạ cho các cấu trúc truy cập
Ngữ cảnh duyệt tổ chức không gian duyệt thành các tập hợp phù hợp (consistent) có thể được duyệt theo một thứ tự nhất định
Cấu trúc duyệt của một ứng dụng được định nghĩa trong lược đồ ngữ cảnh (context diagram), trình bày tất cả cấu trúc truy cập và ngữ cảnh được định nghĩa cho ứng dụng này, và quá trình duyệt có thể có giữa chúng
Hình 2.7 là lược đồ ngữ cảnh duyệt cho tạp chí trực tuyến, trong đó
Magazine hình thành bởi Story được nhóm theo một số tiêu chuẩn
khác nhau
Hình 2 7 - Lược đồ ngữ cảnh duyệt cho tạp chí trực tuyến
Index được chỉ ra bởi các ô với đường đậm, nét đứt, như là "Main Menu" Loại ngữ cảnh đơn giản nhất (tập các node) được ký hiệu bởi:
Trang 34KHOA CNTT –
ĐH KHTN
Hình 2 8 – Ký hiệu đồ hoạ cho tập các node
Trong ví dụ này, tập các Story được mô tả như là “Highlights” của 1
Magazine nhất định
Một nhóm các ngữ cảnh bao gồm các node của cùng một lớp, theo tiêu chuẩn khác nhau, ký hiệu nhóm ngữ cảnh như sau:
Hình 2 9 – Ký hiệu đồ hoạ cho nhóm ngữ cảnh
Ô đen ở góc trên bên trái chỉ ra rằng nhóm có một index đến các thành phần của nó Định nghĩa của ngữ cảnh tự nó sẽ chỉ ra loại của quá trình duyệt được cho phép trong ngữ cảnh, giá trị điển hình là “sequential”, “circular sequential”, “index” (chỉ có thể duyệt từ một index đến một yếu tố và trở lại), hoặc “index sequential”
Việc thiếu một đường đứt giữa các nhóm cho biết có thể tự động chuyển từ một ngữ cảnh của một nhóm sang một ngữ cảnh của nhóm kia Còn các nhóm ngữ cảnh “by reference”, “by query” và “hightlights” đều được ngăn cách bởi đường nét đứt Có nghĩa là, ví
dụ như, nếu người đọc đang xem một Story trong một section cho trước, anh ta sẽ được phép duyệt qua, hoặc là Story kế tiếp của
section này, hoặc là Story kế tiếp của cùng tác giả Tuy nhiên, anh ta
sẽ không được phép duyệt qua Highlights kế tiếp
Trang 35KHOA CNTT –
ĐH KHTN
Mũi tên đi từ "Story" trở lại chính nó cho biết Story có thể tham khảo đến các Story khác liên quan Nếu người đọc đang xem một Story, và lần theo link đến một Story liên quan, anh ta sẽ ở trong ngữ cảnh tất cả các Story liên quan được nhóm lại Lúc này, anh ta phải quay trở lại, hoặc là Story ban đầu, được chỉ ra bởi mũi tên hai đầu, hoặc là
"summary index", được chỉ ra bởi mũi tên từ “Story” đến “Index of sections”
Một khi ngữ cảnh được định nghĩa, có thể mở rộng định nghĩa của các lớp duyệt bằng cách chỉ ra “decorator”, là các thuộc tính chỉ hiển thị khi một đối tượng được truy cập trong một ngữ cảnh cho trước Những thuộc tính như vậy được định nghĩa trong các lớp InContext Node được làm phong phú hơn bởi tập các lớp InContext, cho phép một node trông khác biệt và trình bày các thuộc tính khác nhau (bao gồm anchor), cũng như các phương thức khác nhau khi được duyệt
trong một ngữ cảnh nhất định (hình 2.10) Ví dụ, khi duyệt “Stories
by Bob Woodward”, tiểu sử tác giả có thể không được chứa như là
thuộc tính của Story, trong khi nó có thể được chứa khi duyệt
“Highlights” (hình 2.11) Việc làm phong phú node này tuân theo
cấu trúc của Decorator Design Pattern
Hình 2 10 – Node trong ngữ cảnh được tạo bởi node cơ bản và decorator
Trang 36KHOA CNTT –
ĐH KHTN
Hình 2 11 - Đặc tả của lớp InContext cho Story trong ngữ cảnh Highlights Trong trường hợp này, tiểu sử tác giả chỉ được thấy khi một Story được truy cập
bên trong ngữ cảnh Highlights
Giai đoạn này:
- Định nghĩa cách thức các đối tượng duyệt khác nhau sẽ xuất hiện; đối tượng giao diện nào sẽ hoạt hoá quá trình duyệt và các chức năng ứng dụng; đối tượng giao diện nào mà người dùng sẽ nhìn thấy; cũng như những diễn tiến giao diện nào sẽ xảy ra và xảy ra khi nào
- Cho phép xây dựng các giao diện khác nhau cho cùng một mô hình duyệt, dẫn đến sự độc lập mức cao về kỹ thuật giao diện người dùng - Chỉ ra một cách rõ ràng diễn tiến nào thuộc về giao diện cũng đồng thời
là diễn tiến của quá trình duyệt Có sự phân biệt giữa các thao tác duyệt và thao tác giao diện, không phải tất cả những gì xảy ra ở giao diện đều liên quan đến quá trình duyệt
- Chỉ ra diễn tiến giao diện nào là cục bộ đơn giản không ảnh hưởng đến tình trạng của quá trình duyệt, do đó không cần truy cập đến web server
Trang 37KHOA CNTT –
ĐH KHTN
Khi thực thi, giao diện của ứng dụng Web thường được tạo bởi các trình soạn thảo HTML chuyên biệt, nhiều khía cạnh quan trọng của giao diện có thể bị loại trừ
OOHDM dùng hướng tiếp cận Khung nhìn dữ liệu trừu tượng (Abstract Data View design) để mô tả giao diện người dùng của một ứng dụng hypermedia
Khung nhìn dữ liệu trừu tượng (ADV - Abstract Data View) là các mô
hình chính thức của đối tượng giao diện và được chỉ ra bằng cách cho biết: - Các khía cạnh tĩnh, có cấu trúc của những đối tượng giao diện
- Cách thức chúng liên hệ tĩnh với Đối tượng dữ liệu trừu tượng (ADO -
Abstract Data Object), ở đây là các đối tượng duyệt Ta sử dụng Lược đồ cấu hình (configuration diagram) để diễn tả những mối quan hệ này Một ADV liên hệ với một đối tượng ứng dụng tương ứng, đối tượng này hành động như một server đối với các thao tác không đặc trưng cho giao
diện Đối tượng này được gọi là ADV owner
- Cách thức chúng cư xử để phản ứng lại các sự kiện bên ngoài; cụ thể, chúng kích hoạt quá trình duyệt thế nào, và diễn tiến giao diện nào xảy
ra khi người dùng tương tác với ứng dụng OOHDM sử dụng
ADV-chart, và một hệ thống ký hiệu tương tự Petri-Net để diễn đạt các vấn đề
đồng bộ hoá thường được gặp khi làm việc với dữ liệu multimedia
ADV là các đối tượng có trạng thái và giao diện, trong đó giao diện có thể được thi hành thông qua thông điệp (cụ thể là các sự kiện bên ngoài phát sinh bởi người dùng) ADV trừu tượng ở chỗ chúng chỉ mô tả giao diện và trạng thái chứ không thực thi ADV được sử dụng để mô tả giao diện giữa hai phương tiện khác nhau như là người dùng, mạng hay một thiết bị (ví dụ Timer), hoặc giao diện giữa hai hay nhiều ADO ADO là các đối tượng không hỗ trợ sự kiện bên ngoài do người dùng phát sinh Từ quan điểm kiến trúc, ADV là nhà quan sát (observer) cho ADO, vì v ậy giao thức liên lạc
Trang 38KHOA CNTT –
ĐH KHTN
giữa giao diện và đối tượng ứng dụng sẽ tuân theo quy tắc mô tả trong Observer Design Pattern
Một ADV được sử dụng trong thiết kế ứng dụng web có thể được xem như một đối tượng giao diện Nó gồm một tập các thuộc tính định nghĩa những
đặc tính perception của nó, và một tập các sự kiện nó có thể xử lý, ví dụ như
những sự kiện do người dùng phát sinh
Giá trị thuộc tính có thể được định nghĩa như hằng số, để xác định các kiểu trình bày cụ thể như vị trí, màu sắc, âm thanh Nói chung, ADV chỉ ra tổ chức và hành vi của giao diện, nhưng trình bày vật lý thật sự hay trình bày ADV trên màn hình được làm ở giai đoạn thực thi
Một biến được lưu trữ, “perceptionContext”, dùng để chỉ ra sự chỉnh sửa của
không gian perception (tập hợp các đối tượng có thể thấy tại một thời điểm)
Khi ta muốn để đối tượng nào đó có thể được thấy, ta bổ sung nó vào perceptionContext, và các yếu tố được loại khỏi perceptionContext sẽ không được thấy nữa
Trong ngữ cảnh của OOHDM, các đối tượng duyệt như là node, index sẽ
đóng vai trò ADO, và ADV liên kết với chúng sẽ được dùng để xác định thể
hiện của chúng đến người dùng Chúng ta sẽ dùng từ ADV để chỉ các đối
tượng và các lớp giao diện
ADV có thể được bao gồm bởi aggregation hay composition của các ADV
mức thấp hơn, do đó cho phép việc xây dựng giao diện người dùng với các đối tượng có thể thấy được lại bị ẩn đi Giả sử, ví dụ, ta có ứng dụng vẽ Hình 2.12 cho thấy một ADV mô tả một bức vẽ có thể tạo bởi 3 ADV, chứa một image, text và một button Ngoài ra, ADV có thể được tổ chức trong những cấu trúc tổng quát hoá / đặc biệt hoá cung cấp một framework mức quan niệm để định nghĩa thứ bậc của các đối tượng giao diện
Trang 39KHOA CNTT –
ĐH KHTN
Hình 2 12 – ADV có thể là aggregation
Hình 2 13 – ADV sử dụng khái niệm kế thừa
Trong Hình 2.13, AnchoredText là một đối tượng giao diện, nó thêm một tập anchor (được thực thi trong ví dụ như là các hotword) vào TextField tổng quát hơn Trong khi Description là một button được chuyên biệt hoá bằng
cách thêm vào một hành vi được tuỳ biến hơn (không cho thấy trong hình)
Trang 40KHOA CNTT –
ĐH KHTN
Hình 2 14 – ADV Painting trong trang Web Portinari
ADV Painting chứa một số thuộc tính mô tả các khía cạnh nhất định của một
bức vẽ và nhiều ADV ẩn như Picture, References và People Trong ký hiệu ở Hình 2.14 References và People không được cho thấy cùng một lúc, do đó ADV của chúng chồng lên nhau Các ADV ShowPeople, ShowReferences là
control cho phép hiển thị một trong các ADV đề cập trước đó ADV
InContext Theme thi hành giao diện của lớp InContext Theme và cung cấp
những công cụ duyệt bên trong ngữ cảnh duyệt Paintings of a Theme
Trong khi lược đồ trên cho thấy bản chất tĩnh của giao diện Painting, tính
chất động được mô tả bằng ADV-chart Khi ShowPeople được click, nó gửi
thông điệp trình bày danh sách People liên quan đến bức vẽ, và tương tự với
ShowReference Đây là hiệu ứng hoàn toàn về giao diện, không tính đến việc
duyệt qua node khác Trong khi đó, khi đối tượng giao diện Previous được
click, nó gửi thông điệp "anchorSelected (previous)" đến ADO tương ứng, trong trường hợp này một đối tượng InContext liên lạc với anchor tương ứng và nhờ đó ta duyệt đến bức vẽ khác