1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE

41 1,3K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 537 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE MỤC LỤC MỤC LỤC i LỜI NÓI ĐẦU 1 CHƯƠNG 1: KHÁI QUÁT VỀ HỆ TIN HỌC PHÂN TÁN 2 1.1 Định nghĩa 2 1.2 Các thực thể trong hệ phân tán 2 1.3 Đặc điểm của hệ phận tán 2 1.4 Các ưu điểm của tài nguyên dùng chung trong hệ phân tán: 3 1.5 Các thao tác chuẩn của hệ phân tán 3 CHƯƠNG 2: BÀI TOÁN BÃI ĐỖ XE Ô TÔ 4 2.1 Phát biểu bài toán 4 2.1.1 Tình huống thứ 1 4 2.1.2 Tình huống thứ 2 5 2.2 Hướng giải quyết bài toán 5 2.3 Vấn đề cần giải quyết cho bài toán bãi đỗ xe 6 2.3.1 Giải quyết vấn đề 7 2.3.2 Thuật toán chương trình 9 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 12 3.1 Giới thiệu ngôn ngữ Java 12 3.1.1 Sơ lược về ngôn ngữ lập trình Java 12 3.1.2 RMI – Remote Method Invoke – và lập trình phân tán đối tượng 13 3.2 Nghiên cứu RMI trong Java 15 3.2.1 Bộ đăng ký (REGISTRY) 15 3.2.2 Trao đổi thông tin giữa các đối tượng 15 3.2.3 Tải xuống các lớp Bytecode cho đối tượng 16 3.3 Tiến trình xây dựng chương trình 17 3.3.1 III.3.1. Xây dựng chương trình Server 18 3.3.2 Xây dựng chương trình Client 23 3.3.3 Tải xuống mã động sử dụng RMI 24 3.3.4 Các lớp và giao diện trong ứng dụng RMI 25 3.4 Triển khai chương trình 31 3.4.1 Triển khai chương trình Server 32 3.4.2 Triển khai chương trình Client 33 3.5 Thực hiện chương trình 34 3.5.1 Khởi động các server 34 3.5.2 Thực hiện các yêu cầu từ các server 35 KẾT LUẬN 36 Kết quả thực tế đạt được 36 Tính khả thi và ưu điểm của chương trình 36 Hạn chế của chương trình 36 Hướng phát triển của đề tài 36 TÀI LIỆU THAM KHẢO 37

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE

Giáo viên hướng dẫn: PGS.TS Lê Văn Sơn Học viên thực hiện:

+ Võ Văn Luận + Lê Văn Đông

Lớp: Khoa học máy tính - K11 Niên khoá: 2009- 2011

Trang 3

MỤC LỤC i

LỜI NÓI ĐẦU 1

CHƯƠNG 1: KHÁI QUÁT VỀ HỆ TIN HỌC PHÂN TÁN 2

1.1 Định nghĩa 2

1.2 Các thực thể trong hệ phân tán 2

1.3 Đặc điểm của hệ phận tán 2

1.4 Các ưu điểm của tài nguyên dùng chung trong hệ phân tán: 3

1.5 Các thao tác chuẩn của hệ phân tán 3

CHƯƠNG 2: BÀI TOÁN BÃI ĐỖ XE Ô TÔ 4

2.1 Phát biểu bài toán 4

2.1.1 Tình huống thứ 1 4

2.1.2 Tình huống thứ 2 5

2.2 Hướng giải quyết bài toán 5

2.3 Vấn đề cần giải quyết cho bài toán bãi đỗ xe 6

2.3.1 Giải quyết vấn đề 7

2.3.2 Thuật toán chương trình 9

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 12

3.1 Giới thiệu ngôn ngữ Java 12

3.1.1 Sơ lược về ngôn ngữ lập trình Java 12

3.1.2 RMI – Remote Method Invoke – và lập trình phân tán đối tượng 13

3.2 Nghiên cứu RMI trong Java 15

3.2.1 Bộ đăng ký (REGISTRY) 15

Trang 4

3.2.3 Tải xuống các lớp Bytecode cho đối tượng 16

3.3 Tiến trình xây dựng chương trình 17

3.3.1 III.3.1 Xây dựng chương trình Server 18

3.3.2 Xây dựng chương trình Client 23

3.3.3 Tải xuống mã động sử dụng RMI 24

3.3.4 Các lớp và giao diện trong ứng dụng RMI 25

3.4 Triển khai chương trình 31

3.4.1 Triển khai chương trình Server 32

3.4.2 Triển khai chương trình Client 33

3.5 Thực hiện chương trình 34

3.5.1 Khởi động các server 34

3.5.2 Thực hiện các yêu cầu từ các server 35

KẾT LUẬN 36

Kết quả thực tế đạt được 36

Tính khả thi và ưu điểm của chương trình 36

Hạn chế của chương trình 36

Hướng phát triển của đề tài 36

TÀI LIỆU THAM KHẢO 37

Trang 5

LỜI NÓI ĐẦU

Ngày nay, công nghệ mạng máy tính và Internet đã phát triển mạnh, chophép chúng ta khai thác các nguồn tài nguyên là những kho tư liệu vô cùng rộnglớn về các lĩnh vực, và được bố trí ở những nơi rất xa nhau

Đối với các hệ thông tin lớn, dữ liệu không chỉ được lưu trữ và quản lý bởicác Server độc lập mà thường được phân tán trên nhiều Server và phân bổ ở các

vị trí địa lý khác nhau Hệ thống cho phép xử lý đa truy cập đồng thời cho phépđăng ký từ xa Một trong những lợi ích của việc phân tán dữ liệu như vậy lànhằm chia yêu cầu xử lý dữ liệu cho nhiều máy nhằm tăng năng lực xử lý thôngtin của hệ thống

Môn học Lập Trình Mạng dưới sự giảng dạy của PGS.TS Lê Văn Sơn,

nhóm chúng em đã hiểu thêm được tầm quan trọng, những kiến thức mới của

môn học Vì vậy nhóm em đã chọn tiểu luận “Lập trình bằng các phương pháp

phân tán để điều khiển bãi đỗ xe” với các nội dung:

 Phân tích bài toán bãi đỗ xe ở mức có thể lập trình được;

 Liên hệ với các đặc điểm của hệ phân tán;

 Hiện lên màn hình dòng xe vào – ra tại mỗi trạm của người bảo vệ;

 Cho phép sử dụng phương án lý tưởng

Mặc dù nhóm chúng em đã cố gắng tìm hiểu, nghiên cứu nhưng do thờigian có hạn, khả năng cũng còn hạn chế nên nhóm không tránh khỏi những thiếusót Kính mong thầy xem xét, góp ý để nhóm chúng em hoàn thiện, hiểu rõ hơnnữa về công nghệ lập trình mới và tiên tiến này

Xin chân thành cảm ơn !

Trang 6

CHƯƠNG 1: KHÁI QUÁT VỀ HỆ TIN HỌC PHÂN

TÁN

1.1 Định nghĩa

Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System)

là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các

vị trí khác nhau được liên kết với nhau thông qua phương tiện viễn thông dưới

sự điều khiển thống nhất của một hệ điều hành

Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần:

 Không dùng chung hoặc chia sẻ bộ nhớ;

 Không sử dụng chung đồng hồ xung nhịp;

 Chúng liên lạc với nhau thông qua mạng truyền thông;

 Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó

Các hệ thống phần mềm

Các hệ thống phần mềm

Tập hợp phần cứng

Tập hợp phần cứng

Hệ thống truyền thông

Hệ thống truyền thông

Hệ thống

dữ liệu

Hệ thống

dữ liệu

Trang 7

Thành phần của hệ phân tán bao gồm các hệ thống cục bộ trong đó mỗimột hay nhiều hệ thống phát các yêu cầu thông tin còn các hệ khác trả lời cácyêu cầu có liên quan đến phần dữ liệu của mình Nói một cách tổng quát là trong

hệ luôn luôn diễn ra việc thực hiện các công việc do các hệ thống yêu cầu Các

hệ thống truyền thống như hệ rời rạc hay tập trung không thể đáp ứng nhanhchóng và chính xác các yêu cầu thông tin từ xa với lưu lượng thông tin lớn

1.4 Các ưu điểm của tài nguyên dùng chung trong hệ phân tán:

