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

CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC GA TRONG HỆ THỐNG ĐƯỜNG SẮT ( Tiểu luận LẬP TRÌNH MẠNG NÂNG CAO)

39 1,3K 4

Đ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 39
Dung lượng 729,5 KB

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

Nội dung

GIỚI THIỆU Ngày nay, ngành công nghệ thông tin trên thế giới đang được phát triển mạnh mẽ và ngày càng được ứng dụng rộng rải vào nhiều lĩnh vực như: kinh tế, khoa học kỹ thuật, quân sự, y tế, giao dục và nó đã đáp ứng được nhiều yêu cầu trong những lĩnh vực này để phục vụ đời sống của con người. Ở nước ta, hòa nhập chung cùng với sự phát triển của ngành công nghệ thông tin và ứng dụng của nó vào các lĩnh vực của cuộc sống nhằm phục vụ các nhu cầu như: nghiên cứu, học tập và lao động của con người. Nhà nước ta đã có những chính sách cần thiết để đưa ngành công nghệ thông tin vào vị trí then chốt trong chiến lược phát triển kinh tế của Đất nước. Đặc biệt ngành công nghệ phần mềm, một lĩnh vực thuộc ngành công nghệ thông tin, được chú trọng phát triển mạng mẽ để sản sinh ra những phần mềm có giá trị đáp ứng nhu cầu của người dùng trong nước cũng như nhu cầu sử dụng của các nước trên thế giới. Việc áp dụng công nghệ thông tin để quản lý trong ngành đường sắt hiện nay đã và đang được thực hiện có hiệu quả. Song bên cạnh đó thực trạng bán vé tàu trực tuyến hiện nay còn có nhiều vấn đề bất cập đó là việc xử lý thông tin chưa tốt dẫn đến tình trạng xử lý quá tải không đáp ứng được nhu cầu của khách hàng. Vậy giải pháp nào để giải quyết bài toán này:  Như chúng ta đã biết về lợi ích to lớn của cách làm việc theo nhóm và sức mạnh của tập thể mang lại. Lợi ích của việc xử lý đa Server cũng vậy, nó cho phép khai thác tối đa khả năng tính toán của từng Server trong nhóm. Ví dụ như một công việc mà một Server giải quyết thì không hiệu quả và nhanh bằng nhiều Server cùng giải quyết.  Lợi ích thứ hai là nó cho phép khai thác tối đa nguồn dữ liệu của mỗi Server đang có. Thông qua các giao thức triệu gọi từ xa, mỗi Server ở bất kỳ nơi đâu cũng đều có thể xử lý được luồng thông tin do Server khác cung cấp khi có nhu cầu.  Giao thức triệu gọi từ xa và các tác tử (Agent) tạo ra trên mạng là giải pháp chính cho vấn đề xử lý đa Server. Tôi thiết nghĩ giải pháp xử lý đa Server này sẽ rất hữu ích và hiệu quả cho bài toán đăng ký đặt vé tàu trực tuyến.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Đề tài:

CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC GA TRONG HỆ THỐNG ĐƯỜNG SẮT

GVHD : PGS.TS Lê Văn Sơn HVTH : Hồ Hoài Tâm

Nguyễn Văn Thẩm LỚP : Khoa học máy tính KHÓA : 11 (2009 – 2011)

Đà Nẵng, tháng 03/2010

Trang 2

GIỚI THIỆU

Ngày nay, ngành công nghệ thông tin trên thế giới đang được phát triển mạnh

mẽ và ngày càng được ứng dụng rộng rải vào nhiều lĩnh vực như: kinh tế, khoa học kỹthuật, quân sự, y tế, giao dục và nó đã đáp ứng được nhiều yêu cầu trong những lĩnhvực này để phục vụ đời sống của con người

Ở nước ta, hòa nhập chung cùng với sự phát triển của ngành công nghệ thôngtin và ứng dụng của nó vào các lĩnh vực của cuộc sống nhằm phục vụ các nhu cầu như:nghiên cứu, học tập và lao động của con người Nhà nước ta đã có những chính sáchcần thiết để đưa ngành công nghệ thông tin vào vị trí then chốt trong chiến lược pháttriển kinh tế của Đất nước

Đặc biệt ngành công nghệ phần mềm, một lĩnh vực thuộc ngành công nghệthông tin, được chú trọng phát triển mạng mẽ để sản sinh ra những phần mềm có giátrị đáp ứng nhu cầu của người dùng trong nước cũng như nhu cầu sử dụng của cácnước trên thế giới

Việc áp dụng công nghệ thông tin để quản lý trong ngành đường sắt hiện nay đã

và đang được thực hiện có hiệu quả Song bên cạnh đó thực trạng bán vé tàu trực tuyếnhiện nay còn có nhiều vấn đề bất cập đó là việc xử lý thông tin chưa tốt dẫn đến tìnhtrạng xử lý quá tải không đáp ứng được nhu cầu của khách hàng

