Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1,25 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ------ BÀI TIỂU LUẬN Môn: HỆPHÂNTÁNĐề tài: VẤNĐỀĐỊNHDANHTRONGHỆPHÂNTÁN GVHD : PGS.TS Lê Văn Sơn HVHT : Phí Thị Lệ Tho CHUYÊN NGÀNH : Khoa học máy tính KHOÁ : 24 ĐÀ NẴNG, 04/2012 LỜI MỞ ĐẦU Hiện nay, ngành công nghệ thông tin phát triển vô cùng mạnh mẽ. Con người có thể giao tiếp với nhau và chia sẻ thông tin dữ liệu dù ở khoảng cách rất xa. Nhiều thành tựu mới ra đời, trong đó phải kể đến các phần mềm tăng khả năng điều hành, khai thác hiệu quả các tài nguyên của hệ thống tin học. Đặc biệt, các nhà nghiên cứu và các lập trình viên chuyên nghiệp rất quan tâm đến việc nghiên cứu và ứng dụng hệ thống tin học phân tán. Nội dung chủ yếu trình bày trong tiểu luận này là vấnđềđịnhdanhtronghệphân tán, bao gồm các nội dung chính: các vấnđề về định danh, liên kết giữa địnhdanh và đối tượng, thành lập dãy truy cập, phân giải tên tronghệphân tán. Ngoài ra còn có phần bài tập là một ứng dụng phân tán: giả sử ta có bảng CSDL phối hợp với một hoạt động được gọi từ bên ngoài nhằm phục vụ cho việc cập nhật thông tin hay tra cứu thông tin cần thiết, được trình bày bằng ngôn ngữ giả định. Tôi xin chân thành cảm ơn Thầy PGS.TS Lê Văn Sơn và các bạn lớp Khoa học máy tính khoá 24 - Đại học Đà Nẵng đã giúp tôi hoàn thành tiểu luận này. Người thực hiện Phí Thị Lệ Tho Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn Chương 1 LÝ THUYẾT VỀ VẤNĐỀĐỊNHDANHTRONGHỆ TIN HỌC PHÂNTÁN 1.1. Tin học hệphântán 1.1.1 Định nghĩa hệ tin học phântánTronghệ tin học phân tán, gọi tắt là hệphântán (distributed system), các bộ xử lý không chia sẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường truyền thông như những bus tốc độ cao hay đường dây điện thoại. Các bộ xử lý tronghệphântán thường khác nhau về kích thước và chức năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác nhau như site, node, computer v.v tùy thuộc vào trạng thái làm việc của chúng. 1.1.2 Ưu điểm và hạn chế của hệ thống phântán 1.1.2.1 Ưu điểm - Chia sẻ tài nguyên: Chia sẻ tài nguyên tronghệ thống phântán cung cấp một cơ chế để chia sẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiện các thao tác… - Tăng tốc độ tính toán: Hệ thống phântán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song. - An toàn: Nếu một vị trí tronghệ thống phântán bị hỏng, các vị trí khác vẫn tiếp tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống. - Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác. Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ. 1.1.2.2 Hạn chế - Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống phân tán, giá thành sẽ tăng lên. - Dễ mắc lỗi hơn: Vì các trạm tronghệphântán làm việc song song, khó có thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm. Do vậy mà số lỗi sẽ tăng lên. - Khối lượng các xử lý tăng: Hệ thống phântán cần truyền nhiều thông báo, nhiều tính toán phụ. Do vậy khối lượng xử lý tăng lên so với hệ thống tập trung. 1.2.3 Điều kiện của hệphântánĐể đảm bảo hoạt động thì các hệ thống kết nối với nhau phải thỏa mãn hai điều kiện cơ bản sau đây : - Bất kỳ một hệ thống thành phần nào (hệ cục bộ) đều có thể liên lạc thông suốt với các hệ thống thành phần khác. - Mỗi một hệ thống cục bộ được đặc trưng bằng một tên duy nhất và tên này có thể được nhận biết bởi các hệ thống viễn thông. HVTH: Phí Thị Lệ Tho Trang 1 Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn 1.2. Tên, định danh, liên kết và thành lập dãy truy cập 1.2.1 Tên (name) 1.2.1.1 Định nghĩa Một đối tượng tronghệphântán có thể là users, files, database objects, variables, communication links . Một tên (name) trong một hệ thống phântán là một chuỗi các bit ký tự được sử dụng để chỉ đến một đối tượng. Tên có thể có nhiều dạng khác nhau, chẳng hạn như tên thông thường, địa chỉ (address) hoặc địnhdanh (identifier). Địnhdanh là tên duy nhất cho một đối tượng. 1.2.1.2 Các yếu tố của tên Tên bao gồm năm yếu tố : chức năng của tên, cấu trúc của tên, ý nghĩa của tên, thông tin mà tên chứa đựng, thời gian tồn tại của ý nghĩa của tên. - Chức năng của tên: Sử dụng đểphân biệt một đối tượng từ những đối tượng khác - Cấu trúc của tên: Tên có cấu trúc thực thế bao gồm nhiều trường (field). Các tên có thể có cấu trúc giống nhau hoặc khác nhau. - Ý nghĩa của tên: Nếu một cái tên có ý nghĩa như nhau trong mọi ứng dụng thì nó có thể gửi và nhận giữa các ứng dụng khác nhau mà không cần quan tâm đến vị trí hiện tại của nó ở tronghệ thống. Các ứng dụng phải đảm bảo rằng một cái tên mang ý nghĩa này trong một ứng dụng thì tất cả các ứng dụng không thể nhận được ý nghĩa khác với cái tên giống như vậy. - Thông tin của tên: Tên chứa đựng thông tin về đối tượng như nghĩa, loại hoặc vị trí. Việc đặt tên phải tối ưu để từ tên của đổi tượng có thể lấy thông tin về đối tượng ngay lập tức mà không cần phải khó khăn đểphân tích tên. - Thời gian tồn tại của ý nghĩa của tên: Nghĩa của tên có thể vẫn giữ nguyên khi ứng dụng thực thi hoặc nó có thể thay đổi dù ứng dụng không cho phép. Cần phải ngăn chặn việc thay đổi nghĩa của tên mà các trạm không nhận ra và cho phép kiểm tra xem ý nghĩa của tên có thay đổi hay không. Nếu tên thay đổi mà không được trạm đồng ý, cần có những kỹ thuật địnhdanh cho phép trạm xác định được rằng tên chỉ đến đúng đối tượng chúng cần. 1.2.1.3 Các loại tên a. Tên đơn giản Là các loại tên không có cấu trúc, thường chứa đựng thông tin về vị trí (location) của một đối tượng hoặc quản lý (authority) của một đối tượng Ví dụ : #9B3FB1C8 b. Tên có cấu trúc thứ bậc Giữa các tên có sự móc nối quan hệ với nhau và có thứ bậc. Ví dụ : HVTH: Phí Thị Lệ Tho Trang 2 Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn Hình 1.1. Tên có cấu trúc thứ bậc Trong cấu trúc trên có thể xác định tên như: \Node 1\Files\John\Image 1.2.2 Địnhdanh (identify) 1.2.2.1 Giới thiệu Để chỉ đến một đối tượng, người ta thường sử dụng định danh. Địnhdanh là một dạng của tên nhưng địnhdanh là chuỗi các bit ký tự đặc trưng duy nhất cho đối tượng. Khi thực hiện chương trình, các địnhdanh cần phải gắn chặt với các đối tượng thực để trỏ chính xác vị trí của chúng. Trong từng thời điểm, cặp <định danh, đối tượng trỏ> tạo thành ngữ cảnh (context) thực hiện. Mối quan hệ giữa đối tượng cần trỏ đến và địnhdanh của nó gọi là liên kết. Những người sử dụng hay các ứng dụng tronghệphântán có thể truy cập đến cùng một đối tượng, đồng thời có thể trao đổi các địnhdanh với nhau. Địnhdanh trước hết cần có các yếu tố: có thể xác định vị trí, có thể chuyển đổi giữa các ứng dụng và có thể sử dụng lại. 1.2.2.2 Tại sao phải địnhdanh - Việc địnhdanh đối tượng giúp chúng ta nhận biết được một dịch vụ (service) hoặc một tài nguyên mà chúng ta muốn sử dụng và không bị nhầm lẫn. - Việc địnhdanh đối tượng cho phép các ứng dụng hoặc các tiến trình có thể chia sẻ các tài nguyên với nhau. - Việc địnhdanh đối tượng giúp an toàn cho hệ thống: Với một hệ thống có rất nhiều định danh, việc nhận biết một địnhdanh đòi hỏi địnhdanh đó phải hợp quy cách. Nếu toàn bộ hệ thống có sự thống nhất về địnhdanh thì sẽ đảm bảo cho việc cập nhật đến một đối tượng. 1.3 Liên kết 1.3.1 Định nghĩa Vấnđề liên kết được hiểu như mối liên hệ đối tượng cần trỏ đến và địnhdanh của nó. Liên kết hướng đến thành lập một chuỗi các truy cập đến đối tượng và nó phải thực hiện muộn hơn thời điểm thực hiện một lệnh truy cập đối tượng HVTH: Phí Thị Lệ Tho Trang 3 Node 1 Node 2 . Files Users . Files Users . John Paul . Image Yesterday Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn Tuy nhiên, khi thực hiện chương trình, có nhiều lý do cần tiến hành các phép toán liên kết với đối tượng theo kiểu động, chẳng hạn như: 1. Độc lập về thời gian tồn tại: một đối tượng có thể được tạo ra và huỷ bỏ độc lập với việc thực hiện chương trình 2. Sử dụng lại các định danh: cùng một địnhdanh có thể được sử dụng để chỉ các đối tượng khác nhau trong quá trình thực hiện 3. Đối tượng nằm ngoài vùng điạ chỉ hoá của bộ xử lý: đối tượng nằm tại vị trí mà bộ xử lý thực hiện các lệnh của chương trình không thể truy cập đến được. Chương trình thông dịch của việc truy cập như vậy sử dụng địnhdanh đối tượng là rất cần thiết. Do vậy, các đối tượng được trỏ tới trong một chương trình có thể chia thành hai loại: 1. Chương trình dịch và chương trình liên kết có thể thực hiện công việc liên kết 2. Các đối tượng hình thành tự động khi thực hiện chương trình. 1.3.2 Liên kết động a. Vấnđềtrong liên kết động Trong liên kết động nảy sinh hai vấn đề: Vấnđề 1 : Xuất phát từ địnhdanh cần phải tìm đối tượng Vấnđề 2 : Hình thành dãy truy cập đến đối tượng b. Giải quyết vấnđềVấnđề 1: Để giải quyết vấnđề 1 thì phải sử dụng tập hợp các danh mục. Các danh mục được đặt trong các bảng có nhiệm vụ tạo mối liên hệ giữa các địnhdanh và các mô tả nơi chứa đối tượng. Các quy tắc phiên dịch một địnhdanh thay đổi theo chức năng của trạm, của NSD, của vị trí mà nó xuất hiện. Thông dụng nhất là các quy tắc được xác định trên cơ sở “môi trường” hiện hành. Có nhiều trường hợp xảy ra : 1. Cùng một địnhdanh có thể chỉ các đối tượng khác nhau trong môi trường khác nhau Hình 1.2 Một địnhdanh chỉ định nhiều đối tượng trong các môi trường khác nhau HVTH: Phí Thị Lệ Tho Trang 4 Địnhdanh Đối tượng 1 Đối tượng 3 Đối tượng 2 Môi trường 1 Môi trường 2 Môi trường 3 Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn 2. Cùng một địnhdanh có thể chỉ cùng một đối tượng trong các môi trường khác nhau Hình 1.3. Một địnhdanh chỉ định cùng một đối tượng trong nhiều môi trường 3. Cùng một đối tượng tuỳ theo môi trường có thể được trỏ bởi các địnhdanh khác nhau Hình 1.4. Một đối tượng tuỳ theo môi trường có thể trỏ bởi các địnhdanh khác Vấnđề 2 : Liên quan đến cấu tạo và phiên dịch dãy truy cập sẽ trình bày ở phần 2.3 1.4. Thành lập dãy truy cập 1.4.1 Vấnđề trỏ thông tin tronghệphântán Khi người sử dụng (NSD) muốn liên lạc với nhau, họ phải sử dụng hệ thống tên quy ước hay còn gọi là địa chỉ mạng. Các địa chỉ này tuân theo nguyên tắc xây dựng nhất định và không trùng nhau. Khi số lượng NSD tăng lên thì người ta đề ra giải pháp mới là mỗi NSD kết hợp với một trạm đặc biệt lưu trữ thông tin liên quan đến NSD đó. Những trạm đặc biệt này có thể coi là các máy chủ và mỗi một máy chủ có thể quản lý một tập hợp các NSD có cùng HVTH: Phí Thị Lệ Tho Trang 5 Địnhdanh Đối tượng 1 Đối tượng 1 Đối tượng 1 Môi trường 1 Môi trường 2 Môi trường 3 Địnhdanh 1 Đối tượng 1 Đối tượng 1 Đối tượng 1 Môi trường 1 Môi trường 2 Môi trường 3 Địnhdanh 2 Địnhdanh 3 Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn chung đặc tính nào đó. Các máy chủ được kết nối lại với nhau và luôn ở trong tình trạng nhận và phát thông tin. Trên máy chủ gắn liền với NSD người ta thành lập hệ thống tra cứu thông tin của mạng (các danh mục tổng quát) và hệ thống này luôn được làm tươi để đám bảo thông tin chứa trong đó đúng trạng thái thực của hệ. Khi NSD gửi một thông điệp cho NSD khác ở xa thì máy chủ nguồn (nơi thông điệp xuất phát) phải tra cứu vào đây để xác định hướng của luồng thông tin đến máy chủ đích, máy của thông điệp đến. Hệ thống thông tin tra cứu được phântán trên các máy chủ đểđề phòng trường hợp một máy chủ bị sự cố dẫn đến không thể tra cứu thông tin cho các NSD gắn liền với nó. Các hệ thống thông tin phântán dùng cho việc tra cứu trên các máy chủ phải giống nhau hoàn toàn. 1.4.2 Liên thông tiến trình Để thực hiện truy cập từ xa phải thực hiện liên thông các tiến trình đã đưa ra trên các trạm khác nhau. Trong trường hợp có sự địnhdanh tổng quát các tiến trình, hai tiến trình ở xa có thể hiểu lai lịch tương ứng của các cửa sổ của chúng với mục đích cho phép nhập cuộc vào liên kết trao đổi. Sự liên lạc giữa các tiến trình dựa trên cơ sở các thông báo. Một thông báo bất kỳ luôn chứa các thông tin cần thiết cho việc địnhdanh các tiến trình phát và thu. 1.4.3 Cửa sổ (window) Thông thường, việc trao đổi giữa hai tiến trình ở xa diễn ra thông qua các đối tượng trung gian gọi là windows. Một cửa sổ được định vị trên một trạm. Mỗi cửa sổ được địnhdanh bởi một con trỏ (bộ định danh) bao gồm bộ địnhdanh tổng quát của chính trạm đó và một con trỏ cục bộ. Việc sử dụng cửa sổ để trao đổi giữa các tiến trình cho thấy có các ưu điểm: - Chính các bộ địnhdanh tổng quát cho tập hợp của hệ là các bộ địnhdanh của các cửa sổ. Mỗi một trạm có thể lưu trữ các quy định riêng về địnhdanh và sử dụng các ngôn ngữ thuật toán khác nhau để soạn thảo tiến trình - Các tiến trình có thể gán động cho các cửa sổ. Do vậy, một phép gửi các thông báo có thể liên quan đến các trạm khác nhau. Lúc này chỉ cần thay đổi các tiến trình gắn với cửa sổ nhận là đủ. Hình 1.5. Chia sẻ cửa sổ 1.4.4 Phối hợp tiến trình – windows HVTH: Phí Thị Lệ Tho Trang 6 Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn a Truy cập trực tiếp Khi NSD gắn với cửa sổ a muốn xác lập liên kết với tiến trình trực Vi của một trạm xa, nó liên hệtại cửa sổ b gắn với nó bằng cách liên lạc với bộ địnhdanh a của riêng nó. Nếu Vi chấp nhận, nó ghi điều đó vào tiến trình NSD và kênh (a,b) được thành lập. Nếu cửa sổ trực có thể được chia sẻ, thì nhiều tiến trình NSD có thể hội thoại cùng một lúc với nó để cùng một phục vụ. Hình 1.6. Truy cập trực tiếp NSD-Server b. Truy cập theo kiếu nối tiếp Trường hợp này, kênh (a,b) được thành lập giữa NSD và chương trình trực. Chương trình trực có nhiệm vụ liên thông trực tiếp giữa tiến trình yêu cầu và tiến trình Server. Theo hình vẽ ta thấy gắn với tiến trình NSD là bộ địnhdanh c của cửa sổ phối hợp với server thông qua kênh (a,b). Một kênh mới (a,c) được khởi sự từ tiến trình NSD Kiểu địnhdanh này được đặt ra khi mà cửa sổ b của tiến trình trực không được chia sẻ. Vấnđề đặt ra là thời gian trao đổi thông qua kênh (a,b) càng ngắn càng tốt để không ảnh hưởng đến các NSD khác. Hình 1.7. Truy cập nối tiếp c. Truy cập gián tiếp Tiến trình yêu cầu không thể địnhdanh được tiến trình Server. Tiến trình yêu cầu phải thông qua trung gian để tiến hành công việc liên thông. HVTH: Phí Thị Lệ Tho Trang 7 a b Kªnh (a,b) TiÕn tr×nh NSD TiÕn tr×nh trùc Vi c TiÕn tr×nh trùc Si Kªnh (a,c) a Pj b TiÕn tr×nh trùc Vi Kªnh NSD-Server Vấnđềđịnhdanhtronghệphântán GVHD: PGS.TS Lê Văn Sơn Chương 2 CÁCH PHÂN GIẢI TÊN VÀ ĐỊNHDANHTRONG UNIX, MẠNG INTERNET VÀ TRONG CƠ SỞ DỮ LIỆU 2.1 Name service 2.1.1 Các thành phầntrong kiến trúc Name service Name agent : - Cung cấp giao diện (interface) giữa Name service và Client - Được chỉ huy bởi Name server để tạo hay tìm kiếm tên Name server: - Quản lý thông tin và thực hiện các chức năng ánh xạ giữa tên và đối tượng - Có thể liên kết với các Name server khác - Cung cấp giao diện (interface) cho Name agent Hình 2.1. Các thành phần của Name service 2.1.2 Các hoạt động của Name Service Các hoạt động thay đổi danh mục: - ADD: thêm - DELETE: xoá - MODIFY: thay đổi các thông tin. Yêu cầu: - READ: phân tích tên thành 1 đối tượng - SEARCH: tìm một tên hoặc một đối tượng dựa trên một số thuộc tính - LIST: liệt kê tất cả các tên Quản lý: - Phân quyền cho việc cập nhật HVTH: Phí Thị Lệ Tho Trang 8 . Tho Vấn đề định danh trong hệ phân tán GVHD: PGS.TS Lê Văn Sơn Chương 1 LÝ THUYẾT VỀ VẤN ĐỀ ĐỊNH DANH TRONG HỆ TIN HỌC PHÂN TÁN 1.1. Tin học hệ phân tán. dụng hệ thống tin học phân tán. Nội dung chủ yếu trình bày trong tiểu luận này là vấn đề định danh trong hệ phân tán, bao gồm các nội dung chính: các vấn đề