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

So sánh 2 công nghệ rmi và corba trong lập trình phân tán trên môi trường java ứng dụng vào công tác quản lý học sinh thpt

36 18 0

Đ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 36
Dung lượng 642,96 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH TIỂU LUẬN KẾT THÚC HỌC PHẦN MÔN HỆ PHÂN TÁN (Lớp K30 - Cao học ngành Công nghệ Thông tin ) Giáo viên hướng dẫn : TS Lê Văn Minh Học viên : Trần Thị Hương Giang Mã số HV : 22848020100014 Học viên : Nguyễn Văn Hải Mã số HV : 22848020100011 Lớp : CNTT - K30 Nghệ An, 08/2023 LỜI CẢM ƠN Trong suốt trình học tập để thực hoàn thành đồ án này, nhận hỗ trợ, giúp đỡ quan tâm, động viên từ thầy giáo bạn học viên nhiều Đồ án hoàn thành dựa tham khảo, học tập kinh nghiệm từ kết nghiên cứu liên quan, sách, báo chuyên ngành nhiều tác giả trường Đại học, tổ chức nghiên cứu… Trước tiên, xin gửi lời cảm ơn chân thành trị ân sâu sắc đến Thầy TS Lê Văn Minh – người trực tiếp hướng dẫn môn Hệ phân tán dành nhiều thời gian, công sức hướng dẫn suốt trình học tập, thực nghiên cứu hoàn thành đồ án Chúng xin trân trọng cám ơn Ban giám hiệu trường Đại học Vinh, trường Đại học Kinh tế Công nghiệp Long An, tồn thể thầy giáo trường tận tình truyền đạt kiến thức quý báu tạo điều kiện, giúp đỡ chúng tơi q trình học tập nghiên cứu Tuy có nhiều cố gắng, đồ án khơng tránh khỏi thiếu sót Kính mong q Thầy Cô, người quan tâm đến đề tài bạn bè tiếp tục có ý kiến đóng góp, giúp đỡ để đồ án hoàn thiện Một lần xin chân thành cám ơn! MỤC LỤC CHƯƠNG GIỚI THIỆU CHƯƠNG TỔNG QUAN VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ HỆ THỐNG CÁC ĐỐI TƯỢNG PHÂN TÁN Hệ sở liệu phân tán 1.1 Mơ hình kiến trúc 1.2 So sánh Hệ CSDL phân tán hệ CSDL tập trung 1.2.1 Hệ sở liệu tập trung 1.2.2 So sánh Hệ CSDL phân tán hệ CSDL tập trung 1.3 Thiết kế Cơ sở liệu phân tán Hệ thống đối tượng phân tán 2.1 Đối tượng (Objects) 2.2 RPC (Remote Procedure Call) 2.3 RMI (Remote Method Invocation) 2.4 CORBA (Common Object Request Broker Architecture) 2.5 Messaging (Thông điệp) 2.6 Service-Oriented Architecture (SOA) Cơ sở liệu phân tán 10 Load Balancing (Cân tải) 10 CHƯƠNG SO SÁNH CÔNG NGHỆ RMI VÀ CORBA TRONG LẬP TRÌNH PHÂN TÁN TRÊN MƠI TRƯỜNG JAVA ỨNG DỤNG VÀO CÔNG TÁC QUẢN LÝ HỌC SINH THPT 12 Một số ứng dụng hệ phân tán vào công tác quản lý học sinh trường thpt 12 Lập trình java phân tán với công nghệ RMI 13 2.1 Phát triển ứng dụng phân tán sử dụng RMI 13 2.2 Một số ứng dụng Lập trình java phân tán với công nghệ RMI vào quản lý học sinh THPT 13 Lập trình java phân tán với công nghệ CORBA 19 3.1 Phát triển ứng dụng phân tán sử dụng CORBA 19 3.2 Một số ứng dụng Lập trình java phân tán với công nghệ CORBA vào quản lý học sinh THPT 20 So sánh ứng dụng cơng nghệ RMI CORBA ví dụ quản lý học sinh THPT 27 4.1 Ưu nhược điểm RMI (Remote Method Invocation) 27 4.2 Ưu nhược điểm CORBA (Common Object Request Broker Architecture) 28 CHƯƠNG 4: KẾT LUẬN 29 PHÂN CƠNG NHIỆM VỤ CÁC THÀNH VIÊN STT Cơng việc giao Họ tên Ghi Nghiên cứu trình bày cơng nghệ RMI lập trình Trần Thị Hương Giang phân tán môi trường java vào ứng dụng quản lý học sinh cấp THPT Nghiên cứu trình bày cơng nghệ CORBA lập Nguyễn Văn Hải trình phân tán mơi trường java vào ứng dụng quản lý học sinh cấp THPT KẾT QUẢ ĐÁNH GIÁ NHÓM STT Họ tên Trần Thị Hương Giang Nguyễn Văn Hải Đánh giá hoạt động nhóm Điểm CHƯƠNG GIỚI THIỆU Thuật ngữ Hệ phân tán (Distributed System) trở nên quen thuộc với người làm công tác tin học Việc ứng dụng hệ tin học phân tán vào lĩnh vực đời sống xã hội, vào ngành kinh doanh, hàng không, đường sắt, viễn thông, thương mại điện tử, ngành giáo dục ngày phát triển mạnh mẽ Hiện nay, nước ta có nhiều nghiên cứu nhằm phát triển hoàn thiện hệ thống liệu phân tán, để phát triển ứng dụng nhiều lĩnh vực khác Cơ chế gọi phương thức từ xa Java (RMI) Kiến trúc môi giới yêu cầu đối tượng chung (CORBA) hai hệ thống đối tượng phân tán quan trọng sử dụng rộng rãi Mỗi hệ thống có đặc điểm nhược điểm riêng Cả hai sử dụng ngành cho ứng dụng khác nhau, từ thương mại điện tử đến chăm sóc sức khỏe Cả hai hỗ trợ việc giao tiếp tương tác thành phần phần mềm mạng, có số khác biệt quan trọng cách triển khai tính linh hoạt Lựa chọn chế hai chế phân phối để sử dụng cho dự án nhiệm vụ khó khăn Bài viết đề cập đến việc “so sánh cơng nghệ phổ biến RMI CORBA lập trình phân tán môi trường java vào ứng dụng quản lý học sinh cấp THPT” để thấy rõ ưu điểm nhược điểm công nghệ nghiên cứu ứng dụng công nghệ nhằm xây dựng hệ thống thông tin phân tán để hỗ trợ cho việc quản lý học sinh trường HNQT iSchool Hà Tĩnh CHƯƠNG 2: TỔNG QUAN VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ HỆ THỐNG CÁC ĐỐI TƯỢNG PHÂN TÁN Hệ sở liệu phân tán Hệ sở liệu phân tán (Distributed Database System) hệ thống sở liệu liệu phân tán lưu trữ nhiều máy tính nút mạng Mục tiêu hệ sở liệu phân tán cải thiện tính khả dụng, tính mở rộng hiệu suất hệ thống cách tận dụng tối đa tài ngun phân tán 1.1 Mơ hình kiến trúc a) Mơ hình kiến trúc hệ phân tán máy khách/máy chủ – client/server Hình: Sơ đồ hệ phâ ntán client/server Mơ hình máy khách/máy chủ dạng điện tốn phân tán chương trình (máy khách) giao tiếp với chương trình khác (máy chủ) nhằm mục đích trao đổi thơng tin Trong mơ hình này, máy khách máy chủ thường nói ngơn ngữ giao thức mà máy khách máy chủ hiểu để chúng giao tiếp Mặc dù mơ hình máy khách/máy chủ triển khai theo nhiều cách khác nhau, thường thực cách sử dụng ổ cắm cấp thấp Sử dụng ổ cắm để phát triển hệ thống máy khách/máy chủ có nghĩa phải thiết kế giao thức, tập hợp lệnh máy khách máy chủ đồng ý thơng qua chúng giao tiếp Ví dụ, xem xét giao thức HTTP cung cấp phương thức gọi GET, phương thức phải triển khai tất máy chủ web sử dụng máy khách web (trình duyệt) để truy xuất tài liệu b) Mơ hình hệ phân tán ngang hàng Hình: Sơ đồ kiến trúc hệ phân tán ngang hàng Mơ hình hệ phân tán ngang hàng (Peer-to-Peer - P2P) hệ phân tán kiểu kiến trúc thành phần phần mềm hoạc hệ thống mạng tương tác làm việc với mà khơng có máy chủ trung tâm điều khiển Mơ hình cho phép thành phần phân tán trao đổi thông tin tài nguyên trực tiếp nhau, tạo thành mạng phân tán có tính phân tán cao Trong mơ hình P2P, thành phần phần mềm, máy tính thiết bị có vai trị tương đương có khả hoạt động máy chủ (server) lẫn máy khách (client) Mỗi thành phần mạng cung cấp lấy thông tin từ mà không cần can thiệp máy chủ trung tâm Mô hình P2P khác biệt so với kiểu kiến trúc truyền thống client-server, có máy chủ trung tâm đảm nhận trách nhiệm xử lý yêu cầu cung cấp liệu cho máy khách 1.2 So sánh Hệ CSDL phân tán hệ CSDL tập trung 1.2.1 Hệ sở liệu tập trung Trong mơ hình này, thành phần xử lý ứng dụng, phần mềm sở liệu thân sở liệu xử lý Hệ sở liệu thiết kế cho hệ thống ngƣời dùng không hỗ trợ điều khiển cạnh tranh, chức phục hồi 1.2.2 So sánh Hệ CSDL phân tán hệ CSDL tập trung Cơ sở liệu phân tán thiết kế khác sở liệu tập trung Do cần đối sánh đặc trưng sở liệu phân tán với sở liệu tập trung để thấy lợi ích sở liệu phân tán Đặc trưng mô tả sở liệu tập trung điều khiển tập trung, độc lập liệu, giảm bớt dư thừa, cấu vật lý phức tạp khả truy cập, toàn vẹn, hồi phục, điều khiển tương tranh, biệt lập an toàn liệu 1.3 Thiết kế Cơ sở liệu phân tán Các chiến lược thiết kế sở liệu phân tán phương pháp kỹ thuật để thiết kế triển khai sở liệu phân tán cho đáp ứng yêu cầu tính sẵn sàng, tính mở rộng, hiệu suất bảo mật Các chiến lược thiết kế sở liệu phân tán phụ thuộc vào yêu cầu cụ thể ứng dụng môi trường triển khai Thiết kế sở liệu phân tán đòi hỏi cân nhắc tối ưu hóa yếu tố liên quan đến hiệu suất, khả mở rộng, tính sẵn sàng bảo mật Hệ thống đối tượng phân tán Hệ thống đối tượng phân tán kiến trúc phần mềm đối tượng (components, services) thành phần hệ thống triển khai chạy nhiều máy tính nút mạng Mục tiêu hệ thống phân tán tận dụng tối đa sức mạnh tính tốn tài nguyên phân tán hệ thống, đồng thời cung cấp tính linh hoạt, mở rộng khả chịu lỗi cao Một số thành phần hệ thống đối tượng phân tán bao gồm: 2.1 Đối tượng (Objects) Trong hệ phân tán, đối tượng (Objects) đề cập đến thành phần phần mềm độc lập, có trạng thái hành vi, triển khai chạy máy tính khác mạng Các đối tượng phân tán giao tiếp với qua mạng để thực hoạt động phân tán, chia sẻ liệu, tương tác với Dưới số đặc điểm đối tượng phân tán: Tính độc lập: Mỗi đối tượng phân tán thành phần phần mềm độc lập, tồn hoạt động độc lập với đối tượng khác Điều cho phép tính module tái sử dụng mã Trạng thái hành vi: Các đối tượng phân tán bao gồm trạng thái (dữ liệu đối tượng) hành vi (phương thức đối tượng) Hành vi đối tượng triển khai cách định nghĩa phương thức Giao tiếp phân tán: Đối tượng phân tán giao tiếp với qua mạng cách gửi nhận thông điệp yêu cầu Các chế RMI (Remote Method Invocation) CORBA (Common Object Request Broker Architecture) sử dụng để thực việc giao tiếp Định danh nhất: Mỗi đối tượng phân tán có định danh giúp xác định hệ thống phân tán Định danh giúp truy cập giao tiếp với đối tượng từ xa Bảo mật: Bảo mật yếu tố quan trọng làm việc với đối tượng phân tán Cần thiết phải xác thực kiểm tra quyền truy cập gửi nhận thông điệp đối tượng Tính bất đồng bộ: Các đối tượng phân tán thực hoạt động bất đồng bộ, có nghĩa yêu cầu khơng phụ thuộc vào gửi nhận thời điểm khác Khả mở rộng: Hệ thống đối tượng phân tán mở rộng cách thêm đối tượng triển khai đối tượng máy tính mạng Các đối tượng phân tán đóng vai trị quan trọng việc xây dựng ứng dụng phân tán có tính linh hoạt cao, khả mở rộng khả chịu lỗi tốt Chúng cho phép tận dụng tối đa tài nguyên phân tán hệ thống cung cấp chế mạnh mẽ để tương tác chia sẻ liệu thành phần phần mềm mạng 2.2 RPC (Remote Procedure Call) System.out.println("RMI Server is running "); } catch (Exception e) { System.err.println("RMI Server exception: " + e); e.printStackTrace(); } } } d) Phát triển máy khách Cuối cùng, tạo ứng dụng client RMI gọi phương thức từ xa đối tượng từ xa import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.util.List; public class RMIClient { public static void main(String[] args) { try { // Kết nối đến dịch vụ RMI Registry registry = LocateRegistry.getRegistry("localhost", 1099); // Lấy đối tượng từ xa từ dịch vụ RMI StudentManager studentManager = (StudentManager) registry.lookup("StudentManager"); // Thêm học sinh Student student1 = new StudentImpl(1, "John Doe"); Student student2 = new StudentImpl(2, "Jane Smith"); studentManager.addStudent(student1); studentManager.addStudent(student2); // Lấy danh sách học sinh 17 List studentList = studentManager.getAllStudents(); // Hiển thị danh sách học sinh for (Student student : studentList) { System.out.println("Student ID: " + student.getStudentId() + ", Name: " + student.getName()); } } catch (Exception e) { System.err.println("RMI Client exception: " + e); e.printStackTrace(); } } } Để chạy ứng dụng phân tán sử dụng công nghệ RMI quản lý học sinh trung học phổ thông, bạn cần tuân thủ bước sau: • Bước 1: Biên dịch mã nguồn Java Mở Command Prompt Terminal chuyển đến thư mục chứa file mã nguồn Java bạn Biên dịch mã nguồn Java trình biên dịch Java (javac) Hãy chắn mã nguồn lưu file có phần mở rộng java javac Student.java javac StudentManager.java javac RMIServer.java javac RMIClient.java • Bước 2: Tạo chạy RMI Registry (máy chủ đăng ký RMI) RMI Registry nơi mà đối tượng từ xa đăng ký máy khách RMI tìm kiếm truy cập chúng Trong Command Prompt Terminal, chạy lệnh sau để tạo RMI Registry: start rmiregistry • Bước 3: Chạy máy chủ RMI 18 Trong Command Prompt Terminal, chạy lệnh sau để chạy máy chủ RMI (RMIServer): java RMIServer • Bước 4: Chạy ứng dụng client RMI Trong Command Prompt Terminal, chạy lệnh sau để chạy ứng dụng client RMI (RMIClient): java RMIClient Khi ứng dụng client RMI chạy, kết nối đến máy chủ RMI gọi phương thức từ xa để thêm học sinh vào danh sách sau lấy danh sách học sinh hiển thị thông tin học sinh Lưu ý: Trong trình chạy ứng dụng, đảm bảo lệnh thực cửa sổ Command Prompt Terminal riêng biệt để máy chủ RMI máy khách RMI hoạt động đồng thời giao tiếp với Nếu bạn chạy mạng, chắn máy tính chạy máy chủ máy khách RMI nằm mạng giao tiếp với Tóm lại, Việc áp dụng lập trình Java phân tán với cơng nghệ RMI vào quản lý học sinh trung học phổ thông giúp cải thiện tính sẵn sàng, tích hợp thơng tin, tối ưu hóa quy trình quản lý, đồng thời tăng cường tính tiện ích khả linh hoạt cho cộng đồng giáo dục Lập trình java phân tán với cơng nghệ CORBA: Lập trình Java phân tán với công nghệ CORBA (Common Object Request Broker Architecture) phương pháp cho phép ứng dụng Java tương tác làm việc với qua mạng thông qua giao thức CORBA CORBA thiết kế để độc lập với tảng ngơn ngữ Do đó, đối tượng CORBA chạy tảng nào, nằm đâu mạng viết ngơn ngữ có ánh xạ Ngôn ngữ Định nghĩa Giao diện (IDL) Tương tự RMI, đối tượng CORBA định với giao diện Tuy nhiên, giao diện CORBA định IDL Mặc dù IDL tương tự C++, điều quan trọng cần lưu ý IDL khơng phải ngơn ngữ lập trình 3.1 Phát triển ứng dụng phân tán sử dụng CORBA 19 Phát triển ứng dụng phân tán sử dụng CORBA (Common Object Request Broker Architecture) môi trường Java trình thú vị mạnh mẽ Dưới bước để phát triển ứng dụng phân tán sử dụng CORBA mơi trường Java: • Định nghĩa giao diện IDL: đầu tiên, ta cần định nghĩa giao diện sử dụng CORBA IDL IDL cho phép bạn mô tả giao diện đối tượng phân tán mà client server gọi sử dụng • Ánh xạ giao diện IDL sang Java • Triển khai giao diện: Tiếp theo, ta cần triển khai servant (đối tượng thực thi) dựa giao diện định nghĩa IDL Các servant chứa logic thực thi cho phương thức định nghĩa giao diện • Phát triển máy chủ: ta cần viết mã để tạo CORBA server, cho phép client kết nối gọi phương thức từ xa thông qua servant Mã đăng ký servant với CORBA Naming Service phép client tìm kết nối • Phát triển khách hàng: Cuối cùng, ta cần viết mã để tạo CORBA client, cho phép client kết nối với server gọi phương thức từ xa servant Mã tìm servant CORBA Naming Service gọi phương thức từ xa cần thiết • Biên dịch chạy ứng dụng: Cuối cùng, sau hoàn thành viết mã, ta cần biên dịch ứng dụng chạy CORBA server CORBA client Hãy chắn server client kết nối với qua mạng 3.2 Một số ứng dụng Lập trình java phân tán với công nghệ CORBA vào quản lý học sinh THPT Để triển khai ứng dụng quản lý học sinh trung học phổ thông sử dụng công nghệ CORBA, cần thiết kế triển khai đối tượng từ xa CORBA để thực chức ứng dụng Dưới ví dụ cách xây dựng ứng dụng đơn giản quản lý học sinh THPT a) Bước 1: Định nghĩa đối tượng từ xa Đầu tiên, xác định chức ứng dụng quản lý học sinh định nghĩa giao diện từ xa cho đối tượng CORBA tương ứng 20 Trong ví dụ này, xây dựng đối tượng từ xa cho học sinh lớp học.Dưới ví dụ đơn giản cách triển khai ứng dụng phân tán sử dụng CORBA Java Trong ví dụ này, tạo ứng dụng Hello CORBA đơn giản, máy khách gọi phương thức sayHello từ xa máy chủ CORBA import org.omg.CORBA.Object; public interface Student extends Object { String getStudentId(); String getName(); // Thêm phương thức khác liên quan đến học sinh (VD: getAge(), getAddress(), ) } public interface Course extends Object { String getCourseId(); String getCourseName(); // Thêm phương thức khác liên quan đến lớp học (VD: getTeacher(), getSchedule(), ) } b) Bước 2: Triển khai đối tượng từ xa Triển khai giao diện từ xa định nghĩa cung cấp thực cho phương thức chúng import org.omg.CORBA.*; import StudentApp.*; class StudentImpl extends StudentPOA { private String studentId; private String name; public StudentImpl(String studentId, String name) { this.studentId = studentId; this.name = name; 21 } public String getStudentId() { return studentId; } public String getName() { return name; } } class CourseImpl extends CoursePOA { private String courseId; private String courseName; public CourseImpl(String courseId, String courseName) { this.courseId = courseId; this.courseName = courseName; } public String getCourseId() { return courseId; } public String getCourseName() { return courseName; } } c) Bước 3: Tạo máy chủ CORBA Tạo máy chủ CORBA đăng ký đối tượng từ xa với ORB import org.omg.CORBA.*; import StudentApp.*; 22 public class CORBAServer { public static void main(String[] args) { try { // Khởi tạo khởi động ORB ORB orb = ORB.init(args, null); // Lấy tham chiếu đến Root POA kích hoạt POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootPOA.the_POAManager().activate(); // Tạo đối tượng từ xa lấy tham chiếu đến StudentImpl student1 = new StudentImpl("12345", "John Doe"); StudentImpl student2 = new StudentImpl("67890", "Jane Smith"); CourseImpl course1 = new CourseImpl("CSC101", "Introduction to Computer Science"); CourseImpl course2 = new CourseImpl("MTH201", "Advanced Mathematics"); org.omg.CORBA.Object studentRef1 = rootPOA.servant_to_reference(student1); org.omg.CORBA.Object studentRef2 = rootPOA.servant_to_reference(student2); org.omg.CORBA.Object courseRef1 = rootPOA.servant_to_reference(course1); org.omg.CORBA.Object courseRef2 = rootPOA.servant_to_reference(course2); // Đăng ký đối tượng từ xa với ORB 23 orb.connect(studentRef1); orb.connect(studentRef2); orb.connect(courseRef1); orb.connect(courseRef2); // In thông báo máy chủ khởi động thành công System.out.println("CORBA Server is running "); // Chờ yêu cầu từ máy khách orb.run(); } catch (Exception e) { System.err.println("CORBA Server exception: " + e); e.printStackTrace(); } } } d) Bước 4: Tạo ứng dụng client CORBA Tạo ứng dụng client CORBA gọi phương thức từ xa đối tượng từ xa import org.omg.CORBA.*; import StudentApp.*; public class CORBAClient { public static void main(String[] args) { try { // Khởi tạo khởi động ORB ORB orb = ORB.init(args, null); // Lấy tham chiếu đến đối tượng từ xa (Học sinh Lớp học) org.omg.CORBA.Object studentObj1 = orb.string_to_object("IOR:000000000000001549444c3a48656c6c6f3a312e30000000 0001000000000000006c000102000000000e31302e32352e3235352e3130310005094 e616d6553657276696365000000000000000200000000000000"); 24 org.omg.CORBA.Object studentObj2 = orb.string_to_object("IOR:000000000000001549444c3a48656c6c6f6a3a312e300000 000001000000000000006c000102000000000e31302e32352e3235352e31303100050 94e616d6553657276696365000000000000000200000000000000"); org.omg.CORBA.Object courseObj1 = orb.string_to_object("IOR:000000000000001549444c3a48656c6c6f3a322e30000000 0001000000000000006c000102000000000e31302e32352e3235352e3130310005094 e616d6553657276696365000000000000000200000000000000"); org.omg.CORBA.Object courseObj2 = orb.string_to_object("IOR:000000000000001549444c3a48656c6c6f3a332e30000000 0001000000000000006c000102000000000e31302e32352e3235352e3130310005094 e616d6553657276696365000000000000000200000000000000"); Student student1 = StudentHelper.narrow(studentObj1); Student student2 = StudentHelper.narrow(studentObj2); Course course1 = CourseHelper.narrow(courseObj1); Course course2 = CourseHelper.narrow(courseObj2); // Gọi phương thức từ xa System.out.println("Student 1: " + student1.getName() + " - " + student1.getStudentId()); System.out.println("Student 2: " + student2.getName() + " - " + student2.getStudentId()); System.out.println("Course 1: " + course1.getCourseName() + " - " + course1.getCourseId()); System.out.println("Course 2: " + course2.getCourseName() + " - " + course2.getCourseId()); } catch (Exception e) { System.err.println("CORBA Client exception: " + e); 25 e.printStackTrace(); } } } Để chạy ứng dụng phân tán sử dụng công nghệ CORBA quản lý học sinh trung học phổ thơng, bạn cần tn thủ bước sau: • Bước 1: Biên dịch mã nguồn Java Mở Command Prompt Terminal chuyển đến thư mục chứa file mã nguồn Java bạn Biên dịch mã nguồn Java trình biên dịch Java (javac) Hãy chắn mã nguồn lưu file có phần mở rộng java javac Student.java javac Course.java javac CORBAServer.java javac CORBAClient.java • Bước 2: Chạy máy chủ CORBA Trong Command Prompt Terminal, chạy lệnh sau để chạy máy chủ CORBA (CORBAServer): java CORBAServer • Bước 3: Chạy ứng dụng client CORBA Trong Command Prompt Terminal, chạy lệnh sau để chạy ứng dụng client CORBA (CORBAClient): java CORBAClient Khi ứng dụng client CORBA chạy, kết nối đến máy chủ CORBA gọi phương thức từ xa để lấy thông tin học sinh lớp học từ máy chủ Lưu ý: Trong trình chạy ứng dụng, đảm bảo lệnh thực cửa sổ Command Prompt Terminal riêng biệt để máy chủ CORBA máy khách CORBA hoạt động đồng thời giao tiếp với Nếu bạn chạy mạng, chắn máy tính chạy máy chủ máy khách CORBA nằm mạng giao tiếp với 26 So sánh ứng dụng cơng nghệ RMI CORBA ví dụ quản lý học sinh THPT Trong ví dụ quản lý học sinh THPT, sử dụng hai công nghệ phân tán khác RMI (Remote Method Invocation) CORBA (Common Object Request Broker Architecture) Dưới so sánh hai công nghệ này: 4.1 Ưu nhược điểm RMI (Remote Method Invocation): RMI công nghệ phân tán Java sử dụng để gọi phương thức từ xa máy tính mơi trường Java RMI sử dụng giao thức JRMP (Java Remote Method Protocol) để truyền thơng máy tính mạng Trong ví dụ quản lý học sinh THPT, triển khai giao diện từ xa đối tượng từ xa dựa RMI cho quản lý học sinh lớp học  Ưu điểm RMI quản lý học sinh THPT: • RMI dễ triển khai Java tích hợp chặt chẽ với ngơn ngữ • Cú pháp đơn giản CORBA, dễ hiểu triển khai nhanh chóng • Tích hợp sẵn Java, không cần thư viện bên ngồi  Nhược điểm RMI ví dụ quản lý học sinh THPT: • RMI hạn chế việc hỗ trợ Java, đó, muốn tích hợp ứng dụng viết ngơn ngữ khác, trở nên khó khăn • Hiệu suất thấp so với CORBA việc sử dụng JRMP 4.2 Ưu nhược điểm CORBA (Common Object Request Broker Architecture): CORBA chuẩn phần mềm phân tán độc lập ngôn ngữ, cho phép đối tượng từ xa giao tiếp làm việc với qua mạng CORBA sử dụng ORB (Object Request Broker) để giải yêu cầu gọi phương thức từ xa đối tượng phân tán Trong ví dụ quản lý học sinh THPT, triển khai giao diện từ xa đối tượng từ xa dựa CORBA cho quản lý học sinh lớp học  Ưu điểm CORBA ví dụ quản lý học sinh THPT: • CORBA chuẩn độc lập ngơn ngữ, cho phép tích hợp ứng dụng viết nhiều ngơn ngữ khác 27 • Có thể mở rộng linh hoạt RMI việc phát triển ứng dụng phân tán phức tạp • Hiệu suất tốt RMI số trường hợp  Nhược điểm CORBA ví dụ quản lý học sinh THPT: • CORBA có cú pháp phức tạp RMI, yêu cầu thêm số công việc tạo file IDL (Interface Definition Language) biên dịch IDL để tạo mã Java • Triển khai CORBA phức tạp RMI u cầu cấu hình phức tạp để chạy nhiều hệ thống Tóm lại, Cả RMI CORBA công nghệ phân tán mạnh mẽ linh hoạt Việc chọn công nghệ phù hợp phụ thuộc vào yêu cầu yêu cầu cụ thể ứng dụng Nếu bạn làm việc mơi trường Java cần triển khai nhanh chóng ứng dụng đơn giản, RMI lựa chọn tốt Nếu bạn cần tích hợp ứng dụng viết nhiều ngôn ngữ muốn xây dựng ứng dụng phân tán phức tạp, CORBA lựa chọn tốt 28 CHƯƠNG 4: KẾT LUẬN RMI (Remote Method Invocation) CORBA (Common Object Request Broker Architecture) hai cơng nghệ phổ biến lập trình phân tán môi trường Java Cả hai công nghệ sử dụng để triển khai ứng dụng phân tán, bao gồm ứng dụng quản lý học sinh cấp THPT Dưới kết luận so sánh RMI CORBA ứng dụng quản lý học sinh cấp THPT:  Sự đơn giản tích hợp: • RMI: RMI phần Java dễ dàng tích hợp vào ứng dụng Java Nó sử dụng giao thức JRMP (Java Remote Method Protocol) để giao tiếp thành phần phân tán • CORBA: CORBA kiến trúc độc lập ngôn ngữ hỗ trợ nhiều ngơn ngữ lập trình Điều làm cho việc tích hợp thành phần CORBA ứng dụng Java phức tạp so với RMI Từ cho thấy, RMI có đơn giản tích hợp tốt CORBA lập trình ứng dụng quản lý học sinh cấp THPT  Hiệu suất: • RMI: RMI có hiệu suất tốt mơi trường Java, chủ yếu tập trung vào môi trường LAN (Local Area Network) sử dụng JRMP • CORBA: CORBA hỗ trợ hiệu suất tốt môi trường phân tán, bao gồm môi trường mạng rộng (WAN), nhờ sử dụng giải pháp IIOP (Internet Inter-ORB Protocol) Từ cho thấy, CORBA có hiệu suất tốt mơi trường phân tán phù hợp với ứng dụng quản lý học sinh cấp THPT có yêu cầu phân tán qua nhiều địa điểm  Bảo mật: • RMI: RMI hỗ trợ chế bảo mật Java RMI Security Manager SSL (Secure Sockets Layer) để đảm bảo an tồn việc truyền tải liệu • CORBA: CORBA hỗ trợ mơ hình bảo mật phức tạp hơn, bao gồm SSL, GSSAPI (Generic Security Services Application Programming Interface), chứng số 29 Từ cho thấy, Cả RMI CORBA hỗ trợ chế bảo mật, nhiên CORBA có khả hỗ trợ bảo mật phức tạp linh hoạt Tóm lại, dựa so sánh, RMI phù hợp với ứng dụng quản lý học sinh cấp THPT với yêu cầu đơn giản môi trường mạng LAN Trong đó, CORBA phù hợp có yêu cầu phức tạp phân tán bảo mật môi trường mạng rộng phân tán qua nhiều địa điểm 30 TÀI LIỆU THAM KHẢO 1) "Distributed Systems: Concepts and Design" - George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair 2) "Modern Operating Systems" - Andrew S Tanenbaum and Herbert Bos 3) Bài giảng Hệ phân Tán (TS Lê Văn Minh) 4) Một số links tham khảo hệ phân tán Code https://www.oracle.com/technical-resources/articles/javase/rmi-corba.html https://docstore.mik.ua/orelly/java-ent/dist/ch03_06.htm 31

Ngày đăng: 05/09/2023, 17:37

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

TÀI LIỆU LIÊN QUAN

w