Vậy giải pháp nào để giải quyết bài toán này:

 Như chúng ta đã biết về lợi ích to lớn của cách làm việc theo nhóm và sứcmạnh của tập thể mang lại Lợi ích của việc xử lý đa Server cũng vậy, nó cho phépkhai thác tối đa khả năng tính toán của từng Server trong nhóm Ví dụ như một côngviệc mà một Server giải quyết thì không hiệu quả và nhanh bằng nhiều Server cùnggiải quyết

 Lợi ích thứ hai là nó cho phép khai thác tối đa nguồn dữ liệu của mỗiServer đang có Thông qua các giao thức triệu gọi từ xa, mỗi Server ở bất kỳ nơi đâucũng đều có thể xử lý được luồng thông tin do Server khác cung cấp khi có nhu cầu

 Giao thức triệu gọi từ xa và các tác tử (Agent) tạo ra trên mạng là giảipháp chính cho vấn đề xử lý đa Server Tôi thiết nghĩ giải pháp xử lý đa Server này sẽrất hữu ích và hiệu quả cho bài toán đăng ký đặt vé tàu trực tuyến

Trang 3

 Giải pháp xử lý đa Server mà cụ thể là các giao thức triệu gọi từ xa và cáctác tử tạo ra trên mạng là giải pháp để khai thác hiệu quả nguồn dữ liệu quý giá này.

Có nhiều giải pháp thực hiện đa Server và có nhiều ngôn ngữ bậc cao hỗ trợ cho việclập trình đa Server như Java, C# và một số ngôn ngữ khác Ở đây tôi xin dùng ngônngữ Java và giao thức RMI (Remote Method Invocation)

Với những ưu điểm trên tôi chọn đề tài “Ứng dụng lập trình phân tán để xây dựng hệ thống đặt vé tàu trực tuyến”.

Xây dựng ứng dụng phân tán cho việc quản lý hệ thống đăng ký đặt vé tàu trựctuyến Thông tin đăng ký đặt vé được lưu trữ vào các cơ sở dữ liệu phân tán trên mạngtheo nhu cầu của người quản trị và hệ thống cho phép cấu hình ứng dụng từ xa

Do đó, đê tài phải giải quyết được các vấn đề sau:

 Nghiên cứu tìm hiểu về mô hình xử lý phân tán

 Tìm hiểu kỷ thuật RMI của ngôn ngữ lập trình Java

 Xây dựng được mô hình phân tán cho hệ thống đặt vé tàu

 Sữ dụng cơ sở dữ liệu Access để thiết kế cơ sở dữ liệu

Trang 4

Chương 1 : CƠ SỞ LÝ THUYẾT

I LẬP TRÌNH PHÂN TÁN

I.1 Định nghĩa

Có nhiều cách định nghĩa việc tính toán phân tán theo nhiều kiểu khác nhau.Những nhà cung cấp đã tạo ra và quảng bá những hệ thống tính toán phân tán trongnhiều năm, và phát triển những kiến trúc để cho phép xử lý dữ liệu và đối tượng phântán trên hệ thống mạng

Một đặc trưng của tính toán phân tán đã nhận được nhiều sự đồng tình trongthời gian gần đây và đó là trọng tâm của phần này Một môi trường mà ta có thể tậndụng chu trình và không gian rỗi của CPU trong hàng chục, hàng trăm hoặc hàng ngàn

hệ thống mạng để làm việc và phân chia việc xử lý các vấn đề một cách hiệu quả Sựphát triển những mô hình xử lý trước đây đã bị giới hạn bởi những băng thông rộng,kết hợp với việc bảo mật, quản lý và những chuẩn hóa quan trọng Khi công nghệpeer-to-peer xuất hiện, một số nhà cung cấp bao gồm những hãng lớn như Intel,Microsoft và Sun đã tận dụng những công nghệ mới này Đồng thời, một dự án tínhtoán phân tán worldwide mang tính thông minh đã được phát triển trong việc xử lýthông tin

Việc gia tăng khản năng làm việc và truyền thông của CPU giúp ích cho sự tínhtoán phân tán hiệu quả hơn Một số ứng dụng trong thực tế vẫn còn bị hạn chế vềnhững tiêu chuẩn đặc biệt Vì vậy việc đáp ứng tốt những yêu cầu của khách hàng vềthời gian xử lý phù hợp và việc xử lý phân tán đã đáp ứng được yêu cầu này

I.2 Tính toán phân tán và lưới tính toán

Khái niệm tính toán phân tán và lưới phân tán Theo cách nghĩ khác nhau, tínhtoán phân tán là lưới tính toán có thể thay thế cho nhau hoặc là tính toán phân tán làmột phần nhỏ của lưới tính toán Lưới tính toán có thể định nghĩa như là chu trình xử

lý của hàng triệu hệ thống truy cập trong môi trường mạng

Sun định nghĩa một lưới tính toán "là một cấu trúc phần cứng và phần mềm đáp

ứng khả năng tính toán tin cậy, nhanh chóng" Lưới tính toán có thể là hệ thống máy

tính để bàn Nhưng trọng tâm của lưới tính toán là sức mạnh của các trạm làm việc,khả năng giải quết những vấn đề liên quan đến những dữ liệu lớn Và lưới tính toánđược hiểu rộng hơn là những hệ thống chuyên dụng dùng trong việc xử lý những yêucầu, nhiệm vụ khác nhau

Trang 5

Những hệ thống tính toán phân tán theo quy mô lớn được định nghĩa tương tự,nhưng để tập hợp những tài nguyên của hàng trăm hay hàng nghìn hệ thống mạng khácnhau thì điều này bị han chế bởi khả năng của bộ nhớ và tốc độ xử lý khi công việcchính chưa được phân tán Ở phần trên, có những mức kiến trúc phân tán khác nhau làlưới phân tán và tính toán phân tán không được thực hiện trên một quy mô mảng.

