Khoa CNTT và truyền thông - Đại Học CNTT
CORBA Java Implementation thangld@uit.edu.vn Khoa Mạng máy tính Truyền thông Đại học Công nghệ Thông tin Nội dung Tổng quan RMI vs CORBA Kiến trúc CORBA Qui trình CORBA CORBA Java Ứng dụng CORBA Phần đọc thêm Tổng quan [1] CORBA, phát triển OMG (Object Management Group), cho phép tích hợp đối tượng thực thi hệ thống khác (www.omg.org) CORBA cung cấp tảng sở lý thuyết cho phép đối tượng truy xuất từ xa qua mạng máy tính Tổng quan [2] Mục tiêu CORBA cho phép triệu gọi phương thức đối tượng thực thi máy tính khác Một ứng dụng thực thi máy tính A triệu gọi phương thức đối tượng thực thi máy tính B Phương thức triệu gọi thực thi máy tính B, đó, sử dụng tài nguyên (CPU, RAM, …) máy tính B Ứng dụng máy tính A phải chờ phương thức hồn tất q trình thực thi để nhận kết trả Triệu gọi phương thức từ xa CORBA Client Method 1.1 CORBA Object Server Method 2.1 CORBA Client CORBA Object Method 2.2 Nguyên tắc Triệu gọi phương thức từ xa Interface Interface Implementation Local Object Implementation RMI / CORBA Local Object Các Object khác Máy B Máy A Triệu gọi phương thức cục Các Object khác Máy A CORBA & IDL CORBA không phụ thuộc vào ngôn ngữ lập trình, platform CORBA sử dụng ngơn ngữ định nghĩa interface độc lập (IDL – Interface Definition Language) Từ khóa in sử dụng cho biến vào Từ khóa out sử dụng cho biến Dựa IDL interface, phát sinh mã lệnh sử dụng client-side serverside phù hợp với ngơn ngữ lập trình cụ thể RMI vs CORBA RMI cung cấp công cụ hỗ trợ chế gọn nhẹ Java để Java-Object tương tác với qua mạng Tất tích hợp JDK CORBA đặc tả kiến trúc tích hợp đối tượng phân tán mạng Các nhà sản xuất (CORBA) phải cung cấp công cụ, thư viện lập trình khác tương ứng với tảng ngôn ngữ khác Sun cung cấp cài đặt Java cho CORBA JDK CORBA khơng tương thích với RMI Kiến trúc CORBA GIOP: General Inter-ORB Protocol IIOP: Internet Inter-ORB Protocol DII: Dynamic Invocation Interface DSI: Dynamic Skeleton Interface Kiến trúc CORBA Các đối tượng CORBA hệ thống khác triệu gọi thông qua ORB ORB hoạt động dựa vào IDL; dựa IDL, ORB biết cách thức gọi phương thức đối tượng: tên phương thức, tham số, giá trị trả ORB hoàn toàn suốt người sử dụng (lập trình viên) Data Type Mapping to Java IDL Java module package interface interface string, wstring java.lang.String void void boolean boolean char, wchar char octet byte short / unsigned short short long / unsigned long int long long / unsigned long long long float float double double fixed java.math.BigDecimal - Tham khảo “IDL to JavaTM Language Mapping Specification” Ứng dụng CORBA Cài đặt ứng dụng thực phép toán (cộng, trừ, nhân, chia) theo kiến trúc CORBA Các thành phần: IDL interface Đối tượng phục vụ CORBA Chương trình Server Chương trình Client IDL Interface Khai báo CORBA IDL module Khai báo Interface Khai báo phương thức Ví dụ Calculations.idl module Calculations { interface iCalculator { long long add(in long long long sub(in long long long mul(in long long long div(in long }; }; x, x, x, x, in in in in long long long long y); y); y); y); Biên dịch IDL Thực thi chương trình tiện ích idlj.exe idlj –fall Calculations.idl Sau biên dịch IDL, ta có: iCalculatorPOA.java: skeleton đối tượng CORBA iCalculator.java: Java-interface sử dụng chương trình Client Server iCalculatorOperations.java: chứa khai báo cho phương thức đặc tả IDL interface iCalculatorHelper.java, iCalculatorHolder.java: lớp tiện ích sử dụng ứng dụng CORBA _iCalculatorStub.java: stub, client sử dụng để giao tiếp với server-side skeleton Cài đặt lớp đối tượng CORBA Lớp đối tượng phải kế thừa lớp iCalculatorPOA vừa tạo Cài đặt tất phương thức có interface iCalculatorOperations Ví dụ CalculatorImpl.java import calculations.iCalculatorPOA; public class CalculatorImpl extends iCalculatorPOA { private ORB orb; public long add(int x, int x) { return x + y; } } ...Nội dung Tổng quan RMI vs CORBA Kiến trúc CORBA Qui trình CORBA CORBA Java Ứng dụng CORBA Phần đọc thêm Tổng quan [1] CORBA, phát triển OMG (Object Management Group),... từ xa CORBA Client Method 1.1 CORBA Object Server Method 2.1 CORBA Client CORBA Object Method 2.2 Nguyên tắc Triệu gọi phương thức từ xa Interface Interface Implementation Local Object Implementation. .. RMI vs CORBA RMI cung cấp công cụ hỗ trợ chế gọn nhẹ Java để Java- Object tương tác với qua mạng Tất tích hợp JDK CORBA đặc tả kiến trúc tích hợp đối tượng phân tán mạng Các nhà sản xuất (CORBA)