Báo cáo môn học : Lập trình mạng nâng cao (cao học: Khoa học máy tính)Đề tài : ÁP DỤNG THUẬT TOÁN TẠI TRẠM SẢN XUẤT VÀ TRẠM TIÊU THỤ ĐỂ MÔ PHỎNG QUÁ TRÌNH LÀM VIỆC CỦA HỆ PHÂN TÁNChương trình (code) xin liên hệ vuongthienminh@gmail.com để nhận
TIỂU LUẬN MƠN LẬP TRÌNH MẠNG NÂNG CAO ÁP DỤNG THUẬT TOÁN TẠI TRẠM SẢN XUẤT VÀ TRẠM TIÊU THỤ ĐỂ MƠ PHỎNG Q TRÌNH LÀM VIỆC CỦA HỆ PHÂN TÁN Đề tài: GVHD: Học viên: PGS.TS Lê Văn Sơn Nguyễn Minh Quỳnh Vài nét hệ phân tán Giới thiệu RMI Thiết lập môi trường triệu gọi từ xa Nhận xét RMI Giới thiệu tốn demo chương trình Các điểm mạnh hệ tin học phân tán Hỗ trợ truy cập các dữ liệu được lưu ở nhiều nơi Có thể lấy được các thơng tin từ các trung tâm ở rất xa Hệ phân tán được xây dựng giao thức TCP/IP và các kỹ thuật Web cùng với các ứng dụng trung gian thúc đẩy việc tính toán phân tán Mục đích lập trình mạng phân tán là tận dụng các khả tính toán và khai thác dữ liệu các hệ thống máy tính ở xa để thực hiện những tính toán nhanh hơn, việc xử lý phân tán giải được những bài toán lớn hơn, phức tạp thực tế Triệu gọi phương thức từ xa Nếu ta cần truy cập tới đối tượng ở máy khác ta cần triệu gọi phương thức đối tượng ở máy Các tham số được gửi đến cho máy và đối tượng nhận được phải chắn thực hiện phương thức tương ứng để có được những thơng tin cần thiết gửi trả lại cho đối tượng tượng yêu cầu (khách hàng) Kiến trúc RMI RMI được xây dựng dựa kiến trúc ba tầng Chương trình khách Chương trình chủ Stub & Skeleton Hệ thống RMI Stub & Skeleton Tham chiếu từ xa Tham chiếu từ xa Tầng giao vận Kiến trúc RMI Hai lớp trung gian Stub và Skeleton: chúng được hệ thống tạo theo yêu cầu Lớp Skeleton liên lạc với Stub thơng qua liên kết RMI Nó trùn thông số qua lại thông qua các lời triệu gọi từ xa Tầng tham chiếu từ xa: dịch và quản lý các tham chiếu tới các đối tượng dịch vụ từ xa là cách kết nối Client/Server Tầng giao vận: dựa kết nối TCP/IP giữa các máy tính mạng Tầng giao vận RMI được thiết kế để thiết lập kết nối giữa máy Client với máy Server Thiết lập giao diện từ xa (interface) Đối tượng từ xa là thể hiện lớp cài đặt giao diện Remote Các giao diện từ xa phải đảm bảo những tính chất sau: • Giao diện từ xa phải khai báo public • Giao diện từ xa kế thừa java.rmi.Remote • Mọi phương thức phải khai báo với mệnh đề throws để kiểm soát các ngoại lệ java.rmi.RemoteException • Kiểu dữ liệu các đối tượng từ xa: phải được khai báo là kiểu giao diện Remote Xây dựng lớp cài đặt giao diện từ xa Ở phía máy chủ: • Khai báo cài đặt nhất giao diện từ xa • Định nghĩa đối tượng từ xa • Cài đặt các phương thức để triệu gọi được từ xa Cài đặt phương thức từ xa Lớp được cài đặt các đối tượng từ xa phải cài đặt tất các phương thức được khai báo giao diện từ xa Các tham số, các giá trị trả về: là kiểu dữ liệu bất kỳ Java Lưu ý : Những phương thức cục được gọi cùng ứng dụng (cùng JVM), không triệu gọi từ xa được Xác định đối tượng dịch vụ Để truy cập được đối tượng từ xa máy phục vụ, máy khách cần có được đối tượng đại diện nơi Hệ thống RMI cung cấp đăng ký (RMI registry) đối tượng từ xa để ta kết hợp với tên được thiết lập theo URL dạng “//host/objectname” giúp ta xác định được đối tượng phục vụ Bộ đăng ký RMI registry Ta gọi trực tiếp mà thông qua các lớp trung gian Stub và Skel Ta thực hiện điều này nhờ trình biên dịch rmic Các đối tượng phục vụ muốn chương trình khách truy cập được từ xa phải đăng ký với RMI registry Bộ đăng ký này là chương trình dịch vụ chạy ở hậu trường, lắng nghe ở cổng có số hiệu xác định Java cho phép người lập trình tự tạo đăng ký cho riêng Để tạo đăng ký và tự đăng ký đối tượng, ta sử dụng phương thức tĩnh createRegistry() lớp LocateRegistry Để máy khách thực hiện việc gọi được các đối tượng từ xa được đăng ký Tại máy khách ta dùng phương thức Naming.lookup(url:port/ten_doi_tuong") thuộc package java.rmi.server ; Xu hướng lập trình phân tán phát triển tự nhiên và là tất yếu Là giải pháp khá đơn giản cho vấn để triệu gọi từ xa Đã có rất nhiều giải pháp cho vấn đề này và hiện Web Services lên là lựa chọn tốt nhất Có thể giải đối với vấn đề tường lửa : Yêu cầu người quản trị cung cấp số cổng để kết nối Sử dụng chế trung gian thông qua cổng 80 Việc nghiên cứu về RMI là phần thiếu đối với các nhà phát triển Java Nhược điểm: phải thực hiện việc kết nối giữa các đối tượng qua các cổng định được mở từ trước Áp dụng thuật toán trạm sản xuất và trạm tiêu thụ để mơ quá trình làm việc hệ phân tán Bao gồm: Xây dựng hệ Server hoạt động theo nguyên lý trao đổi thông điệp Xây dựng chương trình Java thể hiện chức trạm nêu Viết chương trình mơ màn hình quá trình hoạt động hệ Để giải bài toán trạm sản xuất và trạm tiêu thụ ta sử dụng số hàm sau: tang(E) : tăng giá trị công tơ lên đơn vị cho(E,i) : treo giá trị công tơ kiện E lớn i send(S): gửi thông điệp đến trạm S receive(S): nhận thông điệp từ trạm S Trạm sản xuất PS sản xuất sản phẩm nếu: NP – NC’ < N Trạm tiêu thụ CS tiêu thụ sản phẩm nếu: NP’ – NC > Thuật toán đồng trạm sản xuất trạm tiêu thụ + Thuật tốn trạm sản xuất PS: Vịng lặp Nếu receive(CS) tang(NC’) cho(NC’,NP – N + 1) san_xuat() send(CS) NP = NP + Kết thúc vịng lặp + Thuật tốn trạm tiêu thụ CS: Vòng lặp Nếu receive(PS) tang(NP’) cho(NP’,NP + 1) tieu_thu() send(PS) NC = NC + Kết thúc vòng lặp Khởi tạo Server1 Khởi tạo Server2 Cửa sổ Client để thực thi lệnh Màn hình hiển thị giá trị cơng tơ kiện CẢM ƠN SỰ QUAN TÂM, GÓP Ý CỦA THẦY, CÁC ANH CHỊ VÀ CÁC BẠN !!! ... trạm S receive(S): nhận thông điệp từ trạm S Trạm sản xuất PS sản xuất sản phẩm nếu: NP – NC’ < N Trạm tiêu thụ CS tiêu thụ sản phẩm nếu: NP’ – NC > Thuật toán đồng trạm sản xuất. .. trạm sản xuất trạm tiêu thụ + Thuật toán trạm sản xuất PS: Vòng lặp Nếu receive(CS) tang(NC’) cho(NC’,NP – N + 1) san_xuat() send(CS) NP = NP + Kết thúc vịng lặp + Thuật tốn trạm tiêu thụ CS: Vòng...1 Vài nét hệ phân tán Giới thiệu RMI Thiết lập môi trường triệu gọi từ xa Nhận xét RMI Giới thiệu toán demo chương trình Các điểm mạnh hệ tin học phân tán Hỗ trợ truy