tiểu luận môn lập trình mạng đồng bộ hóa và gắn bó dữ liệu thông qua một bài toán cụ thể

32 428 0
tiểu luận môn lập trình mạng đồng bộ hóa và gắn bó dữ liệu thông qua một bài toán cụ thể

Đ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ập Trình Mạng ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA  TIỂU LUẬN MÔN LẬP TRÌNH MẠNG LẬP TRÌNH MẠNG Đề tài : ĐỒNG BỘ HÓA VÀ GẮN BÓ DỮ LIỆU THÔNG QUA MỘT BÀI TOÁN CỤ THỂ GV hướng dẫn : PGS TS. LÊ VĂN SƠN Chuyên ngành : Khoa Học Máy Tính Khóa : K24 Học viên : Lê Quang Vũ HVTH: Lê Quang Vũ 1 ĐÀ NẴNG, 05/2012 Lập Trình Mạng LỜI MỞ ĐẦU Sự bùng nổ của mạng Internet toàn cầu cùng với các ứng dụng của nó đã đem lại cho xã hội một cuộc sống tiện nghi và hiện đại. Mạng internet đã giúp cho con người bước vào một kỷ nguyên công nghệ thông tin và tri thức, mang lại khả năng kết nối gần nhau hơn và giải quyết các vấn đề lớn một cách gọn gàng và có hợp tác. Trong thời điểm này lĩnh vực hệ phân tán trong tin học đóng một vai trò hết sức quan trọng. Vận dụng các kiến thức của hệ phân tán ta có thể giải quyết các bài toán lớn một cách dễ dàng bằng cách chia sẻ cách thức giải quyết thông qua các máy con nhằm tiết kiệm thời gian và công sức hơn khi giải quyết trên hệ tập trung. Trong phạm vi của tiểu luận này tôi chỉ đề cập đến một khía cạnh nhỏ trong hệ lập trình mạng đó là “Đồng bộ hóa và gắn bó dữ liệu thông qua một bài toán cụ thể”. Thông qua chương trình ta sẽ thấy rõ bài toán đồng bộ hóa và gắn bó dữ liệu là bài toán có ứng dụng hữu ích và thiết thực trong đời sống và trong các sản phẩm của lập trình mạng. Tôi cũng xin chân thành cảm ơn PGS.TS Lê Văn Sơn và các bạn đồng môn đã giúp tôi hoàn thành tiểu luận này. HVTH: Lê Quang Vũ 2 Lập Trình Mạng YÊU CẦU ĐỀ TÀI 1. Ta cài đặt trên N trạm một “ảnh” của công tơ sự kiện phân tán, được tăng một số gia truyền cho mỗi lần sự kiện đến. Bạn hãy cho biết các vấn đề gì sẽ đặt ra khi ta sử dụng phương pháp này. 2. Đây là bài toán đồng bộ hóa và gắn bó dữ liệu. 3. Hãy viết chương trình cho biết giá trị “ảnh” của các công tơ. HVTH: Lê Quang Vũ 3 Lập Trình Mạng PHẦN I: CƠ SỞ LÝ THUYẾT CHƯƠNG I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP TRÌNH MẠNG 1. Hệ phân tán (Distributed System): Hệ tin học phân tán là một hệ thống đa dạng, nhiều thành phần và phức tạp về mặt cấu trúc, là vùng tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan tâm nghiên cứu và phát triển ứng dụng hiện nay. Hình 1. Các lĩnh vực có hệ thống phân tán Hay hệ phân tán là một tập hợp các máy tính độc lập mà xuất hiện đối với các người sử dụng như một máy tính đơn. Với các đặc điểm:  Nhiều bộ phận.  Kết nối thông qua mạng truyền thông.  Chia xẻ các tài nguyên. (Theo Andrew Tanenbanum) HVTH: Lê Quang Vũ 4 Lập Trình Mạng Hình 2. Một phần của mạng Internet Nói chung, một định nghĩa phổ biến và khá đầy đủ về hệ phân tán được trình bày như sau: “Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm các tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.” Mục tiêu của hệ phân tán:  Tăng tốc độ bình quân trong tính toán, xử lý.  Cải thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên.  Tăng độ an toàn cho dữ liệu.  Đa dạng hóa các loại hình dịch vụ tin học  Đảm bảo tính toàn vẹn của thông tin. HVTH: Lê Quang Vũ 5 Lập Trình Mạng 2. Các mô hình hệ phân tán và ứng dụng mạng: Các lớp phần mềm: Kiến trúc phần mềm: cấu trúc của phần mềm như là các lớp và các module trong các thuật ngữ của các dịch vụ đưa ra và yêu cầu giữa các tiến trình trên cùng hoặc trên các máy tính khác nhau. Platform (hệ nền): phần cứng mức thấp nhất và các lớp phần mềm (hệ điều hành). Middleware: một lớp của phần mềm mà mục đích của nó là đánh dấu heterogeneity và để cung cấp một mô hình lập trình cho các ứng dụng, như: CORBA, RMI (Remote Method Invocation), DCOM (Distributed Component Object Model), 3. Kiến trúc hệ thống: 3.1.Mô hình Client/Server: Hình 3- Mô hình Client/Server Một WebServer thường là một client của một File Server cục bộ. HVTH: Lê Quang Vũ 6 Lập Trình Mạng Các WebServer và các Server của Internet khác là các client của một DNS Server cái mà dịch các tên miền Internet thành các địa chỉ mạng. Một máy tìm kiếm là một Server, nhưng nó chạy chương trình được gọi là Web Crawlers cái mà truy cập các Web server thông qua Internet cho thông tin yêu cầu.  Dịch vụ cung cấp bởi nhiều server: Hình 4- Dịch vụ được cung cấp bởi nhiều server Nhiều Server có thể:  Mỗi phần là một tập hợp các đối tượng.  Duy trì các bản sao của toàn bộ tập hợp các đối tượng trên một vài máy. Ví dụ Web Proxy Server: Hình 5. Proxy Server Web Proxy Server cung cấp một bộ nhớ cache chia xẻ cho các máy client tại một site hoặc băng qua một vài site khác nhau. 3.2.Mô hình tương tác trong hệ phân tán:  Thực hiện truyền thông: o Sự tiềm ẩn (Latency): HVTH: Lê Quang Vũ 7 Lập Trình Mạng  Sự trì hoãn lan truyền: thời gian cần thiết để một bit đầu tiên của một thông điệp truyền đến được đích.  Sự trì hoãn truyền: là khoảng thời gian giữa sự truyền bit đầu tiên và bit sau cùng của một thông điệp.  Sự trì hoãn xử lý: là thời gian cần để hệ điều hành xử lý/gửi/nhận thông điệp.  Sự trì hoãn xếp hàng: thời gian cần để một thông điệp xếp hàng ở cuối máy chủ hoặc ở các node trung gian đợi để truyền đi. o Băng thông (bandwidth): Tổng số thông tin có thể được truyền đi trong một thời gian đã cho. o Sự biến đống tạp (Jitter): thời gian khác nhau giữa các sự trì hoãn ảnh hưởng bởi các thông điệp khác nhau.  Đồng hồ và thứ tự các sự kiện: o Không có khái niệm toàn cục của thời gian. o Nhịp độ đồng hồ trôi: nhịp độ tương đối ở một đồng hồ máy tính trôi dạt ra khỏi từ một đồng hồ tham chiếu hoàn hảo.  Đồng bộ hóa đồng hồ: o Hệ thống định vị toàn cầu (GPS): một ít máy tính có thể sử dụng máy thu radio để nhận thời gian đọc từ GPS với độ chính xác là 1 micro- giây. Chúng có thể gửi các thông điệp thời gian đến các máy tính khác trong mạng tương ứng của chúng. o Các đồng hồ logic: mỗi thông điệp là thời gian đóng dấu lên với một số nối tiếp mà phản chiếu thứ tự lôgic của chúng. HVTH: Lê Quang Vũ 8 Lập Trình Mạng CHƯƠNG II: CÁC VẤN ĐỀ ĐẶT RA VÀ CÁCH GIẢI QUYẾT 1. Đặt vấn đề Xét bài tóan quen thuộc người sản xuất – người tiêu thụ, trong đó khả năng tiêu thụ là nguyên nhân chính hạn chế số lượng hàng hóa sản xuất để nó không vượt qúa số lượng tiêu thụ một giá trị lớn hơn N. Người sản xuất P và người tiêu thụ C là hai người nằm trên hai trạm cách xa nhau. Giả sử rằng NP là số lượng sản xuất ra và NC là số lượng tiêu thụ tại thời điểm khởi sự. C chỉ tiêu thụ được một sản phẩm, nếu sản xuất sản phẩm đó đã diễn ra, có nghĩa là, nếu: NP-NC>0 (1) Tương tự, P chỉ sản xuất một thông tin, nếu NP-NC <N (2) Hai quan hệ này thể hiện các điều kiện của việc đồng bộ hóa và có thể mô tả trong hình sau: HVTH: Lê Quang Vũ 9 P 1 C 1 P 2 C 2 P i C i P i+N C i+1 P i+N+1 P i : Sản xuất thứ i C i : Tiêu thụ thứ i Lập Trình Mạng Trong hệ thống phân tán, người ta có thể vận dụng hợp lực này theo kiểu như sau: 1. Ta đưa vào: STT Diễn giải 1 Trên trạm P một biến NP thể hiện số lượng chính xác sản xuất đã có 2 Trên trạm C một biến NC thể hiện số lượng chính xác tiêu thụ đã thực hiện 2. Ta đưa vào STT Diễn giải 1 Trên trạm P một biến NC’ ảnh của NC mà P gia tăng mỗi một lần nó nhận được thông điệp từ C báo cho nó biết là tiêu thụ mới đã diển ra. 2 Trên trạm C một biến NP’ ảnh của NP mà C gia tăng mỗi một lần nó nhận thông điệp từ P báo cho nó biết một sản xuất mới đã diễn ra. Một sự đồng bộ hóa chính xác được đảm bảo bằng việc xác nhận trên mỗi trạm các điều kiện sau đây: 1. Trên trạm sản xuất: NP’-NC > 0 (3) 2. Trên trạm tiêu thụ: NP-NC’ < N (4) Thực tế ta có thể viết NP=NP’+np, với np ≥ 0, (5) Trong đó, np số lượng thông tin đã sản xuất bởi P mà C không biết, NC = NC’ + nc, với nc ≥ 0 (6) Trong đó nc số lượng thông tin đã tiêu thụ bởi C mà P không biết. Không cần tính đến (5) và (6), các điều kiện (3) và (4) bao hàm các điều kiện ban đầu nêu trong (1) và (2). * Ta có thể khái quát hóa phương pháp này cho điều kiện đồng bộ hóa bằng công thức: ∑ C i X i > K (theo i) Trong đó, C i và K là các hằng số. Ta hoàn toàn có khả năng và điều kiện mạnh hơn bằng cách thay thế tất cả các X i mà hệ số của nó là đại lượng dương bằng các ảnh của nó X’ i nếu và chỉ nếu các X i là các biến không lùi. HVTH: Lê Quang Vũ 10 [...]... 30 Lập Trình Mạng TÀI LIỆU THAM KHẢO [1] TS.Lê Văn Sơn, Hệ tin học phân tán, Nxb Đại học quốc gia TP Hồ Chí Minh, 2002 [2] Trần Tiến Dũng, Giáo trình lý thuyết và bài tập Java, Nxb Giáo dục, 1999 [3] Tài liệu trên Internet HVTH: Lê Quang Vũ 31 Lập Trình Mạng MỤC LỤC LỜI MỞ ĐẦU 2 YÊU CẦU ĐỀ TÀI 3 PHẦN I: CƠ SỞ LÝ THUYẾT 4 CHƯƠNG I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP... SetServer 80 HVTH: Lê Quang Vũ 29 Lập Trình Mạng KẾT LUẬN Do đây là lần đầu tiên làm quen với ngôn ngữ Java nên việc lập trình còn nhiều bỡ ngỡ Tuy nhiên, được sự giúp đỡ của thầy giáo và các bạn, cùng với sự nỗ lực của bản thân nên đề tài cũng đã đạt một số kết quả đáng kể sau:  Nắm vững nguyên tắc hoạt động của đa server  Nắm vững các kiến thức liên quan đến hệ phân tán và lập trình mạng trên cơ sở nền... tiến trình như sau: HVTH: Lê Quang Vũ 11 Lập Trình Mạng Người sản xuất Người tiêu thụ Vòng lặp Vòng lặp Cho (NC’,NP-N+1) Cho (NP’,NC+1) {chuyển khi NP-NC’0} San_xuat Tieu_thu Tang(NP’) Tang(NC’) NP:=NP+1 NC’:=NC’+1 Kết thúc vòng lặp Kết thúc vòng lặp HVTH: Lê Quang Vũ 12 Lập Trình Mạng PHẦN HAI: GIẢI QUYẾT BÀI TOÁN a Nội dung bài toán Xây dựng hệ thống phân tán 3 server thể hiện... năng phát – nhận thông điệp: Dịch vụ từ máy chủ và khái niệm cổng, Khi kết nối vào máy chủ ta có thể yêu cầu từ máy chủ nhiều dịch vụ khác nhau như: tìm và đọc các trang web trên Internet; gởi – nhận thông điệp; dò tìm hệ thống tên miền DNS;…Mỗi dịch vụ đều có cách gởi – nhận dữ liệu theo quy ước riêng Mỗi chương trình dịch vụ sẽ sử dụng một cổng khác nhau để truy xuất thông tin Cổng là một số nguyên... tắc của Server, xây dựng giao diện Demo của 03 sever như hình sau: HVTH: Lê Quang Vũ 13 Lập Trình Mạng 1 2 3 6 Trong đó: 5 (1),(2): Khai báo Hostname và Port của Server để kết nối vào hệ thống (3): Thông tin về Server (4): Gởi thông điệp 4 (5): Thông tin về thông điệp (6): Hiển thị giá trị số gia của công tơ sự kiện Chương trình dùng để cài đặt Server // Môi trường làm việc của Java import java.awt.*;... da ket noi public void sendMessage(String message) throws Exception { out.println(message); } } HVTH: Lê Quang Vũ 27 Lập Trình Mạng c Demo chương trình Giao diện - Server ở Port 70: +Phát/Nhận thông điệp + Giá trị của Công tơ sự kiện HVTH: Lê Quang Vũ 28 Lập Trình Mạng - Tương tự Server ở Port 60 và Port 80 có giao diện như sau: Các file BATCH delClass.bat CLS @ECHO OFF del *.class Compile.bat @echo... đặt bài toán thể hiện đa server phát nhận thông điệp và tính toán giá trị công tơ sự kiện phân tán tại mỗi server  Đảm bảo được căn bản các yêu cầu đặt ra của bài toán Càng đọc, càng nghiên cứu về Java mới thấy cái hay, cái riêng mà Java mang lại Rất mong trong thời gian đến được thầy, các bạn giúp đỡ thêm để bản thân nắm vững hơn nữa cách thực hiện các thuật toán bằng ngôn ngữ Java HVTH: Lê Quang... Cho(E,n) hợp với E Theo tiến trình gọi chừng nào giá trị công tơ còn nhỏ hơn n Mỗi công tơ được khởi động ngay khi thành lập nó Để thể hiện bài tóan người sản xuất – người tiêu thụ, với cùng các tên của biến, ta định nghĩa: 1 Hai công tơ sự kiện NP’ và NC’, được khởi động bằng giá trị 0 2 Hai biến nguyên NP và NC, khởi sự là 0, là cục bộ đối với tiến trình người sản xuất P và người tiêu thụ C Trong trường... I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP TRÌNH MẠNG .4 1 Hệ phân tán (Distributed System): .4 2 Các mô hình hệ phân tán và ứng dụng mạng: 6 3 Kiến trúc hệ thống: .6 CHƯƠNG II: CÁC VẤN ĐỀ ĐẶT RA VÀ CÁCH GIẢI QUYẾT 9 1 Đặt vấn đề .9 2 Các công tơ sự kiện 11 PHẦN HAI: GIẢI QUYẾT BÀI TOÁN 13 a Nội dung bài toán 13 b Giải pháp kỹ thuật... /////////////////////////////////////////////////////////////////////// ///// Main Program HVTH: Lê Quang Vũ 24 Lập Trình Mạng public static void main(String args[]) { if(args.length!=1){ System.out.print("Useage: SetServer [port number]\n"); return; } //// SetServer ser = new SetServer(Integer.parseInt(args[0])); } } HVTH: Lê Quang Vũ 25 Lập Trình Mạng b Giải pháp kỹ thuật tăng số gia: Để tăng số gia cho mỗi lần sự kiện đến, . mạng đó là Đồng bộ hóa và gắn bó dữ liệu thông qua một bài toán cụ thể . Thông qua chương trình ta sẽ thấy rõ bài toán đồng bộ hóa và gắn bó dữ liệu là bài toán có ứng dụng hữu ích và thiết thực. Lập Trình Mạng ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA  TIỂU LUẬN MÔN LẬP TRÌNH MẠNG LẬP TRÌNH MẠNG Đề tài : ĐỒNG BỘ HÓA VÀ GẮN BÓ DỮ LIỆU THÔNG QUA MỘT BÀI TOÁN CỤ THỂ GV. đồng bộ hóa và gắn bó dữ liệu. 3. Hãy viết chương trình cho biết giá trị “ảnh” của các công tơ. HVTH: Lê Quang Vũ 3 Lập Trình Mạng PHẦN I: CƠ SỞ LÝ THUYẾT CHƯƠNG I: TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP

Ngày đăng: 31/01/2015, 22:51

Từ khóa liên quan

Mục lục

  • 1. Hệ phân tán (Distributed System):

  • 2. Các mô hình hệ phân tán và ứng dụng mạng:

  • 3. Kiến trúc hệ thống:

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

Tài liệu liên quan