Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
317,5 KB
Nội dung
THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNG
THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNG
CHUYÊN ĐỀ CORBA
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
NỘI DUNG
Giới thiệu CORBA
Giới thiệu CORBA
CORBA và mô hình phân tán
CORBA và mô hình phân tán
Phương thức động
Phương thức động
Trình môi giới VisiBroker
Trình môi giới VisiBroker
CORBA services: Naming service
CORBA services: Naming service
Chương trình ứng dụng (demo)
Chương trình ứng dụng (demo)
GIỚI THIỆU VỀ CORBA
GIỚI THIỆU VỀ CORBA
Vấn đề phát sinh :
Vấn đề phát sinh :
Các đối tượng trong ngôn ngữ lập trình
Các đối tượng trong ngôn ngữ lập trình
hướng đối tượng thiết kế bằng ngôn ngữ
hướng đối tượng thiết kế bằng ngôn ngữ
nào thì chỉ có mã lệnh tương ứng của
nào thì chỉ có mã lệnh tương ứng của
ngôn ngữ đó mới truy xuất được chúng.
ngôn ngữ đó mới truy xuất được chúng.
Làm sao các đối tượng được thiết kế bằng
Làm sao các đối tượng được thiết kế bằng
các ngôn ngữ lập trình khác nhau có thể
các ngôn ngữ lập trình khác nhau có thể
triệu gọi và sử dụng lẫn nhau ?
triệu gọi và sử dụng lẫn nhau ?
GIỚI THIỆU
GIỚI THIỆU
C++ Bus Object Delphi Moto Object
Java Passenger Object
? ?
?
CORBA
CORBA
CORBA
GIỚI THIỆU
GIỚI THIỆU
Các ngôn ngữ lập trình đều có các điểm
Các ngôn ngữ lập trình đều có các điểm
chung là các lời gọi hàm, thủ tục, tham số
chung là các lời gọi hàm, thủ tục, tham số
truyền, trị trả về…
truyền, trị trả về…
Ngôn ngữ đặc tả ánh xạ các điểm chung
Ngôn ngữ đặc tả ánh xạ các điểm chung
đó thành những ngôn ngữ lập trình khác
đó thành những ngôn ngữ lập trình khác
nhau.
nhau.
CORBA là ngôn ngữ đặc tả (description
CORBA là ngôn ngữ đặc tả (description
language)
language)
IDL
IDL
CORBA còn được gọi là ngôn ngữ đặc tả
CORBA còn được gọi là ngôn ngữ đặc tả
giao tiếp (IDL – Interface Description
giao tiếp (IDL – Interface Description
Language)
Language)
Mô tả chức năng của đối tượng thông qua
Mô tả chức năng của đối tượng thông qua
hàm, phương thức, thuộc tính…
hàm, phương thức, thuộc tính…
Không chứa bất kỳ cài đặt mã lệnh nào
Không chứa bất kỳ cài đặt mã lệnh nào
Đặc tả đối tượng dựa trên khái niệm
Đặc tả đối tượng dựa trên khái niệm
interface trong Java.
interface trong Java.
VÍ DỤ VỀ IDL
VÍ DỤ VỀ IDL
Đặc tả đối tượng Calculator bằng ngôn ngữ IDL
Đặc tả đối tượng Calculator bằng ngôn ngữ IDL
của CORBA
của CORBA
Tạo file Calculator.idl
Tạo file Calculator.idl
interface Calculator {
interface Calculator {
long addNumber ( in long x, in long y );
long addNumber ( in long x, in long y );
};
};
Để chuyển file đặc tả này sang các ngôn ngữ lập
Để chuyển file đặc tả này sang các ngôn ngữ lập
trình khác chúng ta có thể dùng như sau:
trình khác chúng ta có thể dùng như sau:
idl2cpp Calculator.idl // chuyển sang C++
idl2cpp Calculator.idl // chuyển sang C++
idlj Calculator.idl // chuyển sang java
idlj Calculator.idl // chuyển sang java
VÍ DỤ VỀ IDL
VÍ DỤ VỀ IDL
Kết quả là chúng ta có được tập tin
Kết quả là chúng ta có được tập tin
CalculatorOperations.java như sau:
CalculatorOperations.java như sau:
public interface CalculatorOperations
public interface CalculatorOperations
{
{
int addNumber(int x, int y);
int addNumber(int x, int y);
} // interface CalculatorOperations
} // interface CalculatorOperations
Bước cài đặt hàm addNumber() là do lập trình
Bước cài đặt hàm addNumber() là do lập trình
viên thực hiện.
viên thực hiện.
CORBA chỉ giúp triệu gọi hàm addNumber() từ
CORBA chỉ giúp triệu gọi hàm addNumber() từ
đối tượng CalculatorOperations.
đối tượng CalculatorOperations.
ÁNH XẠ TỪ IDL SANG JAVA
ÁNH XẠ TỪ IDL SANG JAVA
IDL
IDL
Java
Java
module
module
package
package
interface
interface
interface
interface
string
string
java.lang.String
java.lang.String
long
long
int
int
long long
long long
long
long
float
float
float
float
double
double
double
double
exception
exception
class
class
operation
operation
Method
Method
VÍ DỤ
VÍ DỤ
+ CORBA IDL:
+ CORBA IDL:
module {
module {
interface MathLibrary {
interface MathLibrary {
long add( in long x, in long y );
long add( in long x, in long y );
string About( in string version );
string About( in string version );
}
}
};
};
+ Java :
+ Java :
package Math;
package Math;
public interface MathLibrary {
public interface MathLibrary {
int add (int x, int y);
int add (int x, int y);
String About(String version);
String About(String version);
}
}
[...]...NHẬN XÉT Ngôn ngữ đặc tả trong mô hình CORBA gần giống với ngôn ngữ C CORBA đưa ra từ khóa in cho các biến truyền vào theo trị và từ khóa out để lấy trị trả về Những thay đổi mới nhất về CORBA có thể tìm thấy ở trang www.omg.org CORBA – MÔ HÌNH PHÂN TÁN Trình môi giới trung gian ORB (Object Request Broker) Cơ chế làm việc của ORB... request add_value() result() Gọi phương thức invoke() send_deferred() GỌI PHƯƠNG THỨC ĐỘ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 VisiBroker SỬ DỤNG căn bản – các điểm Dịch file IDL Biên dịch mã nguồn: ... – các điểm Dịch file IDL Biên dịch mã nguồn: vbjc *.java Khởi động trình ORB Idl2java XXX.idl osagent.exe Chạy trình ứng dụng vbj Client vbj Server CORBA SERVICE Tương tác giữa các đối tượng phân bố CORBA SERVICES CORBA SERVICES Query Query Object Request Broker Trader Trader Transaction Transaction Object life Object life cycle cycle Event Event Concurency Concurency Control Control... các ngôn ngữ khác nhau có thể giao tiếp với nhau Nhờ đó các đối tượng CORBA hiện thực bởi các ngôn ngữ khác nhau có thể giao tiếp với nhau PHƯƠNG THỨC ĐỘNG Giới thiệu Mục đích Ưu – khuyết điểm Sử dụng GIỚI THIỆU MỤC ĐÍCH Client phát hiện các interface runtime Phục vụ các ứng dụng không thể dùng cách gọi tĩnh Ví dụ: CORBA design tool ƯU - KHUYẾT ĐIỂM Ưu điểm: Client không cần biết interface... Unbind(NameComponent[] path) Liệt kê các binding trong một context List(NameContext nc, BindingList bl, BindingIterator bt) TÀI LIỆU THAM KHẢO Fundamental of distributed object system – the CORBA perspective Teach yourself CORBA in 14 days JAVA - Lập trình mạng www.omg.org www.borland.com/visibroker THE END THE END ... interface chủ yếu NamingComponent NamingContext Lưu trữ đối tượng theo kiến trúc cây phân cấp NamingComponent Là thành phần chứa tên (tên nhãn hoặc tên tập tin) Có thể ràng buộc tên với một đối tượng corba bất kỳ NamingContext Là đối tượng dùng để tham chiếu đến một NamingComponent hay một NamingContext khác Giống như thư mục trong hệ thống file Đặt tên dựa vào NamingComponent MÔ HÌNH LƯU TRỮ... (Interoperate Internet Object Protocol) ORB (Object Request Broker) Các đối tượng sau khi tạo ra bởi các ngôn ngữ lập trình khác nhau phải được gọi thông qua một chương trình môi giới trung gian của CORBA gọi là ORB ORB hoạt động nhờ ngôn ngữ đặc tả IDL Dựa vào IDL, ORB sẽ biết được tên phương thức cần gọi, đối số, trị trả về,…Từ đó ORB có thể gọi phương thức của đối tuợng ORB hoàn toàn trong suốt . TRÌNH MÔN HỌC LẬP TRÌNH MẠNG
THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNG
CHUYÊN ĐỀ CORBA
CHUYÊN ĐỀ CORBA
GVHD: Phùng Hữu Phú
SVTH: Trương Nghĩa An – 50000017
Phạm. Passenger Object
? ?
?
CORBA
CORBA
CORBA
GIỚI THIỆU
GIỚI THIỆU
Các ngôn ngữ lập trình đều có các điểm
Các ngôn ngữ lập trình đều có các điểm
chung