1. Trang chủ
  2. » Luận Văn - Báo Cáo

Công nghệ tác tử và bài toán quản trị CSDL ngành thuế

86 792 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 5,31 MB

Nội dung

Để có thể có cái nhìn tổng quan về vấn đề này, nắm được tầm quan trọng của nó, có được những cơ sở về phương pháp luận cũng như kinh nghiệm cho việc triển khai các hệ thống tôi đã chọn đ

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TRỊNH VĂN ĐẠI

CÔNG NGHỆ TÁC TỬ VÀ BÀI TOÁN QUẢN TRỊ CSDL NGÀNH THUẾ

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI - 2013

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TRỊNH VĂN ĐẠI

CÔNG NGHỆ TÁC TỬ VÀ BÀI TOÁN QUẢN TRỊ CSDL NGÀNH THUẾ

Ngành: Công nghệ Thông tin

Chuyên ngành: Công nghệ Phần mềm

Mã số: 60 48 10

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN VĂN VỴ

HÀ NỘI - 2013

Trang 3

LỜI CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined.

MỤC LỤC 3

MỞ ĐẦU 5

BẢNG CÁC CHỮ VIẾT TẮT 7

DANH MỤC BẢNG BIỂU HÌNH VẼ 8

CHƯƠNG 1 TỔNG QUAN VỀ TÁC TỬ VÀ ORACLE SERVER 9

1.1 Tổng quan về tác tử 9

1.1.1 Giới thiệu về tác tử 9

1.1.2 Khái niệm tác tử 9

1.1.3 Các đặc điểm của tác tử phần mềm thông minh 12

1.1.4 Phân loại tác tử 16

1.1.5 Phân biệt tác tử thông minh và các hệ thống khác 22

1.2 Tổng quan kiến trúc Oracle Server 24

1.2.1 Oracle Instance 24

1.2.2 Oracle Database 30

1.2.3 Kết nối tới Oracle Server 35

1.3 Công cụ quản trị CSDL Oracle 36

1.3.1 Các công cụ quản trị CSDL Oracle 36

1.3.2 Công cụ quản trị Oracle Enterprise Manager 36

1.3.3 Các công cụ quản trị khác 39

CHƯƠNG 2: THỰC TRẠNG HỆ THỐNG CNTT VÀ BÀI TOÁN QUẢN TRỊ CSDL NGÀNH THUẾ 41

2.1 Thực trạng hệ thống CNTT ngành Thuế 41

2.1.1 Các hệ thống ứng dụng ngành Thuế 41

2.1.2 Hệ thống máy chủ Database ngành Thuế 44

2.1.3 Hạ tầng truyền thông và hệ thống mạng giữa ba cấp 47

2.1.4 Đánh giá hiện trạng CNTT ngành Thuế 51

2.2 Bài toán quản trị CSDL ngành Thuế 52

2.2.1 Quản lý, vận hành các hệ thống 52

2.2.2 Theo dõi, giám sát hoạt động của các hệ thống 53

CHƯƠNG 3: PHÂN TÍCH & THIẾT KẾ HỆ THỐNG QUẢN LÝ, VẬN HÀNH CÁC CSDL NGÀNH THUẾ 55

3.1 Quản lý, vận hành tập trung các CSDL ngành Thuế 55

3.1.1 Mô hình tổng thể hệ thống quản lý, vận hành các CSDL ngành Thuế 55

3.1.2 Mô hình vật lý hệ thống quản lý, vận hành các CSDL ngành Thuế 57

3.2 Theo dõi, giám sát hoạt động các CSDL 58

3.2.1 Luồng xử lý trong việc theo dõi, giám sát hoạt động các CSDL 58

Trang 4

3.2.2 Phương thức cảnh báo 59

3.3 Cấu hình cây thư mục Tác tử 60

3.4 Cấu hình cây thư mục Dịch vụ quản lý 61

3.5 Thiết kế, chuẩn hóa các quy trình quản lý, vận hành các CSDL ngành Thuế 62

3.3.1 Quy trình giám sát định kỳ 62

3.3.2 Quy trình xử lý sự cố 64

3.3.3 Quy trình sao lưu cơ sở dữ liệu 66

3.3.4 Quy trình khôi phục cơ sở dữ liệu 66

3.3.5 Nhật ký quản trị CSDL 67

CHƯƠNG 4: CÀI ĐẶT HỆ THỐNG 69

4.1 Phạm vi cài đặt 69

4.1.1 Tại Tổng cục 69

4.1.2 Tại Cục Thuế và Chi cục Thuế 69

4.2 Nội dung cài đặt 69

4.2.1 Tại Tổng cục 69

4.2.2 Tại Cục Thuế và Chi cục Thuế 70

4.3 Một số giao diện sau cài đặt hệ thống 70

4.3.1 Trang chủ 70

4.3.2 Các đối tượng 71

4.3.3 Các cảnh báo 72

4.3.4 Các thống kê, báo cáo 72

4.4 Kết quả 73

KẾT LUẬN 74

TÀI LIỆU THAM KHẢO 75

PHỤ LỤC 76

Phụ lục 1: Danh sách metric 76

Trang 5

Trong nhiều hướng để phát triển phần mềm, việc áp dụng công nghệ tác tử là một hướng đi mới và góp phần quan trọng để phát triển hệ thống thông tin với các đặc điểm như phân tán, phức tạp, luôn biến động… Nó không những giúp rút ngắn được thời gian phát triển phần mềm, mà còn tạo ra các hệ thống phần mềm hoạt động tin cậy, thông minh, linh hoạt, di động, tự trị… để có thể phản ứng lại thích hợp với những biến động liên tục của môi trường và đem đến cho người dùng sự hài lòng cao nhất

Trong điều kiện của Việt Nam, trình độ công nghệ và kỹ năng phát triển phần mềm của các tổ chức phát triển phần mềm còn rất hạn chế Việc ứng dụng công nghệ tác tử cho các bài toán thực tiễn là rất ít, gần như chưa có một ứng dụng nào được triển khai ở các tổ chức, cơ quan nhà nước từ trung ương xuống địa phương

Trên thế giới, vai trò và lợi ích của cách tiếp cận hướng tác tử được nhận ra từ rất sớm Từ những năm 90, các tổ chức và trường đại học nghiên cứu về tác tử phát triển rất mạnh mẽ Một ví dụ điển hình, viện nghiên cứu MIT của đã phát triển một loạt các dự án liên quan đến công nghệ tác tử đã được triển khai rất thành công trên thực tế như: Smart Mobility, Car in the City, Goal-Oriented Web Search User Interfaces và còn tiếp tục mở rộng cũng như phát triển các ứng dụng khác FIPA một

tổ chức nghiên cứu về tác tử nổi tiếng với các nỗ lực chuẩn hóa tác tử cũng đưa ra một

số kết quả nghiên cứu về ngôn ngữ truyền thông tác tử như ACL, KQML…Một ví dụ khác về sự áp dụng thành công công nghệ tác tử cho phát triển các ứng dụng thương mại là sản phẩm Corpernic của công ty Copernic Technologies, Inc Ngoài ra còn có sản phẩm JACK - một môi trường phát triển tác tử của công ty Tác tử Oriented Software Limited được FIPA chấp nhận rộng rãi

Qua đây, ta có thể thấy sử dụng công nghệ tác tử cho các hệ thống lớn, phức tạp

và phân tán là một hướng đi mới, đóng góp vai trò quan trọng trong việc ứng dụng rộng rãi trên thế giới nói chung và Việt nam nói riêng Để có thể có cái nhìn tổng quan

về vấn đề này, nắm được tầm quan trọng của nó, có được những cơ sở về phương pháp luận cũng như kinh nghiệm cho việc triển khai các hệ thống tôi đã chọn đề tài “Công nghệ Tác tử và Bài toán quản trị cơ sở dữ liệu ngành Thuế”

Trang 6

Cơ sở khoa học của đề tài: Công nghệ Tác tử là một nhánh chuyên sâu của công nghệ hướng đối tượng Nó trợ giúp việc thu thập thông tin và tự động hóa một số hoạt động xử lý từ xa Cơ sở dữ liệu Oracle có các công cụ giúp việc thiết lập, xây dựng các tác tử Ta có thể dùng nó để trợ giúp tự động hóa một số xử lý, thực hiện với các dữ liệu được quản lý trong Cơ sở dữ liệu Oracle

Cơ sở thực tiễn: Trong nội dung hoạt động nghiệp vụ của ngành Thuế ở các cấp khác nhau trong hệ thống phân cấp quản lý, nhiều hoạt động quản lý, vận hành, xử lý với khối lượng lớn đang phải do người thực hiện Nếu áp dụng tác tử có thể giảm công sức của người và tăng tốc độ hoạt động của hệ thống đem lại hiệu quả ứng dụng CNTT trong hoạt động tác nghiệp

Kết cấu luận văn gồm bốn chương:

Chương 1: Giới thiệu tổng quan về tác tử, tổng quan về Oracle Server và các công cụ trong việc quản trị các CSDL Đây là nền tảng, cơ sở lý thuyết cho việc đề xuất mô hình, giải pháp xử lý cũng như thiết kế hệ thống

Chương 2: Luận văn tập trung vào trình bày thực trạng hệ thống CNTT ngành Thuế và các bài toán tồn tại trong công tác quản lý, vận hành các hệ thống thông tin nói chung và các CSDL nói riêng

