1. Trang chủ
  2. » Công Nghệ Thông Tin

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

4 139 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 89,03 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lưu địa chỉ tham chiếu của đố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 của Corba quá phức tạp thì vẫn còn cách truy xuất khác dễ dàng

Trang 1

Lưu địa chỉ tham chiếu của đố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 của Corba quá phức tạp thì vẫn còn cách truy xuất khác dễ dàng hơn mà không cần dung đến COS Naming

Corba cho phép bạn chuyển đổi tham chiếu của một đối tượng trên máy chủ thành một chuỗi (String) Bạn lưu chuỗi này thành tập tin và chuyển đến trình khách Trình khách đọc nội dung của chuỗi sau đó khôi phục chuỗi trở lại thành tham chiếu của đối tượng

Kỹ thuật này trong Corba gọi là Stringified

Để ví dụ chúng ta sử dụng lại đối tượng Generic ở mục trước Chương trình Setup.java sau đây không dùng đến dịch vụ COS Naming của Corba mà vẫn có thể hoạt được

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

Trang 2

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 của đó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 khi tạo ra đố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 chỉ tham chiếu của đối tượng về dạng chuỗi.Sau đó ta mở tệp tin t.tmp để lưu nội dung chuỗi xuống file.Bởi vì kiểu String

Trang 3

mang đặc tính Serialiable(tuần tự hoá)nên nếu được khôi phạu lại từ một máy khác,nó

sẽ giữ nguyên nội dung của tham chiếu đối tượng trước khi lưu

Bạn chuyển tập tin t.tmp xuống máy khách.Trên máy khách sẽ tham chiếu và gọi đối tượng Generic như 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 trong tập tin

String genericRef=(String) instream.readObject();

//Nhờ ORB chuyển đổi chuỗi trở về tham chiếu của đố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ở về tham chiếu cụ thể

Generic generic= GenericHelper.narrow(0);

//Gọi phương thức của đối tượng Corba

System.out.println(generic.getName());

Trang 4

}

Cách tham chiếu bằng kỹ thuật này trong Corba xem ra tiện lợi và đơn giản hơn tham chiếu bằng dịch vụ COSNaming.Tuy nhiên tập tin t.tmp chỉ có giá trị khi chương trình Setup chưa chấm dứt Nghĩa là vòng lặp chờ

synchronized(obj) {

obj.wait();

}

vẫn chưa thoát ra Nếu bạn chấm dứt chương trình Setup và chạy lại thì nội dung của t.tmp sẽ thay đổi và bạn phải gửi lại tập tin này về phía máy khách để cập nhật Đối với dịch vụ COS Naming của Corba cũng vậy, một khi đã ràng buộc tên cho đối tượng bạn buộc phải duy trì sự hoạt động liên tục của 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 thì tham chiếu của máy khách từ xa đến đối tượng cũng sẽ trở nêm mất hiệu lực

Chú ý: Kỹ thuật lưu tham chiếu của đối tượng thành kiểu chuỗi (stringnified) là một trong những cách khá tiện lợi mà Corba cung cấp để các lập trình viên có thể tìm ra

và gọi được đối tượng mọi lúc mọi nơi không cần phải nhờ đến các dịch vụ phức tạp khác như COS Naming Trong Corba kỹ thuật này còn được gọi là IOR (Interoperable Object).

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w