I.3 Cách thức làm việc trong lập trình phân tán

Hầu hết kiến trúc tính toán phân tán gồm có những tác nhân xử lý (agent) đượcthiết đặt trên một số hệ thống máy trạm, và một hoặc nhiều máy chủ dành cho việcquản lý tính toán phân tán Có thể đòi hỏi trình duyệt cùng thiết lập những phần mềmcho phép gửi những yêu cầu đến sử dụng tài nguyên của hệ thống

Một Agent chạy trên một trạm, thông báo cho máy chủ quản lý rằng hệ thốngsẵn sàng cho việc xử lý, và yêu cầu các gói ứng dụng Máy trạm tiếp nhận các gói ứngdụng từ máy chủ và chạy phần mềm để xử lý các gói ứng dụng này, và gửi những kếtquả trở lại cho máy chủ Ứng dụng có thể được thực hiện giống như trình bảo vệ mànhình, hay đơn giản như trong hình nền, không ảnh hưởng đến việc sử dụng máy tính.Nếu trình duyệt chạy những ứng dụng của riêng nó vào bất kỳ thời gian nào thì trìnhđiều khiển ngay lập tức được trả lại cho ứng dụng riêng, và quá trình xử lý ứng dụngphân tán kết thúc Điều này phải thực hiện ngay lập tức, sự chậm trễ trong việc trả lạitrình điều khiển sẻ khó có thể được chấp nhận đối với người sử dụng

I.4 Vai trò của máy chủ trong ứng dụng phân tán

Máy chủ tiếp nhận yêu cầu của ứng dụng phân tán và phân chia những tác vụ

có khối lượng xử lý lớn thành các tác vụ nhỏ hơn để có thể thực hiện ở các máy trạm(agent) Máy chủ chuyển các gói ứng dụng và gói phần mềm đặc biệt đến các agent vàtheo dõi tiến trình xử lý của các agent này Sau đó các máy trạm chạy thực hiện cácgói ứng dụng Nhiệm vụ của máy chủ lúc này là tập hợp các kết quả được trả về từ cácmáy trạm và tổ chức lại cấu trúc các kết quả trình bày Điều này thường được hổ trợ từ

cơ sở dữ liệu

Nếu máy chủ chủ không tiếp nhận việc xử lý từ các máy trạm trong một thờigian nhất định, có thể máy chủ đã hủy kết nối hệ thống hoặc tạm ngừng cho việc bảotrì Các máy chủ này gởi các gói ứng dụng cho hệ thống khác hoặc cho các hệ thống

dự phòng nhằm đảm bảo cho kết quả được trả lại cho trình duyệt một cách nhanh

Trang 6

chóng Máy chủ cũng thực hiện các chức năng quản lý cần thiết như là việc bảo mật hệthống, quản lý các kết nối và địa chỉ IP của máy trạm để tránh sự xung đột.

Sự phức tạp của kiến trúc phân tán phụ thuộc vào các môi trường khác nhau.Một hệ thống lớn bao gồm nhiều thành phần tham gia hoặc một hệ thống chứa nhiềutài nguyên phức tạp, các chính sách quản lý, mã hóa dữ liệu nhằm đảm bảo cho sự antoàn của hệ thống Nguồn tài nguyên là một điều cần thiết để định nghĩa các mức chứcnăng xử lý, bộ nhớ và việc lưu trử của mỗi hệ thống

Các chính sách quản lý được sử dụng nhằm thay đổi độ phức tạp trong cáctrường hợp tính toán trong môi trường xử lý phân tán Người quản trị có thể địnhnghĩa công việc nào và người sử dụng có thể truy cập vào hệ thống nào và quyền ưutiên đối với người dùng, và thấy rõ tầm quan trọng của mỗi dự án Rõ ràng vấn đề vềquyền truy cập, bảo mật, mã hóa dữ liệu là cần thiết để ngăn ngừa những truy cậpkhông hợp pháp nhằm phá hoại hệ thống và dữ liệu trong hệ thống phân tán phải đượcbảo đảm an toàn

Khi ứng dụng lập trình phân tán được tích hợp vào môi trường internet thì nóphải đáp ứng các tiêu chuẩn và giao thức cho việc truy cập tự động và những tác độngcủa nguồn tài nguyên trên mạng internet và giữa những kiến trúc phân tán khác nhau.Hầu hết các giải pháp của tính toán phân tán bao gồm các công cụ, thư viện, các ứngdụng API để làm nền tảng cho việc tạo ra các ứng dụng phân tán ban đầu

Tuy việc tính toán phân tán thực sự là mô hình peer-to-peer, cấu trúc được mô

tả ở trên không thật sự là mô hình peer-to-peer Chẳng hạn như trình duyệt này khôngthể giao tiếp với trình duyệt khác Những giải pháp của các nhà cung cấp bao gồmEntropia, Data Synapse, Sun, Parabon, Avaki, and United Devices Nền tảng mãnguồn mở của Sun được quan tâm nhiều hơn đối với những hệ thống lớn

Khi máy trạm trả kết quả trở về cho máy chủ Trong trường hợp của

