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

Nghiên ứu, phát triển và ứng dụng công nghệ mobile agent cho hệ thống đa cơ sở dữ liệu phân tán

116 3 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

Tiêu đề Nghiên Cứu, Phát Triển Và Ứng Dụng Công Nghệ Mobile Agent Cho Hệ Thống Đa Cơ Sở Dữ Liệu Phân Tán
Tác giả Nguyễn Anh Vũ
Người hướng dẫn GS.TS Nguyễn Thúc Hải
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Xử Lý Thông Tin Và Truyền Thông
Thể loại Luận Văn Thạc Sĩ Khoa Học
Năm xuất bản 2005
Thành phố Hà Nội
Định dạng
Số trang 116
Dung lượng 3,23 MB

Cấu trúc

  • 1.1 Tổng quan (10)
    • 1.1.1 Một số khái niệm (11)
      • 1.1.1.1 Mobile agent là gì ? (11)
      • 1.1.1.2 Agency (agent server) (14)
      • 1.1.1.3 Quá trình phát triển từ truyền thông điệp đến mobile agent (15)
    • 1.1.2 Đặc điểm của mobile agent (17)
      • 1.1.2.1 Tính di động (17)
      • 1.1.2.2 Sự thu thập dữ liệu (18)
      • 1.1.2.3 Xác định đờng đi (18)
      • 1.1.2.4 Truyền thông (19)
      • 1.1.2.5 Bảo mật (20)
    • 1.1.3 Lợi ích của mobile agent (23)
      • 1.1.3.1 Hỗ trợ tốt hơn cho các máy khách di động (23)
      • 1.1.3.2 Truyền thông phân tán và không đồng nhất (23)
      • 1.1.3.3 Giảm tải của mạng (24)
      • 1.1.3.4 Tơng tác không đồng bộ (24)
      • 1.1.3.5 Tìm kiếm và chọn lọc từ xa (25)
      • 1.1.3.6 Tạo điều kiện thuận lợi cho việc thu thập thông tin có ngữ nghĩa (26)
      • 1.1.3.7 Tạo điều kiện thuận lợi cho sự tơng tác thời gian thực với máy chủ (27)
      • 1.1.3.8 Cho phép khả năng định đờng có ngữ cảnh (27)
    • 1.1.4 ứ ng dụng (28)
      • 1.1.4.1 Thu thập thông tin từ nhiều địa điểm (29)
      • 1.1.4.2 Tìm kiếm và chọn lọc thông tin (29)
      • 1.1.4.5 Đàm phán và giao dịch thơng mại (31)
      • 1.1.4.6 Xử lý cho agent (32)
  • 1.2 Cấu trúc hoạt động một hệ thống mobile agent (32)
    • 1.2.1 Tổng quan (32)
    • 1.2.2 Agent miÒn (34)
    • 1.2.3 Agent tài nguyên (35)
    • 1.2.4 Mobile agent (36)
    • 1.2.5 Agent giao diện ngời dùng (38)
    • 1.2.6 Agent cổng (39)
  • 1.3 Một số hệ thống mobile agent hiện nay (40)
    • 1.3.1 Agent TCL (40)
    • 1.3.2 TACOMA (43)
    • 1.3.3 Telescript (45)
    • 1.3.4 Grasshopper (47)
    • 1.3.5 Aglets (49)
  • 2.1 Tổng quan (52)
  • 2.2 KiÕn tróc (54)
  • 2.3 Các vấn đề đặt ra (56)
  • 2.4 Một số hệ thống đa cơ sở dữ liệu phân tán (57)
    • 2.4.1 Hệ thống Pegasus (58)
    • 2.4.2 Hệ thống TCMMDB (59)
    • 2.4.3 Hệ thống ACQUIRE (60)
  • 2.5 Một số công cụ hỗ trợ truy vấn các nguồn dữ liệu khác nhau (61)
    • 2.5.1 OmniConnect (61)
    • 2.5.2 Heterogeneous service (61)
  • 3.1 Đặt vấn đề (63)
  • 3.4 Nguyên tắc hoạt động (67)
  • 3.5 Thiết kế hệ thống (68)
    • 3.5.2 Xử lý agent (69)
    • 3.5.3 Xử lý truy vấn tổng thể (69)
    • 3.5.4 Xử lý giao dịch tổng thể (71)
    • 3.5.5 DB agent (77)
    • 3.5.6 Phân tích yêu cầu (77)
    • 3.5.7 Global metadatabase (79)
    • 3.5.8 Metadatabase (79)
  • 3.6 Lựa chọn ngôn ngữ (79)
  • 3.7 Môi trờng phát triển (80)
    • 3.7.1 Xử lý giao dịch phân tán (81)
    • 3.7.2 Quản lý một phiên làm việc (82)
    • 3.7.3 Bảo mật (83)
      • 3.7.3.1 Bảo mật mạng (83)
      • 3.7.3.2 Bảo mật ngời dùng (83)
      • 3.7.3.3 Kết nối mạng (86)
  • 3.8 Phát triển chơng trình (89)
    • 3.8.1 Xử lý việc di c (89)
    • 3.8.2 Xử lý yêu cầu ngời dùng (93)
    • 3.8.3 Xử lý thao tác với cơ sở dữ liệu (94)
    • 3.8.4 Giao diện ngời dùng (95)
    • 3.8.5 Xử lý bảo mật (95)
  • 4.1 Thực trạng hệ thống mạng Công ty Dịch vụ tiết kiệm Bu điện (97)
  • 4.2 Giải pháp (99)

Nội dung

Cấu trúc luận văn gồm:  Chơng 1: Giới thiệu tổng quan về mobile agent kiến trúc của một hệ , thống mobile agent theo quan điểm agent và một số các hệ thống hỗ trợ mobile agent hiện nay

Tổng quan

Một số khái niệm

Mobile agent là một tiến trình có khả năng di chuyển giữa các máy trong cùng hệ thống để đáp ứng yêu cầu của máy khách Nó hoạt động trên máy khởi tạo khi máy đó cung cấp đủ tài nguyên và dịch vụ cần thiết Nếu không, thông tin trạng thái của mobile agent sẽ được lưu lại và truyền đến máy khác có tài nguyên hoặc dịch vụ cần thiết Tại máy mới, mobile agent sẽ được khởi tạo lại và tiếp tục thực hiện nhiệm vụ Mobile agent bao gồm bốn thành phần chính.

Phần code: các đoạn mã lệnh để xử lý

Phần dữ liệu: nội dung các tham số của các đối tợng

Mỗi agent trong phần trạng thái xử lý sẽ hoạt động trong một hoặc nhiều luồng (thread), với mỗi luồng được trang bị thanh ghi đếm và danh sách kết nối riêng để lưu trữ các biến và dữ liệu kết quả cục bộ.

Phần khởi tạo ban đầu: trong một số trờng hợp phần này đợc thêm vào

Mô hình mobile agent là một sự phát triển của mô hình máy khách/máy chủ, trong đó các thực thể giao tiếp có vai trò rõ ràng và cố định Máy chủ cung cấp dịch vụ, trong khi máy khách sử dụng các dịch vụ đó, dẫn đến sự phụ thuộc chặt chẽ vào máy chủ Giao tiếp giữa máy khách và máy chủ diễn ra qua giao thức

Mô hình mobile agent là giải pháp hiệu quả cho các vấn đề hiện tại, với những đặc điểm nổi bật như khả năng di chuyển linh hoạt, tính tự trị trong hành động, khả năng trao đổi thông tin theo kiểu peer to peer, và khả năng xử lý độc lập với mạng lưới và vị trí ban đầu.

Tính di chuyển là một đặc điểm mong muốn vì những lý do sau:

Khi một agent có khả năng di chuyển trong mạng để tiếp cận vị trí của tài nguyên, mật độ truyền thông trong mạng máy tính sẽ giảm đáng kể Điều này cho phép các agent tiền xử lý dữ liệu và xác định dữ liệu quan trọng nhất, đặc biệt hữu ích cho những người dùng có băng thông thấp.

Tính bền bỉ (persistence) trong mạng cho phép agent được tạo ra bởi một nút mạng hoạt động độc lập, không bị ảnh hưởng khi nút mạng gặp sự cố Khi agent di chuyển giữa các nút, nó có khả năng tồn tại và tối ưu hóa việc sử dụng tài nguyên Điều này đặc biệt hữu ích cho người dùng máy tính di động, cho phép họ truy cập mạng, tạo agent hoạt động, rời khỏi mạng và kiểm tra kết quả sau một thời gian nhất định.

Trao đổi điểm - điểm (peer to peer communication) khắc phục nhược điểm của mô hình máy khách/máy chủ, trong đó các máy chủ không thể giao tiếp trực tiếp với nhau Các mobile agent được coi là những thực thể cùng cấp, cho phép chúng đảm nhận bất kỳ vai trò nào phù hợp với nhu cầu hiện tại Chẳng hạn, khi một mobile agent truy cập tài nguyên, nó đóng vai trò khách, nhưng khi một mobile agent khác thực hiện truy vấn, nó sẽ chuyển sang vai trò máy chủ.

Tính chịu lỗi trong mối quan hệ máy khách/máy chủ cho phép trạng thái giao dịch được phân bổ giữa hai bên Khi xảy ra sự cố mạng hoặc máy chủ, việc phục hồi và đồng bộ hóa trở nên khó khăn cho máy khách Ngược lại, các mobile agent không cần duy trì kết nối liên tục trong suốt giao dịch, mà trạng thái được lưu trữ tại chính các agent, giúp việc xử lý và phục hồi dữ liệu dễ dàng hơn khi gặp lỗi.

Một agency (tác sở) lưu giữ thông tin và thuộc tính liên quan đến bản chất và hành vi của các agent Người dùng thường có xu hướng tin tưởng và sử dụng các agent có bản chất rõ ràng và hành vi có thể kiểm soát được.

Một agency có khả năng thực hiện nhiều tác vụ như tạo, xử lý, truyền và hủy bỏ các agent Ngoài ra, agency còn cung cấp một môi trường an toàn, khả năng truyền thông hiệu quả và nhiều dịch vụ khác như truy cập cơ sở dữ liệu Mỗi agency trên mạng đều sở hữu một định danh duy nhất, giúp phân biệt và nhận diện dễ dàng.

1.1.1.3 Quá trình phát triển từ truyền thông điệp đến mobile agent

Truyền thông giữa các thực thể trong hệ thống phân tán có thể được hỗ trợ bởi nhiều mô hình khác nhau, trong đó mô hình truyền thông điệp là cơ bản nhất Mô hình này cho phép các tiến trình giao tiếp bằng cách gửi và nhận thông điệp, bao gồm cả phương thức đồng bộ và không đồng bộ Đặc biệt, truyền thông không đồng bộ mang lại tính linh hoạt cao, hỗ trợ nhiều loại hình giao tiếp khác nhau Tuy nhiên, việc phát triển ứng dụng phân tán dựa trên mô hình này lại gặp nhiều khó khăn, dễ phát sinh lỗi, và làm cho việc phân tích, gỡ rối chương trình trở nên phức tạp hơn.

Mô hình truyền thông bậc cao hơn được gọi là thủ tục từ xa (Remote Procedure Call - RPC), trong đó các tiến trình gọi các thủ tục từ xa thay vì gửi và nhận thông điệp RPC hỗ trợ kiểu tương tác máy khách/máy chủ, với máy khách gửi yêu cầu tới máy chủ, và máy chủ thực hiện thủ tục yêu cầu rồi trả kết quả Hầu hết các cơ chế RPC hỗ trợ cả lời gọi đồng bộ và không đồng bộ Tuy nhiên, một yêu cầu quan trọng để RPC hoạt động là thủ tục được gọi phải tồn tại trên máy ở xa, điều này hạn chế khả năng sử dụng của RPC trong các hệ thống phân tán lớn Trong nhiều trường hợp, người dùng muốn mang theo thủ tục tới một nút ở xa để thực hiện mà không cần sự can thiệp của quản trị viên Ví dụ, việc mang một bộ lọc tới cơ sở dữ liệu xa để truy cập và nén dữ liệu tại chỗ là một ứng dụng thực tế Khi đó, tiến trình không chỉ truyền tham số mà còn cả mã nguồn của thủ tục, cho phép việc di chuyển mã nguồn giữa máy khách và máy chủ.

"Các công nghệ như Java applets và ActiveX control cho phép máy khách kéo mã nguồn từ máy chủ, trong khi Servlets cho phép đẩy mã nguồn lên máy chủ Cơ chế kéo và đẩy mã nguồn, cùng với các tham số, giữa các nút được gọi là thực hiện từ xa (remote execution)."

Trong khi thực hiện từ xa chỉ cho phép di chuyển mã nguồn, mobile agent hỗ trợ di chuyển tiến trình, cho phép các quá trình thực hiện chương trình di trú từ máy này sang máy khác trong mạng.

Đặc điểm của mobile agent

Tính di động của agent cho phép di chuyển giữa các nút mạng, nhưng cách thức thực hiện sự di chuyển và kiểm soát tính chuyển động là khác biệt Mobile agent được xem như là các tiến trình, nhưng không phải tất cả các lệnh đều thực hiện trên cùng một nút mạng Sự khác biệt này dẫn đến cách di chuyển của mobile agent khác với các tiến trình thông thường, với chủ thể quyết định về không gian và thời gian di chuyển là chính agent Trong khi các tiến trình thông thường được điều khiển bởi hệ thống vì lý do như vị trí tài nguyên và cân bằng tải trọng, mobile agent tự quyết định thời gian di chuyển và hệ thống cần hỗ trợ khả năng này.

Agent di chuyển giữa các nút mạng theo hai cách:

Agent có khả năng di chuyển tại bất kỳ bước nào trong quá trình thực hiện thông qua các lệnh như go, jump, và move Khi các lệnh này được thực hiện, trạng thái hiện tại của agent sẽ được đóng gói và truyền đến một nút khác trong mạng Tại nút này, quá trình thực hiện của agent sẽ tiếp tục tại bước mà chúng đã di chuyển Việc khôi phục lại trạng thái của agent tại nút đích có thể được thực hiện bởi chính agent hoặc bởi hệ thống.

Agent có khả năng di chuyển linh hoạt trong quá trình thực hiện, nhưng trạng thái của chúng sẽ được khôi phục từ đầu mỗi khi di chuyển Trước khi agent di chuyển, thông tin trạng thái sẽ được lưu trữ trong một bộ lưu trữ hoặc cơ sở tri thức Bộ lưu trữ này sẽ được gửi cùng với agent đến nút đích, nơi agent cần khôi phục trạng thái từ dữ liệu đã lưu Mặc dù hệ thống cho phép di chuyển dễ dàng, việc tạo ra agent lại khá phức tạp do liên quan đến thao tác lưu giữ và khôi phục trạng thái.

1.1.2.2 Sự thu thập dữ liệu

Mobile agent thu thập thông tin cần thiết từ môi trường cục bộ để thực hiện mục đích của mình Trước khi lưu trữ hoặc gửi đi, thông tin này cần được lọc bởi các agent Vì vậy, hệ thống mobile agent cần có khả năng đánh giá tài nguyên mà chúng cần.

Có 3 phơng pháp để xác định đờng đi cho các agent:

Xác định trước (predetermination) là quá trình mà đường đi của agent được thiết lập ngay từ khi agent được tạo ra Phương pháp này đặc biệt phù hợp khi các hành động của agent cần được kiểm soát chặt chẽ, và thứ tự các nút mà agent thăm có vai trò quan trọng trong quá trình thực hiện nhiệm vụ.

Xác định động (dynamic determination) cho phép agent tự do di chuyển giữa các nút mạng Việc chọn nút mạng tiếp theo có thể diễn ra ngẫu nhiên hoặc dựa trên kiến thức mà agent nắm giữ về các nút mạng, cũng như thông tin thu thập từ các agent khác Phương pháp này đặc biệt phù hợp với các agent trong lĩnh vực khai thác dữ liệu (data mining agent).

