RBTV trong CSDL hướng đối tượng – Cách
tiếp cận mới
Trình bày: Nguyễn Đức Tâm
GV: Đồng Thị Bích Thủy
Nội dung chính
1.
2.
3.
4.
5.
6.
7.
1/27/15
Nội dung bài báo
Mơ hình giám sát ngồi (External Monitoring Viewpoint)
Hệ thống Sentinel
Đánh giá kết quả
Kết luận
Hướng phát triển
Hỏi & đáp
CSDL Nâng cao
2
1. Nội dung bài báo
Phương pháp mới hổ trợ khả năng phản ứng trong CSDL hướng đối tượng
Đề xuất mơ hình giám sát ngồi cho phép đặc tả event mở rộng trên các đối tượng (ở
các lớp khác nhau)
Hỗ trợ primitive và complex event
Cơ chế đăng ký event tại thời điểm runtime
Event và RBTV được đối xử như là đối tượng lớp đầu tiên (first class objects)
1/27/15
CSDL Nâng cao
3
2. External Monitoring Viewpoint
Định nghĩa RBTV độc lập với những đối tượng mà nó giám sát
RBTV được phát ra bởi event mở rộng trên tập các đối tượng (có thể từ các lớp khác
nhau)
Bất kỳ đối tượng nào chủ động phát hiện những thay đổi của nó phản ứng và kết hợp
với RBTV để phản ứng với những thay đổi đó.
1/27/15
CSDL Nâng cao
4
2. External Monitoring Viewpoint (tt)
Event interface
Cơ chế đăng ký runtime (runtime subsciption mechanism)
1/27/15
CSDL Nâng cao
5
2. External Monitoring Viewpoint (tt)
1/27/15
Ví dụ:
CSDL Nâng cao
6
3. Hệ thống Sentinel
Các đối tượng được phân chia thành 3 loại:
Passive objects:
Đối tượng C++ truyền thống
Không phát sinh được event
Reactive objects:
Đối tượng cần được giám sát bởi RBTV
Khai báo phương thức (được giám sát) thông qua event interface
1/27/15
Notifiable objects:
Nhận biết những thay đổi trạng thái của đối tượng reactive
Và thực thi một số thao tác để phản ứng với những thay đối đó
CSDL Nâng cao
7
3. Hệ thống Sentinel (tt)
zg-pos
Notifiable
Reactive
Event
Primitive
1/27/15
Conjunction
CSDL Nâng cao
Rule
Disjunction
Sequence
8
3. Hệ thống Sentinel (tt)
1/27/15
Lớp Reactive
CSDL Nâng cao
9
3. Hệ thống Sentinel (tt)
Lớp Notifiable
Cho phép các đối tượng nhận và lưu giữ các event phát sinh bởi đối tượng reactive.
Event và Rule là 2 lớp con
Phương thức Record ghi nhận các tham số đầu vào của event được phát sinh (id
của đối tượng, event, time stamp, tham số và giá trị được gởi từ đối tượng reactive)
1/27/15
CSDL Nâng cao
10
3. Hệ thống Sentinel (tt)
Lớp Event
Trở thành đối tượng lớp đầu tiên (first class object)
Hổ trợ Primitive event và Comlex event
Primitive event có 2 dạng: begin of method (bom) và end of method (eom) event
Complex event kết hợp các primitive event thơng qua các tốn tử:
conjunction(and), disjunction(or) và sequence(tuần tự)
1/27/15
CSDL Nâng cao
11
3. Hệ thống Sentinel (tt)
Conjunction event
1/27/15
CSDL Nâng cao
12
3. Hệ thống Sentinel (tt)
1/27/15
Lớp Rule
CSDL Nâng cao
13
Ví dụ lớp reactive
Tiền tố chỉ định thời điểm phát sinh event
1/27/15
CSDL Nâng cao
14
Cách tạo event
Đối với primitive event, chỉ cần chỉ ra phương thức (method) gây ra event và thời điểm event được
phát sinh.
Event* sal = new Primitive(“end Emp::Set-Sal(float x)”);
Complex event, gộp nhiều primitive event sử dụng toán tử conjunction, disjunction hay sequence
Event* DEP = new Primitive(“end ACN::Dep(int x)”);
Event* WTD = new Primitive(“begin ACN::Wtd(int x)”);
Event* DepWtd = new Sequence(DEP, WTD);
1/27/15
CSDL Nâng cao
15
Định nghĩa RBTV
1/27/15
Khai báo trong phần định nghĩa lớp
CSDL Nâng cao
16
Định nghĩa RBTV (tt)
1/27/15
Khai báo ở mức thể hiện (instance level)
CSDL Nâng cao
17
4. Đánh giá kết quả
1/27/15
CSDL Nâng cao
18
5. Kết luận
Đề xuất mơ hình giám sát ngoại cho phép tách biệt quá trình định nghĩa đối tượng và RB với
tiến trình đặc tả và phát hiện sự kiện (event)
Cơ chế phát hiện event và xử lý RB có thể được thay đổi hay thay thế một cách dễ dàng (không
cần phải thay đổi trong phần định nghĩa đối tượng)
Mơ hình này cũng cho phép các đối tượng giám sát và phản ứng với các thay đổi trạng thái của
riêng đối tượng đó cũng như các thay đổi trạng thái của các đối tượng khác.
Cho phép định nghĩa và phát hiện primitive và comlex event tại thời điểm biên dịch hay thời
điểm runtime.
1/27/15
CSDL Nâng cao
19
6. Hướng phát triển
Chuyển đổi từ CSDL chủ động sang hệ thống Sentinel
Hổ trợ đầy đủ các event và tham số được trình bày trong Snoop [CM91] (database event,
temporal event, explicit event, begin of block and end of block event)
1/27/15
Đánh giá hiệu năng của hệ thống
Giao tiếp giữa các ứng dụng và các giao tác sử dụng CSDL chủ động.
CSDL Nâng cao
20
7. Hỏi & đáp
1/27/15
CSDL Nâng cao
21