Một máy khách sẽ kết nối tới hệ thống Máy chủ Proxy như những hệ thống Proxy thông thường khác, và Proxy Server sẽ hoạt động một cách trong suốt với ngƣời dùng. Khi người dùng có một yêu cầu bất kỳ, sẽ gửi yêu cầu thông qua các loại trình duyệt hoặc ứng dụng web, và yêu cầu này sẽ được chuyển tới Máy chủ Proxy. Ở đây sẽ xử lý trung gian trước khi chuyển yêu cầu truy vấn dữ liệu tới các máy chủ cung cấp nội dung (Original Server) cũng như trước khi trả kết quả về cho người dùng. Việc xử lý trung gian dựa trên thông tin về Khả năng thiết bị và Sở thích của người dùng, thông tin này sẽ được gửi lên Proxy Server theo luồng thông tin yêu cầu dưới một định dạng chuẩn. Có nhiều phương pháp mô tả thiết bị khác nhau, trong đó CC/PP (Composite Capabilities/ Preferences Profile) là một chuẩn do W3C cung cấp và sẽ được sử dụng trong phần xây dựng thực nghiệm cho kiến trúc này.
Dựa vào Mô tả khả năng thiết bị và các thông tin liên quan được gửi lên, cùng gói tin yêu cầu, Bộ quản lý tiếp nhận sẽ xác định được loại giao thức và dữ liệu cần xử lý để đáp ứng yêu cầu từ phía người dùng. Khi đó, nó sẽ gửi yêu cầu tìm
kiếm tới Bộ quản lý tác tử để xác định được các tác tử phần mềm (software agent)
phù hợp để thực hiện việc xử lý. Thông thường các tác tử phần mềm này được lưu trong Agent Store của Proxy Server để việc xử lý được nhanh chóng và thuận tiện. Khi hệ thống Agent Proxy Server cần xử lý một loại dữ liệu hoặc giao thức không được biết trước, proxy sẽ tự động tải các tác tử phần mềm (software agent) phù hợp từ Internet về theo các chỉ dẫn được xác định trong các mô tả được gửi kèm với yêu cầu dịch vụ của thiết bị.
Theo sự khác nhau trong tính năng, các tác tử phần mềm (software agents) trong hệ thống này được chia thành 2 loại chính: Tác tử Dịch vụ (Service agent) và
Tác tử xử lý (processing agent).
Tác tử Dịch vụ (Service agent) trong framework này được sử dụng để tóm
lược các đặc điểm chi tiết giao thức. Với Tác tử dịch vụ, chúng ta có thể dễ dàng áp dụng công nghệ chuyển mã cho nhiều giao thức trình ứng dụng Internet hiện có hoặc tương lai. Ví dụ, để chuyển mã giao thức HTTP, chúng tôi sẽ chỉ thị hệ thống proxy để giao việc cho một “HTTP Service agent”. Để chuyển mã giao thức POP3, chỉ thị hệ thống proxy giao việc cho một “POP3 Service agent”. Người dùng có thể chỉ thị động cho proxy để tải Tác tử Dịch vụ được yêu cầu về, để mở rộng tính năng của hệ thống proxy, và để chuyển mã giao thức mà Tác tử Dịch vụ hiểu được.
Tác tử xử lý (Processing agent) trong Agent Proxy Server chịu trách nhiệm xử
lý các dữ liệu cho phù hợp với khả năng và sở thích của thiết bị cuối. Việc xử lý được thực hiện dựa trên yêu cầu cụ thể về truy vấn dữ liệu của người dùng, như: chuyển mã dữ liệu, lọc kết quả tìm kiếm phù hợp... Việc chuyển mã nội dung cụ thể là từ một loại nội dung MIME [1] này sang loại nội dung MIME khác hoặc sang cùng loại MIME với chất lượng giảm đi. Về cơ bản, processing agent thực hiện chức năng như một bộ lọc của dữ liệu vào, và nhiều processing agents có khả năng kết hợp với processing agent khác để hoàn thành được nhiệm vụ xử lý trung gian cho nhiều yêu cầu đồng thời khác nhau.
Xét theo khía cạnh mục đích xử lý, các Processing agents trong Agent Proxy Server có thể được phân chia thành các loại như sau:
Tác tử tìm kiếm (Searching Agent): Tác tử phần mềm phục vụ việc xử
lý và lọc các kết quả tìm kiếm cho phù hợp với khả năng và sở thích của thiết bị
Tác tử chuyển mã (Transcoding Agent): Tác tử phần mềm phục vụ
chuyển mã dữ liệu cũng nhằm mục đích cung cấp thông tin trả về có định dạng phù hợp với khả năng của thiết bị
Sau khi xác định được các Tác tử phần mềm để xử lý, đồng thời xác định rõ yêu cầu từ phía người dùng, Proxy Server kiểm tra trong hệ thống Processing Cache Database để tìm kiếm dữ liệu phù hợp. Nếu có thì sẽ trả ngay kết quả về cho người dùng. Nếu không có mới tiếp tục quá trình truy vấn và xử lý dữ liệu từ máy chủ dữ liệu ban đầu (Original Server) theo yêu cầu và khả năng của thiết bị.
3.4. Quy trình xử lý của hệ thống
Quy trình xử lý từ khi tiếp nhận yêu cầu của các thiết bị người dùng, đến khi trả lại kết quả phù hợp cho các thiết bị đó của hệ thống Proxy được thực hiện từng bước cụ thể đã được đánh số chi tiết trên mô hình kiến trúc hệ thống như sau:
1. Khi tiếp nhận Yêu cầu được gửi từ thiết bị Client lên, Bộ quản lý Tiếp nhận sẽ phân tích các gói tin nhận được và xác định thông tin chi tiết về giao thức và dữ liệu cần xử lý để đáp ứng yêu cầu từ phía người dùng.
2. Bộ quản lý Tiếp nhận sẽ gửi các thông tin về Mô tả khả năng thiết bị tới Bộ
xử lý DP & UP (Bộ xử lý Khả năng thiết bị và Sở thích người dùng). Bộ
phận này có trách nhiệm phân tích và tìm kiếm thông tin tương ứng của thiết bị xem đã có trong Cơ sở dữ liệu lưu trữ thông tin DP & UP chưa. Nếu đã có thì sẽ lấy ra để phục vụ cho việc xử lý dữ liệu. Nếu chưa có thì sẽ phân tích và cập nật thông tin mô tả mới vào CSDL lưu Cache thông tin Khả năng thiết bị và sở thích người dùng.
3. Bộ quản lý Tiếp nhận cũng đồng thời gửi các thông tin về giao thức, thông tin Khả năng, Sở thích của thiết bị tới Bộ quản lý Agent để bộ phận này
phân tích và xác định các Agent, bao gồm cả Tác tử Dịch vụ và các Tác tử xử lý. Các tác tử này thông thường được lưu trữ trong Bộ chứa Agent. Nếu là các tác tử mới thì sẽ phải download về từ Máy chủ Agent qua mạng Internet, với điều kiện Agent đó đã được tạo và lưu trên máy chủ Agent. Thông tin để tải lúc này được gửi kèm với thông tin về khả năng thiết bị 4. Bộ quản lý Agent gửi lại thông tin Tác tử dịch vụ cho Bộ quản lý tiếp nhận
5. Bộ quản lý Tiếp nhận sau đó gửi các thông tin yêu cầu của máy khách tới Bộ quản lý thực thi, và Bộ phận này phân tích các yêu cầu và nhờ Bộ quản
lý Dữ liệu đã xử lý kiểm tra xem có thông tin phù hợp không.
6. Bộ quản lý thực thi sẽ gửi kết quả trả về Bộ quản lý Tiếp nhận
a. Nếu có dữ liệu phù hợp: gửi dữ liệu về Bộ quản lý tiếp nhận. Ở đây sẽ sử dụng Tác tử dịch vụ để xử lý các vấn đề liên quan đến dịch vụ, giao thức, và gửi kết quả trả về cho người dùng. Đến đây chuyển sang bước 11 và chấm dứt quá trình xử lý mà không cần thực hiện truy vấn dữ liệu tới Máy chủ cung cấp nội dung nữa.
b. Nếu không có: gửi thông báo lại phía bộ phận tiếp nhận để chuyển sang bước 7.
7. Proxy sẽ chuyển tiếp yêu cầu từ phía người dùng, qua mạng Internet để truy vấn dữ liệu từ máy chủ cung cấp nội dung.
8. Máy chủ sẽ gửi về các kết quả dữ liệu ban đầu, và Bộ quản lý thực thi sẽ tiếp nhận các dữ liệu này để xử lý.
9. Bộ quản lý thực thi sử dụng các Tác tử xử lý đã được xác định từ bước 4, lần lượt thực hiện các xử lý để có được kết quả dữ liệu phù hợp cho máy khách và sở thích của người dùng.
10.Kết quả được đưa vào Bộ quản lý lưu trữ dự liệu đã xử lý, nhằm phục vụ cho những lần truy vấn sau. Đồng thời kết quả được trả về Bộ quản lý tiếp nhận như ở bước 6.b
11.Bộ xử lý tiếp nhận sử dụng Tác tử dịch vụ để đóng gói luồng dữ liệu đã xử lý và xác định các giao thức truyền tải, sau đó gửi về cho máy khách, kết thúc quá trình xử lý của hệ thống máy chủ Proxy.
3.5. Các thành phần chính trong kiến trúc
3.5.1. Bộ quản lý thực thi
Bộ quản lý thực thi (Processing Manager) là bộ phận quản lý hành vi của máy
chủ Proxy sử dụng tác tử (Agent Proxy Server). Khi các yêu cầu dịch vụ từ phía Máy khách gửi lên, đi qua Agent Proxy Server, Agent Proxy Server sẽ dựa trên các thông tin thiết bị và các thông tin thu được qua xử lý, để xác định việc sử dụng các tác tử phần mềm tương ứng.
Đọc Hồ sơ về khả năng và sở thích của thiết bị (CC/PP) để xác định Tác tử tiếp nhận và các tham số xử lý.
Phân tích Service Request, nhằm xác định cụ thể loại yêu cầu (Tìm kiếm/chuyển mã…) để xác định Processing Agent
o Nếu yêu cầu dịch vụ là một yêu cầu tìm kiếm, Processing Manager sẽ chỉ định loại Searching Agent, nhằm thực hiện việc lọc kết quả tìm kiếm.
o Nếu yêu cầu dịch vụ là một yêu cầu dữ liệu, Processing Manager sẽ chỉ định loại Transcoding Agent, để xử lý dữ liệu ban đầu, nhằm cung cấp nội dung phù hợp cho người dùng.
Thực thi yêu cầu, trả về kết quả mà người dùng mong đợi.
3.5.2. Tác tử dịch vụ và Tác tử xử lý
Trong kiến trúc đề xuất, một agent là một đoạn mã bytecodes của Java. Nhằm mục đích phục vụ được nhiều Agent Proxy Servers được cài đặt ở nhiều hệ thống mạng khác nhau, chúng tôi thiết kế mô hình một máy chủ Agent Server trên mạng Internet là nơi lưu trữ mọi Tác tử phần mềm (bao gồm cả Tác tử xử lý và Tác tử dịch vụ.) Khi hệ thống Proxy Server phát sinh nhu cầu có thể download các Agent về từ Agent Server để cung cấp sự mở rộng và nâng cấp tính năng của Proxy xử lý trung gian ban đầu. Một máy ảo Java (JVM - Java virtual machine) cung cấp một môi trường an toàn và cách ly giữa các software agents khác nhau. Đây là lý do của việc lựa chọn Java làm ngôn ngữ cài đặt của chúng tôi.
Các lớp agent trong kiến trúc hệ thống Agent Proxy Server bao gồm các lớp như: BasicAgent, ProcessingAgent, SearchingAgent, TranscodingAgent, và ServiceAgent. Một Tác tử Dịch vụ mới có thể được tạo ra bằng cách kế thừa đơn giản lớp ServiceAgent. Nó định nghĩa hành vi căn bản của các software agents trong Agent Proxy Server, và không thể sử dụng trực tiếp được.
Mỗi lớp Agent sẽ cung cấp các phương thức xử lý khác nhau phục vụ cho mục đích xử lý tương ứng của từng loại agent. Giả sử khi một agent được tải về từ Internet hoặc từ ổ đĩa cục bộ (Agent Store trên Proxy Server), hệ thống Proxy sử dụng phương thức onBorn() để kích hoạt agent. Phương thức onService() sẽ cho phép agent cung cấp các dịch vụ, doTranscode() hoặc doSearching() sẽ thực hiện việc chuyển mã hoặc tìm kiếm. Phương thức onLeave() được gọi khi một agent
chuẩn bị được tháo khỏi bộ nhớ. Phương thức getCacheCate() được sử dụng cho việc quản lý lưu cache dữ liệu sau khi đã xử lý, phục vụ cho các lần xử lý sau.
3.5.3. Bộ quản lý tác tử và Bộ chứa tác tử
Bộ quản lý tác tử (Agent Manager) giúp quản lý việc tìm kiếm và sử dụng
Agent cho quá trình xử lý của hệ thống. Với nhiều hệ thống Agent Proxy Server được cài đặt, thì việc sử dụng một server chung trên Internet, cung cấp các Agent là hữu ích và tiết kiệm.
Khi một hệ thống Agent Proxy Server cần sử dụng các Agent, nó sẽ được cung cấp URL tương ứng để xác định địa chỉ cụ thể và có thể tải các Agent cần thiết về hệ thống của mình.
Bộ chứa tác tử (Agent Store) chính là nơi được cung cấp để lưu trữ các Agent
thường xuyên được sử dụng của hệ thống Agent Proxy Server hiện tại nhằm giúp tìm kiếm tác tử phù hợp cũng như việc xử lý được nhanh chóng và thuận tiện.
3.5.4. Bộ xử lý và lƣu trữ thông tin khả năng thiết bị và sở thích ngƣời
dùng
Bộ xử lý DP & UP (Device Profile & User Preference Processing) là bộ phận
phân tích và xử lý hồ sơ Mô tả khả năng thiết bị và Sở thích của người dùng được gửi đến từ máy khách. Sau khi phân tích, sẽ chỉ ra được các đặc tính về phần cứng, phần mềm, cũng như khả năng truy cập mạng… của thiết bị. Từ thông tin này giúp hệ thống lựa chọn các Tác tử xử lý tương ứng, và các giao thức phù hợp cho việc xử lý dữ liệu trả về.
Hệ thống Agent Proxy Server được thiết kế để cho phép thực hiện lưu cache các thông tin Mô tả khả năng thiết bị thông qua Bộ lưu trữ thông tin khả năng thiết bị (Device Profile Cache Database), nhờ đó, với những thiết bị đã từng gửi
yêu cầu xử lý lên Agent Proxy Server, hệ thống sẽ không cần phải phân tích Mô tả khả năng của thiết bị đó nhiều lần. Chỉ khi có sự cập nhật từ phía thiết bị hoặc nhà cung cấp thiết bị, thì hệ thống mới phải thực hiện lại việc phân tích. Việc lưu cache này giúp giảm tải quá trình xử lý yêu cầu đầu vào từ phía thiết bị, làm tăng hiệu năng xử lý.
3.5.5. Bộ quản lý và lƣu trữ dữ liệu đã xử lý
Bộ lưu trữ dữ liệu đã xử lý (Processed Cache Database) được thiết kế để lưu
trữ các kết quả dữ liệu được xử lý phù hợp với yêu cầu và Mô tả khả năng thiết bị của một thiết bị cụ thể nào đó. Khi có một yêu cầu mới được đưa lên, nếu kết quả tương ứng với dữ liệu đã được xử lý, thì việc xử lý không cần truy vấn từ máy chủ, sẽ đạt được mục đích tăng hiệu suất xử lý đồng thời giúp giảm tải cho Proxy Server và Original Server.
Bộ quản lý dữ liệu đã xử lý (Processed Cache Manager) là bộ phận quản lý
việc tìm kiếm và lưu trữ những kết quả đã xử lý theo yêu cầu của người dùng. Cơ chế thực hiện nhằm 2 mục đích chính:
Dựa vào yêu cầu của người dùng, tìm kiếm kết quả phù hợp. Nếu không có kết quả trả về thì Agent Proxy Server mới phải thực hiện tiếp việc truy vấn và xử lý dữ liệu từ Máy chủ cung cấp nội dung.
Điều khiển cơ chế lưu dữ liệu xử lý để việc lưu cache đảm bảo không bị dư thừa nội dung, gây quá tải cho Processed Cache Database
3.6. Kết chƣơng
Mô hình Agent Proxy Server đề xuất đạt được tiêu chí quan trọng là trong suốt với người dùng, qua đó người dùng có thể được phục vụ mà không cần phải có một sự tương tác trực tiếp nào với hệ thống Agent Proxy Server.
Một ưu điểm nữa là hệ thống Agent Proxy Server sử dụng công nghệ tác tử di động (mobile agent) để phát triển, do đó chỉ một phần các agents được kích hoạt cho các clients/servers cụ thể khi có yêu cầu xử lý. So sánh với các proxy xử lý trung gian bình thường, mà tải tất cả các tính năng chuyển mã vào hệ thống, thì Agent Proxy Server tiết kiệm được tài nguyên hơn, như bộ nhớ và công suất tính toán, đồng thời có khả năng xử lý dữ liệu một cách linh hoạt và hiệu quả.
Cũng nhờ việc xây dựng dựa trên công nghệ mobile agent cùng với thiết kế linh hoạt, nên việc nâng cấp là hoàn toàn đơn giản thông qua việc nâng cấp các tác tử phần mềm tương ứng, mà hoàn toàn không phải nâng cấp toàn bô hệ thống như những hệ thống Proxy cứng nhắc đã được xây dựng trước đây.
Tuy nhiên, Agent Proxy Server còn xử lý chưa được tốt trong trường hợp thiết bị người dùng hoặc máy chủ nội dung cần xử lý các kiểu dữ liệu hoặc giao thức mà không thể xác định được do chưa được cung cấp Agent tương ứng.
CHƢƠNG 4. THỰC NGHIỆM
4.1. Kiến trúc hệ thống thực nghiệm
Trong chương này, chúng tôi trình bày chi tiết về hệ thống thực nghiệm đã xây dựng được để thực hiện kiến trúc Agent Proxy Server (APS). Kiến trúc tổng thể của toàn bộ hệ thống thực nghiệm được đưa ra trong hình dưới đây.