Xác định hỗn hợp (hybrid determination) là phương pháp kết hợp hai cách tiếp cận, cho phép các agent xác định xem các dịch vụ và tài nguyên của các nút khác trong mạng có phù hợp với mục đích của mình hay không, mặc dù các nút đích đã được định nghĩa Agent sử dụng một tập hợp các tiêu chuẩn để đánh giá sự phù hợp của các nút mạng Phương pháp này thường được áp dụng trong các trường hợp mà tốc độ trả về dữ liệu quan trọng hơn độ phức tạp của dữ liệu được xử lý.

Khả năng giao tiếp giữa các agent là yếu tố cốt lõi của hệ thống mobile agent Các agent tương tác với nhau thông qua hai phương thức chính.

Hướng mạng (network oriented) đề cập đến việc các thực thể giao tiếp thông qua các cơ chế dựa trên mạng máy tính để truyền tải thông điệp Phương pháp này cho phép các bên tham gia giao tiếp không cần phải nằm trên cùng một mạng, tạo ra sự linh hoạt và khả năng kết nối rộng rãi hơn trong việc trao đổi thông tin.

Hướng nút (node oriented) là phương pháp giao tiếp giữa các agent thông qua cơ chế truyền thông cục bộ giữa các tiến trình, như sử dụng tệp hoặc chia sẻ bộ nhớ Để áp dụng phương pháp này, các agent cần phải hoạt động trên cùng một mạng.

Ngoài ra, truyền thông có thể thực hiện theo hai cách:

Các agent có thể giao tiếp với nhau mà không cần đồng bộ hóa, cho phép trao đổi thông tin linh hoạt Dữ liệu sẽ được nhận khi các agent kiểm tra, phù hợp cho việc chia sẻ thông tin một cách hiệu quả Phương pháp này thường được áp dụng trong các tình huống cần trao đổi dữ liệu mang tính chất thông tin.

Mobile agent có thể truyền thông với nhiều thực thể khác nhau:

Tương tác với agent dịch vụ yêu cầu đáp ứng các nhu cầu cụ thể như truy cập hệ thống file và cơ sở dữ liệu Đây là kiểu tương tác máy khách/máy chủ điển hình, sử dụng phương thức truyền thông tương tự như RPC.

Tương tác giữa các mobile agent không chỉ dựa vào thông tin hai chiều trong truyền thông hỏi/đáp thông thường, mà còn được định nghĩa là sự trao đổi tri thức Các agent này chia sẻ kiến thức về mạng lưới và tài nguyên, góp phần nâng cao hiệu quả trong quá trình tương tác.

Trong quá trình tương tác với người dùng, các agent cần gửi kết quả tìm kiếm thông tin về cho người tạo ra chúng Mobile agent thường ghi lại dữ liệu thông qua một agent khác hoạt động trên nút mạng của người dùng Agent này sẽ thu thập, sắp xếp và tổ chức thông tin theo định dạng phù hợp với nhu cầu của người dùng.

Lợi ích của mobile agent

1.1.3.1 Hỗ trợ tốt hơn cho các máy khách di động

Các thiết bị di động cũng nh các phơng tiện liên lạc cá nhân có 3 đặc ®iÓm :

Kết nối với mạng thường diễn ra một cách gián đoạn, dẫn đến việc truy cập máy chủ không liên tục, đặc biệt trong bối cảnh hiện tại khi truy cập di động chủ yếu thông qua chuyển mạch kênh Tuy nhiên, điều này có thể thay đổi trong tương lai khi truy cập không dây vào mạng chuyển mạch gói trở nên phổ biến hơn Mặc dù vậy, các ứng dụng mobile agent không bị ảnh hưởng nhiều, vì chúng chỉ yêu cầu máy khách di động khởi chạy agent trong một phiên kết nối ngắn và có thể ngắt kết nối sau đó Các phản hồi sẽ được nhận trong phiên kết nối tiếp theo.

Khi kết nối, hệ thống chỉ sử dụng băng thông hẹp, nhưng agent thực hiện cả việc thu nhận và chọn lọc thông tin tại máy chủ Chỉ thông tin liên quan được trả về máy khách, giúp giảm thiểu thông tin dư thừa Nhờ đó, lượng thông tin di chuyển qua mạng được tối ưu hóa ở mức tối thiểu.

Các thiết bị có khả năng lưu trữ và xử lý hạn chế, nhưng không tiêu tốn nhiều tài nguyên hệ thống nhờ vào việc thu thập và chọn lọc thông tin đã được thực hiện bởi agent tại máy chủ Thông tin gửi về là tối thiểu và không bị dư thừa.

1.1.3.2 Truyền thông phân tán và không đồng nhất

Mobile agent giúp giải quyết vấn đề không tương thích về ngôn ngữ và định dạng dữ liệu, cũng như sự không đồng nhất trong môi trường thực hiện Chúng chứa mã nguồn trong quá trình truyền thông, cho phép ánh xạ các giao diện giữa các hệ thống khác nhau Điều kiện duy nhất là các dịch vụ nguyên thủy của ngôn ngữ agent cần phải có khả năng thực hiện trên từng hệ thống đó.

Mobile agent là một chương trình phân tán cho phép di chuyển đến máy đích và thực hiện nhiệm vụ theo lịch trình Hệ thống mobile agent cung cấp hạ tầng cần thiết cho việc giao tiếp giữa các nhiệm vụ trong môi trường không đồng nhất Nó hỗ trợ biên dịch và khởi tạo agent độc lập, cho phép gán nhiệm vụ cho agent ngay trong quá trình thực hiện Hơn nữa, tính di động của agent giúp biểu diễn nhiều thuật toán một cách tự nhiên trên toàn mạng, thay vì chỉ thông qua cơ chế truyền thông điệp.

Trong truyền thông dựa trên RPC, việc thực hiện một giao dịch đơn giản thường yêu cầu nhiều luồng giữa máy khách và máy chủ Tuy nhiên, khi sử dụng mobile agent, số lượng luồng này được giảm xuống chỉ còn một mobile agent, giúp giảm tải mạng một cách hiệu quả.

Các thao tác thu thập và chọn lọc thông tin được thực hiện tại máy chủ, giúp giảm khối lượng dữ liệu chuyển từ máy chủ về máy khách Thông tin được gửi về đã được xử lý và không chứa dữ liệu thừa.

1.1.3.4 Tơng tác không đồng bộ Đây là đặc điểm chung của các hệ thống dựa trên thông điệp

Theo mô hình này, máy khách cần luôn sẵn sàng nhận và xử lý kết quả trả về cho từng yêu cầu Điều này đặc biệt khó khăn đối với các thiết bị di động, do việc duy trì kết nối liên tục vừa tốn kém vừa khó thực hiện.

Với công nghệ mobile agent, vấn đề này đã đợc giải quyết

Từ góc nhìn người sử dụng, toàn bộ công việc đã được chuyển lên mạng và thực hiện một cách không đồng bộ Khi yêu cầu được gửi đi, máy khách có thể ngắt kết nối khỏi mạng Sau vài ngày hoặc thậm chí vài tuần, máy khách có thể kết nối lại để nhận kết quả.

Tất nhiên, để làm đợc điều này, hạ tầng hệ thống mạng phải đảm bảo khả năng định dạng các agent, lu trữ agent và không đánh mất agent

1.1.3.5 Tìm kiếm và chọn lọc từ xa

Nếu tất cả thông tin được lưu trữ trong cơ sở dữ liệu có cấu trúc, có thể gửi câu lệnh SQL tới máy chủ để thực hiện chọn lọc Tuy nhiên, điều này không phải lúc nào cũng đúng, vì nhiều dữ liệu ở dạng text đơn thuần Việc tìm kiếm và chọn lọc từ xa yêu cầu khả năng mở, đọc, chọn lọc và lập chỉ mục Các chương trình agent là phương thức hợp lý và đáng tin cậy để thực hiện dịch vụ này.

1.1.3.6 Tạo điều kiện thuận lợi cho việc thu thập thông tin có ngữ nghĩa

Việc tìm kiếm và chọn lọc thông tin là yếu tố quan trọng trong lập trình agent, do đó cần xem xét hệ thống thu thập thông tin có ngữ cảnh (Semantic Retrieval) Người sử dụng nhập truy vấn vào thiết bị, hệ thống sẽ diễn giải truy vấn một cách có ngữ nghĩa và có thể tương tác với người dùng để làm rõ hơn Sau đó, truy vấn được định dạng lại sẽ được gửi tới một hoặc nhiều máy chủ để thu thập thông tin Hệ thống cần có khả năng tương tác hiệu quả với cả người dùng và nguồn thông tin, trong khi tương tác với người dùng tương đối đơn giản, thì việc tương tác với môi trường đa máy chủ lại phức tạp hơn do các nguồn thông tin phân tán và khối lượng thông tin liên quan rất lớn.

Hệ thống lý tưởng sẽ tích hợp tri thức chuyên sâu trong lĩnh vực cụ thể, phục vụ nhu cầu người dùng và có khả năng chọn lọc dữ liệu hiệu quả Tri thức này được xây dựng từ nghiên cứu và học hỏi trên dữ liệu hiện có trong chuyên môn Các chương trình cần trích xuất dữ liệu này để làm việc hiệu quả hơn, tập trung vào nguồn dữ liệu thay vì gửi dữ liệu tới chương trình Nhờ đó, một agent có thể tự động lập chỉ mục cho tài liệu, xác định các tài liệu phù hợp với nhu cầu trong số lượng lớn và thông báo cho các agent khác về tài liệu có tiềm năng đáp ứng nhu cầu của họ.

Mobile agent là một phương pháp đổi mới và hấp dẫn để giải quyết vấn đề tìm kiếm thông tin trên Internet Nếu môi trường thực hiện agent trở nên phổ biến, đây sẽ là giải pháp hiệu quả cho nhu cầu tìm kiếm thông tin trên mạng rộng lớn.

1.1.3.7 Tạo điều kiện thuận lợi cho sự tơng tác thời gian thực với máy chủ

Một lý do quan trọng để thực hiện công việc trên máy chủ là mỗi máy đều có giao diện riêng với các thiết bị bên ngoài Khi độ trễ truyền thông trong mạng cao hơn ràng buộc thời gian thực của thiết bị, việc gửi chương trình điều khiển để thực hiện từ xa tại máy chủ sẽ hiệu quả hơn Ví dụ điển hình là phần mềm điều khiển cho các tàu thăm dò vũ trụ trong hệ mặt trời Chương trình thực hiện cục bộ, dù thông dịch, sẽ có độ trễ tương đối thấp và hạn chế, đồng thời cung cấp nhiều cơ hội hơn cho việc sửa lỗi.

1.1.3.8 Cho phép khả năng định đờng có ngữ cảnh

Mô hình tương tác máy khách/máy chủ hiện nay yêu cầu kiến thức chi tiết từ cả hai phía về ứng dụng và giao thức, nhưng mobile agent có thể khắc phục những

ứ ng dụng

Sự tăng trưởng tương hỗ giữa công nghệ mạng truyền tin và công nghệ mobile agent ngày càng rõ rệt Khi mạng truyền tin trở nên nhanh chóng và đáng tin cậy hơn, hiệu quả của các agent cũng được nâng cao Ngược lại, các dịch vụ cơ bản của mạng thông tin được hỗ trợ mạnh mẽ bởi công nghệ mobile agent Hơn nữa, mối quan hệ tương hỗ giữa chất lượng công nghệ thông tin, bao gồm mạng truyền tin, thiết bị tin học và phần mềm, với nhu cầu của người sử dụng cũng đang gia tăng.

Với sự phát triển mạnh mẽ của Internet, các dịch vụ do công nghệ mobile agent cung cấp ngày càng đa dạng Hiện có nhiều hệ thống mobile agent khác nhau để lựa chọn, phục vụ cho nhu cầu phát triển.

1.1.4.1 Thu thập thông tin từ nhiều địa điểm

Một ví dụ về ứng dụng sao chép dự phòng trên mạng là công cụ định kỳ kiểm tra ổ đĩa của tất cả máy tính kết nối với hệ thống Công cụ này sử dụng một mobile agent để thu thập thông tin về trạng thái sao chép dự phòng của từng ổ đĩa trong mạng Sau khi hoàn thành nhiệm vụ, mobile agent sẽ quay lại điểm xuất phát và lập báo cáo chi tiết về kết quả của chuyến đi.

Các mobile agent có khả năng giám sát chất lượng và thông lượng của các nút và kênh trong mạng, cung cấp thông tin báo động kịp thời Chúng cũng có thể tự động điều chỉnh cấu hình mạng để phản ứng nhanh chóng trước các sự cố Đây là những chủ đề nghiên cứu tiềm năng có thể trở thành hiện thực trong tương lai gần.

1.1.4.2 Tìm kiếm và chọn lọc thông tin

Sự bùng nổ thông tin trên mạng đã làm cho việc tìm kiếm thông tin giá trị trở nên khó khăn, khi chỉ cần một từ khóa nhỏ có thể dẫn đến hàng nghìn trang liên quan, nhưng không phải tất cả đều có giá trị Quá trình lọc bỏ thông tin không phù hợp có thể tốn kém và nhàm chán Với sự hỗ trợ của mobile agent, người dùng có thể truy cập nhiều trạm thông tin, tìm kiếm trong dữ liệu có sẵn và tạo danh sách liên kết đến những mục tin phù hợp với tiêu chuẩn đã định.

Trong các hoạt động hành chính của chính phủ, các agent di động có thể hỗ trợ tìm kiếm văn bản luật pháp, thông tin sửa đổi và dữ liệu liên quan đến địa phương Chính phủ có thể sử dụng nhiều agent di động để thực hiện thăm dò dư luận Hiện nay, xu hướng chính phủ điện tử đang nổi bật, trong đó nhiều công việc hành chính sẽ được "bàn giao" cho các agent di động.

Mobile agent tích hợp tri thức về sở thích của người sử dụng, thể hiện tính thông minh của chúng Mỗi agent được trang bị thông tin này dưới dạng điều kiện tìm kiếm và lịch trình di chuyển Chúng hoạt động như người sử dụng trên mạng, sàng lọc dữ liệu để tìm ra những thông tin mà người sử dụng quan tâm Cuối cùng, agent sẽ gửi lại bản tường trình về kết quả tìm kiếm tại một vị trí nhất định.

1.1.4.3 Theo dõi thông tin Đôi khi thông tin không chỉ đợc dàn trải về mặt không gian (trên đĩa của các máy tính khác nhau có kết nối với cùng một hệ thống mạng), mà còn bị dàn trải về mặt thời gian Các thông tin mới đợc sản sinh và phát hành liên tục trên hệ thống mạng Do vậy, đôi khi agent phải nằm phục sẵn ở đâu đó để thu thập ngay những thông tin quan tâm khi nó vừa mới đợc sinh ra

Một agent có thể thực hiện các nhiệm vụ như mua cổ phiếu khi giá đạt mức mong muốn tại trạm chủ giao dịch chứng khoán, hoặc giám sát nhiều nguồn tin để thu thập thông tin cá nhân mà người dùng quan tâm, và báo cáo khi có thông tin mới.

1.1.4.4 Phân phát thông tin có chủ đích

Một ứng dụng tiềm năng của mobile agent là phân phối tin tức và quảng cáo đến đối tượng mục tiêu Công nghệ này cho phép tạo ra quảng cáo hình động thông minh, giúp các nhà sản xuất và doanh nghiệp nhanh chóng nắm bắt sở thích của khách hàng.

Mobile agent, tương tự như email, có thể bị lạm dụng để truyền bá thông tin một cách bừa bãi, chẳng hạn như quảng cáo Điều này đã tạo ra một thị trường mới cho các agent, trong đó chúng được sử dụng như những bộ lọc spam hiệu quả.

1.1.4.5 Đàm phán và giao dịch thơng mại

Các agent không chỉ tìm kiếm cơ sở dữ liệu và file mà còn có khả năng thu thập thông tin thông qua việc liên lạc với các agent khác Ví dụ, khi bạn muốn tổ chức một cuộc họp có nhiều người tham gia, bạn có thể gửi một mobile agent để tương tác với các agent của những người mà bạn muốn mời Các agent này sẽ thực hiện đàm phán và thống nhất thời gian cho cuộc họp.

