Distributed Object_based systems-He Phan tan

9.1 Corba:

Chúng ta bắt đầu buổi học về các hệ phân tán hướng đối tượng bằng việcs nói chuyện về Common Object Request Broker Architecture (kiến trúc đối tượng chung yêu cầu trung gian), gọi tắt là CORBA. Như cái tên của nó, CORBA không phải là một hệ thống phân tán chính thống, nhưng phần nào cũng có các đặc điểm của một hệ phân tán. Các đặc điểm này được vẽ lên bởi nhóm quản lý đối tượng OMG (object management group), một tổ chức phi lợi nhuận với trên 800 thành viên, chủ yếu là từ ngành công nghiệp. Mục đích quan trọng của OMG đối với CORBA là định nghĩa một hệ phân tán có thể khắc phục nhiều vấn đề về liên thao tác hoá khi tích hợp với các ứng dụng mạng. Các chức năng đầu tiên của CORBA xuất hiện đầu tiên vào những năm 1990. Hiện nay, sự thi hành của CORBA ở phiên bản 2.4 đã được phát triển rộng rãi, trong khi CORBA phiên bản 3 đầu tiên đang sẵn sàng.

Giống như các hệ thống khác, các kết quả thu được đều phải qua quá trình làm việc trong các uỷ ban, CORBA có nhiều các đặc trưng và các tính năng. Các đặc điểm cốt lõi được nói đến phải trên 700 trang và những cái khác là 1,200 dành để nói về các dịch vụ khác nhau được xây dựng trên nền các đặc điểm cốt lõi đó. Và như một điều tự nhiên, mỗi sự thi hành của CORBA là có sự mở rộng của chính nó vì luôn có vài thứ mà mỗi một nhà cung cấp cảm thấy có thể không được bỏ lỡ nhưng lại không được bao gồm trong các đặc điểm. CORBA minh hoạ trở lại việc tạo ra một hệ phân tán đơn giản , có thể đó là một bài tập hơi khó.

Theo những dòng trang, chúng ta sẽ không thảo luận tất cả các vấn đề mà corba có, chỉ tập trung một số phần thật cần thiết như một hệ phân tán và những cái tiêu biểu đối với các hệ phân tán hướng đối tượng khác. Các đặc điểm của CORBA có thể được tìm thấy tại trang web http:// www.omg.org OMG, 2001.

9.1.1 Tổng quan về corba:

Kiến trúc bao trùm của CORBA trung thành với mô hình tham chiếu của nhóm OMG. Mô hình tham chiếu này, như hình 9.1, bao gồm 4 nhóm phần tử kiến trúc nối kết với cái gọi là ORB (Object Request Broker). ORB tạo nên cốt lõi của bất cứ hệ phân tán nào của Corba; nó chịu trách nhiệm cấp quyền liên lạc giữa các đối tượng và các máy khách của các đối tượng trong khi che giấu các vấn đề có liên quan tới sự phân tán và không đồng nhất. Trong nhiều hệ thống, ORB được thi hành như các thư viện được liên kết với một máy khách và một ứng dụng chủ, và cung cấp các dịch vụ truyền thông cơ bản. Chúng ta sẽ trở lại ORB khi thảo luận mô hình đối tượng Corba.

Hình 9-1: Kiến trúc bao trùm của Corba

Ngoài ra, các đối tượng được xây dựng nên như một phần của các ứng dụng cụ thể, mô hình tham chiếu cũng khác biệt với những gì mà ta biết về các tiện nghi của Corba. Các tiện nghi được khởi dựng như là các thành phần của các dịch vụ của Corba và được tách thành 2 nhóm khác nhau. Các tiện nghi ngang gồm có các dịch vụ cấp độ cao cho các mục đích chung mà các dịch vụ này là các vùng ứng dụng độc lập. Hiện tại, các dịch vụ như vậy bao gồm giao diện người dùng, quản lý thông tin, quản lý hệ thống, và quản lý các tác vụ (thường để định nghĩa các hệ thống dòng công việc). Các tiện nghi dọc gồm có các dịch vụ cấp cao được chèn vào cùng ứng dụng cụ thể như thương mại điện tử, ngân hàng, sản xuất, ...

Chúng ta sẽ không thảo luận các đối tượng ứng dụng và các tiện nghi của Corba một cách chi tiết, nhưng thường quan tâm hơn vào các dịch vụ cơ bản và ORB.

Mô hình đối tượng:

orba sử dụng mô hình đối tượng từ xa mà chúng ta đã mô tả trong chương 2. Trong mô hình này, sự thi hành của một đối tượng cư trú trong khoảng không gian địa chỉ của một máy chủ. Thật là thú vị khi nhận thấy rằng các chi tiết kỹ thuật của Corba không bao giờ ở trạng thái dứt khoát mà các đối tượng sẽ chỉ được thi hành như các đối tượng từ xa. Tuy nhiên, hầu như tất cả hệ thống của Corba chỉ hỗ trợ mô hình này. Thêm vào đó, các đặc điểm kỹ thuật thường đề nghị các đối tượng phân tán trong Corba phải thật sự là các đối tượng từ xa. Sau đó, khi thảo luận về mô hình đối tượng Globe, chúng ta chỉ ra cách thức một mô hình khác hoàn toàn của một đối tượng có thể, về nguyên lý, cũng được hỗ trợ tốt như Corba.

Các đối tượng và các dịch vụ được định rõ trong Ngôn ngữ định nghĩa giao diện Corba (Interface Definition Language IDL). Corba IDL tương tự như các ngôn ngữ định nghĩa giao diện khác trong đó nó cung cấp một cú pháp nghiêm ngặt cho các phương thức biểu diễn và các tham số. Không thể mô tả ngữ nghĩa trong Corba IDL. Một giao diện là một bộ các phương thức và các đối tượng định rõ các giao diện nào mà chúng thi hành.

Các chi tiết kỹ thuật giao diện chỉ có thể đựơc cung cấp bởi IDL. Như những gì mà ta sẽ thấy sau đây, trong các hệ thống như Distributed COM và Globe, các giao diện được định rõ tại mức thấp ở dạng các bảng. Chúng được gọi là giao diện nhị phân là bởi sự độc lập bản chất của bất kỳ ngôn ngữ lập trình nào. Tuy nhiên trong Corba, thật là cần thiết khi cung cấp các luật rút trích liên quan tới bản đồ các chi tiết kỹ thuật của IDL tới các ngôn ngữ lập trình có sẵn. Hiện tại, các luật như thế đã được cung cấp cho một số ngôn ngữ, bao gồm cả C, C++, Java, Smalltalk, Ada, và COBOL.

Căn cứ vào việc Corba được tổ chức như một bộ các máy khách và các đối tượng chủ, sự tổ chức tổng quát của một hệ thống Corba được trình bày trong hình 9-2.

Hình 9 - 2: tổ chức tổng quát của một hệ thống Corba

Dưới bất kỳ quy trình nào trong Corba, có là khách hay chủ đều là ORB. ORB có thể được xem tốt nhất trong hệ thống thời gian thực mà ở đó việc điều khiển truyền thông cơ bản giữa một khách và một đối tượng là đáng tin cậy. Việc truyền thông cơ bản này đảm bảo rằng một lời gọi được gửi đến chủ của các đối tượng và sự trả lời được thông qua quay trở lại khách.

Từ hình phối cảnh của một quá trình, ORB chỉ cung cấp một vài các dịch vụ. Một trong các dịch vụ này đang điều khiển các đối tượng tham chiếu. Các tham chiếu như thế thường phụ thuộc một phần vào ORB. Một ORB vì thế sẽ cung cấp các thao tác để kiểm soát hay không kiểm soát các đối tượng tham chiếu, cũng như các thao tác cho việc so sánh các tham chiếu. Các đối tượng tham chiếu được thảo luận chi tiết hơn phần sau.

ORB còn cung cấp các thao tác khác để xử lý việc tìm kiếm các dịch vụ có ảnh hưởng đến quá trình lúc khởi đầu. Tổng thể, nó cung cấp một cách thức để thu được một tham chiếu ban đầu tới một đối tượng đang thi hành một dịch vụ cụ thể của Corba. Ví dụ, để sử dụng dịch vụ đặt tên, một quá trình cần biết cách thức để tham chiếu tới dịch vụ đó. Các mặt khởi tạo đó áp dụng tốt tương tự cho các dịch vụ khác.

Ngoài giao diện ORB ra, các máy khách và máy chủ nhận ra rằng mọi thứ của ORB thật là cứng nhắc. Thay vào đó chúng chỉ thường thấy các mẩu cho việc điều khiển các lời gọi phương thức cho các đối tượng cụ thể. Một ứng dụng khách thường có một sự uỷ quyền có sẵn để thi hành một giao diện giống nhau cho mọi đối tượng mà nó đang sử dụng. Như những gì mà chúng ta đã thảo luận ở chương 2, một sự uỷ quyền là một mẩu client - side chỉ đơn thuần kiểm soát một lời gọi yêu cầu và gửi các yêu cầu đó tới máy chủ. Một sự đáp trả từ máy chủ là không bị kiểm soát và quay lại máy khách.

Chú ý rằng giao diện giữa một sự uỷ quyền và ORB không phải chuẩn hoá. Vì Corba thừa nhận tất cả các giao diện được đưa ra bởi IDL, sự thi hành của Corba cung cấp một trình biên dịch IDL tới các bộ phát triển để tạo ra các mã cần thiết điều khiển quá trình liên lạc giữa máy khách và máy chủ ORB.

Tuy nhiên, có các lý do mà các giao diện được định nghĩa tĩnh, đơn giản là nó không ảnh hưởng tới máy khách. Thay vào đó, trong suốt quá trình chạy, điều cần thiết là tìm ra giao diện cho một đối tượng cụ thể trông như thế nào và sau đó đưa ra lời gọi yêu cầu cho đối tượng đó. Vì mục đích này, Corba cung cấp một giao diện lời gọi động (Dynamic Invocation interface DII) cho các máy khách để cho phép chúng khởi dựng một lời gọi yêu cầu tại thời gian chạy. Về thực chất, DII cung cấp một lời gọi thao tác chung để lấy được một đối tượng tham chiếu, một phương thức định danh và một danh sách các giá trị vào đóng vai trò là các tham số và trả về kết quả là một danh sách các biến xuất được cung cấp bởi người gọi.

Các đối tượng chủ được tổ chức theo cách thức mà chúng ta đã thảo luận ở chương 3. Như đã chỉ ra ở hình 9-2, một hệ thống Corba cung cấp một bộ điều hợp đối tượng để quản lý việc xúc tiến các yêu cầu đến đúng đối tượng. Việc không kiểm soát trong thực tế tại server side được thực hiện bằng các mẩu, được gọi là bộ khung trong Corba, nhưng cũng là hợp lý khi đối tượng thi hành không cần quan tâm đến việc kiểm soát. Trong trường hợp các client, các mẩu server - side có thể cũng được dịch tĩnh từ kỹ thuật IDL hay sẵn có trong bộ khung động chung. Khi sử dụng bộ khung động, một đối tượng sẽ phải cung cấp một sự thi hành đúng lời gọi hàm như được cung cấp tới một client. Chúng ta sẽ trở lại các đối tượng chủ phần sau.

Kho giao diện và kho thi hành:

Để cho phép các khởi dựng động của các lời gọi yêu cầu, quan trọng là một quá trình trong suốt thời gian chạy có thể tìm ra một giao diện trông như thế nào. Corba cung cấp một kho giao diện, là nơi lưu trữ các định nghĩa giao diện. Trong nhiều hệ thống, kho giao diện được thi hành bằng cách một quá trình riêng biệt cung cấp một chuẩn giao diện để lưu trữ và truy lục các định nghĩa giao diện. Một kho giao diện có thể cũng được xem xét như là một bộ phận của Corba để trợ giúp trong thời gian chạy và thuộc loại các tiện ích kiểm tra.

Bất cứ khi nào một định nghĩa giao diện được dịch, trình biên dịch IDL gán một định danh kho cho giao diện đó. Định danh kho này là một phương tiện cơ bản để truy lục một định nghĩa giao diện từ trong kho. Mặc định, định danh được lấy từ tên của giao diện và phương thức của nó, ngụ ý rằng không có sự đảm bảo nào được đưa ra đối với tính độc nhất của nó. Nếu tính duy nhất được yêu cầu, mặc định có thể bị xoá bỏ.

Dựa trên việc tất cả các định nghĩa giao diện đều được lưu trữ trong một kho giao diện trung thành với cấu trúc IDL, mỗi định nghĩa có thể được tổ chức theo một cách chuẩn. (Trong thuật ngữ cơ sở dữ liệu, điều đó có nghĩa là giản đồ khái niệm kết hợp với một kho giao diện là như nhau cho mọi kho). Như một hệ quả, các kho giao diện trong các hệ thống Corba đều cung cấp các thao tác như nhau cho công việc tìm ra các định nghĩa giao diện.

Ngoài kho giao diện ra, hệ thống Corba cũng cung cấp một kho thi hành. Một kho thi hành hàm chứa tất cả những gì cần thiết cho việc thi hành và kích hoạt các đối tượng. Vì tính năng như thế có quan hệ mật thiết với chính ORB và với hệ điều hành, do vậy thật là khó để cung cấp một chuẩn thi hành.

Một kho thi hành kết hợp chặt chẽ với việc tổ chức và thi hành của các đối tượng chủ. Như những gì mà chúng ta đã thảo luận ở chương 3, một bộ điều hợp đối tượng có trách nhiệm kích hoạt một đối tượng bằng cách bảo đảm rằng nó đang chạy trong không gian địa chỉ của một máy chủ để các các phương thức của nó có thể được gọi. Dựa trên một đối tượng tham chiếu, một bộ điều hợp có thể liên hệ với một kho thi hành để tìm ra một cách chính xác những gì cần được làm.

Ví dụ, một kho thi hành có thể duy trì một bảng cụ thể mà một máy chủ mới sẽ được bắt đầu và số cổng mà nó sẽ được lắng nghe cho đối tượng cụ thể. Hơn nữa, kho sẽ có thông tin về tập tin thực thi (nghĩa là chương trình nhị phân) mà máy chủ sẽ tải và thực hiện.

Luân phiên nhau, có lẽ là không cần thiết để bắt đầu một máy chủ khác riêng biệt, nhưng máy chủ hiện tại cần liên kết tới một thư viện cụ thể chứa phương thức và đối tượng được yêu cầu. Một lần nữa, các thông tin như trên thông thường sẽ được lưu trữ trong kho thi hành. Đó là hai ví dụ minh hoạ mà một kho thật sự được liên kết chặt chẽ với một ORB và platform khi nó đang thi hành.

Các dịch vụ của CORBA:

Một phần quan trọng của mô hình tham chiếu CORBA là do bộ các dịch vụ CORBA. Dịch vụ CORBA là một ý định tốt nhằm tạo ra các ứng dụng độc lập và cho các mục đích chung đối với những cái mà CORBA đang được sử dụng. Như vậy, các dịch vụ CORBA mạnh như các loại dịch vụ thông thường được cung cấp bởi các hệ điều hành. Có cả một danh sách các dịch vụ định rõ cho CORBA (hình 9-3). Không may là không phải lúc nào cũng có ranh giới rõ ràng giữa các dịch vụ khác nhau, chúng thường có các hàm chức năng chồng lên nhau. Bằng vài từ ngắn gọn, chúng ta hãy mô tả từng dịch vụ để sau đó chúng ta có thể so sánh các dịch vụ được cung cấp bởi Dcom và Globe.

Bộ dịch vụ cung cấp các phương tiện cho các nhóm đối tượng trong các danh sách, các hàng đợi, các ngăn xếp, các tập hợp, ... Phụ thuộc vào đặc điểm của nhóm mà có các cơ chế truy cập khác nhau. Ví dụ các danh sách có thể được duyệt elementwise thông qua việc tham chiếu tới một bộ lặp. Cũng có các tiện ích để chọn các đối tượng bằng cách chỉ rõ giá trị khoá. Theo cảm giác, bộ dịch vụ có thể sẽ đến gần với những gì được cung cấp bởi các lớp thư viện trong các ngôn ngữ lập trình hướng đối tượng.

Cũng có một dịch vụ truy vấn tách biệt cung cấp các phương tiện để khởi dựng các bộ đối tượng có thể được truy vấn bằng cách sử dụng một ngôn ngữ truy vấn khai báo. Một truy vấn có thể trả về một tham chiếu tới một đối tượng hay tới bộ các đối tượng. Dịch vụ truy vấn làm tăng thêm bộ dịch vụ với các câu truy vấn cao cấp. Nó khác so với bộ dịch vụ mà trong đó cái sau cung cấp nhiều loại các bộ.

Cũng có một dịch vụ kiểm soát trùng hợp. Nó cung cấp các cơ chế khoá cao cấp bằng cách mỗi máy khách có thể truy cập các đối tượng chia sẻ. Dịch vụ này có thể được sử dụng cho các giao tác thi hành được cung cấp bởi một dịch vụ riêng biệt. Dịch vụ giao tác cho phép một client định nghĩa một chuỗi các lời gọi phương thức thông qua các đối tượng bội trong một giao tác đơn. Dịch vụ hỗ trợ các giao tác phẳng và lồng nhau.

Thông thường, các máy khách gọi các phương thức trên các đối tượng và chờ kết quả của lời gọi đó. Để hỗ trợ việc truyền không đồng bộ, CORBA hỗ trợ dịch vụ sự kiện bằng cách mỗi máy khách và mỗi đối tượng có thể bị ngắt vào lúc xảy ra một sự kiện cụ thể. Các tiện ích cấp cao cho việc truyền không đồng bộ được cung cấp bởi dịch vụ khai báo riêng biệt. Chúng ta sẽ mô tả các dịch vụ này chi tiết hơn trong phần sau.

Sự ngoại hiện xử lý các đối tượng được kiểm soát theo cách mà chúng có thể được lưu trữ trên đĩa hay gửi qua một mạng. Nó có thể so sánh với các tiện ích dòng nối tiếp được cung cấp bởi Java, cho phép các đối tượn được ghi theo luồng dữ liệu như một chuỗi các byte.

Dịch vụ life cycle (chu trình sống) cung cấp các phương tiện để tạo ra, xoá bỏ, sao chép, và di chuyển các đối tượng. Khái niệm khoá là của một đối tượng factory (hãng) là một đối tượng đặc biệt được sử dụng để tạo ra các đối tượng khác. Thực tiễn đã chỉ ra rằng chỉ có sự tạo ra các đối tượng mới cần được điều khiển bởi một dịch vụ riêng biệt. Tuy nhiên, xoá bỏ, sao chép và di chuyển các đối tượng thường được định nghĩa rất tiện lợi bởi chính các đối tượng. Lý do là các thao tác này thường ảnh hưởng tới trạng thái của đối tượng khác.

Dịch vụ bản quyền cho phép các nhà phát triển các đối tượng gắn bản quyền tới các đối tượng và phải tuân theo các chính sách bản quyền cụ thể. bản quyền mô tả các quyền của một client có đối với việc sử dụng đối tượng. Ví dụ, bản quyền gắn trên một đối tượng đòi hỏi đối tượng đó chỉ có thể được sử dụng bởi một client đơn tại một thời điểm. Bản quyền có thể bảo đảm rằng một đối tượng là tự động biến mất sau khoảng thời gian chết nào đó.

CORBA cung cấp một dịch vụ đặt tên riêng mà mỗi đối tượng có thể được cho một cái tên mang tính người cho dễ đọc và được xếp vào trong bảng định danh các đối tượng. Các tiện ích cơ bản cho việc mô tả các đối tượng được cung cấp bởi dịch vụ thuộc tính riêng. Dịch vụ này cho phép các client kết hợp đôi (thuộc tính - giá trị) với các đối tượng. Lưu ý rằng các thuộc tính này không phải là một phần của trạng thái của đối tượng, nhưng thay vào đó được sử dụng để mô tả các phần đó. Có quan hệ tới 2 dịch vụ trên là dịch vụ giao dịch. Dịch vụ này cho phép các đối tượng quảng bá những gì mà chúng phải cung cấp (bằng các giao diện của chúng) và cho phép các client tìm kiếm các dịch vụ sử dụng ngôn ngữ riêng hỗ trợ việc mô tả các ràng buộc.

Dịch vụ lưu trữ riêng biệt cung cấp các tiện ích cho công việc lưu trữ thông tin trên đĩa ở dạng các đối tượng lưu trữ. Vấn đề quan trọng là sự cung cấp tính trong suốt trong quá trình lưu trữ. Một client không cần chuyển giao rõ ràng dữ liệu ở đối tượng lưu trữ giữa đĩa và bộ nhớ chính.

Không có các dịch vụ nào trong phạm vi này cung cấp các tiện ích cho mối liên hệ rõ ràng giữa 2 hay nhiều đối tượng. Các tiện ích này được cung cấp bởi một dịch vụ quan hệ mà bản chất của dịch vụ này là cung cấp sự hỗ trợ cho công việc tổ chức các đối tượng theo giản đồ khái niệm giống dịch vụ quan hệ trong các cơ sở dữ liệu.

Bảo mật được cung cấp bởi dịch vụ bảo mật. Sự thi hành của dịch vụ này có thể so sánh với các hệ thống bảo mật như SESAME và Kerberos. Dịch vụ bảo mật của CORBA cung cấp các tiện ích cho sự thẩm định quyền, quyền hạn, kiểm định, truyền an toàn, không từ chối thực hiện, và sự quản trị. Chúng ta sẽ trở lại vấn đề này một cách chi tiết trong phần sau.

Cuối cùng, CORBA cung cấp dịch vụ thời gian trả về thời gian hiện tại với các loại lỗi cụ thể.

Như Pope đã giải thích (1998), các dịch vụ CORBA đã được thiết kế với mô hình đối tượng CORBA là điều căn bản của chúng. Điều đó có nghĩa là tất cả các dịch vụ được chỉ rõ trong CORBA IDL và có sự tách biệt giữa kỹ thuật giao diện và sự thi hành. Nguyên tắc thiết kế khác là các dịch vụ được thu gọn và đơn giản hoá. Trong phần sau chúng ta sẽ thảo luận một số các dịch vụ này chi tiết hơn. Từ các định nghĩa ngắn này đã có thể trao đổi trong phạm vi nhất định nguyên tắc cuối để tiếp thu một cách thành công.

Dịch vụ Mô tả

Tập hợp Các tiện ích cho việc gộp nhóm các đối tượng vào trong danh sách, hàng đợi, tập hợp, ...

Truy vấn Các tiện ích cho việc truy vấn các tập hợp của các đối tượng trong một kiểu khai báo.

Trùng lặp Các tiện ích cho phép việc cùng truy cập vào các đối tượng chia sẻ.

Giao tác Các giao tác phẳng và lồng nhau trong các phương pháp gọi các đối tượng bội.

Sự kiện Các tiện ích cho việc truyền thông không đồng bộ thông qua các sự kiện

Thông báo Các tiện ích cấp cao cho việc truyền không đồng bộ trên cơ sở các sự kiện.

Sự ngoại hiện Các tiện ích cho việc kiểm soát hay không kiểm soát của các đối tượng.

Chu trình sống Các tiện ích cho công việc tạo ra, xác định, sao chép, và di chuyển các đối tượng.

Bản quyền Các tiện ích cho việc gắn bản quyền lên một đối tượng.

Đặt tên Các tiện ích cho việc đặt tên các đối tượng systemwide.

Thuộc tính Các tiện ích cho việc kết hợp đôi (thuộc tính - giá trị) với các đối tượng.

Giao dịch Các tiện ích cho việc công bố và tìm kiếm các dịch vụ mà một đối tượng phải cung cấp.

Lưu trữ Các tiện ích cho công việc lưu trữ lâu dài các đối tượng.

Quan hệ Các tiện ích cho việc mô tả các mối quan hệ giữa các đối tượng.

Bảo mật Các cơ chế cho các kênh bảo mật, sự thẩm định quyền và kiểm định.

Thời gian Cung cấp thời gian hiện tại với các loại lỗi cụ thể.

9.1.2 Truyền thông:

CORBA có một mô hình truyền thông đơn giản: một client gọi một phương thức trong một đối tượng và đợi câu trả lời. Mô hình này là quá đơn giản và các tiện ích truyền thông đã được thêm vào từ rất sớm. Sau đây, chúng ta sẽ xem xét lời gọi các tiện ích trong CORBA và cũng quan tâm đến sự lựa chọn các lời gọi đối tượng này. Như chúng ta đã thấy, sự mở rộng tới mô hình lời gọi đối tượng cơ bản được thúc đẩy bởi nhu cầu cho việc truyền không đồng bộ. Sự thúc đẩy này cũng dẫn đến các mô hình thông báo mà chúng ta đã thảo luận ở chương 2.

