Khung di động trong Java RMI

MỤC LỤC

Một số kỹ thuật trong java và RMI

  • Cơ chế serialize đối tượng
    • Cô cheá RMI truyeàn thoâng soá .1 Dữ liệu cơ bản

      Đề tài này xây dựng Mobility framework trong môi trường Java vì Java cung cấp nhiều kỹ thuật hỗ trợ việc di chuyển object và Java là một ngôn ngữ không phụ thuộc platform cho nên cho phép các agent có thể di chuyển trên nhiều hệ điều hành khác nhau. Ngoài ra khi một sự kiện collaboration được phát đi thì các agent đang hoạt động phải tạm dừng để ưu tiên cho sự kiện này, persistennce object sẽ làm nhiệm vụ tạm thời lưu lại các object này và phục hồi lại sau đó.

      Phát triển mobile object

      Khi hàm trả về một tham khảo cục bộ đến đối tượng từ xa, RMI không trả về đối tượng đó mà thay vì vậy nó cung cấp một đối tượng khác là remote proxy của dịch vụ đó trên dòng trả về. Nếu làm như vậy có thể tốt hơn nhưng cách hiện thực trên đảm bảo ngữ nghĩa của việc tham khảo từ xa.

      Giới thiệu kỹ thuật JINI 1 Giới thiệu

        ♦ Các dịch vụ độc lập tương đối, nhưng đều có thể hợp tác với nhau mà không cần sự quản lý tập trung. Jini Discovery protocol được các dịch vụ và các ứng dụng sử dụng để tìm ra các community.

        4.5.5.1.4 Join

        4.5.5.2.1.1 Dịch vụ hoạt động thông qua Proxy object

        Finding a Service : quá trình một ứng dụng tìm kiếm và sử dụng các services

        Kết quả của quá trình look up là một proxy object được trả về cho ứng dụng. Và các ứng dụng sử dụng proxy object như là front-end để giao tiếp với dịch vụ được xem là back-end.

        Remote Event

        Sau khi làm xong, mỗi participant sẽ trả về một indicator cho transaction manager để thông báo chúng đã vào giai đoạn precommit thành công. Sau khi kết thúc giai đoạn precommit, transaction manager sẽ thu thập các kết quả của từng participant.

        Transaction mamanger

        JavaSpace

        Không giống như các hệ thống lưu trữ object khác, Javaspace không sử dụng cơ chế naming là phương tiện duy nhất để xác định các object đã được lưu trữ, mà chỉ xem tên là một trong những thuộc tính của object mà nó sử dụng để phân biệt các object. Dĩ nhiên khả năng chứa của Javaspace là hữu hạn và như thế nó chỉ chứa các entry object trong khoảng thời gian được đăng ký trước trong tác vụ write; khi hết khoảng thời gian này, Javaspace sẽ loại bỏ entry object đó.

        GIẢI QUYẾT VẤN ĐỀ

        Phaân tích mobile agent & mobility framework 1 Mobile Agent

        • Phân tích đặc điểm : .1 Mobile
          • Mobility Framework .1 Đặc tả

            Đặc tính này làm đa dạng hóa phương thức moving, mobile agent, nếu như nó không được thiết lập timer tương ứng với host mà mobile agent đang “cư trú”, thì mobile agent sẽ được thực thi công việc và rồi di chuyển đi ngay, nhưng nếu user có thiết lập timer này thì mobile agent phải đợi đến hết khoảng thời gian timer, mới được phép thực hiện công việc tại host đó và di chuyển đi khi hoàn thành công việc. Khi thực thi công việc ở một host, vì một lý do nào đó, mobile agent phải dừng quá trình thực thi nhưng vẫn lưu lại trạng thái hiện thời của nó, lúc đó nó rơi vào trạng thái deactivation, lúc này timer sẽ không còn tác dụng vì chúng ta không thể biết thời gian mobile agent ở trạng thái deactivation có vượt quá khoảng thời gian timer không, và sau đó được phục hồi lại quá trình thực thi để chuyển sang trạng thái activation; lúc này Mobile Agent sẽ được tiếp tục thực thi tiếp công việc, rồi sau đó di chuyeồn ủi.

            Hình 3.3 Mô hình mobility framework  ở gốc độ hiện thực :
            Hình 3.3 Mô hình mobility framework ở gốc độ hiện thực :

            2 Thieát keá agent structure & mobility framework 2.1 Thieát keá Mobile Agent

            Thieát keá Moving Agent .1 Moving Agent

              Trong quá trình một mobile agent (bao gồm agent place và moving agent) thực thi công việc tại một host nào đó trong framework, nó có thể bị rơi vào trạng thái deactivation ở host đó, vấn đề này được hiện thực bằng cách treo moving agent của mobile agent đó.Tương tự cho việc hủy một mobile agent bằng cách hủy moving agent của nó. Phần xác thì được tích hợp vào framework, khi lắp phần hồn vào phần xác , ta có được một mobile agent, Tất cả các mobile agent trong framework đều giống nhau phần xác (agent place) và chỉ khác nhau phần hồn (moving agent).

              Hình 3.6 Mô hình cơ bản của moving agent
              Hình 3.6 Mô hình cơ bản của moving agent

              Agent Place

              • Mô hình các Service .1 Agent service

                + Vấn đề security được đặt ra khi event service gởi nhận các thông điệp từ các event service nằm ở agent place khác.Tuy nhiên dịch vụ remote event của JINI cũng đã bảo đảm môt phần vấn đề trên, nhưng để tăng cường thêm sự bảo mật, chúng tôi đã thiết kế các thông điệp giao tiếp đều được mã hoá theo public key function. Khi agent di chuyển trong framework, hệ thống có thể xảy ra các thất bại như kết nối giữa các agent places bị đứt, các agent place chết khi agent đang hoạt động, các agent bị các agent place không tin cậy tấn công…Nếu những điều này xảy ra hệ thống có thể phát hiện được lỗi, nhưng để tăng tính fault tolerance của framework thì đòi hỏi framework phải có khả năng phục hồi lại agent như tại thời điểm trước khi xảy ra.

                Hình 3.8 AgentPlace ở góc độ hiện thực
                Hình 3.8 AgentPlace ở góc độ hiện thực

                Directory Service

                Administrator Service

                Với cách gán agent place id như trên, thì trong framework đảm bảo mỗi agent place có một định danh duy nhất và khi một agent place chết được phục hồi lại thì vẫn có thể dùng lại định danh cũ. ♦ Gán định danh cho agent : Khi user cung cấp đường dẫn đến file class và yêu cầu add một agent vào agent place thì administrator làm nhiệm vụ gán agentid.

                General

                Tại mỗi agent place tồn tại một administrator làm nhiệm vụ quản lý công việc chung của agent place và các agent đang hoạt động tại agent place đó. Một trong những nhiệm vụ quan trọng của administrator là giao tiếp với general administrator để gởi và nhận các thông tin về hệ thống.

                Administrator

                ♦ Xử lý vấn đề đồng bộ : Khi một agent thiết lập việc gởi một tín hiệu đồng bộ cho agent khác trong nhóm, thì administrator sẽ thay mặc agent này đưa sự kiện đồng bộ vào space. ♦ Xử lý vấn đề sharing data : Khi agent muốn sử dụng một kết quả tính toán từ một agent khác thì administrator sẽ làm nhiệm vụ chờ nhận kết quả này từ space.

                General Administratror

                Ngược lại khi agent muốn lắng nghe tín hiệu đồng bộ, thì administrator sẽ đăng ký lắng nghe tín hiệu đồng bộ từ space. Tương tự khi một agent muốn chia sẻ dữ liệu cho các agent trong nhóm, administrator sẽ làm nhiệm vụ ghi giá trị này vào space.

                Administr ator

                Agent Place tool

                + Phần xác định authentication : user phải cung cấp tên và password vào phần này và nhấn button Check để framework kiểm tra xem user này có đủ quyền tạo ra một agent và cho nó di chuyển không. + Phaàn thoâng tin cuûa agent place : cho pheùp user xem thoâng tin veà agent place như IP, port, số lượng các agent hiện thời tại agent place này.

                General administrator

                  Tại mỗi agent place đều có một GUI cho phép user khởi tạo các agent và dispatch các agent này. Khi user nhấn vào nút cho phép add agent vào framework thì GUI sẽ hiện cho agent thấy thông tin về định danh của agent này.

                  General Administrator

                  Thieát keá general administrator slave

                  General administrator là người giám sát framework và hoạt động theo cơ chế tập trung nên là phần tử yếu. Slave sẽ định thời kiểm tra xem master còn sống hay chết, nếu slave phát hiện master chết nó sẽ thông báo cho admin biết, đồng thời nó sẽ trở thành master điều khiển hệ thống.

                  General administrator tool

                  Như vậy vấn đề đặt ra là khi general administrator chết bất tử thì ai sẽ là người giám sát hệ thống. Người admin khi nhận thông báo master chết sẽ kích khởi bằng tay một slave khác.

                  1 Toồng keỏt

                  Hướng phát triển của đề tài 1. Giới thiệu

                  • Extended Mobility Framework .1 Đặc tả

                    Xuất phát từ lý do trên, mobility framework có thể được phát triển lên theo mô hình mobile agent container, tức là chúng ta có thể xây dựng một mobile agent từ một số các mobile agent khác.Các mobile agent được tích hợp vào trong một thực thể mobile agent, chúng vẫn có thể giao tiếp với nhau, vẫn có thể di chuyển và sự di chuyển của chúng sẽ tạo nên sự di chuyển của mobile agent “chứa” chúng. Sự di chuyển của các child mobile agent bên trong parent mobile agent của chúng ( inter-agent migration ) sẽ dẫn tới sự thay đổi cấu trúc cây hiện thực agent hierarchy của parent mobile agent của chúng, hay nói khác hơn đó chính là quá trình chuyển dịch cấu trúc cây hiện thực agent hierarchy.

                    Hình 4.1 Agent Hierarchy & Inter-agent Migration
                    Hình 4.1 Agent Hierarchy & Inter-agent Migration

                    2.2.2.1.3 Agent Migration Over Network

                    1.Chạy các dịch vụ Jini

                    • Chạy General Administrator
                      • Chạy agent place

                        Sau khi chạy 4 file bat đó thì một lúc sau lookup service sẽ hoàn thành nhiệm vụ của nó, khi thấy cửa sổ Dos chạy dịch vụ này báo finishes thì có thể tắt nó đi. General Administrator chạy cần phải có một web server làm nhiệm vụ cho phép load stub file của remote event bởi vì remote event được hiện thực bằng cơ chế RMI.

                        API VÀ LẬP TRÌNH

                        Lập trình agent

                          Đầu tiên ta định nghĩa loại agent, nếu agent làm công việc độc lập thì agent này thuộc kiểu normal, ngược lại nếu nó có hợp tác với các agent khác trong quá trình thực hiện công việc thì nó thuộc kiểu collaboration. Cuối cùng tạo đối tượng itinerary, đây là dãy các đối tượng thuộc class Itinerary đặc tả IP, port của từng destination, các tác vụ agent thực hiện trên destination này, sự hợp tác của agent với các agent khác.