Chương 3: Đề xuất giải pháp xây dựng và thiết kế hệ thống xử lý cho các bài toán ở chương 2, đồng thời xây dựng các quy trình quản lý, vận hành các CSDL dựa trên hệ thống đã thiết kế

Chương 4: Cài đặt thử nghiệm hệ thống tại các cấp dựa trên mô hình, công cụ OEM Một số kết quả thử nghiệm thu được

Cuối cùng là kết luận, tài liệu tham khảo và phụ lục

Trang 7

BẢNG CÁC CHỮ VIẾT TẮT Viết tắt Tên đầy đủ

Trang 8

Hình 1.1 Tác tử và môi trường của nó 10

Hình 1.2 Mô hình về tác tử 11

Hình 1.3 Tác tử phản ứng 13

Hình 1.4 Tác tử hướng mục tiêu 14

Hình 1.5 Tác tử học 15

Hình 1.6 Các tiêu chí phân loại tác tử 17

Hình 1.7 Ba tiêu chí phân chia trong tác tử thông tin 19

Hình 1.8 Ba tiêu chí phân chia trong tác tử cộng tác 20

Hình 1.9 Ba tiêu chí phân chia trong tác tử giao tác 21

Hình 1.10 Kiến trúc Oracle Server 24

Hình 1.11 Cấu trúc Share Pool 25

Hình 1.12 Database buffer cache 26

Hình 1.13 Redo log buffer 27

Hình 1.14 Database Writer (DBWR) 28

Hình 1.15 Log Writer (LGWT) 28

Hình 1.16 Cấu trúc cơ sở dữ liệu 30

Hình 1.17 Quan hệ giữa cơ sở dữ liệu, tablespace và datafile 32

Hình 1.18 Kết nối tới Oracle Server 35

Hình 1.19 Oracle Enterprise Manager 37

Hình 1.20 Oracle Enterprise Manager 39

Hình 2.1 Hệ thống các ứng dụng ngành Thuế 41

Hình 2.2 Hệ thống máy chủ tại Tổng cục Thuế 44

Hình 2.3 Hệ thống máy chủ tại Cục Thuế 45

Hình 2.4 Máy chủ tại Chi cục Thuế, mô hình triển khai cấp cục 46

Hình 2.5 Máy chủ tại Chi cục Thuế, mô hình triển khai cấp chi cục 47

Hình 2.6 Hạ tầng truyền thông ngành Thuế 48

Hình 2.7 Mô hình vật lý hệ thống mạng ngành Thuế 49

Hình 2.8 Mô hình logic hệ thống mạng ngành Thuế 50

Hình 2.9 Mô hình logic hệ thống mạng Chi cục Thuế 51

Hình 3.1 Mô hình tổng thể 56

Hình 3.2 Mô hình vật lý 57

Hình 3.4 Nguyên lý xử lý việc theo dõi, giám sát hoạt động các CSDL 58

Hình 3.5 Sơ đồ quy trình xử lý sự cố 65

Trang 9

1.1 Tổng quan về tác tử

1.1.1 Giới thiệu về tác tử

Tác tử là thuật ngữ hiện đang được sử dụng rộng rãi trong lĩnh vực công nghệ thông tin nói riêng và hệ thống thông tin nói chung Ví dụ, trong cộng đồng tác tử di động, thuật ngữ tác tử được chỉ như một tiến trình phần mềm có khả năng di chuyển giữa các nền khác nhau trên mạng Ngược lại, trên Internet, tác tử được coi là phần mềm có khả năng hoạt động tự trị, thực hiện một nhiệm vụ cụ thể và thường là để tìm kiếm, thu thập, lọc thông tin cho người dùng

Cho đến nay, vẫn tồn tại rất nhiều tranh cãi xung quanh vấn đề ”Tác tử là gì?”, chưa có một cách tiếp cận đầy đủ nào cho các vấn đề đưa ra Vì vậy, chúng ta cần đi sâu vào tìm hiểu, giải thích rõ thuật ngữ tác tử là gì? Tại sao ta phải nghiên cứu công nghệ tác tử Những lợi ích do nó mang lại là gì? Ở đây chỉ đưa ra một định nghĩa được chấp nhận rộng rãi trong cộng đồng nghiên cứu tác tử và giải thích các khái niệm liên quan đến tác tử để có thể hiểu được các thuộc tính, thành phần cũng như cách thức hoạt động của tác tử Đồng thời cũng đưa ra một cách phân loại tác tử dựa trên một số tiêu chí nhằm mang lại cái nhìn tổng quan, giúp cho các nhà phát triển phần mềm quản

lý tốt hơn các tác tử

1.1.2 Khái niệm tác tử

Thật ra tác tử là một thuật ngữ có rất nhiều cách định nghĩa khác nhau, với các

quan điểm khác nhau Theo một số nhà nghiên cứu tác tử thì: “Tác tử có thể là rất

nhiều thứ Nếu cố gắng tìm ra một mẫu thức chung về hoạt động hoặc quan niệm lý thuyết thì có thể gặp phải sai lầm”

Một số định nghĩa về tác tử đã được đề xuất như: định nghĩa về tác tử của hai tác giả Russel and Norvig; định nghĩa của Maes và Parrie; định nghĩa của Smith, Cypher and Spohrer; và của Wooldridge and Jennings Trong đó đáng chú ý nhất và cũng là định nghĩa sẽ được sử dụng để mô tả và giải thích về tác tử là định nghĩa của Wooldridge, nội dung như sau:

Trang 10

Hình 1.1 Tác tử và môi trường của nó Tác tử là một hệ thống tính toán bao gói, được đặt trong một môi trường cụ thể, và có khả năng hoạt động linh hoạt, tự trị trong môi trường đó để thỏa mãn mục tiêu thiết kế.[Wooldridge, 1997]

Theo định nghĩa này thì tác tử là:

(1) các thực thể giải quyết vấn đề có định danh rõ ràng với phạm vi và giao diện hoàn

toàn xác định;

(2) được đặt trong một môi trường cụ thể - chúng nhận đầu vào là các trạng thái của

môi trường qua bộ cảm ứng (sensor) và tác động lên môi trường đó qua các bộ tác động (effector);

(3) được thiết kế để thực thi một vai trò cụ thể - chúng có các mục tiêu cụ thể để theo

đuổi;

(4) tự trị - chúng có quyền điều khiển trạng thái và hành vi bên trong của mình;

(5) có khả năng đưa ra hành vi giải quyết vấn đề linh hoạt (tùy biến theo ngữ cảnh) –

chúng cần phải phản ứng lại những thay đổi diễn ra trong môi trường với thời gian cho phép, để đáp ứng được mục tiêu thiết kế và có tính tích cực (có khả năng chấp nhận các mục tiêu mới và đi tiên phong trong việc thực hiện nhiệm vụ để đạt được mục tiêu thiết kế của chúng) [M.Wooldridge and N.R.Jennings, 1995]

Mỗi tác tử khi được tạo ra đều có một định danh duy nhất để phân biệt nó với các tác tử khác Định danh này là một thành phần quan trọng để tham gia vào quá trình truyền thông Hơn thế, một tác tử phải tương tác với môi trường của nó để đạt được mục tiêu Nó phải có khả năng thu thập thông tin về môi trường và đưa ra các quyết

Trang 11

định dựa trên thông tin này, sau đó khởi tạo các hoạt động cụ thể dựa trên các quyết định

Hình 1.2 Mô hình về tác tử

Việc truyền thông giữa các tác tử cũng có thể xảy ra, tức là tác tử phải có ngôn ngữ truyền thông và có khả năng cộng tác với các đối tượng khác, để giải quyết các vấn đề phức tạp

Một tác tử luôn yêu cầu một mức ”độ thông minh” nhất định để thực hiện công việc và như vậy là nói đến tác tử thông minh

Một tác tử thông minh có thể được hiểu là một chương trình phần mềm thông thường, bởi vì mỗi chương trình phần mềm thông thường đều thực hiện một công việc xác định và đem lại cho người dùng sự tiết kiệm thời gian đáng kể Nhưng chỉ sự thông minh mới cho phép tác tử thực hiện công việc của nó một cách tự trị và chỉ yêu cầu sự can thiệp của con người trong những quyết định quan trọng Kết quả là việc xử

lý tự trị là một tiêu chí quan trọng đối với các tác tử thông minh và là một trong những

sự khác nhau giữa các tác tử thông minh và các phần mềm thông thường

Ví dụ về tác tử thông minh: nếu bạn muốn đặt một chuyến du lịch, bạn yêu cầu travel tác tử làm điều này cho bạn Bạn hi vọng nó sẽ thực hiện các công việc một cách độc lập, nhanh chóng và đáng tin cậy Đầu tiên, nó sẽ thu thập thông tin từ phạm vi

Trang 12

rộng lớn các nguồn tài nguyên thông tin do được các dịch vụ từ nhiều nhà cung cấp khác nhau, xác định các công ty du lịch tốt nhất Tránh các xung đột hoặc không nhất quán trong việc lựa chọn các thành phần riêng lẻ và cuối cùng đưa ra thông tin về chuyến đi hoàn chỉnh Điều này không chỉ tiết kiệm thời gian của khách hàng trong việc tìm hiểu các kiến thức cụ thể về việc đặt chỗ mà còn tiết kiệm một lượng chi phí đáng kể