DataSynapse's LiveCluster, một máy trạm có thể làm việc độc lập hoặc chi sẻ tàinguyên đối với các máy trạm khác Kiến trúc cấp cáo của LiveCluster là việc chia nhỏứng dụng thành các công việc nhỏ phụ thuộc vào việc tích hợp trong truyền thông

Trang 7

Chia nhỏ các công việc thực hiên

Sự cải tiến cho những ứng dụng thích hợp đã đem lại lợi ích lớn cho một sốcông ty Đối với hãng Intel đã áp dụng việc tổ chức ngân hàng sử dụng nền tảng dữliệu Synapse's LiveCluster, thời gian tính toán cho một dãy công việc được giảm từ 15giờ xuống còn 30 phút với 100 máy tính xử lý Để xử lý 200 tác vụ thì hệ thống đơncần 44 phút nhưng nó chỉ mất 33giây đối với hệ thống phân tán gồm 100 máy Nhữngcông ty sử dụng công nghệ lập trình phân tán nhằm gia tăng khả năng đáp ứng nhu cầucủa khách hàng về thời gian xử lý các công việc

Trang 8

I.5 Những đặc trưng của ứng dụng phân tán

Tất nhiên không phải tất cả các ứng dụng đều phù hợp cho việc tính toán phântán Một ứng dụng khép kín chạy trong thời gian thực, ít phù hợp trong ứng dụng phântán Ngay cả việc xử lý các tác vụ thông thường có thể lấy đi 1 giờ thì cần cân nhắcgiữa việc áp dụng tính toán phân tán và việc đảm bảo cho tính sắn sàng của ứng dụng.Thay vào đó, ta cần áp dụng cho những tác vụ đòi hỏi việc tiêu tốn thời gian nhiều giờ,nhiều ngày, tuần, tháng Nói chung, những ứng dụng phù hợp nhất, bao gồm: nhữngtác vụ xử lý không tuần tự với khối lượng tính toán dữ liệu lớn Việc tính toán khốilượng lớn dữ liệu thường đi đôi với việc tính toán trong quá trình truyền thông nhưngviệc bạn không thể gởi một số lượng lớn dữ liệu đến mỗi trình duyệt trong môi trườngmạng mặc dù bạn có thể làm điều này trong nhiều giờ Những chương trình với cơ sở

dữ liệu lớn có thể dễ dàng phân tích thì rất thích hợp cho mô hình này

Rỏ ràng , bất kỳ ứng dụng nào với những tác vụ truy cập đến tập hợp dữ liệukhổng lồ thì những hệ thống lớn sẽ phù hợp hơn những hệ thống đơn lẻ Nếu dữ liệu

có liên qua thì một siêu máy tính sẽ phù hợp hơn Một ứng dụng phân tán sẽ phù hợphơn trong tác vụ yêu cầu thời gian xử lý nhanh đối với một hệ thống dữ liệu lớn

II VẤN ĐỀ ĐỒNG BỘ HÓA TRONG LẬP TRÌNH PHÂN TÁN

II.1 Đặt vấn đề

Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh

và hiệu quả để có thể đồng bộ hóa các tiến trình Tính cấp thiết về mặt nguyên lý và

kỷ thuật của vấn đề này thể hiện ở hai nguyên nhân cơ bản sau đây:

1 Nhìn chung, các tiến trình kể cả các tiến trình xuất phát từ các ứng dụng độclập muốn truy cập vào các tài nguyên với số lượng vốn rất hạn chế hay truy cập vàothông tin dùng chung cùng một lúc Trường hợp này gọi là truy cập tương tranh

Vì vậy, tương tranh là nguyên nhân chính của sự xung đột giữa các tiến trìnhmuốn truy cập vào tài nguyên dùng chung

2 Các tiến trình của cùng một hệ ứng dụng hoạt động theo kiểu hợp lực để giải

quyết các bài toán đặt ra và cho kết quả nhanh chóng nhất Điều này cho phép tănghiệu năng sử dụng thiết bị và hiệu quả hoạt động của chương trình

Vì vậy, hợp lực là nguyên nhân chính của sự tác động tương hỗ được lập trình

giữa các tiến trình nhằm cho phép chúng tham gia vào các hoạt động chung

Trang 9

Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi thông tin

qua lại với nhau Trong các hệ thống tập trung, điều đó được thực hiện nhờ thuật toánloại bỏ tương hổ thông qua các biến cùng tác động trong một vùng nhớ chung Trong

hệ tin học phân tán, các thông tin cần trao đổi thông qua các kênh thuộc hệ thống viễnthông

II.1.1 Trật tự từng phần

Cần chú ý rằng, trong các hệ thống tin học tập trung, vấn đề đồng bộ hóa đượcgiải quyết thông qua cơ chế loại trừ tương hỗ Cơ chế này cho phép sắp đặt (xác lậptrật tự) hoàn toàn các sự kiện Trong thực tiễn, nói một cách chính xác, có một số hệ

thống vấn đề đồng bộ hóa chỉ đòi hỏi trật tự từng phần Chình vì vậy trật tự hóa từng

phần giữa các sự kiện mà các tiến trình của nó cần phải đồng bộ là vấn đề cần phảiquan tâm giải quyết

