Giáo trình Hệ Phân Tán

86 1.1K 7
Giáo trình Hệ Phân Tán

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 1: TỔNG QUAN VỀ HỆ PHÂN TÁN Công nghệ thông tin và viễn thông ngày càng phát triển, đòi hỏi nhu cầu về xử lí thông tin ngày càng cao, nhanh hơn nhiều lần tốc độ phát triển của tài nguyên phần cứng và phần mềm. Có nhiều vấn đề đặt ra mà các hệ thống tập trung thông thường không đáp ứng được, do tốc độ xử lí còn hạn chế. Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã được chứng minh tính hữu dụng. Hệ thống phân tán còn tạo nhiều thuận lợi trong việc chia sẻ thông tin trên toàn thế giới Mặt khác sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàng tỷ (theo International Data Corp, tính đến cuối năm 2006 sẽ có hơn 1 tỷ người trên toàn thế giới kết nối Internet). Các đặc điểm của nguồn thông tin, tổ chức mạng, cũng như việc khai thác, xử lý thông tin ngày càng trở nên phức tạp và đa dạng hơn, có thể kể đến các khuynh hướng chính yếu: Các thiết bị di động (Mobile devices): Việc cung cấp các phần mềm, các dịch vụ hỗ trợ hiệu quả cho lớp thiết bị di động (laptop, PDAs đến điện thoại di động hay sổ tay điện tử...) này vẫn đang phải đối mặt với nhiều khó khăn vì các thiết bị di động thường có tài nguyên hạn hep, và thường dựa trên các kết nối với băng thông thấp, độ trễ cao của đường điện thoại, hay mạng không dây. Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu truy cập vào máy tính của mình, tài khoản của mình từ bất cứ đâu, vì thế việc hỗ trợ kết nối ở mọi nơi, mọi lúc và trên mọi thiết bị là một thách thức được đặt ra. Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ đã không còn thỏa mãn với các cơ chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động. Internet là cơ sở để thực hiện mong muốn này, vấn đề còn lại là khả năng hỗ trợ chuyên biệt hoá của các ứng dụng mạng dành cho người dùng. Nguồn tin đa dạng, khối lượng cực lớn: Đã xuất hiện sự bùng nổ thông tin trên mạng với sự xuất hiện của nhiều kho dữ liệu khổng lồ. Các kho dữ liệu này lại được cung cấp từ nhiều nguồn nên thường không đồng nhất về tổ chức, đây sẽ lại là một khó khăn mới đối với người dùng khi truy vấn. Gia tăng sử dụng mạng cục bộ: Việc các mạng Intranet được xây dựng phổ biến là một điều kiện tốt để triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng, vì Intranet cho phép việc thiết lập an toàn hệ thống dễ dàng hơn trong một tập hợp mang tính cộng tác và tin cậy. Môi trường không đồng nhất: Khi kết nối các máy tính, các mạng cục bộ vào Internet, các ứng dụng và người dùng phải đối mặt với một môi trường không đồng nhất cả về phần cứng, lẫn về kiến trúc, hệ điều hành…Và bài toán tương thích, dễ mang chuyển sẽ là vấn đề cần giải quyết ở đây. Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt đến những tiến bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc độ truyền tải nhanh đáng kể, đa số người dùng vẫn bị giới hạn với các thiết bị kết nối như modem hay các đường truyền băng thông thấp với mạng không dây. Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình clientserver truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Mobile Agent là một mô hình trong đó các tiến trình được gọi là agent có tính tự trị và khả năng di động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ. Ý tưởng chủ đạo của mobile agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tưng thích mạnh trên các môi trường không đồng nhất. Mobile agent với các ưu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán. 1.1. Định nghĩa Có rất nhiều định nghĩa được đưa ra cho hệ phân tán. Sau đây là một số định nghĩa: Hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm (máy tính) được kết nối với nhau bởi một mạng máy tính. Hệ phân tán là một tập các máy tính độc lập giao tiếp với người dùng như một hệ thống thống nhất, toàn vẹn. Hệ phân tán là tập hợp các máy tính tự trị được kết nối với nhau bởi một mạng máy tính và được cài đặt phần mềm hệ phân tán Distributed systems software Hệ phân tán = Mạng máy tính + Phần mềm Hệ phân tán Ví dụ Hệ phân tán 1. Mạng máy tính là 1 hệ phân tán trong đó phần mềm hệ phân tán cung cấp các ứng dụng truyền thông Phải nắm vững về kiến trúc mạng máy tính (Network architecture) Topology Protocol (Sơ đồ kết nối hình học) (Giao thức) Mô hình ISO Mô hình TCPIP Mô hình ATM (trình không đồng bộ) (B_ISDN_mạng tích hợp dịch vụ số) Chuẩn de facto (thực tế) de jure (pháp lý) 1.2. Hệ điều hành phân tán Dòng Unix BSD4…hệ điều hành phân tán đầu tiên được xây dựng cho các máy mini. VD máy mini của IBM (RS6000 hoặc AS400) Mini (Unix hoặc Unix like) Terminal (màn hình, bàn phím) Unix cài đặt trên máy VAX (DEC) Để nâng cao chức năng phân tán của hệ điều hành Unix (BSD) nhóm Berkeley System Distributing. NES Network file system: hệ thống quản trị mạng Đại học Urije (Amsterdam Hà Lan) có sản phẩm là Amoeba được thiết kế theo các tiêu chuẩn phân tán Đại học Carmegie – Hellon (Mỹ) có sản phẩm có tên là Mach cài trên các máy chuyên dụng → máy NEXT Viện nghiên cứu tin học tự động (Pháp) INRIA đặt tên là Chorus (không thương mại hóa) 1.3. Các dịch vụ ứng dụng (hệ thống thông tin) phân tán Hệ đặt vé giữ chỗ máy bay Hệ thống quản lý du lịch Các hệ thống thương mại điện tử Các hệ thống hội nghị từ xa (Teleconference) or Video conferancy Theo phân loại cổ điển thường phân thành 3 loại Hệ điều hành phân tán Cở sở dữ liệu phân tán Các hệ thống tính toán phân tán (Distributed Computing Systems) Hiện nay chỉ phân thành 2 loại Hệ điều hành phân tán Các hệ thống thông tin phân tán Ví dụ: Hệ thống thông tin quản lý du lịch Công ty du lịch gồm nhiều đại lý đặt tại các thành phố. Mỗi đại lý có các chức năng: Cung cấp thông tin Đăng ký du lịch Mỗi đại lý phải lưu trữ thông tin liên quan đến hai chức năng cơ bản. Như vậy mỗi đại lý sẽ được xây dựng một hệ thông tin học cục bộ mạng WAN Cơ sở dữ liệu gốc Cơ sở dư liệu bản sao Privatenetwork Mạng quốc gia công ty khác Cơ sở dữ liệu bản sao Cơ sở dữ liệu bản sao Phương án 1: Cơ sở dữ liệu tập trung (kiến trúc tập trung) Phương án 2: Kiến trúc phân tán • Dùng các bản sao (có Cơ Sở Dữ Liệu gốc và các Cơ Sở Dữ Liệu bản sao) • Không dùng Cơ Sở Dữ Liệu tổng thể, mỗi đại lý có Cơ Sở Dữ Liệu cục bộ (chỉ lưu giữ các thông tin liên quan đến đại lý này) Nhiều vấn đế nảy sinh cần giải quyết: • Định dạng (IdertificationNaming) • Chia sẻ tài nguyên (Resource sharing) • Giải quyết tương tranh (Concurrency) Deadlock: hiện tượng yêu cầu tài nguyên quay vòng, xử lý bằng cách hủy bỏ một tiến trình nào đó • Giải quyết đồng bộ hóa giữa các tiến trình • Truyền thông liên tiến trình (Interprocess Communication) 1.4. Mục tiêu và đặc trưng của hệ phân tán Hệ phân tán có các mục tiêu và đặc trưng sau đây:  Kết nối người sử dụng với tài nguyên Đặc thù của một hệ phân tán là có một tập tài nguyên (hữu hạn) và một tập người sử dụng (hữu hạn nhưng tăng trưởng rất nhanh). Do đó bài toán cơ bản, cuối cùng cần phải giải quyết của hệ phân tán là tìm giải pháp chia sẻ tài nguyên giữa các người sử dụng một cách tối ưu. 1. Chia sẻ tài nguyên Hardware Software Data Có 2 mô hình chính • Mô hình kháchchủ (Clientserver) • Mô hình hướng đối tượng (Object oriented) Ví dụ 1: Một server Queue Tài nguyên … Server Nhiều server … … … … … Chú ý: Chức năng phân bổ giữa S và C 2. Mỗi tài nguyên cần chia sẻ được xem như là một đối tượng (Object) • Đối tượng đó được định danh duy nhất trong toàn bộ hệ thống. • Đối tượng có thể di động trong hệ thống mà không cần tới định danh. • Mỗi tiến trình của người sử dụng muốn yêu cầu một tài nguyên nào đấy nó phải gửi một request tới đối tượng tương ứng với tài nguyên đó  sẽ có một hệ điều phối tiếp nhận các request đó và xử lý. 3. Tính mở (Openness) Khả năng bổ sung them các dịch vụ mới mà không làm thay đổi hoặc cản trở đối với các dịch vụ đã có  kể cả khả năng bổ sung tài nguyên mới. 4. Tính tương tranh (concurrency) 5. Tính chịu lỗi (Frult To Lerance) • Khi có một sự cố ở đâu đó, tiến hành cô lập sự cố. • Đi kèm với khả năng chịu lỗi là khả năng phục hồi: lưu trữ khả năng trung gian ngay trước khi xảy ra lỗi và thực hiện hồi phục lỗi từ điểm đó. 6. Tính thay đổi theo quy mô (tính co giãn) Scalabbility Hệ phân tán được thiết kế sao cho khi tăng quy mô hệ phân tán thì phần mềm chạy trên đó tăng ít (quy mô tăng hoặc giảm) 7. Tính trong suốt (Transparency) • Khả năng “che giấu” đối với người sử dụng, chương trình ứng dụng: che giấu sự rời rạc của các thành phần hệ phân tán  ISO (Reference Model for Open Distributed Processing 1992) • Mô hình tham chiếu cho các hệ phân tán mở Định nghĩa: 8 loại trong suốt 1. Trong suốt truy cập (access transparency): cho phép các đối tượng thông tin cục bộ hay ở xa đều được truy cập bằng cùng một thao tác như nhau. 2. Trong suốt định vị (location transparency): cho phép các đối tượng thông tin truy cập mà không cần biết đến vị trị địa lý của chúng. 3. Trong suốt tương tranh: cho phép một số hoặc nhiều tiến trình hoạt động đồng thời bằng cách chia sẻ sử dụng nhiều thông tin mà không làm cản trở công việc chung, không làm tương tranh (concurrency transparency). 4. Trong suốt lặp (replication transparency): cho phép dùng nhiều bản sao của các đối tượng thong tin để tăng độ tin cậy và bản sao của hệ thống. 5. Trong suốt lỗi (failure transparency): cho phép che giấu các sự cố xảy ra trong hệ thống. 6. Trong suốt di trú (migration transparency): cho phép di chuyển các đối tượng thông tin trên hệ thống mà không ảnh hưởng đến người sử dụng và trình ứng dụng. 7. Trong suốt hiệu năng (performance transparency): cho phép hệ thống được cấu hình lại để tăng hiệu năng (cấu hình lại cả phần cứng và phần mềm). 8. Trong suốt về quy mô (scaling transparency).

