Đặt vấn đề Ngày nay, ngành Công nghệ thông tin ngày càng phát triển, nhu cầu sử dụng Internet ngày càng cao và đa dạng như các ứng dụng thương mại điện tử, tìm kiếm, chia sẻ video, các ứng dụng thông minh… Người sử dụng có thể truy cập Internet qua nhiều thiết bị khác nhau như các máy tính cá nhân cầm tay , thiết bị số hỗ trơ ̣ cá nhân (Personal Digital Assistants - PDAs) và điện thoại di động có hỗ trợ WAP [1]. Với sự phát triển đa dạng của Internet, các máy phục vụ (server) cần phải có khả năng xử lý một khối lượng lớn thông tin yêu cầu từ các máy trạm (client) và có khả năng chứa đựng các thông tin dùng cho tất cả các kiểu thiết bị máy trạm khác nhau. Những thiết bị này khác nhau về khả năng tính toán, kết nối mạng , và kích thước màn hình. Ngoài ra , vì băng thông giới hạn của truyền thông di động nên nội dung truyền thống của một đối tượng web cho máy tính để bàn không thể phù hợp với một thiết bị di động.
Vấ n đề đă ̣t ra là làm thế nào đ ể thu được các kết quả phù hợp với các “khả năng” (capability) của mỗi loại thiết bị đó và “sở thích” (preference) của người dùng. Việc xử lý các đối tượng web để thu được kết quả mong muốn được thực hiện ở phía máy trạm hay máy phục vụ đều gặp phải những vấn đề đáng kể như giới hạn về hiệu năng xử lý nếu xử lý tại máy trạm; quá tải khi có quá nhiều yêu cầu từ máy trạm, không linh loạt với nhiều loại yêu cầu nếu xử lý tại máy phục vụ. Vì thế, mô hình sử dụng Proxy như tầ ng trung gian để “ti ền xử lý” các nội dung web trước khi trả về cho các thiết bị được đề xuất và nghiên cứu nhiều hơn cả [3][5]. Giải pháp đầu tiên được đưa ra là sử dụ ng proxy cố định (fixed proxy), chẳ ng hạn như với việc chuyển mã , proxy chuyển mã chỉ đơn thuần chuyển mã cho đầu vào thành đầu ra mà không có bất kỳ quá trình xử lý liên quan đến ngữ cảnh nào.
Một ví dụ cho loại này là bộ chuyển đổi HTML-WML [6]. Các đặc trưng ưu việt z 2 của loại proxy chuyển mã này là tính đơn giản trong cấu trúc và hiê ̣u năng của hệ thống. Tuy nhiên, hệ thống proxy chuyển mã này sẽ thiếu tính mềm dẻo và có thể không có khả năng hỗ trơ ̣ những yêu cầu đa da ̣ng từ nhiều kiểu thiết bị khác nhau. Mô ̣t giải pháp khác đươ ̣c đưa ra là một proxy xử lý mang tính kinh nghiệm (heuristic proxy ), chẳ ng ha ̣n như với viê ̣c chuyể n mã , proxy chuyển mã có khả năng đọc được hiện trạng về khả năng từ thiết bị khách và cố gắng biến đổi nội dung theo khả năng của thiết bị [1][8].
Tuy nhiên, do proxy không có bất kỳ hiểu biết nào về việc thông tin nào là quan trọng, nên nó khó khăn trong việc xác định chiến lược biến đổi nội dung [9][10]. Hơn nữa, phương pháp giải quyết theo kinh nghiệm từ hệ thống proxy chuyển mã có xu hướng đưa ra những kết quả không thể dự đoán trước. Trong đề tài luận văn này , chúng tôi đề xuất kiến trúc proxy động sử dụng các tác tử - Agent Proxy Server [4] - có khả năng xử lý thông tin động , giúp giảm tải việc xử lý tại các máy chủ và xử lý nhanh thông tin đồ ng thời giúp “tiề n xử lý” các kế t quả trả về từ máy chủ nhằ m đưa ra các kế t quả phù hơ ̣p với khả năng và sở thích của các thiế t bi ̣khác nhau. Khả năng và sở thích của thiết bị được đặc tả bởi mô tả của thiết bị (device profile).
Trong kiến trúc đề xuất này, mô tả thiết bị được gửi theo yêu cầu (request) từ phía máy trạm gửi qua proxy server đến máy phục vụ. Proxy server sẽ đón luồng trả kết quả (response) sau khi xử lý yêu cầu về từ phía máy phục vụ. Tại proxy server, các kết quả trả về này sẽ được xử lý dựa vào mô tả thiết bị đã được đón nhận và phân tích trước đó. Quá trình xử lý này sẽ trả về kết quả phù hợp với thiết bị đã gửi yêu cầu lên và được thực hiện bởi các tác tử phần mềm chuyên biệt được cài đặt sẵn trong proxy server.
Kiến trúc đề xuất có thể thực hiện nhiều công việc khác nhau để mang lại kết quả phù hợp với mô tả thiết bị. Khi cần xử lý một công việc chưa biết trước, proxy server sẽ tự động tải các tác tử phần mềm phù hợp từ kho tác tử trên Internet. Nội dung nghiên cứu Trong thời gian thực hiện luận văn, chúng tôi đã nghiên cứu về mô hình tác tử phần mềm tầng trung gian, xử lý dữ liệu tại tầng trung gian bao gồm: Tìm hiểu các vấn đề lý thuyết về kiến trúc phần mềm, về các mô hình ứng dụng trực tuyến. Tìm hiểu các vấn đề về nhu cầu độc lập thiết bị trong thời đại phát triển công nghệ mạng ngày nay, đồng thời nghiên cứu các kỹ thuật hỗ trợ nhận dạng thiết bị, phục vụ cho mục đích cung cấp nội dung tùy biến với khả năng thiết bị và mong muốn của người dùng.
z 3 Tìm hiểu công nghệ phần mềm hướng tác tử, tìm hiểu các framework đã và đang được phát triển để hỗ trợ cho việc phát triển các ứng dụng hướng tác tử. Tìm hiểu framework JADE trong việc phát triển ứng dụng hướng tác tử. Nghiên cứu các vấn đề cơ sở hỗ trợ việc xử lý thông tin theo các thông tin về khả năng của thiết bị, mà cụ thể là nghiên cứu chuẩn CC/PP, một chuẩn mô tả khả năng của thiết bị phía client. Đề xuất mô hình Agent Proxy Server hỗ trợ các ứng dụng trực tuyến trong việc xử lý dữ liệu ở tầng trung gian.
Nghiên cứu và xây dựng hệ thống thực nghiệm chứng minh tính đúng đắn và hữu ích của mô hình đề xuất. Cấu trúc luận văn Nội dung các phần còn lại của luận văn có cấu trúc chi tiết như sau: Chương 2: Giới thiệu về vấn đề độc lập thiết bị và các kỹ thuật nhận dạng thiết bị của W3C. Trong đó, đặc biệt chú trọng tới CC/PP (Composite Capabilities/Preferences Profile), là một phương pháp chuẩn được cung cấp để mô tả các thiết bị về khả năng của nó và sở thích của người dùng. Chương 3: Trình bày các kiến thức nền tảng liên quan đến tác tử và máy chủ proxy.
Cụ thể, nội dung của chương giới thiệu về khái niệm của tác tử, các loại tác tử và các ứng dụng của tác tử trong thực tế. Đồng thời chương này cũng đề cập đến proxy server, các tính năng cơ bản của một proxy server và giới thiệu một số proxy phổ biến. Chương 4: Đề xuất mô hình Agent Proxy Server (Máy chủ Proxy sử dụng tác tử) là một máy chủ trung gian giúp xử lý dữ liệu từ máy chủ ban đầu để cung cấp nội dung theo đúng nhu cầu và khả năng của thiết bị phía máy khách. Trong đó proxy server đón nhận kết quả trả về từ máy phục vụ, bóc tách thông tin rồi xử lý sao cho phù hợp với mô tả thiết bị đã nhận rồi trả về cho máy trạm.
Các công việc trên đều được thực hiện bởi các tác tử chuyên biệt, nếu cần xử lý một công việc chưa biết, proxy server có thể tự động tải các tác tử phần mềm phù hợp từ kho tác tử trên Internet. Chương 5: Thiết kế, xây dựng và cài đặt hệ thống thực nghiệm dựa trên mô hình đề xuất, khẳng định tính hợp lý và khả thi của mô hình. Hệ thống thực nghiệm sử dụng CC/PP để mô tả về thiết bị. Chương 6: Đưa ra các kết luận, đánh giá những việc đã làm được và chưa làm được trong quá trình thực hiện luận văn, và hướng nghiên cứu tiếp theo của đề tài.
NHẬN DẠNG THIẾT BỊ 1. Tổng quan về độc lập thiết bị Với sự đa dạng hóa các thiết bị tính toán, nhu cầu về việc truyển tải nội dung phù hợp nhất cho thiết bị đang ngày một gia tăng. Các thiết bị khác nhau yêu cầu những định dạng nội dung khác nhau cho cùng một tài liệu. Trên thực tế, hầu hết các ứng dụng Web hiện nay đều được các lập trình viên thiết kế phù hợp cho màn hình và trình duyệt trên PC.
Để có thể kiểm soát tốt nhất khả năng hiển thị của các ứng dụng này trên trình duyệt của máy khách, các lập trình viên thường sử dụng cấu trúc bảng và đặt vị trí của các đối tượng cố định tính theo đơn vị điểm ảnh (pixel) trên màn hình. Việc thực hiện chuyển đổi các ứng dụng đó để hiển thị hiệu quả trên các thiết bị khác nhau là một vấn đề rất phức tạp. Chính vì vậy, các lập trình viên chọn giải pháp là sẽ tạo ra các ứng dụng khác nhau truyền tải cùng một nội dung nhưng theo những định dạng khác nhau phù hợp cho từng thiết bị [10].1 cho chúng ta biết việc hiển thị cùng một nội dung trên các thiết bị khác nhau. Tuy nhiên, khi số lượng các thiết bị truy cập Internet ngày càng đa dạng thì chi phí cho việc tạo và quản trị một lượng lớn các ứng dụng kiểu này gặp phải vấn đề rất lớn về kinh tế.
Nội dung tùy biến cho các thiết bị khác nhau. Bên cạnh việc truyền tải nội dung cho các thiết bị khác nhau là khác nhau, thì có những tình huống, ngay một thiết bị cũng yêu cầu các dạng nội dung khác nhau của cùng một tài liệu. Một ví dụ điển hình là khi một người dùng thiết bị di chuyển trong ôtô, có thể họ muốn chuyển việc hiển thị nội dung bằng dữ liệu văn bản thông thường sang thành dạng âm thanh. Hoặc khi những người khuyết tật sử dụng thiết bị, họ cũng yêu cầu các dạng nội dung với định dạng phù hợp nhất với họ.
Thông qua việc phân tích một số tình huống ở trên, chúng ta thấy thật sự cần thiết của việc tạo ra các nội dung độc lập thiết bị. Độc lập thiết bị (Device Independence) được định nghĩa là khả năng tạo ra các tài liệu và tùy biến các tài liệu đó phù hợp với khả năng của các thiết bị yêu cầu. Để thực hiện được ý tưởng độc lập thiết bị, tổ chức W3C đã thành lập các nhóm nghiên cứu về độc lập thiết bị. Hiện tại, W3C có hai hoạt động chính về độc lập thiết bị.