Mô hình lời gọi đối tượng:

Mặc định, khi một client gọi một đối tượng, nó gửi một yêu cầu tới đối tượng chủ tương ứng và khoá cho tới khi nhận được câu trả lời. Trong trường hợp thành công, các ngữ nghĩa này tương ứng chính xác tới lời gọi phương thức đơn thuần khi người gọi và người được gọi cùng cư trú trong một không gian địa chỉ.

Tuy nhiên, vấn đề là ở chỗ nếu có điều gì phức tạp hơn xảy ra trong trường hợp không thành công thì sẽ giải quyết thế nào. Trong trường hợp lời gọi đồng bộ, như được mô tả, một client cuối cùng sẽ nhận được một biệt lệ chỉ rõ rằng lời gọi đã không hoàn tất. CORBA chỉ rõ rằng trong trường hợp này, lời gọi sẽ theo ngữ nghĩa báo không thành công là at - most - once, ngụ ý rằng phương thức được gọi có thể được gọi một lần nữa hay không gọi lần nào cả. Lưu ý rằng, đó còn tuỳ vào sự thi hành để cung cấp các ngữ nghĩa này.

Lời gọi đồng bộ vì thế mà hữu ích khi client chờ câu trả lời. Nếu một câu trả lời tương ứng được trả về, CORBA bảo đảm rằng phương thức đã được gọi một cách chính xác. Tuy nhiên, trong các trường hợp không xác định nơi nào cần câu trả lời, thì cách tốt hơn và đơn giản cho client là gọi phương thức và tiếp tục sự thi hành của nó càng sớm khi có thể. Kiểu gọi này tương tự như truyền không đồng bộ của RPCs mà chúng ta đã thảo luận ở chương 2.

Trong CORBA, dạng lời gọi không đồng bộ được gọi là yêu cầu một chiều. Một phương thức có thể được chỉ rõ là một chiều chỉ khi nó được định rõ là không có kết quả trả về. Tuy nhiên, không giống như dịch vụ phát không đồng bộ bảo đảm trong RPCs, yêu cầu một chiều trong CORBA chỉ cung cấp một dịch vụ phát best - effort . Nói cách khác, không có đảm bảo nào được đưa ra cho người gọi rằng các lời gọi yêu cầu được phát tới máy chủ của các đối tượng.

Ngoài các yêu cầu một chiều, CORBA cũng hỗ trợ yêu cầu đồng bộ trì hoãn. Đó là một sự kết hợp giữa yêu cầu một chiều và sự cho phép máy chủ gửi đồng bộ kết quả trở lại tới client. Ngay sau khi client gửi yêu cầu của nó tới server, nó tiếp tục mà không cần chờ bất kỳ câu trả lời nào từ phía server. Nói cách khác, client có thể không bao giờ biết chắc rằng yêu cầu của nó có thật sự được phát tới server hay không.

Đây là 3 mô hình lời gọi khác nhau được tóm tắt trong bảng 9-4:

Loại yêu cầu Ngữ nghĩa báo không thành công Mô tả ngắn

Đồng bộ At - most - once Người gọi khóa cho tới khi một câu trả lời được trả về hay một biệt lệ được bật lên.

Một chiều Phát best - effort Người gọi tiếp tục ngay lập tức mà không cần chờ bất cứ câu trả lời nào từ phía server.

Đồng bộ trì hoãn At - most - once người gọi tiếp tục ngay lập tức và có thể sau đó khoá cho tới khi câu trả lời được phát.

Các dịch vụ sự kiện và khai báo:

Mặc dù mô hình lời gọi được cung cấp bởi CORBA thì thường sẽ bao gồm hầu hết các yêu cầu truyền thông trong một hệ phân tán hướng đối tượng, nhưng vẫn cảm thấy rằng chỉ có các lời gọi phương thức là vẫn không đủ. Cụ thể hơn, cần cung cấp một dịch vụ có thể báo hiệu các sự cố của một sự kiện một cách đơn giản. Các client chịu trách nhiệm để các sự kiện đó có thể đưa ra hành động thích hợp.

Dịch vụ sự kiện đựơc tạo ra là vì mục đích trên. Mô hình cơ bản cho các sự kiện trong CORBA là hoàn toàn đơn giản. Mỗi sự kiện kết hợp với một mục dữ liệu đơn, thông thường được đại diện bởi một đối tượng tham chiếu, nếu không thì là một giá trị ứng dụng cụ thể. Sự kiện được tạo ra bởi một supplier (cung cấp) và được thu nhận bởi một consumer (khách hàng). Các sự kiện được phát ra xuyên qua kênh sự kiện, kênh này được đặc logic giữa các supplier và các consumer, như hình 9-5:

Hình 9-5:Tổ chức logic của các Supplier và các consumer của các sự kiện, theo mô hình push - style.

Hình 9-5 là mô hình đẩy. Trong mô hình này, bất cứ khi nào một sự kiện xuất hiện, Supplier sẽ tạo ra sự kiện và đẩy nó xuyên qua kênh sự kiện và sau đó đẩy tới các consumer. Mô hình đẩy gần như là hoạt động không đồng bộ mà hầu hết mọi người kết hợp với các sự kiện. Thực tế, các consumer chờ truyền tải sự kiện một cách thụ động và mong đợi được ngắt theo một hoặc nhiều cách khi một sự kiện xảy ra.

Một mô hình khác, cũng được hỗ trợ bởi CORBA là mô hình kéo được mô tả trong hình 9-6. Trong mô hình này, các consumer thăm dò kênh sự kiện để kiểm tra có một sự kiện nào xảy ra hay chưa. Kênh sự kiện lại quay trở lại thăm dò các supplier.

Hình 9-6: Mô hình push - style cho sự phát các sự kiện trong CORBA

Mặc dù dịch vụ sự kiện cung cấp một cách đơn giản và dễ hiểu cho việc truyền tải sự kiện, nhưng lại có một hạn chế khá nghiêm trọng. Để truyền tải sự kiện, cần thiết các supplier và các consumer phải được nối kết với kênh sự kiện. Điều này cũng có nghĩa là khi một consumer kết nối với một kênh sự kiện sau khi có sự xuất hiện của sự kiện thì sự kiện đó sẽ bị mất. Nói cách khác, dịch vụ sự kiện của CORBA không hỗ trợ sự lưu trữ lâu dài cho các sự kiện.

Điều nghiêm trọng hơn là các consumer không có các phương tiện để lọc các sự kiện; Mỗi một sự kiện, về nguyên tắc, đều đi qua mọi consumer. Nếu có nhiều loại sự kiện khác nhau cần phải được phân biệt, thì cần thiết phải thiết lập một kênh sự kiện riêng cho mỗi loại. Tính năng lọc đã được thêm vào như là mọt sự mở rộng gọi là dịch vụ khai báo. Thêm vào đó, dịch vụ này cung cấp các tiện ích để ngăn chặn việc truyền tải sự kiện khi không có một consumer nào đón nhận một sự kiện định rõ.

Cuối cùng, truyền tải sự kiện vẫn là không tin cậy. Các trạng thái kỹ thuật của CORBA không đảm bảo rằng sự phát các sự kiện sẽ tốt đẹp. Chúng ta sẽ thảo luận ở chương 12, các ứng dụng tồn tại được là do việc truyền tải sự kiện tin cậy, điều này rất quan trọng. Các ứng dụng sẽ không sử dụng dịch vụ sự kiện của CORBA nhưng sẽ phải sử dụng đến các phương tiện truyền thông khác.

Thông báo:

Tất cả việc truyền thông của CORBA được diễn ra một cách trong suốt. Điều này có nghĩa rằng một thông báo được lưu trữ chỉ trong hệ thống truyền thông miễn là cả người gửi và người nhận nó đều đang chạy. Như chúng ta đã thảo luận ở chương 2, có nhiều ứng dụng yêu cầu truyền lưu trữ lâu dài để một thông báo được lưu trữ cho tới khi nó được phát đi. Với việc truyền lưu trữ lâu dài, không lo ngại rằng người gửi hay nhận nó có đang chạy hay không sau khi thông báo đã được gửi đi. Trong tất cả các trường hợp, nó sẽ được lưu trữ đến khi nào cần thiết.

Mô hình phổ biến trong truyền lưu trữ lâu dài là mô hình hàng đợi thông báo. CORBA hỗ trợ mô hình này như là một sự bổ sung cho mô hình thông báo. Cái gì đã tạo nên sự khác biệt giữa mô hình thông báo của CORBA với các hệ thống khác? Đó là mục đích hướng đối tượng vốn có của nó cho việc truyền thông. Cụ thể, người thiết kế của dịch vụ thông báo cần giữ lại mô hình mà tất cả việc truyền thông được đặt trong một đối tượng gọi. Trong trương hợp dịch vụ thông báo, việc thiết kế này ràng buộc kết quả ở 2 dạng bổ sung của phương thức gọi không đồng bộ.

Trong mô hình cuộc gọi trở lại (callback), một client cung cấp cho một đối tượng thực thi một giao diện hàm chứa phương thức callback. Các phương thức này có thể được gọi bởi hệ thống truyền thông cơ bản để chuyển giao kết quả của lời gọi không đồng bộ. Một vấn đề quan trọng trong việc thiết kế là phương thức gọi không đồng bộ không làm ảnh hưởng tới sự thi hành của đối tượng đầu tiên. Nói cách khác, đó là sự đáp trả của client để làm thay đổi lời gọi đồng bộ ban đầu thành lời gọi không đồng bộ; server được đưa đến một lơig gọi yêu cầu thông thường (đồng bộs).

Kkởi dựng lời gọi không đồng bộ được thực hiện qua 2 bước. Đầu tiên, giao diện ban đầu mà giao diện này được thi hành bởi đối tượng được sẽ được thay thế bởi 2 giao diện mới mà 2 giao diện này được thi hành chỉ bởi phần mềm client - side. Một giao diện thì hàm chứa các kỹ thuật của các phương thức mà một client có thể gọi. Không có phương thức nào trong đó trả về một giá trị hay có tham số xuất. Giao diện thứ 2 là giao diện callback. Cho mỗi thao tác trong giao diện gốc, nó hàm chứa một phương thức sẽ được gọi bởi ORB của client để chuyển giao kết quả của phương thức kết hợp như đã được gọi bởi client.

Ví dụ: Một đối tượng thực thi một giao diện đơn giản chỉ với một phương thức: int add(in int i, in int j, out int k);

Thừa nhận rằng phương thức này (chúng ta đã mô tả trong CORBA IDL) có 2 biến không âm kiểu interger i và j và trả về giá trị k = i+j. Phương thức sẽ trả về giá trị -1 nếu thao tác không thành công. Biến đổi phương thức gọi gốc (đồng bộ) thành một phương thức không đồng bộ với callback được hoàn tất bởi việc tạo ra đầu tiên cặp phương thức sau (vì mục đích của chúng ta, chúng ta chọn các tên phù hợp và thuận tiện thay vì theo các luật nghiêm khắc đã định rõ trong OMG, 2001b):

void sendcb_add(in int i, in int j); // được gọi bởi client

void replycb_add(in int ret_val, in int k); // được gọi bởi OMG của client

Trong thực tế, tất cả các tham số xuất từ phương thức gốc được di chuyển từ phương thức được gọi bởi client và trở thành tham số vào của các thao tác callback. Tương tự như vậy, nếu phương thức gốc định rõ một giá trị trả về thì giá trị này được chuyển thành tham số vào của thao tác callback.

Bước thứ 2 đơn giản là dịch các giao diện đã được tạo ra. Một điều hiển nhiên rằng client được cung cấp một mẩu, mẩu này cho phép nó gọi không đồng bộ phương thức sendcb_add. Tuy nhiên, client sẽ cần cung cấp một sự thi hành cho giao diện callback, trong ví dụ này hàm chứa phương thức replycb_add. Lưu ý rằng, những sự thay đổi này không làm ảnh hưởng đến sự thi hành server - side của đối tượng. sử dụng ví dụ này, mô hình callback được tóm tắt như hình 9-7:

Như một sự chọn lựa cho các callback, CORBA cung cấp một mô hình thăm dò. Trong mô hình này, client được cung cấp một tập hợp các thao tác để thăm dò ORB của nó cho các kết quả vào. Cũng như mô hình callback, client có trách nhiệm chuyển các phương thức gọi đồng bộ gốc thành không đồng bộ. Một lần nữa, hầu hết công việc điều có thể được thực hiện một cách tự động bằng cách phát các phương thức định rõ thích hợp từ giao diện gốc được thi hành bởi đối tượng.

Trở lại ví dụ trên, phương thức add sẽ dẫn đến 2 phương thức định rõ được tạo ra như sau:

void sendpoll_add(in int i, in int j); // được gọi bởi client

void replypoll_add(out int ret_val, out int k); // cũng được gọi bởi client

Sự khác nhau quan trọng với mô hình callback là phương thức replypoll_add sẽ phải được thi hành bởi ORB của client. Sự thi hành này có thể được tự động hoá tạo ra bởi một trình biên dịch IDL. Mô hình thăm dò được tóm tắt trong hình 9-8. Một lần nữa, lưu ý rằng sự thi hành gốc của đối tượng lúc nó xuất hiện tại mặt của server không được thay đổi.

Trong khi mô tả các mô hình, chúng ta đã bỏ qua phần các thông báo gửi giữa một client và một server, bao gồm câu trả lời cho lời gọi không đồng bộ, được lưu trữ bởi hệ thống cơ bản trong trường hợp client hay server vẫn chưa chạy. Thật may mắn thay, hầu hết các vấn đề liên quan như truyền lưu trữ lâu dài không ảnh hưởng đến mô hình lời gọi không đồng bộ. Việc cần thiết là cài đặt bộ các server thông báo cho phép các thông báo (là các lời gọi yêu cầu hay đáp trả) được lưu trữ tạm thời cho đến khi có thể phát chúng đi. Sự việc này được đề xuất trong (ORB, 2001b), tương tự như hệ thống hàng đợi thông báo của IBM, cái này chúng ta đã thảo luận ở phần 2.4.4 và sẽ không được nhắc lại ở đây.

Tính liên thao tác:

Các phiên bản cũ của CORBA mở ra nhiều vấn đề về sự thi hành trong thực tế. Kết quả là hệ thống CORBA từ các nhà sản xuất khác nhau lại có cách riêng để khả năng hoá việc truyền thông giữa các client và các đối tượng chủ. Cụ thể, nếu chỉ một client và một đối tượng chủ đang sử dụng ORB giống nhau thì client có thể gọi một trong các đối tượng chủ.

Sự thiếu hụt của tính liên thao tác đã được giải quyết bởi sự ra đời của giao thức chuẩn inter - ORB, trong sự kết hợp với một cách như nhau cho các đối tượng tham chiếu. Trở lại hình 9-2, điều đó có nghĩa là việc truyền thông giữa client và server trung thành với một giao thức chuẩn, trong CORBA là giao thức General Inter - ORB (GIOP).

GIOP thật sự là một khung làm việc cho một giao thức; Thừa nhận rằng một sự thi hành thực sự được chạy trên đỉnh của một giao thức tầng giao vận. Giao thức tầng giao vận này là đáng tin cậy, kết nối hướng đối tượng và cung cấp khái niệm về luồng byte, cùng với một vài các đặc trưng khác. Và không ngạc nhiên khi TCP có thể đáp ứng tất cả các yêu cầu trên, nhưng các giao thức tầng giao vận khác cũng có thể làm điều đó. Sự thi hành của GIOP chạy trên đỉnh của TCP được gọi là giao thức Internet inter - ORB hay đơn giản là IIOP.

GIOP (và IIOP hay bất kỳ sự thi hành khác của GIOP) có thể nhận dạng được 8 loại thông báo khác nhau, như hình 9-9. Hai loại thông báo quan trọng nhất là Yêu cầu và đáp trả, chúng là một phần của sự thi hành thực sự của một phương thức gọi xa.

Một thông báo Yêu cầu chứa một lời gọi yêu cầu được kiểm soát chặt chẽ, bao gồm một đối tượng tham chiếu, tên của phương thức được gọi và tất cả các tham số vào cần thiết. Đối tượng tham chiếu và tên phương thức nằm trong phần header. Mỗi một thông báo Yêu cầu cũng có định danh yêu cầu của chính nó và cái này sau đó sẽ được sử dụng để so trùng với câu trả lời tương ứng.

Một thông báo đáp trả chứa các giá trị trả về được kiểm soát và các tham số xuất kết hợp với phương thức được gọi trước. Không cần phải định danh đối tượng hay phương thức một cách rõ ràng; Chỉ đơn giản là trả về một định danh yêu cầu giống như trong thông báo yêu cầu tương ứng là đủ.

Loại thông báo Nguồn gọi Mô tả

Yêu cầu Client chứa một lời gọi yêu cầu

Đáp trả Server chứa câu trả lời cho lời gọi

Yêu cầu định vị Client chứa một yêu cầu tại một vị trí xác định của một đối tượng

Đáp trả định vị Server Chứa thông tin vị trí về một đối tượng

Huỷ yêu cầu Client bảo client không cần đợi câu trả lời nữa

Đóng kết nối cả hai kết nối bị đóng

thông báo lỗi cả hai chứa thông tin về lỗi

Phân mảnh cả hai một phần của một mảnh lớn

Như những gì mà chúng ta sẽ thảo luận ở phần sau, một client có thể yêu cầu một kho thi hành để cung cấp chi tiết về nơi một đối tượng được chỉ ra có thể được lấy. Một yêu cầu được gửi bằng một thông báo Yêu cầu định vị (LocateRequest). Kho thi hành sẽ trả lời bằng thông báo Đáp trả định vị (LocateReply) thường dùng để định danh server hiện tại của đối tượng mà lời gọi yêu cầu có thể được gửi đến server này.

Thông báo Huỷ yêu cầu có thể được gửi bởi client tới một server khi client muốn huỷ một yêu cầu đã gửi trước đó hay thông báo LocateRequest. Việc huỷ một yêu cầu có nghĩa là client không cần phải đợi câu trả lời từ phía server. Có nhiều nguyên nhân khác nhau để một client muốn huỷ câu trả lời cho một yêu cầu, nhưng nguyên nhân thường thấy nhất là do timeout trong chương trình của client. Lưu ý việc huỷ một yêu cầu không có nghĩa rằng yêu cầu tương ứng sẽ được thực hiện. Nó tuỳ thuộc vào chương trình của client để đối phó với các tình huống.

Trong GIOP, một client luôn luôn cài đặt một kết nối tới server. Các server chỉ chấp nhận hay không chấp nhận các yêu cầu kết nối, nhưng không tự cài đặt kết nối tới một client. Tuy nhiên, cả client và server đều được cho quyền để đóng kết nối, vì thế chúng có thể gửi một thông báo CloseConnection tới các bộ phận truyền thông khác.

Nếu có thất bại, bộ phận khác được báo tin là nhờ thông báo báo lỗi MessageError. Một thông báo như thế chứa phần header của thông báo GIOP chỉ ra nguyên nhân gây lỗi. (điều này tương tự như thông báo của ICMP trong giao thức Internet được sử dụng để trả về thông tin lỗi khi có gì sai. Trong trường hợp đó, phần header của gói IP chỉ ra một lỗi được gửi như là một gói dữ liệu trong thông báo ICMP).

Cuối cùng, GIOP cũng cho phép các thông báo yêu cầu và đáp trả khác được phân mảnh. Theo cách này, các lời gọi yêu cầu có quá nhiều dữ liệu được truyền đi giữa một client và một server có thể dễ dàng được hỗ trợ. Các phân mảnh được gửi là các thông báo phân mảnh đặc biệt có chứa các định danh thông tin về thông báo gốc và cho phép tập hợp lại các thông báo đó tại phía nhận.ss

9.1.3. processes (sử lý )quá trình.

CORBA phân biệt 2 kiểu xử lý :khách và chủ. 1mục đích thiết là quan trọng của CORBA là tạo ra những máy khách càng đơn giản càng tốt.

Clients (máy khách )

Như trước đây đã đề cập phần mềm client- sicle của CORBA là giữ 1 mứcnhỏ nhất chỉ rỏ IPL của đối tượnglà bản coppy đơn giản trong sự ủy nhiệm thu nhập lời yêu cầu.Ví dụ IIOP REQUEST MESSAGES và sự ứng không thu nhập với reply messages trong kết quả mà có thể nó chuyển dao trở lại kéo theo máy chủ

Sự uỷ nhiệm corba không có nghĩa phụ như là kết nối ứng dụng cũa máy khách tới bên dưới orb thay vì đặc điểm của sự uỷ nhiệm một đối tượng đặc biệt 1 máy khách có năng lực kéo theo đối tượng qua dii

Kết quả của phương pháp này đó là nếu 1 đối tượng yêu cầu sự thi hành client- sicle đặc biệt của chính dao diện đó nó sẽ có chỉ dẫn sự phát triển sử dụng bản copy idl như là đặc điểm của phần mềm hoặc cung cấp chính sự uỷ nhiệm của máy khách ví dụ một sự thi hành đối tượng có thể đi cùng với việc thiết đặt sự uỷ nhiệm mà sự thi hành 1 kế hoạch đối tượng đặc biệt client- sicle caching tất nhiên phương pháp sau là tổng số ra khỏi đường dây với đối tượng corba của tính dễ chuyển dời và phân tan dao dịch 1 phương pháp # là quyên vấn đề đối tượng đặc biệt và dựa vào client- sicle orb cái mà cung cấp sự hỗ trợ cần thiết cái gì là cần thiết để 1 cơ cấu sử dụng sự uỷ nhiệm như là đặc điểm bởi bản copy idl trong sự phối hợp với client- sicle orb hiện tại nhưng tuy nhiên có thể thích nghi với phần mềm client- sicle khi cần thiết giải đáp của corba là vấn đề sử dụng thanh chắn (intercepton) như là chính tên đề ghi. 1 thanh chắn là 1 máy móc (cơ cấu ) số việc yêu cầu có thể chắn trong chung từ máy khách tới máy chủ và thích nghi gần như hoàn toàn trước khi cho thuê nó tiếp tục về bản chất 1 thanh chắn là được thay đổi 1 lời yêu cầu từ máy khách tới máy chủ.1 thanh chắn trong CORBA có thể ở vị trí tại 1 trong 2 cấp độ logic # nhau trong hình 9.10 1 mức g/c thanh chắn là nơi logic giữ sự ủy nhiệm máy khách và ORB trước khi lời y/c được gửi qua ORB nó là lần đầu chuyển qua thanh chắn cái mà có thể thay đổi lời yêu cầu trong server sơ de, mức độ y/c thanh chắn là vị trí giữa ORB và thích nghi

Sự tương quan là vị trí giữa 1ORB và dưới mạng máy tính một massage-level inter ceptos không biết gì về thông điệp mà nó gửi , chỉ có thông điệp GIOP tuỳ ý sử dụng đó như là ước muốn thay đổi 1 ví dụ thông thường của massage-level inter ceptos là 1vỡ ra từng mảnh sự thực thi tại cạnh gửi

Thanh chắn giống như là 1 orb đó là ... nó là 1 orb trách nhiệm của theo 1 thanh chắn những máy khách và máy chủ gẩn như cùng lúc thấy thanh chắn trừ thời gian kết nối từ máy khách tới máy chủ Chú ý là orb có thể tạo sử dụng các kiểu thanh chắn trong cùng 1 thời gian

Sự thích nghi của đối tượng đi động trong chương 3 chúng ta đã thảo luận 1 cách chi tiết về sự chú ý của sự thích nghi của đối tượng cái mà 1 máy móc (cơ cấu ) là sự thực thi 1 chính sách hành động đặc biệt cho của nhóm đối tượng ví dụ 1 sự thích nghi có thể là sự thích nghi 1 thuật toán yêu cầu sử dụng separate thred cho mỗi yêu cầu nơi mà 1 cái # chỉ sử dụng 1 thred đơn cho tất cả các đối tượng mà nó quản lý.

Nói chung 1 sự thích nghi của đối tượng có nhiều hơn 1 lời gọi phương pháp trong 1 đối tượng như là 1 để nghị đặt tên của chính nó 1 đối tượng thích nghi là sự chịu chách nhiệm cho việc phát triển bao gồm cả hình ảnh của cái gọi là 1 đối tượng là sự thích nghi của nó là 1 chương trình như là máy khách có thể nhìn thấy 1 chương trình như là 1 đối tượng . những sự chịu đượng đó gọi là trình bao bọc

Trong corba , portable objcet adaqpter (poa) là 1 thành phần mà nó chịu chách nhiệm cho việc tạo ra mã server-side xuất hiện như là đối tượng corba tới những máy khách . 1 poa có sự định nghĩa như là (insuch a way that) mã server-side có thể được viết 1 cách độc lập của 1 orb đặc biệt.