Việc định nghĩa tài nguyên dùng chung mang đến cho hệ phân tán nhữnghiệu năng tốt trong khai thác ứng dụng như:

 Tăng tốc độ bình quân trong tính toán xử lý

 Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên

 Tăng độ an toàn cho dữ liệu

 Đa dạng hóa các loại hình dịch vụ tin học

 Bảo đảm tính toàn vẹn của thông tin

Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiếtlập hệ liên quan việc cấp phát tài nguyên dùng chung cho các tiến trình

Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu ra trên, hệ tinhọc phân tán cần phải có các cơ chế kỹ thuật đủ mạnh nhằm đồng bộ hóa hoạtđộng của các tiến trình và sự trao đổi thông tin với nhau sao cho hệ thống tránhđược các trường hợp có thể dẫn đến bế tắc

1.5 Các thao tác chuẩn của hệ phân tán

 Tiếp nhận và ghi yêu cầu chỉ dẫn

 Dịch yêu cầu để có các thông tin cần thiết Thực hiện một số công việccủa hệ thống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơndịch vụ

 Gửi kết quả cho hệ thống đã phát yêu cầu

Trang 8

CHƯƠNG 2: BÀI TOÁN BÃI ĐỖ XE Ô TÔ

2.1 Phát biểu bài toán

Bài toán bãi đỗ xe được phát biểu như sau:

Cho một bãi đỗ xe ô tô N chỗ và có ít nhất là hai lối vào Hành vi của ô tôlà: Vào bãi (vao), đỗ (d), Ra (ra)

Hình 2-1 mô phỏng bãi để xe ô tô hiện đại Trong đó BV - người bảo vệ cónhiệm vụ phân phối chỗ cho các xe ô tô, VT - vị trí cho từng xe ôtô cụ thể Cácmũi tên hai chiều được sử dụng để mô tả dòng vào ra của ô tô

2.1.1 Tình huống thứ 1

Ta giả sử rằng bãi đỗ xe ô tô là một bãi lớn có một cổng vào dưới sự kiểmsoát của người bảo vệ (BV) duy nhất Người bảo vệ chỉ biết được một phầntrạng thái của bãi để xe Trong khi anh ta nghĩ rằng bãi xe đã bị đầy, khi đó cónhiều lái xe đang cho xe chạy ra cổng Vì suy nghĩ như vậy, trong trường hợpnày, anh ta không giải quyết cho các xe khác tiếp tục vào bãi nữa, mặc dù lúc

Trang 9

này trong bãi đang có chỗ trống Như vậy, người bảo vệ không nắm được trạngthái hiện hành của bãi.

Như vậy, các bảo vệ phải hợp lực với nhau để phân phối chính xác các chỗtrong bãi, đặc biệt số lượng chỗ còn trống càng ít thì vai trò của hợp lực càngquan trọng

2.2 Hướng giải quyết bài toán

Ở đây sử dụng thuật toán loại trừ tương hổ để giải quyết yêu cầu của bàitoán Nguyên lý của phương pháp này được khái quát như sau:

 Một tiến trình nào đó gửi thông điệp để yêu cầu sử dụng tài nguyên, mộttiến trình sử dụng xong tài nguyên nào đó truyền một thông tin giảiphóng khi nó ngừng chiếm dụng

 Trong các hệ phân tán, chương trình cung cấp nằm trên một trạm và cáctiến trình đề nghị lại ở trên các trạm khác, các yêu cầu và khuyến nghịgiải phóng được truyền cho các chương trình cung cấp thông qua hìnhthức thông điệp, chuyển theo các kênh của hệ thống viễn thông Chính

vì vậy nhu cầu sắp xếp các yêu cầu này theo một trật tự nhất định nào

đó luôn luôn được đặt ra

Trang 10

 Nếu chỉ có một thông điệp đến chương trình cung cấp thì trật tự đến thểhiện một trật tự chặt chẽ Ngược lại nếu có nhiều thông điệp đến cùngmột lúc thì việc sắp xếp chúng phải theo kiểu loại trừ trương hỗ tronghàng đợi cục bộ của trạm có chứa chương trình cung cấp Điều đó cũngcho phép ta có được một trật tự chặt chẽ

 Trật tự có được tại trạm cung cấp có thể không giống như trật tự phát,nếu thời gian truyền không được cố định Trường hợp này khá phổ biếntrong mạng máy tính Nhưng nếu ta muốn xử lý các thông điệp theotrình tự không tính tới thời gian truyền, thì cần phải tính đến một trật tựtổng quát của các lần truyền thông điệp từ các trạm khác nhau

2.3 Vấn đề cần giải quyết cho bài toán bãi đỗ xe