Tóm lại, tác tử là một phạm trù mới trong xã hội thông tin Ta có thể hiểu tác tử

là một chương trình phần mềm, mà có thể thực hiện các công việc xác định cho người dùng với một mức độ thông minh nhất định Hơn thế, nó còn có khả năng thực hiện các công việc một cách tự trị và tương tác với môi trường một cách có ích, ví dụ như các tác tử hỗ trợ cho người dùng trong việc tìm kiếm, thu thập, lọc thông tin Các tác

tử thông minh cung cấp các công cụ cho xã hội thông tin mà không có một thành phần nào trong thế giới số có thể làm được

1.1.3 Các đặc điểm của tác tử phần mềm thông minh

Một tác tử có thể chứa một số đặc tính nhất định tùy thuộc độ phức tạp của chúng Các đặc điểm của tác tử thông minh có thể được phân thành hai nhóm: bên trong và bên ngoài

Các thuộc tính bên trong của tác tử là các thuộc tính xác định các hoạt động bên trong tác tử Bao gồm khả năng học, phản ứng, tự trị và hướng mục tiêu Các thuộc tính bên ngoài bao gồm tất cả các thuộc tính ảnh hưởng lên tương tác giữa các tác tử hoặc giữa tác tử với con người ví dụ như khả năng truyền thông hoặc cộng tác Tuy nhiên cũng có một số thuộc tính thuộc vào cả hai nhóm

1.1.3.1 Tính phản ứng (Reactivity)

Một tác tử có khả năng phản ứng lại những ảnh hưởng hoặc thông tin từ môi trường Môi trường này có thể bao gồm các tác tử khác, người dùng, các nguồn thông tin từ bên ngoài hoặc các đối tượng vật lí

Trang 13

Hình 1.3 Tác tử phản ứng

Khả năng phản ứng tạo nên một trong những yêu cầu cơ bản cho một tác tử và được hỗ trợ từ các tác tử khác Tác tử phải có các bộ cảm biến thích hợp hoặc chứa các

mô hình bên trong về môi trường của nó để có thể phản ứng lại với các thay đổi của

của môi trường Trường hợp đầu tiên được gọi là tác tử phản ứng chân thực, trái lại các tác tử có mô hình môi trường bên trong được gọi là tác tử thảo luận

Rất nhiều tác tử quan sát (watcher agent) khả dụng là những ví dụ về tác tử phản ứng đơn giản Các tác tử đó có nhiệm vụ quản lí các nguồn thông tin cụ thể, ví dụ Internet servers và thông báo cho người dùng khi nội dung thay đổi Nó bao gồm một

bộ cảm ứng đơn giản và những thành phần mà chúng có thể thực hiện các chức năng quan sát được yêu cầu, như màn hình trang web Nếu xảy ra một thay đổi, tác tử có thể đọc lại thông tin tương ứng và tìm kiếm thông tin mới

1.1.3.2 Tính năng động, Hướng mục tiêu (Proactivity/Goal-orientation)

Thuộc tính năng động là mức trên của thuộc tính phản ứng Nếu một tác tử không chỉ phản ứng lại với các thay đổi của môi trường mà còn tự kích hoạt trong những hoạt động cụ thể, đây gọi là hành vi tích cực Để tác tử có thể đạt được thuộc tính đó thì tác

tử phải có các mục tiêu được định nghĩa tốt hoặc thậm chí là một hệ thống mục tiêu phức tạp Tính bao hàm đầy đủ và sự phức tạp của hệ thống mục tiêu liên quan là rất quan trọng

Trang 14

Hình 1.4 Tác tử hướng mục tiêu

Ví dụ, nếu một tác tử chỉ có một mục tiêu chung là thu thập thông tin trong một phạm vi cụ thể, thì sau đó nó sẽ không làm gì hơn là kiểm soát các nguồn thông tin cụ thể đó và phản ứng lại với những thay đổi đó Trong trường hợp này, những thay đổi

đó là các thông tin mới đến từ lĩnh vực quan tâm Đối với hệ thống mục tiêu đầy đủ không chỉ bao gồm mục tiêu chung, mà còn chứa các mục tiêu con, mỗi mục tiêu cho phép tác tử thực hiện công việc rõ ràng hơn nhiều Một hành vi hướng mục tiêu chân chính chỉ có thể có với các hệ thống mục tiêu phức tạp như thế

1.1.3.3 Khả năng lập luận/học (Reasoning/Learning)

Mỗi tác tử phải có một mức độ thông minh tối thiểu để được coi là một tác tử

Sự thông minh của một tác tử được cấu thành từ ba thành phần chính: cơ sở tri thức

bên trong, khả năng lập luận dựa trên cơ sở tri thức, và khả năng học tương thích với

các thay đổi của môi trường Một tác tử được gọi là hành động hợp lý khi nó tới gần sự

thoả mãn mục tiêu toàn cục hoặc một trong những mục tiêu con Các công nghệ AI cổ điển như hệ thống dựa trên luật, hệ dựa trên tri thức hoặc mạng tự nhiên được thiết kế tốt cho lập luận, ngay cả những tác tử đang tồn tại

Khả năng lập luận đặt tác tử vào vị trí có khả năng quan sát môi trường và đưa ra những quyết định cụ thể khi có thay đổi xảy ra trong môi trường Tuy nhiên, khả năng học từ các kinh nghiệm trước đó và điều chỉnh thành công hành vi của nó phù hợp với môi trường chỉ quan trọng đối với các hành vi thông minh của tác tử Điều này được

Trang 15

áp dụng cho sự truyền thông với người dùng hoặc các tác tử khác, hoặc cho các nguồn tài nguyên khác

Hình 1.5 Tác tử học

Ví dụ, nếu một tác tử thu thập thông tin cho người dùng và người dùng lại thông báo cho tác tử rằng anh ta không quan tâm đến những thông tin được tìm thấy Khi đó, tác tử phải học và ghi nhớ điều này, và phải thay đổi cơ sở tri thức của mình để lần sau

nó không trả lại thông tin từ lĩnh vực mà người dùng không quan tâm Cùng với quá trình lập luận, tác tử cũng cần có những hoạt động liên quan giúp tác tử đạt được mục tiêu

1.1.3.4 Tính tự trị (Autonomy)

Một trong những yếu tố để phân biệt giữa một tác tử thông minh và một chương trình phần mềm truyền thống là khả năng một tác tử theo đuổi mục tiêu một cách tự trị không có sự tương tác hoặc ra lệnh từ bên ngoài Tác tử thực hiện nhiệm vụ không cần

sự hướng dẫn từng bước của người dùng hoặc các tác tử khác Hơn thế nó còn có khả năng hoạt động một mình Hoạt động tự trị không chỉ làm giảm tải trọng dựa vào sự cộng tác, mà còn làm tăng khả năng truyền thông Sự cộng tác giữa các tác tử đưa ra các giải pháp nhanh hơn và tốt hơn cho các nhiệm vụ phức tạp vượt quá khả năng của một tác tử Mỗi tác tử đều được lợi từ hoạt động cộng tác, bởi vì mục tiêu của nó được

Trang 16

chạm tới trong thời gian ngắn hoặc thậm chí được giải quyết hoàn toàn bởi các tác tử khác Các tác tử đó cộng tác với nhau phải sử dụng ngôn ngữ truyền thông tác tử mở rộng, bởi vì chúng không chỉ yêu cầu ngôn ngữ truyền thông cần thiết mà còn phải có khả năng trao đổi mục tiêu, sở thích và kiến thức

Ví dụ, nếu một vài tác tử cùng đạt tới một mục tiêu nào đó, thì một tác tử phù hợp nhất sẽ giải quyết mục tiêu này cho tất cả các tác tử Ngay khi công việc này hoàn thành, tác tử này sẽ gửi tri thức mới thu được cho các tác tử khác Do đó, khả năng cộng tác làm tăng sức mạnh của tất cả các tác tử Chúng liên kết, giải quyết xung đột tồn tại, điều chỉnh các trạng thái thông tin không thống nhất và tạo ra hiệu quả của toàn bộ hệ thống Một vấn đề cần chú ý là, các tác tử cộng tác phụ thuộc vào hành vi

xã hội của các tác tử liên quan Một tác tử ý thức được nó là một thành viên của nhóm

và sự thành công của nhóm cũng phụ thuộc vào hành vi của nó

1.1.4 Phân loại tác tử

Sự phân loại tác tử chỉ có ý nghĩa tương đối, nó phụ thuộc vào các tiêu chí lựa chọn để phân loại, cũng như mục tiêu của việc phân loại Các hệ thống tác tử có thể được phân loại dựa trên 3 tiêu chí: độ thông minh/khả năng học, tính di động và số lượng các tác tử

1.1.4.1 Tính thông minh (Intelligence)

Tính thông minh của tác tử ảnh hưởng lên người dùng ở chỗ anh ta có thể ra lệnh cho nó, đưa cho nó các ý tưởng và các lĩnh vực quan tâm, phục vụ cho việc giải quyết các yêu cầu độc lập của tác tử về sau

Tính thông minh phần nào liên quan đến việc giải quyết các công việc một cách

tự trị Nghĩa là nó có khả năng điều khiển các hoạt động và trạng thái bên trong của

nó Để có hành vi tự trị, tác tử phải có mục tiêu để hướng tới và khả năng học Nếu không nó sẽ phụ thuộc vào những hành động của người dùng Khi tác tử thực hiện hành vi tự trị, nó không cần sự hướng dẫn của người dùng với mỗi hoạt động cụ thể