Trong các hệ thông phân tán, việc đồng bộ hóa chỉ đặt ra duy nhất vấn đề thiếtlập một trật tự giữa các sự kiện Giữa các trạm khác nhau, trật tự đó chỉ có thể thựchiện được thông qua việc trao đổi các thông điệp với nhau

Giả sử rằng ta có thể xác định một trật tự giữa các sự kiện của hệ phân tán nhờvào quan hệ được ký hiệu là → và gọi là “có trước” hay “ở ngay trước”

Quan hệ này tối thiểu phải thỏa mãn được các ràng buộc thể hiện trong bảngsau đây:

C1: Nếu A và B là hai sự kiện của cùng một trạm và nếu A được thực hiện trước B thì

theo trật tự cục bộ của trạm ta có: A→B

C2: Nếu A là phát thông điệp bởi một trạm nào đó và nếu B là thu của thông điệp này

thì ta có: A→B

Hình vẽ sau đây cho ta một ví dụ về trật tự hóa từng phần của các sự kiện trong

hệ thống

Trang 10

Mô tả trật tự từng phầnTheo hình vẽ trên, ta có thể biểu diễn trật tự như sau:

Trật tự từng phần của các sự kiệnA1→A2→A3→A4→A5

B1→B2→B3→B4Trao đổi thông điệpA1→B2 và B3→A4Chuyển qua

A1→A2→B2→B3→B4B1→B2→B3→A4→A5A1→A2→B2→B3→A4→A5

Ví dụ về các sự kiện không so sánh B1 và A1, A2, A3

A3 và B2, B3, B4Ràng buộc C1 thể hiện rằng trật tự có được bởi quan hệ có trước là tương thíchvới các trật tự cục bộ được định nghĩa trong từng trạm

Ràng buộc C2 nói lên nguyên tắc nhân quả

Quan hệ có trước xác định một trật tự từng phần trên tập hợp các sự kiện của hệ

và trật tự này được thể hiện trong hình vẽ trên

Trang 11

II.1.2 Giả định chung các điều kiện

Các phương pháp mà ta giới thiệu trong chương này sẻ xuất phát từ các giả địnhvới các điều kiện chung như sau:

Các hệ phân tán được xây dựng trên cơ sở các trạm làm việc được mắc nối vớinhau (nối mạng) Mỗi một trạm có bộ nhớ riêng của mình và tuyệt đối không có bộnhớ chung

Ta áp dụng các ký hiệu trong bảng sau:

Ngoài ra chúng ta còn giả sử rằng hiện tượng gây sự cố trên một trạm chỉ làmcho trạm đó không liên lạc được với mạng mà hoàn toàn không ảnh hưởng đến sự hoạtđộng của các trạm còn lại hoặc ít nhất là một nhóm các trạm khác

Đồng bộ hóa theo trật tự tổng quát chặt chẽ

Như đã đặt vấn đề trong phần đầu, các hệ thống giải quyết vấn đề đồng bộthông qua trật tự tổng quát

Trong một số trường hợp cần phải sắp xếp toàn bộ theo kiểu chặt chẻ các sự

kiện của hệ Nguyên lý của vấn đề được khái quát như sau: Một tiến trình nào đó gửi

Trang 12

thông điệp để yêu cầu sử dụng tài nguyên, một tiến trình sử dụng xong tài nguyên nào

đó truyền một thông tin giải phóng khi nó ngừng chiếm dụng

II.2.1 Cung cấp tập trung

Hiện tại, trong các hệ thống tập trung, mỗi một loại tài nguyên của hệ đượcquản lý bởi một chương trình cung cấp duy nhất, ta gọi tắt là bộ cung cấp tài nguyên.Chương trình này tiếp nhận tất cả các yêu cầu, khuyến nghị giải phóng và sắp xếpchúng trong một hàng đợi xử lý theo kiểu loại trừ tương hỗ và xử lý chúng theo mộttrật tự nhất định của hàng đợi này

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ác tiếntrì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 đượctruyền cho chương trình cung cấp thông qua hình thức thông điệp chuyển theo cáckê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ộttrật tự nhất định nào đó luôn luôn được đặt ra

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ùng một lúc thì việc sắp

xếp chúng phải theo kiểu loại trừ tương hỗ trong hàng đợi cục bộ của trạm có chứachương trình cung cấp Điều đó cũng cho 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ờigian truyền thông được cố định Đây lại là trường hợp khá phổ biến của mạng máytính Nhưng nếu ta muốn xử lý các thông điệp theo trình tự không tính tới thời giantruyề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áctrạm khác nhau

II.2.2 Cung cấp phân tán

Vì lý do ổn định và hiệu quả mà ta phải phân tán chức năng cung cấp trên nhiềutrạm khác nhau Sự hoạt động gắn bó với nhau giữa các chương trình cung cấp là rấtcần thiết để đảm bảo cho hoạt động cung cấp được hoàn toàn chính xác

 Thuật toán cung cấp cho hệ 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êncù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ácthông điệp được hiểu là các yêu cầu hay khuyến nghị giải phóng tài nguyên

Trang 13

1 Các bộ cung cấp bắt buộc 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 các chương trình cung cấp.

Quy 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ất trêntậ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 qua việc hợplực giữa các tiến trình cung cấp giữa các tiến trình phát thông điệp

II.3 Sắp xếp kiểu đóng dấu

Đó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à tram 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ồ logic cục bộ của chính trạm.