Trong trường hợp này, mỗi agent sẽ lưu trữ thông tin về lịch làm việc của từng người dùng Để sắp xếp cuộc họp, các agent sẽ trao đổi và chia sẻ thông tin đó với nhau.

Thương mại điện tử rất phù hợp với công nghệ mobile agent, cho phép thực hiện mua sắm tự động Một mobile agent có thể lập yêu cầu và thanh toán thay bạn, ví dụ như tìm kiếm chuyến bay từ Paris đến New York Nó sẽ tra cứu dữ liệu về lịch bay và giá vé từ nhiều hãng hàng không để tìm ra lựa chọn tốt nhất, đặt chỗ trước và thanh toán bằng thẻ tín dụng của bạn.

Cấu trúc hoạt động một hệ thống mobile agent

Tổng quan

Cấu trúc hoạt động của hệ thống dựa trên phương pháp mô hình hóa hướng agent, trong đó mọi thành phần đều được trừu tượng hóa theo agent Hệ thống bao gồm hai loại agent: agent tĩnh và mobile agent Agent tĩnh cung cấp tài nguyên và phương tiện cho mobile agent, trong khi mobile agent di chuyển giữa các miền, sử dụng tài nguyên tại các miền để thực hiện mục đích của mình.

Hình 1.4: Cấu trúc hoạt động của hệ thống obile agentm

Agent miÒn

Trong môi trường mạng, các agent và tài nguyên được tổ chức thành các thực thể gọi là miền Agent miền (domain agent) là loại agent tĩnh có nhiệm vụ giám sát tất cả các hoạt động diễn ra trong miền đó Các agent miền thực hiện nhiều chức năng quan trọng để đảm bảo sự ổn định và hiệu quả của hệ thống.

Chúng tôi cung cấp dịch vụ di chuyển cho các mobile agent muốn rời khỏi miền hiện tại Để đảm bảo quá trình di chuyển diễn ra thành công, agent miền cần xác nhận rằng agent sẽ được truyền đi một cách hiệu quả Hơn nữa, để người dùng có thể theo dõi agent của họ, agent miền phải thiết lập cơ chế thông báo cho nút gốc của agent.

Cung cấp cơ chế xác nhận và xác thực cho các agent khi di chuyển vào miền, đồng thời agent miền cũng cần có cơ chế thông báo.

Khi các agent di chuyển vào miền, agent miền cần khởi động chúng trong môi trường phù hợp dựa trên độ tin cậy của từng agent Các agent từ các nút mạng đáng tin cậy sẽ được cấp quyền truy cập nhiều tài nguyên hơn so với các agent từ nút mạng lạ Môi trường hoạt động của agent còn phụ thuộc vào ngôn ngữ lập trình mà chúng được xây dựng, mức độ truy cập được cấp phát, và các chức năng mà agent cần thực hiện.

Dàn xếp quyền truy cập vào tài nguyên thông tin là nhiệm vụ quan trọng của agent miền Để đảm bảo an toàn, các mobile agent cần được cấp quyền trước khi thực hiện truy cập vào các tài nguyên này.

Cơ chế tìm đường tập trung cho các thông điệp được cung cấp, cho phép các agent tĩnh và mobile agent giao tiếp thông qua các thông điệp được gửi qua agent miền Phương pháp này hỗ trợ giao tiếp không đồng bộ giữa các agent, nhưng cũng cho phép giao tiếp đồng bộ trực tiếp khi cần thiết.

Cung cấp cơ chế đăng ký tập trung cho phép các agent tĩnh và mobile agent đăng ký tài nguyên mà chúng cung cấp hoặc cần thiết Tuy nhiên, cần giới hạn số lượng agent có thể tồn tại trong miền trong một khoảng thời gian nhất định để đảm bảo hiệu suất và quản lý tài nguyên hiệu quả.

Các agent miền cần quảng bá các tài nguyên thông tin chung cùng với sự hiện diện của các agent di động khác Điều này cho phép các agent di động khác truy cập thông tin cần thiết để quyết định xem có nên di chuyển đến miền đó hay không, cũng như tìm hiểu thêm về các agent di động khác.

Các agent miền cần thường xuyên thông báo cho nhau về sự hiện diện của mình Điều này giúp các agent miền xác định danh sách các miền có thể được sử dụng bởi các mobile agent khi có nhu cầu di chuyển.

Đại lý miền cần đảm bảo an ninh được thực thi trong khu vực, giúp các mobile agent có khả năng giao tiếp lẫn nhau và tương tác với các tài nguyên thông tin một cách hiệu quả.

Agent tài nguyên

Agent tài nguyên là một agent tĩnh trong một miền, có nhiệm vụ cung cấp tài nguyên cho các agent khác Mục đích chính của agent này là dàn xếp việc truy cập vào các tài nguyên thông tin, đồng thời hiểu cách truy vấn các tài nguyên cũng như các quyền liên quan đến chúng Agent tài nguyên thực hiện một số chức năng quan trọng trong việc quản lý và phân phối tài nguyên.

 Toàn bộ tài nguyên phải đợc truy cập thông qua agent tài nguyên Sự truy cập trực tiếp vào tài nguyên thông tin là không cần thiết

Các mobile agent được cung cấp các hàm chuẩn để truy cập tài nguyên thông tin, giúp giải quyết các vấn đề phức tạp Những hàm này cần được thiết kế sao cho có thể kết hợp linh hoạt, tạo điều kiện thuận lợi cho việc xử lý thông tin hiệu quả.

Dàn xếp quyền truy cập tài nguyên thông tin dựa trên từng agent là rất quan trọng Khi một agent được cấp quyền truy cập, agent tài nguyên có trách nhiệm đảm bảo tính toàn vẹn và tính riêng tư của tài nguyên Khi agent di chuyển đến một miền mới, agent miền cần cấp cho agent đó một tập quyền để agent tài nguyên có thể kiểm soát hiệu quả việc truy cập vào tài nguyên.

Cung cấp sự chuyển đổi giữa cách biểu diễn thông tin của mobile agent và cách biểu diễn thông tin của tài nguyên mà agent quản lý.

Đăng ký tài nguyên với agent miền giúp các mobile agent nắm bắt thông tin sẵn có trong miền trước khi di chuyển đến đó.

Mobile agent

Mobile agent là một phần quan trọng trong cấu trúc hoạt động, cho phép di chuyển giữa các nút mạng Người dùng có thể kiểm soát tài nguyên của mình và truy cập vào các tài nguyên khác thông qua mobile agent Tuy nhiên, các agent thường bị giới hạn bởi các mục đích cụ thể mà người dùng gán cho, cũng như bởi các cơ chế bảo mật và xác thực trong miền làm việc Những hạn chế này có thể ảnh hưởng đến khả năng thực hiện mục tiêu ban đầu của mobile agent.

Các mobile agent đợc phối hợp với nhau theo hai phơng pháp chính:

Hệ thống đơn agent (single-agent system) thể hiện chức năng qua từng agent riêng lẻ, với các nhiệm vụ được gán cho từng agent để hoàn thành công việc cá nhân, dù vẫn có sự tương tác với các agent khác Mặc dù phương pháp này có thể hạn chế chức năng của agent và gây ra độ trễ trong việc hoàn thành nhiệm vụ, nhưng nó lại dễ thực hiện hơn Do đó, khi áp dụng cấu trúc hoạt động theo phương pháp này, yếu tố quan trọng cần chú ý là việc truyền thông giữa các agent.

Hệ thống đa agent (multi-agent system) khác biệt với hệ thống đơn agent ở chỗ các agent có khả năng sinh ra các agent liên quan khác Điều này tạo ra một hệ thống phân tầng, trong đó các agent tĩnh và mobile agent phối hợp hỗ trợ agent ban đầu hoàn thành mục tiêu Hệ thống này phù hợp với nguyên lý trí tuệ nhân tạo và thường được áp dụng để giải quyết các vấn đề phức tạp.

Trong cấu trúc hoạt động, các mobile agent có những tơng tác chính sau:

Mobile agent xác định vị trí tiếp theo bằng cách truy vấn agent trong miền cục bộ để lấy danh sách các miền Dựa trên thông tin này, mobile agent sẽ liên hệ và quyết định miền nào có tài nguyên phù hợp nhất với nhu cầu của nó.

Mobile agent có thể được xác thực thông qua chữ ký điện tử, được mã hóa và thẩm định bởi máy chủ tạo ra agent Bên cạnh đó, agent cần được kiểm tra để đảm bảo không bị hư hại trong quá trình truyền tải và mục đích của chúng không bị thay đổi so với thời điểm tạo ra.

Mobile agent có đặc tính bền (persistence), cho phép chúng cập nhật cơ sở tri thức từ các miền mà chúng di chuyển đến, các hành động thực hiện và những kết quả đạt được Do đó, một agent tồn tại lâu dài sẽ tích lũy được nhiều kinh nghiệm quý báu.

Mobile agent có khả năng giao tiếp với các agent khác để đạt được mục tiêu của mình, mang lại nhiều lợi ích như khả năng chia sẻ và tái sử dụng kết quả giữa các agent thực hiện công việc tương tự Một agent có thể cung cấp dịch vụ và kinh nghiệm trong các lĩnh vực cụ thể cho các agent khác Tuy nhiên, phương pháp này cũng tồn tại nhược điểm về độ tin cậy, đặc biệt khi các agent trao đổi thông tin liên quan đến tiền điện tử, khi mà câu hỏi về độ tin cậy và chính xác của thông tin luôn được đặt ra.

Mobile agent cần định kỳ gửi kết quả tìm kiếm và các hành động về nút gốc để người dùng có thể theo dõi và đảm bảo rằng agent hoạt động đúng cách Điều này giúp kiểm soát agent, ví dụ như khi kích thước của agent quá lớn để di chuyển hoặc khối lượng công việc vượt quá mức cho phép.

Agent giao diện ngời dùng

Agent giao diện người dùng (user interface agent) là một loại agent hoạt động trong miền, cung cấp giao diện cho các mobile agent nhằm phục vụ người dùng Agent này sở hữu nhiều khả năng hữu ích.

 Thay mặt ngời dùng khởi tạo các mobile agent và theo dõi sự hoạt động, vị trí của chúng

Các mobile agent đóng vai trò là điểm truyền thông, cho phép gửi kết quả hành động đến người dùng Ngoài ra, agent giao diện còn có khả năng di chuyển để ứng phó với tình huống nút mạng bị hỏng.

Tổ chức và tiền xử lý kết quả từ các agent để đáp ứng nhu cầu người dùng, bao gồm việc loại bỏ thông tin trùng lặp, sắp xếp dữ liệu theo mức độ ưu tiên và trình bày thông tin bằng các công cụ thân thiện với người dùng.

 Cung cấp thông tin cần thiết (tên, mật khẩu) để agent miền có thể xác thực mobile agent của ngời dùng

Agent giao diện cung cấp cho ngời dùng một cửa sổ tới agent của họ, tới trạng thái của những agent đó, kết quả công việc của agent.

Agent cổng

Agent cổng (gateway agent) là một thực thể tĩnh trong miền, cung cấp truy cập đến mạng khác hoặc các miền hạn chế Để thực hiện chức năng của mình, agent cổng cần đảm bảo cung cấp các dịch vụ cần thiết.

Mạng hỗn hợp cho phép các mobile agent di chuyển giữa các giao thức mạng nhờ vào việc trang bị các giao thức trao đổi Các agent cổng đóng vai trò quan trọng trong việc cấp quyền truy cập mạng mới cho các agent, thay thế giao thức mạng cũ bằng giao thức mới, giúp các agent thực hiện truyền thông hiệu quả trong môi trường mạng mới.

Here is the rewritten paragraph:"Một miền lửa (firewall) là một miền hoặc tập các miền có thể tồn tại trong cùng một mạng nhưng được bảo vệ khỏi sự truy cập của những agent ẩn danh ở mức cao hơn Với nhiệm vụ lọc những agent vào và agent ra của miền (tập miền), agent cổng đảm bảo những agent đó không bao gồm những agent gây hại và không đem đi những thông tin quan trọng."

Một số hệ thống mobile agent hiện nay

Agent TCL

Hệ thống Agent TCL là một mô hình hỗ trợ mobile agent, được phát triển tại Khoa Khoa học máy tính, trường Đại học Dartmouth Kiến trúc của Agent TCL dựa trên mô hình máy chủ của Telescript và hỗ trợ phiên bản sửa đổi của ngôn ngữ TCL (Tool Command Language) Kiến trúc này bao gồm bốn lớp, như thể hiện trong hình vẽ 1.

Hình 1.5: Kiến trúc hệ thống Agent TCL

Tầng thấp nhất là một giao diện lập trình ứng dụng (Application Programming Interface: API) cho các cơ chế truyền tải hiện có nh TCP/IP,

Email Tầng thứ hai là một máy chủ chạy tại mỗi nút mạng nơi mà các agent có thể gửi đi Nó có các chức năng là:

 Theo dõi và trả lời các yêu cầu về trạng thái của các agent đang chạy trên nó

 Chấp nhận và xác thực các agent đến

 Hỗ trợ không gian tên phân cấp cho từng agent và dịch vụ

 Cho phép các agent truyền thông thông qua thông điệp

 Hỗ trợ truy nhập vùng lu trữ trạng thái của các agent, nơi chúng sao lu trạng thái để khi máy hỏng có thể khôi phục lại

Tầng thứ ba của hệ thống chứa các bộ biên dịch cho từng ngôn ngữ lập trình, cho phép máy chủ xử lý các agent viết bằng các ngôn ngữ khác nhau như TCL hay Java Khi một agent được viết bằng TCL, máy chủ sẽ nạp bộ biên dịch TCL để xử lý, tương tự với agent viết bằng Java thông qua máy ảo Java Các agent được xử lý trong các bộ biên dịch và sử dụng công cụ của máy chủ để di chuyển giữa các máy và giao tiếp với nhau Có hai loại agent: mobile agent, di chuyển đến các máy để truy cập tài nguyên, và agent tĩnh, hỗ trợ các dịch vụ quản trị tài nguyên và giao thức mức cao.

Agent được phát triển bằng các ngôn ngữ thông dịch như TCL hoặc Java, trong khi những agent viết bằng ngôn ngữ biên dịch như C sẽ bị hạn chế khả năng di chuyển Mỗi agent có khả năng tạm dừng quá trình xử lý tại bất kỳ điểm nào, sau đó truyền đến một máy khác và tiếp tục xử lý tại đó thông qua lệnh agent_jump Lệnh này sẽ đóng gói trạng thái của agent và chuyển nó đến nút đích, nơi máy chủ sẽ khởi động lại agent tại lệnh tiếp theo sau lệnh agent_jump Quá trình truyền agent có thể được thực hiện thông qua giao thức TCP/IP.

Agent TCL cung cấp các lệnh agent_send và agent_receive để gửi thông điệp giữa các agent, cùng với các lệnh agent_meet và agent_accept để thiết lập kết nối trực tiếp Khi agent nguồn muốn giao tiếp với agent đích, nó sẽ gửi lệnh agent_meet Agent đích sẽ sử dụng lệnh agent_accept để chấp nhận hoặc từ chối yêu cầu từ agent nguồn Nếu chấp nhận, agent đích sẽ cung cấp thông tin cổng cho agent nguồn để tiếp tục truyền thông Thông điệp giữa các agent được truyền qua các lệnh agent_send và agent_receive.

Việc thực hiện các agent được xử lý thông qua các bộ thông dịch, bao gồm bốn thành phần chính: module biên dịch, module bảo mật để ngăn chặn hành động có hại, module trạng thái để quản lý và khôi phục trạng thái nội tại của agent, và một API để giao tiếp với máy chủ, thực hiện di chuyển, truyền thông và checkpoint.

Agent TCL cung cấp nhiều mức bảo vệ cho việc quản lý và xác thực agent Hệ thống sử dụng PGP để thực hiện chữ ký số và mã hóa, đảm bảo an toàn cho thông tin Để quản lý tài nguyên, Agent TCL có một thành phần chuyên trách gán quyền truy cập cho từng agent, giúp kiểm tra quyền truy cập khi có yêu cầu Nếu agent không đủ quyền, yêu cầu sẽ bị từ chối Ngoài ra, mỗi bộ biên dịch được trang bị một module bảo mật nhằm ngăn chặn các hành động có hại từ agent.