Không có hai tiến trình truy cập cùng một tài nguyên cùng một thời điểm.Bất kỳ tiến trình nào muốn truy cập tài nguyên thì cuối cùng cũng truy cập đượctài nguyên đó Ngoài ra, chúng ta yêu cầu mỗi tiến trình phải tuân theo thêm haiđặc điểm sau:

 Mỗi tiến trình nên yêu cầu tài nguyên theo một trình tự và liên tục, bắtđầu và kết thúc tại một vài tài nguyên duy nhất nào đó mà các tàinguyên này được tiến trình tự chọn

 Bất kỳ một tiến trình mà dành được tất cả các tài nguyên mà nó muốn,cuối cùng cũng phải giải phóng tất cả tài nguyên đó

Có hai sự khó khăn đáng kể là bài toán phải giải quyết: Số lượng các tiếntrình tham gia thì không được biết giữa các tiến trình và cũng không biết được

số lượng tài nguyên được chia sẻ

Chúng ta trước hết hãy quan sát tình huống như sau, không có bất kỳ sựràng buộc thêm, bất kỳ tình huống các tiến trình chờ đợi lẫn nhau, bài toán chỉ

có duy nhất một tiến trình đơn ở một thời điểm điều khiển vị trí để xe

Vấn đề đặt ra đó là bài toán không cho phép bất kỳ giải pháp mô hình bấtđồng bộ thuần tuý Điều không thể xuất phát theo một sự suy diễn mà không

Trang 11

biết được tập hợp các tiến trình tham gia Thật vậy, trong mô hình bất đồng bộkhi các messages có thể chiếm một thời gian dài tuỳ tiện trước khi phát đi, mộttiến trình không có cách nào biết các tiến trình xung quanh nó.

2.3.1 Giải quyết vấn đề

Cho một bãi đỗ xe ô tô N chỗ và có ít nhất là hai lối vào Hành vi của ô tôlà: vào bãi (vào), đỗ (do), Ra (ra)

Việc quản lý truy cập bao gồm ghi lại số lượng xe vào E, số lượng xe ra S

và kiểm tra X mỗi khi muốn cho xe vào bãi theo công thức:

X = N – E + S > 0Trong hệ thống này, người ta sử dụng bộ điều khiển Ci để có được số lượngvào chính xác là Ei, số lượng ra là Si Cho biết M là số lượng bộ điều khiển cótrong hệ Người ta muốn trang bị cho mỗi Ci một biến Xi - số lượng chỗ còntrống trong bãi nhằm mục đích có thể sử dụng điều kiện cục bộ:

số họ phát đi thông tin như sau :

STT Ký hiệu Thông tin phát đi

2 M2 Đã có 10 chỗ bị chiếm

3 M3 Dành 10% chỗ trống để quét dọn sân bãi

Bảng 2-1: Thông tin phát đi

Bảng trên cho ta thấy, nếu ta không thấy ràng buộc nào đối với trình tự xử

lý các thông điệp nhận được của các người bảo vệ thì các người bảo vệ này sẽ có

Trang 12

số lượng chỗ trống khác nhau Để bảo đảm các bảng cập nhật khác nhau thì trình

tự cập nhật nhất thiết phải giống nhau trên tất cả các trạm

Thông điệp

Giá trị

Thông điệp

Giá trị

Thông điệp Giá trị

Bảng 2-2: Trật tự các thông điệp gửi đến từ các trạm

Từ kết quả trên, ta thấy rằng nếu trật tự các thông điệp đến với các ngườibảo vệ không giống nhau thì số lượng chỗ trống của bãi đỗ xe ở mỗi nguời bảo

vệ ở một thời điểm là không giống nhau Vì ta xem một người bảo vệ như là mộtchương trình cung cấp chỗ để xe của bãi, các chương trình này nằm trên cáctrạm khác nhau cách nhau về mặt địa lý Do đó trật tự các thông điệp đến cáctrạm là khác nhau và vì vậy kết quả thể hiện trên các chương trình là khônggiống nhau Điều này thể hiện sự không gắn bó giữa các chương trình Để chocác kết quả trên các trạm là giống nhau thì các thông điệp đến các trạm theo mộttrật tự giống nhau

Điều này xảy ra trên các hệ tập trung Đối với hệ phân tán chúng ta phảixây dựng thuật toán cung cấp cho hệ tin học phân tán

