Để ứng dụng phần lý thuyết đã học về Hệ tin học phân tán vào trong đề tài của tiểu luận, em trình bày hai vấn đề : Ứng dụng lý thuyết về cơ chế điều khiển việc thực hiện từ xa trong bà
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
GV hướng dẫn : PGS-TS Lê Văn Sơn
Học viên : Nguyễn Trọng Ân
Chuyên ngành : Khoa Học Máy Tính
ĐÀ NẴNG, 06/2015
Trang 2LỜI MỞ ĐẦU
Hệ tin học phân tán là hệ thống rất đa dạng, là vùng tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan tâm và đổi mới rất nhanh chóng
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hóa các quá trình xử lý thông tin và thực hiện các công việc đó trên các trạm cách xa nhau Đó
là cơ sở để xây dựng các hệ ứng dụng lớn như thương mại điện tử, giáo dục điện tử, chính phủ điện tử
Để ứng dụng phần lý thuyết đã học về Hệ tin học phân tán vào trong đề tài của tiểu luận, em trình bày hai vấn đề :
Ứng dụng lý thuyết về cơ chế điều khiển việc thực hiện từ xa trong bài toán
Hệ kinh doanh từ xa để mô phỏng một phần nhỏ trong đề án Xây dựng hệ thống đăng kí tín chỉ qua mạng
Trình bày nguyên lý, giải thuật để giải quyết việc đảm bảo liên lạc gắn bó giữa các tiến trình với nhau theo hai tình huống :
1 Trao đổi giữa hai tiến trình.
2 Trao đổi giữa n tiến trình (n>2).
Em xin chân thành cảm ơn thầy PGS.TS Lê Văn Sơn đã hướng dẫn và cung
cấp kiến thức và tài liệu để em có thể hoàn thành tiểu luận này
Học viên thực hiện
Nguyễn Trọng Ân
Trang 3MỤC LỤC
CƠ CHẾ ĐIỀU KHIỂN VIỆC THỰC HIỆN TỪ XA VÀ VÍ DỤ MINH HỌA 1
GIẢI THUẬT ĐẢM BẢO VIỆC LIÊN LẠC GIỮA CÁC TIẾN TRÌNH 1
LỜI MỞ ĐẦU 2
CƠ SỞ LÝ THUYẾT 1
Điều khiển truy cập từ xa 1
I Yêu cầu từ xa 1
II Đăng ký từ xa 3
VÍ DỤ ỨNG DỤNG THỰC HIỆN TỪ XA 9
I Giới thiệu hệ thống đăng kí tín chỉ qua mạng 9
Hệ thống đăng kí tín chỉ qua mạng là một hệ thống sử dụng kết nối giữa máy chủ Server tới các máy trạm Client được đặt ở những nơi khác nhau cùng sử dụng chương trình đăng kí tín chỉ qua mạng Ưu điểm của hệ thống là: 9
II Mô hình Client-Server 9
.II.1 Giới thiệu 9
III Cơ chế điều khiển việc thực hiện từ xa 11
IV Bài toán minh họa 12
.IV.1 Mô tả 12
.IV.2 Giải quyết yêu cầu từ xa 12
.IV.3 Thực hiện đăng ký từ xa 13
VẤN ĐỀ ĐẢM BẢO LIÊN LẠC GIỮA CÁC TIẾN TRÌNH TRONG HỆ PHÂN TÁN 15 I Việc đồng bộ giữa các thực thể trao đổi thông tin qua lại 15
II Bản chất của các thông điệp 15
III Lai lịch (định danh) của các tiến trình 16
IV Các khả năng xử lý lỗi trong khi truyền tin 20
V Ví dụ minh hoạ 20
.V.1 Trường hợp 2 tiến trình 20
.V.2 Trường hợp n tiến trình 22
KẾT LUẬN 25
TÀI LIỆU THAM KHẢO 26
Trang 4CHƯƠNG I
CƠ SỞ LÝ THUYẾT Điều khiển truy cập từ xa
Giới thiệu các bước để thực hiện việc điều khiển từ xa thông qua bài toán về
hệ kinh doanh từ xa trong giáo trình hệ tin học phân tán nhằm làm cơ sở để áp dụng phân tích trình bày trong ví dụ minh họa ở phần sau
I Yêu cầu từ xa
Giả sử một khách hàng muốn được cung cấp thông tin và thể hiện yêu cầu
đó qua một truy vấn Bên kia, sau khi tiếp nhận, việc truy tìm trong cơ sở dữ liệu được tiến hành Nếu có thông tin cần tìm thì thông tin đó sẽ được chuyển lại cho người yêu cầu
Theo bài toán, ví dụ có một khách ở thành phố A muốn biết thông tin về giá
cả của một mặt hàng do một bộ phận ở thành phố B ở xa quản lý Để đáp ứng được yêu cầu này đòi hỏi hệ thống phải có khả năng thực hiện hàng loạt các thao tác được xác định:
Nhận biết thông tin nằm tại vị trí nào (gọi là vấn đề trỏ thông tin); tức là phải biến đổi tên của thành phố B thành tên của hệ thống cục bộ quản lý thông tin của thành phố A để hệ thống viễn thông có thể nhận dạng được
và có thể gửi thông tin đến đúng địa chỉ Tên của hệ thống cục bộ phải là tên duy nhất và không được tùy tiện thay đổi
Sau khi đã trỏ đúng vào địa chỉ chứa thông tin, hệ phải có khả năng tiếp nhận và ghi lại các yêu cầu chỉ dẫn
Biên dịch các yêu cầu này thành dạng lệnh có thể thực hiện được để có thể truy tìm thông tin
Trang 5 Thực hiện công việc mang tính cục bộ hệ thống như: kiểm tra quyền truy cập thông tin, thống kê số lượng người truy cập, lập hóa đơn, thanh toán…
Nếu tìm được thông tin theo yêu cầu thì gửi nó cho hệ thống yêu cầu.Sau đây là cơ chế hoạt động có thể cài đặt trong A và B theo mô hình Client/Server:
Hệ thống A Hệ thống B
Phatyeucau(B,yc)
Nhanlai(kq)
Lặp lại Nhanyeucau(s, nh)
Nếu (yêu cầu hợp thức) thì
Bắt đầu Tracuucsdl Thongke Guiketqua (s, kq) Kết thúc
Nếu không Guithongbao (s,tb)Cho đến khi đúng
Trường hợp tra cứu vừa nêu là đơn giản bởi vì phép toán diễn ra độc lập Có rất nhiều trường hợp phức tạp hơn, trong đó một phép tra cứu lại phụ thuộc vào các phép xử lý khác trước đó Đây là giao dịch không thể tiến hành bằng một lệnh hoặc
là một hàm mà phải được tiến hành bằng thủ tục truy vấn Thủ tục này có khả năng liên kết tự động các tra cứu sơ đẳng lại với nhau
Chương trình truy vấn đầy đủ có thể được cài đặt tại máy Client hoặc tại máy Server Hai giải pháp này khác nhau ở bản chất và khối lượng thông tin trao đổi giữa các trạm với nhau
Một trong những vấn đề cần phải quan tâm là độ tin cậy của thông tin Thông tin là đúng tại thời điểm mà Server đọc nó, nhưng có thể sai khi Client nhận được; điều này liên quan đến việc làm tươi thông tin trong CSDL Nói một cách tổng quát
là cần phải có những giải pháp hữu hiệu cho việc truy cập đồng thời vào dữ liệu dùng chung
Trang 6Trong thực tế, những trường hợp nêu trên hoàn toàn có thể diễn ra ví dụ như
có một khách hàng tại A đề nghị mua hàng hóa H tại B và C Anh ta có thể nhận được lời chấp nhận với một lượng cụ thể nhưng không có hoặc không đủ tại B và C Trong khi truy cập để báo cho khách thì số lượng này cũng vừa được cập nhật Nói tóm lại, khách nhận được thông tin mà trên thực tế không còn tồn tại nữa
Hình 3 Đăng ký từ xa
Ta cũng cần phải lưu ý là việc hợp đồng phương tiện chuyên chở phải khớp với nhau trong cùng khoảng thời gian Hiện tượng đó cho phép ta liên tưởng đến sự gắn bó dữ liệu (Coherence) trong khi ta nghiên cứu hệ điều hành cho các hệ tập trung
Trong CSDL của hệ cục bộ thành phố B chứa các thông tin về hàng hóa, còn phương tiện vận tải lại chứa trong CSDL của hệ cục bộ thành phố C Việc đăng ký (ký hợp đồng) được tiến hành xuất phát từ khách hàng ở thành phố A ngay trên hệ cục bộ của bộ phận tại thành phố này
Trang 7Để đáp ứng yêu cầu đăng ký từ xa vừa nêu trên, ta có thể cài đặt tại hệ cục
bộ ở A một đoạn chương trình như sau:
Đoạn chương trình trên cho thấy rằng sau khi nhận được thông tin về trạng thái hàng hóa tại B và phương tiện vận tải tại C chương trình sẽ lần lượt thực hiện các lệnh sau:
1 Đăng ký sơ bộ mua hàng tại B trong ngày t.
2 Nếu việc đăng ký đó thành công thì đăng ký tiếp phương tiện vận tải tại C.
3 Lặp lại cho đến khi hết thời hạn cho phép.
Khi thực hiện chương trình tại A sẽ kích hoạt việc thực hiện chương trình ở
B Tương tự như vậy, khi ta thực hiện chương trình đăng ký từ B sẽ là nguyên nhân của việc thực hiện chương trình tại C
Sau khi xem xét kỹ đoạn chương trình nêu trên, người ta nhận thấy rằng phương pháp được thể hiện bằng đoạn chương trình trên sẽ có tác dụng chỉ với một
cặp <đăng ký hàng hóa, đăng ký phương tiện> duy nhất Việc đăng ký như vậy là
đơn trị và khó sử dụng cho công việc thực tế
Nếu ta vận hành nhiều chương trình cùng một lúc thì hậu quả diễn ra khá nghiêm trọng Do việc đăng ký hàng hóa chỉ diễn ra sơ bộ, cho nên nó có thể bị
Dang_ky_cho_hang(C,t) {Đăng ký chuyên chở}
Ok:=TrueKết thúcNếu không huy_dang_ky(AB,t)t:=sau(t)
Kết thúc
…
Trang 8đăng ký bởi NSD khác Trong trường hợp đó danh sách hàng hóa mà ta cứ tưởng là chính thức trở thành hàng hóa ảo.
Nhằm khắc phục tình hình nêu trên, người ta xây dựng chương trình cài đặt tại hệ cục bộ A theo một kiểu khác như sau:
Rõ ràng, ở đoạn chương trình trên ta có hàm nguyên thủy
de_nghi(B,DS(hh,t), danhsach(pt,t)) cho phép xác định tại B loại hàng hóa theo yêu
cầu, số lượng, ngày chuyên chở đến C và phương tiện chuyên chở… Như vậy, hàm
nguyên thủy dang_ky_hang_hoa(AB,hhl,t) không còn cho kết quả sơ bộ như trước
đây Giải pháp này cho phép rút ngắn được số lần truy cập và các thông điệp có thể,
nhưng nó chỉ đúng khi mà giữa hai phép tra_loi (bang(hhl,ptl,t)) và
dang_ky_hang_hoa(AB,hhl,t) không có đăng ký nào khác chen vào Vì thế ta phải
cài then cho đoạn chương trình trên bằng hai động tác:
Bắt đầudang_ky_cho_hang(C,hh,t) {Đăng ký chuyên chở}
Ok:=TrueKết thúcNếu không t:=sau(t)Kết thúc
…
…then_cai(B)
…mo_then_cai(B)
…
Trang 9Hay nói cách khác là ta áp dụng nguyên lý loại trừ tương hỗ giống trong lĩnh vực hệ điều hành các máy tính tập trung Tất cả các truy cập vào trạm dữ liệu từ
trạm A cần phải đảm bảo được bao bởi then_cai(A) và mo_then_cai(A) và tương tự như vậy tại C bằng then_cai(C) và mo_then_cai(C) Do đó, việc gọi thủ tục
dang_ky_hang_hoa(AB,hhl,t) sẽ đồng bộ dữ liệu ngay cả trên trạm cục bộ A và
đương nhiên trạm này cũng được đóng khung
Việc tổ chức đăng ký từ xa như trên cũng đặt ra cho chúng ta nhiều vấn đề cần phải giải quyết Sau đây, ta sẽ xem xét các hệ quả đó
1 Các yêu cầu hợp đồng mua bán và chuyên chở kiểu như trên diễn ra đồng thời theo chiều A-B và B-A có thể dẫn đến bế tắc
Thực tế cho thấy các dãy:
được thực hiện lần lượt trên A và B
2 Tình hình trên có thể được hoàn thiện nếu loại trừ tổng quát cho việc truy cập vào dữ liệu của một trạm là không cần thiết Ta chỉ cần then cài và mở then có chọn lọc trên các dữ liệu trên các dữ liệu liên quan đến hàng hóa hay phương tiện vận chuyển
Như vậy, ta phải đưa tham số mới trong các hàm nguyên thủy Then_cai và
Mo_then_cai nhằm xác định chính xác dữ liệu nào cần phải khống chế khi truy cập.
Chính vì vậy, giải pháp nêu trên cần phải bổ sung thêm:
then_cai(B), then_cai(A), then_cai(A), then_cai(B)
Trang 10Như vậy, loại trừ tương hỗ được áp dụng với từng dữ liệu riêng biệt và thực
sự tránh được bế tắc
3 Bây giờ ta giả sử rằng HKDTX cho phép hợp đồng ở cả hai thành phố A
và B Ta có thể gặp bế tắc dữ liệu liên quan đến hàng hóa Một trong những biện pháp phòng chống hiện tượng nêu trên là đặt toàn bộ chương trình đăng ký hợp đồng vào đoạn găng trải đến tận tất cả các trạm có liên quan Nhưng biện pháp này
tỏ ra không hiệu quả nhiều và rất tốn kém Người ta cũng đã nghiên cứu một vài giải pháp cho phép thực hiện song song các chương trình đăng ký mua bán hàng hóa
Điểm chung nhất của các giải pháp này là:
Phát hiện xung đột trong hệ
Loại bỏ ra khỏi quá trình thực hiện các chương trình phát sinh xung đột
Cho phép tái lập lại việc thực hiện các chương trình bị loại bỏ do xung đột
Ok:=TrueKết thúcNếu không t:=sau(t)
Kết thúc
Mo_then_cai(hd, A)
Trang 11 Đề phòng trường hợp một yêu cầu nào đó phải chờ vô thời hạn mà không được đáp ứng.
Trang 12CHƯƠNG II
VÍ DỤ ỨNG DỤNG THỰC HIỆN TỪ XA
Trong phần này chủ yếu là vận dụng phần lý thuyết về vấn đề điều khiển từ xa đã nêu trong chương I (ví dụ Hệ kinh doanh từ xa (HKDTX) trong Thương mại điện tử) để ứng dụng minh họa về cơ chế điều khiển việc thực hiện
từ xa vào việc xây dựng hệ thống đăng kí tín chỉ qua mạng ở các trường đại học.
I Giới thiệu hệ thống đăng kí tín chỉ qua mạng
Hệ thống đăng kí tín chỉ qua mạng là một hệ thống sử dụng kết nối giữa máy
chủ Server tới các máy trạm Client được đặt ở những nơi khác nhau cùng sử
dụng chương trình đăng kí tín chỉ qua mạng Ưu điểm của hệ thống là:
Quản lý tín chỉ đã đăng kí dễ dàng
Hỗ trợ tư vấn chọn môn cho nhiều ngành khác nhau
Đăng kí tín chỉ nhanh, dễ dàng, hoạt động trơn tru
Với những đặc điểm nêu trên, đăng kí tín chỉ qua mạng được xem là chương trình sử dụng cơ chế điều khiển việc thực hiện từ xa với các yêu cầu như: tiếp nhận yêu cầu nhận danh sách tín chỉ chưa đăng kí từ các máy Client và yêu cầu gửi danh sách tín chỉ được đăng kí đến máy chủ Server
II Mô hình Client-Server
.II.1 Giới thiệu
Mô hình Client/Server là mô hình tổ chức trao đổi thông tin trong đó mô tả cách mà các máy tính có thể giao tiếp với nhau theo một phương thức nhất định Phương thức này là một chiến lược tổ chức phân cấp mà trong đó có một máy tính đặc biệt phục vụ các yêu cầu về lưu trữ, xử lý, tính toán tất cả các máy trên mạng Kiểu tổ chức tổng quát của mô hình này là một mạng LAN được thiết lập từ nhiều máy tính khác nhau, trong đó một máy tính gọi là Server Một chương trình client chạy từ bất kỳ máy tính nào trong mạng cũng có thể gởi yêu cầu của mình đến
Trang 13Server, khi server nhận được các yêu cầu này thì nó sẽ thực hiện và gởi kết quả về cho Client.
Hình 1 Mô hình Client/Server
Có nhiều mô hình được sử dụng trong các chương trình mạng nhưng mô hình Client/Server là mô hình chuẩn Một Server là một quá trình, quá trình này chờ
sự liên hệ từ một Client Một phiên làm việc điển hình của mô hình này như sau:
Phía Client gởi một yêu cầu thông qua mạng đến Server để yêu cầu một số dạng dịch vụ nào đó như lấy tên máy Server, lấy đồng hồ hệ thống, đăng
ký cấp bằng …
Phía Server được khởi động trước trên hệ thống máy tính Sau khi khởi động nó sẽ chờ Client liên hệ nó để yêu cầu một số dịch vụ Quá trình của Server thành chia ra 2 kiểu:
Khi chỉ có một yêu cầu của Client được Server phục vụ tại một thời điểm thì gọi đó là Server lặp
Khi Server có thể phục vụ đồng thời nhiều yêu cầu từ Client gởi đến gọi đó là Server đồng thời
Client/Server là mô hình tổng quát nhất, trên thực tế thì một Server có thể được nối tới nhiều Server khác nhằm làm việc hiệu quả hơn Khi nhận được một yêu cầu từ Client, Server này có thể gửi tiếp yêu cầu vừa nhận được cho Server khác ví dụ như Database Server vì bản thân nó không thể xử lý yêu cầu này được Máy Server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp
Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy Client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do Server định ra, nếu yêu cầu được chấp nhận thì máy Server sẽ trả về thông
Trang 14tin mà Client yêu cầu Có rất nhiều các dịch vụ Server trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ Client sau đó xử lý và trả kết quả cho client yêu cầu Thông thường chương trình Server và Client được thi hành trên hai máy khác nhau Cho dù lúc nào Server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu
từ Client nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa Client
và Server lại bắt đầu ở phía Client, khi mà Client gửi tín hiệu yêu cầu tới Server Các chương trình Server thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng)
Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì Với các chuẩn này thì các chương trình Server cho một dịch vụ nào đấy có thể thi
hành trên một hệ thống chia sẻ thời gian (timesharing system) với nhiều chương
trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính các nhân bình thường Có thể có nhiều chương Server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính
III Cơ chế điều khiển việc thực hiện từ xa
Trong mô hình Cilent/Server, các bước cơ bản của việc thực hiện từ xa:
Client gởi yêu cầu cho Server
Server tiếp nhận, xử lý yêu cầu từ Client gởi lên
Server trả lời lại cho Client
(1) Gởi yêu cầu
(3) Trả lời (2) Xử lý yêu cầu