Để cung cấp từng di chuyển được thông qua các orbs# nhau , corab thừa nhận rằng sự thực thi đối tượng là 1 phần được cung cấp bởi cái được gọi là dịch vụ. 1 dịch vụ (servant) là thành phần của đối tượng mà sự thực thi 1 phương pháp cái mà những máy khách có thể kéo theo dịch vụ là cần thiết cho programming-language dependent. Ví dụ thi hành là dịch vụ trong c++ hoặc java thường xuyên bởi cung cấp 1 trường hợp của 1 lớp.

Làm cách nào để 1 poa sử dụng dịch vụ để xây đựng hình ảnh của đối tượng corba trong phần đầu tiên mỗi poa cungcấp 1 thao tác objcetld activete-objcet (in servant p-servant);

Cái mà chúng ta có sự định danh trong corba idl thao tác này đem 1 con trỏ tới 1 dịch vụ như nhập vào tham số và trả về sự nhận ra 1 đối tượng corba như là 1 kết quả nó không phải là sự nhận ra cái chung của kiểu servant thay vì 1 bản đồ để kiểu dữ liệu language-dependent ví dụ trong c++ dịch vụ được vẽ bản đồ tới 1 con trỏ để tới lớp servant base đặt sẵn.

Lớp này chứa số của sự nhận dạng phương pháp cho mỗi dịch vụ c++ có sự thực thi (hoạt động ).

Sự nhận dạng đối tượng trả về bởi 1 thao tác activate-ojbcet là chung chung bỏi poa nó được sử dụng như 1 index trong poa's active obicet map cái mà những điểm phục vụ như hình 9-11(a) trong trường hợp này sự thi hành poa 1 phục vụ separate cho mỗi đối tượng được hỗ trợ để làm cho những vấn đề cụ thể hơn thừa nhận rằng phát triển 1 ứng dụng được viết bởi 1 lớp con của servantbase gọi là my-servant. 1 đối tượng c++ được tạo ra như là 1 sự cài đặt của lớp my-servant có thể quay lại đối tượng corba trong hình 9-12

Mã trong hình 9-12 dầu tiên chúng ta khai báo 1 tham chiếu tới đối tượng c++ để tạo 1 định dạng corba chúng ta tạo ra sử dụng corba objcetld-var, cái mà được đặt sẵn kiểu dữ liệu của c++ cho tất cả chuẩn thực thi c++ của corba sau khi khai báo my-objcet có thể được cài đặt như là 1 đối tượng c++ thật trong thuật ngữ corba đó là sự phù hợp đối tượng c++ tới dịch vụ sự đổi hướng đối tượng c++ tronbg tiến hành đối tượng corba bởi việc đăng ký nó ở poa (việc nào chúng ta thừa nhận sự sẵn có thông qua biến poa) trở lại việc đăng ký 1 nhận dạng corba.

Đó là quan trọng tới note rằng nếu đối tượng thứ 2 của my-servant đã được tạo ra sự đăng ký đó của đối tượng c++ tại poa có thể lãnh đạo tới hầu hết các dịch vụ đồng nhất mặc dù hành động trong trạng thái khác nhau trong những trường hợp đó poa có hỗ hợp đối tượng đó là derived từ cùng 1 định dạng lớp nó có nhiều ảnh hưởng tới việc chỉ đăng ký 1 dịch vụ đơn và phân biệt với biến đối tượng # chỉ bởi trạng thái của chúng nguyên tác cơ bản được chỉ ra trong hình 9-11(b) nơi mà mỗi sự nhận dạng đối tượng hướng tới cùng 1 dịch vụ trong trường hợp này trước đó 1 đối tượng được kéo theo và sự nhận dạng của đối tượng được kéo theo và sự nhận dạng của đối tượng sẽ được chuyển qua (hoàn toàn) tới 1 dịch vụ vì vậy nó có thể thao tác chỉ với dữ liệu mà kết hợp với đối tượng định dạng duy nhất.

Ví dụ này cũng minh hoạ vấn đề quan trọng khác. Nhận dạng đối tượng corba là mối kết hợp duy nhất với poa trước đó 1 dịch vụ được đăng ký với poa , poa trả lại 1 nhận dạng đối tượng cho các dịch vụ đó trong nhiều khả năng là chúng ta không chỉ ra rằng nó là 1 sự phát triển 1 ứng dụng chung đầu tiên 1 định dạng và vượt qua tới 1 poa tuy nhiên cả các trường hợp đó sự nhận dạng sẽ được kết nó và cấu chúc dữ liệu lớn đó là hàm như như là hệ thống mở tham chiếu đối tượngvà đó cũng nhận dạng 1 poa vì máy chủ nơi mà poa đang ở vị trí đó.

Dù có hoặc không 1 poa hỗ trợ 1 dịch vụ trước đối tượng hoặc 1 dịch vụ cho tất cả các dịch vụ đó chỉ là 1 loại của chính sách cái mà có thể được kết nối với 1 poa có rất nhiều chính sách # mà có thể được hỗ trợ. Ví dụ 1 poa có thể hỗ trợ thời gian ngắn tốt như kiên trì đối tượng như thế có rất nhiều chính sách khác nhau với khía cạnh của việc sử dụng sự chỉ dẫn . chúng ta bỏ quyên những chính sách cặn kẽ cái mà được miêu tả trong (hesring and vinosla 1999)

Tác nhân

Để làm cho ứng dụng agent-based thuận tiện corba chấp nhận 1 mô hình mà trong đó tác nhân từ nhiều loại của hệ thống khác nhau có thể hợp tác thay vì chỉ định chính mô hình của chúng của 1 đối tượng corba ra lệnh giao diện chuẩn đó là 1 tác nhân đối tượng nên thực thi những phương pháp này có khả năngthuận lợi bởi nhiều kiểu tác nhân khác nhau có thể được sử dụng trong ứng dụng phân tán đơn ví dụ trong corba nó có thể thực hiện cho phép tạo 1 applet trong java 1 tác nhân tcl trong nền tác nhân của p.

Trong corba tác nhân luân luân nhận dạng với khía cạnh của hệ thống tác nhân . 1 hệ thống tác nhân đượpc nhận dạng như là 1 nền cho phép tạo ra thực thi di chuyển và kết thúc của tác nhân có mô tả chính xác pcofile kết nối caí gì mà hệ thống đại diện của d'agents ra lệnh chính kiểm tra hỗ trợ ngôn ngữ và theo cách đó tác nhân được xuất bản khi di chuyển giữa 2 hệ thống 1 tác nhâ sẽ luân luân được ở vị trí đặc biệt trong hệ thống đại diện . 1 vị trí phù hợp với máy chủ nơi mà 1 tác nhân cư chú đó có thể là nhiều vị chí trong hệ thống tác nhân . trong các từ corba thừa nhận rằng 1 hệ thống tác nhân đơn có thể bao gồm nhiều quá trình mỗi hosting có 1 hoậc nhiều tác nhân tổ chức này sẽ được thừa kế trong việc sắp sếp trong tác nhân phục vụ hosts trong vùng quản trị đơn và có thể chuyển đến 1 nhóm đầy đủ trên như là 1 hệ thống tác nhân

Hệ thống tác nhân lần lượt có thể nhóm trong 1 vùng nơi mà 1 vùng được biểu diễn bởi vùng quản trị trong 1 nơi cư chú của hệ thống tác nhân.

Ví dụ 1 trường đại học có thể có có hệ thống tác nhân phục vụ, của mỗi kiều # nhau mỗi hệ thống tác nhân có thể phân tán rộng qua nhiều host hoặc vị trí nơi mà mỗi host có thể chạy các tác nhân phục vụmô hình này được chỉ ra trong hình 9-13

1 tác nhân trong corba được thừa nhận để chỉ dẫn từ tập hợp của các lớp hoặc tối thiểu từ file chứa đựng văn bản chương trình cần thiết trong các chương trình còn lại nó cần phải đặt tên 1 hoạt động đại diện và chuyển tới tên của 1 hệ thống đại diện để cho phép tạo ra hoặc sự di chuyển 1 tác nhân

* mỗi hệ thống tác nhân trong corba phải thực thi 1 số thao tác chuẩn ví dụ 1 hệ thống tác nhân phải cung cấp những thao tác để tạo ra hoặc hoàn thành 1 tác nhân để nhận 1 tác nhân để thực hiện để liệt kê tập hợp hiện thời của tác nhân để liệt kê những vị trí mà 1 tác nhân có thể cư chú và những thao tác để trì hoãn và khôi phục lại 1 tác nhân chú ý rằng sự thực thi của các thao tác phụ thuộc hoàn toàn và hệ thống tác nhân hiện tại tuy nhiên trong corba yêu cầu rằng môi hệ thống tác nhân dích chặt vào toàn bộ mô hình điều đó có nghĩa là nếu hệ thống tác nhân hiện tại không có hỗ trợ 1 cách sáng tạo khái niệm của vị trí tuy nhiên nó cần phải cung cấp 1 thiết bị

mỗi địa phương sẽ có bộ tìm kết nốicai1 mà cho phép nó tìm vị trí của các tác nhân , những vị trí, và những hệ thố'ng tác nhân trong giới hạn địa phương. bộ tìm kiếm cung cấp số thao tác chuẩn cho đăng ký và huỷ đăng ký các tác nhân vị trí và hệ thống tác nhân thực chất, 1 bộ tìm kiếm là không có gì cả nhưng 1 thư mục đơn giản phục vụ cho 1 vùng.

9.1.4. tên

CORBA hỗ trợ nhiều kiểu tên khác nhau. Cơ sở quan trọng nhất của kiểu tên xuất hiện trong form của đối tượng tham chiếu và những tên cơ sở ký tự (character based names) được hỗ trợ bởi dịch vụ đặt tện trên CORBA. Thêm vào đó có một số điều kiện thuận lợi cho việc đặt tên, nhờ đó đối tượng có thể tìm thấy cơ sở trong những thuộc tính quan hệ. cho một số thuận lợi trong việc đặt tên như là sự sẵn có trong dịch vụ kinh doanh của CORBA.

1. sự tham chiếu đối tượng.

nguyên tắc cơ ban của CORBA đó là đối tượng được tham chiếu. khi một máy khách giữ một tham chiếu đối tượng, nó có thể gọi phương pháp thực thi với đối tượng tham chiếu. điều đó là quan trọng để phân biệt sự tham chiếu đối tượng một khách hàng xử lý kéo theo một phương pháp, cái được thi hành dưới ORB.

một quá trình ORB có thể chỉ sử dụng một ngôn ngữ thực thi đặc biệt của một tham chiếu đối tượng. trong hầu hết các trường hợp, nó mang đến những form của con trỏ tới vị trí trình bày của đối tượng. sự trình bày đó không thể chuyển từ quá trình A sang quá trình B, điều đó có nghĩa là trong phạm vi khoảng cách địa chỉ của quá trình A. thay vì quá trình A đầu tiên sẽ thu thập con trỏ trong một quá trình - sự trình bày độc lập thao tác có thể được cung cấp bởi chính ORB mỗi lần thu thập một tham chiếu có thể chuyển đổi quá trình B các mà không được thu nhập lại chú ý quá trình A và B có thể được thực hiện bởi các chương trình được viết trong các ngôn ngữ #.

Mặt # dưới ORB sẽ có ngôn ngữ trình bày độc lập của một tham chiếu đối tượng. sự trình bày này có thể # từ việc thu thập nhửng phiên bản có sẵn từ quá trình mà muốn thay đổi sự trình bày. điều quan trong là khi một quá trình đề cập tới 1 đối tượng đó là bên dưới ORB là hoàn toàn chỉ để vượt qua thông tin để biết đối tượng nào rên thực tế được trình bày như các thông tin là thuộc được chuyển đi từ máy khách những cái đuôi sener side chúng được sinh ra từ sự định rõ IOL của đối tượng. một trong những vấn đề mà những phiên bản trước của corba đã có là mỗi orb có thể quyết định làm thế nào được trình bày một tham chiếu đối tượng nào đó do đó nếu một quá trình a muốn vượt qua sự tham chiếu tới quá trình b như là sự mô tả ở trên nó là những thành công chung chỉ nếu cả quá trình đã được thực hiện trong cùng top orb vì vậy sự thu thập phiên bản của tham chiếu gửi bởi tiến trình a có ít ý nghĩa hơn đến bên dưới orb quá trình b.

hiện tại hệ thống corba đã hỗ trợ cùng lúc nhiều ngôn ngữ trình bày độc lập trong tham chiếu đối tượng cái mà được gọi là interpol objret rorefence hoặc ior dù có hay không có một orb sử dụng ior cũng không quan trọng. truy nhiên khi vượt qua như lá ior một ior chứa đựng tất cảc các thông tin cần để nhận ra một đối tượng tầng lớp của một ior được chỉ ra ở hình 9-14 cùng với các thông tin đặc biệt cho ior cái mà chúng ta sẽ giải thích một cách tường tận

hình 9-14

mỗi ior bắt đầu với một kho nhận dạng như chúng ta đã hoàn thành. sự nhận dạng được ký tên từ bề mặt khi dao diện đượpc lưu trữ trong kho dao diện nó đượ sử dụng đển trả về thôngt tin trên dao diện trong suất quá trình chạy và cò thể trợ dịch ví dụ kiểm tra hoặc chỉ dẫn năng động trong đó. Chú ý nếu sự nhận ra là là có lợi cả máy chủ và máy khách phải truy cập tới cùng một kho dao diện ... ít nhất phải phải sử dụng cùng một sự nhận ra dao diện .

phần quan trong nhất của mỗi ior là formet bời cái gọi là tagged profiles như mỗi ... chứa đựng thông tin hoàn thành kéo theo một đối tượng nếu đối tượng máy chủ hỗ trợ nhiều gia thức ,thông tin trong mỗi giao thức có thể bao gồm trong 1 sự tách rời separate tagget. đặc điểm trong profile là sử dụng cho iior được trình bày trong hình 9-14

sự nhận ra iiob profile được nhận dạng bởi trường profile trong tagget profile. Nó bao gồm 5 lĩnh vực .

trường host là một chuỗi được nhận biết 1 cách chính xác trong host mà đối tượcng được đặt vào 1 vị trí. Host có thể được chỉ rõ bằng phương pháp tên miền dsn đầy đủ hoặc sự trình bày chuỗi của điạ chỉ ip của host như 130.37.24.11

trường post chứa đựng số cổng mà từ đó người phục vụ đối tượng nghe những yêu cầu của đầu vào .

trường object key chứa đựng thông tin đặc biệt của máy chủ cho sự phân đa kênh yêu cầu đầu vào tên đối tượng thích hợp. ví dụ sự định danh 1 đối tượng được phát sinh nói chung sẽ là chìa khoá bộ phận của một đối tượng. vì vậy chìa khoá sẽ được định dạng trong poa

cuối cùng đó là trường components mà có nhiệm vụ chứa đực việc thêm vào thông tin cần cho việc hợp thức kéo theo đốI tượng được tham khoả ví dụ: cho trường components có thể chứa thông tin bảo mật chỉ ra bằng cách nào đó sự tham khảo có thể lằm trong tầm tay hoặc lảm gì trong các trường hợp tham khảo máy chủ không có sẵn chúng ta sẽ trả lại cho những máy chủ ở bên dưới.

Không bao giờ chúng ta giảI thích một cách tường tận của sự tham chiếu đốI tượng nó không khó để hiểu lảm thế lào để nốI máy khách đến một đốI tượng kéo theo một thuột toán gọI lạI từ chương 2 cái mà đang nốI máy khách vớI một đốI tượng là một tiến trình bởI một liên kết là cài đặt một đốI tượng để máy khách có thể kéo theo phương pháp đốI tượng kết nốI là cần thiết nếu chỉ máy khách có sự tham chiếu tớI đốI tượng

ngườI chờ cuộc thảo luận của bọn chúng trong dịch vụ đặt tên corba thừa nhận một máy khách được yêu cầu dịch vụ đặt tên để quyết dọc được tên con ngườI . dịch vụ đặt tên sẽ trả về một sự thi hành phụ thuộc vào ngôn ngữ của iornhư là lưu trữ trong dịch vụ đặt tên ví dụ một sự thi hành có tể chỉ chả về nếu như orb của máy khách đã thực hiện đầy đủ sự kết nốI quá trình

máy khách orb mang đến ior đã trả lạI nó bởI dịch vụ đặt tên và bởI việc kiểm tra kho chứa id được chứa đựng troing ior nó có thể đặt một sự uỷ nhiệm tạI một máy khách và trả về con trỏ p uỷ nhiệm bên trong orb sẽ lưu trữ sự thật về p được kết hợp vớI đốI tượng ior

mỗI orb khác nhau có sự thực thi khác nhau nhưng một đặc trưng của viễn cảnh là sự tiếp theo sau trước khi vượt qua tơí máy khách, máy khách của orb kiểm tra kỹ nơi chứa đựng tagged profiles trong ior để thừa nhận rằng một đốI tượng có thể kéo theo sự sử dụng iiop trong trường hợp đó máy khách orb có thể đặt một kết nốI tcp vớI máy chủ của đốI tựơng sử dụng địa chỉ host và số cổng tìm được trong ior tạI điểm đó nó có thể chuyển con chỏ p máy khách.

nhờ đó máy khách kéo theo một trong số phương pháp của đốI tượng máy khách orb thu nhập những lờI yêu cầu trong thông điệp yêu cầu của iiop thông điệp lày chứa đựng một chìa khoá đốI tượng chuyên biệt về máy chủ nó sẽ lưu trử trong ior

thông điệp này sẽ được gửI qua kết nốI icp vớI máy chủ nơi mà sau đó nó có thể được chuyển tớI kết nốI iop thích hợp vớI chìa khoá của đốI tượng poa sau đó sẽ tiến tờI yêui cầu vớI ngườI phục vụ thích hợp nơi mà đó là sự không thu nhập lần đầu và biết đôủI trong một gọI phương pháp hiện tạI. Trong viễn cảch này ior ngay lập tức chuyển đến một đốI tượng trực tiếp sự hưỡng dẫn cái mà biết như sự kết nốI sự kết nốI trự tiếp khác là sự kết nôi dán tiếp bằng yêu cầu kết nốI là gửI lần đầu tiên gừI tớI một sự thi hành trả lờI sự thi hành chỉ là một quá trình # mộn ra trong ior của đốI tượng nó là sự điều khiển giao thông trên không như là đăng ký bởI đốI tượng tham chiếu có thể dịch vụ hoặc kích hoạt trước khi gửI lờI yêu cầu imocation request để trong luyện tập kết nốI dán tiếp thường sử dụng chính cho các đốI tượng lâu dài nó là điều khiển đốI tượng bởI một poa mà tiếp theo là chính sách lifespan bền bỉ.

khi một obr khách sử dụng cơ sở của ior trong kết nốI dán tiếp nó đơn giản như bắt đầu kết nốI tớI một kho chứa sự thực thi. một sự trả lờI sẽ chú ý rằng yêu cầu là dự định hiện tại cho máy chủ khác và sẽ nghiên cứu bản của nó để xem trước đó máy chủ đã sẵn sàng chạy chưa, và nếu như vậy thì nơi mà nó có thể định vị . nếu máy chủ chưa sẵng sàng chạy sự thi hành trả lời có thể bắt đầu nó , mặc dù nó phụ thược vào trước đó hoặc sự tự động khởi động không được hỗ trợ

khi một máy khách kéo theo đối tượng tham chiếu cho lần đầu tiên , lơò yêu cầu được gửi tới sự thi hành trả lời (implementation repository) mà trả lời bởi việc chi những chi tiết lơi mà máy chủ của đối tượng có thể tìm thấy ở hiện tại như hình 9-15 từ đó lời yêu cầu được đưa tới máy chủ thích hợp.

2. dịch vụ đặt tên

giống như các hệ phân tán khác corba cung cấp dịch vụ đặt tên nó cho phép máy khách tìm kiếm tham chiếu đối tượng sử dụng một tên trên nền đặc tính hình thức 1 tên trong corba là một trình tự của thành phần tên mỗi cái mang hình dạng của một cặp (id, kind) nơi mà id và kind là một chuỗi bình thường id được sử dụng như tên của một đối tượng bởi nghĩa của một đặc tính ... như là steen hoặc elke thuộc tính kin chỉ rõ sự đơn giản của tên đối tượng tương tự như sử dụng gần được mở rộng trong tên file ví dụ tên của đối tượng "steen" có thể có loại dir nói như đó là một đối tượng hiện tại không có sự hạn chế với khía cạnh tới cấu chúc của kiểu đề tên mỗi nút trạng thái đề tên được xem như một đối tượng 1 đặt tên nhữ cảnh là một đối tượng mà lưu trữ một bản thành phần tên của bản đồ tham chiếu đối tượng trong ngữ cảnh có thể chuyển đến một đồ thị đặt tên ngữ cảnh đặt tên không có một ngữ cảnh nguồn gốc tuy nhiên mỗi orb được yêu cầu cung cấp 1 đặt tên ngữ cảnh ban đầu cái mà ảnh hưởng hoạt động như là nguồn gốc trong đặt tên đồ thị. Tên thường được quyết định với khía cạnh tới việc đưa một tên cảnh ngữ trong các từ # nếu máy chủ muốn quyết định nó cần thiết là nó không kéo theo phương pháp quyết định trong đặt tên ngữ cảnh đặc biệt nếu tên quyết định sự thành công nó luân uân trả về 1 tham chiếu tới đặt tên ngữ cảnh hoặc tham chiếu tới đối tượng có tên trong cảm giác này tên quyết định đến sự chính xác như đã giải thích trong chương 4.

9.1.5. sự đồng hoá.

2 điều quan trọng trong phục vụ là dễ dàng đồng bộ hoá trong corba cầu đó là sự đồng tính dịch vụ điều kiển của nó và dịch vụ dao dịch của nó.

2 dịch vụ cộng tác với thực hiện fan tán và tổ thực thi sử dụng 2 phần nhìn.

Mô hình bên dưới sự thực thi (model underlyng transactions) trong corba như kì sự kế tiếp một sự thực hiện được khởi đầu bởi một máy khách và gổm có chuỗi các lời yêu cầu của đối tượng when như là một đối tượng được kéo theo cho lần đầu tiên nó tự động trở thành một phần của sự thực hiện do đó đối tượng của máy chủ được thông báo rằng bây giờ nó đang tham gia trong một sự thực hiện (dao dịch - transaction) những thông tin này là hoàn toàn được chuyển tới máy chủ khi keóp theo một đối tượng .

Có 2 kiểu đối tượng cơ bản đó là có thể một phần của một sự thực hiện (transaction ) 1 đối tượng có thể khôi phục là 1 đối tượng có khả năng can dự vào 2 cam kết dao thức cụ thể máy chủ cho mỗi đối tượng có thể hỗ trợ bãi bỏ sự thực hiện bởi sự quay lại (rolling-back) tất cả các thay đổi mà đã làm nên như là kết quả của việc kéo theo 1 trong số các đối tượng có thể khôi phục được (recoverable object) tuy nhiên nó cũng hợp lý để kéo theo những đối tượng như là một phần của sự thực thi nó không thể quay lại tới 1 trang thái trước khi một sự thực hiện (sự dao dịch) bắt đầu cụ thể đối tượng thực hiện được thực hiện bởi máy chủ đó là không tham gia vào 2 pha cam kết giao thực của sự thực hiện (a transaction's two - phase commit protocol). đối tượng thực hiện thường chỉ là đối tượng đọc ra.

Vì thế nó gần như sự thực thi trong corba tương tự như sự thực thi phân tán và giao thức của chúng đã được chúng ta thảo luận ở chương 5 và 7.

Tương tự như vậy cái nhìn về dịch vụ cung cấp với sự đồng tình cùa dịch vụ điều khiển là rất nhiều như 1 sự mong đợi. trong thực hành dịch vụ được thực thi khi sử dụng 1 khoá trung tâm nó không phải sử dụng kỹ thuật khoá phân tán dịch vụ phân biệt đọc với ghi nhờ các khoá và nó chỉ có khả năng hỗ trợ kháo tại các hạt cát (granularities) khác nhau như là sự thường xuyên được cần đến trong cơ sở dữ liệu. ví dụ nó tạo ra cảm giác phân biệt sự khoá toàn bộ từ sự khoá 1 bản ghi đơn giản cho những thông tin có sự khoá sa hơn trong sự khoá có hạt.

9.1.6. caching and replication

Corba không hỗ trợ sự cung cấp đặc điểmcaching và replication chỉ có bản sao của đối tượng cho khả năng chịu đựng sai sót như là chúng ta mô tả trong đoạn được bao gồm cả trong phiên bản 3 của corba. Sự thiếu hỗ trợ cho đặc điểm bản sao ngụ ý rằng phát triển ứng dụng sẽ phải dùng đến 1 phương pháp đặc biệt khi bản sao được cần tới trong hầu hết các trường hợp như là nhửng phương pháp là cơ sở trong sử dụng thiết bị chắn.

Hãy cho chúng ta xem xét ví dụ của bản sao cho sự thực hiện có thể được hợp nhất trong corba mục đích là gặp để cascade trog hệ thống cascade đích của nó là cấp một đặc điểm có thể biến đổi được mà cho phép các kiểu đối tượng corba cung cấp một dịch vụ cashing đó là được thực thi như là khả năng tập hợp rộng lớn của object servers các máy chủ đối tượng mỗi tham khảo (referred to as) try domain caching severs (dcs) mỗi dcs là 1 máy chủ đối tượng chạy trên corba một tập hợp của dcs có thể trải rộng 1 mạng toàn cục như mạng internet cached copy cùng 1 đối tượng được tổ chức vào trong 1 phân cấp nó giả bộ như 1 máy khách đơn như là chủ nhân của 1 đối tượng. có thế đăng ký là đối tượng của dcs cục bộ. Dcs trở thành nguồn gốc của một phân cấp những máy khách khác có thể yêu cầu dcs cục bộ của chúng tới caches copy của đối tượng, mỗi trường hợp đó dcs sẽ tham gia đầu tiên vào vị trí hiện hành của phân cấp của dcs cái mà đã hoàn thành caches của đối tượng.

Cascade hỗ trợ phương thức nhất quán của máy khách trung tâm mà chúng ta đã thảo luận trong chương 6. tiếp theo đó nó hỗ trợ tổng sắp xếp bởi việc tất cả cập nhật được đảm bảo hoạt động trong cùng một thứ tự ở tất cả mọi nơi. mỗi đối tượng có thể có phương thức nhất quán về kết hợp của chính mình. Nó không phải là chính sách hệ thống mở rộng cho sự xác nhận nhất quán của đồi tượng caches

Như chúng ta đã biết ở chương 6 khi bản sao cho cập nhật là quan trọng thí phương thức nhất quán khác nhau có thể hỗ trợ đồng thời,bởi vì ứng dụng của phương thức rất mạnh phụ thuộc vào cách sử dụng và những mẫu truy nhập của đối tượng cascade gặp những uyêu cầu đó như là dịch vụ corba, cascade dựa vào sự nặng của thanh chắn tới một máy khách, cascade hầu như là vô hình. tất cả vấn đề giải quyết sự nhất quán là ẩn nấp bên cạnh bề mặt mà đối tượng cung cấp thông thường chỉ 1 thời gian máy khách có truy cập rõ ràng tới cascade là khi nó yêu cầu chính dcs định vị để bắt đầu caching một đối tượng đặc biệt . trước đó như là 1 đối tượng đượcc kéo theo lời yê7u cầu được ngăn chặn tại orb của máy khách và sau đó tiếp tục tới dcs

phụ thuộc vào phưng thức nhất quán cho đối tượng tham chiếu cộng thêm vào thông tin là cộng thêm lời yêu cầu trước khi gửi nó ra cho dcs . ví dụ khi máy khách yêu cầu nhất quán read - your - write nó cần thiết để kể cuối cùng viết thao tác là gì mà máy khách đã thấy .

đặc điểm tổ chức của dcs được chỉ ra ở hình 9-16 . 1 thông điệp dcs là số của những bàn copy của 1 đối tượng. như là 1 bản copy bao gồm trang thái và sự thực thi của thao tác trong trạng thái đó . trong corba thuật ngử corba , 1 dcs có cùng 1 người phục vụ như là bản gốc của 1 bàn copy của 1 đối tượng .thanh chắn dưới dcs ngăn chăn lời yêu cầu đến và rút thông tin đó ra . ví du máy khách việc cộng thêm vào lời yêu cầu sau đó tiếp đến 1 yêu cầu phương pháp điều khiển modun kết nối duy nhất với đối tượng tham chiếu như hình 9-16 mỗi đối tượng cached có chính sách đối tượng riêng của bó mà chứa đựng thông tin đặ biệt để yêu cầu phương pháp điều khiển .

mặc dù cascade cung cấp nhiều hoặc ít transparent caching của những chủ đối tượng nó gần như là có nhiều ảnh hưởng cần thiết để thực thi hư là dịch vụ caching cho corba . nặc dù những thanh chắn cho phép yêu cầu thay đổi như là sự cần thiết tới thực thi như ở dịch vụ, không hỗ trộ được cung cấp bởi corba.

9.1.7. fault tolerance (khả năng chịu đựng sai sót )

hệ thống corba có thiếu lâu dài hỗ trợ thực sự cho khả năng chịu đựng sai sót trong hầu hết các trường hợp sự thất bại đã là 1 báo cáo đơn giàn tới máy khách và hệ thống không đảm nhận hành động xai ví dụ nếu 1 đối tượng tham chiếu không thể với tới bởi vì chính máy chủ kết nối đã không có sẵng một máy khách đã rời khỏi chính nó.Trong CORBA phiên bản 3,khả năng chịu đựng sai xót là địa chỉ hoàn toàn (đầy đủ ).Điều đặc biệt của khả năng chịu đựng sai xót của CORBA có thể tìm trong (đ1G,2000d ) *Nhóm đối tượng

cơ sở cho giải quyết sự thất bại trong CORBA là đối tượng bản sao trong những nhóm tuy nhiên 1 đối tượng có thể tham chiếu nếu như nó là đối tượng đơn 1 nhóm cung cấp cùng 1 dao diện như là bản sao chứa nó . trong các từ # sự lặp lại là trong suất tới máy khách kế hoạch bản soa # dược hỗ trợ bao gồm hỗ trợ chính bản sao lặp lại các hành động và sự lặp lại cơ sở số đại biểu quy định những kế hoạch đã có được thảo luận trong chương 6 . có nhiều kết nối thuộc tính với nhóm đối tượng khác nhau , 1 cách tường tận có thể tìm thấy trong (omg,2000d)

để cung cấp bản sao và giao dịch thất bại càng nhiều càng tốt , những nhóm đối tượng không có sự phân biệt từ các đối tượng corba thông thường , trừ khi 1 bản sao tốt hơn chính nó : 1 vấn đề quan trọng , trong đó lưu ý là làm cách nào để 1 nhóm đối tượng được tham chiếu . tiếp theo phương pháp là sử dụng các kiểu đặc biệt của ior , gọi 1 interoperable objcet group reference (iogr) chìa klhoá khá với ior bình thường đó là iogr chứa đựng nhiều tham chiếu tới các đối tượng khác đáng chú ý là sự lặp lại trong cùng 1 nhóm đối tượng . 1 ior có thể chứa nhiều tham chiếu nhưng tất cả chúng sẽ hướng tới cùng 1 đối tượng mặc dù tốt hơn là sử dụng 1 giao thức chung lập trung lập # nhau sau đó 1 máy khách chuyển 1 iogr tới orb sau đó orb xác nhận để kết nối với 1 trong các bản sao tham chiếu trong trường hợp của iior , orb tốt hơn là sử dụng thêm thông tin để tìm 1 trong các iiop profile của iogr như là thông tin có thể lưu trữ trong trường components mà chúng ta đã thảo luận ví dụ 1 iior profile đặc biệt có thể hướng tới phần chính hoặc sự hỗ trợ của 1 nhóm đối tượng. Xem hình 9-17

nếu kết nối 1 trong các bản sao bị sót máy khách orb có thể tiếp tục bởi sự cố gắng để kết nối tại bản sao khác đến máy khách thủ tục kết nối đã hoàn thành nó xuất hiện nếu như là máy khách đang kết nối vối 1 đối tượng corba bình thường.

* cấu trúc 1 ví dụ.

Để hỗ trợ những nhóm đối tượng và để quản lý sự hạn chế cộng thêm thất bại nó là cần thiết để cộng thêm thành phần tới corba 1cấu trúc hợp lý của khả năng chịu đựng sai sót trong phiên bản của corba được chỉ ra trong hình 9-18

Có nhiều thành phần dịch vụ mà đóng vai trò quan trọng là 1 cấu chúc xa hơn 1 điều quan trọng là quản lý sự lập lại , các mà chịu trách nhiệm trong việc tạo và quản lý 1 nhóm của đối tượng bản sao về nguyên tắc cơ bản chỉ có 1 quản lý bản sao mặc dù vậy nó có thể lặp lại cho khã năng chịu đựng.

* như chúng ta đã có trạng thái tới 1 máy khách không có sự # nhau giữa 1 nhóm đối tượng và những kiểu của đối tượng corba . để tạo 1 nhóm đối tượng 1 máy khách đơn giản kéo theo sự tạo thành đối tượng thao tác đơn giản như là được cung cấp trong trường hợp này là bởi 1 quản lý bản sao đặc biệt 1 kiểu đối tượng để tạo ra máy khách vẫn không biết sự việc đó là hoàn toàn tạo ra 1 nhóm đối tượng.

Số bản sao được tạo ra khi bắt đầu 1 nhóm đối tượng mới thường là xác định bởi hệ thống phụ thuộc vào giá trị mặc định 1 quản lý bản sao cũng là nguyên nhân thay thế 1 bản sao trong trường hợp thất bại bằng cách ấy đảm bảo rằng số bản xao không bị xoá thấp hơn mức nhỏ nhất có thể.

9.1.8. bảo mật

sự bảo mật của corba là 1 lịch sử dài những phiên bản đầu của corba chỉ rõ sự biết ơn trong lúc khó khăn của subjret cho lý do đơn giản rằng sự cố gắng phục vụ là đặc biệt tớI sự thất bạI của hệ thống bảo mnật trong corba phiên bản 2.4 dịch vụ bảo mật tiếp quản 400 trang để chỉ rõ và để tạo sự rõ ràng làm cách nào để bảo mật khít trong hệ thống corba bây giờ chùng ta mang đến 1 cái nhìn gần về sự bảo mật corba 1 cái nhìn khái quát của những vấn đề có thể tìm thấy trong (blakni,2000) cái mà được viết bớI 1 trong số tác giả của nguyên bản corba chỉ rõ bảo nmật .

chỉ rô 1 vấn đề quan trọng bảo mật trong corba đó là sự phục vụ cần cung cấp 1 thu thập thích hợp của máy cái mà có thể được sử dụng để làm công cụ sự đa dạng của chính sách bảo mật

cái gì mà làm phức tạp vấn đề là những sự phục vụ đó cần phảI cung cấp những điểm khác nhau trong thờI gian và không gian ví dụ: nếu 1 máy khách muốn bảo đảm kéo theo 1 đốI tượng , chúng ta cần quyết định khi nào bộ máy bảo mật được sử dụng (tiết kiệm thờI gian kết nốI, yêu cầu thơpì gian hoặc cả 2 ) và nơi mà bộ máy cần đ0ược sử dụng (ví dụ : tạI cấp mức độ của 1 ứng dụng bên cạnh 1 orb hoặc trong suất quý trình di chuyển 1 thống điệp)

tái tinm của bào mật corba được tạo thành bởI cung cấp cho bảo vệ an toàn yêu cầu đốI tượng . ý tưởng dướI đó là yêu cầu ứng dụng của đốI tượng cần phảI không ý thức được sự bảo mật khác nhau đã được sử dụng tuy nhiênnếu 1 máy khách có yêu cầu bảo mật đặc biệt máy khách cần phảI được sự cho phép chỉ định những yêu cầu vì thế chúng có thể mang đến 1 account khi 1 đốI tượng được kéo theo 1 tình huống tương tự được xẩy ra cho 1 đốI tượpng đó là sự kéo theo phương pháp này chỉ dẫn tớI 1 tổ chức trung được chỉ ra trong hình 9-18

khi 1 máy khách kết nốI tớI 1 đốI tượng trong sự sắp sếp để kéo theo 1 đốI tượng, máy khách orb quyết định sự phục vụ bảo mật nào là cần thiết . cạnh khách hàng để hỗ trợ để đảm bảo yêu cầu sự lựa chọn của dịch vụ được quyết định bởI chính sách bảo mật được kết nốI vớI 1 vùng quản trị trong đó máy khách đang thực hiện, nhưng chỉ bởI 1 hính sách đặc biệt của máy khách đó chính sách bảo mật là lý thuyết bớI ý nghĩa của đốI tượng chính sách đó là liên kết vớI máy khách . trong thực hành , 1 vùng mà trong đó máy khách đang thực hiện sẽ tạo ra chính sách bảo mật trong orb của máy khách đó . bằng phương pháp 1 tập bợp đặc biệt những đốI tươ85ng chính sách mặc định là tự động kết nốI vớI máy khách vd: những đốI tượng chính sách bao gồm sự chỉ rõ kiểu của của sự bảo vệ thông điệp cái mà được yêu cầu , 1 đốI tượng có 1 danh sách tin cậy thí dụ là giảI thích tưởng tận có thể tìm trong blakni,2000

1 cấu trúc tương tự được theo sau phục vụ quay lạI 1 vùng quản trị tạI đó đốI tượng kéo theo được thi hành sẽ yêu cầu cái tập hợp đặc biệt của dịch vụ bảo mật được sử dụng. giống như là đốI tượng kéo theo sể có tập hợp của đốI tượng chính sách kết nốI trong thông tin đốI tượng đặc biệt được lưu trữ. Phương pháp # có thể tiếp theo 1 bảo mật phương tiện trong corba trong phần chính tạo orbs càng chung chung càng tốt nó thèm muốn 1 dịch vụ bào mật đặc biệt khác bằng phương pháp của dao diện chuẩn cái mà dấu ở những sự thực thi của những nhiệm vụ. những dịch vụ đó có thể chỉ rõ bằng cách gọI sự thay đổI trong corba

Cách thay thế các dịch vụ bảo mật được thừa nhận để thực thi sự kết hợp vớI 2 thanh chắn # nhau được tìm thấy trong hình 9-26. các thanh chắn điều khiển chuy nhập là cấp độ yêu cầu các thanh chắn kiểm tra tính đúng đắn của sự chuy cập 1 yêu cầu thêm vào đó thanh chắn yêu cầu bảo vệ cấp độ gửI thông điệp là thận trọng khi thực thi bảo vệ 1 thông điệp. trong các từ # thanh chắn này có khả năng mã hoá yêu cầu mà trả lờI 1 cách toàn vẹn và chính xác

Các thanh chắn yêu cầu bảo vệ làm quyết định vai trò như là sự trả lờI cho việc cài đặt ngữ cảnh bảo mật cho client cái mà sẽ cho phép yêu cầu bảo mật của target object ngữ cảnh bảo mật này được trình bày bởI phương pháp của đốI tượng ngữ cảnh bảo mật , chứa đựng tất cả các thông tin cần thiết và phương pháp cho sự bảo mật kéo theo target object ví dụ: nó yêu cầu những kỹ năng và ãnh hưởng của phương thưxc1 mã hoá và giảI mã thông điệp , lưu trữ và tham chiếu tớI 1 tài liệu tin cậy nào đó

Các object's server sẽ tạI nên ngữ cảnh bảo mật cho chính nó bởI vậy hầu hết các thanh chắn client sẽ gửI 1 thông điệp đến object server bao gồm những thộng tin cần thiết để chứng minh tính sát thực từ máy chủ tớI máy khách tạo ngữ cảch bảo vệ cho các yêu cầu đến sau . chú ý rằng các thanh chắn yêu cầu bảo mật tạI các object's server sẽ kiểm tra đốI tượng chính sách để biết 1 trong 2 yêu cầu về sự bảo mật như thế nào có thể biết được bởI sự chở về các câu trả lờI tớI client có thể bao gồm các thông tin thêm vào sẽ cho phép client chứng minh tính chính xác đến server

Sau khi khởI tạo sự thay đổI thông điệp máy khách sẽ giớI hạn đến target object. Và 2 bản sẽ thiết lập sự liên kết bảo mật . từ đó yêu cầu bảo mật có thể thay thế bằng cái mà các thanh chắn yêu cầu bảo mật và đáp ứng các thông báo tiếp theo đến các chính sách đồng ý trên giữa client và object's server

1 vai trò quyết định thiết lập yêu cầu bảo mật được làm bởI 1 đốI tượng riêng biệt vớI 1 giao diện chuẩn gọI là vault object. Vault object được gọI bởI các thanh chắn yêu cầu bảo mật để tạo 1 ngữ cảnh đốI tượng bảo mật . đọng thông tin đầu tiên từ các đốI tượng chính xách kết hợp của client rõ ràng hơn vault object. phảI được thực hiện như là 1 phần của orb trong cách trống ăn cắp và thuộc về sự tín nhiệm cơ sở máy tính của mọI hệ thống

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

Chủ đề thứ hai của hệ phân tán chúng ta sẽ xem xét đến mô hình đối tượng phân tán (DCOM) của Microsoft. Như tên đã được đề nghị, DCOM được phát triển từ COM, nó được viết tắt từ Component Object Mode. COM là một công nghệ của các hệ điều hành Windows khác nhau của Microsoft mà bắt đầu từ Windows 95. Đối lập với CORBA, DCOM không được cam kết, nó chỉ được phản ánh trong 300 trang giấy về các giá trị. COM ra đời 10/1995. Thật không may mắn, sự thật rằng DCOM đã tuột khỏi tay một kiến trúc và thiết kế tốt, nó bao gồm tối thiểu các phần tử mà các thành phần và dịch vụ được xây dựng được xây dựng. DCOM là một hệ phức tạp trong đó có nhiều công việc giống nhau có thể được thực hiện theo nhiều cách khác nhau, vì thế cùng tồn tại nhiều cách giải quyết đồng thời là không thể.

Thật không quá khó khăn để phê phán DCOM. Dù vậy so sánh với CORBA, nó có cơ sở chính đán để nói rằng DCOM là công nghệ sẵn sàng được mở rộng. Cùng với hàng chục triệu người sử dụng Windows hàng ngày trong môi trường mạng, bản thân DCOM đã được mở rộng để sử dụng. Cùng với CORBA và nhiều hệ phân tán nữa sẽ tồn tại trong thời gian dài.

Tiếp theo chúng ta sẽ xem đến một phần quan trọng của DCOM. DCOM được trình bày trong một cuốn sách lập trình hướng đối tượng như (Platt,1998; hoặc Rogerson 1997). Lời giới thiệu rất hay về công nghệ của DCOM được đưa ra bởi Eddon và Eddong (1998). Tổng quan về DCOM trong hệ điều hành Windows 2000 có thể tìm thấy trong (Chappell,2000).

9.2.1. Tổng quan về DCOM

Nền tảng của DCOM được hình thành bởi thành phần công nghệ hướng đối tượng COM của Microsoft. Mục đích của COM là hỗ trợ sự phát triển của các thành phần mà có thể hoạt động linh hoạt và có thể tương thích với các bộ phận khác. Một thành của COM có khả năng thực hiện lệnh được chứa trong thư viện (liên kết động) hoặc trong định dạng của chương trình thực hiện.

Bản thân COM được đề nghị trong định dạng của thư viện, nó được liên kết để xử lý. Đầu tiên chúng được phát triển như là để gắn kết các tài liệu. Như đã trình bày ở phía trước, một tài liệu gắn kết là một tài liệu được xây dựng từ các phần khác nhau ví dụ như văn bản, hình ảnh, bảng...Mỗi một bộ phận được kết hợp cho các ứng dụng để chế tác chúng.

Để hỗ trợ cho vô số các tài liệu gắn kết, Microsoft cần có cách chung để phân biệt giữa các phần khác nhau và gắn kết chúng lại với nhau. Khởi đầu là OLE (Object Linking and Embedding) (Nhúng và liên kết đối tượng). Phiên bản đầu tiên của OLE được sử dụng theo cách khá phức tạp của thông báo để đưa ra thông tin giữa các thành phần. Nó nhanh chóng được thay thế bằng một phiên bản mới hơn (và cũng được gọi là OLE), nhưng nó được xây dựng với lớp linh hoạt trên cùng, được gọi là COM

hinh

Ở hình 9.21 cũng chỉ ra ActiveX, nó được sử dụng để bao bọc mọi thứ được gọi là OLE, cùng nhau tạo ra những tính năng mới.Những tính năng này chủ yếu là tính linh hoạt về dung lượng của các thành phần bắt đầu từ những quy trình khác nhau, hỗ trợ một cách chính xác là hơn hoặc kém các nhóm tiêu chuẩn của đối tượng mà trong đó chúng được gọi là điều khiển ActiveX. Chúng xuất hiện để thống nhất giữa các chuyên gia về DCOM (thậm chí cả Microsoft) mà không có sự mô tả nào về ActiveX là chính xác. Bởi vậy chúng ta sẽ không cố gắng định nghĩa ActiveX nữa.

DCOM được thêm vào để tổ chức này có khả năng xử lý để truyền thông với các thành phần khác mà nó được đặt trên các máy khác nhau. Tuy nhiên các máy cơ bản để thay đổi thông tin giữa các thành phần được đề nghị bởi COM thường được chính xác bằng DCOM. Nói một cách khác, theo cách lập trình để phân biệt giữa COM và DCOM thường là ẩn dưới các giao diện khác nhau. Chúng ta sẽ thấy DCOM chính được đề nghị xử lý trong suốt. Các định dạng khác của hệ phân tán trong suốt ít rõ ràng.

* Mô hình đối tượng

Hầu như tất cả các hệ phân tán đối tượng cơ bản khác, DCOM chấp nhận cho mô hình đối tượng từ xa, đối tượng của DCOM có thể được xử lý giống như trên máy khách, giống như trên cùng máy và trên máy từ xa.

Như CORBA, mô hình đối tượng của DCOM được canh giữa xung quanh sự thực hiện giao diện. Nói một cách đơn giản, đối tượng của DCOM là sự thực thi giao diện khá đơn giản, một đối tượng đơn giản có thể thực hiện trên vài giao diện cùng một lúc. Rút gọn hơn CORBA, tuy nhiên DCOM chỉ có giao diện nhị phân. Một giao diện mà bản chất là một bảng cùng với con trỏ để thực thi là một phần của giao diện. Tuy nhiên để đinh nghĩa giao diện nó vẫn còn là một cách thuận tiện để sử dụng một phần của IDL (Interface Definition Language) (Ngôn ngữ định nghĩa giao diện). DCOM cũng giống như IDL được gọi là MIDL (Microsoft IDL) tự nó mà các lớp chuẩn cho giao diện nhị phân có thể được phát sinh.

Thuận lợi của việc sử dụng giao diện nhị phân là giao diện của ngôn ngữ lập trình độc lập. Trong trường hợp CORBA, mỗi lần ngôn ngữ lập trình khác cần để được hỗ trợ. Bản đồ về các đặc tính của IDL để cho ngôn ngữ cần để chuẩn hoá. Sự chuẩn hoá là không cần thiết cho giao diện nhị phân.

Mỗi giao diện của DCOM được nhận dạng duy nhất bằng 128 bit được gọi là IID (Interface Identifier). Mỗi IID là toàn cục đơn nhất, không có hai giao diện mà có cùng IID. Sự nhận dạng được phát sinh bởi sự phối hợp của số lượng lớn các số ngẫu nhiên, thời gian cục bộ và địa chỉ trên giao diện mạng của các host hiện tại. Khả năng rằng hai phát sinh nhận dạng giống nhau thì có thể về 0.

Một đối tượng DCOM được tạo ra trong trường hợp của lớp. Để làm như vậy, nó cần thiết có các giá trị của biến. Cho mục đích này, DCOM có lớp đối tượng. Như một đối tượng có thể làm bất cứ thứ gì mà thực thi giao diện IClassFatory. Giao diện này chứa phương thức CreateInstance, nó có thể so sanh với cách sử lý mới trong C++ va Java. Hiện CreateInstance trên mỗi lớp đối tượng có hiệu quả rằng đối tượng của DCOM được tạo ra. Đối tượng thuộc về cùng một lớp sẽ phát sinh khác nhau chỉ chú ý đến trạng thái hiện tại của chúng. Thuyết minh một đối tượng bằng cách đưa ra một lớp đối tượng, nó có thể để miêu tả một phương thức chứa trong những giao diện đó. Trong DCOM, mỗi một lớp đối tượng có nghĩa là nhận dạng lớp đơn nhất toàn cục (CLSID).

Tất cả các đối tượng thực thi một giao diện đối tượng chuẩn được gọi là IUnknow. Khi mà một đối tượng được tạo ra được gọi là CreateInstance. Lớp đối tượng trả về một con trỏ của giao diện, một phương thức quan trọng được chứa trong IUnknown là phương thức QueryInterface, nó trả về một con trỏ khác thực thi một đối tượng khác đưa ra IID.

Một sự phân biệt quan trọng giữa mô hình đối tượng CORBA là tất cả các đối tượng của DCOM là tạm thời. Nói một cách khác, một đối tượng không có một máy nào có thể tham chiếu tới, đối tượng bị phá bỏ. Tham chiếu đếm được thực hiện bởi gọi tới AddRef và Release, cả hai đều là của IUnknown. Chỉ có một đối tượng tạm thời là tránh xa một cách hiển nhiên, vì sao mỗi đối tượng nên sở hữu, liên quan đến nhận dạng đơn nhất toàn cục. Vì lý do này, đối tượng trong DCOM có thể được tham chiếu chỉ có nghĩa giao diện của con trỏ.

DCOM hỗ trợ dẫn chứng động của đối tượng. Đối tượng cho một dẫn chứng yêu cầu được xây dựng vào thời gian chạy yêu cầu thực thi giao diện Idispatch. Giao diện này gần giống như giao diện dẫn chứng động của CORBA.

* Loại thư viện và đăng kí

Sự tương đương của DCOM, của giao diện CORBA chỗ chứa được gọi là thư viện. Thư viện tổng quát là sự liên kết giữa các ứng dụng hoặc một số lượng các thành phần chứa các lớp của đối tượng khác nhau. Bản thân của thư viện có thể chứa một phần của ứng dụng. Trong một trường hợp nào đó, kiểu thư viện là chính được sử dụng cho hình dạng, chữ kí chính xác của phương thức mà nó được hiện động. Thêm vào đó các công cụ lập trình thường sử dụng kiểu thư viện để phát triển lập trình trợ giúp, ví dụ giao diện trên màn hình.

Thực tế để kích hoạt một đối tượng để đảm bảo rằng nó được tạo ra và đạt trong một tiến trình xử lý, từ đó có thể chấp nhận dẫn chứng phương thức. DCOM sử dụng cửa sổ đăng kí Windows trong liên kết với các xử lý đặc biệt được gọi là Service Control Manager (Quản lý điều khiển dịch vụ). Việc đăng kí được sử dụng để lưu lại bản đồ từ lớp nhận dạng (CLSID) cho một tên lớp file cục bộ chứa sự thực thi của lớp. Bất cứ khi nào quá trình xử lý muốn tạo ra một đối tượng nó phải đảm bảo đầu tiên rằng lớp đối tượng phải được nạp.

Khi một đối tượng được thực thi từ một host từ xa, một đường truyền khác được tiếp theo. Trong trường hợp này, máy khách nối với Host Service Control Manager (SCM) nó được xử lý để đáp ứng lại mọi hoạt động của đối tượng , gần giống như thực thi trong CORBA. SCM mà trên đó host từ xa nhìn vào đó bắt đầu quá trình xử lý trong đó. Giao diện con trỏ tại máy chủ được thu thập và trở lại máy khách, nơi mà nó không được thu thập đến quyền ưu tiên. Chi tiết giao diện con trỏ thu thập và không thu thập sẽ được trình bày ngắn gọn.

Toàn bộ cấu trúc của DCOM, trong sự biên dịch cùng với sử dụng lớp đối tượng, đối tượng, phân quyền được chỉ ra trong hinh 9.23. Bên cạnh các máy khách, quá trình xử lý được đua ra SCM và được đăng kí để tìm sự trợ giúp và thiết lập liên kết đến các đối tượng từ xa. Máy khách sẽ được phân quyền thực thi trên giao diện của đối tượng.

Đối tượng trên may chủ sẽ bao gồm tập hợp của dẫn chứng được thu thập và không được thu thập, nó được thông qua các đối tượng thực tế. Sự truyền thông giữa máy khách và máy chủ được thực hiện bởi RPC

hinh 9.23(trang 530)

Dịch vụ của DCOM

DCOM được coi là phần mở rộng của COM với ý nghĩa là thêm vào các khả năng của truyền thông từ xa. Tuy nhiên, bản thân COM được suy vào trong phiên bản mới COM+. COM+ có thể được xem xét như là một tiến bộ của COM bao gồm nhiều dịch vụ và nó đã được đề nghị từ trước như đã thêm vào COM. Ở khía cạnh nào đó COM+ chứa các tính năng cho máy chủ để nó có thể có hiệu quả với một số lượng lớn các đối tượng. Thêm vào đó các dịch vụ được thêm vào được thực thi có nghĩa là mở rộng máy chủ như đề nghị hệ thống thông báo kiểu hàng đợi.

Thêm một lần nữa chúng ta làm phép so sánh giữa COM, DCOM, COM+ và các dịch vụ mở rộng thường khó và chỉ đạo thêm lộn xộn. Đơn giản chúng ta định nghĩa DCOM chứa COM, COM+ và ActiveX. Nơi có thể và hữu dụng, chúng ta có thể mở rộng dịch vụ rằng DCOM có thể tin tưởng, từ cấu hình thực tế rằng đó là một phần của DCOM. Để đưa ra sự hiểu biết về DCOM, chỉ ra dịch vụ CORBAvà chỉ báo thuộc về bản sao của DCOM. Dịch vụ Windows 2000 có các giá trị chung về DCOM cho máy khách.

Quan trọng để chú ý rằng bản thân DCOM, không giống như CORBA, nó không hoàn toàn là hệ phân tán bởi vì nó thừa nhận sự tồn tại của nhiều dịch vụ mở rộng. Ví dụ hiển nhiên tên của dịch vụ nên là một phần của hệ phân tán. Tên trong Windows 2000 được hỗ trợ thông qua Active Directory. Bản chất của dịch vụ chứa đựng một tập hợp các thư mục chủ LDAP. Tuy nhiên Active Directory không phải là một phần của DCOM. Khi chạy ứng dụng DCOM trên môi trường UNIX, ứng dụng không thể sử dụng với cùng tên của dịch vụ đã được đề nghị trong môi trường Windows. Nó luôn luôn hạn chế sự di động.

Hình 9.24 (trang 531)

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

Hinh 9.25(trang 533)

Sự kiện trong DCOM có thể được lưu trữ. Trong trường hợp một thuê bao không hoạt động khi một sự kiện được xảy ra, sau đó nó có thể gọi lại sự kiện nếu đó là điều mong muốn. Trong trường hợp hệ thống sự kiện thuyết minh các lớp sự kiện cung cấp, nó dùng lại hàng đợi bằng cách hiện lên các phương thức kết hợp. Sự ảnh hưởng rằng các phương thức sự kiện có thể được gọi lại ngay trong thuê bao, trong trường hợp sự kiện không kiên nhẫn.

Thông báo

Bên cạnh những truyền thông đồng bộ tạm thời, DCOM cũng được cung cấp những truyền thông đồng bộ kiên nhẫn có nghĩa là cầu hình hàng đợi (Queued Component QC). QC thực chất là giao diên của Thông báo hàng đợi Microsoft (MSMQ), một hệ thống thông báo hàng đợi rất giống như IBM MQSeries. Một đặc tính của QC là nó được giấu hoà toan trong MSMQ từ các máy khách và đối tượng. Thay vì xử lý các phương thức hiện trong một dãy dài như các lời gọi đồng bộ được thảo luận ở dưới.Một lời gọi đồng bộ trong trường hợp của QC làm hạn chế giao diên chứa trong phương thức đó rằng chỉ cho nhập vào tham biến. Phương thức có trả lại giá trị hoặc trả lại tham biến có thể được gọi là lời gọi đồng bộ. Mỗi lần mà máy khách hiện như phương thức, thí sự hiện đó tự động thu thập và cất giữ cục bộ bằng hệ thống con QC tại máy khách. Sau khi máy khách kết thúc phương thức hiện, nó sẽ chỉ ra một giao diện đã thoát bằng cách gọi sự kiện Release, các phương thức được thu thập và cất giữ được gửi qua MSMQ.

Nhờ vào việc tới đích, hệ thống con của QC không thu thạp mỗi lần hiện và nhận hiện tiếp đối tượng. Không có sự đảm bảo nào được đưa ra rằng mỗi lần hiện được sắp xếp theo thứ tự như nó được phát ra trừ khi nó là một phần của sự giải quyết. Thực tế, trừ khi yêu cầu hiện, còn không có sự kiện nào được đảm bảo là đúng chỗ.

MSMQ giống như một hệ thống hàng đợi như MQSeries, cung cấp hàng đợi giải quyết. Trong một biểu mẫu đơn giản nhất, hàng đợi giải quyết cung cấp một tập hợp các thông báo nó được để trong hàng đợi tiếp theo (hoặc đích) hoặc không nào trong số chúng. Thêm vào đó, một hàng đợi giải quyết sẽ đảm bảo rằng một thông báo sẽ được hồi phục lại sau khi phá bỏ giá trị. Một thuận tiện của biểu mẫu tồn tai giải quyết trong đó như là một sự xử lý trên một hàng đợi giải quyết cùng biểu mẫu tạo thành các giải quyết lồng lớn hơn

9.2.3

Một mô hình đối tượng từ xa của DCOM xuất hiện lần đầu đã liên quan đến sự tiến triển.

Máy khách

Bên cạnh các máy khách cung cấp DCOM đó là một điều mong đợi. Cho máy khách, mọi thứ đều đượcxem như là giống nhau như thể chúng đang chạy trên đối tượng có địa chỉ trống. Nói một cách khác, các đối tượng được tạo ra và xuất hiện giống như nó được thực hiện trong ngày trước khi DCOM tồn tại trong COM.

Trong DCOM, sự tham chiếu đến một đối tượng của máy khách như giao diện một con trỏ. Con trỏ này được sử dụng bởi máy khách khi hiện lên các giá trị của phương thức trong giao diện tham chiếu. Khi bản thân một đối tượng đặt trong một máy ở xa, giao diện của máy khách được thực thi nghĩa là nó được uỷ quyền để thu thập sự hiện và gửi các yêu cầu tới đối tượng.

Làm thế nào để một xử lý A thông qua một đối tượng tham chiếu tới một xử lý khác, tới B? Thực chất một con trỏ không tạo ra một hướng nào. Thay vì những gì B cần xử lý ở cuối là một con trỏ cho sư thực thi giống như giao diện mà A xử lý. Giao diện này là đơn nhất đượ định nghĩa bởi IID. Xử lý A sẽ thông qua kết nối thông tin với xử lý B, như sự chỉ định đối tượng và truyền tải giao thức mà nó được sử dụng. Xử lý B có thể thực thi thay cho các giá trị của giao diện, nó có thể đơn giản nạp về để thực thi và bắt đầu hiện phương thức.

Vấn đề chính của sự thay thế này là cách tiếp cận chuẩn cho yêu cầu hiện thu thập. Sự thay thế này tự động phát sinh trong các trường của MIDL hoặc trong cấu trúc từ thông tin được lưu trữ trong kiểu của thư viện. Tuy nhiên không có sự thu thập nào là tốt nhất.

Bên cạnh các tiêu chuẩn thu thập, DCOM cung cấp cho khách hàng thu thập bằng cách người phát triển có thể hoàn toàn quyết định cách nào thay thế và kết nối đối tượng truyền thông. Câu hỏi là làm cách nào để tham chiếu khi khách hàng được uỷ quyền sử dụng. Cùng với tiêu chuẩn của sự thu thập, giả định rằng mặt nhận được có tất cả các giá trị mã thu thập, vì vậy một IID của giao diện có đủ khả năng để nạp mã và cấu trúc đó một giao diện thay thế.

Theo hướng đó, một đối tượng tham chiếu cúng với sự thu thập của khách hàng được thay thế bằng thu thập thay thế của người gửi. Nó gần giống như tham chiếu một đối tượng trong Java. Bởi vì sự thu thập là một cách của đối tượng, nó là cần thiết để nhận xử lý có đoạn mã thích hợp để không thu thập các chuỗi của byte mà nó được trình bày sự thu thập thay thế. Đoạn mã này được giả định các giá trị tại điểm nhận và định dạng thông qua CLSID

Một điều quan trọng là chú ý sự khác nhau tài tình giữa đoạn mã sử dụng sự thay thế thu thạp và không thu thập, và sự thu thập như là được thực hiện bản thân nó. Trong trường hợp sau đó, sự thu thập được đánh giá cao sụ hiện các phương thức được chứa đựng trong giao diện như là sự thực thi thay thế. Sự uỷ quyền quan tâm tới truyền tải sự hiện diện vào trong thông báo, tương tự, sự trải thông báo chứa trong kết quả hiện. Thu thập phân quyền cùng với sự truyền tải đoạn mã của sự thay thế vào trong một chuỗi các bytes, và gửi nó thông qua mạng.

hình 9.26 (trang 536)

Máy chủ DCOM

Đối tượng DCOM được thừa nhận rằng hơn hoặc kém hơn bản thân chứa đựng trong hướng mà các tuỳ chọn khác nhau bởi bộ tích hợp đối tượng di động của CORBA là phần cứng trong mỗi đối tượng tách rời của DCOM., thậm chí nếu nó nằm trên một host từ xa.

Một host hỗ trợ đối tượng cho DCOM sẽ được thực hiện trong trường SCM. Một SCM đáp ứng một hoạt động của đối tượng, một thủ tục như phía sau. Như một máy khách giữ một CLSID của lớp đối tượng. Thuyết minh cho đối tượng mới, nó được thông qua CLSID đó để đăng kí cục bộ nơi mà một tìm thấy được thực hiện cho mỗi host mà đối tượng trên máy chủ được đặt. CLSID được thông qua kết hợp SCM cùng host đó. SCM sẽ tìm CLSID trong đó đã được đăng kí để tìm file để nạp vào lớp đối tượng mà trong đó có thể thuyết minh một đối tượng mới.

SCM chung bắt đầu một xử lý mới là nạp đối tượng lớp định dạng và tiếp thao thuyết minh một đối tượng. Cổng mà đựoc gắng gần đó tạo ra máy chủ sẽ nghe các yêu cầu hiện được đăng kí bởi SCM, cùng với sự định dạng đối tượng được tạo ra gần đó. Sự gắn kết thông tin này sẽ trở lại máy khách nơi mà tại điểm kết nối đối tượng chỉ ra không cần sự can thiệp của SCM.

9.2.4 Đặt tên

DCOM được cung cấp chỉ có mối quan hệ với tên mức thấp của đối tượng.

Biệt danh

Mô hình đối tượng cơ bản của DCOM hỗ trợ chỉ đối tượng tạm thời. Khi một đối tượng không tồn tại lâu hơn để tham chiếu, nó sẽ bị phá huỷ. Để mở rộng thời gian sống của một đối tượng xa hơn một con trỏ nơi mà máy khách cuối cùng sử dụng nó, DCOM cung cấp tham chiếu kiên nhẫn. Như một tham chiếu, gọi là biệt danh của DCOM, nó có thể được lưu giữa trong đĩa. Một biệt danh chứa tất cả các thông tin cần thiết để xây dựng lại một đối tượng tham chiếu và mang đối tượng đó vào trạng thái cuối cùng của máy khách vừa rời bỏ.

DCOM cung cấp tất cả các laọi biệt danh. Một loại đặc biệt quan trọng là biệt danh của File, nó ám chỉ cho một đối tượng mà nó được xây dựng từ một file trong file của hệ thống. Trong trường hợp, một biệt danh sẽ chứa tên của đường dẫn mà nó sử dụng để xây dựng đối tượng. Nó cũng chứa CLSID của lớp đối tượng mà nó cần để tạo thực một đối tượng từ lớp. Giống như các biệt danh khác, biệt danh của file đưa ra cả quá trình xử lý BindToObject mà nó được gọi từ máy khách để kết hợp các đối tượng kết hợp. Kết hợ trong trường hợp của biệt danh file xử lý như hình sau:

hình 9.27

Điều đầu tiên chúng ta có thể thấy đó là biệt danh là một đối tượng kiên nhẫn. Trong cá thuật ngữ của DCOM, mỗi một biệt danh được đưa một phương thức chứa giao diện để lưu giư trong đĩa. Trong nhiều trường hợp, ứng dụng sẽ nói một biệt lưu giữ cả đường dẫn của nó. Sau đó, khi đọc lại file, biệt danh sẽ được xây dựng lại để vào đúng đối tượng DCOM. Tại điểm đó, máy khách được đưa ra giao diện IMoniker. Giao diện này chứa cả thao tác BindToObject.

Cho rằng một máy khách vừa đọc một file biệt danh từ đĩa, và bây giờ nó đang yêu cầu một trường đặc biệt của đối tượng tham chiếu bởi biệt danh. Khi mà hiện BindToObject trên biệt danh, mã biệt danh sẽ tìm lớp đối tượng cho đối tượng kết hợp của biệt danh trong đăng kí cụa bộ. Lớp đối tượng này được định dạng thông qua CLSID, đó là một phần của biệt danh. Tiếp theo một cách chính xác giống như các thủ tục mà chúng ta vừa thảo luận phía trước để mô tả một đối tượng, CLSDI được thông qua một đăng kí cụa bộ của máy khách. Từ đó CLSID được thông qua một SCM thích hợp, nó sẽ quan tâm một đối tượng cho một lớp được tạo ra.

Mã biệt danh kết hợp sau khi xử lý bằng cách khởi tạo một đối tượng mới hơn cùng với dữ liệu tìm thấy trong file và được đặt tên bởi biệt danh. Trong trường hợp của biệt danh file, nó được công nhận rằng một đối tượng đưa ra giao diện thi hành một thao tác nạp file. Nói một cách khác, bản thân một đối tượng biết được làm cách nào để khối phục trạng thái trước đó từ khi dữ liệu trong file được nạp. Chú ý rằng trong file đó, theo nguyên tắc, hoàn toàn phụ thuộc vào file nào mà biệt danh được lưu giữ.

Máy khách, cuối cùng, sẽ được dùng lại con trỏ cho giao diện đó để khởi tạo yêu cầu, hoàn toàn bằng thao tác.

Biệt danh sẽ đăng kí một đối tượng kết hợp trong máy khách ROT (Running Object Table) (Bảng chạy đối tượng). Mỗi khi một máy khách sử dụng biệt danh để ràng buộc một đối tượng tham chiếu, biệt danh sẽ tìm đầu tiên một đối tượng trong ROT. Nếu nó chú ý một đối tượng đã được tạo, nó sẽ ràng buộc tiếp sự trường hợp đó.

Bên cành biệt danh file, DCOM còn đưa ra một số kiểu biệt danh khác, nó được chỉ trong bảng dưới.

hinh 9.28

Thư mục hoạt động (Active Directory):

Cùng với sự giới thiệu của Windows 2000, các ứng dụng của DCOM có thể cho sử dụng thích đáng, các dịch vụ thư mục rộng lớn được biết như là thư mục hoạt động. Gọi lại một dịch vụ thư mục cho phép máy khách tìm kiếm thực thể cơ bản trên thuộc tính yêu cầu. Ví dụ một dịch vụ thư mục có thể cho phép truy vấn như "trả về tên của mỗi Web chủ đang chạy trên UNIX". Trong trường hợp này, một dịch vụ thư mục được so sánh như là một trang trong danh bạ điện thoại. Traí ngược, dịch vụ tên, nó sẽ trả về thông tin chỉ khi đưa ra một tên hoàn chỉnh.

Cho tới khi giới thệu về thư mục hoạt động, nhiều dịch vụ tên và thư mục trong DCOM được trải ra nhiều giá trị cấu hình của DCOM và Windows, như đăng nhập, kiểu thư viện, biệt danh...Mặc dù thư mục hoạt động không phải là một phần thích hợp của DCOM, nó hữu ích cho cất diễn giải thông tin của tổ chức và như thế nào để sử dụng tên và tìm đối tượng.

Thư mục hoạt động đựoc kết nối mạnh với cơ sở hệ phấn tán trong Windows 2000. Như một hệ điều hanh được thừa nhận để phân chia vào trong miền, nơi mà mỗi miền chứa số lượng người sử dụng và tài nguyên. Mỗi miền có một hoăc nhiều hơn miền điều khiển (domain controler), nơi mà vị trí của dịch vụ thư mục nó chứa rãnh của người sử dụng và tài nguyên của miền. Mỗi miền kết hợp tên DNS như cs.vu.nl.

Mỗi miền điều khiển được tổ chức như một thư mục chủ LDAP. Trong trường hợp của thư mục hoạt động, mỗi miền điều khiển cùng với một giản đồ lớn xác định trước cho tổ chức thực thể và xây dựng thuộc tính của chúng. Ví dụ có thể xác định trước thực thể có thể được mở rộng cho đăng kí quyền sử dụng, host, máy in...Nếu yêu cầu, một giản đồ có thể được mở rộng ở nơi cần thiết.

Điều khiển miền được đăng kí cho miền được đưa ra để phát triển. Một máy khách cần một truy vấn DNS đơn giản cho tên của host của LDAP chủ trong mièn, sau đó chúng có thể nối với máy chủ để yêu cầu về người sử dụng và tài nguyên hoặc cập nhật yêu cầu.

hình 9.29

Một vấn đề của cách tiếp cần phác thảo nay dù sao máy khách phải biết miền nào nên đi trước khi nó có thể tìm kiếm. Ví dụ một máy khách muốn tìm tất cả các trang Web chủ đang chạy trên UNIX, điều đầu tiên là nó cần liên hệ với điều khiển trong phân chia mỗi miền và gộp lại kết quả.

Thư mục hoạt động cho phép nhiều miền có thể hợp lại thành cây miền (domain tree) hay rừng (domain forest). Một cây miền được như cây con trong tên trống DNS trong khi các nhóm là một số lượng các miền độc lập. Thuận lợi của việc nhóm các miền là cung cấp các thư mục hoạt động cung cấp chủ mục đơn lẻ, toàn bộ được sao chép đến mục lục cùng với các cặp liên quan nhất. Một máy khách có thể được đảm bảo khi tìm mồt yêu cầu trong mục lục cho mỗi nhóm của miền.

9.2.5 Sự đồng bộ (synchronization)

Ý chính của DCOM là đồng bộ hoá máy móc được thực thi trong biểu mẫu của các cơ chế giao tác. Cơ chế này sẽ được thảo luận ở phía sau.

9.2.6 Thứ bản (replication)

Không có một sự thứ bản kết hợp chặt chẽ liên quan trong ứng dụng của DCOM. Thứ bản có giá trị chỉ trong dịch vụ đặc biệt như Thư mục hoạt động. Khi nó kết nối với ứng dụng người sử dụng, người phát triển sẽ phải xây dựng cách giải quyết của anh ta.

9.2.7 Khoảng chấp nhận lỗi (Fault Tolerance)

Khoảng chấp nhận lỗi của DCOM được cung cấp chính theo nghĩa tự động giao tác (automatic transaction), đó là thủ tục không thể thiếu của COM+. Tự động gia dịch cho phép người phát triển chỉ định rằng một loạt của các dẫn chứng phương pháp, có thể trên nhiều đối tượng khác nhau, có thể được nhóm vào trong giao tác. Nó cũng có thể có một dẫn chứng phương pháp đơn trình diễn như là một giao tác. Cái sau đó rất hữu dụng khi thi hành các cách truy nhập vào cơ sở dữ liệu.

Giao tác một đối tượng được tạo một cách tự động, phụ thuộc vào cá thể của lớp đối tượng được cấu hình. Mỗi lớp đối tượng được giao tác thuộc tính và xác định cách giao tác của đối tượng. Giá trị của thuộc tinh được chỉ ở bảng dưới

HÌnh 9.30

Nếu thuộc tính chuyển giao tác được thiết lập để yêu cầu mới (REQUIRES_NEW), sau đó mỗi khi một đối tượng được hiện lần đầu tiên, nó tự động bắt đầu một giao tác mới, nó hoàn thành độc lập một giao tác khác. Hơn thế nữa, nếu đối tượng gọi sẵn sàng tham gia trong gia tác, sau khi một đối tượng gọi yêu cầu một giao tác mới sẽ bắt đâu một giao tác khác song song của đôí tượng gọi.

Một tình huống khác phát sinh khi một thuộc tính giao tác được thiết lập để yêu cầu (REQUIRED). Trong trường hợp đối tượng sẽ tham gia trong giao tác của đối tượng gọi nếu chỉ có một. Nói cách khác, nó sẽ bắt đầu một giao tác mới. Trong trường hợp dẫn chứng luôn luôn được thực hiện ở mọi nơi của giao tác tóm lược.

Khi một giao tác được cung cấp (SUPPORTED), một đối tượng không bao giờ bắt đầu một giao tác mới, nhưng nó có thể tham gia cùng lúc với một cái khác trong đối tượng gọi nó. Nếu lời gọi đối tượng hoặc máy khách không tham gia vào giao tác, thì dẫn chứng sẽ thay thế bình thường.

Khi một giao tác không được cung cấp, dẫn chứng trên đối tượng sẽ trượt ra ngoài giao tác có thể trong đối tượng gọi có thể tham gia. Nói một cách khác, không một sự đảm bảo nào quan tâm đến và đưa ra tất cả. Giá trị mặc định của thuộc tính giao tác của lớp đối tượng luôn luôn được thiết lập là không cung cấp (NON-SUPPORTED).

Cuối cùng khi một đối tượng chỉ định rằng giao tác đó là vô hiệu hoá, không có vấn đề gì khi máy khách muốn, đối tượng sẽ không tham gia vào giao tác. Vô hiệu hoá một giao tác mạnh hơn là chỉ định rằng một đối tượng không cung cấp chúng. Trong trường hợp, máy khách dẫn chứng sẽ quyết định hợp nhất đối tưọng dẫn chứng trong giao tác. Với giao tác vô hiệu hoá, đó là điều không thể.

Một giao tác tự động được thi hành là một phần của quản lý giao tác tách rời. Trong trường hợp, một quản lý được gửi như là một phần của môi trường Windows và cũng được biết đến như là DTC (Microsoft's Distributed Transaction Coordinator).

9.2.8 Bảo mật (Security)

Như CORBA, bảo mật trong DCOM nhắm vào bảo mật dẫn chứng đối tượng. Tuy nhiên cách đề cập của ở đây hoàn toàn khác biệt. Mặc dù DCOM thường được ghép đôi với một phần của hệ điều hành Windows, người phát triển DCOM đã canh đều các bảo mật tách rời nhiều như vị trí của các dịch vụ bảo mật trong DCOM.

Có hai cách có thể bảo mật bằng DCOM. Một vai trò quan trọng là dự trữ cho đăng nhập, nó cung cấp cách khai báo bảo mật. Thêm vào đó bảo mật cũng có thể được giữ bởi chương trình trong trường hợp bản thân ứng dụng có thể được giữ điều khiển truy nhập và bảo đảm thẩm quyền.

Bảo mật khai báo (Declarative Security).

Bảo mật khai báo yếu tố có sẵn được chỉ định trong đăng kí một cấu hình yêu cầu cùng với sự quan tâm tới sự hoạt động, điều khiển truy nhập và thẩm quyền. Mô hình bảo mật DCOM là cơ sở trên sử dụng vai trò. Chính xác là sự uỷ nhiệm là cần thiết cùng với sự quan tâm tới vai trò nhận dạng cũng có nguyên lý trong đăng nhập.

Sự kích hoạt và điều khiển truy nhập thì tiến triển. cho mỗi lớp đăng nhập, đăng nhập sẽ chỉ rõ người sử dụng hoặc nhóm sử dụng được phép tạo hoặc ví dụ về lớp đó, đó là một đối tượng. Tương tự như thế, đăng nhập sẽ giữ danh sách các điều khiển truy nhập cho mục nhập, chỉ rõ đặc quyền truy nhập cho mỗi người hoặc nhóm sử dụng.

Mức độ thẩm quyền Diễn giải

NONE không thẩm quyền nào được yêu cầu

CONNECT Thẩm quyền máy khách khi lần đầu nối với máy chủ

CALL Thẩm quyền máy khách cho mỗi tài liệu

PACKET Thẩm quyền đóng gói tất cả dữ liệu

PACKET_INTEGRITY Thẩm quyền đóng gói dữ liệu và kiểm tra tính toàn vẹn

PACKET_PRIVACY Thẩm quyền, kiểm tra tính toàn vẹn, và đóng gói dữ liệu mật mã

Bằng cách mặc định, hầu hết hệ thống yêu cầu rằng máy khách được xác nhận vào lần đầu kết nối vào máy chủ (mức độ CONNECT). Tuy nhiên, nó cũng có thể bị bắt buộc tuân theo thẩm quyền vào mỗi thời điểm lấy mẫu (CALL), hoặc mỗi thời gian được nhập từ máy khách (PACKET). Mức độ PACKET_INTEGERITYvà PACKET_PRIVACY không sẵn sàng cho mức thẩm quyền, nhưng nó thêm kiểm tra tính toàn vẹn và độc lập cho thẩm quyền và chú ý tới đóng gói.

Nó cũng chỉ định để mở rộng máy chủ có thể thông qua cùng vai trò và uỷ nhiệm như máy khách đang liên quan tới đối tượng trên máy chủ. Mức độ không ảnh hưởng được sử dụng để bảo vệ sự chống lại của máy khách tới một máy chủ hại.Cùng với thiết lập mức độ không ảnh hưởng (ANONYMOUS), máy chủ không thể tìm ra ai đang làm việc liên quan, vì thế nó không thể không ảnh hưởngtới máy khách.

Mức độ ảnh hưởng Giải thích

ANONYMOUS Máy khách có thể ẩn danh trên máy chủ

IDENTIFY Máy chủ biết máy khách và có thể kiểm tra điều khiển truy nhập

IMPERSONATE Máy chủ có thể liên quan tới đối tượng với tư cách của máy khách

DELEGATE Máy chủ có thể liên quan tới đối tượng từ xa với tư cách của máy khách

Nếu máy khách muốn truy nhập tài nguyên, nó sẽ cho phép máy chủ để điều khiển truy nhập, nó yêu cầu không ảnh hưởng tới mức độ IDENTIFY. Mức độ này sẽ tiết lộ chỉ định máy khách cho máy chủ, nhưng chỉ định này có thể không đủ cho máy chủ để kiểm tra nhứng truy nhập đúng cần thiết.

Khi một máy chủ được phép không ảnh hưởng máy khách (Mức độ không ảnh hưởng ) liên quan tới vị trí đối tượng trên may chủ có thể được thay thế, vì thế máy chủ sử dụng uỷ nhiệm của máy khách. Nếu liên quan cần thiết cần đi qua ranh giới các máy, mức độ này có thể thiết lập cho người uỷ nhiệm (DELEGATE), cho phép người uỷ nhiệm truy nhập đúng.

Chương trình bảo mật

Bên cạnh các bảo mật khai báo, nó cũng có thể cho các ứng dụng thiết lập mức độ bảo mật tốt như sự lựa chọn giữa hai loại dich vụ boả mật. Thiết lập có thể cần thiết cho phát triển tạm thời bảo vệ như là khai báo đăng nhập.

Điều chỉnh thiết lập bảo mật được thực hiện trong suốt quá trình khởi tạo của quy trình bởi một quy trình được gọi là chức năng ColnitializeSecurity của COM. Quá trình chỉ rõ cấu hình cho cái nào muốn thay đổi mức độ thẩm quyền và ảnh hưởng.

Một tính năng thú vị của chương trình bảo mật là một quá trình cũng có thể đưa cho dịch vụ bảo mật quan tâm tới sử dụng bảo mật. Thường thì một dịch vụ đến với hệ điều hành nhấn mạnh DCOM. Số lượng dịch vụ có thể được mở rộng. Các dịch vụ sẵn có có thể không được chỉ định bởi DCOM nhưng nó sẽ phụ thuộc vào hệ đièu hành.

Dịch vụ Giải thích

NONE Không thẩm quyền

DCE_PRIVACE Thẩm quyền DCE cơ bản chia sẻ khoá

DCE_PUBLIC Thẩm quyền DCE dùng chung khoá

WINNT Bảo mật Windows NT

GSS_KERBEROS Thẩm quyền Kerberos

a)

Dịch vụ Giải thích

NONE Không cho phép

NAME Cơ bản cho phép trên chỉ định của máy khách

DCE cho phép sử dụng (PACs)

Nó có thể không điều chỉnh thiết lập hoạt động bằng máy khách được cho phép để thuyết minh một đối tượng. Thông tin có thể chỉ thiết lập bằng khai báo, bởi vì SCM trên máy nơi mà đối tượng được tạo sẽ luôn luôn xem xét đăng kí để nhận được phép của máy khách cùng với chú ý kích hoạt. Tuy nhiên nó có thể kich hoạt đúng uỷ nhiệm giữa cá tiến trình.

GLOBE

Ở ví dụ trước của chúng ta về một đối tượng dựa trên hệ phân tán gọi là Globe. Globe là từ viết tắt của Global Object - Bare Environment tức đối tượng toàn cầu dựa trên môi trường và nó là một hệ phân tán phiên bản hay được phát triển bởi các tác giả và trường đại học của họ tạI Vrije Universiti test Amsterdam. Một kết quả thiết kế quan trọng là thiết lập nên bộ mặt Globe từ hệ thống như CORBA và DCOM là một phần để cung cấp cho một số lượng lớn người dùng và đối tượng trong việc mở rộng Internet, trong khi vẫn cung cấp một cách minh bạch về hệ phân tán. Mặt khác đa số những đối tượng khác dựa trên hệ thống phân tán là thứ chính chính để thiết kế và bổ sung vào mạng LAN một cái nhìn tổng quát về Globe được tìm thấy bởi Van Sten vào 199, chi tiết được mô tả trong một kiến trúc bởi Hamburg (2001).

9.3.1. Tổng quát về Globe.

Globe là một hệ phân tán hướng đối tượng với với từng bước đóng vai trò là một luật trung tâm. Với tất cả những giao diện được giới thiệu trong một hệ thống rộng lớn có thể cung cấp cho 1 lượng lớn người dùng và đối tượng được thiết kế cho Globe. Nền tảng của việc tiếp cận này là cách mà đối tượng được nhìn giống như những đối tượng khác dựa trên hệ thống, đối tượng trong Globe là tình trạng trước đó và hợp tác trong ý kiến đó.

Một điều quan trọng khác đối với hệ hướng đối tượng khác, cao hơn nó là 1 phần của việc mở rộng khả năng một cách rộng lớn ( Grimshaw ) 1998; Grumshaw et al ..., 1999) là một đối tượng khác cũng được mong đợi để gói gọn bổ nghĩa cho các chính sách để mô tả việc phân phối ý kiến của một đối tượng thông qua một máy đa năng. Trong một từ khác, mỗi đối tượng quyết định đối tượng đó sẽ được phân phối như thế nào? Mỗi đối tượng cũng điều khiển cho nó một số chính sách ứng xử để làm cho nó tốt hơn.

