Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 219 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
219
Dung lượng
7,97 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN PT IT BÀI GIẢNG HỆ THỐNG PHÂN TÁN (Dùng cho đề cương INT1405) Người soạn biên: ThS Nguyễn Xuân Anh Đơn vị công tác: Bộ môn Hệ thống thông tin Khoa CNTT Hà nội 11/2017 Hệ thống phân tán MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÂN TÁN 1.1 Định nghĩa hệ thống phân tán 1.2 Phân loại hệ thống phân tán 10 1.2.1.1 1.2.1.2 Hệ thống tính tốn cụm 11 Hệ thống điện toán lưới 11 1.2.2 1.2.3 Hệ thống thông tin phân tán 13 Hệ thống di động 13 Mục tiêu hệ thống phân tán 14 1.3.1 1.3.2 Đảm bảo khả sẵn sàng tài nguyên 15 Trong suốt người sử dụng .15 1.3.2.1 1.3.2.2 Phân loại tính suốt 15 Mức độ suốt 17 1.3.3 1.3.4 Tính mở hệ thống 17 Qui mô hệ thống 18 1.3.4.1 1.3.4.2 Các vấn đề liên quan đến qui mô hệ thống 19 Các kỹ thuật xử lý qui mô hệ thống 20 1.3.5 Những điểm cần lưu ý 22 IT 1.4 Các hệ thống tính toán phân tán 10 Kiến trúc hệ thống phân tán 22 1.4.1 Phân loại kiến trúc .23 1.4.1.1 1.4.1.2 1.4.1.3 1.4.1.4 Kiến trúc phân tầng 23 Kiến trúc dựa đối tượng 24 Kiến trúc dựa kiện 25 Kiến trúc liệu tập trung 25 1.4.2 1.4.2.1 1.4.2.2 1.4.3 PT 1.3 1.2.1 Kiến trúc hệ thống .26 Kiến trúc tập trung 26 Kiến trúc không tập trung 31 Hệ thống nhiều vi xử lý 34 1.4.3.1 Hệ điều hành chạy vi xử lý 36 1.4.3.2 Hệ điều hành cho nhiều vi xử lý 36 CHƯƠNG 2: TRAO ĐỔI THÔNG TIN TRONG HỆ THỐNG PHÂN TÁN 38 2.1 Cơ sở truyền thông 38 2.2 2.1.1 Giao thức mạng 38 2.1.1.1 2.1.1.2 2.1.1.3 2.1.1.4 Các giao thức mức thấp 40 Các giao thức tầng vận tải 40 Các giao thức mức cao 41 Giao thức tầng trung gian 41 2.1.2 Phân loại truyền thông 42 Gọi thủ tục từ xa 43 2.2.1 2.2.2 2.2.3 2.2.4 Cơ chế hoạt động 43 Vấn đề truyền tham số 46 Các phương pháp gọi thủ tục từ xa 47 Đối tượng phân tán 48 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán 2.3 Truyền thông điệp 49 2.3.1 2.3.2 Các phương pháp truyền thông điệp 49 Các hàm truyền thông điệp 49 2.3.2.1 Các hàm loại tạm thời 50 2.3.2.2 Các hàm loại bền bỉ 50 2.4 Truyền thông hướng luồng 50 2.5 Truyền thơng theo nhóm 51 CHƯƠNG 3: TÌM KIẾM TRONG HỆ THỐNG PHÂN TÁN 52 3.1 Tên, định danh địa 52 3.2 Đặt tên giải pháp tìm kiếm 52 Đặt tên phi cấu trúc 52 Các giải pháp tìm kiếm đơn giản 53 Giải pháp tìm kiếm dựa nguồn gốc 53 Bảng băm phân tán 53 Giải pháp tìm kiếm phân cấp 57 3.2.2 Đặt tên có cấu trúc .57 3.2.2.1 3.2.2.2 3.2.2.3 3.2.2.4 Không gian tên 57 Phân giải tên 58 Cài đặt không gian tên 59 Hệ thống tên miền 59 3.2.3 Đặt tên dựa thuộc tính 64 IT 3.2.1 3.2.1.1 3.2.1.2 3.2.1.3 3.2.1.4 4.2.1 4.2.1.1 4.2.2 4.3 Định vị toàn cầu nút 69 Các giải thuật đồng đồng hồ vật lý 69 Giải thuật Cristiana 69 Giải thuật Berkeley 70 Giải thuật trung bình 70 4.2.3 Vấn đề đồng thời gian mạng không dây .71 Thời gian logic đồng hồ logic 71 Đồng hồ logic Lamport 71 Đồng hồ vector 72 Các trạng thái toàn cục 73 Các giải thuật loại trừ tương hỗ phân tán 74 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6 Hệ thống định vị toàn cầu 69 4.2.2.1 4.2.2.2 4.2.2.3 4.3.1 4.3.2 4.4 4.5 PT 3.2.3.1 Dịch vụ thư mục 65 3.2.3.2 Giao thức LDAP 65 3.2.3.3 Cài đặt không tập trung 66 CHƯƠNG 4: ĐỒNG BỘ VÀ CÁC GIẢI THUẬT PHÂN TÁN 67 4.1 Đồng hồ, kiện trạng thái tiến trình 67 4.2 Đồng đồng hồ vật lý 68 Giải thuật tập trung 75 Giải thuật không tập trung 75 Giải thuật phân tán .75 Giải thuật thẻ 76 So sánh giải thuật loại trừ 77 Các giải thuật bầu chọn 77 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán 4.6.1 Các giải thuật bầu chọn truyền thống 77 4.6.1.1 4.6.1.2 Giải thuật bọt 77 Giải thuật vòng 78 4.6.2 4.6.3 Bầu chọn môi trường không dây 79 Bầu chọn hệ thống qui mô lớn .80 CHƯƠNG 5: TIẾN TRÌNH TRONG CÁC HỆ THỐNG PHÂN TÁN 81 5.1 Các luồng 81 5.1.1 5.1.2 5.1.3 5.1.4 Khái niệm luồng 81 Luồng hệ thống độc lập .82 Cài đặt luồng 83 Luồng hệ thống phân tán .84 5.1.4.1 Đa luồng máy khách 84 5.1.4.2 Đa luồng máy chủ 84 5.2 Ảo hóa 86 5.2.1 5.2.2 Máy khách 88 5.3.1 5.3.2 5.4 Giao diện người sử dụng mạng 88 Phần mềm máy khách đảm bảo tính suốt phân bố .89 Máy chủ 90 5.4.1 5.4.2 IT 5.3 Vai trị ảo hóa hệ thống phân tán 86 Kiến trúc máy ảo .87 Các vấn đề thiết kế chung 90 Cụm máy chủ .91 5.5.1 5.5.2 5.5.3 PT 5.4.2.1 Các mô hình cài đặt 91 5.4.2.2 Quản lý cụm máy chủ 92 5.5 Di trú mã 92 Các giải pháp di trú mã 92 Di trú tài nguyên cục 94 Di trú hệ thống không đồng .94 CHƯƠNG 6: QUẢN TRỊ GIAO TÁC VÀ ĐIỀU KHIỂN TƯƠNG TRANH 95 6.1 Khái niệm giao tác 96 6.1.1 6.1.2 6.1.3 6.2 Giao tác phẳng .96 Các giao tác lồng .97 Giao tác phân tán 98 Các phương pháp điều khiển tương tranh 98 6.2.1 6.2.2 6.2.3 Điều khiển tương tranh bi quan 98 Điều khiển tương tranh lạc quan 98 Điều khiển tương tranh dựa nhãn thời gian 99 CHƯƠNG 7: PHỤC HỒI VÀ TÍNH CHỊU LỖI 100 7.1 Giới thiệu tính chịu lỗi 100 7.1.1 7.1.2 7.2 Khái niệm tính chịu lỗi 100 Phân loại lỗi .100 Các biện pháp đảm bảo tính chịu lỗi 101 7.2.1 7.2.2 Che giấu lỗi biện pháp dư thừa 101 Tiến trình bền bỉ 102 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán 7.2.2.1 7.2.2.2 7.2.2.3 7.2.2.4 Lựa chọn mơ hình cài đặt 102 Che giấu lỗi nhân 103 Đồng thuận hệ thống lỗi 103 Phát lỗi 106 7.2.3 Truyền thông khách/chủ tin cậy 106 7.2.3.1 7.2.3.2 Truyền thông điểm – điểm 107 Các tình lỗi thủ tục từ xa 107 7.2.4 Truyền thông nhóm tin cậy 110 7.2.4.1 Truyền thơng nhóm tin cậy 110 7.2.4.2 Truyền thơng nhóm tin cậy hệ thống lớn 110 7.3 Khẳng định phân tán 112 7.3.1 7.3.2 7.3.3 7.4 Giao thức khẳng định pha 112 Giao thức khẳng định hai pha 113 Giao thức khẳng định ba pha .113 Phục hồi 115 7.4.1 7.4.2 Các biện pháp phục hồi .115 Điểm kiểm tra 116 7.4.2.1 7.4.2.2 Điểm kiểm tra độc lập 117 Điểm kiểm tra phối hợp 118 7.4.3 Ghi nhật ký thông điệp 118 8.1.1 8.1.2 Các mô hình quán lấy liệu làm trung tâm 123 8.2.1 8.2.2 8.2.2.1 8.2.2.2 8.2.2.3 8.2.2.4 8.3 Nhất quán liên tục 124 Nhất quán theo thứ tự thao tác 126 Mơ hình qn nghiêm ngặt 126 Mơ hình quán 127 Mơ hình qn nhân 128 Mơ hình qn hàng đợi 129 8.2.3 Nhất quán theo nhóm thao tác .130 8.2.3.1 8.2.3.2 8.2.3.3 Mơ hình qn yếu 131 Mơ hình qn 131 Mơ hình qn vào 132 8.2.4 Tính quán gắn kết 133 Nhất quán lấy máy khách làm trung tâm 133 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.4 Lý nhân 121 Nhân kỹ thuật mở rộng qui mô .122 PT 8.2 IT CHƯƠNG 8: NHẤT QUÁN VÀ NHÂN BẢN 121 8.1 Giới thiệu chung 121 Mô hình quán sau 134 Mơ hình qn đọc .134 Mơ hình quán ghi 135 Nhất quán đọc kết ghi 136 Nhất quán ghi sau đọc 136 Quản lý 137 8.4.1 8.4.2 Vị trí máy chủ .137 Bản nội dung vị trí 137 8.4.2.1 Bản thường trực 137 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán 8.4.2.2 8.4.2.3 Bản khởi nguồn từ máy chủ 138 Bản khởi nguồn từ máy khách 138 8.4.3 Phân phát nội dung 139 8.4.3.1 Trạng thái thao tác 139 8.4.3.2 Các giao thức kéo đẩy 140 8.4.3.3 Phương pháp lan truyền cập nhật 141 8.5 Các giao thức quán 141 8.5.1 Nhất quán liên tục 141 8.5.1.1 8.5.1.2 8.5.1.3 Giới hạn sai số 142 Giới hạn chênh lệch trạng thái 143 Giới hạn độ lệch thứ tự 143 8.5.2 Các giao thức dựa 143 8.5.2.1 8.5.2.2 Giao thức ghi từ xa 144 Giao thức ghi cục 145 8.5.3 Các giao thức nhân cập nhật .145 8.5.3.1 8.5.3.2 Nhân tích cực 146 Giao thức dựa đại diện 146 8.5.4 8.5.5 Giao thức gắn kết nhớ cache 147 Cài đặt quán lấy máy khách làm trung tâm .148 IT 8.5.5.1 Cài đặt đơn 148 8.5.5.2 Nâng cao hiệu 149 CHƯƠNG 9: BẢO MẬT 151 9.1 Giới thiệu chung 151 Các hình thức xâm phạm hệ thống thơng tin .151 9.1.1.1 9.1.1.2 9.1.1.3 9.1.1.4 Tấn công thăm dò 153 Truy nhập trái phép 153 Tấn công từ chối dịch vụ 153 Phần mềm độc hại 153 9.1.2 9.1.2.1 9.1.2.2 9.1.2.3 9.1.2.4 9.1.3 PT 9.1.1 Các vấn đề thiết kế .154 Xác định trọng tâm bảo mật 154 Phân tầng chế bảo mật 155 Phân bố chế bảo mật 156 Tính đơn giản thiết kế bảo mật 157 Mã hóa .158 9.1.3.1 Giải thuật mã hóa DES 159 9.1.3.2 Giải thuật mã hóa RAS 160 9.1.3.3 Hàm băm MD5 161 9.2 Các kênh bảo mật 162 9.2.1 Xác thực .162 9.2.1.1 9.2.1.2 9.2.1.3 Xác thực dựa khóa bí mật 162 Xác thực sử dụng trung tâm phân phối khóa 164 Xác thực dựa mã hóa khóa cơng khai 166 9.2.2 Tồn vẹn bí mật thơng điệp 166 9.2.2.1 9.2.2.2 Chữ ký số 166 Khóa phiên 167 9.2.3 Truyền thơng nhóm bảo mật 168 9.2.3.1 9.2.3.2 Bí mật truyền thơng nhóm 168 Bảo mật máy chủ nhân 168 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán Xác thực Kerberos 169 9.2.4 9.3 9.4 Kiểm soát truy nhập 171 9.3.1 Nguyên lý kiểm soát truy nhập 171 9.3.1.1 9.3.1.2 Ma trận kiểm soát truy nhập 171 Miền bảo vệ 172 9.3.2 9.3.3 Tường lửa 172 Bảo mật mã di động 173 9.3.3.1 9.3.3.2 Bảo vệ Agent 173 Bảo vệ đích 174 9.3.4 Từ chối dịch vụ 177 Quản lý bảo mật 178 9.4.1 Quản lý khóa .178 9.4.1.1 9.4.1.2 9.4.1.3 Thiết lập khóa 179 Phân phát khóa 179 Thời gian sống chứng 181 9.4.2 9.4.3 Quản lý bảo mật nhóm .181 Quản lý ủy quyền .182 IT 9.4.3.1 Khả chứng thuộc tính 182 9.4.3.2 Ủy nhiệm 184 9.5 Một số vấn đề bảo mật khác 185 CHƯƠNG 10: CÔNG NGHỆ PHÁT TRIỂN HỆ THỐNG PHÂN TÁN 187 10.1 Gọi thủ tục từ xa 187 10.2 Mơ hình đối tượng thành phần phân tán 190 10.3 PT 10.2.1 Các đặc trưng DCOM 190 10.2.2 Kiến trúc DCOM 190 Kiến trúc môi trường yêu cầu đối tượng chung 190 10.3.1 Các thành phần CORBA 191 10.3.1.1 10.3.1.2 10.3.1.3 Môi trường ORB 192 Ứng dụng máy khách 194 Đối tượng thực 194 10.3.2 Corba yêu cầu phần mềm trung gian 208 10.3.2.1 10.3.2.2 10.3.2.3 Ngôn ngữ định nghĩa giao diện 208 Xác định địa đối tượng phục vụ 208 Gọi đối tượng phục vụ 208 10.3.3 Áp dụng CORBA xây dựng ứng dụng phân tán 208 10.3.3.1 Xây dựng ứng dụng máy chủ 208 10.3.3.2 Xây dựng ứng dụng máy khách 209 10.4 Gọi phương thức từ xa Java 209 10.4.1 10.4.2 10.4.3 10.4.4 Mơ hình khách/chủ 209 Các chế liên quan 209 Các lớp hỗ trợ 210 Xây dựng ứng dụng phân tán với RMI 210 10.4.4.1 10.4.4.2 10.4.4.3 10.4.4.4 Thiết kế cài đặt thành phần ứng dụng 210 Biên dịch tập tin nguồn tạo Stubs Skeleton 210 Tạo lớp truy xuất từ mạng 211 Thực thi ứng dụng 211 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán 10.5 Dịch vụ web 211 10.5.1 Các thành phần kiến trúc dịch vụ Web 211 10.5.2 Trao đổi thông tin dịch vụ Web 212 10.5.2.1 10.5.2.2 10.5.2.3 Giao thức SOAP 212 Ngôn ngữ WSDL 213 Thư mục UDDI 213 10.5.3 Quy trình xây dựng ứng dụng dịch vụ Web 213 10.6 Kiến trúc hướng dịch vụ 214 10.6.1 10.6.2 10.6.3 10.6.4 10.6.5 10.6.6 10.6.7 10.6.8 Giới thiệu kiến trúc hướng dịch vụ .214 Các dịch vụ 215 Mơ hình cặp lỏng .216 Chu kỳ sống dịch vụ 217 Phân loại dịch vụ .217 Trục dịch vụ doanh nghiệp 217 Các mơ hình dựa SOA 218 Các mẫu trao đổi thông điệp 218 PT IT TÀI LIỆU THAM KHẢO 219 Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÂN TÁN Các hệ thống máy tính phát triển mạnh mẽ, kể từ sau máy tính điện tử ANIAC đời vào năm 1046 năm 1980 máy tính có kích thước lớn đắt tiền, nhiều quan có vài máy tính thiếu phương tiện kết nối chúng, máy tính vận hành độc lập với Tuy nhiên năm 1980, tiến công nghệ làm thay đổi tình hình, vi xử lý phát triển, ban đầu ghi có bit sau chuyển dần sang 16, 32 64 bit, chúng có khả tính tốn máy tính lớn giá thành lại thấp nhiều Bước tiến thứ hai phát minh mạng máy tính tốc độ cao, mạng cục cho phép kết nối hàng trăm máy tính với băng thông lên tới 10 Gbit/s, mạng diện rộng cho phép kết nối hàng triệu máy tính với băng thơng từ 64 Kbit/s đến Gbit/s Với thành tựu kết nối lượng lớn máy tính với qua mạng tốc độ cao, thường mạng máy tính khác hẳn với hệ thống tập trung trước bao gồm máy tính số thiết bị ngoại vi 1.1 Định nghĩa hệ thống phân tán PT IT Hệ thống phân tán bao gồm máy tính thiết bị khác thiết bị cầm tay, điện thoại di động thông minh… kết nối với để thực nhiệm vụ tính tốn Hệ thống phân tán xuất phát từ nhu cầu sử dụng khả tính tốn tốt hiệu cách kết hợp khả tính tốn máy tính độc lập, điều trở thành thực dựa tiến công nghệ mạng Ba yếu tố định tốc độ tính tốn máy tính bao gồm tốc độ vi xử lý trung tâm CPU, nhớ RAM kênh truyền bo mạch chủ Đối với hệ thống phân tán, yêu cầu quan trọng nảy sinh vấn đề trao đổi thơng tin máy tính, thiếu yếu tố nhiệm vụ tính tốn mơi trường phân tán khơng thể thực Tốc độ truyền dẫn công nghệ mạng ngày tăng tạo điều kiện cho phát triển ứng dụng phân tán, máy tính trao đổi thơng tin chia sẻ liệu với mà không phụ thuộc vào khoảng cách địa lý Hệ thống phân tán hệ thống thành phần đặt máy tính mạng, chúng trao đổi thông tin phối hợp hoạt động cách truyền tin báo người sử dụng cảm giác hệ thống đơn lẻ Khái niệm phân tán thể tính độc lập máy tính phải phối hợp làm việc với để người sử dụng khơng có cảm giác thành phần rời rạc Ví dụ, hệ thống bán hàng gồm nhiều cửa hàng đặt vị trí khác nhau, việc nhập thơng tin hàng hóa thực nhiều địa điểm cửa hàng, nhà kho…, nhiên nhân viên khai thác tìm thấy thơng tin theo u cầu thể thơng tin lưu trữ máy tính người sử dụng Nhìn chung việc xây dựng ứng dụng phân tán phức tạp nhiều so với ứng dụng tập trung, nhiều trường hợp bắt buộc phải xây dựng ứng dụng phân tán lý sau: - Yêu cầu tính tốn phân tán: Ứng dụng chạy nhiều máy tính khác nhằm tận dụng khả tính tốn song song nhằm mục đích sử dụng khả tính tốn máy tính chun dụng - Yêu cầu khả xử lý lỗi: Yêu cầu liên quan tới hệ thống cần phải đảm bảo an tồn tuyệt đối có cố xảy ra, điều thực Nguyễn Xuân Anh – Khoa Công Nghệ thông tin Hệ thống phân tán PT IT cách tăng số lần tính tốn cho nhiệm vụ nhằm mục đích kịp thời phát xử lý lỗi - Chia sẻ tài nguyên: Những người sử dụng trao đổi thông tin với thông qua ứng dụng mạng Mỗi người sử dụng chạy ứng dụng phân tán máy tính chia sẻ đối tượng sử dụng Một số ứng dụng phải chạy nhiều máy tính liệu đặt phân tán mạng liên quan đến quyền quản lý quyền sở hữu liệu: cho phép truy nhập liệu từ xa không cho phép chép để lưu giữ cục Trong hệ thống phân tán, môi trường mạng đóng vai trị quan trọng việc phân phát thông tin đến thành phần tập hợp kết tính tốn thành phần Các máy tính kết nối với mạng đảm nhiệm chức truyền thông cho ứng dụng, chúng không chia sẻ nhớ cho khơng thể sử dụng biến tồn cục để trao đổi thơng tin, thơng tin trao đổi máy tính thực thông qua chế trao đổi tin báo Mạng tài nguyên chung hệ thống xây dựng hệ thống phân tán cần phải xem xét đến vấn đề như: Băng thông, điểm xảy cố, bảo mật an tồn liệu, đồng tiến trình Q trình triển khai ứng dụng hệ thống phân tán thường gặp số khó khăn sau: - Trên mạng có nhiều loại máy tính thiết bị mạng nhiều nhà sản xuất khác máy tính cài đặt hệ điều hành khác - Khó tích hợp phần mềm chúng phát triển ngôn ngữ khác - Thời gian phát triển phần mềm lớn thường kéo theo chi phí xây dựng hệ thống cao Thực tế việc xây dựng tảng cho hệ thống phân tán dựa mơ hình phân tầng OSI, tầng thấp (vật lý, liên kết liệu, mạng lớp giao vận) giải vấn đề phát sửa lỗi, định tuyến , vấn đề thường hệ điều hành đảm nhiệm Tuy nhiên việc áp dụng tầng (phiên làm việc, trình diễn tầng ứng dụng) sử dụng sản phẩm hệ thống phân tán nhằm mục đích xử lý thủ tục kết nối thành phần phân tán thể cấu trúc liệu phức tạp ứng dụng, sản phẩm gọi phần mềm trung gian Các ứng dụng phân tán thường xây dựng dựa hệ điều hành thư viện hỗ trợ việc xử lý phân tán, chúng thực nhiệm vụ xác định vị trí máy tính, đồng mã hóa thơng tin 1.2 Phân loại hệ thống phân tán Trước thảo luận nguyên lý hệ thống phân tán cần thiết phải xem xét loại hệ thống phân tán, việc phân loại hệ thống phân tán sở để phân tích lựa chọn giải pháp phù hợp để phát triển hệ thống Hệ thống phân tán gồm ba loại, hệ thống tính tốn phân tán, hệ thống thông tin phân tán hệ thống di động 1.2.1 Các hệ thống tính tốn phân tán Một vấn đề hệ thống phân tán phải đảm bảo vấn đề hiệu năng, tính tốn phân tán thường sử dụng tác nghiệp yêu cầu hiệu cao Hệ thống tính tốn phân tán chia thành hai nhóm: tính tốn cụm tính tốn lưới Trong hệ thống tính tốn cụm, tảng phần cứng tập hợp máy tính tương tự nhau, chúng cài đặt hệ điều hành giống kết nối với qua mạng cục tốc độ cao Ngược lại, hệ thống tính tốn lưới bao gồm hệ thống phân tán Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 10 Hệ thống phân tán PT IT }; exception NotCopyable { string reason; }; exception NotMovable { string reason; }; exception NotRemovable { string reason; }; exception InvalidCriteria{Criteria invalid_criteria; }; exception CannotMeetCriteria {Criteria unmet_criteria; }; interface FactoryFinder { Factories find_factories(in Key factory_key) raises(NoFactory); }; interface LifeCycleObject { LifeCycleObject copy(in FactoryFinder there, in Criteria the_criteria) raises(NoFactory, NotCopyable, InvalidCriteria, CannotMeetCriteria); void move(in FactoryFinder there, in Criteria the_criteria) raises(NoFactory, NotMovable, InvalidCriteria, CannotMeetCriteria); void remove() raises(NotRemovable); }; interface GenericFactory { #ifdef NO_ESCAPED_IDENTIFIERS boolean _supports(in Key k); #else boolean _supports(in Key k); #endif Object create_object ( in Key k, in Criteria the_criteria) raises (NoFactory, InvalidCriteria, CannotMeetCriteria); }; }; Một đối tượng Factory có nhiệm vụ tạo đối tượng mới, ứng dụng máy khách liên tạo đối tượng cách tham chiếu đến đối tượng Factory gửi yêu cầu tạo lập đối tượng Giao diện LifeCycleObject cung cấp thao tác liên quan tới tồn đối tượng Để thực thao tác này, trước hết máy khách phải nhận tham chiếu đến đối tượng LifeCycleObject sau gọi thao tác tương ứng Dịch vụ điều khiển tương tranh cung cấp giao diện để quản lý tương tranh đối tượng CORBA nhằm mục đích đảm bảo cho tất ứng dụng máy khách đồng thời truy nhập tài nguyên chung đảm bảo tính quán tài nguyên chung Dịch vụ điều khiển sử dụng tài nguyên chung khoá đọc/ghi, khoá gán với tài nguyên ứng dụng máy khách ứng dụng máy khách phải nhận khoá trước truy nhập vào tài nguyên chung Dịch vụ điều khiển tương tranh định nghĩa mô đun CosConcurencyControl sau: Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 205 Hệ thống phân tán PT IT #include module CosConcurrencyControl { enum lock_mode {read, write, upgrade, intention_read, intention_write}; exception LockNotHeld{}; interface LockCoordinator { void drop_locks(); }; interface LockSet { void lock(in lock_mode mode); boolean try_lock(in lock_mode mode); void unlock(in lock_mode mode) raises(LockNotHeld); void change_mode(in lock_mode held_mode, in lock_mode new_mode) raises(LockNotHeld); LockCoordinator get_coordinator( in CosTransactions::Coordinator which); }; interface TransactionalLockSet { void lock(in CosTransactions::Coordinator current, in lock_mode mode); boolean try_lock(in CosTransactions::Coordinator current, in lock_mode mode); void unlock(in CosTransactions::Coordinator current, in lock_mode mode) raises(LockNotHeld); void change_mode(in CosTransactions::Coordinator current, in lock_mode held_mode, in lock_mode new_mode) raises(LockNotHeld); LockCoordinator get_coordinator( in CosTransactions::Coordinator which); }; interface LockSetFactory { LockSet create(); LockSet create_related(in LockSet which); TransactionalLockSet create_transactional(); TransactionalLockSet create_transactional_related(in TransactionalLockSet which); }; }; Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 206 Hệ thống phân tán PT IT Dịch vụ thể đối tượng định nghĩa giao thức qui ước để xuất/tiếp nhận đối tượng, đối tượng thể dạng dòng bit nhớ, đĩa luân chuyển mạng Dạng thể đối tượng tồn khoảng thời gian không hạn chế chuyển phương tiện không thuộc môi trường ORB Trong thực tế, máy khách thường yêu cầu liệu lưu tập tin sử dụng dạng chuẩn hố, ứng dụng dịch vụ để thực chức Các đối tượng phân tán thường sử dụng để mơ hình hố giới thực, chúng thường không tồn tách biệt mà ngược lại đối tượng phân tán ln tồn quan hệ Dịch vụ quan hệ đối tượng (Relationship Service) cho phép thể quan hệ đối tượng nhằm mục đích giảm tính phức tạp việc quản lý mối quan hệ Dịch vụ quản lý giao tác cung cấp giao diện hỗ trợ khả trao đổi thông tin đối tượng CORBA, việc quản lý giao dịch đóng vai trị quan trọng nhằm đảm bảo tính an tồn hệ thống, điều trở nên quan trọng môi trường tương tranh Dịch vụ truy vấn cho phép ứng dụng thực thao thác truy vấn đối tượng CORBA, tương tự truy vấn bảng CSDL, nhiên khái niệm truy vấn mở rộng theo nghĩa chọn/thêm/cập nhật/xố tập đối tượng Dịch vụ cấp phép cho phép định nghĩa sách để điều khiển việc sử dụng dịch vụ, có ba loại sách sau: - Cấp phép theo thời gian: ngày bắt đầu, ngày hết hạn, khoảng thời gian hết hạn sử dụng dịch vụ - Cấp phép dựa số liệu thưc tế, ví dụ số liệu thực việc sử dụng tài nguyên, số người đồng thời sử dụng dịch vụ - Cấp phép riêng cho người sử dụng Dịch vụ quyền sở hữu cho phép đối tượng xác định tập tài sản thuộc quyền sở hữu theo cặp tên/giá trị, khái niệm tài sản hiểu giá trị xác định gắn với đối tượng theo phương pháp động Dịch vụ thời gian cho phép người sử dụng tạo kiện dựa việc đặt thời gian Hiện hệ thống sử dụng cách thể thời gian khác nhau, kiến trúc CORBA lựa chọn cách thể thời gian quốc tế UTC Dịch vụ bảo mật qui định giao diện cho thuộc tính bảo mật: - Định danh uỷ quyền: Kiểm tra người sử dụng - Uỷ quyền kiểm soát truy nhập: Xác định người sử dụng phép truy nhập tới đối tượng dịch vụ - Lưu vết: Ghi lại thao tác người sử dụng - Bảo mật truyền tin: bao gồm việc uỷ quyền người sử dụng đến dịch vụ, bảo vệ độ tính hợp độ tin cậy - Khơng thừa nhận: cung cấp tính bảo mật tương tự chữ ký điện tử - Quản lý sách bảo mật Giống dịch vụ đặt tên, dịch vụ giới thiệu đối tượng cho phép đối tượng khác xác định đối tượng CORBA Thay sử dụng tên, đối tượng máy khách tìm dịch vụ dựa tên thao tác, tham số kiểu giá trị trả Như khác dịch vụ dịch vụ đặt tên chỗ dịch vụ đặt tên tìm kiếm dịch vụ đối tượng biết xác tên đối tượng dịch vụ giới thiệu đối tượng xác định dịch vụ dựa vị trí/chức năng/tên dịch Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 207 Hệ thống phân tán vụ Dịch vụ tập hợp hỗ trợ việc nhóm đối tượng hỗ trợ thao tác thực nhóm đối tượng Tập hợp, ngăn xếp, hàng đợi tập hợp, nhiệm vụ dịch vụ tập hợp cung cấp phương pháp thống để tạo lập thao tác với tập đối tượng chung 10.3.2 Corba yêu cầu phần mềm trung gian PT IT Kiến trúc CORBA tuân thủ yêu cầu phần mềm trung gian nêu chương 1, điều thể khía cạnh định nghĩa giao diện, xác định đối tượng chế gọi thao tác đối tượng phục vụ 10.3.2.1 Ngôn ngữ định nghĩa giao diện Kiến trúc CORBA sử dụng ngôn ngữ định nghĩa giao diện IDL để mô tả giao diện đối tượng IDL ngôn ngữ mơ tả phục vụ cho mơ hình lập trình hướng đối tượng, hồn tồn có khả sử dụng tính chất kế thừa đa hình ngơn ngữ lập trình hướng đối tượng Mục tiêu ngôn ngữ IDL mô tả giao diện đối tượng, độc lập với ngơn ngữ lập trình sử dụng chương trình dịch để biên dịch sang ngơn ngữ lập trình theo yêu cầu Ngôn ngữ IDL định nghĩa loại đối tượng cách xác định giao diện chúng, giao diện bao gồm hàm tham số hàm Mã lện thực hàm nằm ngồi phạm vi định nghĩa ngơn ngữ này, thể thao tác phục vụ cho máy khách 10.3.2.2 Xác định địa đối tượng phục vụ Để truy nhập đối tượng từ xa, ứng dụng máy khách cần có địa đối tượng phục vụ, thông tin chứa bảng tham chiếu đối tượng Vấn đề tham chiếu đối tượng chuẩn hoá đặc tả CORBA 2.0 nhằm mục đích cho phép ứng dụng phân tán chạy môi trường ORB hãng khác 10.3.2.3 Gọi đối tượng phục vụ Khi xác định giao diện địa đối tượng phục vụ, gọi thao tác từ xa, trình tuân thủ bước thực phần mềm trung gian Bắt đầu từ việc biên dịch tập tin mô tả giao diện viết ngôn ngữ IDL nhận Máy trạm stub Máy chủ skeleton Yêu cầu ứng dụng máy khách chuyển đến đối tượng phục vụ thông qua môi trường ORB, q trình hồn tồn suốt người phát triển 10.3.3 Áp dụng CORBA xây dựng ứng dụng phân tán Để xây dựng phần mềm hệ thống phân tán theo kiến trúc CORBA cần phải xác định đối tượng Máy chủ đối tượng Máy trạm hệ thống 10.3.3.1 Xây dựng ứng dụng máy chủ Trước hết cần phải định nghĩa giao diện máy chủ, nghĩa dịch vụ máy chủ cung cấp hương pháp truy nhập dịch vụ dạng tập tin idl, sau sử dụng trình IDL để biên dịch tập tin idl ngơn ngữ lập trình phù hợp, kết nhận Stub cho máy khách Skeleton cho máy chủ Bước viết mã nguồn thể giao diện máy chủ cung cấp dựa Skeleton cuối viết chương trình cho máy chủ với cấu trúc hàm main() sau: - Khởi tạo ORB BOA/POA - Tạo đối tượng máy chủ Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 208 Hệ thống phân tán - Thông báo cho BOA/POA biết đối tượng máy chủ sẵn sàng - Chờ kiện CORBA, thực kết thúc 10.3.3.2 Xây dựng ứng dụng máy khách Sử dụng Stub tạo bước để tạo tập tin cài đặt tính máy khách sau viết chương trình cho máy khách với khung hàm main() sau: - Khởi tạo ORB BOA/POA - Tạo đối tượng máy khách - Thông báo cho BOA /POA biết đối tượng máy khách sẵn sàng - Thực tác vụ xác định đối tượng máy chủ 10.4 Gọi phương thức từ xa Java PT IT Gọi phương thức từ xa (Java RMI) thực chất việc áp dụng phương pháp gọi thủ tục từ xa ngôn ngữ lập trình Java Java RMI cho phép đối tượng chạy máy ảo Java kích hoạt phương thức đối tượng chạy máy ảo Java khác Đối tượng có phương thức gọi từ xa gọi đối tượng xa, ứng dụng RMI bao gồm chương trình máy chủ chương trình máy khách Chương trình máy chủ tạo số đối tượng xa, tạo tham chiếu đến chúng chờ chương trình máy khách kích hoạt phương thức đối tượng từ xa Chương trình máy khách lấy tham chiếu đến nhiều đối tượng từ xa máy chủ kích hoạt phương thức từ xa thơng qua tham chiếu Một chương trình máy khách kích hoạt phương thức xa hay nhiều máy chủ, nghĩa việc thực thi chương trình trải rộng nhiều máy tính Đây đặc điểm ứng dụng phân tán, RMI chế để xây dựng ứng dụng phân tán ngôn ngữ Java 10.4.1 Mô hình khách/chủ Mơ hình khách/chủ dựa RMI bao gồm máy chủ chương trình cung cấp đối tượng gọi từ xa máy khách chương trình tham chiếu đến phương thức đối tượng xa máy chủ Stub chứa tham chiếu đến phương thức xa máy chủ, Skeleton đón nhận tham chiếu từ Stub để kích hoạt phương thức tương ứng máy chủ Thành phần tham chiếu từ xa đóng vai trị truyền thơng RMI 10.4.2 Các chế liên quan Cơ chế định vị đối tượng từ xa: Cơ chế xác định cách thức mà chương trình Máy khách lấy tham chiếu đến đối tượng từ xa Thông thường người ta sử dụng dịch vụ đặt tên lưu giữ tham chiếu đến đối tượng cho phép gọi từ xa mà máy khách sau tìm kiếm Cơ chế giao tiếp với đối tượng từ xa: Chi tiết chế giao tiếp với đối tượng xa cài đặt hệ thống RMI Tải lớp dạng bytecodes cho lớp mà chuyển tải qua lại máy ảo: Vì RMI cho phép chương trình gọi phương thức từ xa trao đổi đối tượng với phương thức xa dạng tham số hay giá trị trả phương thức nên RMI cần có chế cần thiết để tải mã Bytecodes đối tượng từ máy ảo sang máy ảo khác Tiến trình vận hành ứng dụng khách/chủ theo kiểu RMI gồm bước sau: Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 209 Hệ thống phân tán - Máy chủ tạo đối tượng cho phép gọi từ xa với Stub Skeleton chúng Máy chủ sử dụng lớp đặt tên để đăng ký tên cho đối tượng từ xa Lớp đặt tên đăng ký Stub đối tượng từ xa với Registry Máy chủ Thành phần đăng ký (Registry) máy chủ sẵn sàng cung cấp tham thảo đến đối tượng từ xa có yêu cầu Máy khách yêu cầu định vị đối tượng xa qua tên đăng ký với dịch vụ tên Bộ phận quản lý tên tải Stub đối tượng xa từ dịch vụ tên mà đối tượng xa đăng ký Máy khách Cài đặt đối tượng Stub trả tham khảo đối tượng xa cho Máy khách Máy khách thực thi lời gọi phương thức xa thông qua đối tượng Stub 10.4.3 Các lớp hỗ trợ IT Java hỗ trợ lớp cần thiết để cài đặt ứng dụng khách/chủ dựa RMI gói: java.rmi, số lớp thường dùng sau: java.rmi.Naming java.rmi.RMISecurityManager java.rmi.RemoteException; java.rmi.máy chủ.RemoteObject java.rmi.máy chủ.RemoteMáy chủ java.rmi máy chủ.UnicastRemoteObject PT 10.4.4 Xây dựng ứng dụng phân tán với RMI - Xây dụng ứng dụng phân tán chế RMI gồm bước sau: Thiết kế cài đặt thành phần ứng dụng Biên dịch chương trình nguồn tạo Stub Skeleton Tạo lớp truy xuất từ mạng - Thực thi ứng dụng 10.4.4.1 Thiết kế cài đặt thành phần ứng dụng Định nghĩa giao diện từ xa: Một giao diện xa mơ tả phương thức mà kích hoạt từ xa máy khách Đi với việc định nghĩa giao diện từ xa việc xác định lớp cục làm tham số hay giá trị trả phương thức gọi từ xa Cài đặt đối tượng từ xa: Các đối tượng xa phải cài đặt cho nhiều giao diện từ định nghĩa Các lớp đối tượng từ xa cài đặt cho phương thức gọi từ xa khai báo giao diện xa định nghĩa cài đặt cho phương thức sử dụng cục Nếu có lớp làm đối số hay giá trị trả cho phương thức gọi từ xa ta định nghĩa cài đặt chúng Cài đặt chương trình máy khách: Các chương trình máy khách có sử dụng đối tượng xa cài đặt thời điểm sau giao diện xa định nghĩa 10.4.4.2 Biên dịch tập tin nguồn tạo Stubs Skeleton Giai đoạn gồm hai bước: Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 210 Hệ thống phân tán Dùng chương trình biên dịch javac để biên dịch tập tin nguồn giao diện xa, lớp cài đặt cho giao diện xa, lớp máy chủ, lớp máy khách lớp liên quan khác - Dùng trình biện dịch rmic để tạo stub skeleton cho đối tượng từ xa từ lớp cài đặt cho giao diện xa 10.4.4.3 Tạo lớp truy xuất từ mạng Tạo tập tin chứa tất tập tin có liên quan giao diện xa stub, lớp hỗ trợ mà chúng cần thiết phải tải Máy khách làm cho tập tin truy cập đến thông qua máy chủ 10.4.4.4 Thực thi ứng dụng Thực thi ứng dụng bao gồm việc thực thi đăng ký RMI máy chủ, thực thi máy chủ, thực thi máy khách, công việc bao gồm: - Tạo giao diện khai báo phương thức gọi từ xa đối tượng - Tạo lớp cài đặt cho giao diện khai báo - Viết chương trình máy chủ - Viết chương trình máy khách - Dịch tập tin nguồn theo dạng RMI để tạo lớp tương ứng stub cho máy khách, skeleton cho máy chủ - Khởi động dịch vụ đăng ký - Thực chương trình máy chủ - Thực thi chương trình máy khách PT 10.5 Dịch vụ web IT - Dịch vụ web mơ hình phát triển dựa tảng cơng nghệ web, bao gồm tập chuẩn cho phép xây dựng ứng dụng phân tán mà không phụ thuộc tảng hệ thống Dịch vụ web sử dụng giao thức mở bên tự chứa đặc tả liệu theo chuẩn XML, ngơn ngữ mơ tả liệu để trao đổi hệ thống Tốc độ trao đổi thông tin dựa dịch vụ web thường không cao, nhiên việc phát triển ứng dụng tương đối đơn giản, rút ngắn thời gian phát triển phần mềm Dịch vụ web liên lạc với máy khách thông qua thông điệp XML chuyển qua mạng nhờ giao thức tầng ứng dụng HTTP, FTP, SMPP…, ứng dụng truy nhập dịch vụ web để trao đổi thông tin cách dễ dàng Các ứng dụng dịch vụ web viết nhiều loại ngơn ngữ lập trình khác Java, C# dễ dàng mở rộng nâng cấp Để tạo ứng dụng lớn với nhiều đơn vị tham gia, ứng dụng chia thành thành phần nhỏ hay dịch vụ chia sẻ đặt máy chủ khác nhau, chúng đóng gói giao dịch qua mạng sử dụng giao thức chuẩn tầng ứng dụng Ưu điểm giao thức chuẩn truy cập cách dễ dàng qua mơi trường Internet, khắc phục tính đóng công nghệ phân tán khác 10.5.1 Các thành phần kiến trúc dịch vụ Web Nền tảng dịch vụ web XML HTTP, XML ngôn ngữ mô tả liệu dùng để trao đổi thông tin hệ thống có tảng ngơn ngữ lập trình khác Nguyễn Xn Anh – Khoa Cơng Nghệ thơng tin 211 Hệ thống phân tán nhau, HTTP giao thức phổ biến sử dụng nhiều mạng Internet Các thành phần dịch vụ dịch vụ web bao gồm: - SOAP (Simple Object Access Protocol) giao thức dựa ngôn ngữ XML, dùng ứng dụng trao đổi thông tin qua giao thức HTTP - UDDI (Universal Description Discovery and Integration) dịch vụ thư mục, nơi ứng dụng đăng ký hay tìm kiếm dịch vụ - WSDL (Web Services Description Language) ngôn ngữ dựa ngôn ngữ XML, dùng để xác định mô tả dịch vụ web 10.5.2 Trao đổi thông tin dịch vụ Web PT IT Dịch vụ web gồm ba thành phần chính, thành phần cung cấp dịch vụ, thành phần sử dụng dịch vụ môi trường dịch vụ Thành phần cung cấp dịch vụ công bố diện dịch vụ web cho môi trường dịch vụ, bên yêu cầu dịch vụ tìm kiếm yêu cầu thơng tin dịch vụ mơi trường Khi tìm thấy thơng tin u cầu, phía máy khách nhúng dịch vụ web vào ứng dụng, quy trình tạo dịch vụ web gồm giai đoạn sau: - Bên cung cấp dịch vụ tạo dịch vụ web, sử dụng WSDL để mô tả - Bên cung cấp dịch vụ đăng kí dịch vụ - Ứng dụng khách xác định yêu cầu dịch vụ đăng kí cách truy vấn UDDI, tìm thấy nhúng dịch vụ vào ứng dụng - Dữ liệu trao đổi dạng XML giao thức HTTP 10.5.2.1 Giao thức SOAP Giao thức truy nhập đối tượng đơn giản (Simple Object Access Protocol) giao thức truyền thông ứng dụng qua môi trường Internet, định dạng thơng điệp trao đổi dựa ngơn ngữ XML giao thức HTTP XML định dạng liệu dạng văn bản, dễ dàng qua tường lửa, giao thức SOAP đơn giản có khả mở rộng độc lập với ngơn ngữ lập trình tảng hệ thống Giao thức SOAP mô tả rõ định dạng thông điệp yêu cầu trả lời dùng việc gửi nhận thông tin thông qua giao thức HTTP nhờ phương thức POST Về cú pháp, thông điệp SOAP bao gồm: - Envelope: Phần bắt buộc phải có, định dạng văn XML thơng điệp SOAP - Header: Có thể bỏ qua, chứa thông tin điều khiển - Body: Phần bắt buộc phải có, chứa thơng tin gọi trả lời - Fault: chứa thông tin trạng thái lỗi Giao thức SOAP hỗ trợ hai kiểu truyền thông khác nhau: - Gọi thủ tục từ xa: cho phép gọi hàm thủ tục qua mạng, nhiều dịch vụ web sử dụng kiểu có thêm nhiều trợ giúp - Văn bản: viết kiểu hướng thơng điệp, cung cấp tầng thấp trừu tượng u cầu lập trình viên phải mơ tả liệu phương thức gọi để thực yêu cầu Các định dạng thông điệp, tham số lời gọi đến hàm giao diện lập trình ứng dụng hai kiểu khác nhau, việc định chọn tùy thuộc vào thời gian đặc điểm dịch vụ cần xây dựng Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 212 Hệ thống phân tán PT IT 10.5.2.2 Ngôn ngữ WSDL Ngôn ngữ mô tả dịch vụ web (Web Services Description Language) ngôn ngữ mô tả giao tiếp thực thi dựa thông điệp định dạng XML, WSDL dùng để mơ tả xác định dịch vụ web, cho biết dịch vụ web cung cấp chức đặt đâu, cách thức truy nhập gọi phương thức cung cấp dịch vụ Cấu trúc WSDL gồm thành phần: - Type: Định nghĩa kiểu liệu dịch vụ web sử dụng - Message: Định nghĩa thành phần liệu phương thức - PortType: thành phần quan trọng dịch vụ web, mơ tả phương thức thực thông điệp liên quan - Binding: định nghĩa khuôn dạng thông điệp chi tiết giao thức cho cổng 10.5.2.3 Thư mục UDDI Thư mục UDDI (Universal Description, Discovery and Integration) sử dụng ngôn ngữ XML giao thức HTTP, DNS truyền thông qua SOAP để thực vai trò trung gian trình trao đổi thơng tin dịch vụ web, thư mục dùng để lưu thơng tin dịch vụ web Giao diện thư mục mô tả ngôn ngữ WSDL, thư mục UDDI bao gồm ba thành phần: - Trang trắng: Mô tả thơng tin nghiệp vụ đóng vai trị xuất bản, nghĩa chứa thông tin đăng ký dịch vụ nhà cung cấp, bao gồm thông tin nghiệp vụ tên, mô tả nghiệp vụ, thông tin liên hệ … - Trang vàng: Bao gồm thông tin mơ tả đối tượng nghiệp vụ, chứa thơng tin cần thiết để ứng dụng tìm thấy dịch vụ web cụ thể Một nghiệp vụ cung cấp nhiều dịch vụ, trang trắng gồm nhiều trang vàng - Trang xanh: Chứa thông tin ràng buộc, mô tả cách ứng dụng kết nối tương tác với dịch vụ web sau tìm thấy, thơng tin bao gồm đường dẫn, tên phương thức, kiểu tham số … dịch vụ web Danh sách dịch vụ web mô tả ngôn ngữ WSDL gửi tới UDDI để đăng ký, ánh xạ danh sách dịch vụ thành ghi UDDI định dạng XML, ghi đăng ký UDDI bao gồm trang trắng, trang vàng trang xanh 10.5.3 Quy trình xây dựng ứng dụng dịch vụ Web Để xây dựng ứng dụng phân tán dựa dịch vụ Web cần thực bước sau: - Định nghĩa xây dựng chức mà dịch vụ cung cấp - Tạo WSDL cho dịch vụ, chuyển đổi thông tin máy chủ WSDL - Xây dựng SOAP máy chủ - Đăng ký WSDL với UDDI phép máy khách tìm thấy truy nhập - Lập trình viên cho ứng dụng máy khách nhận tập tin định dạng WSDL từ dựng SOAP cho máy khách để kết nối với SOAP máy chủ - Xây dựng ứng dụng phía khách, sau gọi dịch vụ thơng qua việc kết nối đến máy chủ cung cấp dịch vụ web Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 213 Hệ thống phân tán 10.6 Kiến trúc hướng dịch vụ Sự phát triển nhanh chóng cơng nghệ làm nảy sinh môi trường giao tiếp không đồng thành phần hệ thống phân tán Một vấn đề đặt tổ chức công nghệ thông tin xây dựng kiến trúc phần mềm có khả tích hợp sử dụng thành phần nhằm giảm thiểu chi phí phát triển bảo trì hệ thống phần mềm Chúng ta có kiến trúc hướng đối tượng phân tán, nhiên kiến trúc có đặc tính ràng buộc chặt chẽ thành phần với làm cho kiến trúc chưa thật hiệu Kiến trúc hướng dịch vụ đời gần nhằm mục đích vấn đề khó khăn giao tiếp thành phần hệ thống phân tán 10.6.1 Giới thiệu kiến trúc hướng dịch vụ PT IT Kiến trúc hướng dịch vụ (SOA: Service Oriented Architectural) cách tiếp cận tổ chức hệ thống thông tin cho truy nhập tài ngun thơng qua giao diện thông điệp SOA dùng chuẩn mở để biểu diễn dịch vụ thông qua giao diện chuẩn hóa, thành phần riêng lẻ trở thành khối để tái sử dụng ứng dụng khác, kiến trúc sử dụng để tích hợp ứng dụng Dịch vụ hàm chức thực theo quy trình nghiệp vụ đó, chúng dễ dàng tìm thầy liên thơng với nhau, nhiên mức độ gắn kết không cao Mỗi dịch vụ bao gồm nhiều thành phần đóng gói mức cáo, người sử dụng khơng cần biết vị trí chúng SOA bao gồm dịch vụ kết nối mềm dẻo với nhau, dịch vụ có giao diện định nghĩa rõ ràng độc lập với tảng hệ thống tái sử dụng SOA cấp độ cao phát triển ứng dụng, trọng đến quy trình nghiệp vụ dùng giao diện chuẩn để che giấu phức tạp bên Thiết kế SOA tách riêng phần thực dịch vụ với giao diện gọi dịch vụ, điều tạo nên giao diện quán cho ứng dụng sử dụng dịch vụ mà không cần quan tâm tới công nghệ thực dịch vụ Thay xây dựng ứng dụng đơn lẻ đồ sộ, nhà phát triển xây dựng dịch vụ tinh gọn triển khai tái tạo sử dụng tồn quy trình nghiệp vụ Điều cho phép tái sử dụng phần mềm tốt hơn, tăng mềm dẻo nhà phát triển cải tiến dịch vụ mà khơng làm ảnh hưởng đến ứng dụng sử dụng dịch vụ SOA khơng hồn tồn mới, DCOM CORBA có kiến trúc tương tự, nhiên kiến trúc cũ ràng buộc thành phần với chặt ví dụ ứng dụng phân tán muốn làm việc với phải thoả thuận chi tiết tập hàm giao diện lập trình ứng dụng, thay đổi mã lệnh thành phần DCOM yêu cầu thay đổi tương ứng mã lệnh truy cập thành phần Ưu điểm lớn SOA khả kết nối mềm dẻo tái sử dụng, dịch vụ sử dụng tảng viết ngôn ngữ lập trình SOA dựa hai nguyên tắc thiết kế quan trọng, tính mơ đun đóng gói, tính mơ đun tách vấn đề lớn thành nhiều vấn đề nhỏ để thuận lợi cho việc xử lý, đóng gói tính che giấu liệu nghiệp vụ bên người sử dụng bên Dịch vụ thiết kế phù hợp với SOA cần phải đóng gói cao mức độ cao dễ dàng tái sử dụng, việc cài đặt đảm bảo tính độc lập suốt vị trí Nguyễn Xn Anh – Khoa Cơng Nghệ thơng tin 214 Hệ thống phân tán 10.6.2 Các dịch vụ PT IT Theo nghĩa thông thường, dịch vụ hoạt động công việc người phục vụ người khác, kỹ thuật khái niệm dịch vụ hiểu chức tiếp nhận yêu cầu trả kết thông qua giao diện chuẩn qui định Kiến trúc hướng dịch vụ tập trung vào qui trình nghiệp vụ hệ thống khác nhau, mục tiêu dịch vụ thể tính tương ứng với hoạt động thương mại thực tế Kiến trúc hướng dịch vụ phân rã chức hệ thống thành dịch vụ, dịch vụ lại phân rã thành dịch vụ nhỏ hơn… Có thể nói dịch vụ nhân tố chủ yếu hình thành nên SOA, nói cách khác kiến trúc SOA lấy dịch vụ làm trọng tâm để xây dựng ứng dụng Từ quy trình, sách, ngun lý hay phương pháp thực SOA hướng đến khái niệm dịch vụ Các công cụ lựa chọn SOA hướng đến việc tạo triển khai dịch vụ, sở hạ tầng thực thi cung cấp SOA hướng đến việc thực thi quản lý dịch vụ Hình 10.11 Kiến trúc hướng dịch vụ Về mặt kỹ thuật, dịch vụ sản phẩm phần mềm định nghĩa cách rõ ràng thơng qua giao diện Với góc nhìn doanh nghiệp, dịch vụ gắn với chức thực tiễn mà đảm nhận hệ thống Mỗi dịch vụ thường kèm theo sách sử dụng như: quyền truy xuất, thời gian truy xuất, mức độ bảo mật, chi phí sử dụng dịch vụ… Dịch vụ kỹ thuật tái sử dụng định nghĩa dịch vụ phục vụ cho mục đích nghiệp vụ tái sử dụng nhiều dòng dịch vụ khác Các dịch vụ thuộc loại tính đến dịch vụ truy xuất liệu, đăng nhập, quản lý người dùng Phương châm dịch vụ kinh doanh tập hợp dịch vụ hỗ trợ cho nghiệp vụ nhằm mục đích phục vụ trực tiếp hay gián tiếp cho khách hàng thông qua hệ thống tự động Các kênh dịch vụ kinh doanh thường định nghĩa thành miền dịch vụ tài chính, bán hàng, quảng cáo, sản xuất, vận chuyển, kỹ thuật, quản lý lợi nhuận, chăm sóc khách hàng… Tất dịch vụ miền dịch vụ nên có kết nối với thơng qua từ điển liệu chung để dễ dàng vận hành hệ thống Các dịch vụ miền dịch vụ khác khơng đồng từ điển liệu, cần có sách truyền liệu có yêu cầu đồng liệu miền dịch vụ Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 215 Hệ thống phân tán PT IT Hợp đồng dịch vụ giao diện dịch vụ nghiệp vụ dịch vụ kỹ thuật nhằm che giấu thể chi tiết dịch vụ kỹ thuật Nền tảng dịch vụ Web gồm chuẩn phương tiện giúp dịch vụ giao tiếp với cách độc lập với cơng nghệ Các quy trình sách hướng dẫn SOA bao gồm dẫn cho phối hợp dịch vụ nhằm đạt mức lợi nhuận cao cho doanh nghiệp Các phương pháp công cụ công cụ SOA dùng q trình quản lý dự án, mơ hình dịch vụ, mơ hình liệu, quản lý phát triển hệ thống Các nguyên lý dẫn bao gồm nguyên lý giúp cho nhà kiến trúc nhà phát triển trình xác định dịch vụ kỹ thuật dịch vụ nghiệp vụ Dịch vụ khái niệm kiến trúc hướng dịch vụ, dịch vụ định nghĩa hợp đồng dịch vụ phân biệt rõ ràng chức thực Các dịch vụ nên giao tiếp với dịch vụ khác thông qua giao diện định nghĩa rõ ràng Dịch vụ truy xuất thơng qua chuẩn dùng môi trường giao tiếp rộng SOAP,WSDL, XML, HTTP, UDDI… khơng nên có ràng buộc q chặt chẽ Mỗi dịch vụ nên thực tác vụ rời rạc cung cấp giao diện đơn giản truy xuất nhằm khuyến khích việc tái sử dụng chúng cho hệ thống sau Các dịch vụ nên cung cấp siêu liệu định nghĩa ràng buộc chức chúng SOA lấy dịch vụ làm trọng tâm, cần cung cấp cơng cụ giúp mơ hình hóa, phát triển, triển khai, liên kết, quản lý kiểm tra độ bảo mật dịch vụ, sản phẩm, cơng nghệ tiện ích phê chuẩn 10.6.3 Mơ hình cặp lỏng Khái niệm gắn kết ám đến số điều kiện ràng buộc thành phần với nhau, chúng điều kiện chặt lỏng, chí có ràng buộc khơng biết trước Hầu hết kiến trúc phần mềm hướng đến tính ràng buộc lỏng thành phần gọi mơ hình cặp lỏng Mức độ gắn kết hệ thống ảnh hưởng trực tiếp đến khả chỉnh sửa hệ thống, gắn kết chặt ảnh hưởng đến phía sử dụng dịch vụ có thay đổi xảy Mức độ gắn kết tăng dần khi bên sử dụng dịch vụ biết nhiều thông tin ngầm định bên cung cấp dịch vụ Ngược lại, bên sử dụng dịch vụ biết thơng tin chi tiết bên dịch vụ trước gọi quan hệ hai bên lỏng SOA hỗ trợ gắn kết lỏng thông qua việc sử dụng hợp đồng nhúng, người dùng truy vấn đến nơi lưu trữ cung cấp thông tin dịch vụ để lấy thông tin, thành phần hệ thống cung cấp dịch vụ truy vấn trả tất dịch vụ thỏa mãn tiêu chuẩn tìm kiếm, từ người dùng việc chọn dịch vụ cần thiết thực thi phương thức theo mơ tả dịch vụ Bên sử dụng dịch vụ không cần phụ thuộc trực tiếp vào cài đặt dịch vụ mà dựa hợp đồng mà dịch vụ hỗ trợ Mơ hình cặp lỏng giúp gỡ bỏ ràng buộc điều khiển thành phần đầu cuối, thành phần hệ thống phân tán tự quản lý độc lập nhằm tăng hiệu suất, khả mở rộng khả đáp ứng cao, thay đổi cài đặt che giấu Gắn kết lỏng đảm bảo tính độc lập bên cung cấp bên sử dụng địi hỏi giao diện phải theo chuẩn cần thành phần trung gian quản lý, trung chuyển yêu cầu thành phần đầu cuối Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 216 Hệ thống phân tán 10.6.4 Chu kỳ sống dịch vụ Dịch vụ phần phần mềm hệ thống phân tán, chu kỳ sống dịch vụ gần tương tự chu kỳ sống phần mềm, dịch vụ giai đoạn phát triển đưa vào hoạt động sản xuất kinh doanh Nếu giai đoạn phát triển cần phải tương tác dịch vụ dịch vụ cần thiết phải xây dựng, dịch vụ giai đoạn hiểu phần xây dựng qui trình kinh doanh Phần mềm đưa vào hoạt động kinh doanh phát sinh nhiều vấn đề yêu cầu cần phải chỉnh sửa nâng cấp, có số dịch vụ sửa trực tiếp hệ thống vận hành Tuy nhiên, nhiều trường hợp phức tạp đòi hỏi phải tạm thời ngừng dịch vụ để tập trung cho việc sửa đổi nâng cấp 10.6.5 Phân loại dịch vụ IT Kiến trúc hướng dịch vụ chia dịch vụ thành dịch vụ bản, dịch vụ tích hợp dịch vụ qui trình, ba loại liên quan mật thiết đến trình cung cấp dịch vụ Dịch vụ cung cấp tính kinh doanh nhất, chúng chưa phân cho dịch vụ khác, thời gian chạy tương đối ngắn thuộc loại khơng trạng thái, dịch vụ phù hợp với phương thức gọi đồng Thực tế, dịch vụ thường cài đặt để truy nhập liệu số nghiệp vụ tạo người dùng thay đổi mật khẩu… Các dịch vụ tích hợp cấu thành từ số dịch vụ bản, nhìn chung thời gian thực dịch vụ tương đối ngắn thuộc loại không trạng thái, tích hợp thuộc nhiều tảng Dịch vụ qui trình khác với hai loại trên, phản ánh qui trình kinh doanh, thời gian thực dài thuộc loại có trạng thái 10.6.6 Trục dịch vụ doanh nghiệp PT Trục dịch vụ doanh nghiệp hạ tầng kiến trúc cho phép sử dụng dịch vụ hệ thống sản xuất, thường triển khai ứng dụng, tảng quy trình nghiệp vụ Các dịch vụ liên kết trao đổi thông tin với không sử dụng loại định dạng liệu chung khơng có chuẩn giao tiếp chung Nếu cần giao tiếp với hệ thống bên ngồi, vấn đề tích hợp mở rộng khỏi phạm vi doanh nghiệp, bao chùm lên hệ thống quy trình nghiệp vụ doanh nghiệp khác Những năm gần đây, số giải pháp tích hợp ứng dụng doanh nghiệp, doanh nghiệp với doanh nghiệp, kiến trúc hướng dịch vụ dịch vụ Web tập trung giải vấn đề liên quan tới tích hợp hệ thống thông tin doanh nghiệp Những giải pháp tập trung vào vài vấn đề tích hợp, chúng thường sản phẩm công ty đó, giá thành đắt tốn thời gian triển khai Trục dịch vụ doanh nghiệp theo tiêu chuẩn giải vấn đề liên quan đến việc tích hợp mà khơng cần phải loại bỏ giải pháp sử dụng Mục đích trục dịch vụ doanh nghiệp làm cho việc tích hợp ứng dụng quy trình trở nên thuận tiện cách cung cấp quy trình phân tán, điều hướng thơng minh, bảo mật tự động chuyển đổi liệu Trong trục dịch vụ doanh nghiệp, dịch vụ dịch vụ tảng ứng dụng khơng cần phải thi hành riêng biệt yêu cầu theo cách thức riêng biệt chúng Trục dịch vụ doanh nghiệp giải điểm yếu giải pháp có sẵn cách tạo tảng chuẩn cho việc tích hợp Giải pháp điểm–điểm yêu cầu n thành phần tham gia hệ thống phải có n-1 giao diện để giao tiếp với thành Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 217 Hệ thống phân tán phần lại thay giải pháp trục, thành phần cần giao diện để giao tiếp với trục giao tiếp với thành phần lại Trục dịch vụ doanh nghiệp đảm bảo giao tiếp phân tán, chuyển hướng, xử lý nghiệp vụ, ổn định bảo mật, đồng thời cung cấp dịch vụ có khả cắm chạy 10.6.7 Các mơ hình dựa SOA Các mơ hình dựa SOA nhìn phức tạp, tùy thuộc vào góc nhìn hệ thống, góc độ kinh doanh hay kỹ thuật Mơ hình logic phân chia hệ thống thành miền, miền đảm nhiệm vai trò trách nhiệm riêng Khái niệm miền phản ánh thực thể đó, ví dụ cơng ty, phịng/ban… Đứng góc độ kỹ thuật thấy trục dịch vụ doanh nghiệp đóng vai trị trung tâm, vùng cung cấp dịch vụ dịch vụ tích hợp, dịch vụ qui trình tách biệt riêng rẽ 10.6.8 Các mẫu trao đổi thông điệp PT IT So với kiến trúc dựa thành phần, điểm khác biệt SOA cung cấp khả giao tiếp dịch vụ sử dụng thông điệp dựa giao thức phổ biến HTTP, FTP, SMTP, kiến trúc SOA có khả độc lập với tảng Các dịch vụ hoạt động tảng khác giao tiếp với nhờ vào giao diện chuẩn hóa để cộng tác xử lý tác vụ Phương thức trao đổi thông điệp tất tảng ngơn ngữ lập trình hỗ trợ, dịch vụ tảng hoạt động với cấu trúc liệu đặc thù tảng Trao đổi thơng điệp thực theo chế không đồng bộ, bên gửi và bên nhận không cần phải chờ nhau, điều giúp cho bên tiếp tục xử lý công việc sau gởi thông điệp mà không cần dừng thực thi để chờ thông điệp trả lời Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 218 Hệ thống phân tán TÀI LIỆU THAM KHẢO A S Tanenbaum, M V Steen, "Distributed Systems: Principles and Paradigms", 2nd Edition, Prentice-Hall, 2007 [2] G Coulouris, J Dollimore, T Kinberg, G Blair, "Distributed systems: Concept and Design", 5th Edition, Addison-Wesley, 2012 [3] N.M Josuttis, “SOA in Practice – The Art of Distributed System Design”, O’Reilly, 2007 PT IT [1] Nguyễn Xuân Anh – Khoa Công Nghệ thông tin 219 ... thống phân tán, việc phân loại hệ thống phân tán sở để phân tích lựa chọn giải pháp phù hợp để phát triển hệ thống Hệ thống phân tán gồm ba loại, hệ thống tính tốn phân tán, hệ thống thông tin phân. . .Hệ thống phân tán MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÂN TÁN 1.1 Định nghĩa hệ thống phân tán 1.2 Phân loại hệ thống phân tán 10 1.2.1.1 1.2.1.2 Hệ thống. .. phân tán hệ thống di động 1.2.1 Các hệ thống tính tốn phân tán Một vấn đề hệ thống phân tán phải đảm bảo vấn đề hiệu năng, tính tốn phân tán thường sử dụng tác nghiệp yêu cầu hiệu cao Hệ thống