Ví dụ, một tác tử mua bán hoàn toàn có khả năng không chỉ tìm ra đối tượng yêu cầu với giá rẻ nhất mà còn có thể mua nó trực tiếp Tuy nhiên, người dùng thường muốn tự

Trang 17

đưa ra quyết định trong những trường hợp quan trọng thì chỉ thị cho tác tử không tự ý mua sản phẩm mà phải hỏi ý kiến của ta

Hình 1.6 Các tiêu chí phân loại tác tử

1.1.4.2 Tính di động (Mobility)

Ta thử mô tả khả năng của tác tử thương lượng trong một mạng truyền thông:

Các tác tử di động (mobile agent) có khả năng đi lang thang từ mạng này sang mạng

khác Rõ ràng rất nhiều vấn đề liên quan đến tính bảo mật, tính riêng tư dữ liệu và khả năng quản lý được đặt ra Mỗi máy tính liên kết phải có khả năng đóng gói tác tử di

động và gửi chúng tới các môi trường khác và đồng thời, xác định tính hợp lệ và thực

thi của tác tử

Tác tử di động cũng mang lại những lợi ích rất rõ ràng như: làm giảm tải mạng bởi vì nó không cần thu thập thông tin yêu cầu để thực hiện nhiệm vụ bằng cách gửi một chuỗi các thông điệp qua mạng Thay vào đó nó có thể đi tới máy tính khác với thông tin yêu cầu (chính việc gửi chuỗi thông điệp là nguyên nhân gây nên quá tải) và sau đó thực hiện tất cả các công việc một cách cục bộ trên máy đích

Kết hợp với các tác tử di động, các đặc điểm tự trị được mô tả trước đó sẽ mang lại những lợi ích lớn hơn Nếu một tác tử hoạt động một cách tự trị, thì người dùng sẽ

Trang 18

không cần yêu cầu duy trì kết nối mạng liên tục Thay vào đó, nó có thể cung cấp cho tác tử một nhiệm vụ, gửi nó qua mạng và sau đó huỷ bỏ kết nối Ngay sau khi tác tử đạt được kết quả yêu cầu, các báo báo sẽ được gửi trở lại bằng cách thiết lập kết nối mạng tới người dùng hoặc đợi người dùng lựa chọn mạng tiếp theo Điều này làm giảm chi phí kết nối Ngoài ra, các tác tử di động còn có thể đi tới các điểm gặp cụ thể, nơi mà chúng có thể làm quen với các tác tử khác với cùng mối quan tâm và sau đó kiểm soát giao dịch hoặc thương lượng với chúng Một tác tử cũng có thể cung cấp các dịch vụ và dữ liệu cho các tác tử liên quan khác Do đó, nó hoạt động như thương trường hoặc các hội thảo truyền thông và thảo luận về một lĩnh vực quan tâm cụ thể Các tác tử cố định cũng có thể nhận ra cấu trúc chỉ với phạm vi xác định

1.1.4.3 Khả năng Truyền thông/Cộng tác (Communication/Cooperation)

Một tác tử thường tương tác với môi trường của nó để thực hiện công việc Hai thuộc tính bổ sung được coi như một phần của quá trình tương tác là: truyền thông và cộng tác, tác tử sử dụng khả năng truyền thông để trao đổi với môi trường của nó Một ngôn ngữ truyền thông tác tử cung cấp các giao thức đã được chuẩn hoá cho việc trao đổi thông tin cho phép tác tử truyền thông với nhau Tác tử cung cấp một phạm vi truy vấn đã được định nghĩa rõ ràng để trao đổi với các tác tử khác, và từ đó chúng cũng nhận được các truy vấn phản hồi đã được định nghĩa Tóm lại phạm vi các truy vấn và các phản hồi đều đã được định nghĩa trước một cách rõ ràng cho các tác tử

Về tính đơn giản và rõ ràng, có hai thể hiện là tác tử đơn giản và tác tử phức hợp Các tác tử đơn giản chỉ có mức độ thông minh nhất định còn các tác tử phức hợp lại

mô tả những hành vi mức cao hơn Có hai loại tác tử di động là: mobile scripts và mobile objects Mobile scripts được gửi tới máy tính khác trước khi thực thi Trái lại, mobile object có thể thay đổi vị trí bất cứ lúc nào, cụ thể vào bất kỳ thời điểm nào trong quá trình thực thi Trong trường hợp này, không chỉ các đối tượng thực được truyền đi, mà cả trạng thái hiện thời của nó cũng như môi trường hệ thống cũng được gửi đi Tác tử di động đặt ra các đòi hỏi cao hơn nhiều vào các hệ thống máy tính liên kết với chúng

Số lượng tác tử liên kết với một hệ thống tạo nên tiêu chí phân chia thứ ba: phân

biệt giữa hệ thống đơn tác tử và hệ thống đa tác tử Các đơn tác tử di chuyển trong môi trường mà không liên hệ với bất kỳ tác tử nào khác Chính xác hơn, chúng không

có khả năng kết nối với các tác tử khác, ngay cả khi chúng nằm trong cùng một môi trường Các đơn tác tử kết nối với người dùng của chúng và các nguồn thông tin khác như database Trái lại, hệ thống đa tác tử gồm một số lượng các tác tử có khả năng trao đổi hoặc thậm chí cộng tác với nhau

Trang 19

Truyền thông là thuộc tính cần có trong cả đơn tác tử và đa tác tử Khả năng cộng tác ảnh hưởng lên cả tiêu chí thông minh và thuộc tính số lượng tác tử Hành vi

tự trị ảnh hưởng lên cả tính thông minh và di động của tác tử Hoạt động của tác tử di động chỉ có nghĩa khi nó có một mức tự trị nhất định Nó phải quay trở lại hỏi người dùng trước khi đưa ra quyết định và sau đó quay trở lại máy tính của anh ta hoặc gửi thông điệp cho anh ta và di chuyển trở lại nơi đầu tiên

Các tác tử thông tin thường chỉ có một lượng thông minh tương đối hạn chế và

vì vậy nó phụ thuộc vào phạm vi của các tác tử đơn giản Công việc chính của tác tử thông tin liên quan đến việc hỗ trợ người dùng trong việc tìm kiếm thông tin trên các

hệ thống hoặc mạng phân tán Tác tử thông tin phải có khả năng thực hiện các nhiện

vụ sau: định vị các nguồn thông tin; trích chọn thông tin từ các nguồn; lọc thông tin

liên quan cho người dùng từ toàn bộ thông tin tìm thấy, sử dụng tiểu sử các mối quan tâm của người dùng; xử lí và hiển thị kết quả ở dạng thích hợp Các tác tử hỗ trợ có

ích cho người dùng chỉ khi chúng thực hiện tất cả các bước riêng lẻ này

Hình 1.7 Ba tiêu chí phân chia trong tác tử thông tin

Một tác tử thông tin phải được cung cấp kiến thức về tất cả các nguồn thông tin khả dụng, các phạm vi vấn đề được xem xét và ngữ nghĩa của thông tin Chỉ trong trường hợp đó, nó mới có thể thực hiện các nhiệm vụ yêu cầu một cách tin cậy, độc lập

Trang 20

và nhanh hơn người dùng Chúng hầu như luôn luôn hoạt động riêng lẻ, bởi vì chúng không cần bất cứ sự cộng tác nào từ các tác tử khác để thực hiện việc tìm kiếm thông tin của chúng Phần lớn các tác tử thông tin hiện thời đều có bản tính cố định tự nhiên của nó Tuy nhiên, người ta cũng mong muốn chúng có khả năng di động Điều này làm tăng tính tự trị và dẫn tới giảm tải mạng Như vậy, tiềm năng phát triển của tác tử

di động sẽ là rất lớn khi cơ sở hạ tầng phục vụ cho chúng đã sẵn sàng

Tác tử cộng tác cần độ thông minh tương đối cao và vì vậy nó thuộc tác tử phức

tạp Tính di động là không cần thiết bởi vì các hệ thống tác tử hướng cộng tác tập trung vào quá trình giải quyết vấn đề thực tế và chúng thường được phát triển và tạo ra trong một hệ thống máy tính Tuy nhiên, nó sẽ được đánh giá cao nếu có khả năng di động

Hình 1.8 Ba tiêu chí phân chia trong tác tử cộng tác

Nhiệm vụ chính của tác tử cộng tác là giải quyết các vấn đề phức tạp sử dụng cơ chế truyền thông và cộng tác với các đối tượng khác như các tác tử , hoặc các nguồn tài nguyên bên ngoài và con người Tác tử cộng tác được sử dụng khi một vấn đề vượt quá khả năng của một tác tử riêng lẻ, hoặc tồn tại các tác tử đã có các giải pháp cho vấn đề và có tri thức được các tác tử khác sử dụng Yêu cầu về tính thông minh của tác tử cộng tác cao hơn các tác tử thông tin, bởi vì sự phát triển của các chiến lược giải

Trang 21

quyết vấn đề và sự cộng tác giữa một vài tác tử là rất phức tạp, đồng thời chúng thực hiện các nhiệm vụ ít có khả năng dự đoán hơn là việc đơn thuân tìm kiếm thông tin Lĩnh vực ứng dụng rộng lớn thứ 3 của tác tử phần mềm thông minh nằm trong