Mở rộng một đối tượng trong Globe là đặt vào một tổng thể nếu có thể. Ví dụ một đối tượng quyết định như thế nào, khi nào mà một vấn đề nên được phân tán. Cũng vậy, một đối tượng quyết định nếu nó có một bản sao bản thân nó. Và bản sao nên như thế nào để thay thế. Thêm vào đó. một đối tượng có thể được quyết định bởi một số chính sách bảo mật và tự bổ sung. Ngoài ra chúng mô tả cấu trúc tóm lược thì như thế nào.

Mô hình đối tượng:

Không giống như hầu hết các hệ phân tán hướng đối tượng, Globe không chấp nhận mô hình đối tượng có thể di chuyển. Hơn nữa, đối tượng trong Globe là sự phân tán vật lý, nghĩa là một đối tượng có thể phân phối và sao ra thành nhiều tiến trình đa năng... Nó được tổ chức như trong hình 9-34 với việc biểu diễn một đối tượng là một sự phân phối cho 4 tiến trình, và chạy trên mỗi máy khác nhau. Đối tượng trong Globe được tham chiếu đến đối tượng chia sẻ sự phân phối, và mã đối tượng được chia sẻ bởi 1 vài tiến trình. Mô hình đối tượng Globe được tổ chức từ những đối tượng phân tán dùng trong một vùng được mô tả bởi Bal ( 1989). Một mô hình đối tượng giống như vậy cũng được thể hiện trong hệ điều hành SOS ( Shapio et al, 1989, Makpangauset, at, 1994).

Hình 9-34: Tổ chức của hệ đối tượng phân tán Globe một tiến trình được trói buộc bởi đối tượng chia sẽ phân tán thì công hiến và bổ nghĩa cho giao diện cung cấp bởi đối tượng đó. Như một sự bổ sung gọi là một sự trình diễn hoặc đơn giản chỉ là vị trí đối tượng.

Hơn nữa, hoặc không có một vị trí đối tượng nào được hoàn thành và chuyển đổI đến tiến trình được trói buộc. Tất cả những chi tiết bổ sung trong một đối tượng được phía sau giao diện của một tiến trình. Mà một đối tượng vị trí là một công cụ cho một giao diện đối tượng chuẩn gọi là SOInf, và nó được biết đến như là giao diện dùng trong DCOM. Đặc biệt, giống như là giao diện dùng trong DCOM, SOIinf cung cấp một phương pháp chấp nhận một giao diện định danh được đưa vào và trả về một con trỏ để giao diện đó cung cấp cho giao diện kia như là một công cụ của đối tượng. Có nhiều sự giống nhau khác giữa đối tượng Globe và đối tượng DCOM. Cho ví dụ mỗI đối tượng vị trí có một lớp đối tượng cần thiết từ những đối tượng vị trí mớI có thể tạo ra.

Đối tượng vị trí được tổng kết xem như là giao diện nhị phân để và tồn taih trong bảng của con trỏ chức năng. Một giao diện đặc biệt thì cung cấp bởI một chức ngôn ngữ định nghĩa giao diện và được dùng trong CORBA và DCOM, nhưng cũng có những phần khác như là những con trỏ khác.

Đối tượng vị trí Globe gồm 2 phần. Một đối tượng vị trí chính là một đối tượng vị trí không chứa trong những đối tượng vị trí khác. Mặt khác có một sự trái ngược đối tượng vị trí là một đối tượng có thể soạn thảo đa năng đối tượng vị trí . Để cung cấp cho vị trí đó, một bảng giao diện về đối tượng vị trí Globe tồn tại thành từng cặp của con trỏ state, phương pháp. Mỗi con trỏ tham chiếu đến dữ liệu phục thuộc vào một đối tượng vị trí đặc biệt. Giao diện của một đối tượng chính thì tất cả các con trỏ đều được tham chiếu đến những dữ liệu như nhau được trình diễn bởi đối tượng đó. Trong một số trường hợp của một vị trí con trỏ tham chiếu đêna một số đối tượng khác như là một sự tổ hợp cấu thành.

Thành phẩm này đã từng được giới thiệu bởi một đối tượng vị trí cần đến đối tượng phân tán. Đôi tượng vị trí này được xem trong hình 9-35 và tồn tại ít nhất là 4 đối tượng con. Hình 9-35.

Những đối tượng con đối xứng nhau về chức năngcung cấp bởi đối tượng phân tán chia sẻ. ví dụ Globe được dùng để xây dựng Website phân tán và là một sự thu thập những trang Web, icon, hình ảnh, quan hệ vớI nhau, nhóm lại với nhau như là một thư mục. MỗI một thu mực đuợc gọI là GlobeDo( Vansteen et al, 1999b) được bổ sung vị trí nghĩa là có sự đối xứng những đối tượng con cho trang giao diện được chỉ ra trong hình 9-36. MỗI file được dùng như một phần của thư mục Web và trả về một phần tử trong đối tượng GlobeDoc. Mỗi phần tử có thể được thêm vào hay bỏ đi bởi giao diện của thư mục. giao diện này cũng cho phép tổ chức dạng đồ họa. Những phần tử góc, được cho mặc định là index.htm file trong nhiều ứng dụng Web, có thể thiết lập và tham chiếu thông qua một số phương pháp, Qua luyện tập chỉ ra những giao diện này.

Hệ phân tán hướng đối tượng

Dịch vụ Công cụ có thể trong Globe Giá trị

Thu thập

Phân luồng

Giao dịch

Sự kiện/ghi chú

Thiết bị ra

Chu kỳ tồn tại

Giấy phép

Tên

Thuộc tính/

Độ bềns

Bảo mật

Bản sao

đối tượng riêng lẽ được tổ chức tham chiếu đến đối tượng khác

MỗI công cụ đối tượng điều khiển sự phân luồng

MỗI công cụ đối tượng riêng lẽ quản lý giao dịch

MỗI đối tượng riêng lẽ được gộp nhóm thành một sự kiện

MỗI công cụ đối tượng thực hiện một lịch trình của riêng nó

MỗI một lớp đối tượng riêng lẽ kết hợp với một phần đối tượng.

Công cụ của từng đối tượng riêng lẻ.

Dịch vụ riêng lẽ công cụ cho sự thu thập đối tượng tên

Dịch vụ riêng lẽ, công cụ thu thập đối tượng thư mục

Là công cụ dựa trên những đối tượng căn bản

một phần công cụ kết hợp với dịch vụ bảo mật

công cụ dựa trên một phần đối tượng cơ bản

công cụ kết hợp một phần đối tượng với dịch vụ khả năng sai sót.

Không

Không

Không

Không

Không

Không

Hình 9-38

Đầu ra hoặc sự thống chế là những dịch vụ bình thường được làm bằng tay trên những mẫu đối tượng cơ bản. Trong Globe, hầu hết các đối tượng đều đòi hỏi những công cụ làm theo những lịch trình có sẵn và nó có thể chuyển đổi giữa các máy khác nhau. Chúng ta sẽ trả về một sự thống chế cho phép thảo luận bởI mô hình đối tượng Globe.

Một dịch vụ tồn tại cung cấp phương tiện để tạo mới, xóa, copy và di chuyển đối tượng. Trong Globe, chỉ có những thứ không cần đối trong một đối tượng mớI không thể tạo ra cính nó. Tất cả những phần khác là công cụ cho chính bản thân một đối tượng. Globe không cung cấp những đặc tính đặc biệt cho việc xóa, copy, hoặc di chuyển đối tượng. Tạo một đối tượng thông thường được làm theo chỉ dẫn truy nhập vào một dịch vụ đối tượng và yêu cầu nóa tạo ra một đối tượng. Và việc mở rrộng mày thì có một vài điều giống như trong DCOM.

Giấy phép thì không có trong Globe, nhưng đã có trong một số công cụ trong đối tượng cơ bản.Tên là một ví dụ hay của dịch vụ, nó không thể là một công cụ bởI một đối tượng vì nó đã là tên, dụng để tìm kiếm đối tượng. Trong một từ khác, dịch vụ tên là cần thiết để truy nhập trước khi một đối tượng đặt tên được truy nhập. Tất nhiên một dịch vụ tên cho chính bản thân nó có thể là công cụ dùng cho đối tượng như đã làm ví dụ như trong CORDA. Globe có một dịch vụ tên riêng biệt mà chúng ta sẽ thảo luận để mở rộng sau. Một số lý do giống nhau, một số dịch vụ thuộc tính hoặc dịch vụ giao dịch cũng là công cụ nhưng riêng lẽ từ đối tượng tham chiếu đến nội dung chính.

Nhiều hệ phân tán có sự bền bỉ riêng lẻ từ hình thức nào là file hệ thống của cơ sở dữ liệu. Trong Globe, không tồn tại dịch vụ như vậy. Ngoài ra tính bền bỉ được xem như là một thuộc tính của một đối tượng mà đó là lý do nên thi hành bởi những công cụ đó. Tính bền bỉ về bản chất đạt được quyết định bởI một đối tượng. Tuy nhiên nó cần thiết cho việc cho phép một đối tượng lưu trữ một cách bền vững. Trong Globe, sự cung cấp này cho phép thực hiện thông qua dịch vụ đối tượng. Mặc dù có nhiều công cụ đối tượng được sử dụng có giá trị cho những hệ thống file.

Bảo mật trong Globe là công cụ cho mẫu đối tượng cơ bản và đặc biết cho những phương tiện dịch vụ bảo mật. Cho ví dụ, mặc dù bản thân một đối tượng chúng nhận khóa bình thường và phát ra những thỏa thuận cho các dịch vụ riêng lẽ và lẽ trả về cho sự bảo mật trong globe.

Một sự khác biệt chính giữa Globe và hệ phân tán hướng đối tượng khác là trở nên rõ ràng và xem như là một bản sao. Chúng ta có thể đề cập đến đối tượng trong Globe quyết định trạng thái tái tạo như thế nào. Cách khác, bản sao là cách làm thủ công toàn vẹn dựa trên những mẫu đối tượng cơ bản. Mặt khác, hệ thông như CORBA thường dùng dịch vụ sao chép để điều khiển việc sao chéo một nhóm đối tượng. Chi tiết về những công cụ sao chép trong Globe được thảo luận sau.

Cuối cùng, khả năng sai sót cho phép trong Globe thì cũng được làm thủ công trên những mẫu đối tượng cơ bản, mặc dù có một vài được cung cấp bởI dịch vụ đối tượng cho phép sai sót cần để thành công nhưng thực ra thất bại.

9.3.2. Liên thông

Không giống như CORBA và DCOM, Globe không cung cấp một số khả năng liên thông khác so với một số phương pháp đồng bộ. Khi có một sự hoàn thành đồng bộ thì khi đó một tiến trình trả về từ một sự trình diễn đồng bộ như là một phương pháp gọi trong một giá trị giao diện cục bộ. Không có nhiều họat động sẽ được thay thế và đối tượng phân tán sẽ ngoại trừ những đối tượng đồng thời khác. Trong ngữ cảnh này, đối tượng Globe ở thể bị động. Để hiểu nghĩa của đối tượng thụ động là gì, thì hãy xem như một đối tượng phân tán là sự chia sẽ giữa 3 tiến trình như hình 9-39. Tiến trình B và C sẽ có một bản sao cho riêng nó. Cho biết bởi một số phiên bản của đối tượng ngữ nghĩa. đối tượng cục bộ trong không gian địa chỉ của tiến trình A phù hợp với những tiến trình truyền thống ủy nhiệm lại.

Cho rằng một tiến trình A bao gồm các đối tượng. Cho ví dụ về lịch bản của bản sao, những yêu cầu đồng thời này được thông qua bởi tiến trình B và C, riêng đối với một số trường hợp thông qua bởi đường dẫn như là đường rắn. Khi yêu cầu đến một đối tượng con liên lạc, nói tới tiến trình B, một chuỗi được kích họat bằng thủ công những yêu cầu đó. Cuối cùng, những chuỗi mày sẽ bao gồm đối tượng con ngữ nghĩa và trả về kết quả là những tin nhắn riêng lã được gởi đến tiến trình A. Một số họat động giống như vậy xuất hiện trong tiến trình C.

Suốt sự đồng bộ tổng thể, chuỗi trong tiến trình A được làm theo phương pháp gọi là khối tàn dư. Sau khi có kết quả từ những tiến trình khác thông qua bản sao đối tượng con của A, các chuỗi sẽ không còn chướng ngại vật và cho phép tiếp tục. Và nếu chung không đồng thời được thay thế, thì có thể sớm điều khiển để trả về một ứng dụng trên A vớI những thay thế đồng thời. Sẽ không có nhiều họat động trong đối tượng cục bộ bao gồm cả đối tượng phân phối chia rẽ.

Globe không cung cấp máy gọI trở lại đến ứng dụng trên máy chủ nó sẽ cung cấp. Nếu chỉ có một chuỗi được kích hoat như là kết quả của mnột yêu cầu được áp dụng thì cho phép gọi trở lại. Tuy nhiên việc gọi lại làm ta không thể dự đoán được một chuỗi như thế nào. Cách làm đó thì sẽ nuy hiểm đến việc biểu diễn bản sao mà cần thiết được lưu giữ bởi một đối tượng con của một bản sao dòng. Ở đây chúng ta thấy một ví dụ có sự phát triển của Globe đơn giản hơn những đặc tính của nó. Thông thường, tính đơn giản là kết quả của việc thế kề bằng Globe.

9.3.3. tiến trình.

Mặc dù về nguồn gốc, không có sự khác biệt giữa máy chủ và máy khách trong Globe. Nhưng thường sử dụng một số tương phản khi tổ chức đối tượng chia rẽ phân tán. Tiến trình của máy chủ ban đầu rẽ đồng thời trên một đối tượng, nhưng ngược lại tiến trình của máy khách chỉ là những yêu cầu đồng thời. Trong những trang đích sẽ được làm rõ ràng hơn.

a. Máy chủ Globe.

Máy chủ Globe là một tiến trình được trói buộc bởI đối tượng chia rẽ phân tán và bao gồm cả những đối tượng theo phương pháp gọi lại tạo nên một giá trị thông qua giao diện của việc điều khiển đối tượng con. Tiến trình A được biểu diễn trong hình 9.39 là một ví dụ thông thường trong máy chủ Globe nhưng kết nối đến bản sao.

Trong một số trường hợp, máy chủ Globe thì quan hệ dơn giản đến ngữ cảnh mà nó không phải là đối tượng ngữ nghĩa. Ngoài ra, một thứ đồng bộ thì ngay lập tức nối kết và thông qua đến bản sao của các máy khách. Mô hình này gần gủi và phù hợp tới sự thay thế dùng trong CORBA và nó cũng được dùng một cách cơ bản đến đối tượng chia rẽ phân tán trong hệ thống giống như CORDA. Tuy nhiên sự tùy biến của một trình chủ trong Globe thì cũng có thể và làm theo gần giống vớI DCOM và Java RMI. Sự tùy biến này đòi hỏi một sự sắp xếp thứ tự ví dụ như cho phép máy khách cùng truy cập đó kết quả một cách đồng thời.

Tiêu chuẩn để tiến gần đến sự tùy biến của một trình chủ trong CORBA là sử dụng con người . Trong DCOM, sự tùy biến thay thế bằng cách cung cấp những công cụ cho trình chủ một cách riêng rẽ thông qua tùy biến trong DCOM. Trong Globe, một đối tượng chia rẽ phân tán thường cung cấp một bộ các công cụ của đối tượng cục bộ. Những công cụ này được lưu trữ trong một kho lớp. Nó đưa lên trình chủ để quyết định công cụ mào sẽ được dùng. Khi mà một trình chủ được trói buộc bởi một đối tượng thì nó cho ta những con số tương tác đến địa chỉ, ở đó mỗi địa chỉ có một hoặc một vài công cụ của đối tượng cục bộ mà trình chủ có thể lấy về. Nó cũng cho phép một địa chỉ tương tác đặc biệt đến những giao thức liên thông mà trình chủ nên dùng. Trong trường hợp đó trình chủ nên dùng một công cụ mà nó muốn để cho phép thực hiện một số luật trong giao thức đó. Trình chủ có thể chỉ dùng một công cụ để dẫn đến một lớp tin cậy.

Tính dẻo này dẫn đến một cái giá làm cho một vài công cụ của đối tượng cục bộ khác và có thể cho những hệ điều hành khác và cấu hình máy tính. Một số vấn đề mang tính hỗn tạp được giải quyết bằng cách dùng công cụ di động vớI ngôn ngữ rõ ràng khi viết như là Java.

b. Trình khách Globe.

Tương phản với trình chủ Globe, trình khách Globe là một tiến trình mà có thể thực hiện đồng thời những yêu cầu thông qua các mạng cơ sở. Hay nói cách khác, không có phương pháp nào gọi từ giao diện để điều khiển những đối tượng con. Tiến trình B và C trong hình 9.39 là những ví dụ về trình khách Globe.

Globe cũng bao gồm một trình khách đối tượng mà cũng cung cấp đối tượng chia rẽ phân tán. Trình khách này cùng cấp những chức năng cơ bản cung cấp cho máy chủ một đối tượng cục bộ của một đối tượng chia rẽ phân tán. Tiến trình có thể liên lạc với một trình khách đối tượng Globe thông qua giao diện được chỉ ra trong hình 9.40. Mỗi trình khách đối tượng Globe xuất hiện trong máy chủ như là đối tượng phân tán chia rẽ.

Một sự kết hợp quan trọng được giới thiệu trong trình chủ đối tượng là trói buộc đối tượng phân tán.Trình khách thì làm thủ công như là một đối tượng thủ công tốt cho việc lựa chọn địa chỉ tương tác. Khi có một vài địa chỉ được chọn từ nó. Cho ví dụ, trình khách có thể quyết định lựa chọn địa chỉ nào hoặc địa chỉ đó có những thuộc tính nào đặc biệt mà có thể phục hồi lại bản sao trong một vài trường hợp bản sao được phục hồi và đối với những địa chỉ khác cũng được lựa chọn dễ dàng.

Cản trở một trình khác được trói buộc bởi một đối tượng như là sự không thay đổi giá trị của toán tử. Nếu một đối tượng nào đó đã được trói buộc thì không có điều gì xảy ra. Nếu trình khách được tìm thấy đối tượng cục bộ khác của đối tượng chia rẽ phân tán mà nó cũng đã bị ràng buộc thì phương pháp này cũng sẽ cần cứu chữa.

Phương pháp Mô tả

Ràng buộc

Tạo mới LR

Thêm ràng buộc

Gở bỏ LR

Không trói buộc DSO

Danh sách

Ngăn cản trình khách trói buộc đến đối tượng được cho nếu như nó không được trói buộc.

Ngăn cản trình khách tạo ra đối tượng cục bộ nếu như nó đã được trói buộc.

Ngăn cản trình khách trói buộc một đối tượng nếu như nó được ràng buộc.

Ngăn cản trình khách di chuyển đối tượng cục bộ của một đối tượng được cho.

Ngăn cản trình khách gở bỏ tất cả các đối tượng cục bộ của một đối tượng đuợc cho.

Trả về danh sách tất cả các đối tượng cục bộ.

9.3.4 ĐẶT TÊN:

Tên đóng vai trò quyết định trong Globe và mở đến quy mô rộng lớn từ những cách đặt dùngtrong các h ệ thống khác .Trong Globe,đối tượng đặt tên thì như jà một phần riêng biệt từ vị trí của từng đối tượng và đã được thảo luận trong chương 2.Nói cách khác những dịch vụ đặt tên bằng một chuỗi các ký tự từ những chuỗi bit đến vị trí của từng đối tượng.

Tham chiếu đối tượng và địa chỉ liên hệ

Mỗi một đối tượng chia sẽ phân tánGlobe là một sự đăng ký 1 định danh đối tượng Globe duy nhất OID, nó có một chiều dài là chứa 256 bit...1 OID Globe là một sự định danh đúng như định nghiã trong chương 4.Nói cách khác OID Globe tham chiếu đến hầu hết các đối tượng chia sẽ phân tán ;Nó không bao giờ được sử dụng lại cho 1 đối tượng khác ; và mỗi đối tượng có 1 OID.

OID Globe chỉ được dùng cho việc so sánh tham chiếu đối tượng .Cho ví dụ ,cho tiến trình A và B được trói buộc bởi một đối tượng phân tán chia sẽ . Mỗi 1 tiến trình có thể yêu cầu OID của đối tượng mà nó trói buộc đến .Nếu và chỉ nếu 2 OID giống nhất thì A và B được xem như là một trói buộc cùng một đối tượng .

Để định vị một đối tượng thì nhất thiết phải tìm kiếm một đìa chỉ liên hệ của đối tượng trong dich vụ định vụ Globe ,các đối tượng được tham chiếu đến dịch vụ định vị này bằng một tên truy cập đến đối tượng mà các chuỗi bit được chứa trong OID với một vài thông tin khác được dùng bởi dịch vụ định vị.Một kênh truy cập đối tượng thì cũng là một đinh danh, ngoại trừ không có một sự bảo hành nào cho những đói tượng giống nhau mà chỉ có 1 lệnh truy cập đối tượng , Thật là quan trọng để nhận ra rằng 1 kênh truy nhập đối tượng được dùng bởi dịch vụ định vị Globe thì không đem lại quá nhiều thông tin hoặc liên quan đến vị trí hiện tại mà một đối tượng có thể tìm đến vị trí đó

Dịch vụ định vị Globe thì được tổ chức theo nguồn gốc của dịch vụ định vị phân cấp như đã thảo luận trong phần 4.2.4 và sẽ không lặp lại ở đây .Thông tin chi tiết có thể được xem trong (Vánteen et al...,1998a;và Baggio et al, 2001)Các dịch vụ định vị cho việc thiết kết và bổ sung cho chính nó được biểu diễn và mô tả trong (Ballintif et al...,2001)

ĐỐI TƯỢNG PHÂN TÁN DỰA TRÊN HỆ THỐNG

Dịch vụ định vị Globe trả về 1 địa chỉ liên hệ mà nó được so sánh đến đối tượng phụ thuộc vị trí được tham chiếu như dùng trong CORBA và những hệ phân tán khác. Không quan tâm đến 1 vài chi tiết nhỏ, 1 địa chỉ 2 phần: .phần đầu là định danh địa chỉ bằng dịch vụ định vị có thể định danh đến gần các nút cuối đến việc chèn hoặc xoá toán chủ trang địa chỉ liên hệ cho trước .Gọi lại vì địa chỉ liên hệ thì phụ thuộc vị trí , điều đó thì quan trọng cho việc ch èn hoặc xoá gần với các vị trí của nút sau cùng

Phần nút thứ 2, thì tồn tại như một phần thông tin địa chỉ thực tế , nhưng những thông tin này thì hoàn toàn bị mờ đục với dịch vụ định vị . Đối với dịch vụ định vị , 1 địa chỉ là 1 mảng các bytes mà có thể hiểu như là địa chỉ mạng thực tế , m ột giao diện bằng mặt nạ,hoặc thậm chí có thể bị che hoàn toàn bằng mặt nạ

Trường Mô tả

Định danh giao thức 1 hằng số biết như là 1 giao thức

Địa chỉ giao thức 1 địa chỉ giao thức đặc biệt

Lệnh truy cập bổ sung Tham chiếu đến 1 file trong lớp

Định danh giao thức là một sự trình bày lại một hằng số , một giao thức đã biết . Định danh 1 giao thức bình thường bao gồm :TCP, UDP, và IP thường địa chỉ giao thức chứa một địa chỉ giao thức đặt biệt như là số của cổng TCP, hoặc một địa chỉ mạng IPVH.Cuối cùng một kênh truy cập bổ sung thì cung cấp cho 1 sự bổ sung mặc nhiên cho những giao thức đ ược tìm thấy . Thông thường , 1 kênh truy cập bổ sung thí đ ược trình bày như là một URL

Loại thứ 2 của địa chỉ liên hệ là một địa chỉ ( instance), mà tồn tại trong 2 trường hợp. Trong h ình 9-42. Một lần nữa, địa chỉ đ ược chứa trong kênh bổ sung mà không có thứ gì nhưng tham chiếu đến 1 file trong 1 lớp thích hợp . Ở đó một sự bổ sung vào một đối tượng vị trí có thể được tìm thấy . Đối tượng vị trí nên tìm được bằng tiến trình mà hiện tại đang trói buộc đến đối t ượng .

Trường Mô tả

Lệnh truy cập bổ sung Tham chiếu đến một file trong lớp

Chuỗi khởi tạo Chuỗi được dung cho việc khởi tạo

Tìm đường theo 1 tiêu thức chuẩn giống như tìm 1 lớp trọng java .Sau khi một sự bổ sung được tìm và 1 đối tượng vị trí được tạo ra , thì việc khởi tạo được thay thế bằng việc thông qua 1 chuỗi khởi tạo đến đối tượng.

Dịch vụ đặt tên Globe:

Globe sử dung dịch vụ đặt tên có mối quan hệ đơn giản để cung cấp một cá tên thân thiện, sống động .Dịch vụ tên dựa trên DNS và cho phép tìm kiếm , cập nhật tác giả trên tên .Một cái tên thân thiện mang tính người trong Globe thì được trình bày lại bởi 1 ỦI đơn giản (định danh tài nguyên đồng phục ).Tên này thì lại được kiên quyết đến một kênh truy cập đối tượng cho đối tượng tên.

Để sử dụng DNS, tên 1 globe đầu tiên đ ược chuyển đổi vị trí đến 1 hệ thống tên miền. Cho ví dụ Globe có tên là: hfn :// org/Globe world/dns/Globesite.dns.Globe world. Org, mà với tên đó thì có thể đến với hệ thống tên miền định vị (chú ý : ta dùng # org để hiển thị địa chỉ của 1 tên dịch vụ) .Tổng kết lại, chúng ta đang thoả thuận với 1 bên có giá trị , thậm chí 1 dịch vụ trên Globe sẽ đ ược liên hệ đến với nó mà có thể truy cập vào bộ nhớ mà một phần của tên thì chưa bao giờ được sử dụng.

1 Globe.dns.globe ưorld. org

2 # org, Globe.dns.globe ưorld

3 Globe.dns.globe ưorld

4 #Globe.dns.globe ưorld

5 Globe.dns

6 l ệnh truy nhập đối t ượng

Trong ví dụ của chúng ta, tên miền hê thống Globe world. Org thì chuyển đổi đến dịch vụ tên Globe mà có thể truy cập đến phần sửa chữa Globe.dns. Dịch vụ tên Globe thì như là 1 sự bổ sung cho dịch vụ đặt tên miền hệ thống , ngoại trừ đặt tên trong không gian tên của Globe thì được đặt bởi bảng ghi tài nguyên TXT mà được trình bày lại như trong thư mục con hoặc 1 kênh truy cập đối tượng.

9.3.5 SỰ ĐỒNG BỘ HOÁ:

Globe không cung cấp 1 số tính năng đặt biệt cho sự đồng bộ hoá. Khi sự đồng bộ hoá được cần thiết , nó thì thường bổ sung như một phần của bản sao của đối tượng con mà chúng ta đã thảo luận sau sự đồng bộ hoá liên đối t ượng thì không có giá trị . Rõ ràng nó thì cần thiết cho sự phát triển các ứng dụng thực tế .

9.3.6 BẢN SAO

Bản sao đóng vai trò khoáng cho globe mỗi đối tượng chia sẽ phân tán trong globe bổ sung cho chính bản sao của nó bằng cách sử dụng chiến lược bản sao của các đối tượng con trong đối tượng định vị chính nó 1 bước thiết kế quan trọng là giao diện với bản sao đối tượng con đương chuẩn hoá. Theo cách này nó có thể thay thế1 chiến lược bản sao không có hiệu quả bằng 1 thành phần khác tham gia gồm có 1 đối tượng chia sẽ phân tán.

Để hiểu được 1 giao diện của bản sao được chuyển hoá theo hướng nào, điều quan trọng là phải hiểu mô hình của bản sao trong đối tượng chia sẽ phân tán . trong đối tượng chia sẽ. Một chìa khoá ở đây là giữ các bản sao chép khác nhau của đối tượng con ngữ nghĩa. Loại nào cần thiết nhất thì được quyết định bởi đối tượng chia sẽ phân tán ; nó thiết lập nên đối tượng con của bản sao để đáp lại sự lựa chọn đó.Với lý do này 1 đối tượng con bản sao được điều khiển khi có 1 phương pháp định vị trong 1 đối tượng con ngữ nghĩa được phép.Một sự khác biệt được tạo nên giữa các phương pháp đọc, là không giảm bớt những câu lệnh của đối tương con ngữ nghiã ,và phương pháp hoạt định là đã làm điều đó .

Khi một tiến trình được trói buộc đến một đối tượng chia sẽ phân tán lời gọi cho 1 phương pháp , điều đầu tiên của 1 đối tượng con điều khiển chứa thông tin của đối tượng con bản sao của 1 tính huống nào đó.Nó làm bằng cách gọi phương pháp bắt đầu của giao diện của đối tượng con bản sao được chỉ ra trong hình 9.44.Chỉ có thông tin về đối tượng con điều khiển được cung cấp khi bắt đầu yêu cầu 1 tình huống nào đó sẽ làm giảm bớt đối tượng con ngữ nghĩa. Dựa trên những thông tin này đối tượng con bản sao sẽ thông báo cho đối tượng con điều khiển phải làm gì tiếp theo.

Phương pháp Mô tả

Bắt đầu Đây là một phương pháp lời gọi đã được yêu cầu định vị

Gởi Đưa yêu cầu lời gọi chính dến đối tượng con bản sao

Dẫn chững Lời gọi trên đối tượng ngữ nghiã được hoàn thành

Có 2 kết quả có thể có khi bắt đầu, mỗi trường hợp cho những hành động tiếp theo của đối tượng con điều khiển nên làm. Đầu tiên đối tượng con điều khiển có thể được giới thiệu để thông qua các trươờng hợp sắp xếp để đến với đối tượng con bản sao. Hay nói cách khác đối tượng con điều khiển được thông báo để gọi hoặc gởi đến 1 hành động tiếp theo sau khi nó đợi cho đến khi các phép toán được thực hiện xong.

Kết quả thứ 2 có thể có là đối tượng con điều khiển được thông báo mang đến yêu cầu thực bởi đối tượng con ngữ nghĩa.Khi tình huống này thực hiện xong, đối tượng con điều khiển sẽ goi l à phương pháp để lời gọi, thông báo cho đối tượng con bản sao biết là nó đã hoàn thành .Một lần nữa nó sẽ phải đợi cho đến khi lời gọi đó hoàn thành.

Các toán tử được gởi được sắp xếp như là kết quả như những tình huống yêu cầu đến bản sao khác .Dẫn đến , 1 sự đáp lại sẽ trả về cho đối tượng con bản sao , có thể từ 1 bản sao đa năng .Trong 1 vài trường hợp nếu tất cả đều được duyệt tốt thì đối tượng con bản sao sẽ được soạn thảo 1 sự đáp trả phù hợp cho tiến trình gọi (nếu có sự tồn tại của đáp trả đó , và sẽ trả về sự đáp trả như là 1 kết quả được gởi đến .)

Khi 1 cuộc gọi đến trả lại kết quả thì đối tượng con điều khiển sẽ được giới thiệu để trả kết quả khác điều khiển tiến trình gọi hoặc đến đối tượng con ngữ nghĩa. Trong trường hợp để lời gọi khi có 1 tình huống nào đó được hình thành. Sau khi 1 lời gọi được thực hiện thì đối tượng con điều khiển sẽ được giới thiệu để trả về điều khiển cho tiến trình gọi .

Đối với đối tượng con bản sao , đối tượng con điều khiển thì được loại trừ để ứng xử như là những câu lệnh với 4 câu lệnh khác nhau được chỉ ra trong hình 9.45.Việc chuyển đổi câu lệnh này được điều khiển rộng lớn bởi đối tượng con bản sao , và mỗi 1 câu lệnh sẽ có 1 hành động cần thiết. Những hành động đó thì được thực hiện bởi 1 số phương pháp gọi hàm đặc biệt của đối tượng con bản sao.Theo cách này, đối tượng con bản sao quyết định chính xác nếu và khi 1 yêu cầu định vị được mang đến .Chúng ta hãy nhìn đến 2 bản sao đế chứng minh 2 điều này.

Cho ví dụ về bản sao trong Globe.

Trong trường hợp 1 bản sao hoạt động, cung cấp 1 tiến trình yêu cầu lời gọi về một phương pháp đọc. Đối tượng con điều khiển sẽ bắt đầu gọi đầu tiên ,sau đó đối tượng con bản sao có thể ngay lập tức giới thiệu đến đối tượng con điều khiển để lời gọi cho phương pháp và trả về kết quả cho tiến trình gọi .

Khi sự phân tán với một phương pháp mặc định , thì sự lan truyền khác biệt có thể được theo sau. Tổng kết lại ,những đối tượng con bản sao tạo cho việc xử dụng một đối tượng con thông tin mà nó cung cấp tất cả tính năng theo thứ tự .Trong trương hợp này , khi start được kích hoạt , thì đối tượng con bản sao có thẻ ngay lập tức được giới thiệu đến đối tượng con điều khiển để đến với lời gọi đã được sắp xếp bằng phương pháp đã được gởi .Những lời gọi đã được sắp xếp này thì được nhân rộng cho tất cả các bản sao bao gồm bản sao khởi tạo việc nhân rộng .Khi đó,một lời mời được chính lời gọi yêu cầu lần nữa , nó cho phép đối tượng con điều khiển tiếp tục theo phương pháp đó .Khi lời mời được hoàn thành , thì kết quả được trả lại cho tiến trình gọi.Những bước này được tóm tắt trong bảng 9.46

Phương pháp đọc

Hành động làm Phương pháp Câu lệnh kế tiếp

Không có Bắt đầu Lời gọi

Lời gọi phưong pháp định vị Lời gọi Trả về

Trả về kết quả cho hàm gọi

Không có Bắt đầu

Phương pháp mặc định

Hành động Phương pháp gọi Câu lệnh tiếp theo

Không có Bắt đầu Gởi

Đến lời gọi chính Gởi Lời gọi

Phương pháp định vị lời gọi Lời gọi Trả về

Trả về kết quả cho hàm gọi Không có Bắt đầu

Bây giờ ta hãy xem như những bản sao chính dược phục hồi lại .Trong trường hợp này;một phương pháp cũng có thể được lời gọi tại vị trí và kết quả có thể được trở vềcho 1 tiến trình gọi . Khi 1 phương pháp mặc định được gọi tại bản sao phục hồi ,thì đối tượng con bản sao sẽ phải đợi yêu cầu đến phần chính và đợi cho đến khi các toán tử được thực hiện xong. Cũng vậy ,chính những câu lệnh đó sẽ phải cập nhật trước khi nó có thể được thông qua điều khiển trả về đối tượng con điều khiển để đến với phương pháp lời gọi định vị và thông báo khi đó được hoàn thanmhf bởi 1 lời gọi lời gọi .Tại điểm đó 1 đối tượng con bản sao sẽ sắp xếp câu lệnh của đối tượng con ngữ nghĩa và rải nó đi để phục hồi lại .Sớm nhất có thể, tất cả các sự phục hồi này được cập nhật , bản sao đối tượng con được giới thiệu đến đối tượng con điều khiển để trả về sự điều khiển cho tiến trình gọi hàm . Những trường hợp này được tóm tắt trong hình 9.47, chỉ ra 3 điểm khác nhau có thể có mà chúng ta vừa thảo luận.

Phương pháp đọc

Câu lệnh Hành động Phương pháp gọi Câu lệnh tiếp theo

Bắt đầu Không có Bắt đầu Lời gọi

Dẫnchững Phương pháp định vị lời gọi Lời gọi trả về

Trả về Định vị kết quả cho cuộc gọi Không có Bắt đầu

Câu lệnh Hành động Phương pháp gọi Câu lệnh tiếp theo

Bắt đầu Không có Bắt đầu gởi

Gọi Thông qua lời gọi sắpxếp gởi trả về

Trả về Trả về kết quả cho cuộc gọi Không có Bắt đầu

Phương pháp gọi tại bản sao phục hồi

Ph ương pháp mặc định tại bản sao chính

Câu lệnh Hành động Phương pháp gọi Câu lệnh tiếp theo

Bắt đầu Không có Bắt đầu Lời gọi

Lời gọi Phương pháp định vị lời gọi Lời gọi Trả về

Trả về Trả về kết quả cho cuộc gọi Không có Bắt đầu

9.3.7 KHẢ NĂNG SAI XÓT

Hiện tại không có nhu cầu mở rộng cho các phép sai số trong globe .Cung cấp chính cho các hình thức của bản sao .Trong nhiều trường hợp, nó có thể sao chép câu lệnh của đối tượng phân tán thông qua máy nhân đôi sẽ tạo ra 1 khả năng chịu lỗi.Tuy nhiên , những cái gì cần thiết cho máy có thể phục hồi cho 1 thất bại .

Để cung cấp việc phục hồi dịch vụ đối tượng globe sẽ chắc rằng đối tượng định vị thì cần thiết cho việc phục hồi và lưu trữ trên đĩa .Hay nói cách khác, những đối tượng này thì được tạo ra mà chúng ta đã thảo luận trước đó. Tuy nhiên , có nhiêù nhu cầu hơn cần được phục hồi như là 1 sự mở rộng .Cho ví dụ, chúng ta cần bảo vệ 1 câu lệnh dữ liệu nào đó thì nó sẽ được giữ cẩn thận bằng cách cập nhật đến đối tượng định vị ngay lập tức mà nó đượpc lưu trữ trên đĩa hay nói cách khác được phục hồi từ 1 bản sao . Cũng có 1 vài yếu tố không cung cấp bởi globe.

9.3.8 BẢO MẬT

Bảo mật trong globe thì được bảo vệ bởi 1 đối tượng chia sẽ phân tán đơn độc chống lại những bảo mật gắn liền . Nhưng có 1 khả năng quan trọng là nó đã từng thiết lập sự bảo vệ này như là 1 sự thay thế 1 đối tượng bảo mật được thêm vào như là 1 phần của mỗi đối tượng định vị . Sự thay thế đối tượng con bảo mật được chỉ ra trong hình 9.48.

Giaodiện giống nhau được bổ trợ bởi đối tượng con ngữ nghiã

Liên lạc với đối tượng con định vị Liên lạc với dịch vụ bảo mật định vị

Đối tượng con bảo mật được truy cập bảo mật theo các mức độ khác nhau. Đầu tiên điều cần thiết là phải chắc chắn có yêu cầu lời gọi từ tiến trình lưu động được chứng minh. Với lý do này, đói tượng con liên lạc sẽ thông qua thông tin trên mỗi yêu cầu được đưa ra đến với những đối tượng con (để cho phép sau đó chứng minh yêu cầu ).

Sau khi chứng minh đó được làm sáng tỏ, đối tượng con bản sao sẽ chuyển đổi thông tin với đối tượng con bảo mật cho phép điều khiển truy nhập . Trong globe , điều khiển truy nhập được thiết lập trên 1 phần phương pháp cơ bản. Hay nói cách khác , với mỗi phương pháp đối tượng con bảo mật được quyết định có thể được quyết định hoặc không đưa ra lời gọi bằng cách cho phép sử dụng các yêu cầu định danh trước đó .

