Trình mồi nạp ứng dụng từ xa

8 118 0
Trình mồi nạp ứng dụng từ xa

Đang tải... (xem toàn văn)

Thông tin tài liệu

Trình mồi nạp ứng dụng từ xa Trình mồi nạp ứng dụng từ xa Bởi: Khoa CNTT ĐHSP KT Hưng Yên Điều thú vị hệ thống mạng cho phép bạn kêt nối giao tiếp điều khiển từ xa Một câu hỏi đặt có cách viết ứng dụng hoàn chỉnh đăt máy chủ sau gọi ứng dụng chạy từ máy khách hay không ?Nói chung phía máy khách bạn không cần phảI cài đặt ! Với chế RMI gọi hàm từ xa mà Java cung cấp , bạn hoàn toàn thực ý tưởng Trong Java nạp lớp RMIClassloader cho phép lập trình viên lạp lớp chương trình máy chủ theo giao thức http RMIClassloader chịu trách nhiệm đem tất lóp hay lớp thư viện mà lóp chương trình cần đến Điều tương tự chế làm việc Applet.Trong trường hợp Applet , trình duyêt browser thức nạp lơp dẽ thấy nhất.Tất lớp thư viện hay lớp mà Applet dùng đến dược đặt máy chủ trình duyệt tự động download đầy đủ trước gọi Applet thực thi Dưới chương trình ví dụ triệu goi j ứng dụng từ xa.ứng dụng ta thiết kế theo mô hình phan tán , ứng dụng goi j phương thức đối tượng xa Đối tượng từ điển có trách nhiệm dỏ tìm trả ý nghĩa từ ứng dụng yêu cầu Toàn ứng dụng đặt web server máy chủ Chương trình khách cần dùng lớp RMIClassloader để triệu gọi ứng dụng từ web server THIẾT KẾ CHƯƠNG TRÌNH TRÊN MÁY CHỦ Giả sử địa IP máy chủ 172.16.11.12 ( Bạn thay 127.0.0.1 thử nghiệm máy đơn ) địa IP người quản tri mạng cấp cho bạn Thư mục gốc webserver mà ta xây dựng trước : C ; \ webserver\webroot\ Bạn vào thư mục tạo thêm thư mục DictApp để chứa chương trình ứng dụng Đường dẫn đầy đủ C ; \ webserver\webroot\ DictApp Đường dẫn URL tương ứng http://172.16.11.12 / DictApp/ (Hoặc http://172.0.0.1 /DictApp/ bạn thử nghiem máy cục ) 1/8 Trình mồi nạp ứng dụng từ xa Dưới đay mà mã nguồn lớp cài đặt máy chủ : Ví dụ : Dictionary Java Import Java.rmi.*; /*Lớp giao tiếp đặc tả phương thức đối tương Dictionary*/ Public interface Dictionnary extends Remote { Public string FindWord (String KeyWord) throws RemoteException ; } Ví dụ :DictionaryImplJava Inport Java.rmi,*; /*Lóp cài dặt đối tượng Dictionary*/ Public Class DictionaryImpl Impl implements Dictionary { String woodlist [ ] ; //Danh sách từ cần tra String meaning [ ]; // Danh sách chứa ý nghĩa tương ứng từ Public DictionaryImpl () { wordlist = new String [ ] ; Meaning = new String [ ] ; //Khởi tạo danh sách từ điển Wordlist [ ] =”one ” ; meaning [ ] = “mot”; Wordlist [ ] =”two ” ; meaning [ ] = “ hai”; Wordlist [ ] =”three ” ; meaning [ ] = “ba”; // … Thêm liệu vào danh sách bạn xây dựng từ điển thật } // Phương thức triệu gọi từ xa để tra từ Public string findword (String Keyword ) throws RemoteException{ 2/8 Trình mồi nạp ứng dụng từ xa For ( int i=0 ; i Java - Djava.rmi.server.codebase = “http://127.0.0.1 /DictApp / Dictionary Server ” Quá trình chuẩn bị phía máy chủ hoàn tất Bạn gọi chương trình DictionaryClient \ DictApp>java DictionaryClient 5/8 Trình mồi nạp ứng dụng từ xa Để kiểm tra kết xuất Tuy nhiên DictionaryClient không nhằm chạy máy chủ Nó triệu gọi từ máy khách xa Có điểm bạn cần lưu ý DictionaryClient cài đặt giao tiếp Runnable.Vâng, giao tiếp cho phép bạn gọi phương thức Run() nhằm khởi động chương trình từ máy khách xa Cách thức triệu gọi DictionaryClient máy khách nhờ vào nạp RMIClassloader đề cập sau THIẾT KẾ CHƯƠNG TRÌNH GỌI ỨNG DỤNG PHÍA MÁY KHÁCH Trên máy khách bạn không cần lóp hỗ trợ Điều bạn cần biết địa URL trỏ đến nơI lớp ứng dụng DictionaryClient nằm máy chủ webserver Lưu mà nguồn ví dụ 2-46 dưoi vào thư mục Ví dụ : BootApp.java Import java.rmi.* ; Import java.rmi.server.* ; Public Class BootApp { Public static void main (String Args [ ] ) throws Exception { // Thiết lập lớp phòng vệ cho phía máy khách System setsecurityManager (new RMISecurityManager ()); //Nạp lớp ứng dụng DictionaryClient từ máy chủ Class ClientClass = RMIClassloader.loadClass(“http://172.16.11.12 / DictApp/ “,”DictionaryClient”); //Khởi tạo thể ứng dụng thông qua giao tiếp Runnable Runnable c = (Runnable) ClientClass.newInstance(); //Chạy ứng dụng máy khách c.run(); } Biên dịch chương trình : 6/8 Trình mồi nạp ứng dụng từ xa C:\ Testing >Javac bootApp.Java Triệu gọi ứng dụng : C:\ Testing>Java bootApp Thông thường bootApp dùng cho mục đích chung khởi động ứng dụng tù xa Java gọi chế chế mồi (BootStrap) Chương trình mồi viết tổng quát sau : Ví dụ :BootStrapApp.java Import java.rmi.*; Import java.rmi.server.* ; Public Class BootStrapApp { Puclic Static void main (String Args [ ]) throws Exxeption { IF ( Args Length!=2 ) { System.out.println(“Syntax”); System.out.println(“Java BootStrapApp < URL> < AppClassName>”); Return ; } // Thiết lập lớp phòng vệ cho phía máy khách System.SetsecurityManager( new RIMSecurityManager()); // Nạp lớp ứng dụng từ máy chủ Dictionary Class ClientClass = RMIClassloader.loadClass ( Args [ ] ,args [ 1]); // Khởi tạo thề ứng dụng thông qua giao tiếp Runnable Runnable c = (Runnable) ClientClass.newInstance(); //Chạy ứng dụng máy khách 7/8 Trình mồi nạp ứng dụng từ xa c.run(); } Bạn lên sử dụng BootStrapApp để gọi DictionaryClient từ xa sau: C:\ testing> java BootStrapApp http:// 127.0.0.1 /DictApp / DictionaryClient BootStrapApp cần tham số dòng lệnh Tham số thứ địa URL viêt hoa nơi lớp ứng dụng nạp giao thức http Tham số thứ tên lớp ứng dụng có yêu cầu lớp ứng dụng đặt máy chủ phảI cài đặt interface Runnable để BootStrapApp chuyển kiều gọi phương thức Run() giao tiếp khởi động đối tượng Tổng quát bạn đặt ứng dụng webserver máy chủ , chương trình mồi BootStrapApp gọi theo cú pháp sau : Java BootStrapApp < đường dãn URL > < Tên lớp ứng dụng > Đọc đến bạn hỏi thứ với Java “Nhiêu khê ” ? Thật , hôm bạn phai xây dựng ứng dụng lớn sử dụng ký thuật RMI vừa trình bày Java hoàn thiện đưa mô hình J2EE hiệu dễ dàng bao trùm tất khái niemj mà RMI cung cấp Tuy nhiên , J2EE xác dựa RMI thiết nghĩ năm vững ký thuật xử lý lập trình đối tượng với RMI bạn tự tin tiếp xúc với môi trường J2EE nghiên cưu phần cuối chương 8/8 ... ClientClass.newInstance(); //Chạy ứng dụng máy khách c.run(); } Biên dịch chương trình : 6/8 Trình mồi nạp ứng dụng từ xa C: Testing >Javac bootApp.Java Triệu gọi ứng dụng : C: Testing>Java bootApp... (Runnable) ClientClass.newInstance(); //Chạy ứng dụng máy khách 7/8 Trình mồi nạp ứng dụng từ xa c.run(); } Bạn lên sử dụng BootStrapApp để gọi DictionaryClient từ xa sau: C: testing> java BootStrapApp... danh sách bạn xây dựng từ điển thật } // Phương thức triệu gọi từ xa để tra từ Public string findword (String Keyword ) throws RemoteException{ 2/8 Trình mồi nạp ứng dụng từ xa For ( int i=0 ; i

Ngày đăng: 31/12/2015, 10:56

Mục lục

    Trình mồi nạp ứng dụng từ xa

    THIẾT KẾ CHƯƠNG TRÌNH TRÊN MÁY CHỦ

    THIẾT KẾ CHƯƠNG TRÌNH GỌI ỨNG DỤNG PHÍA MÁY KHÁCH

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan