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
Trang 1TIỂU LUẬN MÔN LẬP TRÌNH
MẠNG NÂNG CAO
XUẤT VÀ TRẠM TIÊU THỤ ĐỂ MÔ PHỎNG QUÁ
TRÌNH LÀM VIỆC CỦA HỆ PHÂN TÁN
GVHD: PGS.TS Lê Văn Sơn Học viên: Nguyễn Minh Quỳnh
Trang 3 Các điểm mạnh trong hệ tin học phân tán
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
toán và khai thác dữ liệu của 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 sẽ giải quyết được những bài toán lớn hơn, phức tạp hơn của thực tế
Trang 4 Triệu gọi phương thức từ xa
Nếu ta cần truy cập tới một đối tượng ở trên một
máy khác thì ta chỉ cần triệu gọi phương thức của đối tượng ở trên máy đó
Các tham số được gửi đến cho máy kia và đối tượng
nhận được phải chắc 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)
Trang 5 Kiến trúc RMI
RMI được xây dựng dựa trên kiến trúc ba tầng
Stub & Skeleton
Tham chiếu từ xa
Stub & Skeleton
Tham chiếu từ xa
Tầng giao vận
Chương trình khách
Chương trình
chủ
Hệ thống
RMI
Trang 6 Kiến trúc RMI
Hai lớp trung gian Stub và Skeleton: chúng được hệ thống
tạo ra theo yêu cầu Lớp Skeleton liên lạc với Stub thông qua liên kết RMI Nó truyề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 trên kết nối TCP/IP giữa các máy tính
trong mạng Tầng giao vận RMI được thiết kế để thiết lập một kết nối giữa máy Client với máy Server
Trang 7 Thiết lập giao diện từ xa (interface)
Đối tượng từ xa là thể hiện của một 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ủa các đối tượng từ xa: phải được khai
báo như là kiểu giao diện Remote
Trang 8 Xây dựng các lớp cài đặt các giao diện từ xa
Ở phía máy chủ:
• Khai báo nó cài đặt ít nhất một giao diện từ xa
• Định nghĩa đối tượng từ xa
• Cài đặt các phương thức để có thể triệu gọi được từ xa.
Trang 9 Cài đặt các 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ác phương thức đã được khai báo trong giao diện từ
xa
Các tham số, các giá trị trả về: có thể là kiểu dữ liệu bất
kỳ của Java
Lưu ý : Những phương thức cục bộ chỉ được gọi trong
cùng một ứng dụng (cùng một JVM), không triệu gọi từ
xa được
Trang 10 Xác định các đối tượng dịch vụ
Để truy cập được đối tượng từ xa trên máy phục vụ, máy
khách cần có được đối tượng đại diện tại nơi đó
Hệ thống RMI cung cấp một bộ đă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ụ
Trang 11 Bộ đăng ký RMI registry
Ta không thể 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 thì phải đăng ký với RMI registry Bộ đăng ký này là một chương trình dịch vụ chạy ở hậu trường, lắng nghe ở một cổng có số hiệu đã xác định
Java cho phép người lập trình tự tạo bộ đăng ký cho riêng
mình Để tạo bộ đăng ký và tự đăng ký đối tượng, ta sử dụng phương thức tĩnh createRegistry() của lớp LocateRegistry
Trang 12 Để 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 ;
Trang 13 Xu hướng lập trình phân tán phát triển tự nhiên và là tất yếu.
Services đang nổi lên như là lựa chọn tốt nhất
Yêu cầu người quản trị cung cấp một số cổng để kết nối
Sử dụng cơ chế trung gian thông qua cổng 80
Trang 14 Việc nghiên cứu về RMI là một phần không thể 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 chỉ định đã được mở từ trước
Trang 15 Á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án.
Trang 16 Để giải quyết bài toán trạm sản xuất và trạm tiêu thụ ta sử
dụng một số hàm sau:
tang(E) : tăng giá trị công tơ lên một đơn vị
cho(E,i) : treo cho đến khi giá trị của công tơ sự kiện E
lớn hơn hoặc bằng 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 chỉ có thể sản xuất sản phẩm nếu: NP – NC’ < N
Trạm tiêu thụ CS chỉ có thể tiêu thụ sản phẩm nếu:
NP’ – NC > 0
Trang 17+ Thuật toán tại trạm sản
xuất PS:
Vòng lặp
Nếu receive(CS)
tang(NC’) cho(NC’,NP – N + 1)
send(PS)
NC = NC + 1
Kết thúc vòng lặp
Thuật toán đồng bộ giữa trạm sản xuất và trạm tiêu thụ
Thuật toán đồng bộ giữa trạm sản xuất và trạm tiêu thụ
Trang 18 Khởi tạo Server1
Trang 19 Khởi tạo Server2
Trang 20 Cửa sổ Client để thực thi lệnh
Trang 21 Màn hình hiển thị các giá trị công tơ sự kiện
Trang 22CẢM ƠN SỰ QUAN TÂM, GÓP Ý CỦA
THẦY, CÁC ANH CHỊ VÀ CÁC
BẠN !!!