Danh mục

Bài giảng Công nghệ lập trình tích hợp: Chương 8 - TS. Nguyễn Quang Uy

Số trang: 42      Loại file: pdf      Dung lượng: 132.05 KB      Lượt xem: 13      Lượt tải: 0    
tailieu_vip

Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Công nghệ lập trình tích hợp: Chương 8 Lập trình phân tán – CORBA, cung cấp cho người đọc những kiến thức như: Cơ bản về Corba; Cấu trúc của IDL; Cài đặt IDL; Sử dụng đối tượng factory; Đối tượng Persistence; RMI-IIOP;... Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Công nghệ lập trình tích hợp: Chương 8 - TS. Nguyễn Quang Uy Chương 8 Lập trình phân tán – CORBA 1 Mục lục chương • 1. Cơ bản về Corba • 2. Cấu trúc của IDL • 3. Cài đặt IDL • 4. Sử dụng đối tượng factory • 5. Đối tượng Persistence • 6. RMI-IIOP 2 Cơ bản về Corba • Mặc dù RMI là một phương pháp mạnh mẽ cho lập trình phân tán, nó có một nhược điểm quan trọng: – Nó chỉ làm việc với các đối tượng được tạo ra bằng Java • Điều này là không thực tế trong môi trường đa ngôn ngữ hiện nay • Một phương pháp phổ quát hơn cho việc phát triển các ứng dụng phân tán đó là corba (Common Object Request Broker Architecture) • Corba cho phép các server có thể được viết bằng bất kỳ ngôn ngữ nào và được sử dụng bởi client viết bằng nhiều ngôn ngữ khác nhau 3 Cơ bản về Corba • Corba là một sản phẩn của OMG (Object Management Group), một tổ chức gồm hơn 800 công ty nhằm phát triển công nghệ dựa trên đối tượng. • Phiên bản đầu tiên của Corba ra đời năm 1991, và phiên bản hiện tại (2008) là 3.0 • Corba không phải là một cài đặt cụ thể mà là một đặc tả cho việc cài đặt và sử dụng các đối tượng phân tán 4 Cơ bản về Corba • Một cài đặt cụ thể của corba bao gộm một ORB (Object Request Broker). • Trên thị trường hiện có nhiều ORB. Một trong những ORB là Java IDL. • CORBA ORB sử dụng Internet Inter-Orb Protocol (IIOB) dựa trên TCP/IP để giao tiếp giữa các nhà sản xuất khác nhau với nhau 5 Cơ bản về Corba • Một điểm khác biệt nữa giữa corba và RMI là trong khi RMI sử dụng Java để định nghĩa các giao diện của đối tượng, corba sử dụng một ngôn ngữ đặc biệt là Interface Definition Language (IDL). • Để cho các ORB cung cấp truy cập đến các đối tượng trong một ngôn ngữ cụ thể, ORB phải cung cấp một ánh xạ đến ngôn ngữ đích. • Các ngôn ngữ được hộ trợ bao gồm: Java, C++, C, Smalltalk, COBOL and Ada. 6 Cơ bản về Corba • Ở phía client, có một stub code cho mỗi một phương thức được gọi ở xa. Stub này hoạt động như là một proxy cho các phương thức ở xa. • Ở phía server có một skeleton hoạt động như là một proxy cho các phương thức được gọi, nó sẽ truyển tất cả các lợi gọi phương thức và các tham số thành một định dạng được cài đặt cụ thể 7 Cấu trúc hoạt động của Corba Client và server cùng ORB 8 Cấu trúc hoạt động của Corba Client và server khác ORB 9 Cấu trúc của đặc tả Java IDL • Java IDL bao gồm một phiên bản của IDL và ánh xạ từ IDL vào java • IDL hỗ trợ cấu trúc lớp phân tầng. – Ở gốc là lớp object, tuy nhiên lớp này không giống lớp object cua java – Đối tượng này được xác định bằng tên org.omg.CORBA.Object 10 Cấu trúc của đặc tả Java IDL • Một đặc tả IDL được chứa trong một file có phần mở rộng là .idl • Cấu trúc trong file đó là một module và được khai báo với từ khóa module. Một module Sales có thể được khai báo như sau: – module Sales –{ – ...................; – ...................; – ...................; – }; 11 Cấu trúc của đặc tả Java IDL • Bên trong model sẽ có một hoặc nhiều khai bao giao diện • Bên trong mỗi giao diện là các khai báo về dữ liệu theo cú pháp: – attribute ; – Ví dụ: – attribute long total; – Theo mặc định các thuộc tính này sẽ là read and write và sẽ được ánh xạ tới một cặp phương thức get and set khi các giao diện này được biên dịch 12 Cấu trúc của đặc tả Java IDL • Tuy nhiên các phương thức này sẽ không được đặt tên là get and set mà sẽ được đặt cùng tên như là tên thuộc tính. • Điểm khác biệt là phương thức set thì sẽ có thêm tham số còn phương thức get thì không có tham số. Ví dụ: – int total(); //Accessor. – void total(int i); //Mutator. 13 Cấu trúc của đặc tả Java IDL • Nếu chúng ta muốn các thuộc tính này chỉ đọc thì ta thêm từ khóa readonly ở phía trước. Ví dụ: – readonly attribute long total; – Bảng các kiểu dữ liệu hỗ trợ bởi IDL ở slide sau 14 Các kiểu dữ liệu trong IDL 15 Cấu trúc của đặc tả Java IDL • Các tham số cũng có các kiểu như là các thuộc tính. • Ngoài ra các tham số sẽ có từ khoa phía trước là in nếu là tham số vào, out cho tham số ra và inout cho tham số vào/ra 16 Cấu trúc của đặc tả Java IDL • Ví dụ về tham số • module Sales • { • interface StockItem • { • readonly attribute string code; • attribute long currentLevel; • long addStock(in long incNumber); • long removeStock(in long decNumber); • }; • interface ..... • { • ...................; • ...................; • }; • ........(Etc.)...... • ........(Etc.)...... • }; 17 Cấu trúc của đặc tả Java IDL • Nếu chỉ có một giao tiếp được tạo ra, ta có thể bỏ qua cấu trúc module • Cùng với các kiểu dữ liệu nguyên thủy, có 6 kiểu dữ liệu cấu trúc trong IDL bao gồm: – enum, struct, union, exception, sequence and array. 18 Cấu trúc của đặc tả Java IDL • Ngoại lệ trong IDL: – Trong IDL có hai kiểu ngoại lệ đó là: Ngoại lệ hệ thống và ngoại lệ do người dùng định nghĩa. – Ngoại lệ hệ thống là ngoại lệ unchecked trong khi ...

Tài liệu được xem nhiều: