Thiết kế chương trình

Một phần của tài liệu Nghiên cứu mô hình phân tải server sử dụng proxy động (Trang 41 - 47)

Chương trình kiểm chứng người dùng bằng hình ảnh sẽ hoạt động theo luồng tiến trình như hình 4.1

Hình 4.1: Biểu đồ tun t ca h thng

Khi bắt đầu, Client sẽ gửi yêu cầu trang đăng nhập đến cho Server thông qua Proxy.

Do đây là yêu cầu không cần dùng đến Agent nên Proxy sẽ chuyển thẳng nó sang cho Server. Server sẽ trả lời lại yêu cầu này bằng cách gửi lại form đăng nhập cho Proxy để

chuyển sang cho phía Client.

Sau khi nhận được form đăng nhập, Client sẽ tự động gửi yêu cầu về ảnh kiểm chứng cho Proxy. Do đây là yêu cầu có sử dụng Agent nên Proxy sẽ không chuyển nó cho Server mà tìm kiếm Agent tương ứng trong Agent Container của mình. Trong chương

33

trình này, Agent dùng để sinh ảnh và kiểm chứng ảnh được gọi là captchaAgent. Nếu

captchaAgent chưa có trong Agent container của Proxy, nó sẽ gửi thông báo cho Server yêu cầu gửi captchaAgent cho nó. Server nhận được yêu cầu sẽ phân tích yêu cầu để lấy thông tin về đích đến, rồi yêu cầu Agent Container của nó gửi captchaAgent sang cho Agent Container bên phía Proxy. Sau khi việc chuyển Agent kết thúc, Server sẽ gửi thông báo cho Proxy biết đã hoàn thành việc chuyển Agent. Sau khi đã nhận được captchaAgent, Proxy sẽ gửi thông điệp yêu cầu Agent này sinh ra một ảnh captcha và trả

lại định danh ảnh cho Proxy. Cuối cùng Proxy sẽ gửi đường dẫn đến bức ảnh cho Client cùng với định danh của bức ảnh.

Sau khi điền đầy đủ thông tin theo form đã nhận được, Client sẽ gửi các thông tin

này đi cho Proxy. Các thông tin được gửi đến cho Proxy sẽ bao gồm username, password, ký tự tương ứng với ảnh captcha đã được gửi đến và định danh của ảnh captcha. Proxy sau khi tiếp nhận các thông tin này sẽ tiến hành kiểm tra ký tự của ảnh captcha trước.

Định danh của ảnh captcha và ký tự xác nhận sẽ được gửi cho captchaAgent và yêu cầu Agent này kiểm tra. Nếu kết quả kiểm tra cho thấy ký tự được gửi đến và ảnh đã gửi đi

không khớp với nhau, captchaAgent sẽ gửi thông báo lại cho Proxy đi kèm với ảnh mới

sinh và định danh của ảnh đó. Proxy nhận được thông tin này sẽ thông báo lại ngay cho phía Client biết xác nhận ảnh sai và yêu cầu làm lại với ảnh mới được gửi đến. Phần

username và password đã được gửi đến cho Proxy sẽ bị bỏ qua mà không được chuyển sang cho Server kiểm chứng. Nếu captchaAgent xác nhận ký tự gửi đến và ảnh đã gửi đi

trùng khớp với nhau thì Proxy mới gửi thông tin vềusername và password đến cho Server tiếp tục kiểm chứng.

Kết quả kiểm chứng username và pasword sẽđược Server gửi trả về cho Proxy. Nếu kết quả là sai, Server sẽ yêu cầu phải nhập lại tất cảcác thông tin, khi đó Proxy sẽ sinh ra

ảnh captcha mới và gửi yêu cầu Client nhập lại tất cả. Nếu kết quả kỉêm chứng username

và password đúng, Server sẽ gửi trang chào mừng cho Proxy, Proxy sẽ chuyển trang này sang cho Client.

4.2. Cài đặt và thc nghim

Trên cơ sở phân tích thiết kế chương trình ở phần trước, chúng tôi đã thực hiện cài

34

Một số máy khác được sử dụng như các Client kết nối với Proxy để tiến thành chạy thử

hệ thống.

4.2.1. Cài đặt Server

Để tạo ra một Server với chức năng cơ bản là nhận yêu cầu, xử lý thông tin và trả lời cho phía yêu cầu, có thể sử dụng rất nhiều ngôn ngữ lập trình để tạo ra các Server như

vậy, ví dụ như để tạo ra một WebServer có thể sử dụng Java hoặc PHP. Tuy nhiên nên sử

dụng Java để tạo ra Server vì hiện nay các nền tảng đã được viết để hỗ trợ cho việc phát triển các hệ thống Agent chủ yếu được viết bằng Java như JADE, Aglet, Grasshoper v.v.

Thêm vào đó việc sử dụng Java để đóng gói và truyền dữ liệu qua mạng đơn giản hơn so

với các ngôn ngữ lập trình khác, do đó Java được lựa chọn là ngôn ngữđược dùng để tạo ra WebServer.

Hiện nay nền tảng phát triển JADE được coi là đầy đủ và hợp lý cho các hệ thống sử

dụng nhiều Agent vì tính dễ dùng, dễ phát triển, và tuân theo chủân FIPA của nó. Do đó

ta sẽ chọn JADE làm nền tảng để phát triển các Agent. Do cùng được viết trên nàng tảng Java nên việc kết hợp Jade và WebServer là đơn giản.

4.2.2. Cài đặt Proxy

Proxy Server là một cổng thông tin giữa các máy trong mạng và ngoài Internet. Có thể dễ dàng tạo ra một Proxy đơn giản sử dụng các ngôn ngữ lập trình hỗ trợ lập trình mạng như Java hay C++, C#. Tuy nhiên, do yêu cầu về sử dụng Agent để hỗ trợ cho việc tính toán và di chuyển tính toán, nên ngôn ngữ lập trình Java là lựa chọn hiệu quả nhất.

Một nền tảng phát triển Agent cũng được sử dụng trên Proxy server để có thể chứa

các Agent được chuyển đến và thực thi chúng. Điều quan trọng là nền tảng trên Server và trên Proxy cần phải giống nhau để tạo ra sự dễ dàng và tiện lợi trong việc liên kết và chuyển tải Agent. Lựa chọn JADE cho việc lưu trữ và thực thi Agent trên Proxy sẽ là một lựa chọn hợp lý. Việc kết hợp JADE và Proxy Server là đơn giản do cảhai dùng được viết trên nền tảng Java.

4.2.3. Thực nghiệm

Kết quả thực nghiệm thu được sau khi cài đặt thành công hai máy Server, Proxy và sử dụng một sốmáy tính làm Client như sau:

- Cấu hình máy Server: Core 2 dual 2.5GHz, RAM 2G, hệđiều hành Window Vista - Cấu hình máy Proxy: Dual 2 core 1.8GHz, RAM 1G, hệđiều hành Window XP

35

- Các máy Client sử dụng trình duyệt Mozilla Firefox 3.0

Bng s liu thc nghim

Sốlượng Client

Số yêu cầu đến Proxy

(dung lượng Byte)

Số yêu cầu đến Server

(dung lượng Byte) Ghi chú

1 5

(2589 B)

4

(1987 B) Client yêu cầu login.jsp

1 7

(3767 B)

6 (3070 B)

Client yêu cầu login.jsp rồi submit thành công 3 21 (11301 B) 16 (8515 B) Mỗi Client yêu cầu một login.jsp rồi submit thành công 5 35 (18853 B) 26 (13865) Mỗi Client yêu cầu một login.jsp rồi submit thành công 5 45 (24313 B) 26 (13865) Mỗi Client yêu cầu login.jsp 1 lần, thay đổi ảnh 1 lần , submit thành công 5 65 (35200 B) 41 (21005 B) Mỗi Client yêu cầu login.jsp 1 lần, submit lần 1 sai ảnh, lần 2 thành công 5 65 (35200 B) 42 (21525 B) Mỗi Client yêu cầu login.jsp 1 lần, submit lần 1

sai thông tin cá nhân, lần 2 thành công 5 135 (73453 B) 26 (13865) Mỗi Client yêu cầu login.jsp 1 lần, và thay ảnh 10 lần, submit thành công

36

Từ bảng số liệu trên ta có thể thấy sốlượng yêu cầu mà Server phải xửlý đã đã giảm