Một sự hoạt động gắn bó của các chương trình cung cấp phân tán quản lýtrên cùng một tập hợp các tài nguyên chỉ đạt được nếu tuân thủ các quy tắc sau,

ở đây các thông điệp được hiểu là các yêu cầu hay khuyến nghị giải phóng tàinguyên

1 Các bộ cung cấp phải thực hiện cùng một giải thuật

2 Các bộ cung cấp đều nhận tất cả các thông điệp phát đi từ các tiến trình

3 Các thông điệp phải được xử lý cùng một trật tự như nhau trong

Trang 13

các chương trình cung cấp

Bảng 2-3: Các quy tắcQuy tắc sau cùng nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhấttrên tập hợp các thông điệp của hệ Trật tự này có thể được thực hiện thông quaviệc hợp lực giữa các tiến trình cung cấp hay giữa các tiến trình phát thông điệp.Chiến lược hợp lực giữa các tiến trình phát nhằm phân phối cho mỗi thông điệp

một dấu nhằm dựa vào đó ta có thể xác lập một trật tự hoàn toàn.

2.3.2 Thuật toán chương trình

Đóng dấu là hành vi gán giá trị nguyên cho một thông điệp nhằm ghi nhận

thời điểm truyền trên cơ sở tham chiếu đồng hồ logic

Nội dung cơ bản của phương pháp này là trạm phát được gắn một giá trịgọi là dấu Giá trị này có tính chất thời điểm cho trạm phát thông tin và dựa vàođồng hồ lô gíc cục bộ của chính trạm Các đồng hồ này được lấy lại thông quahội thoại giữa các trạm

Giải thuật Lamport loại trừ tương hỗ trên cơ sở đóng dấu: Thuật toán này

được Lamport (1978) đưa ra, nó sử dụng cơ chế đóng dấu thời gian cho việcđồng bộ các đồng hồ lôgic

a) Các giả định

Chúng ra giả định mô hình mạng kết nối hoàn toàn trong đó các tiến trìnhliên lạc thông qua các kênh FIFO tin cậy Tức là, các thông điệp không thể sắpxếp lại theo trật tự khác

Các giả định được thực thi một cách dễ dàng ở tầng giao vận

b) Các kiểu thông điệp

(REQ, C i , i) : Một yêu cầu cho việc truy cập vào miền găng CS của tiến

trình Pi Yêu cầu này được phát đi cho tất các các tiến trình khác.

(REP, C i , i) : Hồi âm từ tiến trình Pi cho tiến trình Pj khi Pi nhận được yêu

cầu từ Pj.

Trang 14

(REL, C i , i) : Thông điệp giải phóng từ Pi thông báo cho biết nó đã rời khỏi

CS Thông điệp này được gửi cho tất cả các tiến trình khác.

c) Các biến tiến trình

C i : Đồng hồ cục bộ của Pi, khởi tạo từ 0.

q i : Hàng đợi [0 … n-1] chứa các thông điệp

d) Thuật toán

Khi một tiến trình tại trạm Si muốn thi hành đoạn găng, nó sẽ gửi thôngđiệp REQ có đánh dấu thời gian cho tất cả các trạm trong hệ thống kể có trạm Si.Mỗi trạm, Si, duy trì một hàng đợi chứa các thông điệp yêu cầu được sắpxếp theo trật tự các dấu thời gian; các đồng hồ logic và quan hệ trật tự toàn bộđược sử dụng để gắn các dấu thời gian

Khi một trạm nhận được yêu cầu, nó sẽ đưa thông điệp đó vào hàng đợiyêu cầu của nó theo thứ tự dấu thời gian và gửi một thông điệp trả lời REP Nếucần, quan hệ trật tự toàn bộ được sử dụng để phá vỡ các sự ràng buộc

Ý tưởng chung là một tiến trình không thể thi hành đoạn găng của nó chođến khi nó nhận được trả lời từ tất cả các trạm khác

Tóm lại, một trạm thi hành miền găng của nó khi:

Nhận được thông điệp trả lời từ tất cả các trạm còn lại và

 Yêu cầu REQ của nó là ở trên đỉnh của hàng đợi cục bộ của nó

Khi một trạm hoàn thành miền găng của nó, nó sẽ gửi khuyến nghị giảiphóng REL đến tất cả các trạm Yêu cầu của nó được loại khỏi tất cả các hàngđợi tại thời điểm này Nếu các trạm khác đang chờ để thi hành miền găng củachúng, một trong các trạm đó bây giờ có thể bắt đầu thực hiện miền găng củamình