Các đồng hồ này được lấy lại thông qua hội thoại giữa các trạm

II.3.1 Cấu tạo trình tự tổng quát chặt chẽ

Giải thuật được trình bày ở đây là giải thuật Lamport nhằm cho phép ghi lại

các sự kiện của hệ tin học phân tán

Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là Hs Đó chính là đồng hồ logic tăng lên giữa hai sự kiện kế tiếp Trạm e phát thông điệp ghi dấu E của mình dựa trên giá trị hiện hành của He Khi nhận được thông điệp, trạm nhận r cập nhật đồng hồ Hr riêng của mình bằng giải thuật sau đây:

Sự kiện “Nhận thông điệp” lúc này được ghi nhận bằng giá trị của Hr Thuật

toán này đảm bảo rằng thời gian nhận thông điệp là sau thời gian phát nó đi

Với thời gian này cho phép xác định một quan hệ trật tự toàn bộ mà ta đã ký

hiệu → và cho phép kiểm tra được các điều kiện trong C1 và C2 của phần trước.

Nếu Hr, thì

Hr:= E + 1Chấm dứt

Trang 14

Một sự kiện a sinh ra trong trạm i và được đánh dấu bởi đồng hồ cục bộ gọi là

Hi(a) Nếu a và b đều là hai sự kiện trên hai trạm i và j, ta luôn luôn có qua hệ xác

định như sau:

Đó là trật tự không chặt chẽ do vì hai sự kiện trên hai trạm khác nhau có thể

đến cùng một thời điểm giống nhau.

Ta có thể mở rộng quan hệ → thành quan hệ trật tự chặt chẽ => bằng cách kếthợp một số khác cố định cho mỗi trạm và bằng cách đánh dấu thời gian cho mỗi sự

kiện a của trạm i bằng cặp (Hi(a),i).

Theo định nghĩa ta có:

II.3.2 Thuyết minh sử dụng

a Giới thiệu giải thuật loại trừ tương hỗ

Loai trừ tương hỗ có thể được điều khiển trên một trạm trung tâm có nhiệm vụnhận tất cả các thông điệp và khuyến nghị giải phóng Trạm này duy trì một hàng đợi,sắp xếp các yêu cầu theo trật tự đến và phục vụ cho từng thông điệp một trong trật tựnày

Phân tán giải thuật này kéo theo việc phân tán các chức năng cung cấp mà cầnphải điều khiển hàng đợi trên trạm Do vây, một trạm chuyên cho việc tiếp nhận cácyêu cầu và khuyến nghị giải phóng từ tất cả các trạm còn lại Một trật tự giống nhautrên các trạm chỉ đạt được, nếu ta áp dụng dấu trong các thông điệp bởi các đồng hồlogic truyền và đánh số các trạm Thêm vào đó, để cho một trạm có thể ra quyết địnhbằng việc tham chiếu duy nhất vào hàng đợi của mình, nó cần phải được nhận mộtthông điệp của từng trạm khẳng định rằng không có thông điệp nào trước các thôngđiệp khác mà còn đang quá cảnh trên đường

Thuật toán loại trừ tương hỗ có thể mô tả theo sơ đồ sau đây

a→b <=> Hi(a) < Hi(b)

a => b <=> (Hi(a) < Hi(b))

hay(Hi(a) = Hi(b) và i < j)

Trang 15

Trạm i của mạng có thể gửi cho các trạm khác thông điệp có dạng

(T,Hi,i), trong đó Hi là dấu của thông điệp có nghĩa là đồng hồ logic của nó và T có thể

nhận một trong ba giá trị REQ, REL và ACQ.

Ba giá trị này xác định bản chất của ba loại thông điệp khác nhau:

1 REQ Thông điệp REQ được phát đi cho tất cả các trạm, khi

trạm i muốn vào trong đoạn găng.

2 REL Thông điệp REL được phát đi cho tất cả các trạm, khi

trạm i đã rời khỏi đoạn găng.

3 ACQ Thông điệp ACQ được gửi bởi trạm j cho trạm i, khi

trạm j đã nhận được từ trạm i thông điệp REQ

 Mỗi trạm quản lý một hàng đợi các thông điệp được sắp xếp hoàn toànbởi mối quan hệ => theo cặp <thời gian, số> của từng thông điệp Theo cấu trúc, hàngđợi luôn luôn chứa một thông điệp và chỉ một thường trực trong mỗi trạm, bao gồm

trạm cục bộ Khi có một thông điệp được gửi đi bởi trạm i, đồng thời nó cũng được ghi

trong hàng đợi của máy trạm này

Giả sử rằng mỗi hàng đợi ban đầu chứa các thông điệp:

Trong đó, i, Hinit là thời điểm khởi sự giống nhau cho tất cả các trạm.

Trên mỗi trạm, khi nhận được một thông điệp dạng (REQ, Hi, i) hay

(REL, Hi,i), thông điệp này thay thế thông điệp Mi bất chấp nó là gì Khi nhập thông

điệp loại (ACQ, Hi , i), thông điệp này thay thế Mi ngoại trừ nếu Mi là một yêu cầu mà trong trường hợp đó ACQ bị bỏ qua Do vậy, ta có thể tiết kiệm việc gửi đi thông điệp

ACQ cho trạm i khi trạm này đã gửi một thông điệp REQ và không còn thông điệp REL.

