Mô hình web hiện nay cho thấy thế mạnh của mô hình Client – ServerXu hướng tập trung giải quyết vấn đề mà nguồn lực là ServerCác phần mềm viết trên các ngôn ngữ khác nhauCó cách nào để có thể kết nối Client – Server trong khi mỗi máy triển khai trên một nền tảng ngôn ngữ khác nhau?
PHÁT TRIỂN PHẦN MỀM HƯỚNG CẤU PHẦN (Component – Oriented Programming) KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM Chương 4: COP & Corba Chương 4: COP & Corba Giới thiệu CORBA Kiến trúc CORBA Các thành phần CORBA Bắt đầu COP với HelloCORBA Các dịch vụ CORBA Các công cụ hỗ trợ CORBA Đặt vấn đề Đặt vấn đề Mô hình web hiện nay cho thấy thế mạnh của mô hình Client – Server Xu hướng tập trung giải quyết vấn đề mà nguồn lực là Server Các phần mềm viết trên các ngôn ngữ khác nhau Có cách nào để có thể kết nối Client – Server trong khi mỗi máy triển khai trên một nền tảng ngôn ngữ khác nhau? Đặt vấn đề Đặt vấn đề C++ Bus Object Delphi Moto Object Java Passenger Object ? ? ? CORBA CORBA CORBA Common Object Request Broker Architecture Được tạo ra bởi công ty Được tạo ra bởi công ty Object Management Group (OMG), có liên quan tới khoảng trên 800 công ty khác nhau. Corba trợ giúp quá trình đặc tả các thành phần. Corba trợ giúp quá trình đặc tả các thành phần. Corba hỗ trợ tốt cho các ứng dụng chạy trên mô Corba hỗ trợ tốt cho các ứng dụng chạy trên mô hình Client – Server. hình Client – Server. Với đặc tả Corba, các phần mềm chạy trên server và Client có thể triển khai với nền tảng ngôn ngữ lập trình khác nhau: Java, C++, Delphi… Giới thiệu CORBA Giới thiệu CORBA Ra đời năm 1991. Đáp ứng nhu cầu xây dựng các mô hình đối tượng phân tán. Bao gồm 2 thành phần cơ bản: IDL + API IDL = Interface Definition Language API trợ giúp việc gọi hàm từ xa trong mô hình phân tán. Hỗ trợ BOA (Basic Object Adapter) CORBA 1.0 CORBA 1.0 Ra đời năm 1996. Thay thế BOA bằng POA (Portable Object Adapter – Bộ điều khiển đối tượng di động) Hỗ trợ giao thức Internet Inter-ORB Protocol (IIOP) Cho chép ánh xạ từ IDL sang C, Java, Delphi… Các công ty phần mềm lớn chú ý và hỗ trợ kĩ thuật: + SUN hỗ trợ công cụ: IDLJ – IDLtoJava + Microsoft hỗ trợ công cụ DCOM – Sau này được thay thế bởi Dotnet Framework. CORBA 2.0 CORBA 2.0 Là phiên bản cuối cùng của CORBA Chính thức hỗ trợ kiến trúc hướng thành phần Tích hợp CCM (CORBA Component Model) OpenCCM, MicoCCM, and EJB 3.0 là những công cụ giúp triển khai các thành phần với CORBA. OpenCCM sẽ được giới thiệu trong phần sau. CORBA 3.0 CORBA 3.0 Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Object Request Braher (ORB) Object Adapter (OA) Stub and Skeleton Interface Repository (IR) and Implementation Repository IR Object References (OR) Interface Definition Language (IDL) and Language Mapping [...]... đặt mọi tham số (là object) và truyền lên máy chủ Skeleton trên máy chủ sẽ giải mã đối tượng này và xử lý Một quá trình ngược lại với quá trình trên, dữ liệu được trả về cho máy trạm Kiên trúc hiện nay chỉ còn lại Stub Interface Repository (IR) & Implementation Repository IR Được hiểu là kho dữ liệu giao diện và kho triển khai IR bao gồm: Thông tin kiểu dữ liệu, phương thức và các tham số được... thực thi biên dịch IDL sang mã Java IDL sẽ được giới thiệu ở phần sau Bắt đầu CORBA với HelloCORBA 1 2 3 4 5 6 Các bước tiến hành: Tạo file hello.idl, định nghĩa giao diện chung Biên dịch IDL thành file Java, C++ Viết lại các thành phần Server và Client kế thừa các Interface Biên dịch file Java, C++ thành các chương trình chạy trên Server và Client Chạy dịch vụ trên Server Chạy ứng dụng trên Client... -ORBInitialPort 1050 Thực thi HelloServer với các tham số: + Port: 1050 + Server IP: Localhost Lệnh trong Command” java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost 5 Chạy dịch vụ trên Server 5 Chạy ứng dụng trên Client Thực hiện lệnh trong Command: java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost IDL Expamle Các dịch vụ của CORBA CORBA SERVICES Query Query Object Request... Object Adapter (OA) Bộ điều khiển các đối tượng Chịu trách nhiệm nạp các thành phần cho máy chủ OA gọi các hàm, tạo lập kích hoạt đối tượng thực thi và hủy bỏ chúng OA có 2 dạng là BOA và POA BOA có ở phiên bản 1, được thay thế POA ở phiên bản 2 Stub and Skeleton Được hiểu như là phụ tá của máy chủ và máy trạm Stub và Skeleton sẽ có nhiệm vụ trao đổi dữ liệu cho nhau Khi máy trạm có... Client gửi một yêu cầu gọi một hàm trên Server Kết quả lời gọi hàm hiển thị trên Client 1 Tạo file hello.idl Có thể soạn thảo file IDL bằng công cụ soạn thảo bất kì: notepad, wordpad Với NetBean: + Download: jbi 4corba- 0.7.1-netbeans-plugin + Menu – Tools – Plugin – Addnew + Chọn các file được giải nén từ file download + Từ cửa sổ Project, chọn một project bấm chuột phải và chọn new IDL File 1 Tạo... lớp có trong các thành phần và các đối tượng Object References (OR) Đối tượng tham chiếu Là một đối tượng thành phần của CORBA OR chứa vị trí, chỉ số (id) của những đối tượng yêu cầu Máy trạm cần phải lấy được danh sách các OR Khi cần thực hiện lời gọi hàm, máy trạm sẽ tìm tới OR của phương thức tương ứng Interface Definition Language (IDL) Ngôn ngữ định nghĩa giao diện Cho phép định nghĩa... Client & Server HelloServant.java 3 Component Client & Server HelloServer.java 3 Component Client & Server HelloClient.java 4 Biên dịch các file Java Thư mục HelloApp được sinh ra thực thi IDLJ Với Option –fall, HelloApp chứa 6 file java Copy thư mục HelloApp sang ổ D: Copy 3 file: HelloServer.java, HelloClient.java, HelloServant.java sang ổ D: Start – Run: gõ “cmd” để vào Command Đặt... dịch, ta được mã java: package HelloApp; public interface Hello { String sayHello (); void shutdown (); } Tuy nhiên đây chỉ là kết quả ta mong đợi 2 Biên dịch IDL sang Java Thực tế khi biên dịch, trình biên dịch IDLC không chỉ tạo ra một file java Kết quả tạo ra khác nhau khi ta đưa các Option khác nhau -fall: _HelloStub, Hello, HelloHelper, HelloHolder, HelloOperations, HelloPOA -fserver: Hello, . MỀM Chương 4: COP & Corba Chương 4: COP & Corba Giới thiệu CORBA Kiến trúc CORBA Các thành phần CORBA Bắt đầu COP với HelloCORBA Các dịch vụ CORBA Các công cụ hỗ trợ CORBA Đặt vấn đề Đặt. các thành phần với CORBA. OpenCCM sẽ được giới thiệu trong phần sau. CORBA 3.0 CORBA 3.0 Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Kiến trúc cơ bản CORBA Object. – Server. Với đặc tả Corba, các phần mềm chạy trên server và Client có thể triển khai với nền tảng ngôn ngữ lập trình khác nhau: Java, C++, Delphi… Giới thiệu CORBA Giới thiệu CORBA Ra đời