các môi trường ứng dụng hướng giao dịch Cả trong các môi trường cơ sở dữ liệu cổ

điển, cũng như trong lĩnh vực quản lý mạng và thương mại điện tử, công việc chính

của tác tử thông minh là xử lí và quản lí các giao dịch Các tác tử giao tác đặc biệt

thích hợp cho các công việc này Tính an toàn, toàn vẹn dữ liệu, tính mạnh mẽ và sự tin cậy là các yếu tố đóng vai trò trung tâm Các tác tử như thế thường hoạt động trong những lĩnh vực rất nhạy cảm và đại diện cho người dùng thực hiện các nhiệm vụ đòi hỏi mức độ trách nhiệm cao, ví dụ trong các mua bán sử dụng credit card

Tác tử giao tác có thể được sử dụng như hệ thống tác tử đơn hoặc đa tác tử

Chúng được sử dụng để kiểm soát các giao dịch trong một mạng truyền thông như các

hệ thống đơn Không có đòi hỏi cụ thể nào về sự thông minh, mà kiến trúc của tác tử đóng vai trò chủ yếu

Hình 1.9 Ba tiêu chí phân chia trong tác tử giao tác

Việc sử dụng tác tử giao tác trong các hệ thống đa tác tử có thể tạo nên ngoại lệ

Ví dụ, nếu các thương lượng phức tạp xảy ra giữa các tác tử , và cuối cùng một tác tử

Trang 22

phải có một chiến thuật thương lượng thông minh, sau đó được gắn với độ thông minh tương ứng của nó

Các tác tử giao tác vừa được coi là tác tử cố định vừa là tác tử di động Quyết định tuỳ thuộc vào hoàn cảnh ứng dụng liên quan

Như vậy, các tác tử phần mềm thông minh có thể được phân chia thành ba lĩnh

vực tác vụ: thông tin, cộng tác và giao dịch Cả ba dạng này đều là các hệ thống phần

mềm thực hiện các công việc cụ thể dựa trên lợi ích của người dùng và có mức độ thông minh nhất định làm cho nó có thể thực hiện các công việc một cách tự trị và có thể tương tác với môi trường của chúng Trái ngược với các chương trình phần mềm

cố điển, tác tử phần mềm thông minh có một số đặc điểm đặc thù, như tính tự trị, khả năng học, phản ứng, kích hoạt, di động, hướng mục tiêu, truyền thông, cộng tác, kết hợp và có tính cách Không phải mỗi tác tử đều cần có tất cả các thuộc tính đó Các tác

tử và hệ thống tác tử có thể được phân chia trong một môi trường phân loại cơ bản dựa trên ba tiêu chí: số lượng tác tử , độ thông minh và khả năng di động Các tác tử đơn

và cả loại tác tử cơ bản(thông tin, cộng tác và giao dịch) đều được gắn vào môi trường này Tuy nhiên sự phân loại trên chỉ mang tính tương đối, vẫn tồn tại những tác tử là

là một sự mở rộng của tác tử , ở một mức độ cao hơn Nó có thêm các đặc tính thể hiện

sự “thông minh” vượt trội so với một tác tử bình thường Về mặt khái niệm thì:

Một tác tử thông minh là một tác tử có khả năng thực hiện hành động tự trị, linh hoạt để thỏa mãn mục tiêu thiết kế của nó, trong đó khái niệm linh hoạt ám chỉ ba thuộc tính sau:

Tính năng động (Pro-activeness): khả năng thực hiện các hành vi hướng mục

tiêu thông qua tự kích hoạt Trong các hệ thống chức năng, tác tử sử dụng các tiền điều kiện và hậu điều kiện để thực hiện các hành vi hướng mục tiêu Còn đối với hệ thống phi chức năng, mục tiêu phải duy trì sự đúng đắn ít nhất cho đến khi hành động của nó hoàn thành Tác tử thực thi thủ tục một cách mò mẫn mà không quan tâm xem các giả thiết cho thủ tục đó liệu có tốt hay không (quan sát không đầy đủ, môi trường không xác định và các tác tử khác có thể tác động đến môi trường)

Trang 23

Tính phản ứng (Reactivity): đó là khả năng nhận thức môi trường, và đáp ứng

với các thay đổi trong đó với một khoảng thời gian thích hợp Tuy nhiên, việc xây dựng một hệ thống đạt được sự cân bằng giữa hành vi phản ứng và hướng mục tiêu là rất khó khăn

Khả năng xã hội (Social ability): khả năng tương tác hay nói cách khác là khả

năng thương lượng và cộng tác với các tác tử khác (bao gồm cả con người)

1.1.5.2 Tác tử thông minh và các đối tượng

Quan niệm chưa chuẩn hóa về tác tử làm cho khái niệm tác tử có những mập mờ

và hiểu không chính xác Người ta dễ lầm tưởng tác tử với các đối tượng, bởi bản thân tác tử cũng là một đối tượng nhưng có các tính năng đặc thù của nó để có thể gọi là tác

tử thông minh Sự khác nhau cơ bản giữa tác tử thông minh và đối tượng được thể hiện

ở chỗ:

− Khác với tác tử, các đối tượng được định nghĩa như các thực thể tính toán bao gói một số trạng thái bên trong, có thể thực hiện các hành động, hoặc phương thức dựa trên trạng thái này, và truyền thông bằng cách gửi thông điệp

− Một đối tượng có thể cho là tự trị trên trạng thái của nó: nó có quyền điều khiển trên đó Nhưng nó không có quyền điều khiển hành vi của nó

− Các đối tượng yêu cầu phương thức công cộng của các đối tượng khác, còn tác tử chỉ có thể yêu cầu các tác tử khác thực hiện hành động

− Trong mô hình đối tượng không nói về cách xây dựng hệ thống tích hợp các hành

vi xã hội, tiên phong, và phản ứng

− Một điểm khác biệt nữa là, mỗi tác tử có luồng điều khiển của riêng chúng trong khi mô hình đối tượng chuẩn chỉ có một luồng điều khiển đơn lẻ trong toàn bộ hệ thống

Tóm lại, tác tử là hiện thân của các quan niệm rõ nét hơn là đối tượng, tác tử có khả năng ứng xử linh hoạt, trong đó các hệ thống đa tác tử về bản chất là hệ thống đa luồng

1.1.5.3 Tác tử thông minh và hệ chuyên gia

Hệ chuyên gia là một hệ thống có khả năng giải quyết vấn đề hoặc đưa ra lời khuyên trong một số lĩnh vực hẹp với tri thức phong phú

Khác biệt quan trọng nhất giữa hệ thống dựa trên tác tử và hệ chuyên gia là ở chỗ:

Trang 24

− Hệ chuyên gia là tương đối độc lập, chứ không phải đặt trong một tình huống cụ thể

− Hệ chuyên gia không tương tác với bất kỳ môi trường nào, nó là tĩnh đối với các thay đổi trong môi trường Đưa ra phản hồi hoặc lời khuyên cho thành phần thứ

ba

− Hệ chuyên gia chứa mô hình tĩnh về thế giới và cơ sở tri thức đồ sộ về một miền lĩnh vực cụ thể

− Không yêu cầu tương tác với các hệ thống khác

1.2 Tổng quan kiến trúc Oracle Server

Oracle server là một hệ quản trị cơ sở dữ liệu đối tượng-quan hệ cho phép quản

lý thông tin một cách toàn diện Oracle server bao gồm hai thành phần chính là

Oracle instance và Oracle database

1.2.1 Oracle Instance

Oracle instance bao gồm một cấu trúc bộ nhớ System Global Area (SGA) và các

background processes (tiến trình nền) được sử dụng để quản trị cơ sở dữ liệu Oracle

instance được xác định qua tham số môi trường ORACLE_SID của hệ điều hành

Background process

Hình 1.10 Kiến trúc Oracle Server

1.2.1.1 System Global Area - SGA

SGA là vùng bộ nhớ chia sẻ được sử dụng để lưu trữ dữ liệu và các thông tin điều khiển của Oracle server SGA được cấp phát (allocated) trong bộ nhớ của máy tính mà Oracle server đang hoạt động trên đó Người sử dụng kết nối tới Oracle sẽ chia

sẻ các dữ liệu có trong SGA, việc mở rộng không gian bộ nhớ cho SGA sẽ làm nâng

Trang 25

cao hiệu suất của hệ thống, lưu trữ được nhiều dữ liệu trong hệ thống hơn đồng thời giảm thiểu các thao tác truy xuất đĩa (disk I/O)

SGA bao gồm một vài cấu trúc bộ nhớ chính:

− Shared pool: Là một phần của SGA lưu các cấu trúc bộ nhớ chia sẻ

− Database buffer cache: Lưu trữ các dữ liệu được sử dụng gần nhất

− Redo log buffer: Được sử dụng cho việc dò tìm lại các thay đồi trong cơ sở dữ liệu và được thực hiện bởi các tiến trình nền

Để chi tiết hơn, ta sẽ xem xét cụ thể từng thành phần

Share Pool

Shared pool là một phần trong SGA và được sử dụng khi thực hiện phân tích câu lệnh (parse phase) Kích thước của Shared pool được xác định bởi tham số SHARED_POOL_SIZE có trong parameter file (file tham số)

Các thành phần của Shared pool gồm có: Library cache và Data dictionary cache

Hình 1.11 Cấu trúc Share Pool

Library Cache

Library cache lưu trữ thông tin về các câu lệnh SQL được sử dụng gần nhất bao gồm:

− Nội dung của câu lệnh dạng văn bản

− Cây phân tích được xây dựng tuỳ thuộc vào câu lệnh

− Kế hoạch thực hiện lệnh gồm các bước thực hiện và tối ưu lệnh

Do các thông tin trên đã được lưu trữ trong Library cache nên khi thực hiện lại một câu lệnh truy vấn, trước khi thực hiện câu lệnh, Server process sẽ lấy lại các thông tin đã được phân tích mà không phải phân tích lại câu lệnh Do vậy, Library cache có thể giúp nâng cao hiệu suất thực hiện lệnh

Data Dictionary Cache

Trang 26

Data dictionary cache là một thành phần của Shared pool lưu trữ thông tin của dictionary cache được sử dụng gần nhất như các định nghĩa các bảng, định nghĩa các cột, tên đăng nhập, mật khẩu, và các quyền

Trong giai đoạn phân tích lệnh, Server process sẽ tìm các thông tin trong dictionary cache để xác định các đối tượng trong câu lệnh SQL và để xác định các mức quyền tương ứng Trong trường hợp cần thiết, Server process có thể khởi tạo và nạp các thông tin từ các file dữ liệu

Data buffer cache

Khi thực hiện một truy vấn, Server process sẽ tìm các khối dữ liệu cần thiết trong database buffer cache Nếu không tìm thấy khối dữ liệu trong database buffer cache, Server process mới đọc các khối dữ liệu từ file dữ liệu và tạo luôn một bản sao của khối dữ liệu đó vào trong vùng nhớ đệm Như vậy, với các lần truy xuất tới khối dữ liệu đó sau này sẽ không cần thiết phải truy xuất vào file dữ liệu nữa

Hình 1.12 Database buffer cache

Database buffer cache là vùng nhớ trong SGA sử dụng để lưu trữ các khối dữ liệu được sử dụng gần nhất Tương tự như kích thước của các khối dữ liệu được xác định bởi tham số DB_BLOCK_SIZE, kích thước của vùng đệm trong buffer cache cũng được xác định bởi tham số DB_BLOCK_BUFFERS

Oracle server sử dụng giải thuật least recently used (LRU) để làm tươi lại vùng nhớ Theo đó, khi nạp mới một khối dữ liệu vào bộ đệm, trong trường hợp bộ đệm đã đầy, Oracle server sẽ loại bớt khối dữ liệu ít được sử dụng nhất ra khỏi bộ đệm để nạp khối dữ liệu mới vào bộ đệm

Redo log buffer

Server process ghi lại các thay đổi của một instance vào redo log buffer, đây cũng là một phần bộ nhớ SGA

Trang 27

Hình 1.13 Redo log buffer

Có một số đặc điểm cần quan tâm của Redo log buffer:

− Kích thước được xác định bởi tham số LOG_BUFFER

− Lưu trữ các bản ghi hồi phục mỗi khi có thay đổi dữ liệu

− Redo log buffer được sử dụng một cách thường xuyên và các thay đổi bởi một giao dịch có thể nằm đan xen với các thay đổi của các giao dịch khác

− Bộ đệm được tổ chức theo kiểu bộ đệm nối vòng tức là dữ liệu thay đổi sẽ tiếp tục được nạp lên đầu sau khi vùng đệm đã được sử dụng hết

1.2.1.2 Các tiến trình nền

Các tiến trình nền thực hiện các chức năng thay cho lời gọi tiến trình xử lý tương ứng Nó điều khiển vào ra, cung cấp các cơ chế xử lý song song nâng cao hiệu quả và

độ tin cậy Tùy theo từng cấu hình mà Oracle instance có các tiến trình nền như:

− Database Writer (DBW0): Ghi lại các thay đổi trong dữ liệu bộ nhớ đệm ra các file dữ liệu

− Log Writer (LGWR): Ghi lại các thay đổi được đăng ký trong redo log buffer vào các redo log files

− System Monitor (SMON): Kiểm tra sự nhất quán trong cơ sở dữ liệu

− Process Monitor (PMON): Dọn dẹp lại tài nguyên khi các tiến trình của Oracle gặp lỗi

− Checkpoint Process (CKPT): Cập nhật lại trạng thái của thông tin trong file điều khiển và file dữ liệu mỗi khi có thay đổi trong buffer cache

Database Writer (DBW0)

Server process ghi lại các dữ liệu thay đổi để khôi phục dữ liệu của các khối dữ liệu trong bộ nhớ đệm Database writer (DBWR) ghi các thông tin được đánh dấu thay đổi từ bộ nhớ đệm lên các file dữ liệu nhằm đảm bảo luôn có khoảng trống bộ đệm cần thiết cho việc sử dụng

Trang 28

Hình 1.14 Database Writer (DBWR)

Với việc sử dụng này, hiệu suất sử dụng cơ sở dữ liệu sẽ được cải thiện do các tiến trình chỉ tạo các thay đổi trên bộ nhớ đệm, DBWR ghi dữ liệu vào các file dữ liệu cho tới khi:

− Số lượng bộ nhớ đệm đánh bị dấu đạt tới giá trị ngưỡng

− Tiến trình duyệt tất cả bộ nhớ đệm mà vẫn không tìm thấy dữ liệu tương ứng

− Quá thời gian quy định

Log Writer

Log Writer (LGWR) là một trong các tiến trình nền có trách nhiệm quản lý redo log buffer để ghi lại các thông tin trong Redo log buffer vào Redo log file Redo log buffer là bộ đệm dữ liệu được tổ chức theo kiểu nối vòng

Hình 1.15 Log Writer (LGWT)

LGWR ghi lại dữ liệu một cách tuần tự vào redo log file theo các tình huống sau:

− Khi redo log buffer đầy

− Khi xảy ra hết thời gian hiệu lực (thông thường là 3 giây)

Trang 29

− Trước khi DBWR ghi lại các khối dữ liệu bị thay đổi trong data buffer cache vào các file dữ liệu

− Khi kết thúc một giao dịch

System Monitor (SMON)

Giám sát hệ thống (SMON) thực hiện phục hồi các sự cố ngay tại thời điểm instance được khởi động nếu cần thiết SMON cũng có trách nhiệm dọn dẹp các segments rỗng không còn được sử dụng nữa trong dictionary-managed tablespaces SMON khôi phục lại các giao dịch bị chết mỗi khi xảy ra sự cố SMON đều đặn thực hiện kiểm tra và khắc phục các sự cố khi cần

Trong môi trường Oracle Parallel Server, tiến trình SMON của một instance có thể thực hiện khôi phục instance trong trường hợp instance hay CPU của máy tính đó gặp sự cố

Process Monitor (PMON)

Giám sát tiến trình (PMON) thực hiện tiến trình phục hồi mỗi khi có một tiến trình gặp lỗi PMON có trách nhiệm dọn dẹp database buffer cache và giải phóng tài nguyên mà tiến trình đó sử dụng Ví dụ, nó thiết lập lại trạng thái của các bảng đang thực hiện trong giao dịch, giải phóng các khóa trên bảng này, và huỷ bỏ process ID của nó ra khỏi danh sách các tiến trình hoạt động

PMON kiểm tra trạng thái của nơi gửi và các tiến trình máy chủ, khởi động lại mỗi khi xảy ra sự cố PMON cũng còn thực hiện việc đăng ký các thông tin về instance và dispatcher processes với network listener

Tương tự như SMON, PMON được gọi đến mỗi khi xảy ra sự cố trong hệ thống

Checkpoint Process (CKPT)

Cập nhật lại trạng thái của thông tin trong file điều khiển và file dữ liệu mỗi khi

có thay đổi trong bộ nhớ đệm Xảy ra checkpoints khi:

− Tất cả các dữ liệu trong database buffers đã bị thay đổi tính cho đến thời điểm checkpointed sẽ được tiến trình nền DBWRn ghi lên file dữ liệu

− iến trình nền CKPT cập nhật phần headers của các file dữ liệu và các file điều khiển

Checkpoints có thể xảy ra đối với tất cả các file dữ liệu trong cơ sở dữ liệu hoặc cũng có thể xảy ra với một file dữ liệu cụ thể

Checkpoint xảy ra theo các tình huống sau:

Trang 30

− Mỗi khi có log switch

− Khi một tắt một cơ sở dữ liệu với các chế độ trừ chế độ ngừng hoạt động

− Xảy ra theo như thời gian quy định trong các tham số khởi tạo LOG_CHECKPOINT_INTERVAL và LOG_CHECKPOINT_TIMEOUT

− Khi có yêu cầu trực tiếp của quản trị viên

Thông tin về checkpoint được lưu trữ trong Alert file trong trường hợp các tham

số khởi tạo LOG_CHECKPOINTS_TO_ALERT được đặt là TRUE Và ngược lại với giá trị FALSE

1.2.2 Oracle Database

Oracle database là tập hợp các dữ liệu được xem như một đơn vị thành phần Cơ

sở dữ liệu có nhiệm vụ lưu trữ và trả về các thông tin liên quan Cơ sở dữ liệu được

xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý Tuy vậy, hai cấu trúc dữ

liệu này vẫn tồn tại tách biệt nhau, việc quản lý dữ liệu theo cấu trúc lưu trữ vật lý không gây ảnh hưởng tới cấu trúc logic