e) Nhận thấy

Hoạt động: 3(N-1) thông điệp cần thiết cho mỗi miền găng được thi hành.(N-1) thông điệp REQ, (N-1) thông điệp REP và (N-1) thông điệp REL

Trang 15

Độ trễ đồng bộ: T (trong đó T thời gian trung bình truyền thông điệp) Khinhận được thông điệp giải phóng, tiến trình tiếp theo có thể bắt đầu thi hành.Loại trừ tương hỗ là đạt được: Các dấu thời gian là duy nhất, vì vậy tất cảcác hàng đợi sẽ giữ các yêu cầu trong cùng một thứ tự Chỉ một tiến trình duynhất sẽ nằm ở đỉnh của các hàng đợi

Không đổi: Các yêu cầu được cấp quyền dựa trên cơ sở của trật tự dấu thờigian và các tiến trình gửi các thông điệp REL

Trang 16

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

3.1 Giới thiệu ngôn ngữ Java

Ngôn ngữ xây dựng chương trình là ngôn ngữ Java, với việc sử dụng cácđối tượng phân tán bằng kĩ thuật RMI trong Java

3.1.1 Sơ lược về ngôn ngữ lập trình Java

Java khởi thủy tên là Oak- là cây sồi mọc ở phía sau văn phòng của nhà

thiết kế chính ông Jame Gosling, sau này ông thấy rằng đã có ngôn ngữ lập trình

tên Oak rồi, do vậy nhóm thiết kế quyết định đổi tên, và “Java” là cái tên được

chọn, Java là tên của một quán Cafe mà nhóm thiết kế Java hay đến đó uống Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớntrong những năm cuối thế kỉ 20, đầu thế kỉ 21 Nó được coi là công nghệ mangtính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạythống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần

Lần đầu tiên xuất hiện vào năm 1992 như là một ngôn ngữ dùng trong nội

bộ tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển các bộ xử lýbên trong máy điện thoại cầm tay, lò vi sóng, các thiết bị điện tử dân dụng khác.Không chỉ là một ngôn ngữ, Java còn là một nền tảng phát triển và triển khaiứng dụng trong đó máy ảo Java, bộ thông dịch có vai trò trung tâm

Sun, công ty đã phát minh ra ngôn ngữ Java, chính thức ban hành bảnJava Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí để các nhà pháttriển có thể tải về, học Java, xây dựng các ứng dụng Java và triển khai chúngtrên các hệ điều hành có hỗ trợ Java Hiện nay, công nghệ Java được chia làm ba

bộ phận:

J2SE Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng

dụng trên Desktop và định nghĩa các phần thuộc nhân của Java

J2EE Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng

dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server) Bộ phận hay

Trang 17

được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java

để làm các ứng dụng web

J2ME Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng

Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo

 Máy ảo Java: JVM

 Bộ công cụ phát triển: J2SDK

 Các đặc tả chi tiết kĩ thuật (Specifications)

 Ngôn ngữ lập trình (Programming language)

Tính uyển chuyển của ngôn ngữ Java thể hiện qua việc chương trình biêndịch Java chuyển đổi chương trình nguồn Java thành mã đối tượng, gọi là mãbyte (bytecodes) - tập tin có tên quy ước với phần mở rộng là class Sau đó,máy ảo Java có trên máy điều khiển để thực thi

Mã máy chỉ thực hiện trên máy tính mà nó được biên dịch, trong khibytecode có thể thực hiện trên bất kỳ hệ thống máy tính nào có trình điều khiểnJava Ngoài ra, tính uyển chuyển làm tăng khả năng tái sử dụng các lớp được tạora; các lớp cho phép thực hiện kỹ thuật kết nối động (Dynamic Binding) khichương trình thực thi

3.1.2 RMI – Remote Method Invoke – và lập trình phân tán đối tượng

Thông thường các chương trình được viết dưới dạng thủ tục hay hàm gọi

Mã lệnh của hàm hay thủ tục được nạp thẳng vào ký ức và thực thi ngay trênmáy cục bộ Đối với các hàm (hoặc đối tượng) thư viện như

Trang 18