Trạm i được quyền vào đoạn găng khi thông điệp REQ của nó đến trước

theo định nghĩa của hệ => tất cả các thông điệp khác trong hàng đợi của nó Cần nhắc

Mi = (REQ, Hinit,i)

Trang 16

b Kiểm nghiệm giải thuật

Các yêu cầu vào đoạn găng được xử lý theo trật tự FIFO và theo quan hệ =>

Để chứng minh điều đó, ta lưu ý rằng khi trạm i quyết định vào đoạn găng, nó không thể đưa vào trong mạng yêu cầu REQ nào trước bối cảnh sau Thực tế, khi trạm i vào

đoạn găng có nghĩa là nó đã nhận thông điệp từ tất cả các trạm khác và tất cả các thông điệp đều sau thông điệp REQ của riêng nó.

Ta kiểm tra các đặc tính sau:

Trạm i đang ở trong đoạn găng là trạm duy nhất nằm trong đoạn găng

ấy Thực tế cho thấy thông điệp REQ được phát bởi trạm i vẫn tiếp tục tồn tại trong tất

cả các hàng đợi cho đến khi nó được thay thế bởi thông điệp REL.

 Trạm đã yêu cầu vào đoạn găng phải đảm bảo thời hạn và phải ra khỏiđoạn găng sau một khoảng thời gian xác định Thuật toán thể hiện tính đồng đều vàtránh được tổn thất

c Ví dụ

Hãy xét một mạng bao gồm ba trạm trong số đó có hai trạm 1 và 2 yêu cầu vàođoạn găng tại thời điểm 2 của đồng hồ logic của chúng Tập hợp các thông điệp truyềngiữa chúng với nhau có thể mô tả trong hình vẽ Trong hình vẽ này, ta cũng có thể tìmthấy một số trạng thái của các hàng đợi thông điệp

d Phản ứng với sự cố

Sư cố xẩy ra với trạm chưa vào được trong đoạn găng không làm rối loạn hoạtđộng của giải thuật với điều kiện là nó gây ra việc truyền thông điệp đặc biệt

vang_mat (vắng) cho việc chuyển tải ở mạng giao vận Do có trang bị như thế, việc

vào đoạn găng trở nên không được nhanh chóng và dễ dàng cho các trạm khác Nếutrạm có sự cố đã gửi yêu cầu, thì nó kết thúc với lý do trở thành trước đối với tất cả cáctrạm khác

Khi một trạm lại được đưa vào trong mạng sau khi đã có sự cố và đã được khắcphục, nó cần phải kiến tạo lại trạng thái hiện hành của các yêu cầu Để đảm bảo điều

đó, nó phát đi thông điệp vao_lai (xin vào lại) và để trả lời, các trạm gửi hoặc thời gian của yêu cầu cuối cùng của nó REQ không được thỏa mãn hoặc một thông điệp REL Mạng cần phải bổ khuyết cho các trạm bị sự cố bằng cách gửi thông điệp vang_mat Khi nó đã nhận tất cả các trả lời cho thông điệp vao_lai, trạm vừa đưa vào đó có thể

bắt đầu lại bằng các yêu cầu

e Thuyết minh

Trang 17

Để cho giải thuật này, điều kiện đủ là một trạm cần biết gần đúng trạng thái củacác trạm trên mạng Sự xấp xỉ này không đặt ra rạng thái của các trạm mặc định choloại trừ tương hỗ Nó có thể làm chậm một tí việc vào đoạn găng của một trạm.

Loại trừ tương hỗ nhờ dấu

REQ,2,1 2 REQ,2,1 3 REQ,2,1 5

REQ,2,2 3 REQ,2,2 2 REQ,2,2 3

ACQ,6,3 7 ACQ,4,3 5 REL,0,3 0

REL,10,1 11

REQ,2,2 2

ACQ,4,3 5

Ta nhận thấy rằng:

Trạm 1 vào đoạn găng tại H1 = 7

Trạm 2 vào đoạn găng tại H2 = 11

Trang 18

Các dấu được cung cấp bởi đồng hồ logic cho phép đánh dấu các sự kiện vàkhông xác định một trật tự tổng quan chặt chẽ Nhưng tại đây ta không có quan hệ nàogiữa các sự kiện và các giá trị của dấu

Trên một trạm cho trước, việc nhận thông điệp có đóng dấu không thể cho nóbiết được sự kiện nào đến trước hay đang ở trên đường Như vậy, ta còn phải nhậnthông điệp từ các trạm khác còn lại

III KỶ THUẬT RMI CỦA CÔNG NGHỆ LẬP TRÌNH JAVA

III.1 Tổng quan về RMI

Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục haygọi hàm Mã lệnh của các hàm hay thủ tục được nạp thẳng vào ký ức và thực thi ngaytrên máy cục bộ Đối với các hàm thư viện như System.out.println()chẳnghạn thường không cần phải quan tâm đến cách thức mà hàm thư viện này được cài đặt.Điều mà hầu hết các lập trình viện quan tâm là đối số truyền cho hàm và kết quả trả

về Vậy 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 khác hay không? Đây chính là nội dung của lập trình phân tán mãlệnh RMI (Remote Method Invoke) mang ý nghĩa triệu gọi phương thức từ xa là cáchthức giao tiếp giữa các đối tượng Java có mã lệnh cài đặt nằm trên các máy khác nhau

