1 / 36

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. 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. Giới thiệu CORBA CORBA và mô hình phân tán Phương thức động

justis
Download Presentation

THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNG 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

  2. NỘI DUNG • Giới thiệu CORBA • CORBA và mô hình phân tán • Phương thức động • Trình môi giới VisiBroker • CORBA services: Naming service • Chương trình ứng dụng (demo)

  3. GIỚI THIỆU VỀ CORBA Vấn đề phát sinh : • 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ữ nào thì chỉ có mã lệnh tương ứng của 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 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 ?

  4. GIỚI THIỆU C++ Bus Object Delphi Moto Object Java Passenger Object CORBA ? ? ? CORBA CORBA

  5. GIỚI THIỆU • 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ố truyền, trị trả về… • 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 nhau. • CORBA là ngôn ngữ đặc tả (description language)

  6. IDL • CORBA còn được gọi là ngôn ngữ đặc tả giao tiếp (IDL – Interface Description Language) • Mô tả chức năng của đối tượng thông qua 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 • Đặc tả đối tượng dựa trên khái niệm interface trong Java.

  7. VÍ DỤ VỀ IDL • Đặc tả đối tượng Calculator bằng ngôn ngữ IDL của CORBA • Tạo file Calculator.idl interface Calculator { long addNumber ( in long x, in long y ); }; • Để 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: • idl2cpp Calculator.idl // chuyển sang C++ • idlj Calculator.idl // chuyển sang java

  8. VÍ DỤ VỀ IDL • Kết quả là chúng ta có được tập tin CalculatorOperations.java như sau: public interface CalculatorOperations { int addNumber(int x, int y); } // interface CalculatorOperations • Bước cài đặt hàm addNumber() là do lập trình viên thực hiện. • CORBA chỉ giúp triệu gọi hàm addNumber() từ đối tượng CalculatorOperations.

  9. ÁNH XẠ TỪ IDL SANG JAVA IDL Java module package interface interface string java.lang.String long int long long long float float double double exception class operation Method

  10. 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); }

  11. 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 incho 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

  12. 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 • Giao thức IIOP (Interoperate Internet Object Protocol)

  13. 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 (transparent) đối với lập trình viên và người sử dụng.

  14. ORB (Object Request Broker)

  15. CƠ CHẾ HOẠT ĐỘNG

  16. GIAO THỨC IIOP • Được định nghĩa dựa trên TCP/IP. • Cho phép các ORB của 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.

  17. PHƯƠNG THỨC ĐỘNG • Giới thiệu • Mục đích • Ưu – khuyết điểm • Sử dụng

  18. GIỚI THIỆU

  19. 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

  20. ƯU - KHUYẾT ĐIỂM • Ư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

  21. 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()

  22. GỌI PHƯƠNG THỨC ĐỘNG

  23. 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

  24. CORBA - VISIBROKER

  25. SỬ DỤNG VisiBroker – các điểm căn bản • 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

  26. CORBA SERVICE • Tương tác giữa các đối tượng phân bố

  27. CORBA SERVICES CORBA SERVICES Naming Object life cycle Event Concurency Control Naming Transaction Trader Query Object Request Broker

  28. NAMING SERVICE • Là dịch vụ cho phép truy xuất đến các đối tượng phân bố thông qua tên. • Được định nghĩa trong CosNaming.idl

  29. COSNAMING • Gồm có 2 interface chủ yếu • NamingComponent • NamingContext • Lưu trữ đối tượng theo kiến trúc cây phân cấp.

  30. 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ỳ.

  31. 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.

  32. MÔ HÌNH LƯU TRỮ ĐỐI TƯỢNG Market Object A Tên ràng buộc của đối tượng Stock Toys Object B Đối tượng được ràng buộc Đối tượng NameContext Fruit Shelf Object C Book Panel Đối tượng NameComponent

  33. CÁC HÀM CƠ BẢN • 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)

  34. CÁC HÀM CƠ BẢN • Tạo một bind • Bind(NameComponent[] path, Object obj) • Bind_context(NameComponent[] path, NameContext nc) • Rebind(NameComponent[] path, Object obj) • Hủy một bind • Unbind(NameComponent[] path) • Liệt kê các binding trong một context • List(NameContext nc, BindingList bl, BindingIterator bt)

  35. 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

  36. THE END THE END

More Related