Hệ thống này có một số nhược điểm đáng lưu ý Đầu tiên, do được viết bằng ngôn ngữ TCL, hiệu suất không cao bằng các ngôn ngữ biên dịch khác và tốc độ xử lý chậm hơn Thứ hai, nó không hỗ trợ lập trình hướng đối tượng và module hóa, gây khó khăn trong việc viết và gỡ lỗi chương trình Thứ ba, hệ thống thiếu công cụ để bắt giữ trạng thái của script đang thực hiện, điều này cần thiết để di chuyển và khởi tạo lại code tại bất kỳ điểm nào trong mã Cuối cùng, nó không có công cụ bảo vệ tài nguyên khi agent gặp lỗi, buộc người dùng phải sử dụng giải pháp của bên thứ ba.

Dù có những hạn chế, hệ thống này vẫn được đánh giá cao và đã được áp dụng để phát triển các ứng dụng quản lý thông tin cũng như truy vấn dữ liệu hiệu quả.

TACOMA

TACOMA (Tromoso And Cornell Moving Agents) là dự án hợp tác giữa Đại học Tromoso và Đại học Cornell, nhằm phát triển hệ điều hành hỗ trợ triển khai và xử lý các mobile agent được lập trình bằng ngôn ngữ C.

C ++ , ML, Perl, Python, Scheme, Visual Basic

TACOMA là một hệ thống bao gồm các agent tĩnh và mobile agent, trong đó mobile agent hoạt động theo phương thức không trạng thái Mỗi agent có ba cơ chế lưu trữ: folder (kẹp tài liệu), filing cabinet (tủ đựng hồ sơ) và briefcase (cặp đựng tài liệu) Folder là đơn vị dữ liệu cơ bản, được truy cập bởi agent và có thể được lưu trữ trong các filing cabinet, là các kho dữ liệu tĩnh quản lý bởi máy chủ, hoặc trong các briefcase, là nơi lưu trữ dữ liệu di động cùng với agent Khi agent di chuyển giữa các nút, trạng thái được lưu trong folder data và mã chương trình trong folder code, cả hai đều được lưu trong cùng một briefcase tương ứng Tại nút đích, mã chương trình của agent được lấy ra từ folder code để thực hiện, trong khi trạng thái được khôi phục từ folder data.

Hình 1.6: Kiến trúc hệ thống TACOMA

Trong TACOMA, các agent sử dụng primitive đơn giản "meet" để di chuyển tới nút khác Khi muốn di chuyển, agent sẽ gọi "meet" cùng với tên của agent đích và một briefcase, kết thúc thao tác gọi và khởi tạo xử lý agent đích với briefcase tương ứng Các agent dịch vụ được kích hoạt khi có thao tác "meet", tương tự như mô hình máy khách/máy chủ Gửi "meet" giống như lời gọi hàm, với các folder trong briefcase tương ứng là các đối số và agent đích là hàm Tuy nhiên, thao tác "meet" không hỗ trợ lưu trạng thái tự động hay di chuyển có ưu tiên, mà chỉ kích hoạt các agent dịch vụ nội bộ hoặc xa, và việc kích hoạt này có thể diễn ra đồng bộ.

(khóa agent máy khách cho đến khi agent dịch vụ trả về một briefcase) hay dị bộ (khóa agent máy khách cho đến khi briefcase đợc đa đi thành công )

Một agent trong hệ thống TACOMA ở một nút di chuyển tới nút khác thông qua việc sử dụng TCP để truyền thông với phần mềm TACOMA ở nút đích

Trong hệ thống TACOMA, thành phần nhận briefcase được gọi là bridgehead, bao gồm các thực thể firewall, tiến trình bảo vệ, agent dịch vụ mã hóa và agent dịch vụ ngôn ngữ, nhằm giải quyết vấn đề bảo mật và chịu lỗi.

Nhợc điểm của hệ thống là:

 Ngời lập trình phải viết chơng trình bắt giữ thông tin trạng thái của agent lu vào folder để phục di c agent

 Vấn đề cài đặt phần mềm do hệ thống viết trên ngôn ngữ C nên nó phụ thuộc vào từng hệ điều hành.

Telescript

Telescript là sản phẩm thương mại của General Magic Incorporated, được thiết kế để hỗ trợ mobile agent trong môi trường thương mại điện tử Hai khái niệm chính của Telescript là place và engine, với Telescript là ngôn ngữ lập trình hướng đối tượng cung cấp lệnh cơ bản cho agent di chuyển theo phương thức hướng trạng thái: go Tại mỗi nút trong hệ thống, có một chương trình chủ (engine) tiếp nhận và xử lý các agent, khởi động lại chúng sau lệnh go Mỗi engine có ba giao diện lập trình ứng dụng (API): một API lưu trữ cho phép truy cập vào vùng nhớ bền vững để sao lưu place hay agent, một API vận chuyển cho phép truy cập vào thiết bị truyền thông để truyền nhận agent giữa các engine, và một API ứng dụng mở rộng cho phép tương tác giữa ứng dụng viết bằng Telescript và ngôn ngữ C.

Agent có khả năng di chuyển giữa các địa điểm, là những vùng logic có liên quan trong các engine Mỗi engine có thể hỗ trợ nhiều địa điểm và cũng sở hữu một địa điểm riêng gọi là engine place Các địa điểm engine này tồn tại trong một vùng, tạo thành các điểm kết nối trong mạng Telescript.

Hình 1.7: Kiến trúc hệ thống Telescript

Khi di chuyển đến một địa điểm, hệ thống sẽ xác minh đại lý và quyết định cấp quyền truy cập cho đại lý vào địa điểm đó hay không.

Grasshopper

Grasshopper là sản phẩm được phát triển bởi GMD Fokus và IKV++, là hệ thống đầu tiên tuân theo chuẩn OMG MASIF và FIPA'97 Hệ thống này hỗ trợ các nhà lập trình agent trong việc phát triển nhiều loại agent, từ các mobile agent nhỏ gọn di chuyển giữa các nút mạng đến các hệ thống đa agent tĩnh giao tiếp qua ngôn ngữ truyền thông agent (Agent Communication Language), nhằm giải quyết vấn đề phân tán Grasshopper được xây dựng trên nền tảng Java.

Hình 1.8: Kiến trúc hệ thống Grasshopper

Hệ thống Grasshopper giới thiệu mô hình môi trường agent phân tán, bao gồm các loại agent như mobile agent và stationary agent, cùng với các agency, địa điểm và vùng Khái niệm vùng giúp quản lý hiệu quả các đối tượng phân tán như agent, agency và place trong môi trường Grasshopper Địa điểm được định nghĩa là một tập hợp logic các chức năng bên trong agency Mỗi nút mạng trong hệ thống có ít nhất một agency để xử lý agent, trong đó agency bao gồm phần lõi tối thiểu để xử lý agent và một hoặc nhiều place Phần lõi cung cấp các dịch vụ cần thiết cho hoạt động của agent.

Dịch vụ truyền thông cung cấp khả năng tương tác giữa các agent, agency và các thực thể không phải agent một cách minh bạch về vị trí, đồng thời hỗ trợ việc di chuyển và định vị agent thông qua registry vùng Tất cả các tương tác được thực hiện qua giao thức CORBA IIOP, Java RMI hoặc các kết nối socket đơn giản, với khả năng bảo mật thông qua giao thức SSL Dịch vụ này hỗ trợ truyền thông đồng bộ, phi đồng bộ và multicast, đồng thời sử dụng các giao diện CORBA theo chuẩn OMG MASIF cho các tương tác từ xa trong hệ thống MAFAgentSystem tại mỗi agency và MAFFinder tại thành phần registry vùng.

Dịch vụ đăng ký cho phép các agency quản lý thông tin về các agent và địa điểm mà họ phục vụ, giúp việc chuyển giao thông tin về các thực thể được đăng ký trở nên hiệu quả hơn Hơn nữa, dịch vụ này kết nối với Region Registry để cập nhật thông tin về các agent và agency place trong toàn khu vực.

Dịch vụ quản lý cung cấp cho người dùng khả năng giám sát và điều khiển các agent cũng như các place trong một agency Người dùng có thể tạo, hủy, treo hoặc khôi phục các agent và dịch vụ, đồng thời xem danh sách các agent trong một place và danh sách tất cả các place trong agency.

Grasshopper cung cấp dịch vụ bảo mật với hai cơ chế chính: bảo mật trong và bảo mật ngoài Bảo mật trong giúp bảo vệ tài nguyên của agency khỏi sự truy cập trái phép từ các agent không được phép, đồng thời đảm bảo rằng chỉ những người dùng được ủy quyền mới có thể xử lý các agent cụ thể Các chính sách truy cập được thiết lập dựa trên kết quả xác thực Bảo mật trong của Grasshopper dựa vào các cơ chế bảo mật của Java Trong khi đó, bảo mật ngoài bảo vệ các tương tác từ xa giữa các thành phần phân tán của Grasshopper, bao gồm các agency và region registry, thông qua việc sử dụng chứng thực X509 và giao thức bảo mật SSL, một chuẩn công nghiệp cho mã hóa đối xứng và bất đối xứng.

Dịch vụ sẵn sàng cung cấp khả năng lưu trữ thông tin nội tại của các agent và place ở một vị trí bền vững, giúp phục hồi chúng khi cần thiết Ví dụ, một agency có thể được khởi tạo lại nhanh chóng sau khi hệ thống gặp thảm họa.

Aglets

Aglets Software Development Kit (SDK) được phát triển bởi phòng thí nghiệm nghiên cứu của IBM tại Tokyo, hỗ trợ Java 1.1 và 1.2 SDK này bao gồm các thành phần chính như Aglets Framework, với các API như AgletProxy và AgletContext, nhằm hỗ trợ việc tạo và quản lý mobile agent, cũng như gửi chúng tới các nút khác Bên cạnh đó, Agent Transfer Protocol (ATP) cung cấp giao thức đơn giản và không phụ thuộc nền tảng để truyền tải các agent qua mạng.

Mỗi mobile agent được xác định bởi một lớp aglet, cung cấp các thuộc tính và phương thức mặc định Aglet còn đi kèm với đối tượng agletInfo, chứa ID duy nhất và thành phần lắng nghe sự kiện cũng như thông điệp Việc giao tiếp giữa các mobile agent diễn ra qua đối tượng AgletProxy, cho phép truyền thông điệp cục bộ hoặc từ xa, tạo ra sự trong suốt về không gian cho mobile agent Có ba kiểu truyền thông điệp được sử dụng trong quá trình này.

Các thông điệp kiểu ngay lập tức (now-typed message) cho phép truyền đồng bộ và duy trì kết nối giữa người gửi và người nhận cho đến khi bên nhận hoàn tất việc xử lý thông điệp.

Các thông điệp kiểu tương lai (future-typed message) cho phép truyền tải không đồng bộ mà không cần dừng lại quá trình xử lý hiện tại Đối tượng FutureReply sẽ được gửi lại cho người gửi thông điệp, giúp họ nhận kết quả sau một thời gian mà không cần chờ đợi.

Các thông điệp kiểu một chiều (oneway-typed message) được truyền tải một cách không đồng bộ và không yêu cầu giữ lại quá trình xử lý hiện tại, tuy nhiên không có đối tượng FutureReply được trả về.

Aglets Framework cung cấp một mô hình bảo mật phân lớp có khả năng mở rộng, với lớp đầu tiên dựa trên ngôn ngữ lập trình Java Các đoạn mã của agent phải trải qua nhiều giai đoạn kiểm tra, bắt đầu từ việc xác minh định dạng và kết thúc bằng việc kiểm tra tính nhất quán do Java bytecode verifier thực hiện.

Lớp bảo mật thứ hai là security manager, lớp này cho phép ngời sử dụng aglet framework đặc tả những cơ chế bảo mật của riêng mình

Tahiti sử dụng một quản lý bảo mật có khả năng cấu hình cao để đảm bảo an ninh cho hệ thống máy chủ và người sử dụng Cấu hình bảo mật mặc định rất chặt chẽ, bất kỳ agent nào cố gắng truy cập vào file mà không có quyền sẽ bị coi là vi phạm quy tắc an ninh và sẽ bị từ chối truy cập.

Lớp thứ ba và thứ tư trong bảo mật là các hàm Java API bảo mật, tạo ra một framework giúp nhà phát triển agent dễ dàng tích hợp các chức năng bảo mật như mã hóa, chữ ký điện tử và xác thực người dùng cho các agent của họ.

Chơng 2: Hệ thống đa cơ sở dữ liệu phân tán

Nội dung chính của luận văn tập trung vào việc ứng dụng công nghệ mobile agent trong xây dựng hệ thống đa cơ sở dữ liệu phân tán Để thực hiện điều này, cần có cái nhìn tổng thể về hệ thống đa cơ sở dữ liệu phân tán, mô hình hệ thống, và những vấn đề phát sinh trong quá trình xây dựng Từ đó, xác định được những khâu phù hợp để áp dụng mobile agent Đây chính là nội dung trọng tâm của chương này.

Tổng quan

Một hệ thống đa cơ sở dữ liệu không chỉ cần đảm bảo các chức năng cơ bản của cơ sở dữ liệu mà còn phải duy trì đặc tính ACID trong giao dịch Ngoài ra, hệ thống này còn phải có khả năng xử lý các chức năng bổ sung để đáp ứng nhu cầu của người dùng.

Hệ thống đa cơ sở dữ liệu phải giải quyết vấn đề tích hợp lược đồ khi các cơ sở dữ liệu địa phương đã tồn tại trước đó, thay vì chỉ phân chia dữ liệu Tại một thời điểm, các lược đồ địa phương có thể xung đột, và quy định về toàn vẹn dữ liệu giữa các cơ sở dữ liệu này có thể không tương thích Do đó, nhiệm vụ chính của hệ thống đa cơ sở dữ liệu là che giấu sự khác biệt này, giúp người dùng truy xuất dữ liệu một cách nhất quán và hợp lý.

Mỗi cơ sở dữ liệu địa phương đều có lược đồ quan hệ, quản trị hệ thống, giao thức giao dịch, cấu trúc và chức năng riêng, hoàn toàn tự trị và không phụ thuộc vào các hệ thống cơ sở dữ liệu địa phương khác Ngay cả khi được tích hợp vào hệ thống đa cơ sở dữ liệu, mỗi cơ sở dữ liệu vẫn duy trì các ứng dụng độc lập của mình.

 Phân tán: các cơ sở dữ liệu địa phơng phân bố trên các nút khác nhau của mạng

Sự không thuần nhất trong môi trường và dữ liệu ảnh hưởng đến khả năng chia sẻ thông tin hiệu quả Môi trường không thuần nhất thể hiện qua việc các nguồn dữ liệu tồn tại trên các nền tảng độc lập, sử dụng các phương thức khác nhau cho việc chia sẻ Điều này bao gồm sự khác biệt về phần cứng, hệ điều hành, giao thức thông tin, yêu cầu toàn vẹn dữ liệu và bảo mật Ngoài ra, sự không thuần nhất về dữ liệu xuất phát từ việc các hệ thống mô tả dữ liệu theo những cách khác nhau, và ngay cả trong một hệ thống cũng tồn tại nhiều phương thức khác nhau để mô tả dữ liệu.

Một hệ đa cơ sở dữ liệu cần giải quyết các vấn đề phân tán, tự trị và không thuần nhất Khi những vấn đề này được khắc phục, hệ thống sẽ mang lại nhiều lợi ích đáng kể.

 Tạo ra một hệ thống tích hợp từ các cơ sở dữ liệu đã có sẵn

 Tiết kiệm đầu t khi sử dụng lại các hệ thống phần cứng, hệ thống phần mềm và ứng dụng hiện có

Tạo ra một hệ thống đa cơ sở dữ liệu chuyên dụng mà không yêu cầu tất cả các cơ sở dữ liệu địa phương và phần mềm ứng dụng phải đồng nhất.

 Cho phép các thao tác tự trị địa phơng, quản trị dữ liệu trong khi vẫn chia sẻ dữ liệu