có thể triệu gọi lẫn nhau RMI được xem là một kỷ thuật trong lập trình Java nó gồm

có hai chương trình riêng biệt, một chủ (server) và một khách (client) Một chươngtrình trên máy chủ có thể tạo ra những đối tượng từ xa Một chương trình trên máykhách có thể thu được những sự tham chiếu từ xa tới một hoặc nhiều đối tượng ở xatrên một chủ và sau đó kéo theo những phương thức trên chúng RMI cung cấp cơ chếbởi bất cứ máy chủ và máy khách truyên thông và chuyển thông tin sau và trước

Những ứng dụng mà ta có thể thấy rỏ được của đối tượng phân tán đó là:

Xác định một đối tượng từ xa: Những ứng dụng có thể thu được khi

giải quyết vấn đề xử lý các đối tượng ở xa Vi du như một ứng dụng có thể đăng kýmột đối tượng từ xa với tên gọi đơn giản dể sữ dụng với RMI, thì trước hết ta phảiđăng ký RMI Sự lựa chọn, một ứng dụng có thể giải quyết công việc đi qua và trả lạicho một đối tượng ở xa cũng như có thể gọi các bộ phận nhỏ từ xa khác

Cách giao tiếp giữa các đối tượng ở xa: Chi tiết của cách giao tiếp với

các đối tượng ở xa đều được điều khiển bởi RMI Khi đó người lập trình chỉ nhìn vào

sự giao tiếp từ xa giống như gọi một phương thức trong Java

Trang 19

Định nghĩa lớp cho các đối tượng: Bởi vì RMI cho phép những đối

tượng sẻ được chuyển sau và về phía trước, nó cung cấp cở chế để tải những địnhnghĩa của lớp đối tượng cũng như để truyền dữ liệu của đối tượng

Sự minh họa trong hình vẽ sau miêu tả một RMI phân phối ứng dụng mà sửdụng nới đăng ký RMI để thu được những tham chiếu của các đối tượng ở xa Máychủ gọi đăng ký tới một tên gợi nhớ với đối tượng ở xa Khách hàng xem đối tượng ở

xa bởi tên của nó trong nới đăng ký của máy chủ và sau đó gọi một phương thức trên

nó Sự minh họa cũng chỉ ra rằng hệ thống RMI sử dụng một mạng máy chủ hiện hữu

để tải những lớp định nghĩa, từ máy chủ tới khách hàng và từ khách hàng tới máy chủ,cho những đối tượng khi cần thiết

Mô hình triệu gọi các đối tượng từ xa

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] Đặng Văn Đức. Phân tích thiết kế hướng đối tượng bằng UML. Nhà xuất bản Giáo Dục Sách, tạp chí
Tiêu đề: Phân tích thiết kế hướng đối tượng bằng UML
Nhà XB: Nhà xuấtbản Giáo Dục
[2] Nguyễn Phương Lan – Hoàng Đức Hải. Java lập trình mạng. Chương 2.Nhà xuất bản Lao động – Xã hội Sách, tạp chí
Tiêu đề: Java lập trình mạng
Nhà XB: Nhà xuất bản Lao động – Xã hội
[3] TS. Lê Văn Sơn. Hệ tin học phân tán. Nhà xuất bản Đạ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án
Nhà XB: Nhà xuất bản Đại học quốc gia TP.Hồ Chí Minh
[4] Nguyễn Tiến – Ngô Quốc Việt – Phạm Nguyễn Tuấn Kỳ. Giáo trình lý thuyết &amp; thực hành Java 2. Nhà xuất bản thống kê 2000 Sách, tạp chí
Tiêu đề: Giáo trình lý thuyết & thực hành Java 2
Tác giả: Nguyễn Tiến, Ngô Quốc Việt, Phạm Nguyễn Tuấn Kỳ
Nhà XB: Nhà xuất bản thống kê
Năm: 2000
[5] SUN microsystems, Speeding up secure web transaction using Elliptic Curve Cryptography, 2003 Sách, tạp chí
Tiêu đề: Speeding up secure web transaction using Elliptic Curve Cryptography
Tác giả: SUN microsystems
Năm: 2003

HÌNH ẢNH LIÊN QUAN

Sơ đồ các lớp của hệ thống - CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC GA TRONG HỆ THỐNG ĐƯỜNG SẮT  ( Tiểu luận LẬP TRÌNH MẠNG NÂNG CAO)
Sơ đồ c ác lớp của hệ thống (Trang 31)
III.1. Sơ đồ khối chương trình Server - CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC GA TRONG HỆ THỐNG ĐƯỜNG SẮT  ( Tiểu luận LẬP TRÌNH MẠNG NÂNG CAO)
1. Sơ đồ khối chương trình Server (Trang 33)
III.2. Sơ đồ khối chương trình Client - CHƯƠNG TRÌNH ĐẢM BẢO CHỐNG TRÙNG VÉ TÀU HỎA KHI PHÂN TÁN CSDL TRÊN TẤT CẢ CÁC GA TRONG HỆ THỐNG ĐƯỜNG SẮT  ( Tiểu luận LẬP TRÌNH MẠNG NÂNG CAO)
2. Sơ đồ khối chương trình Client (Trang 34)

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