intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Minh Vũ | Ngày: | Loại File: PDF | Số trang:40

30
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: 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

  1. LẬP TRÌNH BÀI 4: ĐỒNG LẬP TRÌNH THỜI PHÂN TÁN & 1 PHÂN TÁN Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn
  2. 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. 2 Garg, University of Texas, John Wiley & Sons, 2005”
  3. 3
  4. 4
  5. Hệ thống phân tán ▪ Bao gồm nhiều máy tính kế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ững hệ thống phân tán 5
  6. 6 Lớp InetAddress
  7. Lớ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ó. 7
  8. Lớp InetAddress (2/2) ▪ Java cung cấp lớp java.net.InetAddress được sử dụng cho việc ánh xạ này 8
  9. 9 Lập trình Socket
  10. Socket ▪ 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 10
  11. UDP 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ận gửi được của các gói tin ▪ Có thể bị mất, bị ▪ Không bị mất gói tin trùng lặp 11
  12. Lập trình Socket dựa trên UDP 12
  13. Lớ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ột dị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
  14. 14 Source: https://slideplayer.com/slide/4969080/
  15. 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 15
  16. Lớp DatagramPacket 16
  17. Echo 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 17
  18. Lập trình Socket dựa trên TCP 18
  19. Lập trình Socket dựa trê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ía client và ServerSocket cho phía server 19
  20. Source: https://www.safaribooksonline.com/library/view/distributed-computing-in/9781787126992/02dd04be-0dbb-4732-8bc5-1961644e8875.xhtml 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2