Tùy theo mức độ liên quan của các cơ sở dữ liệu mà ta có thể phân loại hệ thống đa cơ sở dữ liệu phân tán thành [12]:

 Hệ thống đơn (monosystem): tất cả các cơ sở dữ liệu đều đợc quản lý bởi một hệ quản trị cơ sở dữ liệu

Hệ thống thuần nhất (homogeneous system) là các cơ sở dữ liệu được quản lý bởi cùng một loại hệ quản trị cơ sở dữ liệu, mặc dù chúng nằm trên các máy chủ khác nhau Đây là chủ đề nghiên cứu chính trong luận văn này.

Hệ thống không thuần nhất (heterogeneous system) bao gồm các cơ sở dữ liệu được quản lý bởi nhiều hệ quản trị cơ sở dữ liệu khác nhau, hoạt động trên các máy chủ khác nhau.

KiÕn tróc

Kiến trúc một hệ đa cơ sở dữ liệu phân tán có thể đợc mô tả nh sau:

Hình 2.1: Kiến trúc một hệ thống đa cơ sở dữ liệu phân tán

Thành phần quản lý lược đồ, hay còn gọi là schema information manager, có nhiệm vụ tích hợp các lược đồ của cơ sở dữ liệu địa phương thành một lược đồ tổng thể, nhằm phục vụ cho việc truy vấn dữ liệu tổng hợp một cách hiệu quả.

Thành phần quản lý thẻ (ticket manager) đóng vai trò quan trọng trong việc tuần tự hóa giao dịch, đảm bảo tính đúng đắn khi thực hiện giao dịch song song Thuật toán điều khiển tương tranh trong hệ thống đa cơ sở dữ liệu cần đảm bảo rằng các giao dịch được tuần tự hóa ở mức tổng thể Một phương pháp phổ biến để điều khiển tương tranh là sử dụng thẻ, một dữ liệu logic giúp quản lý trật tự giao dịch trên cơ sở dữ liệu địa phương Khi một giao dịch thực hiện, nó sẽ đọc giá trị hiện tại của thẻ, tăng giá trị và ghi vào cơ sở dữ liệu địa phương Giao thức điều khiển tương tranh tại cơ sở dữ liệu địa phương sử dụng giá trị này để sắp xếp trật tự thực hiện giao dịch, từ đó đảm bảo tuần tự hóa giao dịch ở mức tổng thể.

Thành phần global agent bao gồm hai phần chính: quản lý truy vấn tổng thể và quản lý giao dịch tổng thể Quản lý truy vấn tổng thể tiếp nhận yêu cầu từ máy khách, phân tích cú pháp và tách câu truy vấn thành các truy vấn con để tối ưu hóa đường đi và thực hiện các lệnh Trong khi đó, quản lý giao dịch tổng thể xử lý các giao dịch, lấy thẻ từ quản lý thẻ và lịch thực hiện Sau khi hoàn tất, nó gửi truy vấn con đến các local agent để kiểm tra giao dịch tổng thể Nếu giao dịch thất bại, hệ thống sẽ rollback các kết quả đã thực hiện.

Trong hệ thống đa cơ sở dữ liệu, thành phần local agent đóng vai trò quan trọng khi thực hiện tất cả các phép toán tại các cơ sở dữ liệu địa phương Local

Các vấn đề đặt ra

Khi xây dựng một đa cơ sở dữ liệu phân tán, nhiều vấn đề đặt ra cần phải giải quyết:

Việc kết hợp và đồng bộ hóa các lược đồ quan hệ địa phương là rất quan trọng để tạo ra một lược đồ quan hệ tổng thể duy nhất cho người dùng Câu hỏi đặt ra là làm thế nào để thực hiện điều này một cách tự động và hiệu quả.

Việc tối ưu hóa các câu truy vấn tổng thể là rất quan trọng để đáp ứng nhanh chóng các yêu cầu trên các nguồn dữ liệu độc lập và phân tán Thay vì sử dụng phương thức truyền thông điệp hay RPC, một giải pháp hiệu quả là áp dụng mobile agent để đưa mã lệnh truy vấn trực tiếp đến các cơ sở dữ liệu đích, từ đó chỉ cần truyền lại kết quả, giúp giảm thiểu thời gian xử lý.

Để thực hiện các giao dịch tổng thể trên các cơ sở dữ liệu tự trị mà vẫn đảm bảo tính ACID, trước tiên cần kiểm tra các ràng buộc tổng thể nhằm duy trì tính toàn vẹn và nhất quán của dữ liệu Các câu lệnh kiểm tra sẽ được phân tách thành các lệnh kiểm tra ràng buộc tại từng cơ sở dữ liệu địa phương Những lệnh này sẽ được đóng gói trong các mobile agent và gửi đến các cơ sở dữ liệu liên quan để thực hiện, sau đó trả kết quả về Nếu tất cả các ràng buộc đều được thỏa mãn, giao dịch tổng thể sẽ được thực hiện, với các lệnh cập nhật dữ liệu được đóng gói trong các mobile agent và gửi đến các cơ sở dữ liệu tương ứng theo giao thức two-phase commit.

SQL vẫn là ngôn ngữ truy vấn phù hợp, mặc dù người dùng có thể không hiểu rõ về đồ quan hệ được sử dụng trong truy vấn Với khả năng xử lý dữ liệu mạnh mẽ và tính linh hoạt cao, SQL đáp ứng nhu cầu của nhiều ứng dụng khác nhau Việc sử dụng SQL giúp người dùng dễ dàng truy xuất và quản lý dữ liệu mà không cần phải nắm vững các khái niệm phức tạp về đồ thị quan hệ.

Một số hệ thống đa cơ sở dữ liệu phân tán

Hệ thống Pegasus

Hệ thống đa cơ sở dữ liệu phân tán, phát triển bởi Hewlett-Packard Laboratories, cung cấp công cụ cho phép các ứng dụng truy cập và xử lý thông tin trên các hệ thống phân tán tự trị, bao gồm quan hệ, hướng đối tượng và các loại khác thông qua một giao diện thống nhất Kiến trúc của hệ thống này được minh họa trong hình 2.2.

Hình 2.2: Kiến trúc hệ thống Pegasus

Trong kiến trúc này, tầng truy cập thông tin thông minh hỗ trợ khai thác và hiển thị thông tin, cùng với giao diện ngôn ngữ tự nhiên Tầng quản lý thông tin hợp tác giải quyết tích hợp lược đồ, xử lý truy vấn tổng thể và quản lý giao dịch Tầng truy cập dữ liệu địa phương giám sát công việc ánh xạ lược đồ và thực hiện truy vấn địa phương Ngôn ngữ truy vấn tổng thể được sử dụng trong hệ thống là HOSQL (Heterogeneous Object SQL).

Hệ thống TCMMDB

Hệ thống truy vấn đa cơ sở dữ liệu phân tán tích hợp từ các cơ sở dữ liệu thuốc cổ truyền Trung Quốc (Traditional Chinese Medicine Multidatabase) bao gồm hai thành phần chính: Global Transaction Manager (GTM) và Local agent.

Hình 2.3: Kiến trúc hệ thống TCMMDB

Tùy thuộc vào truy vấn của người dùng, GTM chuyển đổi câu truy vấn thành cây truy vấn, xây dựng câu truy vấn hướng quan hệ logic và gửi thông điệp tới máy chủ tương ứng Sau đó, GTM nhận kết quả và hiển thị cho người dùng Local agent tiếp nhận yêu cầu truy vấn từ GTM, biên dịch lược đồ và chuyển kết quả về GTM Lược đồ quan hệ trong TCMMDB là lược đồ dữ liệu chung, trong khi SQL là ngôn ngữ truy vấn dữ liệu tổng thể của hệ thống này.

Hệ thống ACQUIRE

Hệ thống ACQUIRE cho phép người dùng truy vấn thông tin từ nhiều nguồn dữ liệu lớn, phân tán và không đồng nhất Kiến trúc của hệ thống được mô tả trong hình 2.4.

Hình 2.4: Kiến trúc hệ thống ACQUIRE

Một số công cụ hỗ trợ truy vấn các nguồn dữ liệu khác nhau

OmniConnect

OmniConnect của Sybase cho phép truy cập đến 25 loại cơ sở dữ liệu khác nhau như Software AG Adabas, IBM DB2, Microsoft SQL Server, và Oracle Giao dịch dựa trên SQL này có khả năng truy cập các nguồn dữ liệu không đồng nhất và phân tán một cách mượt mà Tất cả các nguồn tài nguyên dữ liệu sẽ được đăng ký trong danh mục dữ liệu toàn cầu, cho phép người dùng truy cập và ghi dữ liệu một cách dễ dàng, bất kể dữ liệu nằm ở cơ sở dữ liệu địa phương nào mà không cần sử dụng Sybase SQL Server.

Heterogeneous service

Heterogeneous service là công cụ của Oracle cho phép truy cập dữ liệu lưu trữ trong hệ thống phi Oracle, mở rộng khả năng của Oracle SQL engine để nhận biết và xử lý ngôn ngữ SQL từ xa Nó biên dịch lệnh SQL của Oracle thành lệnh truy vấn phù hợp với hệ thống phi Oracle, hỗ trợ hai kiểu biên dịch: từ Oracle SQL sang ngôn ngữ tương ứng của hệ thống phi Oracle và từ điển dữ liệu thành metadata mà hệ thống phi Oracle có thể hiểu Heterogeneous service duy trì quản lý giao dịch giữa Oracle và hệ thống phi Oracle thông qua giao thức two-phase commit, đảm bảo tính toàn vẹn của giao dịch phân tán ngay cả khi hệ thống phi Oracle không hỗ trợ cơ chế này.

Heterogeneous service cho phép ta truy nhập đọc ghi tới các loại cơ sở dữ liệu nh Foxpro, Access, dBase, Excel, DB2, Microsoft SQL Server, Informix, Ingres and Sybase

Chơng 3: Xây dựng mô hình hệ thống đa cơ sở dữ liệu

Nguyên tắc hoạt động

Hệ thống hoạt động nh sau:

Người sử dụng từ một chi nhánh bất kỳ truy cập vào hệ thống và gửi yêu cầu Yêu cầu này được chuyển tới thành phần phân tích yêu cầu, nơi kiểm tra xác thực người dùng và quyền thực hiện yêu cầu Nếu xác thực thành công, yêu cầu sẽ được phân tích; nếu là truy vấn, nó sẽ được chuyển tới thành phần xử lý truy vấn tổng thể, còn nếu là yêu cầu cập nhật, sẽ được chuyển tới thành phần xử lý giao dịch tổng thể Các thành phần này phân tích yêu cầu thành các câu lệnh SQL phù hợp với cơ sở dữ liệu địa phương Các câu lệnh SQL cần thực hiện tại cơ sở dữ liệu xa sẽ được đóng gói trong các mobile agent và yêu cầu di chuyển agent Việc di chuyển được thực hiện bởi thành phần xử lý agent, và sau khi đến cơ sở dữ liệu xa, các câu lệnh sẽ được thực hiện qua các DB agent Các câu lệnh tại cơ sở dữ liệu địa phương sẽ được thực hiện ngay lập tức qua DB agent, và tất cả kết quả từ các câu lệnh SQL sẽ được gửi trả về nơi sinh ra các agent.

Phân tích yêu cầu Yêu cầu

Xử lý truy vấn tổng thể

Xử lý giao dịch tổng thể

Metadatabase §¨ng ký agent cầu Yêu o m tạ le obi nt age

Yêu cầu tạo mobile agent

Xử lý agent Mobile agent Cơ sở dữ liệu ở xa

Cơ sở dữ liệu địa phương

Hình 3.2: Nguyên tắc hoạt động

Thiết kế hệ thống

Xử lý agent

Thành phần xử lý agent được xây dựng dựa trên các bảng và thủ tục, với các bảng lưu trữ mã lệnh của mobile agent, tên bảng lưu trữ kết quả và trạng thái của từng agent Thủ tục khởi tạo agent sẽ được kích hoạt khi một mobile agent di chuyển hoặc khi có yêu cầu tạo mới agent Quá trình này bao gồm việc tạo bảng kết quả và thực hiện mã lệnh của agent Khi agent hoàn thành công việc, nếu cần truyền kết quả, nó sẽ gọi thủ tục truyền dữ liệu để gửi kết quả về ARP, sau đó xóa bảng kết quả và chuẩn bị cho việc di chuyển tiếp theo Agent sẽ được truyền tới thành phần xử lý tiếp theo, đồng thời có thể gửi danh sách các cơ sở dữ liệu mà agent muốn đến hoặc không muốn đến Tùy thuộc vào kiểu truyền thiết lập, agent có thể di chuyển theo cách tuần tự hoặc song hành, trong đó truyền song hành giúp giảm thời gian xử lý, nhưng với các truy vấn tìm bản ghi đầu tiên thỏa mãn điều kiện, kiểu truyền tuần tự lại khả thi hơn.

Xử lý truy vấn tổng thể

Thành phần xử lý truy vấn tổng thể chịu trách nhiệm phân tích và xử lý các yêu cầu truy vấn, bao gồm cả câu lệnh SELECT đơn giản và các thủ tục truy vấn phức tạp Thành phần này được cấu thành từ các module như phân tích yêu cầu, trích xuất metadatabase, xây dựng kế hoạch truy vấn và thực hiện truy vấn.

Xây dựng kế hoạch truy vấn

Hình 3.3: Kiến trúc bên trong của thành phần xử lý truy vấn tổng thể

Khi nhận yêu cầu truy vấn, module phân tích sẽ xác định các đối tượng liên quan và chuyển danh sách này tới module trích xuất metadatabase để truy vấn dữ liệu Kết quả trả về là bảng chứa các cơ sở dữ liệu liên quan Module xây dựng kế hoạch truy vấn sẽ sử dụng bảng này để lập kế hoạch Nếu các đối tượng chỉ nằm trong cơ sở dữ liệu địa phương, nó sẽ gọi DB agent để thực hiện truy vấn và lưu kết quả Ngược lại, nó sẽ gọi module thực hiện truy vấn, gửi yêu cầu tạo mobile agent với mã lệnh và tên bảng lưu kết quả tới các cơ sở dữ liệu liên quan Cuối cùng, kết quả sẽ được gửi về cho người sử dụng.

Xử lý giao dịch tổng thể

Từ những yêu cầu này mà thành phần xử lý giao dịch tổng thể có các module:

Phân tích lệnh cËp nhËt

Yêu cầu cËp nhËt TrÝch xuÊt metadatabase

Cơ sở dữ liệu địa phương Cơ sở dữ liệu địa phương

Cơ sở dữ liệu địa phương

Thực hiện tiền cËp nhËt

Mobile agent ob M ile en ag t

Mobile agent ag en t M ob ile

Hình 3.4: Kiến trúc bên trong của thành phần xử lý giao dịch tổng thể

 Phân tích lệnh cập nhật: thực hiện việc phân tích yêu cầu cập nhật dữ liệu đa tới để xác định các đối tợng dữ liệu có liên quan

 Trích xuất metadatabase: trích xuất các ràng buộc toàn cục có liên quan tới các đối tợng cần cập nhật

 Tạo ràng buộc: inh ra các ràng buộc cục bộ cho các cơ sở dữ liệu địa s phơng

 Tối u đờng đi: tối u hóa trong việc gửi các ràng buộc tới các cơ sở dữ liệu lên quan

Xử lý ràng buộc là quá trình tạo ra các mobile agent để kiểm tra các ràng buộc đồng thời, thu thập kết quả trả về nhằm đưa ra kết luận về sự vi phạm ràng buộc.

 Thực hiện tiền cập nhật: tạo ra các mobile agent thực hiện việc chuẩn bị cập nhật trên tất cả các cơ sở dữ liệu liên quan

Xác nhận cập nhật sẽ được thực hiện dựa trên kết quả của quá trình chuẩn bị Nếu tất cả các kết quả đều thành công, yêu cầu xác nhận cập nhật sẽ được gửi đi Ngược lại, nếu có bất kỳ kết quả nào không thành công, yêu cầu hủy bỏ cập nhật sẽ được thực hiện.

Khi một yêu cầu cập nhật được gửi tới thành phần xử lý giao dịch tổng thể, nó sẽ được đưa vào module phân tích lệnh cập nhật Giả sử lệnh này là cập nhật đối tượng O1, với ràng buộc C1 liên quan đến các cơ sở dữ liệu S1, S2, S3, trong khi ràng buộc C2 của đối tượng O2 nằm trên các cơ sở dữ liệu S1, S2 Module phân tích lệnh cập nhật xác định danh sách đối tượng cần cập nhật là O1 và chuyển danh sách này tới module trích xuất metadatabase Module này truy xuất vào metadatabase và trả về bảng ràng buộc-tài nguyên (RBTN), chứa các ràng buộc và cơ sở dữ liệu liên quan.

Ngoài ra còn bảng danh sách các cơ sở dữ liệu chứa đối tợng O1

Bảng kết quả được gửi tới module tạo ràng buộc, nơi sẽ tạo ra các ràng buộc cục bộ cho từng cơ sở dữ liệu liên quan Các ràng buộc này sẽ được ghi vào bảng ràng buộc cục bộ RBCB.

Giải thuật tạo ra các ràng buộc này có thể đợc mô tả nh sau:

1: INPUT: (a) U: lệnh Update Sm:R(t1,…,tn)

(b) C: Danh sách các ràng buộc tổng thể Ci

2: OUTPUT: danh sách các ràng buộc cục bộ < Ci1 ,…,Cik > cho từng Ci ảnh hởng bởi U 3: DOL (U) = < R (a1= t1,…,an= tn) >

4: CDST(C,DOL(U)) = < ,…, >

5: Đặt θ = {x1 ← t1,…, xn ← tn} /* x1…xn là các biến đại diện cho các cột của bảng R*/

8: Đặt Sj:p1 (X1) ,p2 (X2),…,pr (Xr) /*là các bảng liên quan tới ràng buộc Ci Stại j và A các yêu cầu toán học cần thỏa mãn tại Sj

9: If (j m) then /* cơ sở dữ liệu mà lệnh update không tác động */

10: Cij = select 1 from dual where exists

(select * from p1 …pr where )

Here is a rewritten paragraph that complies with SEO rules:"Để tạo ra , chúng ta có thể sử dụng việc kết hợp bảng lại với nhau đồng thời áp dụng các điều kiện toán học ràng buộc tổng thể đặt ra, bao gồm X1 đến Xr Bằng cách này, chúng ta có thể tạo ra một mô hình toàn diện và chính xác hơn."

Bảng RBCB sẽ được chuyển tới module tối ưu đường đi, nơi tính toán để tối ưu hóa việc xử lý các ràng buộc và kết quả sẽ được đưa ra bảng tối ưu ràng buộc (TURB) Để thực hiện C1, cần truy cập vào ba cơ sở dữ liệu S1, S2, S3, trong khi C2 chỉ cần hai cơ sở S1, S2 Cập nhật sẽ không được thực hiện nếu một trong các ràng buộc C1 hoặc C2 bị vi phạm; nếu C2 vi phạm, C1 sẽ không cần thực hiện Khi kiểm tra C2, cần thực hiện hai kiểm tra ràng buộc C21, C22, bắt đầu với C21 nếu cơ sở dữ liệu cục bộ là S1, nhằm giảm thời gian đáp ứng Nếu C21 bị vi phạm, C2 được coi là vi phạm và cập nhật sẽ không được thực hiện, do đó không cần kiểm tra các ràng buộc cục bộ khác.

12: if (j=m) then /* cơ sở dữ liệu nơi thực hiện lệnh cập nhật */

13: Cij= 1 nếu () ngợc lại =0

14: tạo ra bằng các so sánh các giá trị t1,…,tn với các giá trị ràng buộc đặt ra

Module xử lý ràng buộc đọc bảng TURB để sinh ra mobile agent cho từng Ci, đồng thời thu nhận kết quả từ các agent này Dựa trên các kết quả nhận được, module sẽ quyết định xem việc cập nhật có thể thực hiện hay không, với điều kiện các ràng buộc cục bộ đều được thoả mãn.

Việc kiểm tra ràng buộc tổng thể liên quan đến việc xác nhận giao dịch đã được thực hiện, sau đó mã lệnh cập nhật sẽ được gửi đến module thực hiện tiền cập nhật Module này sẽ tạo ra một transactional agent, một loại agent với các thuộc tính đặc trưng.

 Quyết định tự trị về việc di chuyển tới máy khác

 Xử lý các đối tợng trên nhiều máy tính

 Nó chỉ commit khi các điều kiện commit đợc thoả mãn còn ngợc lại thì hủy bỏ

Module này bắt đầu bằng việc chuẩn bị cập nhật tại cơ sở dữ liệu địa phương Nếu bảng DS_SITE chứa các cơ sở dữ liệu ở xa, nó sẽ đóng gói mã lệnh vào các mobile agent để di chuyển đến các cơ sở dữ liệu đó (ví dụ như S1, S4) nhằm thực hiện cập nhật Khi các mobile agent trả về kết quả thành công, module sẽ yêu cầu xác nhận cập nhật và gửi thông báo xác nhận giao dịch, lúc này các đối tượng trên cơ sở dữ liệu sẽ được commit và giải phóng Ngược lại, nếu không thành công, module sẽ yêu cầu gửi thông báo huỷ bỏ giao dịch, dẫn đến việc cập nhật bị huỷ bỏ và các đối tượng được giải phóng Trong quá trình này, nếu có một agent khác cũng thực hiện thao tác cập nhật đối với cùng một đối tượng, nó sẽ phải chờ cho đến khi đối tượng đó được giải phóng.

DB agent

Tùy thuộc vào yêu cầu của nghiệp vụ, chúng ta có thể thiết kế các DB agent để thao tác với cơ sở dữ liệu Các DB agent này có thể bao gồm những hàm đơn giản thực hiện các câu lệnh thao tác cơ bản hoặc các thủ tục phức tạp hơn.

Phân tích yêu cầu

Thành phần này đảm nhiệm hai chức năng chính: xác thực người dùng và phân tích yêu cầu công việc Đầu tiên, nó xác định quyền thực hiện các thao tác yêu cầu Tiếp theo, nếu yêu cầu là một thao tác truy vấn, nó sẽ chuyển tới thành phần xử lý truy vấn tổng thể; còn nếu là thao tác cập nhật, yêu cầu sẽ được chuyển tới thành phần xử lý giao dịch tổng thể Thành phần phân tích yêu cầu bao gồm các module khác nhau.

Xây dựng kế hoạch truy vấn

Hình 3.5: Kiến trúc bên trong của phân tích yêu cầu

Khi người dùng gửi yêu cầu tới hệ thống, yêu cầu cùng với tên và mật khẩu sẽ được module xác thực gửi đến module trích xuất metadatabase Module này đóng gói thông tin vào một mobile agent và gửi tới global metadatabase để kiểm tra Sau khi mobile agent trả về kết quả xác thực, nếu thành công, module phân loại yêu cầu sẽ được kích hoạt để kiểm tra xem các đối tượng trong yêu cầu có trong metadatabase hay không Nếu có và yêu cầu là truy vấn, module sẽ chuyển tiếp tới thành phần xử lý truy vấn tổng thể; còn nếu yêu cầu là cập nhật dữ liệu, nó sẽ chuyển cho thành phần xử lý giao dịch tổng thể.

Global metadatabase

Global metadatabase định nghĩa lược đồ dữ liệu tổng thể của toàn hệ thống, ánh xạ các bảng và cột trong cơ sở dữ liệu địa phương thành các đối tượng và thuộc tính trừu tượng Điều này giúp người dùng có cái nhìn đơn giản và tự nhiên về dữ liệu hệ thống Thông số về vị trí lưu trữ dữ liệu cũng được lưu trong metadatabase, cho phép hệ thống tự động xác định vị trí lưu trữ thực của các đối tượng khi có yêu cầu, giúp người dùng không cần biết vị trí cụ thể khi truy vấn Ngoài ra, global metadatabase còn chứa thông tin về người dùng, quyền truy cập đối tượng và tình trạng mạng hiện tại.

Metadatabase

Global metadatabase được lưu trữ tại mỗi chi nhánh, giúp giảm thời gian truy vấn thông tin cho mobile agent Khi có sự thay đổi ở global metadatabase, các metadatabase tại chi nhánh sẽ được cập nhật ngay lập tức.

Lựa chọn ngôn ngữ

Sau khi xây dựng cấu trúc hệ thống, bước tiếp theo là chọn ngôn ngữ lập trình để hiện thực hóa mô hình Các ngôn ngữ thông dịch như Java và TCL thường được ưa chuộng cho việc phát triển hệ thống mobile agent Tuy nhiên, hệ thống mobile agent cũng có thể được xây dựng dựa trên các dịch vụ của hệ thống quản trị cơ sở dữ liệu phân tán với ngôn ngữ PL/SQL Phương pháp này mang lại lợi ích so với việc sử dụng các hệ thống hỗ trợ mobile agent hiện có.

Hệ quản trị cơ sở dữ liệu phân tán cung cấp hỗ trợ cho phục hồi, xử lý giao dịch, tối ưu hóa quá trình xử lý thông tin và xử lý đồng thời, cùng với cơ chế bảo mật Nhờ đó, môi trường runtime trở nên ổn định, an toàn và dễ dàng cho việc phát triển và triển khai.

Các agent được xử lý trực tiếp trong cơ sở dữ liệu, giúp tăng tốc độ truy cập dữ liệu so với việc sử dụng các giao diện bên ngoài như JDBC, ngay cả khi chương trình Java và cơ sở dữ liệu được đặt trên cùng một máy.

Môi trờng phát triển

Xử lý giao dịch phân tán

Oracle 9i cung cấp tính năng Distributed SQL, cho phép giao tiếp hiệu quả giữa các nút trong hệ cơ sở dữ liệu phân tán Nhờ vào Oracle 9i Distributed SQL, người dùng có khả năng truy cập và cập nhật dữ liệu từ tất cả các cơ sở dữ liệu, dù là địa phương hay xa.

Hình 3.6: Hệ thống phân tán Điều này sẽ cho phép chúng ta có thể sử dụng để di c các mobile agent giữa các nút đó

Oracle hỗ trợ cơ chế two-phase commit nhằm đảm bảo tính nguyên tử, nhất quán, cô lập, toàn vẹn và tính bền của dữ liệu trong các giao dịch phân tán Khác với giao dịch trên cơ sở dữ liệu địa phương, giao dịch phân tán ảnh hưởng đến nhiều cơ sở dữ liệu Qua hai giai đoạn: phase chuẩn bị (prepare phase) và phase xác nhận (commit phase), Oracle đảm bảo rằng toàn bộ giao dịch sẽ được commit hoặc rollback Trong phase chuẩn bị, nút đầu tiên sẽ hỏi ý kiến các nút khác về việc commit hay rollback Nếu tất cả các nút đồng ý, giao dịch sẽ được commit; nếu có bất kỳ nút nào yêu cầu rollback hoặc không phản hồi, giao dịch sẽ bị rollback Oracle tự động quản lý quá trình này, đảm bảo tính toàn vẹn cho toàn bộ cơ sở dữ liệu liên quan thông qua giao thức two-phase commit, điều này hoàn toàn trong suốt đối với lập trình viên và người sử dụng.

Quản lý một phiên làm việc

Kiến trúc của Oracle hoạt động dựa trên mô hình phiên làm việc, trong đó mỗi lần máy khách truy cập vào hệ thống sẽ khởi tạo một phiên duy nhất, tạo ra một không gian địa chỉ riêng biệt Các phiên này hoàn toàn cô lập và không chia sẻ với nhau, đảm bảo rằng hành động của máy khách trong một phiên không ảnh hưởng đến các máy khách khác Tất cả các tương tác giữa các máy khách diễn ra thông qua cơ sở dữ liệu theo ngữ nghĩa giao dịch Bộ nhớ cho các biến trong mỗi phiên là hữu hạn, nhằm bảo đảm an toàn cho hệ thống và cấp phát công bằng giữa các phiên Kiến trúc phiên được mô tả trong hình 3.7.

Bảo mật

Vấn đề bảo mật đợc Oracle hỗ trợ rất tốt Oracle hỗ trợ bảo mật từ mức mạng cho đến mức ngời dùng

Oracle áp dụng cơ sở hạ tầng khóa công khai (PKI) để đảm bảo an ninh mạng, hỗ trợ các tính năng bảo mật như xác thực, mã hóa và toàn vẹn dữ liệu Quá trình xác thực giúp kiểm tra danh tính người dùng và thiết bị, trong khi mã hóa bảo vệ thông tin trong quá trình truyền tải và duy trì tính riêng tư của dữ liệu Toàn vẹn dữ liệu được đảm bảo thông qua mã hóa, ngăn chặn sự thay đổi không mong muốn Các thành phần chính của cơ sở hạ tầng khóa công khai bao gồm nhiều yếu tố thiết yếu cho việc bảo mật.

 Chứng thực số: là các định danh ngời dùng và máy đợc lu trữ bảo mËt trong wallet

 Khóa công khai và khóa riêng: các khóa này là các thành phần cơ bản trong hệ thống cơ sở hạ tầng khóa công khai

 Secure Socket Layer (SSL): ngăn chặn các loại tấn công nh nghe trộm, giả mạo thông điệp nhằm đảm bảo kết nối đầu cuối bảo mật

 Xác thực chứng nhận: là một tổ chức độc lập và tin tởng cung cấp chứng thực số

Oracle hỗ trợ các kết nối bảo mật cho tất cả các giao thức Net8, IIOP, Thick JDBC, Thin JDBC

3.7.3.2 Bảo mật ngời dùng

Trong cơ sở dữ liệu Oracle, một người dùng tương đương với một tài khoản máy tính, có mật khẩu và không gian làm việc mặc định Tất cả các đối tượng do người dùng tạo ra sẽ tạo thành một lược đồ, và họ có quyền truy cập đầy đủ vào các đối tượng trong lược đồ của mình Các quyền khác có thể được xác định thông qua các role cụ thể, với mỗi role tạo ra mức bảo mật khác nhau Oracle hỗ trợ điều khiển truy cập tùy ý, cho phép người dùng truy cập đối tượng theo tên thông qua các đặc quyền Có hai loại đặc quyền trong Oracle: đặc quyền hệ thống, như create user và select any table, cho phép quyền mạnh mẽ trên tất cả các đối tượng trong cơ sở dữ liệu, và đặc quyền đối tượng, cho phép thực hiện thao tác cụ thể trên một đối tượng nhất định Việc thiết lập mạng an ninh phân lớp cho người dùng dựa trên nguyên tắc "quyền tối thiểu" giúp họ thực hiện công việc của mình Các đặc quyền có thể được gán cho từng người dùng hoặc cho một role, tạo thành tập hợp các đối tượng với các quyền được định nghĩa trước.

Hình 3.8: Các role ngời dùng trong Oracle

Trong cấu hình này, người dùng thông thường sẽ được gán quyền của vai trò kế toán (accountant role), bao gồm sự kết hợp giữa vai trò kế toán phải thu (acct_rec role) và kế toán phải trả (acct_pay role), cùng với một số quyền đặc biệt khác.

Trớc khi ngời dùng có thể tạo ra một phiên làm việc thì họ phải đợc hệ thống xác thực Có bốn cách để xác thực:

Xác thực cơ sở dữ liệu trong Oracle đảm bảo quản lý tài khoản người dùng và mật khẩu một cách hiệu quả Hệ thống hỗ trợ cơ chế quản lý mật khẩu mạnh mẽ, trong đó mật khẩu được mã hóa trong suốt quá trình xác thực giữa máy khách và máy chủ Tuy nhiên, mật khẩu sẽ mất hiệu lực sau một khoảng thời gian nhất định, điều này giúp tăng cường bảo mật Phương pháp xác thực này tuy đơn giản nhưng chỉ phù hợp trong các liên kết hẹp.