Oracle database được xác định bởi tên một tên duy nhất và được quy định trong tham số DB_NAME của parameter file

Hình 1.16 Cấu trúc cơ sở dữ liệu

1.2.2.1 Cấu trúc vật lý cơ sở dữ liệu

Cấu trúc vật lý bao gồm tập hợp các file điều khiển, file khôi phục trực tuyến và các file dữ liệu:

File dữ liệu

Mỗi một cơ sở dữ liệu Oracle đều có thể có một hay nhiều file dữ liệu Các file

dữ liệu chứa toàn bộ dữ liệu trong cơ sở dữ liệu Các dữ liệu thuộc cấu trúc logic của

Trang 31

cơ sở dữ liệu như các bảng hay các chỉ mục đều được lưu trữ dưới dạng vật lý trong các file dữ liệu của cơ sở dữ liệu

Một số tính chất của file dữ liệu:

− Mỗi file dữ liệu chỉ có thể được sử dụng trong một cơ sở dữ liệu

− Bên cạnh đó, file dữ liệu cũng còn có một số tính chất cho phép tự động mở rộng kích thước mỗi khi cơ sở dữ liệu hết chỗ lưu trữ dữ liệu

− Một hay nhiều file dữ liệu tạo nên một đơn vị lưu trữ logic của cơ sở dữ liệu gọi

là không gian bảng

− Một file dữ liệu chỉ thuộc về một không gian bảng

Dữ liệu trong một file dữ liệu có thể đọc ra và lưu vào vùng nhớ bộ đệm của Oracle Ví dụ: khi người sử dụng muốn truy cập dữ liệu trong một bảng thuộc cơ sở dữ liệu Trong trường hợp thông tin yêu cầu không có trong cache memory hiện thời, nó

sẽ được đọc trực tiếp từ các file dữ liệu ra và lưu trữ vào trong bộ nhớ

Tuy nhiên, việc bổ sung hay thêm mới dữ liệu vào cơ sở dữ liệu không nhất thiết phải ghi ngay vào các file dữ liệu Các dữ liệu có thể tạm thời ghi vào bộ nhớ để giảm thiểu việc truy xuất tới bộ nhớ ngoài (ổ đĩa) làm tăng hiệu năng sử dụng hệ thống Công việc ghi dữ liệu này được thực hiện bởi tiến trình nền DBWn

Redo Log Files

Mỗi Oracle database đều có một tập hợp từ 02 redo log files trở lên Các redo log files trong cơ sở dữ liệu thường được gọi là database's redo log Một redo log được tạo thành từ nhiều redo entries (gọi là các redo records)

Chức năng chính của redo log là ghi lại tất cả các thay đổi đối với dữ liệu trong

cơ sở dữ liệu Redo log files được sử dụng để bảo vệ cơ sở dữ liệu khỏi những hỏng hóc do sự cố Oracle cho phép sử dụng cùng một lúc nhiều redo log gọi là multiplexed redo log để cùng lưu trữ các bản sao của redo log trên các ổ đĩa khác nhau

Các thông tin trong redo log file chỉ được sử dụng để khôi phục lại cơ sở dữ liệu trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong cơ

sở dữ liệu lên các file dữ liệu trong cơ sở dữ liệu Ví dụ: khi có sự cố xảy ra như mất điện bất chợt chẳng hạn, các dữ liệu trong bộ nhớ không thể ghi trực tiếp lên các file

dữ liệu và gây ra hiện tượng mất dữ liệu Tuy nhiên, tất cả các dữ liệu bị mất này đều

có thể khôi phục lại ngay khi cơ sở dữ liệu được mở trở lại Việc này có thể thực hiện được thông qua việc sử dụng ngay chính các thông tin mới nhất có trong các redo log

Trang 32

files thuộc file dữ liệu Oracle sẽ khôi phục lại các cơ sở dữ liệu cho đến thời điểm trước khi xảy ra sự cố

Công việc khôi phục dữ liệu từ các redo log được gọi là rolling forward

File điều khiển

Mỗi Oracle database đều có ít nhất một file điều khiển File điều khiển chứa các mục thông tin quy định cấu trúc vật lý của cơ sở dữ liệu như:

− Tên của cơ sở dữ liệu

− Tên và nơi lưu trữ các file dữ liệu hay redo log files

− Mốc thời gian tạo lập cơ sở dữ liệu,

Mỗi khi nào một instance của Oracle database được mở, file điều khiển của nó sẽ được sử dụng để xác định các file dữ liệu và các redo log files đi kèm Khi các thành phần vật lý cả cơ sở dữ liệu bị thay đổi (ví dụ như, tạo mới file dữ liệu hay redo log file), file điều khiển sẽ được tự động thay đổi tương ứng bởi Oracle

File điều khiển cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu

1.2.2.2 Cấu trúc logic cơ sở dữ liệu

Cấu trúc logic của Oracle database bao gồm các đối tượng tablespaces, schema objects, data blocks, extents, và segments

Tablespaces

Một cơ sở dữ liệu có thể được phân chia về mặt logic thành các đơn vị gọi là các tablespaces, Tablespaces thường bao gồm một nhóm các thành phần có quan hệ logic với nhau

Databases, Tablespaces, và Datafiles

Mối quan hệ giữa các cơ sở dữ liệu, tablespaces, và datafiles có thể được minh hoạ bởi hình vẽ sau:

Hình 1.17 Quan hệ giữa cơ sở dữ liệu, tablespace và datafile

Trang 33

Có một số điểm ta cần quan tâm:

− Mỗi cơ sở dữ liệu có thể phân chia về mặt logic thành một hay nhiều tablespace

− Mỗi tablespace có thể được tạo nên, về mặt vật lý, bởi một hoặc nhiều datafiles

− Kích thước của một tablespace bằng tổng kích thước của các datafiles của nó Ví dụ: trong hình vẽ ở trên SYSTEM tablespace có kích thước là 2 MB còn USERS tablespace có kích thước là 4 MB

− Kích thước của database cũng có thể xác định được bằng tổng kích thước của các tablespaces của nó Ví dụ: trong hình vẽ trên thì kích thước của database là 6

MB

Schema và Schema Objects

Schema là tập hợp các đối tượng có trong cơ sở dữ liệu Schema objects là các cấu trúc logic cho phép tham chiếu trực tiếp tới dữ liệu trong database Schema objects bao gồm các cấu trúc như tables, views, sequences, stored procedures, synonyms, indexes, clusters, và database links

Data Blocks, Extents, and Segments

Oracle điểu khiển không gian lưu trữ trên đĩa cứng theo các cấu trúc logic bao gồm các data blocks, extents, và segments

Oracle Data Blocks

Là mức phân cấp logic thấp nhất, các dữ liệu của Oracle database được lưu trữ trong các khối dữ liệu Một khối dữ liệu tương ứng với một số lượng nhất định các bytes vật lý của cơ sở dữ liệu trong không gian đĩa cứng Kích thước của một khối dữ liệu được chỉ ra cho mỗi Oracle database ngay khi cơ sở dữ liệu được tạo lập Cơ sở

dữ liệu sử dụng, cấp phát và giải phóng vùng không gian lưu trữ thông qua các Oracle data blocks

Là mức phân chia cao hơn nữa về mặt logic các vùng không gian trong cơ sở dữ

liệu Một segment là một tập hợp các extents được cấp phát cho một cấu trúc logic

Segment có thể được phân chia theo nhiều loại khác nhau:

Trang 34

Data

segment

Mỗi một non-clustered table có một data segment Các dữ liệu trong một bảng được lưu trữ trong các extents thuộc data segment đó Với một partitioned table thì mỗi each partition lại tương ứng với một data segment

Mỗi Cluster tương ứng với một data segment Dữ liệu của tất cả các table trong cluster đó đều được lưu trữ trong data segment thuộc Cluster đó

index

segment

Mỗi một index đều có một index segment lưu trữ các dữ liệu của nó Trong partitioned index thì mỗi partition cũng lại tương ứng với một index segment

rollback

segment

Một hoặc nhiều rollback segments của database được tạo lập bởi người quản trị database để lưu trữ các dữ liệu trung gian phục vụ cho việc khôi phục dữ liệu

Các thông tin trong Rollback segment được sử dụng để:

Tạo sự đồng nhất các thông tin đọc được từ database

Sử dụng trong quá trình khôi phục dữ liệu Phục hồi lại các giao dịch chưa commit đối với mỗi user

temporary

segment

Temporary segments được tự động tạo bởi Oracle mỗi khi một câu lệnh SQL statement cần đến một vùng nhớ trung gian để thực hiện các công việc của mình như sắp xếp dữ liệu Khi kết thúc câu lệnh đó, các extent thuộc temporary segment sẽ lại được hoàn trả cho hệ thống

Oracle thực hiện cấp phát vùng không gian lưu trữ một cách linh hoạt mỗi khi các extents cấp phát đã sử dụng hết

1.2.2.3 Các cấu trúc vật lý khác

Ngoài ra, Oracle Server còn sử dụng các file khác để lưu trữ thông tin Các file

đó bao gồm:

− Parameter file: file tham số chỉ ra các tham số được sử dụng trong cơ sở dữ liệu

Người quản trị cơ sở dữ liệu có thể sửa đổi một vài thông tin có trong file này Các tham số trong file tham số được viết ở dạng văn bản

− Password file: Xác định quyền của từng người dùng trong cơ sở dữ liệu Cho

