Tải bản đầy đủ (.ppt) (19 trang)

báo cáo tiểu luận môn lập trình mạng áp dụng lý thuyết trật tự từng phần để thể hiện đồng bộ của 2 tiến trình ở xa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (538.66 KB, 19 trang )

TIỂU LUẬN MÔN HỌC
LẬP TRÌNH MẠNG
Đề tài:
ÁP DỤNG THUẬT TOÁN TRẬT TỰ TỪNG
PHẦN ĐỂ ĐỒNG BỘ HÓA 2 TIẾN TRÌNH Ở XA
Giáo viên hướng dẫn : PGS.TS. Lê Văn Sơn
Học viên : Võ Minh Trang
Lớp : K24 - KHMT
Đà Nẵng, tháng 5/2012
NỘI DUNG TRÌNH BÀY
NỘI DUNG TRÌNH BÀY
Vài nét về hệ phân tán
1
Giới thiệu RMI
2
Thiết lập môi trường triệu gọi từ xa
3
Nhận xét về RMI


4
Giới thiệu bài toán và demo chương trình
5
Vài nét về hệ phân tán
 Các điểm mạnh trong 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 chính ở rất xa.



Hệ phân tán được xây dựng trên 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 của lập trình mạng phân tán là tận dụng các khả năng tính
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ế.
Giới thiệu RMI
 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).
Giới thiệu RMI

 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
Giới thiệu RMI
 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.
Thiết lập môi trường triệu gọi
từ xa trên Server
 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.
 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.
Thiết lập môi trường triệu gọi
từ xa trên Server
Thiết lập môi trường triệu gọi
từ xa trên Server
 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.
Thiết lập môi trường triệu gọi
từ xa trên Server
 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ụ.
Thiết lập môi trường triệu gọi
từ xa trên Server
 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.
Thiết lập môi trường triệu gọi

từ xa trên Client

Để 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 ;
Nhận xét về phương thức
lập trình phân tán RMI



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à một 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 nay Web
Services đang nổi lên như là lựa chọn tốt nhất.

Có thể giải quyết đối với vấn đề tường lửa như :

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.
Nhận xét về phương thức
lập trình phân tán RMI




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.
Bài toán ứng dụng và
demo chương trình



Á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.

Bao gồm:

Xây dựng hệ 2 Server hoạt động theo nguyên lý trao
đổi thông điệp.

Xây dựng chương trình bằng Java thể hiện chức năng
tại 2 trạm nêu trên.

Viết chương trình mô phỏng trên màn hình quá trình
hoạt động của hệ.
Bài toán ứng dụng và
demo chương trình

Để 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
Bài toán ứng dụng và
demo chương trình
+ 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)
san_xuat()
send(CS)
NP = NP + 1
Kết thúc vòng lặp
+ Thuật toán tại 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 + 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ụ
Bài toán ứng dụng và
demo chương trình
Màn hình hiển thị các giá trị công tơ sự kiện

×