b. Trình khách Globe.
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
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 89
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.
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 90
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
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 91
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
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 92
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.
Bài giảng COP – Chuyên ngành: CNPM - Version 1
Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 93
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