phép người sử dụng khởi động và tắt một Oracle instance

− Archived redo log files: Là bản offline của các redo log files chứa các thông tin

cần thiết để phục hồi dữ liệu

Trang 35

1.2.3 Kết nối tới Oracle Server

1.2.3.1 Mô hình kết nối

Các Client có thể kết nối tới Oracle Server thông qua 03 cách sau:

Kết nối trực tiếp: kết nối mà Client nằm trên cùng một máy chủ Oracle server

Kết nối hai lớp (two-tiered) client-server: Client nằm trên một máy tính khác

và kết nối trực tiếp tới máy chủ Oracle Server

Kết nối ba lớp (three-tiered): Client nằm trên máy tính khác với máy chủ

Oracle Server, nó giao tiếp với một ứng dụng hay một máy chủ mạng (network server) và điều khiển ứng dụng hay máy chủ này kết nối tới Oracle server

Hình 1.18 Kết nối tới Oracle Server

1.2.3.2 Kết nối tới Database

Để kết nối tới Database trước tiên, cần phải tạo liên kết tới Oracle Server Liên kết tới Oracle Server được tạo theo các bước sau:

− User sử dụng công cụ SQL*Plus hay sử dụng các công cụ khác của Oracle như Developer/2000 Forms để khởi tạo tiến trình Trong mô hình Client-Server, các công cụ hay ứng dụng này được chạy trên máy Client

− User thực hiện log in vào Oracle server với việc khai báo tên đăng nhập, mật khẩu và tên liên kết tới cơ sở dữ liệu Các ứng dụng công cụ sẽ tạo một tiến trình

để kết nối tới Oracle server qua các tham số này Tiến trình này được gọi là tiến trình phục vụ Tiến trình phục vụ sẽ giao tiếp với Oracle server thay cho tiến trình của người dùng chạy trên máy khách

Trang 36

1.3 Công cụ quản trị CSDL Oracle

1.3.1 Các công cụ quản trị CSDL Oracle

Oracle hiện tại đã cung cấp rất nhiều công cụ cho phép quản trị cơ sở dữ liệu Có thể kể ra sau đây một số công cụ cơ bản sau:

Import

Tiện ích sử dụng để exporting hoặc importing dữ liệu theo khuôn dạng của Oracle

Password File Tiện ích sử dụng để tạo file mật khẩu trong database

1.3.2 Công cụ quản trị Oracle Enterprise Manager

Oracle Enterprise Manager (OEM) là phương tiện cho phép có được cái nhìn tổng thể về toàn bộ hệ thống Trong đó có cây phân cấp và các hình ảnh đồ họa về các đối tượng và quan hệ giữa chúng trong hệ thống

OEM có các tiến trình tác tử thông minh cho phép quản lý từ xa các dịch vụ chung như jobs, events,… một cách dễ dàng

OEM cũng bao gồm cả những ứng dụng quản lý chuyên biệt: DBA Management Pack, Advanced Management Packs

Bên cạnh đó, OEM còn cung cấp một lượng lớn các hàm API cho phép tích hợp với các hệ thống quản lý ứng dụng khác Bao gồm cả các hệ thống quản lý của Oracle

và không phải của Oracle

Trang 37

Hình 1.19 Oracle Enterprise Manager

1.3.2.1 Kiến trúc OEM

Kiến trúc OEM là mở rộng của kiến trúc Client/Server, nó có kiến trúc ba lớp

− Lớp thứ nhất chứa các Java-based console và các ứng dụng tích hợp cho phép cài đặt và chạy bởi các Web browser

− Lớp thứ hai là Oracle Management Server - OMS Chức năng chính của OMS là

xử lý và quản trị tất cả các tác vụ của hệ thống, tập trung quản lý và phân phối điều khiển giữa các clients và các nút điều khiển OEM sử dụng Oracle Enterprise Manager repository để duy trì dữ liệu hệ thống, dữ liệu ứng dụng và các trạng thái của các thực thể điều khiển phân tán trong hệ thống, cho phép người dùng có thể truy cập và chia sẻ các vùng dữ liệu lưu trữ

− Lớp thứ ba bao gồm các đích như các cơ sở dữ liệu, các máy chủ và các dịch vụ quản lý khác

1.3.2.2 Các dịch vụ chung

OEM có các dịch vụ cho phép quản lý các nodes trên mạng

Dịch vụ phát hiện - Discovery service: OEM tự động phát hiện (định vị) tất cả

các cơ sở dữ liệu và các dịch vụ chạy trên các nodes, một khi các nodes được xác định Các dịch vụ này bao gồm Web servers, listeners, machines, parallel servers, video servers, và các services khác

− Job Scheduling System: cho phép thực hiện tự động lặp lại các tác vụ Hệ thống

cho phép tạo và quản lý các jobs, lên kế hoạch thực hiện chúng và cho phép xem, chia sẻ thông tin xác định Jobs

Trang 38

− Event Management System: cho phép quản lý môi trường mạng xử lý các

trường hợp mất dịch vụ, thiếu hoặc hết vùng lưu trữ, và các vấn đề khác như sử dụng tài nguyên CPU Mỗi khi các events được phát hiện, người quản trị có thể thông báo hoặc sửa nó

Bảo mật - Security: các tham số bảo mật xác định cho từng dịch vụ, đối tượng,

và từng người quản trị

− Dịch vụ nơi lưu trữ chia sẻ

OEM là một hệ thống đa người dùng Mỗi quản trị viên có một tài khoản riêng để đăng nhập vào hệ thống Tùy theo việc thiết đặt quyền hạn, mà quản trị viên có thể truy cập vào các dữ liệu lưu trong kho trung tâm, kho được chia sẻ cho tất cả các quản trị viên của OEM để thực hiện công việc quản lý

1.3.2.3 Oracle Configuration Assistant

Configuration Assistant là công cụ cho phép tạo các shared repositories, đặt lại cấu hình cho cơ sở dữ liệu và thiết đặt cấu hình cho các đơn vị điều khiển cục bộ Configuration Assistant được tự động khởi động ngay sau khi hoàn tất quá trình cài đặt của Universal Installer Ta cũng có thể khởi động ứng dụng này bằng tay (chạy lệnh %emrepmgr từ dấu nhắc hệ thống)

1.3.2.4 Oracle Enterprise Manager Console

Bao gồm cả cây phân cấp và hình ảnh đồ họa biểu diễn các đối tượng trong hệ thống

1 Các nút có biểu tượng: cho phép gọi các ứng dụng khác để cùng thực hiện việc

quản trị các tác vụ Việc này cũng có thể thực hiện thông qua mục chọn tương ứng trên menu

2 Navigator hay object explorer: được tổ chức dưới dạng cây phân cấp Nó cho

phép xem các Oracle services trong mạng làm việc Navigator cho phép quản trị viên có thể browse các Oracle services, như databases, listeners, nodes, và name servers, qua đó có thể sửa đổi các tính chất của các đối tượng; ví dụ: người dùng

có thể thay đổi nội dung của bảng

3 Job system: cho phép thực hiện các tác vụ từ xa liên quan tới listeners, databases

Job system dựa trên các thủ tục trong Tool Control Language (TCL) engine

Trang 39

Hình 1.20 Oracle Enterprise Manager

4 Menu cho phép khởi tạo các ứng dụng quản trị khác và thực hiện nhiều tác vụ

khác nhau

5 Map hay topographical view cho phép các Oracle services có thể được gộp lại

tùy theo quan hệ về không gian, chức năng, hay cả hai Map view cho phép

người sử dụng tập trung vào các đối tượng cần quản lý

6 Event system điều khiển và thông báo các trạng thái của hệ thống

1.3.3 Các công cụ quản trị khác

Ngoài các công cụ cơ bản, Oracle còn hỗ trợ bộ các công cụ chuẩn khác như:

− Instance Manager: dùng để điều khiển cơ sở dữ liệu định nghĩa và khởi tạo các

tham số liên quan tới các tính chất của instance

− Schema Manager: dùng để tạo lập và quản lý các đối tượng như tables, indexes,

− SQL Worksheet: giao tiếp theo kiểu dòng lênh, nó cho phép thực hiện các câu

lệnh SQL và PL/SQL cũng như là các câu lệnh của Server Manager

− Backup Manager: dùng để sao lưu, phục hồi và bảo trì cơ sở dữ liệu, quản lý

các redo log files

− Data Manager: dùng để nạp và tổ chức lại dữ liệu trong cơ sở dữ liệu

Trang 40

Ngoài các các công cụ kể trên, Oracle còn hỗ trợ các công cụ làm tăng cường hiệu suất làm việc của cơ sở dữ liệu

− Performance Manager: biểu diễn hiệu suất làm việc của cơ sở dữ liệu dưới

dạng biểu đồ đồ hoạ

− Top-Session Manager: hiển thị thông tin chi tiết về các session của 10 session

có sử dụng tài nguyên hệ thống, sắp xếp theo thứ tự giảm dần Công cụ này còn cho phép kill session

− Loock Manager: cho biết các thông tin liên quan đến việc khoá các đối tượng

trong cơ sở dữ liệu Các thông tin được biểu diễn dưới dạng đồ hoạ

− Tablespaces Manager: công cụ giúp cho dễ dàng quản lý các tablespace có

trong cơ sở dữ liệu

Ngày đăng: 25/03/2015, 09:39

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w