Tiểu luận môn học: Lập trình Mạng nâng cao

28 1.1K 0
Tiểu luận môn học: Lập trình Mạng nâng cao

Đ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

LỜI MỞ ĐẦU Trong những năm gần đây, các thành tựu mới nhất của hệ thống tin học về phần cứng, phần mềm và các hệ quản trị cơ sở dữ liệu ổn định, tin cậy đã góp phần đáng kể cho sự phát triển của xã hội nói chung và ngành Công nghệ Thông tin nói riêng. Một trong những thành tựu nổi bật đó, phải nói đến các phần mềm cơ sở nhằm vào, trực tiếp và trước hết, tăng khả năng điều hành, khai thác hiệu quả tất cả các tài nguyên của hệ. Sự phát triển của CNTTTT và đặc biệt là Internet, “thế giới là phẳng”. Do đó, tất cả mọi vấn đề, dù khoảng cách có xa đến đâu đi chăng nữa nhưng nếu chúng ta ngồi trước máy vi tính có nối mạng thì hầu như mọi thứ đang hiện hữu tại máy tính của chúng ta. Chúng ta có thể quản lý nhân sự của một công ty đa quốc gia, chúng ta có thể ngồi ở nhà để đăng ký đặt chỗ vé máy bay, mua một món hàng tại siêu thị… Để có được sự tiện nghi này đối với người sử dụng thì nó đặt ra nhiều vấn đề rất lớn và rất phức tạp cho các nhà nghiên cứu và phát triển các hệ thống này. Các câu hỏi lớn đặt ra một cách cụ thể như: “làm thế nào để đảm bảo rằng không có ít nhất 2 người cùng đăng ký 01 vé máy bay trong hệ thống đăng ký vé? Làm thế nào để biết được có còn một mặt hàng nào đó trong hệ thống siêu thị?”… Ngày nay hầu hết các ứng dụng tin học đều được xây dựng để thực hiện trên mạng máy tính, các ứng dụng clientserver đang ngày càng được sử dụng phổ biến. Nhưng khi quy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng, tốc độ xử lý và độ phức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuật mới ra đời – xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin. Song để khai thác có hiệu quả toàn hệ, vấn đề quan trọng hàng đầu cần phải tính đến là các tài nguyên nói chung, đặc biệt là tài nguyên thông tin nói riêng và chiến lược khai thác, sử dụng chúng một cách tối ưu nhất. Sau khi được học hai môn “Hệ tin học phân tán” và môn “Lập trình mạng máy tính” dưới sự giảng dạy nhiệt tình của Thầy PGS.TS Lê Văn Sơn, chúng tôi đã tiếp thu được các kiến thức của hai môn học này. Với sự hướng dẫn tận tình của Thầy Lê Văn Sơn và sự giúp đỡ của các bạn, chúng tôi đã hoàn thành được cơ bản yêu cầu của bài toán đề ra. Vấn đề truy cập, xử lý thông tin và đảm bảo sự gắn bó dữ liệu trên hệ phân tán đã được nghiên cứu trong hàng loạt các công trình. Trong phạm vi tiểu luận của mình, tôi thực hiện những vấn đề sau: Phần I: Cơ sở lý thuyết, bao gồm: Hệ phân tán, Cơ sở dữ liệu trong hệ phân tán và Sự gắn bó dữ liệu trong cơ sở dữ liệu phân tán. Phần II: Bài tập ứng dụng. Trình bày về thuật toán Lamport và xây dựng chương trình sắp xếp các thông điệp đến dự trên đồng hồ Lamport. Mặc dầu đã hết sức cố gắng, nhưng do điều kiện thời gian và khả năng còn nhiều hạn chế, hơn nữa tiểu luận môn học này là một lĩnh vực tri thức rộng lớn, đa dạng và rất phức tạp nên chắc chắn không thể không tránh khỏi những sai sót và khiếm khuyết. Rất mong nhận được sự góp ý, phê bình, đánh giá của Thầy giáo và của các bạn trong lớp để nhóm chúng tôi rút kinh nghiệm và hoàn thiện tốt hơn trong thời gian tới. Chúng tôi xin gửi lời cảm ơn chân thành đến Thầy giáo Lê Văn Sơn đã cung cấp, định hướng và hướng dẫn chúng tôi trong suốt thời gian qua để nhóm chúng tôi hoàn thành tiểu luận này.

BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG  - TIỂU LUẬN MÔN HỌC Giáo viên hướng dẫn: PGS.TS Lê Văn Sơn Học viên: Lê Trọng Hiền Lê Tự Quốc Lớp: Đà Nẵng, tháng 03 năm 2010 Khoa học máy tính-K11 LỜI MỞ ĐẦU Trong năm gần đây, thành tựu hệ thống tin học phần cứng, phần mềm hệ quản trị sở liệu ổn định, tin cậy góp phần đáng kể cho phát triển xã hội nói chung ngành Cơng nghệ Thơng tin nói riêng Một thành tựu bật đó, phải nói đến phần mềm sở nhằm vào, trực tiếp trước hết, tăng khả điều hành, khai thác hiệu tất tài nguyên hệ Sự phát triển CNTT-TT đặc biệt Internet, “thế giới phẳng” Do đó, tất vấn đề, dù khoảng cách có xa đến đâu ngồi trước máy vi tính có nối mạng thứ hữu máy tính Chúng ta quản lý nhân cơng ty đa quốc gia, ngồi nhà để đăng ký đặt chỗ vé máy bay, mua hàng siêu thị… Để có tiện nghi người sử dụng đặt nhiều vấn đề lớn phức tạp cho nhà nghiên cứu phát triển hệ thống Các câu hỏi lớn đặt cách cụ thể như: “làm để đảm bảo khơng có người đăng ký 01 vé máy bay hệ thống đăng ký vé? Làm để biết có cịn mặt hàng hệ thống siêu thị?”… Ngày hầu hết ứng dụng tin học xây dựng để thực mạng máy tính, ứng dụng client-server ngày sử dụng phổ biến Nhưng quy mô mức độ ứng dụng tăng lên yêu cầu chất lượng, tốc độ xử lý độ phức tạp tăng theo thực tế, xu hướng kỹ thuật đời – xu hướng phân tán thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng sản xuất thông tin Song để khai thác có hiệu tồn hệ, vấn đề quan trọng hàng đầu cần phải tính đến tài nguyên nói chung, đặc biệt tài ngun thơng tin nói riêng chiến lược khai thác, sử dụng chúng cách tối ưu Sau học hai môn “Hệ tin học phân tán” mơn “Lập trình mạng máy tính” giảng dạy nhiệt tình Thầy PGS.TS Lê Văn Sơn, tiếp thu kiến thức hai môn học Với hướng dẫn tận tình Thầy Lê Văn Sơn giúp đỡ bạn, chúng tơi hồn thành yêu cầu toán đề Vấn đề truy cập, xử lý thông tin đảm bảo gắn bó liệu hệ phân tán nghiên cứu hàng loạt công trình Trong phạm vi tiểu luận mình, tơi thực vấn đề sau: Phần I: Cơ sở lý thuyết, bao gồm: Hệ phân tán, Cơ sở liệu hệ phân tán Sự gắn bó liệu sở liệu phân tán Phần II: Bài tập ứng dụng Trình bày thuật tốn Lamport xây dựng chương trình xếp thơng điệp đến dự đồng hồ Lamport Mặc dầu cố gắng, điều kiện thời gian khả cịn nhiều hạn chế, tiểu luận mơn học lĩnh vực tri thức rộng lớn, đa dạng phức tạp nên chắn khơng tránh khỏi sai sót khiếm khuyết Rất mong nhận góp ý, phê bình, đánh giá Thầy giáo bạn lớp để nhóm chúng tơi rút kinh nghiệm hồn thiện tốt thời gian tới Chúng xin gửi lời cảm ơn chân thành đến Thầy giáo Lê Văn Sơn cung cấp, định hướng hướng dẫn chúng tơi suốt thời gian qua để nhóm chúng tơi hồn thành tiểu luận Mọi đóng góp phê bình xin gửi về: Lê Tự Quốc, Trường Cao đẳng Lương thực- Thực phẩm Đà Nẵng Địa chỉ: 101B Lê Hữu Trác-Quận Sơn Trà-Tp.Đà Nẵng Điện thoại: 0914 112.319 Email: letuquocdglttp@yahoo.com.vn Lê Trọng Hiền, Trường Đại học Công nghiệp Tp HCM – Cơ sở Miền trung Địa chỉ: 978 Quang trung- Tp Quảng Ngãi Điện thoại: 0914.043.456 Email: hien.lt@hui.edu.vn Đà Nẵng, ngày 12 tháng 03 năm 2010 Nhóm học viên thực Lê Tự Quốc Lê Trọng Hiền Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn PHẦN I: CƠ SỞ LÝ THUYẾT CHƯƠNG I: HỆ PHÂN TÁN, MƠ HÌNH CLIENT/SERVER I Hệ phân tán I.1 Khái niệm Hệ tin học phân tán hệ thống đa dạng, phức tạp mặt cấu trúc, chuyên gia công nghệ thông tin quan tâm nghiên cứu với hàng loạt cơng trình cơng bố Cho đến nay, xét phương diện khác nhau, người ta có định nghĩa khác hệ tin học phân tán, phổ biến định nghĩa phát biểu sau : Hệ tin học phân tán hay nói ngắn gọn hệ phân tán (Distributed System) hệ thống xử lý thông tin bao gồm nhiều xử lý (hoặc vi xử lý) phân bố vị trí địa lý khác nhau, liên kết với thông qua phương tiện truyền thông (viễn thông) quản lý thống hệ thống điều khiển Qua ta xem hệ phân tán tập hợp xử lý (hoặc vi xử lý) với nhớ đồng hồ nhịp độc lập Điều đồng nghĩa với việc xử lý không sử dụng chung nhớ đồng hồ Như vậy, hệ xử lý thông tin thành phần hệ phân tán bao gồm hay nhiều xử lý nhớ cục Trong hệ phân tán, hệ xử lý thông tin thành phần phải thiết kế cho cấu trúc, số lượng dung lượng cho phép thực cách trọn vẹn chức mà phải đảm nhận Hệ tin học phân tán thực hàng loạt chức phức tạp, đảm bảo cung cấp cho người sử dụng khả truy cập có kết đến loại tài nguyên vốn có đa đạng hệ thống tài nguyên dùng chung Việc định nghĩa tài nguyên hệ tài nguyên dùng chung mang đến cho người sử dụng tiện ích đem lại cho hệ hiệu tốt khai thác ứng dụng Những ưu điểm việc sử dụng chung tài nguyên: - Tăng tốc độ bình qn tính tốn - xử lý Cải thiện tình trạng sẵn sàng loại tài nguyên dùng chung Tăng độ an toàn an ninh cho liệu Đảm bảo tính vẹn tồn thơng tin giải vấn đề gắn bó liệu Cho phép đa dạng hố loại hình dịch vụ tin học nói chung Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn I.2 Các đặc điểm hệ phân tán Các đặc điểm yêu cầu liệt kê (bảng I.1 I.2) giúp ta nhận biết đặc trưng phân biệt hệ tin học phân tán với hệ tin học khác, đồng thời cung cấp thơng tin q trình phân tích, thiết kế, xây dựng đánh giá hệ thống TT Các yêu cầu cần nghiên cứu giải Lập trình thực cho hệ thống đa truy cập, ngẫu nhiên, số lượng lớn Định danh định danh cho đối tượng qua hệ thống viễn thơng Cấu trúc lập trình cho truy vấn đa chiều đáp ứng lại truy vấn Trình tự đồng tiến trình hoạt động Gắn bó thơng tin (Coherence) vấn đề nhiều Cung cấp từ xa tài nguyên dùng chung (tài ngun găng) Vấn đề xử lý - tính tốn đồng thời hệ Vấn đề đa Server hệ điều khiển - giám sát người quản trị hệ thống Vấn đề tin cậy hiệu hệ thống Bảng Các yêu cầu hệ phân tán TT Đặc điểm Thời gian truyền thông tin hệ không giống Các thơng điệp bị q trình truyền thơng tin Các thơng điệp truyền kép Việc phát nhận thơng điệp tồn hệ ngẩu nhiên Việc cập nhật thông tin (chương trình liệu) dẫn đến hệ rơi vào trạng thái thiếu gắn bó Hệ rơi vào trạng thái bế tắc, tắt nghẽn đường truyền, chờ vô hạn thiếu thốn tài nguyên Một (hay nhiều) máy tính cấu thành hệ phân tán bị cố Bảng I.2 Đặc điểm hệ phân tán II Tiến trình hệ phân tán II.1 Khái niệm Tiến trình (Process) khái niệm quen thuộc đối tượng nghiên cứu hệ điều hành Trong hệ phân tán ta xem xét bổ sung đặc điểm hoạt động truy cập tiến trình có nhu cầu cung cấp tài ngun dùng chung Các đặc điểm là: - Các tiến trình hình thành điều khiển hệ điều khiển có nghĩa thành phần tham gia hệ phân tán mạng máy tính, hệ tập trung, có hệ điều hành riêng với tiến trình Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu luận môn học: Lập trình Mạng nâng cao - - GVHD: PGS TS Lê Văn Sơn riêng mình, chúng bị phái sinh lại nội dung tiến trình mới, phân tán Tiến trình chương trình hay đoạn chương trình hoạt động hệ phân tán đối tượng chủ yếu có nhu cầu tài nguyên phần cứng hay phần mềm để thực lệnh Tiến trình cần tài nguyên để phát triển Về nguyên tắc, tất tiến trình tài nguyên cung cấp đối tượng xa Các nguyên lý hệ tập trung nghiên cứu áp dụng cho tiến trình phân tán dự phòng chống bế tắc, chống xung đột, Khi tiến trình cung cấp tài ngun thực ngay, đối tượng gửi đến từ trước xử lý (máy) cục phải gửi đối tượng tiến trình qua hệ thống đường truyền Việc cung cấp tài nguyên cho tiến trình thực theo cách hệ phân tán : o Thông qua hệ thống cung cấp chung cho tồn hệ Controllor/Allocator o Thơng qua Allocator cục Server/Workstation cách tham chiếu vào bảng trạng thái, ảnh thơng tin tồn cục II.2 Tầm quan trọng việc đồng hóa tiến trình hệ phân tán Đồng hố tiến trình hiểu trình điều khiển tạo nên ăn khớp với tất tiến trình khác giúp cho hệ phân tán hoạt động nhịp nhàng, tin cậy phòng tránh cố kỹ thuật Trong tất hệ thống tin học, ta cần phải nghiên cứu công cụ đủ mạnh hiệu để đồng hóa tiến trình Tính cấp thiết mặt ngun lý kỹ thuật vấn đề thể hai nguyên sau : Các tiến trình kể tiến trình xuất phát từ ứng dụng độc lập muốn truy cập vào tài nguyên với số lượng hạn chế hay truy cập vào thông tin dùng chung lúc gây nên tượng truy cập tương tranh Tương tranh nguyên nhân xung đột tiến trình muốn truy cập vào tài nguyên dùng chung Các tiến trình hệ ứng dụng hoạt động theo kiểu hợp lực để giải tóan đặt cho kết nhanh chóng Điều cho phép tăng hiệu sử dụng thiết bị hiệu hoạt động chương trình Hợp lực nguyên nhân tác động tương hỗ lập trình tiến trình nhằm cho phép chúng tham gia vào hành động chung Sự tương tranh hợp lực tiến trình địi hỏi phải có trao đổi thơng tin qua lại với Trong hệ thống tập trung, điều thực nhờ thuật tốn loại trừ tương hỗ thơng qua biến tác động vùng nhớ chung Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn III Mơ hình CLIENT/SERVER III.1 Giới thiệu Khi nói tới lập trình mạng ta thường nghĩ đến cách trao đổi chương trình phục vụ (Server) với hay nhiều chương trình khách (Client) Chương trình khách gửi yêu cầu tới cho chương trình phục vụ, chương trình xử lý liệu để trả lời cho chương trình khách Như vậy, chương trình khách muốn gửi yêu cầu trước hết phải tìm cách kết nối với Server Server chấp nhận hay từ chối kết nối Một kết nối thiết lập Client Server trao đổi với thông qua Sockets Các lớp gói java.net cung cấp phương thức để kết nối mạng trao đổi tin máy với theo mơ hình Client/Server Mặt khác, Internet nhiều máy tính sử dụng giao thức để trao đổi với Socket lớp (trừu tượng) thực trao đổi Server Client Java xem trao đổi Server Client dựa Socket gần giống thao tác vào/ra (I/O), nghĩa chương trình đọc, ghi vào Socket dễ dàng chúng đọc, ghi lên tệp liệu Lớp Server tạo kết nối từ máy Client tới Server thông qua phương thức tạo lập đối tượng Lớp ServerSocket dùng để tạo kết nối từ Server tới máy Client Đối tượng lớp tạo Server lắng nghe kết nối từ máy Client theo cổng xác định Server phải chạy thường trực trước Client bắt đầu thực Server chờ yêu cầu kết nối Client Để thiết lập Server, ta phải tạo đối tượng, ví dụ ServerSocket lớp ServerSocket, gắn với cổng lắng nghe xem có Client cần kết nối hay không Các Socket xác định tương ứng với địa máy cổng ServerSocket serverSocket = new ServerSocket(port); Trong port số hiệu cổng nằm 1023 Cổng cho phép trao đổi tin hai chương trình Địa cổng số 16 bit thường phụ thuộc vào giao thức ứng dụng Thông thường, giao thức FTP sử dụng cổng 21, telnet dùng cổng 23, dịch vụ E-mail (SMTP) sử dụng cổng 25, Web Server chạy cổng 80 Sau đối tượng serverSocket tạo ra, Server sử dụng câu lệnh sau để lắng nghe yêu cầu kết nối Client Socket connectToServer = new Socket(ServerName,port); serverName tên máy chủ Interrnet địa IP, xác định máy tính tồn mạng Internet (cả giới) IP giao thức sử dụng để gửi tin từ máy tới máy khác mạng Internet IP phải xác định máy gửi máy nhận thông qua địa IP Một địa IP gồm bốn số nguyên nằm 255, phân cách với dấu ‘.’ Ví dụ: Socket connectToServer = new Socket(“129.74.250.103”, 8000); Vì địa IP thường khó nhớ nên thay địa IP người ta thường sử dụng tên miền dịch vụ, ví dụ Gophe.nd.edu tương ứng với địa IP nêu Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn Ngày nay, Internet hai máy trao đổi với phần lớn dựa qui ước hay giao thức chuẩn TCP/IP Sau kết nối Server chấp nhận, việc trao đổi Client Server giống luồng I/O Ví dụ: InputStream isFromServer = connectToServer getInputStream(); OutputStream osToServer = connectToServer getOutputStream(); Tạo luồng vào/ra: isFromServer để đọc từ Server osToServer để ghi vào (gửi cho) Server Hai lớp InputStream, OutputStream sử dụng để đọc ghi byte Ta sử dụng DataOutputStream, DataInputputStream, BufferedReader, PrintWriter để đọc, ghi liệu kiểu int, double, String, v.v Ví dụ, đoạn chương trình sau tạo isFromClient, osToClient để đọc, ghi liệu kiểu nguyên thủy Client DataInputStream isFromClient = new DataInputStream (connectToClient.getInputStream()); DataOutputStream osFromClient = new DataOutputStream (connectToClient.getOutputStream()); Server sử dụng isFromClient.read() để nhận liệu từ Client isFromClient.write() để gửi liệu cho Client Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn III.2 Server phục vụ nhiều chương trình Client Cùng lúc, chương trình Server trao đổi với nhiều chương trình Client Server chạy thường trực máy chủ chương trình Client mạng kết nối với Server lúc [Daniel] Server thiết lập việc kết nối với nhiều Client sau while(true){ Socket connectToClient = serverSocket.accept(); Thread thread = new ThreadClass(connectToClient); thread.start(); } Socket server có nhiều kết nối Mỗi vịng lặp chu trình while tạo kết nối Khi thiết lập kết nối, luồng thực (thread) tạo để đảm nhận việc trao đổi Server Client Sau Server chờ yêu cầu kết nối khác Nghĩa có nhiều kết nối thực theo chế đa luồng thực đồng thời Trong trao đổi với nhau, nhiều ta muốn biết kết nối với Server Muốn biết chương trình khách ta sử dụng lớp InetAddress để biết tên miền (host name) địa IP Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn CHƯƠNG II: CƠ SỞ DỮ LIỆU PHÂN TÁN I Cơ sở liệu phân tán Có nhiều lý để xây dựng sở liệu phân tán, chia sẻ thông tin, tăng độ tin cậy, tăng tốc độ truy cập thông tin Tuy nhiên, sử dụng hệ thống phân tán phải trả giá phát triển phần mềm, khó khăn sửa lỗi liệu lỗi hệ thống I.1 Các ưu điểm việc phân tán liệu Trước tiên hệ thống sở liệu phân tán có ưu điểm cho phép dùng chung liệu theo cách hiệu tin cậy I.1.1 Chia sẻ liệu điều khiển phân tán Nếu số trạm nối nhau, người dùng trạm khai thác liệu trạm Thí dụ khơng có hệ thống phân tán, việc chuyển tiền qua tài khoản phải thực qua chế trung gian Tiến thứ cho phép chia sẻ liệu theo nghĩa trạm có mức độ ưu tiên điều khiển liệu cục Trong hệ thống tập trung, người quản trị sở liệu trạm trung tâm điều khiển hoạt động xử lý sở liệu Trong hệ thống phân tán, có người quản trị bao quát chung toàn hệ thống Một phần trách nhiệm trao lại cho người quản trị địa phương trạm Phụ thuộc vào thiết kế hệ thống mà người có độ tự trị riêng Khả tự trị địa phương xem ưu điểm sở liệu phân tán I.1.2 Tin cậy sẵn sàng Nếu trạm sở liệu phân tán bị hỏng, trạm cịn lại có khả tiếp tục công việc Cụ thể, liệu chép nhiều trạm, giao tác cần liệu cụ thể tìm trạm khác Do hư hỏng trạm không gây sụp đổ hệ thống Sai sót trạm cần hệ thống phát hiện, cần có hành động thích hợp để hồi phục liệu Hệ thống không tiếp tục sử dụng trạm bị hư mà đợi sau sửa xong, trạm gắn tích hợp vào hệ thống Dù việc khơi phục sai sót sở liệu phân tán phức tạp so với sở liệu tập trung, khả hầu hết hệ thống tiếp tục làm việc khiến cho tính sẵn sàng tăng lên Tính sẵn sàng khó đạt sở liệu thời gian thực Ví dụ : Trong hệ thống bán vé máy bay, việc không truy nhập vào liệu việc không kịp đăng ký chỗ cho chuyến bay gây tổn hại đến uy tín lượng khách hàng hãng hàng không I.1.3 Tăng tốc xử lý truy vấn Nếu câu hỏi yêu cầu liệu vài trạm, tách câu hỏi câu hỏi nhỏ để khai thác song song nhiều trạm Tính tốn song song cho Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 10 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn dịch này, S = (a1, a2, , an) chẳng hạn Trong trật tự tuân thủ trật tự nội giao dịch, dãy bao gồm tất tác động cấu tạo nên giao dịch M; tác động xuất lần Một dãy gọi trật tự hóa tập giao dịch M Ví dụ: Cho T1 = (a11, a12, a13, a14) T2 = (a21, a22, a23) Một trật tự hóa (T1, T2) thể sau: S = a21, a11, a12, a22, a13, a23, a14 Trong số trật tự hóa tập hợp giao dịch, điều quan trọng phải tách cho phục vụ trạng thái gắn bó liệu chúng gọi trật tự hóa gắn bó Như vậy, đặc tính quan trọng trật tự hóa là: trật tự hóa tương ứng với việc thực tập hợp giao dịch hay gọi ngắn gọn trật tự hóa Điều kiện đủ cho gắn bó trật tự hóa phát biểu sau: Một trật tự hóa gắn bó, có quan hệ phụ thuộc với trật tự tuần hoàn III Triển khai giao dịch tơn trọng gắn bó Cho tập hợp giao dịch M={T1, T2…, Tn} Một trật tự hóa tập hợp tác động thành phần tương ứng với việc thực hoàn toàn giao dịch Việc thu trật tự hóa gắn bó thành cơng áp dụng ràng buộc trật tự thực tác động Nguyên lý phương pháp chỗ làm chậm tác động thời điểm mà thực khơng cịn có nguy phá hủy gắn bó trật tự hóa (bằng cách chặn tiến trình hành) Để đảm bảo giao dịch tơn trọng gắn bó thơng tin người ta đưa phương pháp, chế để đảm bảo giao dịch có gắn bó thơng tin tồn vẹn liệu sở liệu phân tán là: - - Cơ chế then cài: Cho phép giao dịch giải phóng đối tượng mà cài then Loại trừ tương hỗ: Nếu ta biết trước đối tượng xử lý giao dịch đó, ta cài then công việc truy cập đến đối tượng Then cài lựa chọn đối tượng: Một giao dịch thay đổi giá trị đối tượng phải loại trừ tất đối tượng khác muốn truy cập, ngược lại việc truy cập tiến hành theo kiểu tương tranh Giao dịch hai pha: Toàn đối tượng bị cài then tình trạng cài then cuối giao dịch Khơng có then cài diễn then cài khác giao dịch Bây ta tưởng tượng đối tượng phân tán nhiều trạm khác nối với thông qua hệ thống viễn thơng tiến trình diễn trạm khác Hệ thống viễn thơng cho phép tiến trình trạm Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 14 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn khác trao đổi thông điệp với Ta giả định tiến trình phương tiện truyền thơng đối tượng rơi vào cố Một hệ quản lý tập hợp thông tin phân tán bao gồm: STT Cơ chế Cơ chế cho phép xếp cách tổng quát tác động giao dịch, tác động diễn trạm khác Cơ chế điều khiển tranh chấp truy cập cục vào đối tượng đảm bảo tơn trọng tính toàn vẹn đối tượng truy cập cục Cơ chế có khả xử lý bế tắc thiếu thốn vô hạn, hậu việc hủy bỏ giao dịch Cơ chế phục hồi giao dịch hủy bỏ hay xử lý cố Cơ chế xử lý cố STT Phải thực Giao dịch T bắt buộc phải thực cách trọn vẹn Nếu có cố xảy phải quay lại điểm xuất phát Muốn thực điều vừa nêu trên, người ta đòi hỏi giao dịch phải có đặc tính tồn vẹn sau: STT Phải thực Nếu tiến trình bị cố trước kết thúc T lại sau thao tác thay đổi cần thiết T, trạng thái hệ gắn bó Nếu tiến trình bị cố trước diễn thay đổi T, trạng hái hệ gắn bó Nếu tiến trình bị cố thay đổi T, trạng thái hệ khơng gắn bó Nếu liệu phân tán nhiều server, để bảo đảm liệu ghi lên đắn lên sở liệu, địi hỏi phải có chế bảo vệ liệu Ví dụ việc cập nhật bảng cân đối tài khoản khách hàng ba sở liệu khác Nếu có cố kết nối xảy thời gian ghi giao dịch, sở liệu tính đồng Xử lý giao dịch khắc phục tình trạng cách giám sát thay đổi tác động lên sở liệu liên quan nhằm bảo đảm toàn vẹn liệu có cố IV Quản lý gắn bó giao dịch Bây ta xem xét hệ, đối tượng phân tán nhiều trạm, khơng có đối tượng tồn có Một giao dịch Tj tham chiếu đến đối tượng nằm trạm khác gồm nhiều tác động thực nhiều trạm Như ta phải xác định trạm Si tiến trình Pji với nhiệm vụ thực tác động giao dịch Tj Si, tác động thực trạm khác tiến hành theo kiểu song song Các phương pháp để quản lý gắn bó giao dịch như: Phương pháp dự phòng để chống bế tắc, phương pháp dựa vào việc hạn chế khả diễn cách phát bế tắc có tính chất động, điều dẫn đến hủy bỏ giao dịch Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 15 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn PHẦN II: BÀI TẬP ỨNG DỤNG I Phát biểu toán Lập trình cho phép hệ đa Server gắn bó liệu phương pháp trật tự hóa Bài tốn gồm có phần sau: - Xây dựng đa Server theo kiểu ngang hàng có khả phát nhận thơng điệp Xây dựng cấu trúc loại thông điệp trao đổi Server Xây dựng đoạn chương trình xếp thông điệp đến vào giá trị đồng hồ logic Lamport II Đồng hồ logic Lamport II.1 Đồng hồ logic Lamport Đồng hồ logic Lamport dựa hai vấn đề sau: - - Các kiện xảy xử lý chúng ln trạng thái trật tự gắn bó cách sử dụng đồng hồ hệ thống (thời gian thực) giá trị đồng hồ hệ thống tăng Các kiện xảy xử lý khác gây tình trạng khơng gắn bó thời gian truyền thơng điệp, khơng lâu sau chúng gắn bó xử lý Pj gửi thông điệp cho xử lý Pk vào thời gian T Pk khơng thể nhận thơng điệp vào thời gian T trước Tuy nhiên, vấn đề thời gian thực hệ thống không đồng bộ, đặc biệt hệ phân tán, khó giữ đồng hồ hệ thống chung tất tiến trình xếp Trong trường hợp vậy, đồng hồ logic dùng để biểu thị thứ tự thông tin cho kiện, đồng hồ logic Lamport khái niệm để xếp tiến trình kiện hệ phân tán II.2 Thuật toán Lamport dựa đồng hồ logic Đặt T giá trị đồng hồ thực Cj(T) giá trị đồng hồ logic xử lý J thời gian T, đồng hồ logic hoạt động theo nguyên tắc sau: Đánh dấu kiện giá trị đồng hồ logic xử lý (với Cj: Đồng hồ logic Pj, khởi tạo từ 0) Nếu có kiện cục xảy ra, ta tăng giá trị đồng hồ logic lên Khi thông điệp gửi xử lý K, đánh dấu Ck(T) Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 16 Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn Khi xử lý K nhận thông điệp có dấu thời gian C’ ta đặt lại đồng hồ logic xử lý K là: max(C’, Ck(T)) + Đề tài quan tâm đến truyền nhận thông điệp, nên nhận thơng điệp thời gian vào giá trị đồng hồ logic thông điệp để thực hiện: Như thông điệp ta phải truyền thêm ID xử lý (nếu xếp tiến trình ta phải dùng thêm ID tiến trình) Tổng qt cấu trúc thơng điệp sau: (METHOD, PARAs, Ci, i) Với: - METHOD: phương thức muốn gọi - PARAs: tham số cần truyền cho phương thức - Ci: giá trị đồng hồ logic xử lý i - i: ID xử lý (như Server1, Server2…) III.3 Xây dựng cấu trúc thông điệp Server: Phân tán thuật toán Lamport kéo theo việc phân tán chức cung cấp mà cần phải điều khiển hàng đợi trạm Do vậy, trạm chuyên cho việc tiếp nhận yêu cầu khuyến nghị giải phóng từ trạm lại Một trật tự giống trạm đạt được, ta áp dụng dấu thông điệp đồng hồ logic truyền đánh số trạm Quan hệ trật tự toàn định nghĩa Thêm vào đó, trạm định việc tham chiếu vào hàng đợi mình, cịn cần phải nhận thông điệp trạm khẳng định khơng có thơng điệp trước thơng điệp khác mà cảnh đường Giả sử : Trạm i mạng gửi cho trạm khác thơng điệp có dạng (T, Hi, i), Hi dấu thơng điệp có nghĩa đồng hồ logic T nhận ba giá trị REQ, REL, ACQ Ba giá trị xác định chất ba loại thơng điệp khác STT Thơng điệp Giải thích Thơng điệp REQ phát cho tất trạm, trạm REQ i muốn vào đoạn găng Thông điệp REL phát cho tất trạm, trạm REL i rời khỏi đoạn găng Thông điệp ACQ gửi trạm j cho trạm j nhận ACQ từ trạm i thơng điệp REQ Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 17 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn Khi có thơng điệp gởi trạm i đồng thời ghi hàng đợi trạm Giả sử hàng đợi ban đầu chứa thông điệp: Mi = (REL, Hinit , i) Trong đó, i, Hinit thời điểm khởi giống cho tất trạm Mỗi trạm quản lý hàng đợi thông điệp xếp hoàn toàn quan hệ ⇒ theo cặp thông điệp dùng biến trạng thái State để xếp (State =muon : yêu cầu tài nguyên, state=namgiu : sử dụng tài nguyên, State=ranh : rãnh) I.4 Thuật tốn xếp thơng điệp đến vào giá trị đồng hồ logic Lamport Thuật tốn mơ tả theo sơ đồ sau : + Khởi tạo hàng đợi, máy tự phát thông điệp Mi = (REL, Hinit , i) + Khi trạm yêu cầu tài nguyên: o Để truy cập vào tài ngun trạm phát thơng điệp yêu cầu Mi (T,Hi,i) đến tất trạm khác đưa yêu cầu vào hàng đợi yêu cầu trạm o Khi trạm j nhận thông điệp u cầu từ i, gởi ngược lại thơng điệp (có chứa đồng hồ logic Hj) cho Sj đưa yêu cầu vào hàng đợi yêu cầu If state =muon then Begin Send M(T,Hj,j) đến trạm i INSERT(Mi,hàngđợi) End + Khi trạm vào đoạn găng: Trạm i nhận thông điệp với đồng hồ logic lớn đồng hồ thời điểm trạm i yêu cầu trạm i vị trí hàng đợi u cầu If (H>Hi ) and (Vị trí M đầu hàng đợi) then state=namgiu + Khi trạm không thực Xố u cầu gởi thơng điệp giải phóng trạm khác loại bỏ yêu cầu tương ứng Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 18 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn If state=ranh then xử lý(các thơng điệp hàng đợi) ‘sau xố Send thơng điệp giải phóng đến trạm Những trạm khác xố u cầu hàng đợi III Giải tốn Phần tơi chọn lập trình Client/Server Socket Java để mơ phỏng: - Giả lập hai Server máy đơn giống hai Server chạy Internet thực Hai Server có chức năng: o Chứa sở liệu tài khoản ngân hàng o Khi nhận thông điệp:  Server cập nhật giá trị đồng hồ logic  Lưu thơng điệp vào hàng đợi  Sắp xếp lại hàng đợi  Lấy thông điệp đầu hàng đợi khỏi hàng đợi thực o Sau thực thông điệp, Server tự động trả kết Để mô cho cách làm việc mạng Server ta mở hai cửa sổ dòng lệnh, cửa sổ dùng làm Server - Giả lập Client cửa sổ khác: o Kết nối với Server o Gửi thông điệp để thay đổi số tiền có tài khoản (thêm tiền tính lãi suất) o Nhận thông điệp trả từ Server cho biết số tiền có tài khoản IV Demo chương trình Chương trình sử dụng hàng đợi lưu trữ yêu cầu gởi đến sau chương trình xếp yêu cầu hàng đợi dựa theo giá trị đồng hồ Lamport Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 19 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.1 Chương trình Client IV.2 Chương trình Server Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 20 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.3 Chương trình Server IV.4 Chương trình Client Start Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 21 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.5 Chương trình Server1 Start IV.6 Chương trình Server2 Start Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 22 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.7 Chương trình Client gởi Message IV.8 Chương trình Server1 nhận kết Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 23 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.9 Chương trình Server2 nhận kết IV.10 Chương trình Client Stop Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 24 Tiểu ḷn mơn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.11 Chương trình Server1 Stop IV.12 Chương trình Server2 Stop Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 25 TÀI LIỆU THAM KHẢO [1] Lê Văn Sơn, Bài giảng Hệ tin học Phân tán, Đại học Đà nẵng năm 2009 [2] Lê Văn Sơn, Hệ Tin học Phân tán, Đại học Quốc gia Thành phố Hồ Chí Minh năm 2002 [3] George Coulouris – Jean Dollimore – Tim kindberg, Distributed systems, Pearson Education năm 2005 [4] Lê Văn Sơn, Giáo trình Kỹ thuật Mạng máy tính, Trường Đại học Bách khoa Đà Nẵng, Đà Nẵng năm 1994 [5] Andrew S Tanenbaum Maarten Van Steen 2, Distributed Systems, Vrije University, Amsterdam năm 2005 [6] Mullender, Distributed Systems, Addison Wesley, 2nd, ed năm 1993 [7] Lê Văn Sơn, Giáo trình Lập trình Hệ thống Hệ điều hành máy tính, Trường Đại học Kỹ thuật – Đại học Đà Nẵng, Đà Nẵng năm 2006 [8] Nguyễn Phương Lan, Hoàng Đức Hải, Java lập trình mạng, Giáo dục năm 2001 MỤC LỤC PHẦN I: CƠ SỞ LÝ THUYẾT CHƯƠNG I: HỆ PHÂN TÁN, MƠ HÌNH CLIENT/SERVER I Hệ phân tán .4 I.1 Khái niệm I.2 Các đặc điểm hệ phân tán II Tiến trình hệ phân tán II.1 Khái niệm .5 II.2 Tầm quan trọng việc đồng hóa tiến trình hệ phân tán .6 III Mơ hình CLIENT/SERVER III.1 Giới thiệu III.2 Server phục vụ nhiều chương trình Client CHƯƠNG II: CƠ SỞ DỮ LIỆU PHÂN TÁN 10 I Cơ sở liệu phân tán 10 I.1 Các ưu điểm việc phân tán liệu 10 I.2 Các nhược điểm việc phân tán liệu 11 II Thiết kế sở liệu phân tán .11 CHƯƠNG III: SỰ GẮN BÓ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 13 I Tác động giao dịch 13 II Trật tự hóa tác động 13 III Triển khai giao dịch tơn trọng gắn bó 14 IV Quản lý gắn bó giao dịch .15 PHẦN II: BÀI TẬP ỨNG DỤNG 16 I Phát biểu toán 16 II Đồng hồ logic Lamport .16 II.1 Đồng hồ logic Lamport 16 II.2 Thuật toán Lamport dựa đồng hồ logic 16 III.3 Xây dựng cấu trúc thông điệp Server: 17 I.4 Thuật toán xếp thông điệp đến vào giá trị đồng hồ logic Lamport 18 III Giải toán .19 IV Demo chương trình 19 IV.1 Chương trình Client 20 IV.2 Chương trình Server 20 IV.3 Chương trình Server 21 IV.4 Chương trình Client Start .21 IV.5 Chương trình Server1 Start 22 IV.6 Chương trình Server2 Start 22 IV.7 Chương trình Client gởi Message .23 IV.8 Chương trình Server1 nhận kết 23 IV.9 Chương trình Server2 nhận kết 24 IV.10 Chương trình Client Stop 24 IV.11 Chương trình Server1 Stop 25 IV.12 Chương trình Server2 Stop 25 TÀI LIỆU THAM KHẢO ... Trang Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn III Mơ hình CLIENT/SERVER III.1 Giới thiệu Khi nói tới lập trình mạng ta thường nghĩ đến cách trao đổi chương trình. .. môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.1 Chương trình Client IV.2 Chương trình Server Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 20 Tiểu ḷn mơn học: Lập trình Mạng nâng. .. Chương trình Server1 Start IV.6 Chương trình Server2 Start Nhóm HVTH: Lê Trọng Hiền - Lê Tự Quốc Trang 22 Tiểu luận môn học: Lập trình Mạng nâng cao GVHD: PGS TS Lê Văn Sơn IV.7 Chương trình