System.out.println(), bạn không cần quan tâm đến cách thức mà hàm thư việnnày cài đặt Điều quan tâm ở đây là đối số truyền cho hàm và kết quả trả về Vậythì có cách nào nạp nội dung của hàm hay đối tượng ở một máy nào đó và gọichúng từ một máy hay không? Đây chính là nội dung của lập trình phân tán mãlệnh RMI - mang ý nghĩa triệu gọi phương thức từ xa - là cách thức giao tiếpgiữa các đối tượng Java có mã lệnh cài đặt (bao gồm phương thức và thuộc tính)nằm trên các máy khác nhau có thể triệu gọi lẫn nhau.

Hình 3-1 cho thấy mô hình triệu gọi đối tượng phân tán Trên máy A cácđối tượng A1, A2 gọi phương thức của nhau được gọi là triệu gọi phương thứccục bộ (local method invoke) đây là cách mà lập trình hướng đối tượng truyềnthống vẫn sử dụng Tương tự, tương tác giữa C1, C2, C3 là tương tác cục bộ.Tuy nhiên, đối tượng Java có thể gọi phương thức của đối tượng nằm trênmột máy khác dự vào giao thức triệu gọi từ xa RMI thông qua lớp trung gian:stub (lớp móc) - máy khách; skeletion (lớp nối) - máy khách Ví dụ như A1 gọiC1 (Trình biên dịch Java sẽ giúp bạn tạo 2 lớp trung gian C1_Skel và C1_Stub,kết quả trả về sẽ được C1_Skel đóng gói trả ngược lại cho C1_stub C1_Stub sẽchuyển giao kết quả trả về cho A1), tương tự A2 gọi B1

Trang 19

Hình 3-1: Gọi phương thức thông qua lớp trung gian

3.2 Nghiên cứu RMI trong Java

Tiến trình thực hiện các ứng dụng phân tán sử dụng kỹ thuật này nói chunggồm các bước sau:

3.2.1 Bộ đăng ký (REGISTRY)

Một Client muốn sử dụng các phương thức và gọi được đối tượng từ xa thìClient đó phải liên lạc với rmiregistry để lấy về tham chiếu đối tượng Dịch vụđăng ký và truy tìm đối tượng được Java quản lý bằng các hàm giao tiếp JNDI(Java Naming Directory Interface) Các hàm JNDI ở máy khách(Naming.lookup()) sẽ liên lạc với rmiregistry để nhận về tham chiếu đối tượng.Trong khi các hàm JNDI ở máy chủ (Naming.bind() hoặc Naming.rebind()) cónhiệm vụ đăng ký tên đối tượng với rmiregistry

Mục đích của các ứng dụng RMI là lập trình phân tán đối tượng trên môhình kết nối mạng

3.2.2 Trao đổi thông tin giữa các đối tượng

Trao đổi thông tin giữa các đối tượng ứng dụng kỹ thuật RMI trên thựcchất là quá trình xây dựng những tham chiếu từ xa giữa các đối tượng, một khiđạt được sự tham chiếu này các đối tượng từ xa có thể gọi ra các phương thứccủa nhau cho dù nội dung đoạn mã có thể phân tán tại các Client hoặc mộtServer nào đó Việc trao đổi thông tin từ xa này đã được xem như một tiêuchuẩn trong việc gọi ra các phương thức trong Java

Việc nạp các lớp thao tác mã (bytecode) cho các đối tượng thực chất làchuyển đi các tham số hoặc giá trị trả về RMI cho phép nơi gọi chuyển hoàntoàn các đối tượng Java đến các đối tượng từ xa, RMI cung cấp các kỹ thuật cầnthiết cho việc nạp mã của các đối tượng từ xa cũng như chuyển dữ liệu của nó.Trong phạm vi ứng dụng này đã sử dụng một trình đăng ký để có được các thamchiếu đến các đối tượng từ xa Server gọi trình đăng ký để liên kết tên với đối

Trang 20

tượng từ xa Client tìm kiếm đối tượng từ xa thông qua tên của nó trong trìnhđăng ký của Server và gọi ra phương thức trên đó.

Tiến trình nạp các lớp bytecode sử dụng một trang web Server để trao đổithông tin từ Server đến Client và ngược lại cho các mục đích khác nhau của cácđối tượng

RMI có thể nạp các lớp bytecode bằng cách sử dụng bất kỳ giao thức URLnào (HTTP, FTP, file, v.v.) được hệ thống java cung cấp