HỆ PHÂN TÁN (Distributed Systems) Chương 1: TỔNG QUAN VỀ HỆ PHÂN TÁN Công nghệ thông tin viễn thông ngày phát triển, đòi hỏi nhu cầu xử lí thông tin ngày cao, nhanh nhiều lần tốc độ phát triển tài nguyên phần cứng phần mềm Có nhiều vấn đề đặt mà hệ thống tập trung thông thường không đáp ứng được, tốc độ xử lí hạn chế Xây dựng hệ thống phân tán có khả xử lí đồng thời toán nhiều máy tính hướng giải khả thi chứng minh tính hữu dụng Hệ thống phân tán tạo nhiều thuận lợi việc chia sẻ thông tin toàn giới Mặt khác phát triển không ngừng kỹ thuật tiên tiến máy tính, đặc biệt giải pháp mạng, với bùng nổ nhanh chóng dịch vụ nguồn thông tin mạng làm gia tăng số người sử dụng Internet đến số hàng tỷ (theo International Data Corp, tính đến cuối năm 2006 có tỷ người toàn giới kết nối Internet) Các đặc điểm nguồn thông tin, tổ chức mạng, việc khai thác, xử lý thông tin ngày trở nên phức tạp đa dạng hơn, kể đến khuynh hướng yếu: Các thiết bị di động (Mobile devices): Việc cung cấp phần mềm, dịch vụ hỗ trợ hiệu cho lớp thiết bị di động (laptop, PDAs đến điện thoại di động hay sổ tay điện tử ) phải đối mặt với nhiều khó khăn thiết bị di động thường có tài nguyên hạn hep, thường dựa kết nối với băng thông thấp, độ trễ cao đường điện thoại, hay mạng không dây Người dùng di động (Mobile users): Ngày người dùng thường có nhu cầu truy cập vào máy tính mình, tài khoản từ đâu, việc hỗ trợ kết nối nơi, lúc thiết bị thách thức đặt Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ không thỏa mãn với chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên biệt hoá nhu cầu cách chủ động Internet sở để thực mong muốn này, vấn đề lại khả hỗ trợ chuyên biệt hoá ứng dụng mạng dành cho người dùng Nguồn tin đa dạng, khối lượng cực lớn: Đã xuất bùng nổ thông tin mạng với xuất nhiều kho liệu khổng lồ Các kho liệu lại cung cấp từ nhiều nguồn nên thường không đồng tổ chức, lại khó khăn người dùng truy vấn Gia tăng sử dụng mạng cục bộ: Việc mạng Intranet xây dựng phổ biến điều kiện tốt để triển khai kỹ thuật việc xây dựng ứng dụng mạng, Trang Intranet cho phép việc thiết lập an toàn hệ thống dễ dàng tập hợp mang tính cộng tác tin cậy Môi trường không đồng nhất: Khi kết nối máy tính, mạng cục vào Internet, ứng dụng người dùng phải đối mặt với môi trường không đồng phần cứng, lẫn kiến trúc, hệ điều hành…Và toán tương thích, dễ mang chuyển vấn đề cần giải Sự khập khiễng đường truyền: Mặc dù ngành viễn thông đạt đến tiến đáng kinh ngạc, cho đời loại cáp quang với tốc độ truyền tải nhanh đáng kể, đa số người dùng bị giới hạn với thiết bị kết nối modem hay đường truyền băng thông thấp với mạng không dây Với tất đặc điểm đây, ứng dụng phân tán phát triển theo mô hình client-server truyền thống tỏ số bất lợi đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp cuối dịch vụ thiếu linh động, khó thay đổi hay bổ sung Mobile Agent mô hình tiến trình - gọi agent - có tính tự trị khả di động từ máy chủ sang máy chủ khác để hoàn tất tác vụ Ý tưởng chủ đạo mobile agent di chuyển xử lý đến gần nguồn liệu, nhờ giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng tạo tưng thích mạnh môi trường không đồng Mobile agent với ưu điểm hứa hẹn giải pháp mới, hiệu dễ dàng việc phát triển ứng dụng phân tán 1.1 Định nghĩa Có nhiều định nghĩa đưa cho hệ phân tán Sau số định nghĩa: - Hệ phân tán hệ thống có chức liệu phân tán trạm (máy tính) kết nối với mạng máy tính - Hệ phân tán tập máy tính độc lập giao tiếp với người dùng hệ thống thống nhất, toàn vẹn - Hệ phân tán tập hợp máy tính tự trị kết nối với mạng máy tính cài đặt phần mềm hệ phân tán Distributed systems software Hệ phân tán = Mạng máy tính + Phần mềm Hệ phân tán Ví dụ Hệ phân tán Mạng máy tính hệ phân tán phần mềm hệ phân tán cung cấp ứng dụng truyền thông Phải nắm vững kiến trúc mạng máy tính (Network architecture) Topology (Sơ đồ kết nối hình học) - Mô hình ISO - Mô hình TCP/IP - Mô hình ATM (trình không đồng bộ) Protocol (Giao thức) Trang Chuẩn (B_ISDN_mạng tích hợp dịch vụ số) - de facto (thực tế) - de jure (pháp lý) 1.2 Hệ điều hành phân tán - Dòng Unix BSD4…hệ điều hành phân tán xây dựng cho máy mini VD máy mini IBM (RS/6000 AS400) Mini (Unix Unix like) Mini T Terminal (màn hình, bàn phím) Unix cài đặt máy VAX (DEC) Để nâng cao chức phân tán hệ điều hành Unix (BSD) nhóm - Berkeley System Distributing NES Network file system: hệ thống quản trị mạng - Đại học Urije (Amsterdam - Hà Lan) có sản phẩm Amoeba thiết kế theo tiêu chuẩn phân tán - Đại học Carmegie – Hellon (Mỹ) có sản phẩm có tên Mach cài máy chuyên dụng → máy NEXT - Viện nghiên cứu tin học tự động (Pháp) INRIA đặt tên Chorus (không thương mại hóa) 1.3 Các dịch vụ ứng dụng (hệ thống thông tin) phân tán - Hệ đặt vé giữ chỗ máy bay - Hệ thống quản lý du lịch - Các hệ thống thương mại điện tử - Các hệ thống hội nghị từ xa (Teleconference) or Video conferancy Theo phân loại cổ điển thường phân thành loại - Hệ điều hành phân tán - Cở sở liệu phân tán - Các hệ thống tính toán phân tán (Distributed Computing Systems) Hiện phân thành loại - Hệ điều hành phân tán - Các hệ thống thông tin phân tán Ví dụ: Hệ thống thông tin quản lý du lịch Công ty du lịch gồm nhiều đại lý đặt thành phố Mỗi đại lý có chức năng: - Cung cấp thông tin - Đăng ký du lịch Trang Mỗi đại lý phải lưu trữ thông tin liên quan đến hai chức Như đại lý xây dựng hệ thông tin học cục mạng WAN Cơ sở liệu gốc Cơ sở dư liệu Privatenetwork A B Mạng quốc gia/ công ty khác Mạng WAN C D Cơ sở liệu Cơ sở liệu Phương án 1: Cơ sở liệu tập trung (kiến trúc tập trung) Phương án 2: Kiến trúc phân tán • Dùng (có Cơ Sở Dữ Liệu gốc Cơ Sở Dữ Liệu sao) • Không dùng Cơ Sở Dữ Liệu tổng thể, đại lý có Cơ Sở Dữ Liệu cục (chỉ lưu giữ thông tin liên quan đến đại lý này) Nhiều vấn đế nảy sinh cần giải quyết: • Định dạng (Idertification/Naming) • Chia sẻ tài nguyên (Resource sharing) • Giải tương tranh (Concurrency) Deadlock: tượng yêu cầu tài nguyên quay vòng, xử lý cách hủy bỏ tiến trình • • Giải đồng hóa tiến trình Truyền thông liên tiến trình (Interprocess Communication) 1.4 Mục tiêu đặc trưng hệ phân tán Hệ phân tán có mục tiêu đặc trưng sau đây:  Kết nối người sử dụng với tài nguyên Đặc thù hệ phân tán có tập tài nguyên (hữu hạn) tập người sử dụng (hữu hạn tăng trưởng nhanh) Do toán bản, cuối cần phải giải hệ phân tán tìm giải pháp chia sẻ tài nguyên người sử dụng cách tối ưu Chia sẻ tài nguyên Hardware Software Data Trang Có mô hình • Mô hình khách/chủ (Client/server) • Mô hình hướng đối tượng (Object oriented) Ví dụ 1: Một server C Queue S C … R Tài nguyên Server C n Nhiều server C S1 C S2 R … … … … … C Sn n Chú ý: Chức phân bổ S C Mỗi tài nguyên cần chia sẻ xem đối tượng (Object) • • • Đối tượng định danh toàn hệ thống Đối tượng di động hệ thống mà không cần tới định danh Mỗi tiến trình người sử dụng muốn yêu cầu tài nguyên phải gửi request tới đối tượng tương ứng với tài nguyên  có hệ điều phối tiếp nhận request xử lý Trang Tính mở (Openness) Khả bổ sung them dịch vụ mà không làm thay đổi cản trở dịch vụ có  kể khả bổ sung tài nguyên Tính tương tranh (concurrency) Tính chịu lỗi (Frult To Lerance) • • Khi có cố đâu đó, tiến hành cô lập cố Đi kèm với khả chịu lỗi khả phục hồi: lưu trữ khả trung gian trước xảy lỗi thực hồi phục lỗi từ điểm Tính thay đổi theo quy mô (tính co giãn) Scalabbility Hệ phân tán thiết kế cho tăng quy mô hệ phân tán phần mềm chạy tăng (quy mô tăng giảm) Tính suốt (Transparency) • • Khả “che giấu” người sử dụng, chương trình ứng dụng: che giấu rời rạc thành phần hệ phân tán  ISO (Reference Model for Open Distributed Processing 1992) Mô hình tham chiếu cho hệ phân tán mở Định nghĩa: loại suốt Trong suốt truy cập (access transparency): cho phép đối tượng thông tin cục hay xa truy cập thao tác Trong suốt định vị (location transparency): cho phép đối tượng thông tin truy cập mà không cần biết đến vị trị địa lý chúng Trong suốt tương tranh: cho phép số nhiều tiến trình hoạt động đồng thời cách chia sẻ sử dụng nhiều thông tin mà không làm cản trở công việc chung, không làm tương tranh (concurrency transparency) Trong suốt lặp (replication transparency): cho phép dùng nhiều đối tượng thong tin để tăng độ tin cậy hệ thống Trong suốt lỗi (failure transparency): cho phép che giấu cố xảy hệ thống Trong suốt di trú (migration transparency): cho phép di chuyển đối tượng thông tin hệ thống mà không ảnh hưởng đến người sử dụng trình ứng dụng Trong suốt hiệu (performance transparency): cho phép hệ thống cấu hình lại để tăng hiệu (cấu hình lại phần cứng phần mềm) Trong suốt quy mô (scaling transparency) 1.5 Các nguyên lý hệ phân tán Các nguyên lý vấn đề cần nghiên cứu hệ phân tán là: - Truyền thông - Tiến trình Trang - Định danh - Đồng - Nhất quán nhân - Tính chịu lỗi - An toàn – an ninh 1.6 Hệ phân tán dựa đối tượng ( Distributed Object-Based System) Corba CORBA (Common Object Request Broker Architecture) chuẩn hệ đối tượng phân tán (distributed object – based sysem) Corba tổ chức OMG ( Object Management Group ) đưa với mục đích làm đặc tả thống cho hệ phân tán nhằm giải vấn đề tương thích ứng dụng mạng khác Kiến trúc Corba gồm bốn nhóm thành phần nối với ORB ( Object Request Broker ) Hình 2.1 Kiến trúc Corba ORB đóng vai trò cốt lõi hệ Corba Một khái niệm đáng ý Corba facility : tập hợp dịch vụ để thực chức Có hai nhóm là: - Horizontal facilities: dịch vụ đa dụng cấp cao độc lập với vùng ứng dụng - Vertical facilities: dịch vụ cấp cao hướng tới vùng ứng dụng cụ thể  Mô hình đối tượng CORBA dùng mô hình đối tượng từ xa (remote object model) Trong đối tượng dịch vụ mô tả CORBA IDL IDL mô tả xác phương thức cú pháp đối tượng Các luật ánh xạ từ đặc tả IDL sang ngôn ngữ lập trình cụ thể mô tả Tổ chức chung hệ CORBA hình sau: Trang Hình 2.2 Mô hình tổ chức hệ Corba Mọi tiến trình dù client hay server phải dùng tới ORB ORB đảm nhận chức tổ chức quản lý yêu cầu phản hồi Nó có hai dịch vụ tổ chức lời gọi đối tượng tìm dịch vụ tương ứng với tiến trình Client giao tiếp với ORB qua giao diện (interface) Do có trường hợp cần có giao diện phù hợp lúc chạy chương trình nên có khái niệm giao diện triệu gọi động (dynamic invocation interface) Giao diện cho phép client tạo lời gọi vào lúc chạy ( runtime)  Kho chứa giao diện kho chứa thực thi Để thực lời gọi động được, đòi hỏi có kho chứa giao diện để tiến trình tìm kho lời gọi thích hợp lúc chạy CORBA đưa kho chứa giao diện (Interface Repository) – chứa tất định nghĩa giao diện Khi dịch định nghĩa giao diện chương trình dịch IDL gán với định danh kho chứa ( repository indentifier) Nên dùng định danh lấy định nghĩa giao diện từ kho chứa Kho chứa giao diện chuẩn hóa Bên cạnh khó chứa giao diện CORBA đưa : kho chứa thực thi (Implementation Repository) Kho chứa thực thi chứa tất thứ liên quan để thực kích hoạt đối tượng Kho chứa thực thi gắn kết với hệ điều hành cụ thể nên chuẩn hóa kho chứa giao diện  Các dịch vụ CORBA Một dịch vụ CORBA độc lập với ứng dụng dùng CORBA Các dịch vụ chia làm nhóm sau: - Dịch vụ thu thập (collection service): Gom nhóm đối tượng vào danh sách, hàng đợi… - Dịch vụ truy vấn ( query service ) : Tạo tập hợp đối tượng để truy vấn ngôn ngữ khai báo - Dịch vụ điều khiển tương tranh: Để cho phép truy cập đồng thời vào đối tượng - Dịch vụ kiện: Để truyền thông không đồng kiện - Dịch vụ thông báo ( notification service ): để hỗ trợ việc thông báo có kiện Trang - Dịch vụ mở rộng ( Externalization service ): Để đóng gói mở gói ( marshaling unmarshaling) đối tượng - Dịch vụ vòng đời (life cycle service) : Tạo, xóa, chép di chuyển đối tượng - Dịch vụ quyền: Gán quyền người phát triển vào đối tượng - Dịch vụ đặt tên (naming service): Gán đối tượng với tên chúng - Dịch vụ cung cấp thuộc tính ( property service ) - Dịch vụ thương mại ( trading service ): Cung cấp chế để đối tượng quảng cáo thuộc tính - Dịch vụ lưu trữ ( persistence service) : Để lưu trữ lâu dài đối tượng - Dịch vụ quan hệ ( relationship service) : Mô tả quan hệ đối tượng - Dịch vụ an ninh: Cung cấp cấu cho kênh mật, xác thực kiểm tra (audit) - Dịch vụ thời gian : Cung cấp thời gian DCOM DCOM (Distributed COM) hình thành dựa công nghệ đối tượng thành phần (Component Object Model – COM) Microsoft Mục tiêu COM hỗ trợ phát triển thành phần kích hoạt tương tác với đối tượng khác Bản thân COM cung cấp dạng thư viện liên kết tới tiến trình Ban đầu, phát triển để hỗ trợ gọi Compound Document văn xây dựng từ thành phần khác nhau, thành phần lại gắn kết với ứng dụng tạo Để hỗ trợ compound document, Microsoft cần cách thức tổng quát nhằm phân biệt thành phần khác gắn kết chúng lại với Điều khởi đầu cho công nghệ có tên OLE - Object Linking and Embedding Hình 2.3 Mô hình chung ActiveX, OLE COM Trong hình có ActiveX, chung tất dùng để gọi OLE DCOM mang lại cho mô hình khả liên lạc tiến trình với thành phần (component) nằm máy khác Cơ chế trao đổi thông tin thành phần COM DCOM nhau.Nên người lập trình, khác biệt COM DCOM thường che sau nhiều giao diện  Mô hình đối tượng DCOM sử dụng mô hình đối tượng từ xa Trang Cũng giống CORBA, DCOM bám xung quanh việc thực giao diện Một đối tượng DCOM đơn giản coi thực giao diện, đối tượng đơn lẻ triển khai vài giao diện lúc Tuy nhiên khác với CORBA, DCOM có giao diện nhị phân (binary interface) Nó bảng với trỏ tới phần thực thi phương thức giao diện DCOM có IDL gọi Microsoft IDL Mỗi giao diện DCOM có định danh 128 bit (Interface Indentifier - IID) định danh có tính toàn cục Một đối tượng DCOM tạo thể (instance) lớp để làm cần thiết phải có trước lớp Để giải vấn đề này, DCOM có đối tượng lớp Một đối tượng coi dùng giao diện IClassFactory Giao diện có phương thức CreateInstance, giống toán tử new C++ hay Java Việc gọi CreateInstance đối tượng lớp tạo đối tượng DCOM Một đối tượng lớp đại diện cho tập đối tượng có chung kiểu thực giao diện Các đối tượng thuộc lớp khác trạng thái mà Trong DCOM, đối tượng lớp tham chiếu thông qua định danh lớp (CLSID) Tất đối tượng triển khai giao diện chuẩn gọi IUnknown Khi đối tượng tạo lời gọi CreateInstance, đối tượng lớp trả lại trỏ tới giao diện Một điểm khác biệt với mô hình đối tượng CORBA: tất đối tượng DCOM đếu thời DCOM có hỗ trợ việc triệu gọi động đối tượng cách dùng giao diện IDispatch Giao diện tương tự DII CORBA  Thư viện loại (Type library) Registry Thư viện loại DCOM tương tự kho chứa giao diện CORBA Một thư viện loại thường gắn với ứng dụng thành phần lớn có chứa nhiều đối tượng lớp Hình 2.4 Thư viện loại DCOM Để kích hoạt đối tượng, tức đảm bảo tạo đặt vào tiến trình để chấp nhận lời triệu gọi, DCOM sử dụng registry Window Trang 10 Database Proxy Một hạn chế Zeus liệt kê vào môi trường mobile agent hướng nghiên cứu tính di động Zeus bước đầu, chưa cài đặt Do mà tính bảo mật Zeus cho agent Điều khắc phục phiên sau Zeus triển khai số ứng dụng Agent Based Work-flow Management, PTA: Personal Travel Assistance, Personal Computer Manufacture, Agentbased Electronic Commerce, Network Management (VPNP), Home Shopping 5.1.2.4 Nguyên lý hoạt động So sánh với kĩ thuật khác  Để hiểu rõ nguyên lý hoạt động môi trường mạng Mobile Agent, ta so sánh với nguyên lý hoạt động kĩ thuật khác: Có cách thực thi code môi trường mạng :  Kỹ thuật pull code Áp dụng mô hình client-server, bắt đầu client gửi yêu cầu đến server, server gửi code client code thực thi, cho kết client Thao tác gồm bước : Bước : máy client yêu cầu đến server gửi Request Code Code Server Client Hình.4.3 Kỹ thuật Pull code – Bước Bước : server gửi code cho client Request Code Code Code Server Client Hình 4.4 Kĩ thuật Pull code – Bước Bước : code thực thi client Code Server execute Code Client Trang 72 Hình 4.5 Kỹ thuật Pull code – Bước Ví dụ : Các Java applet thực thi theo phương pháp Chú ý : mô hình này, code server gửi tới client thực thi client Server lưu trữ code  Kĩ thuật push code Khi có yêu cầu từ người dùng, máy (1 node) mạng gửi code tới máy (1 node) khác môi trường mạng thực thi máy Thao tác gồm bước : Bước : tự thân máy A gửi code đến máy B mà yêu cầu từ phía B Trong mô hình này, A máy có nối mạng với B không cần điều kiện A phải server Remote exec Code Code node A node B Hình 4.6: Kỹ thuật Push code – Bước Bước : code thực thi máy B Code A execute Code node A node B execute Hình 4.7 Kỹ thuật Push code – Bước Chú ý : A lưu trữ code Như vậy, mô hình trên, nơi gửi code giữ lại code  Kỹ thuật autonomous code Code tự định thực thi đâu Trang 73 Bước : code sau thực thi máy A tự đóng gói di trú tới Máy B execute Migrate Code Code node A node B Hình.4.8 Kỹ thuật Autonomous code – Bước Bước : code thực thi máy B, lúc code hoàn toàn không A execute Code Creation node A node B Serialize Hình 4.9 Kĩ thuật Autonomous code – Bước Ví dụ : mobile agent hoạt động theo phương pháp Tự quyếtMigrate định đóng gói, không để lại di trú đến đâu điểm khác biệt mobile agent với kĩ thuật  Đời sống agent Host Deserializv e Execute Migrate Request Serialize Destroy or sleep Yêu cầu di trú từ nguồn Trang 74 Migrate Hình 4.10 Vòng đời agent Creation : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho agent Serialize: Lưu lại trạng thái agent trước di trú đến AgentOS khác Migrate: Di trú agent kèm tình trạng đến nơi khác Deserialize: Tái tạo lại trạng thái trước di trú agent Execute: Truy cập vào dịch vụ host, liên lạc với agent khác, hoàn thành nhiệm vụ agent Migrate Request: Yêu cầu di trú đến host khác Destroy or sleep: Khi nhiệm vụ hoàn thành gặp trở ngại tiếp tục hoạt động agent tự hủy tự đưa vào trạng thái ngủ đông (sleep) Mọi agent thực công việc theo logic: đầu tiên, agent tạo ra, di trú từ host sang host khác cuối bị huỷ sau hoàn thành nhiệm vụ  Chi tiết vòng đời agent Vòng đời agent bắt đầu agent tạo host Khi đó, agent cấp định danh Tình trạng ban đầu khởi tạo theo Khi sẵn sàng nhận lệnh để di trú đến host khác nằm đường agent, agent lưu lại trạng thái hành tiến hành trình di trú Nếu trình di trú thất bại, agent tự ngừng hoạt động (deactivate) để tự kích hoạt lại sau khỏang thời gian định trước hay kích hoạt tiến hành lại trình di trú đến host khác Khi di trú đến host thành công, agent phục hồi lại trạng thái Lúc này, agent bắt đầu thực thi nhiệm vụ nó, sử dụng dịch vụ host, liên lạc với agent khác… Sau agent hoàn tất nhiệm vụ, bị huỷ chuyển sang trạng thái ngủ đông có yêu cầu từ đếm thân agent Khi đó, agent lưu lại trạng thái di trú đến host khác.Vòng đời agent lại lặp lại theo trình Trang 75 tự hoàn thành nhiệm vụ hết thời gian hoạt động agent bị hủy Các điều kiện agent phải thỏa mãn   Có mã xác nhận  Xác định agent khác thực thi host  Có khả nhận gửi thông điệp cho agent khác 5.1.2.5 Agent Host  Khái niệm Agent tồn mà phải dựa phần mềm khác gọi host hay AgentOS để sống hoạt động Chính host tạo agent từ đọan code có, thực thi agent, chuyển đến host khác hay hủy agent Khi host bị hủy agent hoạt động dựa host bị hủy theo  Các yêu cầu cho AgentOS  Độc lập flatform : AgentOS phải có khả hỗ trợ agent môi trường mạng không đồng  Multithreaded: AgentOS phải có khả cho phép nhiều agent hoạt động đồng thời ( có độ ưu tiên khác nhau)  Di trú agent trạng thái nó: Agent yêu cầu host di trú agent tới host khác thực thi  Có chế cho agent host giao tiếp được: AgentOS phải cung cấp khả liên lạc thông qua kiện agent node agent node khác  Tái sử dụng agent: AgentOS phải cung cấp cho người dùng khả phân loại, lưu trữ agent để lấy sử dụng lại sau  Bảo mật: AgentOS phải có chế chống lại agent tạo với ý đồ xấu nhằm ngăn chặn việc bị đánh cắp thông tin bị công từ chối dịch vụ…  Có thể mở rộng 5.1.2.6 Ích lợi mobile agent  Giảm bandwidth Kĩ thuật mobile agent cho phép người dùng đóng gói thông tin, gửi đến máy đích thực xử lý liệu, trao đổi cục Như góp phần làm giảm liệu thô mạng, góp phần làm giảm tải mạng đáng kể Phương châm thực kĩ thuật mobile agent : mang xử lý đến nơi chứa liệu mang liệu nơi xử lý  Giảm độ trễ Việc điều khiển hệ thống quy mô lớn phải chấp nhận trễ mạng định Nhưng điều không phép xảy hệ thống thời gian thực điều khiển đèn giao thông, dây chuyền sản xuất Khi đó, giải pháp mobile agent hữu ích việc khắc phục độ trễ nhờ vào việc agent gửi từ trung tâm điều khiển Trang 76 hành động cục bộ, tự trị, trực tiếp thi hành dẫn người điều khiển  Có thể thực thi ngắt kết nối mạng Khi gặp cố mạng di chuyển tiếp, agent tự đưa vào trạng thái chờ mạng thiết lập lại agent khởi động lại di chuyển tiếp để hoàn thành nhiệm vụ giao  Thực thi bất đồng tự động Thông thường, thiết bị di động thường phụ thuộc vào kết nối mạng đắt tiền yếu ớt Vì thế, tác vụ cần có kết nối liên tục thiết bị di động mạng tính kinh tế không khả thi mặt kĩ thuật Giải pháp mobile agent giải vấn đề cách nhúng tác vụ cần thực vào mobile agent gửi lên mạng Sau gửi đi, agent trở nên độc lập thi hành không đồng có khả tự trị Các thiết bị di động sau kết nối lại để đón agent trở  Nhanh giảm thiểu lỗi Với khả phản ứng động với kiện thay đổi bất lợi, mobile agent giúp việc xây dựng hệ thống mạnh mẽ chịu lỗi cao dễ dàng  Khắc phục tình trạng không đồng Việc xử lý tính toán mạng không đồng đa dạng phần cứng phần mềm sử dụng Do mobile agent độc lập với máy tính ( độc lập với phần cứng hệ điều hành ) tầng vận chuyển, phụ thuộc vào môi trường thi hành nên mobile agent cung cấp điều kiện tối ưu cho việc liên kết hệ thống không liên quan lại với  Đóng gói giao thức Khi liệu trao đổi hệ thống phân tán, việc truyền nhận liệu phải mã hóa giao thức cần thiết Các giao thức sở hữa máy hệ thống Tuy nhiên, giao thức phải tiến hóa để phù hợp với yêu cầu bảo mật tính hiệu quả, chúng trở nên cồng kềnh, nặng nề trở thành vấn đề nan giải Với giải pháp mobile agent, agent mang giao thức thích hợp di chuyển tới máy xa để thiết lập kênh truyền nhận thông tin tương ứng 5.1.2.7 Môi trường ứng dụng mobile agent Mobile agent hích hợp với loại ứng dụng sau:  Thu thập liệu phân tán Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt liên quan đến nhiều nguồn liệu không đồng nhất, việc cử mobile agent đến nguồn tin khai thác chỗ, quay với thông tin cần thiết làm giảm tải mạng giải tốt tóan tương thích  Theo dõi thông báo tin cập nhật Ứng dụng cổ điển làm bật chất không đồng mobile Trang 77 agent Các agent gởi đi, đến nơi có nguồn tin hoạt động theo dõi nguồn tin người dùng ngắt kết nối Sau đó, nguồn tin có thay đổi , agent quay báo cho chủ nhân Các agent gửi để chờ dạng thông tin xuất hiện, sau báo cho người dùng biết tự có hành động thích hợp thông tin  Giám sát phân tán thông tin Các mobile agent minh họa cho mô hình Internet Push, agent phổ biến tin tức cập nhật phần mềm cho nhà sản xuất Các agent mang software component thủ tục cần thiết đến máy cá nhân khách hàng tự cập nhật phần mềm máy Mô hình giúp nhà sản xuất chủ động việc phục vụ khách hàng để đảm bảo dịch vụ Mặt khác, ứng dụng lọai tỏ hiệu mạng cục hay chương trình quản lý quy trình tự động, sản xuất… để giúp người quản trị giám sát hệ thống  Xử lí song song Do agent tạo mạng, tạo ứng dụng đầy tiềm agent quản trị tác vụ song song.Một ứng dụng đòi hỏi nhiều tài nguyên xử lý phân bố cho agent mang thực nhiều máy tính khác để tận dụng tài nguyên trống cân tải  Thương mại điện tử Các ứng dụng thương mại điện tử cho phép người dùng thực giao dịch kinh doanh mạng Một giao dịch bao gồm thương lượng với thực thể xa đòi hỏi truy cập nguồn thông tin liên tục thay đổi Từ thực tế nảy sinh nhu cầu thay đổi hành vi thực thể để đạt nghi thức chung việc thương lượng Hơn nữa, việc di chuyển thành phần ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch quan tâm Vì công nghệ mobile agents giải pháp hấp dẫn cho lĩnh vực  Quản trị hệ thống mạng Đối với hệ thống mạng lớn, việc chẩn đoán lỗi, trì ổn định hệ thống công việc khó khăn Việc ứng dụng mobile agent vào việc quản trị mạng giúp cho công việc chẩn đoán lỗi trì từ xa ổn định hệ thống dễ dàng  Hỗ trợ thiết bị di động Do đặc điểm tài nguyên hạn chế không kết nối thường xuyên, việc xây dựng ứng dụng dựa mobile agent với khả di chuyển đến máy tính có cấu hình mạnh để hoạt động (truy vấn sở liệu, tìm tin…) trả kết giải pháp tốt cho người dùng thiết bị di động 5.1.2.8 Bảo mật Để đảm bảo agent đáng tin cậy, AgentOS tiến hành số kiểm tra với agent  Authentication: kiểm tra xuất xứ agent  Vertification: kiểm tra mã agent Trang 78  Authorisation: cho phép agent có quyền nhận truy cập số tài nguyên Trong trình di trú agent, để đảm bảo thông tin bảo vệ, áp dụng phương pháp mã hoá PKI 5.2 Chương trình mô Lập trình Java cho phép triệu gọi chương trình xa thực tính toán song song Yêu cầu : - Xây dựng Agent tính toán - Gửi Agent đến Server (giả xử lý) khác - Gọi thực từ xa Agent để tính toán song song vấn đề xác định trước - Nhận kết trung gian từ Agent tập hợp thành kết cuối 5.2.1 Xây dựng Agent tính toán - Thiết kế lớp Aent thừa kế Lớp giao diện Serializable Java cho phép thực đối tượng thực thể hóa, đóng gói đối tượng gửi - Lớp Agent chứa liệu phương thức liên quan đến việc : thiết lập địa host Server, xây dựng toán hạng, tóan tử đầu vào để hoạt động, tương tác với môi trường để thực thi tác vụ Đoạn lệnh mô tả phương thức hoạt động tác tử di động public class Agent implements Serializable { // Dia chi cua may chu mac dinh: 127.0.0.1 private String ServerAddress="127.0.0.1"; // So hieu cong cua may chu mac dinh: 1099 private String ServerPort="1099"; // Phep toan thuc hien giua so private String Operator="+"; // Bien luu gia tri cua cac so can tinh private double X,Y; // Dau hieu nhan biet doi tuong private String Signal=""; public double add(double x, double y) throws IOException { return (x+y); } public double sub(double x, double y) throws IOException { return (x-y); } public double mul(double x, double y) throws IOException Trang 79 { return (x*y); } public double div(double x, double y) throws IOException { return (x/y); } // Server address public void setServerAddress(String add) { ServerAddress = add; } public String getServerAddress() { return ServerAddress; } // Server port public void setServerPort(String port) { ServerPort = port; } public String getServerPort() { return ServerPort; } // Server operator public void setOperator(String op) { Operator = op; } public String getOperator() { return Operator; } // Thiet lap gia tri cho X public void setX(double x) { this.X = x; } public double getX() { return X; } // Thiet lap gia tri cho Y public void setY(double y) { this.Y = y; } Trang 80 public double getY() { return Y; } // Signal public void setSignal(String sig) { Signal = sig; } public String getSignal() { return Signal; } } 5.2.2 Gửi Agent đến Server (giả xử lý) khác - Tạo luồng kiểm tra Buffer Socket public ClientThread(JComboBox op, JTextArea content, boolean finish) { this.op = op; this.content = content; this.finish = finish; try { socket = new DatagramSocket(8888); byte inBuffer[] = new byte[256]; inDatagram = new DatagramPacket(inBuffer, inBuffer.length); } catch(Exception ex) { System.out.println("Loi: " + ex.toString()); } } - Đổi địa server để gởi public void run() { try { { // Don nhan du lieu tu may chu socket.receive(inDatagram); InetAddress addr = inDatagram.getAddress(); // Lay dia chi String hostName = addr.getHostName().trim(); // Lay so hieu cong String hostAddr = addr.getHostAddress().trim(); String data = new String(inDatagram.getData()).trim(); String num = data.substring(0, data.indexOf("|")); Trang 81 String port = data.substring(data.indexOf("|") + 1); content.append(" Data: " + num + "\n"); 5.2.3 Gọi thực từ xa Agent để tính toán song song vấn đề xác định trước - Đọc liệu buffer Server tính kết while(servrSock != null) { try { sock = servrSock.accept(); ObjectInputStream is = new ObjectInputStream(new BufferedInputStream(sock.getInputStream())); // Read object Agent agent = (Agent)is.readObject(); // Close connection is.close(); sock.close(); if(agent.getSignal().equals("COMPUTE")) { double result = 0; if(agent.getOperator().equals("+")) { result = agent.getX() + agent.getY(); } else if(agent.getOperator().equals("-")) { result = agent.getX() - agent.getY(); } else if(agent.getOperator().equals("*")) { result = agent.getX() * agent.getY(); } else if(agent.getOperator().equals("/")) { result = agent.getX() / agent.getY(); } content.setText("Calculate: " + String.valueOf(agent.getX()) + " " + agent.getOperator() + " " + String.valueOf(agent.getY())); content.append(" = " + String.valueOf(result) + "\n"); … } - Gởi liệu lại cho Client sau xử lý String s = String.valueOf(result); s += "|" + port; byte outBuffer[] = s.getBytes(); InetAddress serverAddr = InetAddress.getByName("localhost"); Trang 82 DatagramPacket outDatagram = new DatagramPacket(outBuffer, outBuffer.length, serverAddr, 8888); DatagramSocket socket = new DatagramSocket(); socket.send(outDatagram); socket.close(); 5.2.4 Nhận kết trung gian từ Agent tập hợp thành kết cuối - Đón nhận liệu từ máy chủ public void run() { try { { // Don nhan du lieu tu may chu socket.receive(inDatagram); InetAddress addr = inDatagram.getAddress(); // Lay dia chi String hostName = addr.getHostName().trim(); // Lay so hieu cong String hostAddr = addr.getHostAddress().trim(); String data = new String(inDatagram.getData()).trim(); String num = data.substring(0, data.indexOf("|")); String port = data.substring(data.indexOf("|") + 1); content.append(" Data: " + num + "\n"); // Luu du lieu vao bien x & y count ++; if(count == 1) { x = Double.parseDouble(num); } else if (count == 2) { y = Double.parseDouble(num); count = 0; // Luu ket qua tra ve double result = 0; String oprt = op.getSelectedItem().toString(); if(oprt.equals("+")){ result = x + y; } else if(oprt.equals("-")){ result = x - y; } else if(oprt.equals("*")){ Trang 83 result = x * y; } else if(oprt.equals("/")){ result = x / y; } content.append("Ket qua bai toan =" + String.valueOf(x) + oprt + String.valueOf(y) + " = " + String.valueOf(result) + "\n"); } } while(!finish); socket.close(); } catch(Exception ex) { System.out.println("Loi: " + ex.toString()); } } } 5.2.5 Một số kết thực mô Bước 1: Chạy Server1 ( Sau kích hoạt nút Khoi dong – chọn cổng 1099) Kết hiển thị Server Hình 4.11 Khởi động server Bước 2: Chạy Server2 Kết ( Sau kích chọn cổng 1098) thực Server2 hoạt nút Khoi dong - Trang 84 Hình 4.12 Khởi động server Bước 3: Chạy Client Khi thực chạy Client( Nhấn nút khởi động  Thực ), đồng thời nhập số liệu lựa chọn phép tóan Server hình Ta thu kết trả Client Server sau : Server : 15 + = 22 Server : 30 + 25 = 55 Kết Client : 22.0 + 55.0 = 77.0 Hình 4.13 Giao diện tổng hợp Client Trang 85 Hình 4.14a: Kết server Hình 4.14b: Kết server TÀI LIỆU THAM KHẢO  Tiếng Việt [1] Phương Lan -Lập trình JAVA_tập 2; NXB Lao động xã hội [2] Nguyễn Thúc Hải, Mạng máy tính hệ thống mở, Nhà xuất Giáo dục [3] TS Nguyễn Hoài Sơn -Giáo trình Hệ phân tán - ĐHQG Hà Nội  Tiếng Nước Ngoài [4] Principles and paradigms – A.S.Tanenbaum, M.V.Steen: Distributed system [5] Concepts and design G.Couloms, J.Dollimore, T.Kinberg: Distributed system [6] D B Lange, M Oshima, Programming and Deploying Java Mobile Agents with Aglets, Addison-Wesley, 1998  Tài liệu Internet [7] http://www.codeproject.com/ [8] http://en.wikipedia.org/wiki/Mobile_agent [9] http://www.wattpad.com/72987-H-ph-n-t-n [10].http://en.wikipedia.org/wiki/Distributed_computing [11].http://www.tech-faq.com/distributed-computing.shtml Trang 86 [...]... thông trong hệ thống phân tán Môt sự khác nhau quan trọng nhất giữa hệ phân tán và hệ thống bộ xử lí đơn là truyền thông liên quá trình Trong hệ thống bộ xử lí đơn, hầu hết truyền thông liên quá trình hoàn toàn có thể nắm bắt được sự tồn tại bộ nhớ bị chia sẽ Một ví dụ điển hình là vấn đề người sản xuất và người tiêu thụ trong đó một tiến trình ghi vào một bộ đệm được chia sẽ và một tiến trình khác... sẽ Trong hệ thống phân tán không có bất cứ một bộ nhớ nào được chia sẽ Vì vậy toàn bộ bản chất của truyền thông liên quá trình phải được xem xét lại một cách toàn diện bắt đầu từ điểm xuất phát Trong chương này chúng ta sẽ thảo luận về nhiều vấn đề, ví dụ, và các vấn đề có liên quan đến truyền thông liên quá trình trong hệ điều hành phân tán Chúng ta sẽ bắt đầu thảo luận các quy tắc mà tiến trình truyền... những hệ thống phân tán là căn cứ trên thông điệp đưa đến Khi tiến trình A muốn giao tiếp với tiến trình B thì trước tiên nó phải xây dựng một thông điệp mà trên đó có chứa không gian địa chỉ Sau đó nó thực hiện một lời gọi hệ thống, đó là nguyên nhân hệ điều hành tìm nạp thông điệp và gửi nó qua mạng để đưa đến B Mặc dù ý tưởng cơ bản đúng đắn dễ hiểu này đủ để tránh những xáo trộn nhưng tiến trình. .. hệ thống phân tán diện rộng có khả năng sử dụng giao thức OSI hoặc TCP/IP mà không bị mất trong khi thực hiện Trang 24 Tuy nhiên, đối với hệ thống phân tán cơ sở – LAN giao thức ở trên là rất thực tế Quá nhiều thời gian của CPU bị lãng phí trong việc thực hiện các giao thức mà thông lượng thực sự của nó qua mạng LAN thường chỉ là sức kéo nào đó mà LAN có thể làm Kết quả là hầu hết các hệ thống phân. .. một trung tâm nhưng nó không cân bằng từ hệ thống lớn và theo cách đó nó sẽ bị tách lìa Một phương thức khác để phân công một tiến trình xem xét là ngăn ngừa một tiến trình truy cập chính nó, xem xét từ một địa chỉ hệ thống trắng thừa, trả lại một khoảng trắng 64 bít số nhị phân, khả năng có hai tiến trình cùng truy cập đến một con số là rất hiếm và nhất là các hệ thống có độ cân bằng tốt Tuy nhiên ở... tại trường đại học Vrije Universiteit Amsterdam Globe là một hệ phân tán dựa trên đối tượng mà tính mở rộng (scalability) đóng một vai trò then chốt Mọi khía cạnh liên quan tới việc xây dựng một hệ thống hoạt động trên diện rộng, phục vụ nhiều người dùng đã định hướng cho thiết kế của Globe  Mô hình đối tượng Không giống như các hệ phân tán dựa trên đối tượng khác, Globe không đưa ra mô hình remote-object... một tiến trình về đích của máy tính, bộ phân cốt lõi sẽ biết làm gì với đầu vào thông báo - đưa nó tới nhân và chỉ thực hiện tiến trình ở đó.Tuy nhiên, cái gì sẽ xảy ra nếu ở đó có một vài tiến trình thực hiện ở đích của máy tính? Có một thông báo nào? Bộ phận cốt lõi không có cách biết Do đó, một sơ đồ sử dụng máy tính địa chỉ gửi đến xây dựng những quá trình chỉ có nghĩa duy nhất là tiến trình có... các bản trình bày Không giống như các lớp thấp hơn , lớp các bản trình bày có liên quan tới việc nhận các bit từ người gửi tới người nhận một cách đáng tin cậy và hiệu quả , lớp các bản trình bày có quan hệ với nội dung của các bit Hầu hết các thông báo không chứa các xâu bit ngẫu nhiên , nhưng chứa nhiều thông tin cấu trúc hơn như tên người, địa chỉ, số tiền và vân vân Trong lớp các bản trình bày... hình này là để cấu tạo hệ điều hành như một nhóm các tiến trình hợp lại , được gọi là các máy chcungxconf cái mà yêu cầu sự phục vụ tới người sử dụng thì được gọi là máy khách Máy chủ và máy khách thông thường chạy trên cùng một vi phân , như chúng ta đã thấy trước đó, cả máy khách và máy chủ đều thực hiện như các tiến trình của người sử dụng Một máy có thể thực hiện một tiến trình đơn lẻ hoặc nó có... như là lập trình truyền thông và như vậy thì sẽ sử dụng hơn Tuy vậy nó có tính chất riêng biệt của nó và các vấn đề chúng ta sẽ xem xét Sau cùng, chúng ta sẽ kết luận chương này bởi việc nghiên cứu làm thế nào mà các nhóm những tiến trình có thể giao tiếp được với nhau thay vì chỉ có hai tiến trình Một ví dụ chi tiết về nhóm giao tiếp ISIS sẽ được thảo luận Trang 17 2.1 Các giao thức được phân lớp: ... dụng phân tán 1.1 Định nghĩa Có nhiều định nghĩa đưa cho hệ phân tán Sau số định nghĩa: - Hệ phân tán hệ thống có chức liệu phân tán trạm (máy tính) kết nối với mạng máy tính - Hệ phân tán tập... thường phân thành loại - Hệ điều hành phân tán - Cở sở liệu phân tán - Các hệ thống tính toán phân tán (Distributed Computing Systems) Hiện phân thành loại - Hệ điều hành phân tán - Các hệ thống... Distributed systems software Hệ phân tán = Mạng máy tính + Phần mềm Hệ phân tán Ví dụ Hệ phân tán Mạng máy tính hệ phân tán phần mềm hệ phân tán cung cấp ứng dụng truyền thông Phải nắm vững kiến trúc

Ngày đăng: 16/12/2016, 04:58

Từ khóa liên quan

Mục lục

  • REQ

  • ACK

  • AYA

  • IAA

  • REQ

  • REP

  • ACK

  • REP

  • ACK

  • REQ

  • ACK

  • REP

  • REQ

  • REP

  • ACK

  • Chương 1: TỔNG QUAN VỀ HỆ PHÂN TÁN

    • 1.1. Định nghĩa

    • 1. Mạng máy tính là 1 hệ phân tán trong đó phần mềm hệ phân tán cung cấp các ứng dụng truyền thông

    • 1.2. Hệ điều hành phân tán

    • 1.3. Các dịch vụ ứng dụng (hệ thống thông tin) phân tán

      • 1.4. Mục tiêu và đặc trưng của hệ phân tán

      • 1. Chia sẻ tài nguyên

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan