Hình 9.24 (trang 531)

Một phần của tài liệu PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN (Trang 62 - 63)

Tất nhiên phương pháp này cản trở viêc sử lý. Bằng cách khác cần hiểu rằng thực tế tất cả các ứng dụng của DCOM sẽ được chạy trên môi trường Windows, những vấn đề còn lại cần được mở rộng những thiếu sót.

9.2.2. Truyền thông

Như là CORBA, truyền thông trong DCOM chỉ được khởi tạo đồng bộ, một đối tượng máy khách sẽ là một khối cho tới khi nhận được câu trả lời. Sự dẫn chứng đồng thời vẫn là mặc định. Tuy nhiên, một biểu mẫu khác của dẫn chứng được cung cấp bởi DCOM.

Mô hình đối tượng phân tán

Như đã nói, dẫn chứng đồng bộ của các đối tượng là mặc định trong DCOM. Nếu một vài bộ phận bị sai, đó là điều dễ dàng có thể trong môi trường hệ phân tán, máy khách có thể nhận lại đoạn mã sai. Bản thân DCOM sẽ không cố gắng đưa lại đối tượng dẫn chứng.

Một trong những phần mở rộng tới dẫn chứng đồng bộ hoàn toàn được đề nghị bởi gọi lại giao diện. Gọi lại giao diện được cung cấp bởi các đối tượng kết nối, nó là các đối tượng đặc biệt của DCOM có thể dùng con trỏ để gọi lại giao diện như là thực thi trên máy khách. Một đối tượng kết nối chỉ rõ giao diện gọi lại nó được mong đợi rằng các máy khách sẽ thực thi. Khi một máy khách che các đối tượng kết nối, nó phải cung cấp con trỏ để gọi lại giao diện. Khi một đối tượng kết nối từ một host ở xa, rằng giao diện con trỏ cần được thu thập và gửi đến máy này.

Cùng với sự giới thiệu về COM+ và sự tích hợp nó vào trong Windows 2000, các mô hình dẫn chứng khác được cung cấp tốt hơn. Mỗi khi mà chuỗi A bắt đầu một dẫn chứng đồng thời, một đối tượng huỷ bỏ sẽ được tạo ra và thực thi phương thức

Bài giảng COP – Chuyên ngành: CNPM - Version 1

Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 63

huỷ bỏ. Phương thức này có thể được gọi bởi một chuỗi thứ hai, bằng cách đó định dạng của chuỗi A như là một tham biến. Sự ảnh hưởng rằng chuỗi A sẽ bị bỏ chế độ khoá ngay lập tức, với không có sự hi vọng nào của việc nhận sự đáp ứng từ diễn giải.

Lời gọi đồng bộ cũng được hỗ trợ và phù hợp với mô hình thăm dò của CORBA cho phương thức diễn giải đồng bộ. Thực tế, cách tiếp cận bằng giới thiệu giao diện được hỗ trợ lời gọi đồng thời là rất tốt. Miêu tả về MIDL của giao diện như là sự bắt đầu con trỏ, phát sinh trình biên dịch MIDL, với mỗi phương thức m trong giao diện, có hai phương pháp rách rời: Begin_m và Finíh_m. Đầu tiên chỉ có nhập vào tham biến từ phương thức m và ngược lại phần thứ hai chứa phần xuất của tham biến.

Máy khách bắt đầu thu thập với Begin_m và tiếp tục. Hướng đối tượng, không có sự khác biệt giữa lợi gọi đồng bộ và không đồng bộ. Kết quả thu được là sự dẫn chứng từ các máy khách và bộ đệm cho tới khi máy khách gọi Finish_m.

Lời gọi đồng bộ trong DCOM yêu cầu rằng máy khách và đối tượng được chạy. Nói một cách khác, sự truyền thông là tạm thời. Sự truyền thông liên tục được hỗ trợ kiểu thông báo hàng đợi, chúng ta sẽ thảo luận ở phần dưới.

*Sự kiện

Các đối tượng kết nối được khởi tạo để thực thi sự kiện trong DCOM, nhưng nó yêu cầu cả máy khách và đối tượng phải hoạt động. Tuy nhiên điều có thể là để kết nối vài máy khách cho vài đối tượng kết nối, để đối tượng gọi lại các máy khách cùng lúc khi chúng muốn. Các đối tượng kết nối cung cấp khá đơn giản đẩy sự kiện đến vài máy chủ.

DCOM cung cấp thông qua COM+, một mô hình sự kiện khá phức tạp nó thích hợp hơn cho việc thực thi như hệ thống đẩy và thuê bao. Một sự kiện được mô hình hoá nghĩa là một gọi phương thức chỉ có nhập vào tham biến. Những sự kiện được nhóm vào một lớp sự kiện, nó được trình bày như một lớp đối tượng DCOM bình thường cùng với CLSID của nó. Không cần một sự thực thi tách rời nào cho lớp sự kiện: DCOM cung cấp các thực thi mặc định. Sau khi trình bày một lớp sự kiện vào một đối tượng , là phát sinh một sự kiện đơn giản bằng cách gọi một phương thức thích hợp cho đối tượng đó. Chú ý rằng bản thân một sự kiện không phải là đối tượng.

Thuê bao một sự kiện cũng có nghĩa là thẳng tiến. Cho rằng một sự kiện được trình bày bằng một phương thức sự kiện m (m_event). Một thuê bao sẽ cung cấp một thực thi cho phương thức đó. Để thuê bao, nó thông qua con trỏ để giao diện để thực thi phương thức đó trong hệ thống sự kiện. Bất cứ khi nào gọi m_event, hệ thống sự kiện sẽ quan tâm tới rằng phiên bản của mỗi m_event tại mỗi thuê bao được hiện. Như chúng ta thấy, cách tiếp cận này có nguyên tắc đẩy sự kiên giống như trong CORBA.

Một phần của tài liệu PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN (Trang 62 - 63)