Ngày đăng: 12/11/2014, 08:51

Từ khóa liên quan

Mục lục

  • PHẦN I: CƠ SỞ LÝ THUYẾT

  • CHƯƠNG I: HỆ PHÂN TÁN, MÔ HÌNH CLIENT/SERVER

    • I. Hệ phân tán.

      • I.1. Khái niệm.

      • I.2. Các đặc điểm của hệ phân tán.

      • II. Tiến trình trong hệ phân tán

        • II.1. Khái niệm

        • II.2. Tầm quan trọng của việc đồng bộ hóa tiến trình trong hệ phân tán.

        • III. Mô hình CLIENT/SERVER

          • III.1. Giới thiệu

          • III.2. Server phục vụ nhiều chương trình Client

          • CHƯƠNG II: CƠ SỞ DỮ LIỆU PHÂN TÁN

            • I. Cơ sở dữ liệu phân tán

              • I.1. Các ưu điểm của việc phân tán dữ liệu

                • I.1.1. Chia sẻ dữ liệu và điều khiển phân tán

                • I.1.2. Tin cậy và sẵn sàng

                • I.1.3. Tăng tốc xử lý các truy vấn

                • I.2. Các nhược điểm của việc phân tán dữ liệu

                • II. Thiết kế các cơ sở dữ liệu phân tán

                • CHƯƠNG III: SỰ GẮN BÓ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

                  • I. Tác động và giao dịch

                  • II. Trật tự hóa các tác động

                  • III. Triển khai giao dịch tôn trọng sự gắn bó

                  • IV. Quản lý gắn bó các giao dịch

                  • PHẦN II: BÀI TẬP ỨNG DỤNG

                    • I. Phát biểu bài toán

                    • II. Đồng hồ logic Lamport

                      • II.1. Đồng hồ logic Lamport

                      • II.2. Thuật toán Lamport dựa trên đồng hồ logic

                      • III.3. Xây dựng cấu trúc của thông điệp giữa các Server:

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

Tài liệu liên quan