Xác thực mở rộng trong môi trường Oracle cho phép quản lý tài khoản người dùng, trong khi việc quản trị mật khẩu và xác thực người dùng được thực hiện bởi dịch vụ bên ngoài Dịch vụ này có thể bao gồm hệ điều hành hoặc dịch vụ mạng như Oracle Net.

Kerberos Phơng pháp này cho đa ra nhiều cơ chế xác thực hơn cũng nh đơn giản hơn trong việc quản trị

Xác thực và cấp phép toàn cục cho phép quản lý thông tin khách hàng một cách tập trung, bao gồm xác thực qua dịch vụ LDAP Người dùng có thể được xác định trong cơ sở dữ liệu nhờ vào việc xác thực toàn cục bằng SSL, với việc quản lý người dùng diễn ra bên ngoài cơ sở dữ liệu Các role toàn cục được định nghĩa trong cơ sở dữ liệu nhưng thực hiện qua dịch vụ LDAP, cho phép tạo ra người dùng với định danh duy nhất cho toàn bộ hệ thống và các role tương ứng, đảm bảo quyền truy cập đồng nhất tại các cơ sở dữ liệu khác nhau Mỗi role hệ thống có thể bao gồm một hoặc nhiều role toàn cục.

Xác thực và cấp phép toàn cục nhiều lớp (multi-tier authentication and authorization) được triển khai thông qua một máy chủ ứng dụng, đóng vai trò là lớp giữa (middleware) kết nối giữa máy khách và một hoặc nhiều cơ sở dữ liệu Quá trình xác thực máy khách diễn ra qua ba bước: đầu tiên, máy khách xác thực với máy chủ ứng dụng bằng mật khẩu hoặc chứng nhận X.509; tiếp theo, máy chủ ứng dụng kiểm tra thông tin xác thực này trong cơ sở dữ liệu; cuối cùng, cơ sở dữ liệu thực hiện cấp phép cho máy khách.

Trong giai đoạn hai và ba, máy chủ cơ sở dữ liệu sẽ thực hiện quá trình xác thực, xác minh sự tồn tại của máy khách và kiểm tra quyền truy cập của máy chủ ứng dụng vào cơ sở dữ liệu cho máy khách đó.

Dịch vụ Oracle Net hỗ trợ kết nối diện rộng trong môi trường tính toán phân tán không đồng nhất, giúp cấu hình và quản lý mạng phức tạp một cách dễ dàng Oracle Net khởi tạo phiên kết nối từ ứng dụng máy khách tới cơ sở dữ liệu Oracle, đồng thời truyền dữ liệu giữa ứng dụng và máy chủ Nó chịu trách nhiệm thiết lập, duy trì kết nối và trao đổi thông điệp giữa hai bên, nhờ khả năng định vị từng máy trong mạng Được cài đặt trên cả máy khách và máy chủ, Oracle Net là lớp cao nhất trong giao thức tầng mạng, xác định cách ứng dụng truy cập mạng và chia nhỏ dữ liệu thành các gói tin Kết hợp với giao thức TCP/IP, Oracle Net thiết lập kết nối để truyền dữ liệu giữa máy khách và máy chủ cơ sở dữ liệu.

Hình 3.9: Kết nối theo mô hình máy khách/máy chủ

Các ứng dụng Java phía máy khách có thể kết nối với cơ sở dữ liệu thông qua các driver Java Database Connectivity (JDBC), là giao diện chuẩn để thực hiện việc này.

JDBC OCI driver là một thành phần trung gian quan trọng trong phát triển ứng dụng Java theo mô hình máy khách/máy chủ, chuyển đổi các lời gọi JDBC thành lời gọi giao diện gọi Oracle (OCI) và gửi đến cơ sở dữ liệu Oracle thông qua Oracle Net Được viết bằng ngôn ngữ C và Java, JDBC OCI driver không thể sử dụng với applet do không hỗ trợ nạp native code Để sử dụng, cần cài đặt các thành phần thư viện OCI và Oracle Net trên cả máy khách và máy chủ ứng dụng Java.

JDBC Thin Driver là thành phần lý tưởng cho phát triển ứng dụng Java và applet, cho phép kết nối trực tiếp tới Oracle qua Java socket Được viết hoàn toàn bằng Java và chỉ có kích thước khoảng 150Kb, driver này dễ dàng tích hợp với các applet mà không cần cài đặt thêm trên máy khách Nó hoạt động hiệu quả trên mạng TCP/IP.

Phát triển chơng trình

Xử lý việc di c

Xử lý di cư bao gồm hai bước chính: đầu tiên, gửi một agent đến một cơ sở dữ liệu đã được xác định trước; thứ hai, khi nhận được một agent từ cơ sở dữ liệu khác, tiến hành khởi tạo và xử lý agent đó.

Một khi muốn di c một mobile agent thì việc di c sẽ đợc thực hiện theo các bớc sau:

To dispatch an agent, the module packages the command to be executed and calls the AGENT_DISPATCHER function to insert it into the AGENT_REQUIRE table This includes values such as agent ID, result table name, command type (INSERT, UPDATE, DELETE, SELECT, EXECUTE), execution command ID, initial database ID, current database ID, next target database ID, final target database ID, and the sending type of the mobile agent (sequential or parallel) Additionally, it records the list of databases to be sent in order and the list of databases already traversed, particularly if the sending method is sequential.

Ngay sau khi thông tin được chèn vào bảng AGENT_REQUIRE, trigger MOBILE_AGENT_MIGRATE sẽ được kích hoạt Trigger này sẽ gọi procedure AGENT_MIGRATION để thực hiện quá trình di chuyển dữ liệu.

The procedure `AGENT_MIGRATION` is designed to facilitate the migration of agents within a specified system It takes several parameters, including `agent_id`, `result_table`, `code_type`, `code`, and various site identifiers such as `start_siteid`, `local_siteid`, `next_siteid`, and `target_siteid` Additionally, it incorporates `dispatchmode`, `sitelist`, and `passsitelist` to manage the migration process effectively This structured approach ensures a seamless transition of agents while maintaining data integrity and operational efficiency.

The SQL command retrieves the connection for a target site based on the site ID It then executes an immediate insert statement to add a new record into the agent register of the specified target site connection, utilizing various parameters such as agent ID, result table, code type, and site IDs.

This procedure checks the SITE_INF table to identify the corresponding DBLink for the target database It then inserts information into the AGENT_REGISTER table of the destination database, including agent code, result table name, execution command type (INSERT, UPDATE, DELETE, SELECT, EXECUTE), execution command code, initial database number, current database number, next destination database number, final destination database number, and the mobile agent sending type (sequential or parallel) Additionally, it includes the ordered list of databases to be sent and the list of databases already processed if the sending type is sequential.

When data is inserted into the AGENT_REGISTER table, the MOBILE_AGENT_EXECUTE trigger is activated, which in turn calls the AGENT_EXECUTE procedure The details of this procedure are described as follows:

The `AGENT_EXECUTE` procedure is designed to execute specific tasks based on various input parameters, including agent ID, result table, code type, and code It takes numerical inputs for site IDs and utilizes string parameters for dispatch mode and site lists This procedure facilitates efficient task execution and result retrieval in database operations.

BEGIN select connection into V_Target_siteconnection from site_inf where site_id = start_siteid;

Tools.db_execute_agent(result_table, code_type, code,

IF Err =0 THEN if dispatchmode = 'SERIAL' and tools.string_left_cutting(sitelist,'|') IS NOT NULL then

V_Site:=tools.string_left_cutting(sitelist,'|');

V_Sitelist:=substr(sitelist,length(V_Site)+2,length(sitelist)-1); V_Passsitelist:=pass_sitelist||to_char(local_siteid)||'|'; insert into AGENT_REQUIRE

( agent_id, result_table, code_type, code, start_site_id , local_site_id, next_site_id, target_site_id, dispatch_mode, site_list, pass_site_list ) values

( agent_id, result_table, code_type, code, start_siteid, local_siteid, to_number(V_Site), target_siteid , dispatchmode, V_Sitelist, V_Passsitelist); end if; execute immediate 'insert into agent_result@'||

The code snippet demonstrates how to insert values into the `agent_result` table using dynamic SQL in a database It constructs an SQL statement that includes the agent ID, local site ID, and result table, and executes it immediately This process ensures that the necessary data is accurately recorded in the database for further analysis.

ELSE execute immediate 'insert into agent_result@'||

V_Target_siteconnection ||' values('||chr(39)||agent_id||chr(39)||',to_number('||to_char(local_siteid )||'),'||chr(39)||to_char(err)||chr(39)||',''F'')';

END IF; exception when others then

Err:=sqlcode; execute immediate 'insert into agent_result@'||

V_Target_siteconnection||' values('||chr(39)||agent_id||chr(39)||',to_number('||to_char(local_siteid )||'),'||chr(39)||to_char(err)||chr(39)||',''F'')';

Quy trình này thực hiện mã lệnh và gửi kết quả về cơ sở dữ liệu khởi tạo agent Sau đó, nó kiểm tra xem agent có được gửi theo kiểu nối tiếp hay không Nếu kiểu gửi là nối tiếp, mã lệnh sẽ được đóng gói và chèn vào bảng AGENT_REQUIRE, với cơ sở dữ liệu kế tiếp là cơ sở dữ liệu đầu tiên trong danh sách các cơ sở dữ liệu cần gửi.

Tất cả các quá trình sẽ được ghi lại trong cơ sở dữ liệu hiện tại và cơ sở dữ liệu khởi tạo agent Người dùng có thể hủy bỏ agent bất kỳ lúc nào bằng cách sử dụng lệnh rollback.

Xử lý yêu cầu ngời dùng

Trong hệ thống này yêu cầu ngời dùng có thể chia thành hai loại là:

 Yêu cầu cập nhật thông tin

Khi có yêu cầu truy vấn, hệ thống sẽ gọi procedure QUERY_PARSER_AND_EXTRACTING để phân tích câu truy vấn và trích xuất thông tin từ metadatabase liên quan đến các cơ sở dữ liệu Procedure này cũng xây dựng câu lệnh SQL cho yêu cầu truy vấn Sau đó, hàm QUERY_PLAN_BUILD_AND_EXEC được gọi để xây dựng kế hoạch truy vấn và gửi các mobile agent thu thập thông tin Khi tất cả kết quả được truyền về, hệ thống sẽ tổng hợp dữ liệu và cung cấp cho người dùng.

Khi có một yêu cầu cập nhật thông tin (INSERT, UPDATE, DELETE,

EXECUTE) thì hệ thống sẽ gọi procedure

Quá trình xử lý yêu cầu cập nhật bắt đầu bằng procedure PROCESSING_PARSE_AND_EXTRACT, phân tích yêu cầu để tạo câu lệnh SQL cập nhật và trích xuất metadatabase nhằm xác định các ràng buộc và thông tin liên quan Thông tin này được chuyển đến procedure LOCAL_CONSTRAINT_CREATE, nơi tạo ra các câu lệnh kiểm tra ràng buộc cục bộ theo thiết kế hệ thống Sau đó, procedure CONSTRAINT_EXEC sẽ đóng gói các lệnh này vào mobile agent để gửi tới các cơ sở dữ liệu tương ứng và kiểm tra kết quả Nếu có ràng buộc cục bộ không thỏa mãn, hệ thống sẽ báo lỗi; nếu không, procedure UPDATE_EXEC sẽ thực hiện cập nhật qua hai giai đoạn Giai đoạn đầu tiên (tiền cập nhật) gửi mobile agent chứa lệnh cập nhật, trong khi giai đoạn sau (xác nhận cập nhật) kiểm tra kết quả Nếu một cơ sở dữ liệu từ chối hoặc gặp sự cố, giao dịch sẽ bị hủy bỏ; ngược lại, giao dịch sẽ được xác nhận.

Xử lý thao tác với cơ sở dữ liệu

Mỗi khi hệ thống cần thao tác với cơ sở dữ liệu địa phương, nó sẽ gọi procedure DB_EXECUTE_AGENT để thực hiện các mã lệnh yêu cầu Nội dung của procedure này được mô tả như sau:

PROCEDURE DB_EXECUTE_AGENT(RESULT_TABLE IN VARCHAR2, CODE_TYPE IN VARCHAR2, CODE IN VARCHAR2, target in varchar2, error_code out number)

IF UPPER(CODE_TYPE) IN ('EXECUTE') THEN

EXECUTE IMMEDIATE 'BEGIN '||CODE||'; END;';

'||RESULT_TABLE||'@'||TARGET||' select * from '||RESULT_TABLE; ELSIF UPPER(CODE_TYPE) IN ('SELECT') THEN

END IF; exception when others then error_code:=sqlcode;

Giao diện ngời dùng

Là chơng trình cài đặt tại các máy khách thực hiện các yêu cầu nghiệp vụ.

Xử lý bảo mật

Hệ thống này áp dụng nhiều cơ chế bảo mật người dùng, bắt đầu bằng việc xác thực qua cơ chế bảo mật của Oracle Người dùng cần có tài khoản để truy cập vào cơ sở dữ liệu Oracle, nhưng việc nhớ nhiều tài khoản cho từng cơ sở dữ liệu là bất tiện và có thể tạo ra lỗ hổng bảo mật Để khắc phục, chúng tôi sẽ tạo một tài khoản mặc định cho tất cả các cơ sở dữ liệu và gắn vào chương trình trên máy khách khi cài đặt Sau khi truy cập vào cơ sở dữ liệu, người dùng sẽ đăng nhập bằng mã người dùng được cấp, và quyền truy cập tài nguyên sẽ được gán tương ứng với mã người dùng đó.

Ngoài ra vấn đề bảo mật dữ liệu trên đờng truyền cũng đã đợc xử lý bằng việc áp dụng các cơ chế bảo mật đờng truyền của Oracle

Chương 4: Triển khai thử nghiệm các ứng dụng xử lý và khai thác thông tin trên hệ thống thông tin phân tán của Công ty Dịch vụ Tiết kiệm Bưu điện Trong chương này, chúng tôi sẽ tập trung vào việc áp dụng các công nghệ tiên tiến để tối ưu hóa quy trình xử lý dữ liệu, đồng thời nâng cao hiệu quả khai thác thông tin trong bối cảnh hệ thống phân tán Các thử nghiệm sẽ được thực hiện nhằm đánh giá tính khả thi và hiệu suất của các ứng dụng, từ đó đưa ra những giải pháp cải tiến phù hợp cho doanh nghiệp.

Trong chương này, chúng ta sẽ đánh giá tính khả thi của mô hình hệ thống đã được thiết kế ở chương 3 Đánh giá này sẽ được thực hiện thông qua việc ứng dụng thử nghiệm mô hình trong hệ thống thông tin phân tán của Công ty dịch vụ tiết kiệm Bưu điện.

Thực trạng hệ thống mạng Công ty Dịch vụ tiết kiệm Bu điện

Công ty Dịch vụ Tiết kiệm Bưu điện chuyên cung cấp các dịch vụ tài chính đa dạng, bao gồm tài khoản tiết kiệm cá nhân, chuyển tiền, thẻ và thanh toán qua điện thoại Với trụ sở chính tại Hà Nội, công ty còn có hai trung tâm con tại thành phố Hồ Chí Minh và Quảng Ninh, cùng với các chi nhánh trải rộng trên toàn quốc Để thực hiện giao dịch tiết kiệm cá nhân và gửi góp, các chi nhánh cần kết nối với trung tâm chính.

Tại Hà Nội, để thực hiện giao dịch thẻ, người dùng cần kết nối với trung tâm thành phố Hồ Chí Minh, trong khi giao dịch telephone payment phải kết nối với Quảng Ninh Các giao dịch có kỳ hạn sẽ phụ thuộc vào chi nhánh nào thuộc trung tâm nào để thực hiện kết nối Tất cả các kết nối này đều qua quay số Đối với việc khai thác dữ liệu, các chi nhánh cũng như trung tâm Hồ Chí Minh và Quảng Ninh phải kết nối về trung tâm Hà Nội để truy vấn cơ sở dữ liệu tổng hợp Cơ sở dữ liệu tại Hà Nội và thành phố Hồ Chí Minh sử dụng Oracle 9i trên máy ALPHA TRU64 ES40, trong khi Quảng Ninh sử dụng Oracle 8i trên máy ML570 Mỗi trung tâm lưu trữ hàng trăm nghìn tài khoản và hàng triệu bản ghi Để khai thác thông tin toàn mạng, các trung tâm Hồ Chí Minh và Quảng Ninh định kỳ gửi dữ liệu về trung tâm Hà Nội qua đường Lease line, dẫn đến cơ sở dữ liệu tại đây lên tới gần 30 triệu bản ghi, làm tăng thời gian truy vấn Các giao dịch liên chi nhánh như giao dịch thẻ và telephone payment được ghi đồng thời tại cơ sở dữ liệu địa phương và tại trung tâm Hà Nội thông qua RPC.

Cơ sở dữ liệu địa phương Ứng dụng Tiết kiệm cá nhân c há i t ha tin K g ôn th

Cơ sở dữ liệu địa phương

Lease line 2 Mbps Ứng dụng Tiết kiệm có kỳ hạn Ứng dụng Telephone Payment

Cơ sở dữ liệu Tổng hợp

Trung tâm TP Hồ Chí Minh

Cơ sở dữ liệu địa phương Ứng dụng Thẻ Ứng dụng Tiết kiệm có kỳ hạn Ứng dụng Tiết kiệm có kỳ hạn

Cấu hình máy chủ Trung tâm Hà Nội: Máy Alpha AS40 833 Mhz, 1GB Ram, cơ sở dữ liệu chạy trên Oracle 9i

Cấu hình máy chủ tại Trung tâm Hồ Chí Minh bao gồm máy Alpha AS với tốc độ 833 Mhz và 1GB RAM, sử dụng cơ sở dữ liệu Oracle 9i Trong khi đó, máy chủ tại Quảng Ninh là ML570 với tốc độ 1,5Ghz và 1GB RAM, chạy trên cơ sở dữ liệu Oracle 8i Ứng dụng này hỗ trợ tính năng tiết kiệm gửi góp.

Hình 4.1: Mô hình hiện thời của Công ty Dịch vụ tiết kiệm Bu điện

Mô hình này tồn tại nhiều nhợc điểm:

 Chi phÝ cho ®êng truyÒn qua lín

 Chi phí lu trữ cơ sở dữ liệu tổng hợp là lớn

 Thời gian thực hiện truy vấn lâu

 Các giao dịch liên chi nhánh dùng qua RPC không đảm bảo

Giải pháp

Để giải quyết các vấn đề hiện tại, chúng ta sẽ áp dụng mô hình hệ thống thiết kế từ chương 3 vào hệ thống của Công ty Tiết Kiệm Bưu Điện Mô hình hệ thống mới sẽ được triển khai như sau:

Xử lý truy vÊn tổng thể

Xử lý giao dịch tổng thể §¨ng ký agent

Cơ sở dữ liệu địa phương

Xử lý truy vÊn tổng thể

Xử lý giao dịch tổng thể §¨ng ký agent

Trung tâm thành phố Hồ Chí Minh

Cơ sở dữ liệu địa phương

Xử lý truy vÊn tổng thể

Xử lý giao dịch tổng thể §¨ng ký agent

Cơ sở dữ liệu địa phương

Các ứng dụng Tiết kiệm cá nhân, gửi góp, có kỳ hạn

Các ứng dụng Thẻ, Tiét kiệm có kỳ hạn

Các ứng dụng Telephone payment, Tiét kiệm có kỳ hạn

Hình 4.2: Mô hình hệ thống mới của Công ty Dịch vụ tiết kiệm Bu điện

Trong hệ thống mới, các trung tâm sẽ được trang bị các thành phần như phân tích yêu cầu, xử lý giao dịch tổng thể, và xử lý truy vấn tổng thể Tại Hà Nội, chúng ta sẽ thay thế cơ sở dữ liệu tổng hợp bằng một global metadatabase, định nghĩa các ràng buộc để bảo vệ tính toàn vẹn của dữ liệu Hệ thống này cho phép truy xuất và sửa đổi dữ liệu theo quyền hạn mà không cần người dùng quan tâm đến vị trí lưu trữ Hai trung tâm còn lại sẽ xây dựng các metadatabase sao chép từ global metadatabase.

Hệ thống mới cho phép các chi nhánh kết nối với trung tâm gần nhất để gửi yêu cầu giao dịch hoặc truy vấn Các yêu cầu truy vấn sẽ được chuyển đến thành phần xử lý truy vấn tổng thể, ví dụ như tìm thông tin khách hàng qua mã khách hàng Thành phần này sẽ xác định đối tượng cần truy vấn và kiểm tra dữ liệu trong metadatabase để xác định vị trí lưu trữ và quyền truy cập Nếu dữ liệu nằm ở cơ sở dữ liệu xa, hệ thống sẽ tạo câu lệnh SQL và yêu cầu tạo mobile agent để gửi đến cơ sở dữ liệu đó Đối với yêu cầu thực hiện giao dịch, hệ thống sẽ chuyển đến thành phần xử lý giao dịch tổng thể và xác định thủ tục cần thực hiện trong metadatabase, từ đó gửi mobile agent đến cơ sở dữ liệu tương ứng để thực hiện giao dịch Nếu có các giao dịch tổng thể như nhắc thẻ hay thanh toán điện thoại, hệ thống sẽ kiểm tra các ràng buộc và tạo câu lệnh SQL phù hợp để thực hiện.

Hệ thống này đợc thử nghiệm trong môi trờng gồm ba máy chủ cơ sở dữ liệu Oracle có các thông số nh sau:

Cấu hình máy chủ CSDL

Các máy này kết nối qua đường Lease line, lưu trữ dữ liệu khách hàng, lãi suất, tài khoản và giao dịch của từng chi nhánh Trung tâm 36000 chỉ cung cấp dịch vụ tiết kiệm có kỳ hạn và thanh toán điện thoại.

Dịch vụ tiết kiệm có kỳ hạn và thẻ hiện đang được thực hiện bởi 70.000 cơ sở, trong khi 10.000 cơ sở cung cấp dịch vụ tiết kiệm cá nhân, tiết kiệm có kỳ hạn và tiết kiệm gửi góp Hơn nữa, trên máy chủ của trung tâm 10.000, chúng ta đã xây dựng một cơ sở dữ liệu tổng hợp, thay thế mô hình cũ bằng dữ liệu tổng hợp từ ba trung tâm.

Chúng ta sẽ tiến hành thử nghiệm các ví dụ về vấn tin trong cả môi trường hệ thống cũ và môi trường mới, áp dụng hệ thống vừa phát triển với công nghệ mobile agent.

Tìm thông tin khách hàng có mã khách hàng =1:

Trong quá trình thử nghiệm, chúng tôi đã tiến hành 4 trường hợp với hồ sơ khách hàng Bước đầu, chỉ có 1 hồ sơ khách hàng được tạo Ở lần thứ hai, số lượng hồ sơ tăng lên 4364, sau đó dữ liệu được đồng bộ về cơ sở dữ liệu tổng hợp và thực hiện việc vấn tin trên hệ thống cũ, tiếp theo là trên hệ thống mới Tại lần thử thứ ba, 18213 hồ sơ khách hàng được tạo ra, và quy trình đồng bộ dữ liệu cùng vấn tin được lặp lại Cuối cùng, ở lần thứ tư, số hồ sơ khách hàng đạt 20775, với quy trình tương tự được thực hiện giữa hệ thống cũ và mới.

Kết quả thời gian đáp ứng là:

Số lợng bản ghi cần quét của 1 lÇn query

Thêi gian đáp ứng theo mô hình cũ

Thời gian đáp ứng theo mô hình sử dụng mobile agent

Kết quả dung lợng truyền qua mạng là:

Số byte truyền trên mạng theo mô hình cò

Số byte truyền trên mạng theo mô hình sử dụng mobile agent

Tìm tất cả các lãi suất của các loại dịch vụ mới ban hành:

Chúng tôi đã tiến hành thử nghiệm trong 4 trường hợp khác nhau để đánh giá hiệu suất của hệ thống Ở lần đầu, chỉ có 1 bản ghi được sử dụng Tiếp theo, chúng tôi tạo ra 17 bản ghi, đồng bộ dữ liệu về cơ sở dữ liệu tổng hợp và thực hiện truy vấn trên hệ thống cũ, sau đó trên hệ thống mới Ở lần thứ ba, số lượng bản ghi tăng lên 34, và quy trình đồng bộ cùng truy vấn được lặp lại Cuối cùng, ở lần thứ tư, chúng tôi tạo ra 51 bản ghi, tiếp tục đồng bộ dữ liệu và thực hiện truy vấn trên cả hai hệ thống để so sánh hiệu suất.

Kết quả thời gian đáp ứng là:

Số lợng bản ghi cần quét của 1 lần query

Thời gian đáp ứng theo mô h×nh cò

Thời gian đáp ứng theo mô hình sử dụng mobile agent

Kết quả dung lợng truyền qua mạng tơng ứng là:

Số byte truyền trên mạng theo mô hình cò

Số byte truyền trên mạng theo mô hình sử dụng mobile agent

Tìm tất cả các tài khoản cá nhân (tiết kiệm cá nhân + tài khoản thẻ) của khách hàng có mã khách hàng là 126102:

Trong quá trình thử nghiệm, chúng tôi đã thực hiện năm trường hợp khác nhau với số lượng tài khoản tăng dần Bắt đầu với 720 tài khoản, chúng tôi tiến hành vấn tin trên hai môi trường Ở lần thử nghiệm thứ hai, số tài khoản đã tăng lên 4553 Sau đó, dữ liệu được đồng bộ về cơ sở dữ liệu tổng hợp và vấn tin trên hệ thống cũ, tiếp theo là hệ thống mới Lần thử nghiệm thứ ba ghi nhận 5092 tài khoản, và quy trình đồng bộ dữ liệu cùng với việc vấn tin trên cả hai hệ thống được lặp lại Lần thứ tư, số tài khoản đạt 8225, tiếp tục quy trình đồng bộ và vấn tin Cuối cùng, ở lần thử nghiệm thứ năm, tổng số tài khoản đạt 8945, với các bước đồng bộ dữ liệu và vấn tin tương tự như trước.

Kết quả thời gian đáp ứng là:

Số lợng bản ghi cần quét của 1 lần query

Thời gian đáp ứng theo mô h×nh cò

Thời gian đáp ứng theo mô hình sử dụng mobile agent

Kết quả dung lợng truyền qua mạng là:

Số byte truyền trên mạng theo mô hình cò

Số byte truyền trên mạng theo mô hình sử dụng mobile agent

Tìm tất cả các giao dịch tiết kiệm cá nhân của tài khoản 1:

Chúng tôi đã thực hiện thử nghiệm trong bốn trường hợp khác nhau Ban đầu, chỉ có 6,846 giao dịch được ghi nhận Sau đó, tiến hành truy vấn trên hai môi trường và lần thứ hai, số giao dịch tăng lên 30,692 Tiếp theo, dữ liệu được đồng bộ về cơ sở dữ liệu tổng hợp và thực hiện truy vấn trên hệ thống cũ, sau đó chuyển sang hệ thống mới Trong lần thử nghiệm thứ ba, tổng số giao dịch đạt 59,056 Một lần nữa, dữ liệu được đồng bộ và truy vấn trên hệ thống cũ, tiếp theo là hệ thống mới Cuối cùng, trong lần thử nghiệm thứ tư, số giao dịch tăng lên 65,902 với quy trình tương tự được lặp lại.

Kết quả thời gian đáp ứng là:

Số lợng bản ghi cần quét của 1 lần query

Thời gian đáp ứng theo mô h×nh cò

Thời gian đáp ứng theo mô hình sử dụng mobile agent

Kết quả dung lợng truyền qua mạng là:

Số byte truyền trên mạng theo mô hình cò

Số byte truyền trên mạng theo mô hình sử dụng mobile agent

Tìm tất cả các giao dịch gửi góp của tài khoản 404354:

Kết quả thời gian đáp ứng là:

Số lợng bản ghi cần quét của 1 lần query

Thời gian đáp ứng theo mô h×nh cò

Thời gian đáp ứng theo mô hình sử dụng mobile agent

Kết quả dung lợng truyền qua mạng là:

Số byte truyền trên mạng theo mô hình cò

Số byte truyền trên mạng theo mô hình sử dụng mobile agent

Trong quá trình xử lý giao dịch tổng thể, một khách hàng có tài khoản tiết kiệm cá nhân muốn mở thẻ tại chi nhánh ngân hàng Chi nhánh này kết nối với trung tâm gần nhất để yêu cầu mở thẻ, và yêu cầu được xác định là yêu cầu cập nhật Thành phần xử lý giao dịch tổng thể sẽ phân tích yêu cầu và xác định các đối tượng cần cập nhật, bao gồm thẻ và tài khoản tiết kiệm cá nhân Nó kiểm tra các ràng buộc liên quan trong metadatabase, đảm bảo tài khoản tiết kiệm còn đủ số dư Sau đó, thành phần này xây dựng câu truy vấn kiểm tra ràng buộc và gửi đến cơ sở dữ liệu ở Hà Nội Nếu kết quả thỏa mãn, nó sẽ tạo câu lệnh cập nhật cho từng đối tượng và đóng gói các lệnh này vào mobile agent để gửi tới các cơ sở dữ liệu ở Hà Nội và Hồ Chí Minh, thực hiện cập nhật theo giao thức two-phase commit.

Sau khi cập nhật kiểm tra dữ liệu thấy rằng đã đảm bảo đợc tính ACID của giao dịch

Việc áp dụng mô hình mobile agent trong truy vấn đa cơ sở dữ liệu đã góp phần giảm băng thông và thời gian phản hồi yêu cầu truy vấn Hệ thống này giúp người dùng không còn lo lắng về vị trí lưu trữ tài nguyên, khi họ chỉ cần sử dụng một lược đồ tổng thể để thực hiện truy vấn Các giao dịch tổng thể đảm bảo tính chất ACID, đồng thời việc triển khai hệ thống diễn ra nhanh chóng, đơn giản và linh hoạt.

Hệ thống mobile agent hiện tại đang gặp khó khăn khi chỉ hoạt động trong môi trường cơ sở dữ liệu thuần nhất, điều này không còn phù hợp khi số lượng người dùng và cơ sở dữ liệu tăng lên Để khắc phục, mô hình hai lớp sẽ được sửa đổi, cho phép máy khách truy cập thông qua một lớp trung gian (Middleware) Middleware sẽ tiếp nhận yêu cầu từ máy khách, xử lý thông qua lớp cơ sở dữ liệu và trả kết quả, giúp tối ưu hóa hiệu suất phần cứng và tạo cảm giác phục vụ liên tục cho người dùng Bên cạnh đó, thành phần xử lý yêu cầu sẽ được mở rộng để tương tác với các cơ sở dữ liệu phi Oracle, đáp ứng nhu cầu ngày càng cao và phức tạp của nghiệp vụ.

Một hướng nghiên cứu mới là phát triển mô hình hệ thống đại lý di động nhằm cung cấp dịch vụ tài chính ngân hàng qua Internet banking cho người dùng trực tuyến, và dịch vụ Mobile Payment cho người sử dụng điện thoại di động thông qua tin nhắn hoặc gọi điện.

Nghiên cứu về công nghệ mobile agent đã dẫn đến việc xây dựng mô hình hệ thống truy vấn và cập nhật dữ liệu trong môi trường đa cơ sở dữ liệu, kết hợp giữa mô hình máy khách/máy chủ và mobile agent Thử nghiệm trên hệ thống của Công ty dịch vụ tiết kiệm Bưu điện chứng minh tính khả thi và linh hoạt của mô hình, đồng thời khẳng định ưu việt của mobile agent trong việc xử lý dữ liệu Hướng nghiên cứu tiếp theo sẽ tập trung vào việc ứng dụng mobile agent trong các bài toán của hệ đa cơ sở dữ liệu không đồng nhất và phát triển ứng dụng tài chính ngân hàng trên Internet và thiết bị di động.

Ngày đăng: 22/01/2024, 17:03

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

TÀI LIỆU LIÊN QUAN