Danh mục

Bài giảng Lập trình đồng thời và phân tán: Bài 4 - Lê Nguyễn Tuấn Thành

Số trang: 40      Loại file: pdf      Dung lượng: 3.42 MB      Lượt xem: 8      Lượt tải: 0    
tailieu_vip

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Lập trình đồng thời và phân tán - Bài 4: Lập trình phân tán" cung cấp cho người học các kiến thức: Thành phần chính cho Lập trình phân tán, hai phong cách Socket và RMI, universal datagram protocol, transmission control protocol. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình đồng thời và phân tán: Bài 4 - Lê Nguyễn Tuấn Thành LẬPTRÌNH BÀI 4:ĐỒNG LẬP TRÌNH THỜI PHÂN TÁN & 1PHÂN TÁN Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn NỘI DUNG▪ Thành phần chính cho Lập trình phân tán▪ Hai phong cách: 1. Socket 2. RMI (Remote Method Invocations)▪ UDP (Universal Datagram Protocol)▪ TCP (Transmission Control Protocol)Bài giảng có sử dụng hình vẽ trong cuốn sách “Concurrent and Distributed Computing in Java, Vijay K. 2Garg, University of Texas, John Wiley & Sons, 2005”34Hệ thống phân tán▪ Bao gồm nhiều máy tínhkết nối với nhau ▪ Không có các biến chia sẻ ▪ Trao đổi thông qua các kênh truyền thông để gửi và nhận thông điệp▪ Thường sử dung lý thuyếtđồ thị để minh hoạ nhữnghệ thống phân tán 56 Lớp InetAddressLớp InetAddress (1)▪ Với bất kỳ ứng dụng phân tán, chúng ta cần khái niệm Địa chỉ Internet▪ Bất kỳ máy tính kết nối với Internet (còn được gọi là host) có thể được xác định duy nhất bằng một địa chỉ internet, được gọi là địa chỉ IP▪ Do địa chỉ số này khó nhớ, mỗi host cũng có thêm một tên (hostname) đi kèm▪ Máy chủ phân giải hệ thống tên miền (Domain Name System - DNS) giúp cung cấp ánh xạ từ tên máy đến địa chỉ của nó. 7Lớp InetAddress (2/2)▪ Java cung cấp lớp java.net.InetAddress đượcsử dụng cho việc ánh xạ này 89 Lập trình SocketSocket▪ A socket is one endpoint of a two-way communication link between two programs running on the network.▪ A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to.▪ An endpoint is a combination of an IP address and a port number. ▪ ex: 206.62.226.25,p21▪ Two endpoints detemine a connection: socket pair 10UDP vs. TCP UDP (Universal Datagram TCP (Transmission Control Protocol) Protocol)▪ Không kết nối ▪ Hướng kết nối▪ Không truyền lại ▪ Tincậy (nhận đủ,▪ Không bảo đảm nhận không trùng lặp)được theo thứ tự đã ▪ Đảm bảo thứ tự nhậngửi được của các gói tin▪ Có thể bị mất, bị ▪ Không bị mất gói tintrùng lặp 11Lập trình Socket dựatrên UDP 12Lớp DatagramSocket▪ Dựa trên giao thức UDP cung cấp một giao diện ởmức thấp cho gửi và nhận thông điệp ▪ Ưu điểm: cho phép truyển dữ liệu nhanh▪ Một datagram socket là điểm gửi hoặc nhận cho mộtdịch vụ vận chuyển gói tin không kết nối ▪ Mỗi gói tin gửi hoặc nhận trên datagram socket được định địa chỉ và định tuyến một cách riêng biệt 13 14Source: https://slideplayer.com/slide/4969080/Lớp DatagramSocket:Các phương thức quan trọng▪ public void close()▪ public int getLocalPort()▪ public InetAddress getLocalAddress()▪ public void receive(DatagramPacket p) ▪ Nhận một gói datagram từ socket ▪ Khi trả về từ phương thức này, bộ đệm của p được điền đầy dữ liệu nhận được ▪ Phương thức chặn cho đến khi nhận được một datagram▪ public void send(DatagramPacket p) ▪ Gửi một gói datagram từ socket ▪ DatagramPacket bao gồm các thông tin về dữ liệu, chiều dài của dữ liệu, địa chỉ IP & cổng của máy đích 15Lớp DatagramPacket 16Echo server▪ Hệ thống gồm 2 luồng cho: ▪ Một máy chủ (server) ▪ Một máy khách (client)▪ Client đọc dữ liệu đầu vào từ người dùng và gửi nó đến server▪ Server nhận được gói tin datagram và sau đó gửi trả lại chính dữ liệu đó cho client▪ Luồng client đọc một dòng đầu vào từ System.in ▪ Sau đó, client tạo một gói tin datagram và gửi tới server ▪ Khi nhận được phản hồi từ server, client sẽ hiển thị thông báo nhận được 17Lập trình Socket dựatrên TCP 18Lập trình Socket dựatrên TCP▪ Dựa trên khái niệm về dòng tin (stream)▪ Một kết nối TCP được thiết lập giữa luồng gửi và luồng nhận▪ Cho phép phục hồi lỗi tốt hơn và đảm bảo thứ tự phân phối các gói dữ liệu. ▪ Trong một stream, các gói được nhận theo đúng thứ tự như khi chúng được gửi đi.▪ Trong Java, sử dụng lớp Socket cho phíaclient và ServerSocket cho phía server 19Source: https://www.safaribooksonline.com/library/view/distributed-computing-in/9781787126992/02dd04be-0dbb-4732-8bc5-1961644e8875.xhtml ...

Tài liệu được xem nhiều: