Nhận xét về phương thức lập trình phân tán RMI

Xu hướng lập trình phân tán là xu hướng phát triền tự nhiên và là tất yêu của công nghệ phần mềm hiện nay. Đã có rất nhiều giải pháp cho vấn đề này: kiến trúc COM (Microsoft), CORBA (OMG), và hiện nay Web Services đang nổi lên như là một giải pháp lựa chọn tốt nhất.

Cơ chế kết nối theo giao thức TCP/IP bằng khái niệm Socket bắt buộc ta phải dùng đến khái niệm cổng – port. Một trình chủ phải hoạt động và trao đổi qua một cồng chì định để lắng nghe các yêu cầu đến từ các máy khách. Tuy vậy, việc mờ cổng đối với một máy chù là một vấn đề hết sức thận trọng, và không dễ để thục hiện vi nó liên quan đến sự an toàn của các hệ thống trên mạng. Nếu ta xây dựng các ứng dụng trên mạng nội hạt (Intranet) thì điều này không thành vấn đề. Ta có thể chì định số hiệu của cồng bất kỳ cho một socket trên máy chù, miễn là những cổng này không trùng với những cổng phổ dụng mặc định cho các ứng dụng như Web, E-Mail, FTP. Tuy nhiên, đối với mạng diện rộng (Internet), thường nó bị kiểm soát nghiêm ngặt bời bức tường lừa. Tường lửa là phần mềm (có thể được cài đặt hoặc điều khiển bời phần cứng tuỳ theo nhà cung cấp) chặn ờ cửa ra / vào của đường kết nối trao đổi dữ liệu cùa mạng nội hạt (mạng cục bộ) VỚI bên ngoài (Internet). Mục đích là phòng tránh sự đột nhập, sự tấn công hay ăn cắp thông tin của ‘những người không được phép truy cập, của các tay hacker. Nó cũng được sử dựng để kiểm soát sự truy xuất ra bên ngoài mạng Internet.

Vấn đề phát sinh chính là việc sử dụng các cổng kết nối. Hầu như tất cả bức tường lừa chì cho sù dụng một số hạn chế các cổng, cổng kết nối giao thức http: 80 là cổng phổ dụng cho việc kết nối với Web Server Một số cồng khác mà ta có thể được phép sử dụng như: cổng 21 cho ftp, 23 cho telnet và 110 cho POP3 Mail. Như vậy, ta sẽ gặp khó khăn khi sứ dụng mô hình khách chủ vỉ gặp phải bức tường lửa.

Ứng dụng phân tán triệu gọi đối tượng từ xa có thể giải quyết vấn đề đối với tường lửa như sau:

  1. Yêu cầu người quản trị bức tường lừa cung cấp một số cổng để kết nối.
  2. Sừ dụng cơ chế trung gian thông qua cổng 80, cổng phổ thông cùa dịch vụ Web Server . Cơ chế này còn được gọi là cơ chế ‘‘đường hầm”.

Như vậy, COM và RMI, về hiệu quả, cách thức hoạt động của chúng có nhiều nét tương đồng. Nhưng so với COM, RMI linh động hơn do sử dụng công nghệ Java, và do đó có thể được áp dụng cho nhiều hệ nền khác nhau (COM chỉ được áp dụng trên các hệ nền Windows). Cả hai đều có chung nhược điểm là đều phải thực hiện việc kết nổi giữa các đối tượng qua các cổng chì định đã được mở từ trước. Web Services là công nghệ mới được phát triển gần đây, sử dụng SOAP cho phép trình chù và trình khách giao tiếp với nhau qua giao thức HTTP, hay là qua cổng 80 – đây là cổng luôn được mờ để phục vụ trên một HTTP Webserver, nên nhà phát triển dịch vụ này sẽ không lo lắng về vấn đề cổng giao tiếp nữa. Hơn thế nữa, Web Services được xây dựng dựa trên nền tảng là XML – độc lập với các hệ nền, nên nó có hầu như tất cà các ưu điểm của các phương thức lập trình phàn tán trước đó. SOAP cho phép dữ liêu chuyển đi bằng HTTP và định dạng theo chuẩn XML. Các công nghệ mới hiện nay, .NET Framework, Java đều đưa khả năng làm việc với Web Services vào như là một thành phần quan trọng. Nó cho phép triệu gọi lẫn nhau, bất chấp các đối tượng đó được viết bằng Java cùa Sun hay NET của Microsoft.

Do vậy, việc nghiên cứu về RMI là một phần không thể thiếu đối với các nhà phát triển Java trước khi chuyển hướng tiếp cận một phương thức lập trình phân tán mới như CORBA và Web Services cũng như tiếp cận công nghệ EJB của Java.