đi đáng kể. Sốlượng yêu cầu từphía Client càng tăng lên thì tỷ lệ số lượng yêu cầu Proxy phải xử lý với số lượng yêu cầu Server phải xử lý cũng tăng lên. Đặc biệt khi số lượng yêu cầu về xửlý đòi hỏi sử dụng Agent nhiều thì tỷ lệ này càng lớn.

Như vậy việc giảm tải cho Server đã được thực hiện tương đối tốt, đạt được mục

đích do mô hình đề ra. Thêm vào đó, nếu ta bố trí Server ở ngoài Internet, các máy Client

được đặt trong cùng một mạng với Proxy thì đường truyền Internet cũng giảm hiệu suất hoạt động đi đáng kể. Kết quả của thực nghiệm đã chứng minh được tính đúng đắn và khả

37

Chương 5 Kết lun

Sau thời gian nghiên cứu và xây dựng mô hình với mục đích phân tải cho Server sử

dụng Proxy động, chúng tôi đã tiếp cận được những kiến thức cơ bản về các hệ thống

mạng, cách triển khai nó và các lý thuyết cũng như thực hành về khái niệm Agent, ứng

dụng của Agent trong các hệ thống tính toán, từ đó đưa ra được mô hình Proxy động dựa

trên mô hình Client – Proxy – Server truyền thống. Mô hình đưa ra này có thể ứng dụng được vào thực tế để giải quyết được bài toán đặt ra là giảm tải cho các Server đồng thời

giảm được lượng thông tin truyền trên Internet. Mô hình đưa ra này hoàn toàn có thể trở

thành giải pháp quan trọng cho việc triển khai các mô hình tính toán tập trung trên Internet trong tương lai không xa. Những kết quả chính mà chúng tôi đã đạtđược và chưa đạt được, hướng phát triển tiếp theo có thể được tổng kết lại như dưới đây:

5.1. Kết qu thu được

Đưa ra được mô hình Proxy động có khảnăng ứng dụng được vào thực tế. Mô hình

này được xây dựng dựa trên khái niệm về Agent và các ứng dụng liên quan đến nó. Mô hình bao gồm hai thành phần chính là Proxy và Server. Proxy làm nhiệm vụ cầu nối trung gian giữa Client và Server, có chức năng cơ bản là truyền tải yêu cầu từ phía Client đến

cho Server và đưa thông tin trả lời từ Server vềcho Client. Để có thểđạt được mục tiêu giảm tải cho Server, trong mô hình này Proxy còn có thêm chức năng tiếp nhận tính toán

đã được đóng gói từ Server và thực thi nó ngay trên Proxy khi có yêu cầu từ phía Client. Với mô hình nay, việc giảm tải cho Server được thực hiện hiệu quả, đặc biệt là trong các hệ thống lớn với lượng người dùng đông, yêu cầu xử lý lớn và các yêu cầu về tính toán giống nhau được lặp lại nhiều lần. Ngoài ra, mô hình đưa ra con giúp giảm lượng thông

tin được truyền trên Internet, góp phần tăng hiệu quả sử dụng đường truyền Internet, đặc biệt là với những nước có cơ sở hạ tầng mạng còn yếu như Việt Nam.

Đã xây dựng được một thực nghiệm chứng minh tinh thực tế của mô hình đề ra.

Thực nghiệm này dựa trên một ứng dụng đơn giản nhưng đang được sử dụng khá phổ

biến hiện nay là kiểm chứng người dùng bằng hình ảnh. Các bức ảnh được sinh ra dựa

trên các ký tự bất kỳ và được áp dụng một số biện pháp xử lý để các chương trình nhận

38

ảnh và kiểm chứng ảnh được Server đóng gói và chuyển về cho Proxy thực hiện. Từ đó,

mỗi khi có yêu cầu sinh ảnh và kiểm chứng ảnh từ phía Client, Proxy sẽ thay Server thực

hiện nhiệm vụ này.

Mô hình đưa ra và thực nghiệm đã chứng minh tính khả thi của mô hình này trong việc áp dụng vào thực tế, tạo tiền đề cho các bước nghiên cứu và phát triển tiếp theo để có

thể đưa ra được một mô hình hoàn thiện hơn và những thực nghiệm về sau sẽ chứng minh được những ưu điểm của mô hình này.

Một phần của tài liệu Nghiên cứu mô hình phân tải server sử dụng proxy động (Trang 41 - 47)