CHƢƠNG 2 TÁC TỬ PHẦN MỀM VÀ MÁY CHỦ PROXY
2.3. Proxy Server
2.3.2. Tại sao ta phải cần proxy?
Để đáp ứng những nhu cầu của người sử dụng khi cần truy xuất đến những ứng dụng cung cấp bởi internet nhưng vẫn đảm bảo được an toàn cho hệ thống cục bộ. Trong hầu hết những phương pháp được đưa ra để giải quyết điều này là cung cấp một máy chủ độc lập (gọi là Dual Homed Host) để truy xuất đến Internet cho tất cả
những người sử dụng. Tuy nhiên, phương pháp này không phải là phương pháp giải quyết tốt nhất bởi vì nó làm cho người sử dụng cảm thấy không thoải mái. Họ có cảm giác là họ không thể thực hiện việc truy cập Internet một cách trực tiếp, phải đăng nhập vào host, thực hiện tất cả những công việc ở đây, và sau đó bằng cách nào đó chuyển đổi kết quả đạt được của công việc trở lại máy khách để sử dụng.
Hình 2.5 Kiến trúc hệ thống mạng dùng Dual Homed Host
Proxy Server giúp người sử dụng thoải mái hơn và an toàn hơn dual homed host, thay thế yêu cầu của người sử dụng bằng cách gián tiếp thông qua dual homed host. Hệ thống proxy cho phép tất cả những tương tác của người dùng với dual homed host được thực hiện dưới một hình thức khác. Người dùng có cảm giác làm việc trực tiếp với server trên internet mà họ thật sự muốn truy xuất Proxy Server thực hiện xử lý yêu cầu và phục vụ người sử dụng bằng cách thực hiện tiến trình sau:
Thiết lập một kết nối ứng dụng phía máy khách với Proxy Server. Proxy Server thu nhận thông tin về kết nối và yêu cầu của người dùng. Sử dụng thông tin để xác nhận yêu cầu đó được chấp nhận không, nếu
chấp nhận proxy sẽ tạo một kết nối đến máy đích.
Sau đó thực hiện sự giao tiếp trung gian, truyền dữ liệu qua lại giữa máy khách và máy chủ Internet.
2.3.3. Proxy đƣợc thực hiện nhƣ thế nào?
Chi tiết việc Proxy Server thực hiện như thế nào là khác nhau đối với các dịch vụ khác nhau. Khi chúng ta cài đặt một hệ thống Proxy Server, có một vài dịch vụ thực hiện dễ dàng hoặc tự động, nhưng một vài dịch vụ có sự chuyển đổi rất khó
khăn. Tuy nhiên, trong hầu hết những dịch vụ, ngoài yêu cầu những phần mềm Proxy Server tương ứng, trên máy khách cũng cần phải yêu cầu một Phần mềm phía máy khách cấu hình được (Custum client software), phần mềm loại này phải biết như thế nào để liên kết với Proxy Server thay Server cung cấp nội dung khi người dùng yêu cầu và phải cung cấp cho Proxy Server những gì Server cung cấp nội dung yêu cầu.
2.3.4. Một số loại Proxy Server
a. HTTP Proxy Server
HTTP Proxy Server là một loại Proxy cho phép các máy khách kết nối với Internet thông qua giao thức HTTP, một số HTTP Proxy Server cũng cho phép kết nối với Internet thông qua giao thức FTP. HTTP Proxy Server chủ yếu làm nhiệm vụ lọc thông tin, đệm dữ liệu, và ẩn danh máy khách. Hình dưới minh họa kiến trúc HTTP Proxy Server.
Hình 2.6 Kiến trúc HTTP Proxy Server
HTTP Proxy Server là loại Proxy được phát triển và sử dụng rộng rãi nhất. Hiện tại, trên thế giới có rất nhiều Proxy thuộc loại này, bao gồm: Apache HTTP Server, DeleGate, I2P, Nginx, Squid, TinyProxy, PHProxy, Pound, Privoxy, Tor, Vanish, WWWOFFLE, Microsoft ISA Server…
(1)Các mức độ ẩn danh của HTTP Proxy Server
của Proxy, chúng ta có thể phân chia Proxy Server theo mức độ ẩn danh thành các loại như sau:
1. Trong suốt (Transparent): Các Proxy loại này không có cơ chế nặc danh. Trước tiên, nó thông báo cho máy chủ biết là máy khách đang sử dụng Proxy, đồng thời nó cũng gửi luôn cả địa chỉ IP của máy khách. Các Proxy loại này thường chỉ làm nhiệm vụ đệm dữ liệu để tăng tốc độ truy cập cho máy khách.
2. Nặc danh (Anonymous): Proxy Server cho các máy chủ web biết rằng máy khách đang sử dụng Proxy để truy cập đến nó, tuy nhiên Proxy không cung cấp địa chỉ IP của máy khách cho máy chủ web.
3. Thay đổi máy khách (Distorting): không giống như kiểu Proxy trước, Proxy loại này chuyển đến máy chủ web địa chỉ IP của máy khách. Tuy nhiên, địa chỉ này là một địa chỉ ảo. Địa chỉ này do Proxy Server tạo ra một cách ngẫu nhiên hoặc cố định một địa chỉ IP, nhưng địa chỉ này chắc chắn không phải là địa chỉ IP của máy khách.
4. Nặc danh mức cao (High anonymous): Proxy loại này không gửi địa chỉ IP của máy khách đến máy chủ web. Đồng thời, nó không thông báo cho máy chủ về việc máy khách có sử dụng Proxy hay không. Vì vậy, máy chủ web vẫn sẽ hiểu là máy khách kết nối trực tiếp đến nó.
(2)Chức năng đệm dữ liệu
Đệm dữ liệu là cơ chế của Proxy cho phép tăng tốc độ yêu cầu dịch vụ bằng cách truy vấn dữ liệu được lưu trữ từ các lần yêu cầu trước đó bởi cùng một máy khách, hoặc có thể là các máy khách khác nhau. Proxy Server sẽ lưu trữ các bản copy của các tài nguyên được yêu cầu thường xuyên, cho phép các tổ chức lớn giảm đáng kể chi phí, đồng thời tăng tốc độ phục vụ của hệ thống. Hình 3.7 minh họa việc triển khai hệ thống với các Proxy Server có khả năng đệm dữ liệu (Catched Proxy Server). Hầu hết các nhà cung cấp dịch vụ Internet (ISPs) và các tổ chức lớn đều sử dụng các Proxy Server có cơ chế đệm dữ liệu.
Giao thức HTTP 1.0 và các phiên bản mới hơn đều có cơ chế hỗ trợ rất tốt cho các Proxy Server trong việc đệm dữ liệu. Giao thức này đưa thêm vào rất nhiều khai báo trong phần tiêu đề để phục vụ cho việc đệm dữ liệu.
Hình 2.7 Mô hình HTTP Proxy Server với chức năng đệm dữ liệu
(3)Chức năng lọc dữ liệu
Chức năng này cung cấp một công cụ quản trị nội dung cho hệ thống. Proxy Server loại này thường được sử dụng bởi các tổ chức kinh tế hoặc các tổ chức khác (đặc biệt là các trường học). Chức năng này đảm bảo cho các máy trạm trong mạng cục bộ chỉ xem được những nội dung được phép.
Một số phương pháp được sử dụng để lọc dữ liệu bao gồm: lọc theo URL hoặc danh sách các DNS, lọc theo loại file, lọc theo biểu thức chính quy đối với tên miền (cấm các trang có xuất hiện chuỗi xxx chẳng hạn). Một số Proxy thông minh còn sử dụng các kỹ thuật phân tích nội dung để tìm kiếm và phát hiện ra nội dung không cho phép trong dữ liệu gửi về.
Chức năng này bao giờ cũng đi kèm một cơ chế xác thực người dùng (user authentication) để điều khiển truy cập web. Các phiên làm việc đều được ghi log, để ghi lại danh sách các URL mà người dùng đã truy cập, hoặc để đưa ra các thông tin thống kê tình trạng sử dụng băng thông của hệ thống. Nó cũng thường liên kết với các chương trình quét vi rút ngầm định để diệt virus và các mã độc khác bằng cách quét nội dung trực tiếp trước khi cho phép nội dung vào mạng.
b. WAP Gateway
WAP gateway là một Proxy Server, nằm giữa thiết bị di động và máy chủ web được minh họa trong hình dưới đây. WAP gateway làm nhiệm vụ chuyển đổi qua lại giữa giao thức WAP thuộc tầng ứng dụng trong môi trường di động và giao thức HTTP trong môi trường mạng IP.
Với sự phát triển của các thiết bị di động hiện nay, rất nhiều các loại giao thức WAP đã ra đời. Giao thức WAP được sử dụng phổ biến nhất hiện nay là giao thức
Wireless Session Protocol (WSP). Hầu hết các WAP Gateway hiện nay thực hiện chuyển đổi giao thức HTTP trong môi trường mạng IP thành giao thức WSP trong môi trường mạng di động (môi trường GPRS là một ví dụ).
Hình 2.8 Mô hình triển khai WAP Gateway
Một WAP Gateway hoàn chỉnh thực hiện 3 nhiệm vụ chính, bao gồm:
- Chuyển đổi định dạng thành phần tiêu đề (header) của gói tin (Header Translation).
- Thực hiện truyền tải nội dung yêu cầu về cho phía máy khách (Pust Operation).
- Thực hiện tùy biến nội dung để đáp ứng với khả năng của thiết bị (Content Compilation).
(1)Chuyển đổi định dạng tiêu đề (Header Translation)
Trong môi trường di động, phần tiêu đề của gói tin WSP được định dạng là kiểu dữ liệu nhị phân (binary format). Giao thức HTTP trong môi trường mạng IP thì lại đóng gói dữ liệu này dưới dạng là chuỗi (dữ liệu văn bản – String format). Vì vậy, để thực hiện được một giao tiếp với máy chủ web trong môi trường IP, WAP Gateway phải tiến hành chuyển đổi định dạng tiêu đề gói tin. Chuỗi các phép xử lý cần thiết để thực hiện giao tiếp giữa thiết bị di động với máy chủ web, thông qua WAP Gateway được chỉ ra như trong hình dưới.
Hình 2.9 Trình tự thực hiện chuyển đổi tiêu đề gói tin WSP và HTTP
Trình tự thực hiện được mô tả cụ thể như sau:
1. Ứng dụng của người dùng (ứng dụng trên thiết bị di động) cụ thể là một trình duyệt web, gửi địa chỉ URL của tài nguyên cần phục vụ cho WAP gateway theo giao thức WSP.
2. WAP gateway giải mã yêu cầu và chuyển toàn bộ gói tin WSP (định dạng nhị phân) sang giao thức HTTP thông qua các bảng ánh xạ (mapping table).
3. WAP gateway tạo kết nối đến máy chủ Web và gửi một yêu cầu HTTP đến máy chủ Web.
4. Yêu cầu HTTP được xử lý bởi máy chủ Web. Nếu URL yêu cầu là một tài nguyên tĩnh, thì máy chủ Web sẽ trả về dữ liệu được yêu cầu. Nếu yêu cầu đến một ứng dụng web, thì máy chủ sẽ tiến hành chạy ứng dụng đó.
5. Máy chủ Web lấy kết quả trả về từ ứng dụng web và gửi về cho WAP gateway.
6. WAP gateway mã hóa dữ liệu dưới dạng HTTP được gửi về từ máy chủ Web thành gói tin theo giao thức WSP, thông qua các bảng ánh xạ. 7. WAP gateway tạo một kết nối và gửi gói tin WSP đã được tạo ra ở bước
Chúng ta có một chú ý là môi trường mạng kết nối giữa thiết bị di động và WAP gateway là môi trường mạng không dây, nó khác hoàn toàn với môi trường mạng IP thông thường. Vì vậy kết nối giữa thiết bị di động và WAP gateway được đặt trong WAP domain.
(2)Phương pháp đẩy dữ liệu (Push Operation)
Việc thực hiện truyền tải nội dung yêu cầu về cho phía máy khách (Pust Operation) xảy ra khi có yêu cầu gửi nội dung cho thiết bị từ nhà cung cấp nội dung (Web Server). Tuy nhiên, việc truyền tải nội dung này không thể thực hiện trực tiếp từ Web Server về cho thiết bị. Vì môi trường mạng của thiết bị nằm trong WAP domain. Vì vậy, quá trình truyền tải nội dung về cho thiết bị cần thiết phải được thực hiện thông qua WAP Gateway.
(3)Tùy biến nội dung (Content Complilation)
Tùy biến nội dung là việc thực hiện chuyển đổi nội dung của các đối tượng về dạng thích hợp cho khả năng của các thiết bị. Việc tùy biến nội dung là để phù hợp với kích thước màn hình, giới hạn về hiệu năng tính toán, các ràng buộc về chức năng bàn phím, khả năng hiển thị màu… Hình 2.10 là mô hình triển khai hệ thống tùy biến nội dung phù hợp cho thiết bị.
Hình 2.10 Hệ thống tùy biến nội dung đáp ứng với khả năng thiết bị
Hiện nay, với sự phát triển đa dạng của các thiết bị trong môi trường không dây. Số lượng các WAP Gateway cũng ngày một phát triển. Hai trong số các WAP Gateway đang được sử dụng rộng rãi là: Kannel (Open Source and SMS Gateway) và Azcalabs (Free WAP Gateway Connection).
2.4. Kết chƣơng
Chương này đã đưa ra được khái niệm về tác tử phần mềm, các loại tác tử phần mềm và các hướng ứng dụng tiềm năng của công nghệ hướng tác tử, đồng thời cũng so sánh để làm nổi bật khả hỗ trợ các tính chất của tác tử của một số framework hiện có.
Công nghệ phần mềm hướng tác tử là một hướng phát triển tiếp theo của ngành công nghệ phần mềm - công nghệ mới cho phép xây dựng nhiều ứng dụng phân tán hiệu quả hơn những kỹ thuật cũ. Tuy còn những khó khăn trong việc triển khai công nghệ tác tử vào thực tế, nhưng công nghệ tác tử có nhiều tiềm năng trong một số loại ứng dụng phù hợp, và nó sẽ là một công cụ cần có khi xây dựng các ứng dụng phân tán quy mô lớn.
Chương này cũng đã đề cập đến khái niệm Proxy Server, các ứng dụng của Proxy Server và đưa ra hai loại Proxy Server hiện đang được đâu tư phát triển và sử dụng rộng rãi trong hầu hết các kiến trúc mạng hiện nay là: HTTP Proxy Server và WAP Gateway.
Thông qua việc đưa ra các khái niệm về công nghệ hướng tác tử và Proxy Server, đồng thời cũng phân tích các tính chất của tác tử. Chúng tôi xin đề xuất một mô hình Proxy Server có sử dụng công nghệ tác tử để phục vụ cho các xử lý trong môi trường di động. Chi tiết về kiến trúc Proxy Server có sử dụng công nghệ phần mềm hướng tác tử được đề cập chi tiết trong chương tiếp theo của luận văn này.
CHƢƠNG 3. KIẾN TRÚC PROXY XỬ LÝ ĐỘNG
3.1. Tổng quan
Có nhiều cách để thực thi một hệ thống Proxy Server thực hiện xử lý ở tầng trung gian, tuy nhiên hầu hết là các hệ thống xử lý cứng nhắc, nghĩa là chúng chỉ có thể cung cấp các dịch vụ xử lý như chuyển mã hay tìm kiếm… cho kiểu nội dung hoặc giao thức cụ thể, được xác định từ trước. Khi có mong muốn xử lý với một kiểu nội dung hoặc một giao thức truyền thông mới, thì việc nâng cấp toàn bộ kiến trúc đã có là không thể tránh khỏi.
Để khắc phục các vấn đề nêu trên, trong luận văn này, chúng tôi đề xuất kiến trúc của Agent Proxy Server (Máy chủ Proxy sử dụng tác tử), phục vụ cho sự tùy biến nội dung mạng.
Máy chủ ban đầu Máy chủ Agent Yêu cầu 1 Kết quả 1 IP Network Yêu cầu N Kết quả N
Agent Proxy Server Các thiết bị Client MT cá nhân MT xách tay Di động - Mô tả thiết bị - Sở thích người dùng Hình 3.1 Mô hình kiến trúc tổng thể hệ thống
Trong kiến trúc này, proxy có thể tiếp nhận và phân tích các yêu cầu dịch vụ cũng như cấu trúc thông tin mô tả khả năng của thiết bị máy khách và ưu tiên của người dùng để thực hiện các xử lý dữ liệu hoặc giao thức tương ứng, do đó máy chủ Proxy Server có thể cung cấp được nội dung hoàn toàn phù hợp với máy khách. Hơn nữa, kiến trúc hệ thống đề xuất đã được thiết kế để cung cấp sự mở rộng tính năng hỗ trợ kiểu dữ liệu và giao thức tùy ý bằng cách tận dụng các tác tử phần mềm có sẵn trên Internet. Các tác tử này được tự động tải về dựa trên các thông tin chuyển tới Proxy từ máy khách. Với sự đăng ký của chuẩn khả năng thiết bị, trong mô hình này sẽ sử dụng chuẩn CC/PP do W3C cung cấp [14] và bộ phân tích khả năng thiết bị gắn liền, hệ thống được đề xuất sẽ nhận dạng được rõ ràng nội dung, do đó, nó có thể thích ứng với nhiều kiểu thiết bị khác nhau.
Mô hình kiến trúc này hoàn toàn đơn giản và trong suốt với người dùng, người dùng chỉ cần thiết lập Agent Proxy Server như một Proxy thông thường. Khi các thiết bị phía người dùng sẽ gửi các yêu cầu dịch vụ lên máy chủ dữ liệu, thông tin hồ sơ Mô tả khả năng thiết bị (Device Profile) sẽ được gửi kèm, Agent Proxy Server sẽ phân tích các yêu cầu dịch vụ và các thông tin hồ sơ thiết bị, từ đó thực hiện các xử lý cần thiết để trả về thông tin phù hợp cho người dùng.
3.2. Các mô hình xử lý dữ liệu mạng
Trước tiên, để phân tích được vì sao cần đưa ra kiến trúc xử lý động tại Proxy Server, chúng ta hãy xem xét một số mô hình xử lý dữ liệu đã được áp dụng, từ đó phân tích và đưa ra so sánh về ưu nhược điểm của các mô hình này.
3.2.1. Mô hình xử lý phía máy khách
Mô hình xử lý phía máy khách (Client) thể hiện việc phân tích, xử lý các yêu cầu cho phù hợp với người dùng được thực hiện ngay tại thiết bị của người dùng