1. GIỚI THIỆU
Khi dạy lập trình đồng thời và phân phối, nó là vô cùng
quan trọng là bạn chứng minh cho học sinh những hành vi kỳ lạ như vậy
chương trình có thể hiển thị. Đối với lập trình đồng thời, phần mềm chấp nhận được đã
được sẵn sàng cho một số thời gian khá. Mô phỏng đồng thời [Ben-Ari 1983;
Burns và Davies 1993] là tuyệt vời để chứng minh lập trình đồng thời
khái niệm. Ngôn ngữ lập trình như Ada 95 và Java
hỗ trợ đồng thời làm cho nó dễ dàng để viết các chương trình di động cho tiến
thuật toán.
Thể hiện chương trình phân phối là nhiều khó khăn hơn. Hầu như bằng
định nghĩa, các chương trình như vậy cần được chạy trên các CPU riêng biệt, nhưng multiprocessorcomputers cũng rất hiếm. Trong khi các mạng là phổ biến, nó có thể khó khăn để
sắp xếp thời gian cho các cuộc biểu tình hoặc bài tập về nhà. Ngoài ra,
lập trình mạng là khó khăn và nonportable, phù hợp hơn cho lớn
các dự án hơn cho các khóa học thông thường. Trong Ben-Ari [1990] (xem thêm Ben-Ari
[1996]), tôi thấy làm thế nào các thuật toán phân tán có thể được mô phỏng sử dụng Ada
nhiệm vụ; nhưng trong việc triển khai rất khó để phân biệt giữa các tác vụ
được mô phỏng các nút phân phối và những người được sử dụng để đồng thời
trong vòng một nút. Phương pháp tiếp theo của tôi là xây dựng phần mềm di động
hệ thống sẽ cho phép học sinh viết chương trình cho phân phối
các thuật toán, trong khi ẩn các chi tiết thông tin liên lạc [Tzruya và Ben-Ari
năm 1998; Ben-Ari và Silverman 1999]. Hartley [1998] cũng ủng hộ này
cách tiếp cận. Mặc dù thành công về mặt kỹ thuật, tôi đã không bao giờ hài lòng với những
hệ thống, kể từ khi yêu cầu giáo dục không phải là quá nhiều để viết các chương trình
nhưng để hiểu và phân tích thuật toán phân tán.
Bài viết này mô tả DAJ (Algorithms phân tán trong Java), mà là một
khuôn khổ để viết Java di động chương trình thực hiện phân phối
các thuật toán. Các chương trình tự động hiển thị của nội bộ của các nút
tiểu bang, nhưng yêu cầu học sinh tạo ra các kịch bản bước từng bước. Sử dụng
khung làm cho việc thực hiện một tiểu thuật toán, chỉ cần
cơ sở trong lập trình Java nói chung. Các giao diện lập trình (và
các chương trình thông tin liên lạc trong các phiên bản trước đó) được hoàn toàn
đóng gói.
Bài báo được tổ chức như sau: Phần 2 mô tả các vụ sư phạm
và lý do kỹ thuật đằng sau sự phát triển của DAJ. Mục 3 giải thích
làm thế nào để chạy một chương trình, sử dụng các thuật toán tướng Byzantine là một
ví dụ. Phần 4 sẽ cho thông tin chi tiết về cấu trúc của các hệ thống phần mềm.
Bài viết kết luận bằng một cuộc thảo luận của hai hệ thống hình ảnh động của
thuật toán phân tán.
Một kho lưu trữ bao gồm nguồn, lớp học, và các tập tin tài liệu có sẵn
từ trang web của tác giả và từ giảng dạy Khoa học Máy tính trung tâm
, http: //www.cstc.org ..
đang được dịch, vui lòng đợi..