Các nguyên lý và giải pháp thiết kế hệ phân tán với mô thức web
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ***************** TIỂU LUẬN MÔN HỌC HỆ PHÂN TÁN Đề tài: Các nguyên lý giải pháp thiết kế Hệ phân tán với mô thức Web Giáo viên hướng dẫn: GS TS Nguyễn Thúc Hải Lớp: Truyền thông mạng máy tính Hà Nội – 10/2010 LỜI NÓI ĐẦU Hiện nay, giới nói chung Việt Nam nói riêng, mạng World Wide Web (hay thường gọi Internet) phát triển với tốc độ chóng mặt, đóng vai trò quan trọng đời sống, nơi chia sẻ thông tin, cung cấp dịch vụ, giao dịch, thương mại điện tử một kho lưu trữ thông tin khổng lồ Trong trình đó, hệ phân tán phát triển nhanh chóng bắt nhịp với mạng Internet, số ví dụ điển mô hình dịch vụ Web, ứng dụng Web, mạng sensor, v v Trong trình nghiên cứu lý thuyết hệ phân tán, em nhận thấy vai trò quan trọng việc tìm hiểu hệ phân tán web Từ đó, em áp dụng lý thuyết vào ứng dụng thực tế Trong tiểu luận này, em không nghiên cứu lý thuyết chung hệ phân tán web trình bày “Distributed Systems - Principle and Paradigm” giáo sư Tanenbaum, mà áp dụng vào hướng đề tài tốt nghiệp nhằm có nhìn hệ thống lý thuyết Việc thể phần trình bày Web Service Broker Tuy dừng lại chưa thực triển khai toàn hệ quản trị này, em mong tiểu luận giúp em có nhìn đắn cho hướng tới Em xin gửi lời cám ơn chân thành tới GS TS Nguyễn Thúc Hải truyền đạt cho chúng em kiến thức cần có để thực tiểu luận TÌM HIỂU VỀ HỆ PHÂN TÁN DỰA TRÊN NỀN TẢNG WEB 1.1 Kiến trúc chung 1.1.1 Mô hình truyền thống Lúc khởi đầu hệ phân tán với mô thức web không khác nhiều so với hệ phân tán khác Tuy nhiên trình phát triển, tài liệu chia sẻ web từ tài liệu tĩnh, bị động chuyển thành tài liệu động, có tính tương tác cao Thêm nữa, hệ thống web không phục vụ việc chia sẻ tài liệu, thông tin, hệ thống web phát triển theo hướng cung cấp dịch vụ khác 1.1.1.1 Mô hình chung Hệ phân tán dựa mô thức web tổ chức theo mô hình client-server Trong có thành phần là: • Client với phần mềm trình duyệt (Browser) • Web Server • Cơ sở liệu chứa tài liệu yêu cầu, thường nằm Web Server Dưới mô hình tổ chức hệ truyền thống Hình 1.1: Mô hình tổ chức hệ phân tán web truyền thống (Figure 12-1 Distributed Systems: Principles and Paradigms) Ở ta trình bày số khái niệm cần thiết: • Một tài liệu xác định thông qua thông tin nơi lưu trữ bao gồm định danh server, tên tài liệu, vị trí hệ thống file • Thông tin tài liệu thể dạng URL URL không chứa thông tin vị trí tài • • liệu mà chứa thông tin giao thức tầng ứng dụng sử dụng để truyền tài liệu mạng Phần mềm trình duyệt phần mềm Client sử dụng để tương tác với Web Server Tương tác Client Web Server dựa vào giao thức chuẩn HTTP (HyperText Transfer Protocol) Cơ chế hoạt động hệ thống sau: • Client thực yêu cầu tài liệu sở liệu thông qua trình duyệt (mà cụ • • • thể thông qua URL), gửi tin HTTP yêu cầu tới Web Server Ở phía Server tồn tiến trình có khả truy cập vào sở liệu Tiến trình thực truy cập lấy tài liệu từ sở liệu Server sau xử lý trả lại Client thông tin, thông tin báo lỗi không tìm tài liệu, nội dung tài liệu, v v 1.1.1.2 Một số ngôn ngữ web Tài liệu - thông tin chia sẻ mạng phân chia tương đối làm hai phần: • Một phần sử dụng template cho phần lại, mô tả đặc điểm vị • trí, cách bố trí, nền, font, v v cho phần liệu lại Các ngôn ngữ liệu web sử dụng cho phần Phần lại thông tin thực tế lưu trữ mà người dùng yêu cầu Trong ví dụ đơn giản, tải liệu lấy có dạng sau: Hello, World! Với liệu này, phần thông tin thực tế người dùng cần có dòng chữ “Hello, World!” phần lại đóng vai trò giúp trình duyệt thể thông tin cho người dùng Một số ngôn ngữ web thường sử dụng như: HTML, XML Các ngôn ngữ không cung cấp thông tin việc thể liệu cho người dùng, mà cung cấp thông tin liệu khác giúp biết loại file, loại định dạng, v v thành phần tạo nên liệu Các ngôn ngữ có khả thông qua việc sử dụng chế MIME để phân biệt nội dung liệu Bảng cho ta thấy kiểu kiểu định nghĩa MIME Bảng 1.1: Các kiểu liệu kiểu liệu định nghĩa với MIME (Figure 12-2 Distributed Systems: Principles and Paradigms) 1.1.1.3 Mô hình truyền thống với kiến trúc đa tầng Ngôn ngữ Web HTML, XML phối hợp với ngôn ngữ script thực cho thấy phương tiện mạng mẽ để thể liệu Web Tuy nhiên, chưa sâu vào chế hoạt động Cho tới tại, Web không dừng lại kiến trúc hai tầng đơn giản client-server, mà qua thời gian phát triển với kiến trúc đa tầng, với nhiều thành phần nhằm hỗ trợ tốt kiểu liệu khác mà phần trước đề cập qua bảng 1.1 phần Một cải tiến so với kiến trúc việc sử dụng CGI (Common Gateway Interface) nhằm cung cấp tương tác cho người dùng Thông qua Interface này, Web server chạy chương trình với liệu đầu vào người dùng cung cấp Cơ chế trình thể hình 1.2 Hình 1.2: Chương trình CGI phía Server (Figure 12-3 Distributed Systems: Principles and Paradigms) Qua hình 1.2 ta thấy chế hoạt động sử dụng CGI sau: • Người dùng nhập vào form chứa tham số cần thiết Thông tin chương trình • • • thông số Client gửi tới Server Khi Server nhận tin yêu cầu từ phía Client, chạy chương trình đề cập tin với thông số kèm Sau đó, chương trình tương tác với cở sở liệu, xử lý tạo văn HTML Văn trả lại cho Server Server thực trả lại văn cho phía Client Qua đó, ta thấy Server hoàn toàn ủy quyền việc xử lý yêu cầu cho phía chương trình CGI Đây kiến trúc tầng phía Server Ngày nay, Server không dừng lại kiến trúc tầng Một ví dụ cho kiến trúc lấy từ việc người dùng vào trang Web bán hàng: • Các ứng dụng Java Servlet quản lý thông tin mòn hàng người dùng mua, thực • • • • gợi ý, lưu trữ hàng ưa thích, v v Khi người dùng thực việc tìm kiếm theo từ khóa đó, phía Web Server phải chuyển yêu cầu tới chương trình Chương trình thực gửi truy vấn tới sở liệu Phía sở liệu trả lại kết truy vấn Chương trình thực tạo trang web danh sách tìm kiếm trả lại Web Server Web Server trả lại thông tin cho người dùng Như thấy, kiến trúc tầng hình thành, bao gồm Web Server, Application Server (Server chạy ứng dụng), Cơ sở liệu Kiến trúc tầng hình thành đặt vấn đề: giảm hiệu hệ thống Việc phân chia rõ ràng tầng điều cần thiết, Server ứng dụng Cơ sở liệu phải chịu tải lớn Vấn đề bàn đến phần 1.6 tiểu luận 1.1.2 Mô hình dịch vụ web Hệ phân tán với mô thức web phát triển tới mức cung cấp dịch vụ cho ứng dụng từ xa Các phần mềm trình duyệt phía Client không giao diện hiển thị nội dung cho người sử dụng 1.1.2.1 Mô hình chung Dịch vụ Web giống dịch vụ thông thường dịch vụ định danh, cung cấp địa chỉ, mail, v v Chúng cung cấp qua Internet tuân theo số chuẩn định Hình cho ta thấy mô hình chế hoạt động dịch vụ Web Hình 1.3: Mô hình dịch vụ Web (Figure 12-4 Distributed Systems: Principles and Paradigms) Cơ chế chung mô hình việc ứng dụng phía Client gọi dịch vụ từ ứng dụng phía Server Quá trình thực dựa chuẩn hóa Về mặt đó, chế gần giống với chế gọi thủ tục từ xa (RPC) Ở ta trình bày số khái niệm cần thiết để hiểu rõ hình 1.3: • UDDI directory chứa mô tả dịch vụ cần thiết Nó sở liệu giúp cho • • Client truy cập tìm kiếm dịch vụ phù hợp Các dịch vụ nằm UDDI mô tả thông qua ngôn ngữ WSDL Ngôn ngữ tương tự ngôn ngữ IDL RPC Ngôn ngữ WSDL mô tả thủ tục, kiểu liệu, nơi chứa dịch vụ, v v Client Server trao đổi thông qua giao thức SOAP, giao thức chuẩn cho tiến trình liên lạc với Giao thức đề cập đến chi tiết phần sau tiểu luận Tựu chung lại, ta có chế làm việc mô hình dịch vụ Web sau: • Các dịch vụ máy chủ công bố phía UDDI Cơ sở liệu lưu lại mô tả dịch • • • • vụ ngôn ngữ WSDL Khi Client cần đến dịch vụ, tìm kiếm dịch vụ UDDI UDDI trả kết cho Client Client biết dịch vụ qua mô tả trả qua ngôn ngữ WSDL Client thực kết nối đến máy chủ qua giao thức SOAP gọi dịch vụ Từ đây, trình trao đổi diễn bình thường thông qua giao thức SOAP 1.1.2.2 Thành phần điều phối dịch vụ Web Như trình bày, mô hình dịch vụ Web hình dung tương đối đơn giản việc dịch vụ triển khai dạng ứng dụng triệu gọi thông qua chuẩn Tuy nhiên, ứng dụng lại phức tạp ứng dụng phân tán hệ thống mạng Ở trường hợp này, người ta sử dụng proxy nội mạng nhằm tương tác với thành phần ứng dụng phân tán Proxy đảm bảo cho phía Client suốt với phân tán ứng dụng Trong mô hình, thấy ứng dụng cung cấp thông qua bước triệu gọi (Look up a Service - Hình 1.3) Tuy nhiên, thực tế mô hình triệu gọi phức tạp nhiều Đơn cử người dùng thực mua sách từ trang Web thương mại điện tử Một việc tưởng chừng đơn giản bao gồm việc chọn lựa, việc toán, việc lấy thông tin giao hàng Dịch vụ giao dịch chia làm nhiều bước có thứ tự Hay nói cách khác, dịch vụ cung cấp bao gồm dịch vụ khác Sự phức tạp tăng lên người ta phải kết hợp trang Web dịch vụ nhà cung cấp dịch vụ khác Vẫn lấy mô hình trang Web thương mại làm ví dụ, trang Web bao gồm dịch vụ khác sau: • Lựa chọn mặt hàng từ nhà cung cấp mặt hàng • Tiến hành toán thông qua hệ thống banking ngân hàng • Nhập thông tin giao hàng công ty chuyển phát nhanh cung cấp Như vậy, phía người dùng dịch vụ cung cấp trang Web, thực tế phía cung cấp dịch vụ lại kết hợp nhiều nhà cung cấp dịch vụ khác Như vậy, vấn đề (Ứng dụng phân tán; Sự phức tạp giao dịch; Sự tham gia nhiều nhà cung cấp dịch vụ) đặt nhu cầu phải điều phối dịch vụ này, cho chúng kết hợp với nhau, phải tạo suốt hệ thống với người dùng Việc điều phối đặt thực giao thức điều phối Những giao thức đưa luật bước cần thực dịch vụ, đồng thời buộc dịch vụ phía phải tuân thủ theo Để đạt điều đó, người ta định nghĩa dịch vụ riêng dùng để cung cấp giao thức điều phối Các tiến trình thực đăng ký với giao thức điều phối tham gia 1.2 Các tiến trình hệ phân tán web Tại phần này, nghiên cứu tiến trình hệ phân tán theo mô thức Web 1.2.1 Tiến trình phía Client Ở ta xét đến hai tiến trình thường gặp môi trường Web phía Client, tiến trình trình duyệt Web Web proxy 1.2.1.1 Tiến trình trình duyệt Web Trình duyệt Web phía Client giúp người dùng xem nội dung trang Web, cung cấp cho người dùng liên kết mà người dùng dễ dàng chọn Hình 1.4: Các thành phần logic trình duyệt Web (Figure 12-5 Distributed Systems: Principles and Paradigms) Như hình 1.4, thấy thành phần logic trình duyệt Web bao gồm thành phần chính: • Rendering Engine: Engine chịu trách nhiệm hiển thị văn HTML hay XML lên • • hình Nó chứa thành phần có khả năng: Tạo liên kết, giao tiếp mạng Xử lý ngôn ngữ HTML, XML Phiên dịch script văn Browser Engine: Engine trung tâm trình duyệt, cung cấp cho người dùng chế xem văn bản, chia thành phần, lựa chọn phần văn bản, vào liên kết, v v User Interface: Engine cung cấp giao diện cho người dùng Ngoài ra, trình duyệt không phụ thuộc tảng chạy, User Interface với Browser Engine chạy thư viện đồ họa chuẩn thể hình (Display back end) 1.2.1.2 Tiến trình Web Proxy Một tiến trình khác kể đến phía Client tiến trình chạy Web proxy Một chức thể hình Hình 1.5: Trường hợp sử dụng Web proxy có bất đồng giao thức (Figure 12-6 Distributed Systems: Principles and Paradigms) Web proxy lúc tạo có mục đích nhằm cho phép trình duyệt xử lý giao thức mức ứng dụng khác với HTTP Tuy nhiên thời điểm tại, trình duyệt có khả xử lý nhiều giao thức khác không cần tới chức Web proxy sau sử dụng cho nhiều mục đích khác caching, nén, ghi log, v v Những tính đề cập đến phần 1.6 - Cơ chế quán nhân 1.2.2 Tiến trình máy chủ Web Chúng ta nghiên cứu tiến trình phía máy chủ thông qua Web server thông dụng tính tới thời điểm (Chiếm 70% lượng sử dụng giới), Apache Hai ưu điểm bật Apache kể đến là: • Chạy độc lập với tảng Server: Apache thực điều cách sử dụng • tảng chạy tạo nhằm chạy hệ điều hành khác Môi trường gọi APR (Apache Portable Runtime) Đây thư viện cung cấp giao diện cho việc xử lý file, kết nối mạng, xử lý luồng, v v Khi chạy, thay lời gọi tới thư viện tảng Apache cài trên, tiến trình gọi tới thư viện APR Dễ mở rộng tính năng: Apache có khả mở rộng thêm nhiều tính thông qua thư viện mình, mà đảm bảo cho phần mở rộng phát triển độc lập Đơn cử mô hình nhân thích nghi (Adaptive Replicate) Globule, mạng phân phối liệu trường đại học Vrije Amsterdam Globule mở rộng lên từ Apache giữ tính độc lập so với phần mở rộng khác phát triển 10 (Figure 12-16 Distributed Systems: Principles and Paradigms) Data URI loại URI chưa liệu nhúng vào URI sử dụng số trường hợp khác việc định danh tài liệu Ví dụ sử dụng cho phiên telnet, dựng kết nối modem với máy, v v Tuy nhiên, cách sử dụng không thường gặp 19 1.5 Cơ chế đồng Vấn đề đồng hệ thống Web truyền thống vấn đề đáng quan tâm hai lý sau: • Đầu tiên, với chế tổ chức client server, giao thức sử dụng, việc đồng không cần • thiết Thứ hai, Web hệ thống mà có thay đổi liệu nhiều người dùng thực thể, có xung đột Tuy nhiên, với hệ thống Web tại, mà tồn việc cung cấp hỗ trợ cho nhiều thành phần dịch vụ hệ thống, người ta không thực đồng hóa Quá trình đồng giải thông qua giao thức riêng, WebDAV (Web Distributed Authoring and Versioning) WebDAV cung cấp chế khóa tài liệu có truy cập, chế tạo phiên bản, xóa, sao, v v Nhằm đồng hóa, WebDAV sử dụng hai chế khóa: • Cơ chế khóa Client thực chỉnh sửa tài liệu, lúc Client khác bị khóa • chức chỉnh sửa (quyền write) Cơ chế khóa cho nhóm người sử dụng Cơ chế cho phép nhóm người dùng chỉnh sửa phần khác tài liệu Tuy nhiên người dùng phải tự quan tâm tới vấn đề xung đột chỉnh sửa Khi Client cần chỉnh sửa tài liệu, Client phải truy cập tới Server yêu cầu quyền lấy khóa (Key token) Sau liệu chỉnh sửa, Client gửi Server qua tin HTTP Post, với chứng minh quyền sửa liệu (Key token) Ở có vấn đề đặt Client không trả lại quyền chỉnh sửa bị cố Lúc này, Server cần có chế để lấy lại khóa Tuy nhiên với WebDAV, chế không định nghĩa mà để mở cho mục đích triển khai khác 20 1.6 Cơ chế quán nhân Một vấn đề cho hệ thống phân tán với mô thức Web việc đảm bảo hiệu tính sẵn sàng Với hệ thống phục vụ nhiều người dùng, cung cấp dịch vụ, chí dịch vụ nhạy cảm dịch vụ ngân hàng, v v , hệ thống phải đảm bảo không chậm trễ, đồng thời phải có tính chịu lỗi qua việc dự phòng Đối với việc đảm bảo hiệu hệ thống, hệ thống cung cấp qua chế caching, tức lưu lại thông tin yêu cầu nhiều, nhằm trả lại Client mà không cần phải thực tiến trình lấy liệu, v v Đồng thời, việc chạy nhiều máy chủ giống (nhân bản) với chức sở liệu (nhất quán) giúp cho hiệu phục vụ người dùng hệ thống tăng lên Việc đảm bảo tính sẵn sàng hệ thống thực các máy chủ với chế quán nhân Khi có cố xảy ra, máy chủ khác có khả thay thế, đón nhận yêu cầu từ Client cho thiết bị gặp cố Như với việc chạy nhiều máy chủ, tính sẵn sàng hệ thống tăng lên 1.6.1 Cơ chế Proxy Caching Việc Caching thông tin thực phía Client hệ thống Tại phía Client, trình duyệt có chế caching thông thường, lưu lại số liệu lấy từ trước Ngoài ra, phía Client có Web Proxy phục vụ việc Caching Web Proxy đóng vai trò trung gian Web Server Web Client Nó nhận yêu cầu từ phía Client, gửi tới Server, nhận trả lời từ Web Server, gửi Client, đồng thời lưu lại trả lời Khi Client khác yêu cầu thông tin, Web Server kiểm tra liệu lưu trả lại cho Client mà không cần phải chuyển tiếp yêu cầu tới phía Web Server Hình 1.16: Mô hình dịch vụ Web (Figure 12-17 Distributed Systems: Principles and Paradigms) 21 Ngoài ra, thực tế người ta thực Caching liệu theo vùng, dẫn đến cấu trúc Caching liệu từ vùng nhỏ công ty đến vùng lớn thành phố, lên tới vùng địa lý khác Việc dẫn tới, Proxy không chứa liệu yêu cầu Cache, trước tiên không chuyển tiếp yêu cầu tới Web Server ngay, mà chuyển yêu cầu tới Proxy xung quanh Có số giao thức sử dụng để đảm bảo tính quán hệ thống Cache Nhằm đảm bảo tài liệu trả từ Cache có tính quán, Web Proxy trước trả liệu cho người dùng thực gửi tin HTTP get, hỏi Web Server liệu tài liệu có bị thay đổi so với lúc Cache không Nếu có, Web Server phải gửi lại tài liệu thay đổi, không Web Proxy việc gửi trả lại liệu Cache 1.6.2 Nhân hệ thống Web Hosting Việc phát triển nhanh chóng hệ phân tán mô thức Web phát triển nhanh chóng Việc đảm bảo hoạt động hệ thống không nằm trì nội dung Web mà nằm việc cung cấp dịch vụ liên tục không ngừng Điều dẫn đến khái niệm mạng cung cấp nội dung CDN (Content Delivery Networks) Mục tiêu mạng hướng tới việc cung cấp kiến trúc phân phối nhân nội dung Web Internet Cơ chế tổ chức mạng CDN thể hình đây: Hình 1.17: Cơ chế tổ chức thông qua hệ thống feed-back (Figure 12-18 Distributed Systems: Principles and Paradigms) Ta thấy hình chế tổ chức với vòng lặp feed-back Khi tổ chức mạng CDN vậy, có ba điểm bật thể phần tổ chức hình vẽ: 22 • Ước lượng đưa Metric: Metric độ đo trễ, thông lượng, tính thống nhất, • • tính kinh tế hệ thống Thông qua thông số ước lượng mà chỉnh sửa mạng cho phù hợp Ví dụ thông tin độ trễ cho ta biết đặc điểm đường truyền, khả xử lý thiết bị đường truyền; thông tin thông lượng cho ta biết liệu đường truyền có bị thiếu băng thông, hay liệu có cần đưa giải pháp tối ưu băng thông cho đường truyền, v v Lựa chọn đưa điều chỉnh cho hệ thống: Theo cách thông thường nhất, người ta liên tục cập nhật Metric điều chỉnh hệ thống cách khoảng thời gian Cách thường gặp thực tế Tuy nhiên có số thay đổi hệ thống lại cần xử lý Ví dụ tăng vọt yêu cầu tài nguyên Việc lựa chọn thời điểm điều chỉnh hệ thống dựa vào thuật toán theo dõi, nhằm phát thay đổi mang tính chất cần xử lý ngay, qua người ta lựa chọn thời điểm thay đổi hợp lý Điều chỉnh cho hợp lý: Việc điều chỉnh hệ thống Web Hosting cho hợp lý bao gồm ba hướng: Thay đổi vị trí đặt Thay đổi luật tính quán Thay đổi cách thức thời điểm chuyển tiếp gói tin yêu cầu từ Client 1.6.3 Nhân ứng dụng Web Trong tiểu luận thời điểm này, ta nói đến chế sử dụng Caching Nhân cho nội dung Web tĩnh Tuy nhiên ngày trang Web với nội dung động ngày nhiều dịch vụ triệu gọi nhiều Vậy, ta phải xem xét chế nhân quán hệ thống Web động Hình 1.18: Caching nhân với ứng dụng Web (Figure 12-21 Distributed Systems: Principles and Paradigms) 23 Nhìn vào sơ đồ ta thấy có hai chế nhân cho sở liệu phía Edge Server phía Origin Server, nhân toàn hay nhân phần Nếu cường độ thay đổi liệu lớn việc nhân toàn ảnh hưởng đến hệ thống mà lại hiệu cần thiết Nếu nhân phận điều khó khăn đặt việc lựa chọn liệu ưu tiên nhân Ngoài ra, việc nhân có khó khăn gặp truy vấn phức tạp Chính việc tạo mẫu truy vấn (query template) giúp cho việc caching hiệu Ở phía Edge Server ta nhận thấy Content-aware Cache, nghĩa việc Caching phục vụ cho số ứng dụng hay liệu cụ thể Các yêu cầu lại cần chuyển tới phía Origin Server 1.7 Khả chịu lỗi Khả chịu lỗi hệ phân tán dựa mô thức Web chủ yếu dựa vào chế Caching Nhân Với giao thức HTTP chế trợ giúp chống lỗi hay phục hồi Tuy nhiên việc hoạt động TCP cho việc truyền thông khả chống lỗi phục hồi định Với Web Server, người ta thực dự phòng qua chế nhân bản, đồng thời cung cấp địa Web Server qua DNS giúp thực việc phân tải hệ thống Đối với dịch vụ Web việc chống lỗi trở nên cần thiết Với dịch vụ nhạy cảm, ví dụ dịch vụ chuyển tiền, khả chịu lỗi đóng vai trò quan trọng Nó không liên quan tới đường truyền mà liên quan tới kiến trúc đa lớp Client Server Tuy nhiên, việc dự phòng thành phần hệ thống, giao thức có khả chịu lỗi điều đáng quan tâm Những vấn đề sau cần quan tâm với giao thức cung cấp khả chịu lỗi hệ phân tán Web: • Giao thức chống lỗi nhìn ứng dụng Web Nó phải ẩn • • người dùng Giao thức chống lỗi thân tiến trình thu thập xử lý thông tin tiến trình khác Sau có lỗi phải thực xử lý phù hợp cho tiến trình gặp lỗi Giao thức chống lỗi phải đảm bảo quán trả lời thành phần nhân bản, để đảm bảo tính quán thành phần Giao thức chống lỗi phải coi dịch vụ cung cấp thực thể, nghĩa thành phần thu thập thông tin nhận đủ tất thông báo từ thành phần nhân bản, đưa xử lý phù hợp 24 1.8 Tính an toàn, bảo mật hệ thống Với đặc tính mở hệ thống Internet, việc xây dựng kiến trúc bảo mật Client Server điều quan trọng Hầu hết giải pháp với hệ thống Web việc xây dựng tuyến bảo mật Client Server, hay nói cách khác bảo mật thông tin truyền qua mạng thông qua mã hóa Thông thường thực tế người ta sử dụng giao thức mã hóa TLS hay SSL để bảo mật Hình cho ta thấy vị trí giao thức TLS mô hình OSI: Hình 1.19: Vị trí TLS mô hình OSI (Figure 12-22 Distributed Systems: Principles and Paradigms) Chúng ta xem xét việc xây dựng tuyến bảo mật qua việc thiết lập phiên truyền liệu TLS qua hình vẽ sau: Hình 1.20: TLS xác thực (Figure 12-23 Distributed Systems: Principles and Paradigms) Nhưu vậy, ta thấy việc thiết lập kết nối bảo mật bao gồm giai đoạn: 25 • Giai đoạn 1: Client thông báo tới Server thuật toán mã hóa chuẩn nén mà Client • hỗ trợ Server lựa chọn thuật toán chuẩn nén cho kết nối gửi trả lại thông tin cho phía Client Giai đoạn 2: Giai đoạn giai đoạn xác thực Client Server Server xác thực (chứng minh Server) thông qua chứng thư Nếu Server yêu cầu Client phải xác thực Client phải xác thực với Server Sau trình xác thực, Server Client thực thảo thuận số tham số dành cho việc mã hóa (Session key) Hai bên sử dụng tham số với hệ thống khóa công khai khóa riêng để mã hóa giải mã liệu 26 TÌM HIỂU WEB SERVICE BROKER VÀ THỬ NGHIỆM 2.1 Mô hình chế hoạt động chung Như phần đề cập dịch vụ Web, nhắc lại mô hình hoạt động dịch vụ Web: Hình 2.1: Mô hình dịch vụ Web (Figure 12-4 Distributed Systems: Principles and Paradigms) Ta có chế làm việc mô hình dịch vụ Web sau: • Các dịch vụ máy chủ công bố phía UDDI Cơ sở liệu lưu lại mô tả dịch • • • • vụ ngôn ngữ WSDL Khi Client cần đến dịch vụ, tìm kiếm dịch vụ UDDI UDDI trả kết cho Client Client biết dịch vụ qua mô tả trả qua ngôn ngữ WSDL Client thực kết nối đến máy chủ qua giao thức SOAP gọi dịch vụ Từ đây, trình trao đổi diễn bình thường thông qua giao thức SOAP Trên thực tế, mô hình Web Service Broker Dịch vụ Web từ đầu phát triển vậy, chưa phát triển chuyển đổi hết sang mô hình Nói cách khác, Web Service từ đơn giản, mô hình chưa phân tán, đến phức tạp, có phân tán, đến mô hình với máy chủ quản lý dịch vụ từ nhiều hệ thống khác 27 Web Service lúc đầu việc dịch vụ hay hệ thống sử dụng dịch vụ hệ thống khác Hình 2.2: Mô hình dịch vụ Web đơn giản chưa phân tán Sau này, yêu cầu đặt trở nên phức tạp Ví dụ lấy trường hợp trang Web bán hàng Trang Web phải cung cấp dịch vụ như: Truy vấn thông tin hàng hóa từ nhiều nhà cung cấp; Quản lý thông tin người dùng; Quản lý hệ thống toán từ nhiều ngân hàng khác nhau; Quản lý trạng thái gửi hàng (Khi hàng cần chuyển xa có yêu cầu tracking từ phía người dùng); v v Như vậy, trang Web cần hệ thống có khả tích hợp nhiều dịch vụ từ nhiều nguồn khác điều phải suốt với người sử dụng Để đạt điều đó, người ta sử dụng SOAP để thực chế gọi dịch vụ với SOAP Client SOAP Server Mô hình lúc phát triển sau: Hình 2.3: Mô hình dịch vụ Web phân tán Đây coi mô hình Web Service Broker Tuy nhiên, với lượng lớn nhu cầu dịch vụ, yêu cầu quản lý mô hình tăng Từ đó, người ta phải tạo mô hình với Server có khả cung cấp quản lý thông tin dịch vụ Đó mô hình nhắc tới đầu phần 28 Hình 2.4: Mô hình Web Service Broker sử dụng UDDI server 2.2 Cài đặt thử nghiệm Do thời gian có hạn nên tiểu luận thực cài đặt Web Service Broker chưa sử dụng đến UDDI Server ngôn ngữ mô tả dịch vụ WSDL, túy sử dụng SOAP PHP Hình 2.5: Mô hình cài đặt thử nghiệm Cơ sở liệu thử nghiệm bao gồm thông tin sau: • Cơ sở liệu BACH KHOA 29 Hình 2.6: Cơ sở liệu BACH KHOA • Cơ sở liệu KINH TE Hình 2.7: Cơ sở liệu KINH TE • Cơ sở liệu NGOAI THUONG Hình 2.8: Cơ sở liệu NGOAI THUONG Nội dung thử nghiệm: Tạo trang Web tìm kiếm có khả sử dụng dịch vụ tìm kiếm từ nguồn khác dịch vụ đến từ BACH KHOA, NGOAI THUONG KINH TE Hình 2.9: Trang Web thử nghiệm Kết thử nghiệm: 30 Hình 2.10: Kết thử nghiệm 31 KẾT LUẬN Trong trình làm tiểu luận, em tiếp thu nhiều kiến thức Hệ phân tán nói chung đề liên quan đến mô thức Web Em tìm hiểu, vận dụng lý thuyết để xây dựng hệ thống dịch vụ Web Tuy nhiên, hướng làm đồ án chặng đường dài Hệ thống phát triển lên tiếp phải sử dụng UDDI Server, ngôn ngữ mô tả WSDL Đồng thời nhiều vấn đề liên quan đồng bộ, bảo mật, v v chưa đề cập đến Những vấn đề cần phát triển hoàn thiện Do thời gian có hạn kiến thức hạn chế, nên em tránh khỏi sai sót Trong thời gian tới em lựa chọn Web Service hướng đồ án tốt nghiệp Em mong muốn nhận lời khuyên từ thầy để hoàn thiện hệ phân tán Em xin chân thành cảm ơn ! 32 MỤC LỤC TÀI LIỆU THAM KHẢO [1] Andrew S.Tanenbaum, Maarten Van Steen, Distributed Systems - Principles and Paradigms, 2nd edition, Pearson Education, 2007 [2] Tyler Anderson, Build a Web service with PHP, http://www.ibm.com/developerworks/ opensource/tutorials/os-php-webservice/index.html [3] Janet Valade, Tricia Ballad, Bill Ballad, PHP & MySQL Web Development, Wiley Publishing, 2008 33 [...]... này, và sau đó tất cả các kết nối được 12 Để đạt được hiệu quả phân tải tốt người ta cũng dùng rất nhiều cách khác như chia VLAN và ứng dụng các giao thức Gateway(GLBP, VRRP, v v ) , hoặc sử dụng cơ chế DNS Đã đạt được mục tiêu xem xét các tiến trình tại phía các máy chủ Clustering, chúng ta sẽ không đi quá sâu vào những phương pháp này 13 1.3 Cơ chế truyền thông Đối với hệ phân tán trên mô thức Web, các. .. Web, các giao thức được sử dụng cũng khá thông dụng Giao thức truyền thống HTTP được sử dụng để trao đổi các bản tin Còn về phía dịch vụ Web thì có các giao thức như SOAP, CORBA Ở đây, chúng ta nghiên cứu cơ chế truyền thông của hệ phân tán mô thức Web với hai giao thức là HTTP và SOAP 1.3.1 Giao thức HTTP Các giao tiếp giữa Client và Server đều dựa trên giao thức HTTP, HTTP là một giao thức clientserver... chuyển đổi hết sang mô hình này Nói cách khác, Web Service đi từ đơn giản, mô hình chưa phân tán, đến phức tạp, khi đã có sự phân tán, và đến mô hình hiện tại với một máy chủ quản lý các dịch vụ từ nhiều hệ thống khác 27 Web Service lúc đầu chỉ là việc một dịch vụ hay một hệ thống sử dụng dịch vụ của một hệ thống khác Hình 2.2: Mô hình dịch vụ Web đơn giản chưa phân tán Sau này, yêu cầu đặt ra trở nên... Client 1.6.3 Nhân bản các ứng dụng Web Trong tiểu luận cho tới thời điểm này, ta mới chỉ nói đến cơ chế sử dụng Caching và Nhân bản cho các nội dung Web tĩnh Tuy nhiên ngày nay các trang Web với nội dung động ngày càng nhiều và các dịch vụ cũng được triệu gọi nhiều Vậy, ta phải xem xét cơ chế nhân bản và nhất quán đối với hệ thống Web động Hình 1.18: Caching và nhân bản với các ứng dụng Web (Figure 12-21... 2.10: Kết quả thử nghiệm 31 KẾT LUẬN Trong quá trình làm tiểu luận, em đã tiếp thu được nhiều kiến thức về Hệ phân tán nói chung và những vẫn đề liên quan đến mô thức Web Em đã tìm hiểu, và vận dụng được lý thuyết để xây dựng một hệ thống dịch vụ Web hết sức cơ bản Tuy nhiên, đối với một hướng làm đồ án thì chặng đường còn rất dài Hệ thống phát triển lên tiếp phải sử dụng được UDDI Server, và ngôn ngữ mô. .. lấy lại khóa Tuy nhiên với WebDAV, cơ chế này không được định nghĩa mà được để mở cho các mục đích triển khai khác nhau 20 1.6 Cơ chế nhất quán và nhân bản Một trong các vấn đề cho hệ thống phân tán với mô thức Web là việc đảm bảo hiệu năng và tính sẵn sàng Với một hệ thống phục vụ nhiều người dùng, cung cấp dịch vụ, thậm chí là các dịch vụ nhạy cảm như dịch vụ ngân hàng, v v , hệ thống phải đảm bảo... phải trong suốt với người sử dụng Để đạt được điều đó, người ta sử dụng SOAP để thực hiện các cơ chế gọi dịch vụ với SOAP Client và SOAP Server Mô hình lúc này phát triển như sau: Hình 2.3: Mô hình dịch vụ Web phân tán Đây đã được coi là một mô hình Web Service Broker Tuy nhiên, với lượng lớn nhu cầu về dịch vụ, yêu cầu quản lý mô hình cũng tăng Từ đó, người ta phải tạo ra một mô hình với Server có khả... vấn đề sau cần được quan tâm với một giao thức cung cấp khả năng chịu lỗi của một hệ phân tán Web: • Giao thức chống lỗi có thể được nhìn như một ứng dụng Web Nó phải được ẩn đối với • • người dùng Giao thức chống lỗi bản thân là tiến trình thu thập và xử lý thông tin của các tiến trình khác Sau khi có lỗi nó sẽ phải thực hiện các xử lý phù hợp cho tiến trình gặp lỗi Giao thức chống lỗi cũng phải đảm... Client và Server là điều quan trọng Hầu hết các giải pháp với hệ thống Web là việc xây dựng một tuyến bảo mật giữa Client và Server, hay nói cách khác là bảo mật các thông tin truyền qua mạng thông qua mã hóa Thông thường trong thực tế người ta sử dụng giao thức mã hóa như TLS hay SSL để bảo mật Hình dưới cho ta thấy vị trí của giao thức TLS trên mô hình OSI: Hình 1.19: Vị trí của TLS trong mô hình... Principles and Paradigms) 16 1.3.2 Giao thức SOAP Trong khi HTTP là giao thức truyền thống sử dụng cho hệ phân tán trên mô thức Web, giao thức SOAP (Simple Object Acces) được sử dụng như một chuẩn truyền thông cho các dịch vụ Web Hầu hết việc truyền thông với SOAP được sử dụng trên nền giao thức HTTP Mục đích của SOAP là việc cung cấp khả năng giao tiếp cho các nhóm cung cấp dịch vụ khác nhau, không ... kiến thức cần có để thực tiểu luận TÌM HIỂU VỀ HỆ PHÂN TÁN DỰA TRÊN NỀN TẢNG WEB 1.1 Kiến trúc chung 1.1.1 Mô hình truyền thống Lúc khởi đầu hệ phân tán với mô thức web không khác nhiều so với hệ. .. giao thức điều phối Các tiến trình thực đăng ký với giao thức điều phối tham gia 1.2 Các tiến trình hệ phân tán web Tại phần này, nghiên cứu tiến trình hệ phân tán theo mô thức Web 1.2.1 Tiến trình... sâu vào phương pháp 13 1.3 Cơ chế truyền thông Đối với hệ phân tán mô thức Web, giao thức sử dụng thông dụng Giao thức truyền thống HTTP sử dụng để trao đổi tin Còn phía dịch vụ Web có giao thức