3.2.3 Tải xuống các lớp Bytecode cho đối tượng

Bởi vì RMI cho phép một chương trình gọi nhận được các phương thức củađối tượng để phục vụ cho các đối tượng từ xa, để thực hiện được điều đó RMIcung cấp một kỹ thuật cần thiết cho việc nạp mã của các phương thức thuộc đốitượng khá tốt cũng như việc truyền dữ liệu của nó Theo mô hình minh họa bằnghình ảnh của một ứng dụng RMI có sử dụng trình đăng ký (registry) để đạt đượckhả năng tham chiếu đến các đối tượng từ xa Trước Server gọi ra trình đăng kýregistry để liên kết tên của các đối tượng từ xa Sau đó

Client tìm kiếm đối tượng từ xa bằng tên của nó đã đăng ký trên Server vàgọi ra các phương thức trên đối tượng đó Sự minh họa này cũng chỉ ra rằng hệthống RMI sử dụng một Web Server đang hoạt động để nạp các lớp mãbytecode từ Server đến phục vụ cho những yêu cầu của Client và ngược lại chocác đối tượng khi cần

Tất cả các hoạt động nói trên có thể được mô tả như hình sau

Web

Web server

RMI

RMI

URL protocol URL protocol

URL protocol

RMI

Ngày đăng: 12/11/2014, 08:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] PGS.TS. Lê Văn Sơn, Hệ tin học phân tán, NXB Đại học quốc gia TP. Hồ Chí Minh, 2002 Sách, tạp chí
Tiêu đề: Hệ tin học phân tá
Nhà XB: NXB Đại học quốc gia TP. HồChí Minh
[2] Nguyễn Phương Lan - Trần Đức Hải, Java lập trình mạng, NXB Giáo dục, 2001 Sách, tạp chí
Tiêu đề: Java lập trình mạng
Nhà XB: NXB Giáo dục
[3] Trần Hạnh Nhi, Giáo trình hệ điều hành nâng cao, NXB Đại học khoa học tự nhiên Sách, tạp chí
Tiêu đề: Giáo trình hệ điều hành nâng cao
Nhà XB: NXB Đại học khoa họctự nhiên
[4] Jeffery Ullman, Nguyên lý các hệ cơ sở dữ liệu, NXB Thống kê Sách, tạp chí
Tiêu đề: Nguyên lý các hệ cơ sở dữ liệu
Nhà XB: NXB Thống kê
[6] Berson, Client/Server architeture, McGraw - Hill International, 1994 Sách, tạp chí
Tiêu đề: Client/Server architeture

HÌNH ẢNH LIÊN QUAN

Hình 1-1: Bốn thực thể của hệ tin học phân tán - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Hình 1 1: Bốn thực thể của hệ tin học phân tán (Trang 6)
Hình 2-1 mô phỏng bãi để xe ô tô hiện đại. Trong đó BV - người bảo vệ có nhiệm vụ phân phối chỗ cho các xe ô tô, VT - vị trí cho từng xe ôtô cụ thể - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Hình 2 1 mô phỏng bãi để xe ô tô hiện đại. Trong đó BV - người bảo vệ có nhiệm vụ phân phối chỗ cho các xe ô tô, VT - vị trí cho từng xe ôtô cụ thể (Trang 8)
Bảng 2-1: Thông tin phát đi - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Bảng 2 1: Thông tin phát đi (Trang 11)
Bảng 2-2: Trật tự các thông điệp gửi đến từ các trạm - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Bảng 2 2: Trật tự các thông điệp gửi đến từ các trạm (Trang 12)
Hình 3-1 cho thấy mô hình triệu gọi đối tượng phân tán. Trên máy A các đối tượng A1, A2 gọi phương thức của nhau được gọi là triệu gọi phương thức cục bộ (local method invoke) đây là cách mà lập trình hướng đối tượng truyền thống vẫn sử dụng - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Hình 3 1 cho thấy mô hình triệu gọi đối tượng phân tán. Trên máy A các đối tượng A1, A2 gọi phương thức của nhau được gọi là triệu gọi phương thức cục bộ (local method invoke) đây là cách mà lập trình hướng đối tượng truyền thống vẫn sử dụng (Trang 18)
Hình 3-3: Mô hình các đối tượng đệ trình đến Server - LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE
Hình 3 3: Mô hình các đối tượng đệ trình đến Server (Trang 23)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w