Mạng máy tính - Chuyên đề Corba

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)

 

ppt36 trang | Chia sẻ: Mr Hưng | Lượt xem: 895 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Mạng máy tính - Chuyên đề Corba, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
THUYẾT TRÌNH MÔN HỌC LẬP TRÌNH MẠNGCHUYÊN ĐỀ CORBAGVHD: 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 - 50000628NỘI DUNGGiới thiệu CORBACORBA và mô hình phân tánPhương thức động Trình môi giới VisiBrokerCORBA services: Naming serviceChương trình ứng dụng (demo)GIỚI THIỆU VỀ CORBAVấ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 ?GIỚI THIỆUC++ Bus ObjectDelphi Moto ObjectJava Passenger Object???CORBACORBACORBAGIỚI THIỆUCá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)IDLCORBA 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ínhKhô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.VÍ DỤ VỀ IDLĐặc tả đối tượng Calculator bằng ngôn ngữ IDL của CORBATạ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 javaVÍ DỤ VỀ IDLKế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 CalculatorOperationsBướ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.Á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 MethodVÍ 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ÉTNgô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.orgCORBA – MÔ HÌNH PHÂN TÁNTrình môi giới trung gian ORB (Object Request Broker)Cơ chế làm việc của ORBGiao thức IIOP (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 (transparent) đối với lập trình viên và người sử dụng.ORB (Object Request Broker)CƠ CHẾ HOẠT ĐỘNGGIAO 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. PHƯƠNG THỨC ĐỘNGGiới thiệuMục đíchƯu – khuyết điểmSử dụng GIỚI THIỆUMỤC ĐÍCHClient phát hiện các interface runtimePhục vụ các ứng dụng không thể dùng cách gọi tĩnhVí dụ: CORBA design toolƯU - KHUYẾT ĐIỂMƯu điểm:Client không cần biết interface cho các server objectCung cấp lựa chọn khi lấy kết quả trả vềKhuyết điểmChương trình phức tạpChi phí caoDễ gây ra lỗi Tạo đối tượng Requestrequest()create_request()Đóng gói đối tượng requestadd_value()result()Gọi phương thứcinvoke()send_deferred()SỬ DỤNG GỌI PHƯƠNG THỨC ĐỘNG Giới thiệuTrình môi giới trung gianGiao tiếp giữa các đối tượng CORBA theo giao thức IIOPDo hãng Borland cài đặtDownload miễn phí tại: - ORB VisiBroker CORBA - VISIBROKERVisiBroker – các điểm căn bảnDịch file IDLIdl2java XXX.idlBiên dịch mã nguồn:vbjc *.javaKhởi động trình ORBosagent.exeChạy trình ứng dụngvbj Clientvbj ServerSỬ DỤNGCORBA SERVICETương tác giữa các đối tượng phân bốCORBA SERVICESObject Request BrokerObject life cycleNamingEventConcurency ControlTraderTransactionQueryCORBA SERVICESNamingNAMING SERVICELà 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.idlCOSNAMINGGồm có 2 interface chủ yếuNamingComponentNamingContextLưu trữ đối tượng theo kiến trúc cây phân cấp.NamingComponentLà 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ỳ.NamingContextLà đố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Ữ ĐỐI TƯỢNGMarketStockToysFruitShelfBookPanelObject AObject BObject CĐối tượng NameContextĐối tượng được ràng buộcĐối tượng NameComponentTên ràng buộc của đối tượngCÁC HÀM CƠ BẢNTạ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ẢNTạo một bindBind(NameComponent[] path, Object obj) Bind_context(NameComponent[] path, NameContext nc) Rebind(NameComponent[] path, Object obj)Hủy một bindUnbind(NameComponent[] path) Liệt kê các binding trong một contextList(NameContext nc, BindingList bl, BindingIterator bt) TÀI LIỆU THAM KHẢO Fundamental of distributed object system – the CORBA perspectiveTeach yourself CORBA in 14 daysJAVA - Lập trình mạng.www.omg.orgwww.borland.com/visibrokerTHE ENDTHE END

Các file đính kèm theo tài liệu này:

  • pptcorba_3392.ppt
Tài liệu liên quan