Cuối cùng , đối tượng con bảo mật chuyển đôỉ với đối tượng con điều khiển thông tin để có thể kiểm tra giá trị thông số của 1 yêu cầu lời gọi được nằm ở bên trong 1 hàng. Cho ví dụ , trong trường hợp đối tượng sử dụng cho việc thu hồi tiền thì đối tượng bảo mật có thể không cho phép các phép toán mở rộng ra những giới hạn được xác định trước.

Đối tượng con bảo mật liên lạc với dịch vụ bảo mật định vị .Cho ví dụ để có thể thiết lập bảo mật thông tin với những đối tượng định vị khác, 1 đối tượng con bảo mật có thể phải thiếu vắng 1 khoá phiên. Trong globe sự liên lạc với dịch vụ bảo mật định vị được xử lý thông qua 1 đối tượng chia sẽ phân tán được biết như là 1 đối tượng chủ yếu. Đối tượng này trình bày lại đối tượng chia sẽ phân tán của người sử dụng trong 1 miền bảo mật nhất định. Đối tượng chủ yếu thì thích hợp cho việc thông tin với tổ chức thứ 3 như là một sự minh chứng và dịch vụ chứng nhận.

Như ví dụ trên có thể xem hệ thống bảo mật Kerberos được sử dụng bởi đối tượng chia sẽ phân tán globe để có thể thiết lập chìa khoá phiên giữa 2 đối tượng định vị A và B mà chúng được trói buộc bởi tiến trình PA và PB được chỉ ra trong hình 9.49 với các bước khác nhau được thiết lập thông tin bảo mật giữa A và B khi PAvà PB được nằm trong những miền bảo mật khác nhau

Đầu tiên đối tượng con bảo hoà yêu cầu đối tượng chủ yếu (được xem như là PA) để lấy 1 khoá phiên được chỉ ra ở bước 1. Đói tượng chủ yếu này sẽ cung cấp 1 yêu cầu tới cho chứng minh Kerberos và dịch vụ trợ cấp vé (bước 2) để vắng đi 1 khoá phiên và 1 vé trong đối tượng định vị B (bước3) mà nó được thông qua đối tượng con bảo mật (bước4)

Tại điểm này , đối tượng con bảo mật sẽ có thể gắn kết đối với đối tượng định vị khác bằng đối tượng con thông tin của đối tượng và đến vé đó (bước5) .Vé này thì được truy cập đến đối tượng chủ yếu được trình bày trong tiến trình PB (bước6) mà có thể được giải mã cẩn thận và trả về khoá phiên cho đối tượng con bảo mật trong B (bước7)

Có nhiều thông tin hơn trong việc bảo mật globe có thể được tìm thấy trong (Homburg 2001; và Leiwo...,1999.)

9.4 So sánh giữa corba, dcom và globe:

Corba, dcom và globe là 3 hệ thống hướng đối tượng khác nhau. Mỗi mô hình đều có ưu và khuyết điểm riêng. Sau khi đã thảo luận chi tiết về các nguyên lý của mỗi mô hình, ta hãy so sánh 3 mô hình về nguyên lý, bắt đầu từ việc so sánh một cách tổng quan về mục đích thiết kế của mỗi mô hình.

9.4.1 Về mặt triết lý:

Corba, dcom và globe đã được phát triển với các mục đích thiết kế khác nhau. Corba là kết quả của sự nỗ lực nhằm cung cấsp một chuẩn platform tầng trung gian cho phép các chương trình ứng dụng từ các hãng sản xuất phần mềm khác nhau có thể liên giao tác với nhau. Với hàng trăm đại biểu trong các uỷ ban khác nhau đang cố gắng tiến tới đồng ý những gì cho các giao diện để các bộ phận khác nhau của corba nên như thế nào. Và thật sự là điều hoàn toàn ngạc nhiên rằng tất cả đều đồng ý.

Phần lớn mục đích thiết kế của dcom là phát triển các chức năng trong khi vẫn tương thích với các phiên bản trước và chúng được liên kết chặt chẽ với nhau ngay cả với các phiên bản windows cũ nhất. Điều hay nhất là các ứng dụng cũ vẫn có thể tiếp tục được sử dụng. Điều dở là một khi có một quyết định thiết kế tồi được tạo ra, nói chung nó có thể không chính xác. Dcom là cực kỳ phức tạp vì thế mà không có kết quả tốt trong uỷ ban như corba.

Globe là kết quả của sự nỗ lực nghiên cứu. Nó đã được phát triển bởi một nhóm nhỏ khá nổi tiếng. Globe đơn giản về chức năng và nó có thể thiết kế hệ thống từ đầu. Không cần phải lo lắng về các mối quan tâm của người khác, hãy suy xét về sự cần thiết của sự tương thích với các phiên bản trước. Giống như các đề án nghiên cứu khác, việc thiết kế của globe về bản chất là sáng sủa và đơn giản. Tuy nhiên, globe vẫn còn không đầy đủ và việc thiết kế của globe cần phải mở rộng với nhiều điểm khác nữa. Mục đích chính của việc thiết kế globe là cung cấp tính co giãn.

Ở đây có sự khác nhau lớn giữa các mô hình đối tượng được cung cấp trong mỗi hệ thống. Cả corba và dcom đều sử dụng mô hình đối tượng từ xa. Corba cung cấp một mô hình đối tượng đa năng và thích hợp. Sức mạnh của corba là ở chỗ nó cung cấp một sự trong suốt ở mức độ cao về sự truy cập và định vị các đối tượng. Đối với client, thật là khó để nhận ra sự khác nhau giữa một đối tượng cục bộ và từ xa. Các đối tượng có trạng thái, có thể được định danh toàn cục và các tham chiếu có thể được dễ dàng thông qua giữa các client trên các máy khác nhau. Thêm vào đó, cả các đối tượng tồn tại ngắn hay dài đều được hỗ trợ.

Mô hình của dcom là đơn giản hơn nhiều của corba, và đã được đánh giá là quá đơn giản. Các đối tượng của dcom là ngắn, không có định danh toàn cục và trong một số trường hợp ngay cả là giả cũng không có trạng thái. Mô hình này vi phạm nhiều các nguyên lý cơ bản trong kỹ thuật đối tượng phân tán.

Globe cũng cung cấp các đối tượng thật. Một đặc trưng khác biệt của mô hình đối tượng globe, tuy nhiên các đối tượng trong globe có thể bị sao chép và phân tán một cách tự nhiên qua nhiều máy. Hơn thế nữa, đối tượng quyết định cách thức phân tán và sao chép ứng với mỗi trạng thái mỗi nơi. Nói cách khác, một đối tượng gói gọn các chính sách và sự thi hành phân tán của nó. Thêm vào đó, nó cũng có thể gói gọn các chính sách và sự thi hành cho mục đích an ninh, điều khiển tắc nghẽn, ...

Có sự khác nhau lớn khi so sánh các dịch vụ. Corba cung cấp một tập đầy đủ các dịch vụ, quá đầy đủ, do vậy chúng thường chồng chéo. Còn dcom cung cấp các dịch vụ hỗn hợp của riêng nó, nhưng cũng dựa vào các dịch vụ được cung cấp bởi chính môi trường của nó, như đặt tên và các dịch vụ thư mục. Globe chỉ cung cấp một số ít các dịch vụ chính; dịch vụ đặt tên đơn giản và dịch vụ định vị trí cao cấp. Nó khớp với việc thiết kế về mặt triết lý của globe để giữ các vấn đề đơn giản, nhưng rõ ràng rằng nhiều dịch vụ hơn là cần thiết để thật sự đưa globe làm việc như một hệ phân tán cho các mục đích tổng quát.

Sự khác nhau quan trọng giữa 3 hệ thống là khung nhìn của chúng trong các giao diện. Corba cho phép một giao diện ngôn ngữ cơ bản để tiến đến cung cấp một chuẩn idl mà trong đó các chi tiết kỹ thuật được sắp đặt cho các ngôn ngữ khác nhau. Vì lý do dễ chuyển mang và tính liên thao tác, thật là cần thiết khi sự sắp đặt các ngôn ngữ đó được đưa vào chuẩn hóa. Thuận lợi chính của điều này là corba trở nên độc lập với những gì mà chương trình dịch tạo ra. Điều cốt yếu, corba định nghĩa tính năng liên thao tác ứng với các cấp độ của ngôn ngữ lập trình.

Trái lại, dcom và globe cung cấp các giao diện nhị phân. Do đó, các giao diện cho các đối tượng được định nghĩa độc lập với ngôn ngữ lập trình. Trong dcom, sự thuận lợi của giao diện nhị phân đã được chứng minh bởi số lượng các chương trình được viết với các ngôn ngữ như c, java và vb. Globe cho phép tính năng tương tự.

9.4.2 Truyền thông:

Bây giờ hãy quan tâm đến cách thức mà các hệ thống điều khiển sự truyền thông. Corba vào lúc ban đầu chỉ có lời gọi phương thức đồng bộ đơn giản cho truyền thông. Mô hình ban đầu này cũng được cung cấp việc truyền không đồng bộ một chiều và các yêu cầu truyền đồng bộ chờ. Hiện nay, mô hình truyền thông corba không đơn giản nữa, nhưng lại cung cấp đầy đủ các phương thức có thể. Phương thức truyền không đồng bộ ở dạng các sự kiện và các khai báo, với các đặc trưng khác cho việc tạo ra, phá huỷ và lọc các sự kiện. Thêm vào đó, corba cung cấp một dịch vụ truyền thông báo mà trong đó sự kết hợp giữa các cuộc gọi trở lại và thăm dò thông báo là cho phép.

Trong khía cạnh này, dcom tương tự như corba. Nó cung cấp các lời gọi phương thức truyền xa đồng bộ, nhưng cũng có khác (và không thích hợp) với các cơ chế truyền gọi trở lại. Giống corba, nó cũng cung cấp cơ chế thông báo.

Globe chỉ có các lời gọi phương thức truyền đồng bộ. Nó không có các sự kiện, không có các cuộc gọi trở lại, không thông báo, ...vì các đối tượng của globe có thể được sao chép, các đối tượng cũng không được cho phép cầu cứu các đối tượng khác. Các phương sách đặc biệt cần phải được đưa ra như những gì mà ta đã thảo luận ở chương 6 để giải quyết các vấn đề gây ra bởi các lời gọi bị sao chép. Xa hơn nữa, việc cung cấp chuỗi các lời gọi đã không được nhắc đến. Đây không chỉ là vấn đề của riêng globe mà ngay cả corba và dcom cũng sẽ phải đối mặt dù sớm hay muộn khi các đối tượng bị sao chép.

9.4.3 Các tiến trình:

Mỗi hệ thống đều cung cấp phiên bản của một đối tượng chủ của chính nó. Các đối tượng chủ rất khác nhau. Đối tượng chủ của corba thường là rất đa năng và mềm dẻo, và tạo ra sự khác biệt rõ ràng giữa những gì mà một đối tượng thực thi trong cụm các phương thức và cách thức mà các đối tượng và các lời gọi phương thức được quản lý bởi các phương tiện của bộ thích hợp đối tượng của corba. Sự khác biệt này có trong sự phát triển các đối tượng phân tán và trong việc sử dụng chúng trong một hệ phân tán.

Đối tượng chủ của dcom là câu trả lời của microsoft về việc hỗ trợ sự phát triển của các đối tượng phân tán. Nó không mềm dẻo như các đối tượng chủ của corba mà nó sử dụng một poa và cái chính là nó có đối tượng quản lý và lời gọi phương thức hard - coded (mã cứng) vào trong hệ thống thời gian thực. Thêm vào đó, các chuyên viên thiết kế đối tượng trong chừng mực nào đó đã được tuỳ ý khi đi đến việc hỗ trợ tuyến đoạn. Sự hoạt hoá jit được cung cấp bởi các máy chủ dcom có thể nâng cao hiệu năng, nhưng chỉ hoạt động khi các đối tượng không có trạng thái. Đó là điều đáng nghi ngại nhất nếu như tiến tới ăn khớp với bất cứ công nghệ hướng đối tượng nào.

Đối tượng chủ của globe vẫn còn phần nào nguyên sơ, nhưng cũng cung cấp các chức năng tương tự như poa của corba. Chức năng chính bắt nguồn từ việc các đối tượng có thể có sự thi hành đặc biệt của các đối tượng điều khiển con và các đối tượng con bản sao của chính nó. Đối tượng chủ của globe sẽ chỉ làm những gì được bảo bởi các đối tượng đang host. Ở đây, không cần phải cấu hình máy chủ như với poa của corba. Tuy nhiên, khi các đối tượng của globe có thể chỉ xác định cách thức mà chúng bị phân tán, sao chép, và được bảo mật vẫn có các loại chính sách khác yêu cầu hỗ trợ từ đối tượng chủ. Ví dụ, hiện tại chỉ có một con số giới hạn các cách để hỗ trợ sự duy trì.

9.4.4 Đặt tên:

Sự khác nhau phần lớn giữa 3 mô hình khi so sánh về sự hỗ trợ của chúng cho cách đặt tên.

Corba cung cấp rất nhiều tiện nghi cho việc đặt tên và tham chiếu tới các đối tượng. Cụ thể, đã có dịch vụ đặt tên riêng biệt, dịch vụ sở hữu, và dịch vụ trao đổi. Thực chất, mỗi một dịch vụ đó đều trả về một hay nhiều các đối tượng tham chiếu. Một đối tượng tham chiếu của corba tham chiếu trực tiếp đến đối tượng chủ đang host các tham chiếu. Một cách luân phiên, nó tham chiếu đến một kho thi hành là nơi chứa track của máy chủ hiện hành của các đối tượng, hay thậm chí kích hoạt đối tượng nếu cần thiết.

Nói cách khác, các đối tượng tham chiếu của corba có vị trí độc lập. Như là một điều hiển nhiên, bất kể khi nào một đối tượng di chuyển, sự tham chiếu của nó trở nên không có giá trị. Mục đích của điều này là để cho các hệ phân tán cục bộ khá dễ dàng để thi hành dịch vụ định vị có hiệu quả. Tuy nhiên, như là một cách giải quyết tổng quát, nó có thể không bao giờ có thể co dãn các hệ thống có phạm vi rộng.

Dcom không có dịch vụ đặt tên của chính bản thân nó, nhưng lại dựa vào các dịch vụ có sẵn trong môi trường của nó, như active directory. Nếu như một dịch vụ không có giá trị, việc tìm kiếm một đối tượng bằng tên của nó là không thể.

Một dạng của các đối tượng tham chiếu của dcom là các con trỏ phân giới. Một cách tổng quát, công việc kiểm soát như là một con trỏ, yêu cầu sự uỷ quyền của các máy khách được kiểm soát và truyền tới nguồn. Việc sử dụng một sự kiểm soat chuẩn làm đơn giản hoá vấn đề một ít, nhưng xét tổng thể, thông qua một con trỏ phân giới như một đối tượng tham chiếu tới các máy khách khác là công việc đòi hỏi rất khéo léo, đặc biệt khi có một đối tượng đặc biệt yêu cầu.

Các đối tượng tham chiếu lâu dài ở dạng các biệt danh được gọi là một kludge bởi những người orfali. Vào năm 1996, phải nói rằng các biệt danh không dễ dàng để hiểu. Chúng đã giải quyết nhiều vấn đề có quan hệ tới các đối tượng tham chiếu, nhưng câu hỏi vẫn đặc ra là khi nào có hướng giải quyết tốt nhất.

Globe cơ bản là khác với corba và dcom trong sự tách biệt giữa cách đặt tên và đánh địa chỉ của các đối tượng. Việc sử dụng các đối tượng định danh tồn tại lâu dài và có vị trí độc lập cho phép tên của một đối tượng có thể được thay đổi mà không làm ảnh hưởng tới việc đánh bản đồ tên - tới - địa chỉ, việc này thông thường được lưu trữ thông qua các dịch vụ đặt tên truyền thống. Tương tự như vậy, khi có một địa chỉ thay đổi, nó sẽ không ảnh hưởng bản đồ tên - tới - địa chỉ. Chúng ta đã thảo luận những thuận lợi của cách tiếp cận này trong suốt chương 4. Điểm bất cập của cách tiếp cận này là một sự tách biệt, dịch vụ định vị co dãn rộng khắp thế giới là cần thiết. Phát triển dịch vụ xa hơn nữa từ những cái thông thường.

Cách đặt tên của các đối tượng globe bằng chuỗi các ký tự khá đơn giản. Cái còn thiếu là các dịch vụ thư mục sẽ cho phép một máy khách tìm kiếm các đối tượng trên cơ sở các thuộc tính yêu cầu. Đó là một dịch vụ cần thiết cho nhiều hệ thống phân tán.

9.4.5 Đồng bộ hoá:

Các cơ chế đồng bộ hóa được cung cấp bởi các dịch vụ khoá truyền thống và các dịch vụ giao tác mà những dịch vụ này được chỉ thi hành cho corba và dcom. Globe rõ ràng không có các cơ chế đồng bộ hoá ngoại trừ sự thi hành cho cơ chế đồng bộ hóa đối tượng thêm vào bằng các phương tiện sao chép các đối tượng con.

9.4.6 Lưu trữ và sao chép:

Có sự khác nhau rõ giữa 3 hệ thống khi quan tâm đến vấn đề lưu trữ và sao chép.

Sự sao chép trong corba đã bị trì hoãn trong thời gian dài, nguyên nhân chính là do các khó khăn trong vấn đề hợp nhất nó với các đối tượng từ xa. Bây giờ đã cho phép máy chủ có chức năng sao chép tách biệt tạo ra các bản ảo mà một nhóm các đối tượng xuất hiện với vai trò như là một đối tượng đơn từ xa. Nói cách khác, tới máy khách, về bản chất không có sự khác biệt giữa một đối tượng được sao chép và không sao chép.

Máy chủ sao chép xác định cách thức, khi nào, và ở đâu cần sao chép. Hiện tại, đã có một vài các chính sách tạo bản sao có thể được liên kết với một nhóm các đối tượng. Tất cả các chính sách này thi hành dãy bền vững. Một sự thi hành tiêu biểu dựa vào cơ chế totally - ordered multicasting.

Ở đây không có sự hỗ trợ nào đặc biệt cho việc lưu trữ, nhưng công việc lưu trữ có thể dễ dàng được thêm vào sử dụng các chắn. Tuy nhiên, sự thi hành của một hệ thống con lưu trữ được đặc hoàn toàn vào bộ phát triển ứng dụng. Vấn đề nảy sinh là có thể sẽ đòi hỏi một sự nỗ lực rất lớn.

Dcom không cung cấp bất kỳ sự hỗ trợ nào cho 2 vấn đề này. Chúng được đặc hoàn toàn vào trong các ứng dụng.

Globe khác hơn corba là kết hợp chặc chẽ một đối tượng con sao chép trong mỗi đối tượng cục bộ của đối tượng được chia sẻ phân tán. Vì giao diện cho một đối tượng con sao chép được chuẩn hoá nên sự khác nhau trong việc thi hành các thuật toán sao chép khác nhau có thể dễ dàng tương thích với một đối tượng. Kết quả đã ở mức độ hoàn chỉnh của sự mềm dẻo; tốt hơn nhiều danh sách các thuật toán ấn định được hỗ trợ bởi corba. Cơ chế tương tự có thể được áp dụng để tạo ra các tính năng lưu trữ.

Mặc dù globe cung cấp một cơ chế tổng quát cho thuật toán sao chép các đối tượng, nó vẫn chưa có một bộ sưu tập lớn các đối tượng con bản sao được thi hành. Nói cách khác, hiện tại nhà phát triển thường phải viết sự thi hành của chính họ. Trong trường hợp này, các đối tượng con bản sao của globe có thể so sánh với các chắn của corba, trong đó những gì mà họ cung cấp chỉ là cơ chế, nhưng không có hệ thống con nào có thể sẵn sàng được sử dụng cho sự phát triển của các đối tượng phân tán.

9.4.7 Khả năng chịu được lỗi:

Khả năng chịu được lỗi của corba được hỗ trợ chính bằng cách sao chép như chúng ta đã thảo luận ở trên. Thêm vào đó, các dịch vụ của corba cho các giao tác và kiểm soát trùng hợp trợ giúp cho sự phát triển của các dịch vụ chịu lỗi.

Dcom cung cấp các hỗ trợ tương tự cho khả năng chịu được lỗi bằng các giao tác tự động mà các giao tác này được sao lưu bởi bộ điều hợp giao tác tách biệt.

Globe không cung cấp các giao tác; sự hỗ trợ của nó cho khả năng chịu được lỗi chính là bằng cách sao chép. Thật là khó khăn cho bất kỳ tính năng nào bị vỡ và khôi phục lại ngoại trừ khả năng ghi trạng thái vào nơi lưu trữ cục bộ lâu dài.

9.4.8 Bảo mật:

Cuối cùng, khi so sánh đặc tính bảo mật của corba, dcom và globe lại xuất hiện các điểm khác nhau.

Corba đã định nghĩa một kiến trúc bảo mật hoàn hảo cho các đối tượng từ xa. Hãy quan tâm đến cơ chế tách biệt rõ ràng từ các chính sách bằng cách cung cấp các tính năng rộng để quyết định khi nào và ở đâu các chức năng bảo mật nên áp dụng. Tính năng bảo mật tự nó kích hoạt ở dạng ứng dụng cụ thể các đối tượng chính sách được gọi khi một yêu cầu hay đáp trả đang được xử lý bởi một ORB. Một đối tượng chính sách có thể được cấu hình bởi một ứng dụng và thường sẽ sử dụng các dịch vụ bảo mật có giá trị cục bộ. Ví dụ, một đối tượng chính sách thẩm định quyền có thể dựa vào Kerberos.

Cơ chế cho lời gọi của các đối tượng chính sách là chắn các cuộc gọi lần nữa. Để làm điều này một cách bảo mật, corba cung cấp các bộ chắn tách biệt bảo mật cho các lời gọi của một đối tượng chính sách và cho việc kiểm tra điều khiển truy cập.

Trong dcom, tính bảo mật có thể được hỗ trợ trong cách khai báo bằng cách định rõ trong registry những gì mà một đối tượng yêu cầu đối với sự kích hoạt, điều khiển truy cập, và xác định thẩm quyền. Hệ điều hành khi kết hợp với dcom sau đó sẽ chú ý tới các yêu cầu này. Một cách tiếp cận khác là để các ứng dụng quyết định dịch vụ bảo mật nào mà các ứng dụng muốn bằng cách gọi một hàm đặc biệt tại lúc khởi tạo đối tượng.

Bảo mật trong globe được điều khiển phần nào bởi các đối tượng con bảo mật tách biệt. Các đối tượng con này truyền thông với các dịch vụ bảo mật cục bộ, như kerberos. Thêm vào đó, nó điều khiển các vấn đề bảo mật đối với truyền thông, sao chép, và lời gọi các đối tượng con có ý nghĩa. Tuy nhiên, kiến trúc bảo mật của globe là vẫn chưa đầy đủ. Ví dụ, nó vẫn không chỉ rõ cách thức một đối tượng cục bộ thực sự lấy các đối tượng bảo mật mà nó muốn, thay vì được cung cấp một đối tượng con có hại.

Hình 9 -50 là bảng tóm tắt các vấn đề khác nhau mà chúng ta đã thảo luận trong phần này (so sánh 3 mô hình):

Vấn đề Corba Dcom Globe

Các mục đích thiết kế Liên thao tác hoá Chức năng hoá Tính co dãn hoá

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

Các dịch vụ Do globe cung cấp và nhiều Lấy từ môi trường Một vài

Các giao diện Cơ bản là idl Nhị phân Nhị phân

Truyền đồng bộ Có Có Có

Truyền không đồng bộ Có Có Không

Các cuộc gọi trở lại Có Có Không

Các sự kiện Có Có Không

Thông báo Có Có Không

Đối tượng chủ Mềm dẻo (poa) Mã cứng Đối tượng phụ thuộc

Dịch vụ thư mục Có Có Không

Dịch vụ trao đổi Có Không Không

Dịch vụ đặt tên Có Có Có

Dịch vụ định vị Không Không Có

Tham chiếu đối tượng Vị trí của đối tượng Con trỏ phân giới Định danh đúng

Đồng bộ hoá Giao tác Giao tác Chỉ là intra - object

Hỗ trợ sao chép Máy chủ tách biệt Không Đối tượng con tách biệt

Các giao tác Có Có Không

Khả năng chịu lỗi Bằng cách sao chép Bằng giao tác Bằng sao chép

Hỗ trợ khôi phục lại Có Bằng giao tác Không

Bảo mật Các cơ chế khác nhau Các cơ chế khác nhau Cần làm nhiều hơn

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #phần#tan