Lưu địa chỉ tham chiếu của đối tượng corba ở dạng chuỗi

4 138 0
Lưu địa chỉ tham chiếu của đối tượng corba ở dạng chuỗi

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

Thông tin tài liệu

Lưu địa tham chiếu đối tượng Corba dạng chuỗi Lưu địa tham chiếu đối tượng Corba dạng chuỗi Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nếu bạn cảm thấy dich vụ COS Naming Corba phức tạp cách truy xuất khác dễ dàng mà không cần dung đến COS Naming Corba cho phép bạn chuyển đổi tham chiếu đối tượng máy chủ thành chuỗi (String) Bạn lưu chuỗi thành tập tin chuyển đến trình khách Trình khách đọc nội dung chuỗi sau khôi phục chuỗi trở lại thành tham chiếu đối tượng Kỹ thuật Corba gọi Stringified Để ví dụ sử dụng lại đối tượng Generic mục trước Chương trình Setup.java sau không dùng đến dịch vụ COS Naming Corba mà hoạt Ví dụ 6.1:Setup.Java import org.omg.Corba.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import java.io.*; public class Setup{ public static void main(String args[]) throws Exception{ System.out.println(“Corba Stringified Demo”); //Khởi tạo trình môi giới ORB 1/4 Lưu địa tham chiếu đối tượng Corba dạng chuỗi ORB orb=ORB.init(args,null) //tạo đối tượng Corba GenericServant servant=new GenericServant(“My Generic Object”); //Kết nối đối tượng đến Corba với trình môi giới ORB orb.connect(servant); //Nhờ trình ORB chuyển tham chiếu đói tượng thành kiểu chuỗi String genericRef=orb.object_to_string(servant); //Tạo tập tin để lưu chuỗi FileOutputStream f=new FileOutputStream(“t.tmp”); ObjectOutputStream outstream=new ObjectOutputStream(f); outputstream writeObject(genericRef); System.out.println(“Already save reference to file”); System.out.println(Wait for client request …”); //Chờ kết nối từ phía máy khách java.lang.Object obj=new java.lang.Object(); synchronized (obj) { obj wait(); } } } Như bạn thấy,sau tạo đối tượng Corba Generic,chương trình gọi phương thức object_to_string() yêu cầu ORB chuyển địa tham chiếu đối tượng dạng chuỗi.Sau ta mở tệp tin t.tmp để lưu nội dung chuỗi xuống file.Bởi kiểu String 2/4 Lưu địa tham chiếu đối tượng Corba dạng chuỗi mang đặc tính Serialiable(tuần tự hoá)nên khôi phạu lại từ máy khác,nó giữ nguyên nội dung tham chiếu đối tượng trước lưu Bạn chuyển tập tin t.tmp xuống máy khách.Trên máy khách tham chiếu gọi đối tượng Generic sau: Ví dụ 6.2 Client.Java import org.omg.Corba.*; import org.omg.CosNaming.*; import java.io.*; public class Client { public static void main(String args []) thr ows Exception { //Khởi tạo trình môi giới ORB ORB orb= ORB.init(args ,null); //Mở file đọc nội dung tập tin t.tmp FileInputStream f=new FileInputStream(“t.tmp”); ObjectInp utStream instream=ne w ObjectInputSteam(f); // Đọc đối tượng chuỗi chứa tập tin String genericRef=(String) instream.readObject(); //Nhờ ORB chuyển đổi chuỗi trở tham chiếu đối tượng Corba org.omg.C ORBA.Object o= orb.string_to_object(genericRef); //Chuyển đổi kiểu đối tượng Corba trở tham chiếu cụ thể Generic generic= GenericHelper.narrow(0); //Gọi phương thức đối tượng Corba System.out.println(generic.getName()); 3/4 Lưu địa tham chiếu đối tượng Corba dạng chuỗi } } Cách tham chiếu kỹ thuật Corba xem tiện lợi đơn giản tham chiếu dịch vụ COSNaming.Tuy nhiên tập tin t.tmp có giá trị chương trình Setup chưa chấm dứt Nghĩa vòng lặp chờ synchronized(obj) { obj.wait(); } chưa thoát Nếu bạn chấm dứt chương trình Setup chạy lại nội dung t.tmp thay đổi bạn phải gửi lại tập tin phía máy khách để cập nhật Đối với dịch vụ COS Naming Corba vậy, ràng buộc tên cho đối tượng bạn buộc phải trì hoạt động liên tục hai phía Nếu trình đăng ký đối tượng (hoặc trình quản lý tên tnameserv exe) chấm dứt tham chiếu máy khách từ xa đến đối tượng trở nêm hiệu lực Chú ý: Kỹ thuật lưu tham chiếu đối tượng thành kiểu chuỗi (stringnified) cách tiện lợi mà Corba cung cấp để lập trình viên tìm gọi đối tượng lúc nơi không cần phải nhờ đến dịch vụ phức tạp khác COS Naming Trong Corba kỹ thuật gọi IOR (Interoperable Object) 4/4 ... kiểu đối tượng Corba trở tham chiếu cụ thể Generic generic= GenericHelper.narrow(0); //Gọi phương thức đối tượng Corba System.out.println(generic.getName()); 3/4 Lưu địa tham chiếu đối tượng Corba. . .Lưu địa tham chiếu đối tượng Corba dạng chuỗi ORB orb=ORB.init(args,null) //tạo đối tượng Corba GenericServant servant=new GenericServant(“My Generic Object”); //Kết nối đối tượng đến Corba. .. kiểu String 2/4 Lưu địa tham chiếu đối tượng Corba dạng chuỗi mang đặc tính Serialiable(tuần tự hoá)nên khôi phạu lại từ máy khác,nó giữ nguyên nội dung tham chiếu đối tượng trước lưu Bạn chuyển

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

Từ khóa liên quan

Mục lục

  • Lưu địa chỉ tham chiếu của đối tượng Corba ở dạng chuỗi

  • Ví dụ 6.1:Setup.Java

  • Ví dụ 6.2 Client.Java

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

Tài liệu liên quan