Professional Documents
Culture Documents
CHUYÊN ĐỀ CORBA
GVHD: Phùng Hữu Phú
SVTH: Trương Nghĩa An – 50000017
Phạm Trần Ngọc Bảo – 50000123
Hồ Nguyên Đạt – 50000486
Đỗ Thanh Hải - 50000628
NỘI DUNG
CORBA
?
CORBA
? ? CORBA
IDL Java
module package
interface interface
string java.lang.String
long int
long long long
float float
double double
exception class
operation Method
VÍ DỤ
+ CORBA IDL:
module {
interface MathLibrary {
long add( in long x, in long y );
string About( in string version );
}
};
+ Java :
package Math;
public interface MathLibrary {
int add (int x, int y);
String About(String version);
}
NHẬN XÉT
ORB
Network
ORB
Java
Corba
Object
CƠ CHẾ HOẠT ĐỘNG
Java
C++
Corba
Client
Object
IIOP
ORB ORB
Client Server
GIAO THỨC IIOP
Giới thiệu
Mục đích
Ưu – khuyết điểm
Sử dụng
GIỚI THIỆU
MỤC ĐÍCH
Ưu điểm:
Client không cần biết interface cho các server
object
Cung cấp lựa chọn khi lấy kết quả trả về
Khuyết điểm
Chương trình phức tạp
Chi phí cao
Dễ gây ra lỗi
SỬ DỤNG
Tạo đối tượng Request
request()
create_request()
Đóng gói đối tượng request
add_value()
result()
Gọi phương thức
invoke()
send_deferred()
GỌI PHƯƠNG THỨC ĐỘNG
IDL
Trình
Cài đặt Đăng ký khách gọi
Friend.idl
FriendServant.java Setup.java Client.java
greeting() đối đối đối
tượng tượng tượng
CORBA - ORB VisiBroker
Giới thiệu
Trình môi giới trung gian
Giao tiếp giữa các đối tượng CORBA theo
giao thức IIOP
Do hãng Borland cài đặt
Download miễn phí tại:
http://www.borland.com/visibroker
CORBA - VISIBROKER
Server
POA
POA
ROOT POA
Servant Manager
ObjectID1
ObjectID2 Servants
ObjectID3
VisiBroker SỬ
– các điểm căn bản
DỤNG
Dịch file IDL
Idl2java XXX.idl
Biên dịch mã nguồn:
vbjc *.java
Khởi động trình ORB
osagent.exe
Chạy trình ứng dụng
vbj Client
vbj Server
CORBA SERVICE
Naming
Naming
Concurency
Control
Event
Object life
cycle
NAMING SERVICE
Toys
Object
Đối tượng B
NameContext
Fruit
Shelf
Object
Book C
Tạo NamingContext:
new_context()
New_bind_context(NameComponent[] path)
Hủy NamingContext:
Destroy()
Lấy về đối tượng NamingContext:
resolve_initial_references(ObjectId id)
Resolve(NameComponent[] path)
CÁC HÀM CƠ BẢN
THE END