1. Trang chủ
  2. » Giáo án - Bài giảng

Bai thuc hanh lap trinh phan tan

13 417 1

Đ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

Nội dung

- 1- MỤC LỤC Bài LẬP TRÌNH PHÂN TÁN ĐỐI TƯỢNG JAVA RMI 1.1 Chương trình RMI Hello 1.1.1 Cài đặt lớp giao diện HelloInterface.java 1.1.2 Cài đặt lớp thực HelloImpl.java 1.1.3 Cài đặt chương trình Server : HelloServer.java 1.1.4 Cài đặt chương trình Client : HelloClient java 1.1.5 Biên dịch chương trình 1.2 Chương trình RMI truy xuất sở liệu từ xa 1.2.1 Xây dựng sở liệu 1.2.2 Xây dựng lớp DBServerInterface.java 1.2.3 Xây dựng lớp DBServerImpl.java 1.2.4 Xây dựng lớp DBServer.java 1.2.5 Xây dựng lớp DBClient.java 1.3 Chương trình minh họa kỹ thuật gọi ngược (callback) RMI 1.3.1 Xây dựng lớp AtServerInterface.java 1.3.2 Xây dựng lớp AtServerImpl.java 1.3.3 Xây dựng chương trình AtClientInterface.java 1.3.4 Xây dựng chương trình AtClientImpl.java 1.3.5 Xây dựng chương trình Server.java 1.3.6 Chương trình Client.java Bài LẬP TRÌNH PHÂN TÁN ĐỐI TƯỢNG CORBA 11 2.1 Chương trình CORBA Hello 11 2.1.1 Bước : Đặc tả đối tượng ngôn ngữ CORBA IDL 11 2.1.2 Bước : Xây dựng đối tượng Hello ngôn ngữ Java 11 2.1.3 Bước : Cài đặt đối tượng CORBA Hello 11 2.1.4 Bước : Xây dựng chương trình Server 11 2.1.5 Bước : Xây dựng chương trình Client 12 2.1.6 Chạy chương trình 13 Bộ môn Mạng, Khoa CNTT - 2005 - 2- Bài 1.1 LẬP TRÌNH PHÂN TÁN ĐỐI TƯỢNG JAVA RMI Chương trình RMI Hello - Xây dựng chương trình JavaRMI, client gởi yêu cầu add(x,y), sub(x,y) đến Server Server thực trả kết cho client 1.1.1 Cài đặt lớp giao diện HelloInterface.java /* Buoc : Dac ta giao tiep cho lop doi tuong o xa */ import java.rmi.*; public interface HelloInterface extends java.rmi.Remote { public String sayHello() throws java.rmi.RemoteException; public int addItem(int x, int y) throws java.rmi.RemoteException; public int subItem(int x, int y) throws java.rmi.RemoteException; }//class 1.1.2 Cài đặt lớp thực HelloImpl.java - Cài đặt chi tiết phương thức mô tả lớp giao diện /* Buoc : Cai dat chi tiet phuong thuc tu xa */ import java.rmi.*; public class HelloImpl implements HelloInterface { public String sayHello() throws java.rmi.RemoteException { System.out.println("Client da su dung phuong thuc cua Server"); return "Hello World"; }//sayHello() public int addItem(int x, int y) throws java.rmi.RemoteException { return (x+y); }//addItem() public int subItem(int x, int y) throws java.rmi.RemoteException { return (x-y); }//subItem() }//class 1.1.3 Cài đặt chương trình Server : HelloServer.java /* Buoc : Khoi tao doi tuong giao tiep tren may chu */ import java.rmi.*; import java.rmi.server.*; public class HelloServer { public static void main (String args[]) throws java.lang.Exception { //Kien tao doi tuong try { //Kien tao doi tuong HelloImpl obj = new HelloImpl(); Bộ môn Mạng, Khoa CNTT - 2005 - 3//Khai bao doi tuong voi may ao JVM java.rmi.server.UnicastRemoteObject.exportObject(obj); System.out.println("* Dang ky doi tuong"); java.rmi.Naming.bind("rmi://127.0.0.1/HelloImpl",obj); System.out.println("* Dang ky doi tuong cho phep truy xuat tu xa : HelloImpl"); System.out.println("* Cho Client truy xuat "); }catch (java.lang.Exception ex){System.out.println(ex);} }//main }//class Chú ý : gộp chương trình HelloRMIServer.java HelloImplement.java vào chương trình phức tạp 1.1.4 Cài đặt chương trình Client : HelloClient java /* Buoc : Chuong trinh goi doi tuong tu xa */ import java.rmi.*; public class HelloClient { public static void main (String[] args) { int x = 5; int y = 3; try { //Tim tham chieu cua doi tuong System.out.println("Dang tim doi tuong "); HelloInterface obj=(HelloInterface)java.rmi.Naming.lookup("rmi://"+ args[0] +"/HelloImpl"); //Trieu goi cac phuong thuc xu ly cua doi tuong tu xa System.out.println(obj.sayHello()); System.out.println("* Tong = " + obj.addItem(x,y)); System.out.println("* Hieu = " + obj.subItem(x,y)); } catch (java.lang.Exception ex){System.out.println(ex); } } 1.1.5 Biên dịch chương trình • Tập tin Compiler ECHO OFF Echo Echo CHUONG TRINH COMPILE Echo Path=C:\jdk1.4\bin Echo -Dich cac tap tin *.java del *.class javac *.java Echo -Tao tap tin trung gian _Stub va _Skel cho doi tuong rmic HelloImplement Pause Bộ môn Mạng, Khoa CNTT - 2005 } - 4- • Tập tin Client.bat ECHO OFF Echo Echo CHUONG TRINH RMI CLIENT Echo Path=C:\jdk1.4\bin set CLASSPATH=.;%CLASSPATH%; java HelloRMIClient 127.0.0.1 Pause • Tập tin Server.bat ECHO OFF Echo Echo CHUONG TRINH RMI SERVER Echo Path=C:\jdk1.4\bin set CLASSPATH=.;%CLASSPATH%; Echo -Chay chuong trinh RMIRegistry rmiregistry Echo -Chay chuong trinh Server dang ky doi tuong java HelloRMIServer 127.0.0.1 Pause • Tổ chức chương trình CLIENT SERVER HelloRMIClient.class HelloRMIServer.class HelloInterface.class HelloImplement_SKEL.class HelloImplement_STUB.class • Thứ tự chạy chương trình : Compiler.bat Serber.bat Client.bat Bộ môn Mạng, Khoa CNTT - 2005 - 5- 1.2 Chương trình RMI truy xuất sở liệu từ xa 1.2.1 Xây dựng sở liệu 1.2.2 Xây dựng lớp DBServerInterface.java import java.rmi.*; public interface DBServerInterface extends Remote { public String queryDataBase() throws RemoteException; } 1.2.3 Xây dựng lớp DBServerImpl.java import java.sql.*; import java.rmi.*; import java.io.*; public class DBServerImpl implements DBServerInterface { public DBServerImpl() { } // -public String queryDataBase() throws RemoteException { return accessDB(); } // -public String accessDB() { String stResult=" "; Bộ môn Mạng, Khoa CNTT - 2005 - 6try { //init database Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection connection = DriverManager.getConnection("jdbc:odbc:TAIKHOAN"); Statement statement= connection.createStatement(); boolean hasResult = statement.execute("SELECT * FROM USER"); if (hasResult) { ResultSet rs= statement.getResultSet(); if (rs != null) stResult= formatResult(rs); } else System.out.println("Khong tim duoc CSDL"); connection.close(); } catch(Exception ex) { System.out.println(ex.toString()); } return stResult; } // -public String formatResult(ResultSet r) throws SQLException { ResultSetMetaData rmeta= r.getMetaData(); int numColumns = rmeta.getColumnCount(); String text=" "; for(int i=1;i[...]... java.lang.Object obj = new java.lang.Object(); / /Thuc hien lap vo tan - cho nhan yeu cau tu client synchronized (obj){ obj.wait(); } }//main }//class 2.1.5 Bước 5 : Xây dựng chương trình Client • File Client.java import org.omg.CORBA.*; import org.omg.CosNaming.*; public class Client{ public static void main(String args[]) throws java.lang.Exception{ //Khoi dong trinh moi gioi ORB org.omg.CORBA.ORB orb=org.omg.CORBA.ORB.init(args,null);... CORBA Hello Object"); // Create and initialize the ORB org.omg.CORBA.ORB orb=org.omg.CORBA.ORB.init(args,null); // Tao doi tuong CORBA HelloImpl corba= new HelloImpl(); // Ket noi doi tuong CORBA voi trinh moi gioi ORB orb.connect(corba); // Get the root naming context org.omg.CORBA.Object nameService = orb.resolve_initial_references("NameService"); NamingContext nsContext =NamingContextHelper.narrow(nameService);

Ngày đăng: 26/06/2016, 21:44

TỪ KHÓA LIÊN QUAN

w