Giới thiệu chuẩn COM/DCOM

Một phần của tài liệu He_thong_dieu_khien_phan_tan (Trang 41 - 42)

1: op () broker_A broker_B

6.4 Giới thiệu chuẩn COM/DCOM

COM (Component Object Model) là một mơ hình đối tượng thành phần, một mơ hình cơ sở cho nhiều công nghệ phần mềm quan trọng của hãng Microsoft. COM định nghĩa chuẩn nhị phân và đặc tả kết nối cho việc tương tác giữa các thành phần của một phần mềm với một thành phần khác trên cùng một q trình tính tốn, trên nhiều q trình khác nhau hay trên các máy tính riêng biệt. Hãng Microsoft cũng hy vọng một ngày không xa COM cũng được sử dụng phổ biến trên các nền phần cứng và hệ điều hành khác nhau.

COM là một mơ hình lập trình cơ sở ₫ối tượng thiết kế để nâng cao sự tương tác giữa các thành phần phần mềm, nghĩa là, cho phép hai hoặc nhiều ứng dụng hay các thành phần dễ dàng giao tiếp với nhau cho dù chúng được viết bởi nhiều người khác nhau trong những khoảng thời gian khác nhau, bằng nhiều ngôn ngữ lập trình khác nhau thậm chí chạy trên các máy tính khác nhau, khơng hay cài đặt cùng một hệ điều hành. Để thực hiện điều này, COM định nghĩa và thực thi các kỹ thuật cho phép các ứng dụng kết nối với nhau như các ₫ối tượng phần mềm.

Nói cách khác, COM đưa ra một mơ hình tương tác mà qua đó một khách hàng (client) có thể kết nối với các nhà cung cấp dịch vụ (object) đó một cách thuận tiện. Với COM, các ứng dụng kết nối với nhau và với hệ thống qua các tập hợp của các lời gọi hàm - xem như là các phương thức hay những hàm thành viên, còn gọi là giao diện.

Theo cách tư duy COM, một giao diện là một “quy ước” kiểu mạnh giữa các thành phần phần mềm nhằm cung cấp những liên quan dù nhỏ nhưng hữu dụng tập các thao tác liên quan danh nghĩa. Một đối tượng được định nghĩa phù hợp với COM là một sự thể hiện đặc biệt của đối tượng. Một đối tượng COM giống như một đối tượng C++ nhưng khác ở chỗ một client không truy nhập trực tiếp vào đối tượng COM mà sẽ qua các giao diện mà đối tượng cung cấp.

Object Request Broker Core Dynamic Invocation IDL Stubs ORB Interface Static IDL Skeleton Dynamic

Skeleton AdapterObject Client Object Implementation

© 2005, Hồng Minh Sơn

6.4.1 Giao diện

Cách duy nhất để truy cập dữ liệu hoặc tác động lên một đối tượng COM là thơng qua giao diện của nó. Một giao diện thực chất là một nhóm các hàm có sẵn liên quan với nhau. Có thể so sánh một giao diện với một lớp cơ sở trừu tượng chỉ gồm các hàm thuần ảo trong ngôn ngữ C++. Giao diện định nghĩa cú pháp các hàm thành viên, gọi là các phương thức (methods), kiểu trả về, số lượng và các kiểu tham số. Một giao diện không qui định cụ thể các phương thức đó được thực hiện như thế nào. Thực chất việc thể hiện giao diện là sử dụng con trỏ truy nhập vào một mảng các con trỏ khác và các con trỏ này trỏ tới các hàm của giao diện.

Thông thường, tên của giao diện được bắt đầu bằng chữ cái I, ví dụ như IUnknown, IData... Định danh thật của giao diện thể hiện ở chỉ danh GUID của nó, cịn tên chỉ để thuận tiện cho việc lập trình và hệ thống COM sẽ sử dụng các chỉ danh này khi thao tác trên giao diện.

Thêm vào đó, khi giao diện có tên hoặc kiểu cụ thể và tên của các hàm thành viên, nó chỉ định nghĩa làm thế nào một client có thể sử dụng giao diện đó và những đáp ứng mong đợi từ đối tượng qua giao diện đó. Ví dụ, giao diện IStack với hai hàm thành viên PUSH và POP chỉ định nghĩa những thông số và kiểu trả về của hai hàm này và những gì chúng được mong đợi thực hiện từ client.

Có thể nói, giao diện là phương tiện để đối tượng đưa ra những dịch vụ của nó. Có bốn điểm quan trọng về giao diện mà ta cần biết:

Một giao diện không phải là một lớp theo định nghĩa lớp thơng thường bởi

một lớp có thể được thể hiện qua một đối tượng cịn một giao diện thì khơng bởi nó khơng kèm theo sự thực thi.

Một giao diện không phải là một ₫ối tượng bởi một giao diện chỉ đơn thuần

là một nhóm các hàm liên quan và là chuẩn nhị phân mà qua đó client và object có thể giao tiếp với nhau. Cịn đối tượng thì có thể thực thi trên nhiều ngơn ngữ với nhiều thể hiện của trạng thái bên trong, và do đó nó có thể cung cấp con trỏ đến các hàm thành viên của giao diện.

Giao diện có kiểu mạnh: Mỗi một giao diện đều có một định danh riêng nên ngăn chặn được khả năng xung đột có thể xảy ra đối với các tên ta đặt cho giao diện. Điều này tăng thêm tính bền vững cho chương trình. • Các giao diện ₫ược phân biệt rõ ràng: Mọi sự thay đổi như thêm hoặc xoá

hàm thành viên, thay đổi ngữ nghĩa đều dẫn tới hình thành một giao diện mới và được gán một định danh mới. Do đó giao diện mới và cũ không thể xung đột với nhau cho dù mọi sự thay đổi chỉ đơn thuần là về ngữ nghĩa.

Một phần của tài liệu He_thong_dieu_khien_phan_tan (Trang 41 - 42)

Tải bản đầy đủ (PDF)

(106 trang)