Tìm hiểu UDDI Theo dõi tiến triển chi tiết kĩ thuật Tom Bellwood ([email protected]) Kỹ thuật viên cao cấp IBM 20 05 2009 Dự án Universal Description, Discovery, and Integration (UDDI) tiếp tục làm giàu thêm bộ công cụ có sẵn cho các doanh nghiệp để mô hình hóa và cụ thể hóa các dịch vụ web được đăng ký với UDDI. Bài viết này sẽ giới thiệu về UDDI và vai trò của nó trong sự phát triển các dịch vụ Web. Bạn sẽ biết được cách UDDI làm việc cũng như khám phá những đặc tính mới cho các đặc tả kỹ thuật UDDI. (Bài viết này được xuất bản và phát hành vào tháng 5 năm 2002 tạp chí IBM developerWorks.) UDDI là gì? Dự án UDDI khuyến khích những khả năng thực hiện nội tại và sự lựa chọn của các dịch vụ web. UDDI là các mối quan hệ của các nhà lãnh đạo kinh doanh và công nghiệp, và được thành lập bởi IBM, Ariba, và Microsoft. Hiện nay, có trên 300 công ty thành viên tham gia. UDDI cung cấp các chuẩn kỹ thuật theo các tiêu chuẩn cho việc mô tả và khám phá, cũng như tập hợp các cài đặt dựa trên Internet. UDDI tiếp tục phát triển nhanh chóng và tiếp tục tăng hỗ trợ công nghiệp. Các đặc tính kĩ thuật phát triển nhanh chóng vì nó nhận được phản hồi từ các cài đặt nhanh, những cài đặt này xác nhận các khái niệm và cung cấp nền tảng kinh nghiệm phong phú cho việc hoàn thiện các đặc tả sau này. UDDI giải quyết các vấn đề trong kinh doanh. Đầu tiên, nó giúp mở rộng và đơn giản hóa các giao dịch giữa doanh nghiệp tới doanh nghiệp (business-to-business - B2B). Đối với những nhà sản xuất cần tạo nhiều mối quan hệ với những khách hàng khác nhau, mỗi khách hàng ứng với một tập các giao thức và các chuẩn, UDDI hỗ trợ miêu tả dịch vụ rất linh hoạt sử dụng bất kỳ giao thức tương tác nào. Với một cửa hàng hoa ở Australia nó muốn được quảng cáo ở khắp mọi nơi trên thế giới nhưng lại không biết làm thế nào, UDDI cung cấp cách để thực hiện điều này. Những đặc tả này cho phép khám phá đơn giản và hiệu quả về kinh doanh và những dịch vụ họ cung cấp bằng việc công bố chúng trong bảng đăng ký. Với những nhà cung cấp thị trường B2B cần lấy dữ liệu cho các nhà cung cấp khác trong cùng một lĩnh vực có liên quan tới dịch vụ thanh toán, đóng gói, giao hàng, bảo hiểm, ..., UDDI cho phép việc © Copyright IBM Corporation 2009 Tìm hiểu UDDI Nhẫn hiệu đăng ký Trang 1 của 11 developerWorks® ibm.com/developerWorks/vn/ khai phá và tích hợp các dịch vụ web liên quan vào trong một tiến trình kinh doanh kết hợp. UDDI cung cấp "cửa hàng một cửa" cho việc tìm kiếm thông tin về dịch vụ điện tử và thương mại. Công bố thông tin dịch vụ và kinh doanh ở UDDI sẽ được quảng bá rộng rãi. UDDI dựa vào những chuẩn đã có như là ngôn ngữ đánh dấu mở rộng (XML) và giao thức truy cập đối tượng đơn giản (SOAP). Tất cả các cài đặt của UDDI đều hỗ trợ các đặc tả UDDI. Đặc tả công cộng được phát triển trong một tiến trình mở bởi các thành viên của tổ chức. Mục đích là để tạo và thực thi ba phiên bản liên tiếp của đặc tả kỹ thuật trước khi chuyển giao quyền sở hữu cho một cá nhân độc lập. Phiên bản 1 của đặc tả UDDI được công bố trong tháng 9 năm 2000, phiên bản 2 được công bố váo tháng 6 năm 2001. Phiên bản 3 đang được phát triển và được hi vọng sẵn sàng vào giữa năm 2002. Phiên bản 1 xây dựng nền tảng cho việc đăng ký, còn phiên bản 2 thêm các đặc tính như quan hệ kinh doanh. Phiên bản 3 tiếp tục giải quyết các lĩnh vực quan trọng cho việc phát triển dịch vụ web, như là bảo mật, tăng cường quốc tế hóa, khả năng tương tác nội bộ, và hàng loạt các cải tiến hàm API để cải tiến công cụ tốt hơn. Hình 1. Lớp dịch vụ Web với UDDI Quan sát Hình 1, UDDI phù hợp với ngăn xếp dịch vụ Web tổng quan và là thành phần quan trọng của sự sáng lập của nó, cho phép sự sáng tạo, đặc tả, khám phá và dẫn chứng của dịch vụ Web. UDDI xây dựng trên tầng vận chuyển của mô hình mạng và tầng thông điệp XML dựa trên SOAP. Các ngôn ngữ mô tả dịch vụ, như là ngôn ngữ miêu tả dịch vụ Web (Web Services Description Language - WSDL), cung cấp thuật ngữ XML đồng nhất (tương tự như ngôn ngữ tương tác dữ liệu - IDL) để dùng trong việc mô tả các dịch vụ web và giao diện của chúng. Bạn có thể xây dựng trên nền tảng này bắng cách thêm các tầng lớp khả năng, như là mô tả quy trình của dịch vụ web sử dụng ngôn ngữ Web Services Flow, bảo mật, quản lý và đặc tính chất lượng dịch vụ. UDDI làm việc như thế nào Bản ghi của UDDI chứa các mô tả của các doanh nghiệp có thể truy cập bằng các chương trình máy tính và các dịch vụ mà chúng hỗ trợ. Nó cũng chứa các tham chiếu tới các đặc tả cụ thể mà một dịch vụ web có thể hỗ trợ, các định nghĩa phân loại (được sử dụng cho việc xếp loại kinh doanh và dịch vụ), và các hệ thống định danh (sử dụng để xác định các doanh nghiệp). UDDI cung cấp một Tìm hiểu UDDI Trang 2 của 11 ibm.com/developerWorks/vn/ developerWorks® lược đồ và mô hình lập trình với định nghĩa luật giao tiếp với bản ghi. Tất cả các hàm API trong đặc tả UDDI được định nghĩa trong XML, gói gọn trong một phong bì SOAP, và gửi qua HTTP. Hình 2. Luồng thông báo UDDI giữa Client và Registry Hình 2 minh họa sự truyền tải thông báo UDDI, từ yêu cầu SOAP của máy khách thông qua giao thức HTTP đến một nốt bản ghi đăng ký và quay lại. Máy chủ SOAP của hệ thống đăng ký tiếp nhận các thông điệp UDDI SOAP, xử lý nó, và trả lại một kết quả SOAP đến máy khách. Theo chính sách của bản ghi, các yêu cầu từ máy khách mà bắt buộc phải chỉnh sửa dữ liệu phải là các giao dịch đảm bảo an ninh và được xác thực. Hình 3. UDDI làm việc như thế nào Hình 3 minh họa cách một bản ghi UDDI được tạo thành với dữ liệu và cách các khách hàng khám phá và sử dụng những thông tin. Một bản ghi UDDI được xây dựng trên dữ liệu cung cấp bởi khách hàng của nó. Có vài bước để tạo ra dữ liệu hữu dụng trong UDDI. Như trong bước 1, công bố thông tin hữu ích đến bản ghi bắt đầu khi các công ty phần mềm và các cá nhân định nghĩa các đặc tả liên quan đến công nghiệp hay kinh doanh, mà họ đăng ký với UDDI. Những thứ này được biết như là các mô hình kỹ thuật, hoặc thông dụng hơn là tModels. Tìm hiểu UDDI Trang 3 của 11 developerWorks® ibm.com/developerWorks/vn/ Trong bước 2, các công ty cũng đăng ký bản mô tả kinh doanh các dịch vụ của họ. Một bản ghi UDDI sẽ theo dõi tất cả các điểm này bằng cách gán cho mỗi điểm một định danh duy nhất, được biết đến như là một khóa định danh phổ biến duy nhất (Unique Universal Identifier - UUID) như trong bước 3. Một khóa UUID được đảm bảo là duy nhất và không bao giờ thay đổi trong một bản ghi UDDI. Những khóa này trông giống như một chuỗi số thập lục phân ngẫu nhiên có định dạng (ví dụ, C0B9FE13-179F-413D-8A5B-5004DB8E5BB2). Chúng có thể được sử dụng để tham chiếu đến một điểm mà chúng được gán vào. Các khóa UUID tạo trong một bản ghi chỉ có nghĩa nội trong bản ghi đó. Các khách hàng khác, như là e-Marketplaces, máy tìm kiếm, và ứng dụng thương mại trong bước 4, sử dụng một bản ghi UDDI để khám phá các dịch vụ quan tâm. Và ngược lại, các doanh nghiệp khác có thể yêu cầu các dịch vụ này, cho phép sự tích hợp đơn giản và thay đổi theo thời gian như minh họa trong bước 5. Dữ liệu trong một bản ghi UDDI có thể được phân chia một cách khái niệm vào bốn hạng mục, mỗi hạng mục biểu diễn một điểm vào cao nhất trong UDDI. Mọi điểm vào đó được gán cho một khóa UUID duy nhất và luôn có thể được định vị trong bản ghi UDDI đó với khóa UUID này: • • • • Các mô hình kỹ thuật Kinh doanh Dịch vụ kinh doanh Dịch vụ đi kèm Thông tin đăng ký cho kinh doanh và dịch vụ có thể được chia thành ba nhóm: bản bạch, bản vàng và bản xanh. Bản bạch thể hiện thông tin cơ bản của một doanh nghiệp như là tên, mô tả việc kinh doanh, thông tin liên lạc,... Nó cũng bao gồm bất cứ định danh nào của cho doanh nghiệp đó, như là một số Dun & Bradstreet D-U-N-S®. Thông tin trên bản vàng mở rộng khả năng của bạn cho việc tìm kiếm một doanh nghiệp hay một dịch vụ nội trong bản ghi bằng cách hỗ trợ sự phân lớp sử dụng hệ thống phân loại để phân loại. Sự phân lớp như vậy có thể được liên kết không chỉ với các doanh nghiệp và dịch vụ mà còn với tModels. Nếu chỉ có bản bạch, bản vàng hoặc cả hai được cung cấp, một bản ghi có giá trị giới hạn trong sự khám phá và sử dụng dịch vụ. Để thực hiện, bản xanh cung cấp các thông tin về cách và nơi để một dịch vụ được yêu cầu. Bản xanh là thông tin đi kèm gắn với các dịch vụ và cung cấp các tham chiếu tới các đặc tả kỹ thuật mà các dịch vụ thực thi, cũng như là các con trỏ đến các tệp và cơ chế khám phá dựa trên URL. Một bản ghi UDDI được cấu thành từ một hoặc nhiều cài đặt của đặc tả UDDI mà cùng hoạt động để chia sẻ dữ liệu bản ghi. Một bản ghi đặc biệt được cấu thành từ một tập các cài đặt UDDI có thể truy cập công cộng được được gọi là các nốt. Chúng làm việc cùng nhau để chia sẻ dữ liệu và, chúng thành lập bản ghi doanh nghiệp UDDI Business. Bản ghi này cung cấp miễn phí ra cộng đồng. Tất cả các bản ghi doanh nghiệp tồn tại trên tất cả các trang Operator, nhưng chúng chỉ có thể bị thay đổi tại nơi mà chúng được tạo ra. Tìm hiểu UDDI Trang 4 của 11 ibm.com/developerWorks/vn/ developerWorks® Cả IBM và Microsoft điều hành các nốt phiên bản 1 trong bản ghi doanh nghiệp UDDI, và chúng, cũng như cả HP và SAP, đang điều hành các trang web thử nghiệm mà hỗ trợ các đặc tả UDDI phiên bản 2. Cả bốn công ty lớn đó lên kế hoạch để hỗ trợ đăng ký sản phẩm phiên bản 2 vào giữa năm 2002. Mỗi nhà điều hành hỗ trợ các hàm API SOAP định nghĩa bởi đặc tả UDDI. Thỏa thuận được củng cố thông qua hợp đồng thương mại. Các nhà điều hành cung cấp miễn phí các dịch vụ kèm theo như là các giao diện người dùng dựa trên trình duyệt. Nhìn qua các đặc tả UDDI Đặc tả UDDI được cấu thành từ vài tài liệu khác nhau. Đặc tả API mô tả các hàm API SOAP cho phép bạn thực hiện các hoạt động tìm kiếm và quảng bá. Cách xử lý lỗi, ngữ nghĩa của yêu cầu, kết quả cũng được mô tả. Các thông tin thực tế về các quy ước và cách sử dụng cũng có sẵn. Các tài liệu bao gồm đặc tả cấu trúc dữ liệu và lược đồ API định nghĩa thông điệp và ngữ nghĩa của dữ liệu. Các hàm API của UDDI được chia thành hai nhóm, truy vấn và phát hành. Phiên bản 1 hỗ trợ các thao tác API, như trong Ví dụ 1. Ví dụ 1. Các hàm API phiên bản 1 của UDDI Inquiry Operations: Find find_business find_service find_binding find_tModel Get details get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail get_registeredInfo Publishing Operations: Save save_business save_service save_binding save_tModel Delete delete_business delete_service delete_binding delete_tModel get_registeredInfo Security get_authToken discard_authToken Các API truy vấn chia thành ba mẫu truy vấn: Phiên bản 2.0 của UDDI UDDI định nghĩa bốn thành phần lõi dữ liệu trong mô hình dữ liệu: • • • • businessEntity (mô hình hóa thông tin kinh doanh) businessService (mô tả một dịch vụ) tModel (mô tả các đặc tả, phân lớp, hoặc các định danh) binding Template (ánh xạ giữa một businessService và tập các tModel mô tả dấu tay (fingerprint) kỹ thuật của nó) Ngoài những thành phần cốt lõi này, phiên bản 2 đã thêm sự hỗ trợ cho mô hình hóa quan hệ giữa các doanh nghiệp. Đặc tả UDDI và bản ghi doanh nghiệp UDDI, cái mà cung cấp một tập các cài đặt tham chiếu tương tác để chia sẻ các đăng ký, cho phép một mô hình lập trình mà hỗ trợ hoặc dịch vụ khám phá khi thực thi và khi thiết kế, phụ thuộc vào nhu cầu của khách. Lời tuyên bố giá trị tích hợp của IBM Web Services Initiative kết hợp với các công nghệ quan trọng khác, như là WSDL, cho phép các tổ chức thực hiện việc khám phá động và đính kèm các dịch vụ web ngay tại thời điểm hoạt động. Tìm hiểu UDDI Trang 5 của 11 developerWorks® ibm.com/developerWorks/vn/ Sự tiến triển liên tục của đặc tả UDDI làm tăng giá trị của các bản ghi UDDI bằng cách đánh địa chỉ khu vực quan trọng, như là tính nguyên vẹn dữ liệu, điều khiển truy cập, định danh, và xác thực, cũng như là tính cùng hoạt động, mô hình dữ liệu cải tiến, truy vấn, và địa phương hóa. • Các mẫu tìm kiếm mẫu thừa kế công dụng của toán từ tìm kiếm, cái mà cho phép bạn duyệt các mục dữ liệu sử dụng các điều kiện khác nhau, như là hạng mục phân loại, các định danh, hoặc thông tin tên từng phần sử dụng hàm API_xxx find_xxx. • Các mẫu tìm kiếm sâu liên quan đến việc thu nhập thông tin chi tiết về một mục dữ liệu mà bạn đã tìm thấy. Hàm API get_xxx hỗ trợ khả năng này. • Các mẫu tìm kiếm viện dẫn thông tin là mẫu tìm kiếm cuối cùng. Việc gọi các dịch vụ ra yêu cầu sử dụng thông tin mẫu kèm theo, thông thường được lưu trữ tạm thời bởi các máy trạm để sử dụng lặp đi lặp lại mà không cần gửi lại bản ghi cho cùng một thông tin mà máy trạm cần. Nếu thông tin đính kèm thay đổi, máy trạm cần phải gửi lại bản ghi để cập nhật lại thông tin. Đây chính là mẫu tìm kiếm viện dẫn thông tin. Lưu và xóa (với hàm API save_xxx và delete_xxx) có thể được thực hiện trên mỗi đầu mục ở cấp cao nhất, tên các hàm tự giải thích chức năng của nó, nhưng lưu ý rằng cách thức lưu trữ của toán tử save trong UDDI thông thường mang tính phá hủy. Ví dụ, việc tái lưu trữ (resave) cùng một dịch vụ với thông tin khác sẽ là sự thay thế hoàn toàn thông tin cũ bằng thông tin mới (hay còn gọi là ghi đè). Toán tử gắn với authTokens yêu cầu bạn phải đăng ký trước với một nốt UDDI Business Registry cụ thể và cung cấp thông tin xác thực cần thiết để thành lập một sự thống nhất của nhà phát hành thông tin. Những thông tin xác thực này được sử dụng để lấy một authToken để thực hiện một toán tử xuất thông tin (với hàm APIsave_xxx). authToken có thể được tái sử dụng với thời gian ngắn trong khi các toán tử xuất thông tin chưa bị hết hạn. Chính sách toán tử quyết định cả nội dung và thời gian tồn tại của một authToken. Có gì mới trong phiên bản 2 của UDDI? Phiên bản 2 của UDDI giới thiệu một số tính năng quan trọng tăng cường chất lượng và hiệu quả của việc sử dụng bản ghi UDDI từ các đặc tả trong phiên bản 1. Các phần tiếp theo sẽ mô tả các tính năng mới trong phiên bản 2: • • • • • Hỗ trợ mô hình hóa các tổ chức phức tạp Hỗ trợ phân mục và định danh mạnh hơn cho các khánh hàng Cải tiến truy vấn Tính năng quốc tế hóa Nhân bản dựa trên đối tượng đồng đẳng (Peer-based) Hỗ trợ mô hình hóa Các cập nhật gắn với hỗ trợ nhằm mục đích chính là giúp các tổ chức lớn mô hình hóa một cách hiệu quả các dịch vụ và công việc kinh doanh của họ. Rất nhiều công ty, từ lớn đến nhỏ, có thể mong muốn phân chia các lựa chọn web mà họ đưa ra theo vị trí địa lý mà họ phục vụ, trình diễn chính các doanh nghiệp đó trên nền web một cách độc lập nhưng có liên quan đến nhau. Trong phiên bản 1 của UDDI, lựa chọn duy nhất cho tính huống này là duy trì các doanh nghiệp độc lập và không liên quan. Phiên bản 2 cho phép bạn định nghĩa các mối quan hệ giữa các doanh nghiệp, Tìm hiểu UDDI Trang 6 của 11 ibm.com/developerWorks/vn/ developerWorks® như là cha-con (parent-child), đồng đẳng (peer-peer), và đồng nhất (identity). Điều này cho tính mềm dẻo để mô hình hóa một doanh nghiệp với nhiều chi nhánh, các bạn hàng bên ngoài, hoặc các phân hệ nội bộ khác nhau. Các mối quan hệ có thể được hình thành giữa hai doanh nghiệp bất kỳ (được định nghĩa bởi các khóa duy nhất). Mô hình kỹ thuật chính tắc tModel cho kiểu quan hệ doanh nghiệp (Business Relationship types) hỗ trợ khả năng này, cùng với các hàm API mới cho phép bạn định nghĩa, xóa bỏ, và yêu cầu trạng thái của một mối quan hệ, như chỉ ra trong Ví dụ 2. Một hàm truy vấn API gọi là find_relatedBusinesses cho phép tìm kiếm nặc danh các mối quan hệ liên quan đến một công ty cho trước. Các hàm API mới khác trong Ví dụ 2 đều gắn liền với các quan hệ mà một nhà xuất bản cụ thể tạo ra và sở hữu và không thể truy cập thông qua các hàm truy vấn nặc danh. Một quan hệ doanh nghiệp bao gồm một cặp xác nhận quan hệ giống nhau, mỗi xác nhận đó nối với hai doanh nghiệp với nhau và xác định mối quan hệ cụ thể đang được thành lập. Những người sở hữu của hai doanh nghiệp liên quan phải khai báo cùng một xác nhận quan hệ để tạo ra một quan hệ doanh nghiệp có thể thấy được từ bên ngoài. Chỉ những xác nhận quan hệ khớp với nhau được trả lại như là kết quả của một truy vấn find_relatedBusinesses(). Ví dụ sau đây chỉ ra cách một quan hệ được thành lập và được tìm thấy. Đầu tiên, bạn lấy một thẻ xác thực để xuất bản thông tin: Ví dụ 2. Lấy một thẻ xác thực authToken <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <get_authToken generic="2.0" xmlns="urn:uddi-org:api_v2" userID="businessA_UserId" cred="businessA_Password" /> </Body> </Envelope> Kết quả trả lại như sau: Ví dụ 3. Kết quả trả lại <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <authToken generic="2.0" operator="www.ibm.com/services/uddi" xmlns="urn:uddi-org:api_v2" > <authInfo>businessA_AuthToken</authInfo> </authToken> </Body> </Envelope> Tiếp theo, bạn thành lập một xác nhận doanh nghiệp liên quan đến hai doanh nghiệp, A và B, với các khóa businessKeys tương ứng được đơn giản hóa thành businessKeyA và businessKeyB thay vì định dạng UUID chuẩn. Vỏ bọc SOAP không được hiển thị, cho đơn giản. Tìm hiểu UDDI Trang 7 của 11 developerWorks® ibm.com/developerWorks/vn/ <add_publisherAssertions generic="2.0" xmlns="urn:uddi-org:api_v2"> <authInfo>businessA_AuthToken</authInfo> <publisherAssertion> <fromKey>"businessKeyA"</fromKey> <toKey>"businessKeyB"</toKey> <keyedReference keyValue="parent-child" keyName="Subsidiary" tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/> </publisherAssertion> </add_publisherAssertions> Khi một xác nhận đồng nhất được thành lập bởi chủ nhận của danh nghiệp B, một quan hệ doanh nghiệp công cộng sẽ được công khai trong bản đăng ký. Tiếp theo, bạn thực hiện một truy vấn đơn giản sử dụng hàm API find_relatedBusinesses() : <find_relatedBusinesses generic="2.0" xmlns="urn:uddi-org:api_v2"> <businessKey>"businessKeyA"</businessKey> </find_relatedBusinesses> Ví dụ 3 là kết quả XML trả về. Một truy vấn tỉ mỉ hơn có thể bao gồm một keyedReference xác định quan hệ cụ thể sẽ được tìm thấy. Một đặc tính quan trọng được thêm vào trong phiên bản 2 để hỗ trợ nhu cầu mô hình hóa của các doanh nghiệp lớn được gọi là tham chiếu dịch vụ (Service Projection), nó cho phép một doanh nghiệp tạo một tham chiếu tới một dịch vụ của một doanh nghiệp khác. Điều này rất hữu ích trong một vài tình huống, như là một công ty đưa ra cùng một dịch vụ tới hai hay nhiều hơn doanh nghiệp đối tác của nó, hoặc một dịch vụ chung (ví dụ, giao hàng trong đêm) có thể muốn khuyến khích bằng cách kết nối nó với các dịch vụ mà đối tác của họ đưa ra. Một tham chiếu dịch vụ được tham chiếu chỉ là như vậy. Người tạo ra một tham chiếu dịch vụ không thể thay đổi bản thân dịch vụ đang được tham chiếu, nhưng theo khía cạnh khác, dịch vụ ứng xử như là nó được sở hữu bởi doanh nghiệp tạo ra tham chiếu đó. Dịch vụ được trả lại như là một phần của một lời gọi hàm API get_businessDetail() hoặc get_serviceDetail(). Bạn phân chia một dịch vụ được tham chiếu từ một dịch vụ thực thông qua khóa doanh nghiệp bạn sở hữu liên kết với một dịch vụ. Khóa đó luôn khớp với doanh nghiệp thực mà sở hữu dịch vụ đó, chứ không phải là doanh nghiệp tạo ra sự tham chiếu dịch vụ đó. Phân hạng mục mạnh hơn Trong phiên bản 1, ba cách phân loại dựng sẵn đã được cung cấp để sử dụng trong việc phân loại các doanh nghiệp và dịch vụ. Đó là các hạng mục công nghiệp NAICS, hạng mục dịch vụ và dự án UNSPC, và phân loại địa lý ISO-3166-2. Việc sử dụng những cách phân loại này được kiểm tra bởi bản ghi UDDI; việc cố gắng lưu trữ mã không hợp lệ sẽ bị từ chối. Điều quan trọng của việc phân loại có nghĩa trong UDDI không hề bị cường điệu. Đó là phương tiện mạnh mẽ để tìm kiếm thông tin hữu dụng cần thiết, và do đó cải tiến khả năng để tạo và điều khiển cách phân hạng mới được ưu tiên. Phiên bản 2 thêm khả năng cho các tổ chức để định nghĩa một cách phân hạng mục được kiểm tra nội tại, cái mà có thể được đưa ra sử dụng công cộng trong UDDI. Những nhà cung cấp hạng mục Tìm hiểu UDDI Trang 8 của 11 ibm.com/developerWorks/vn/ developerWorks® công cộng này phải hỗ trợ một validate_values của dịch vụ web và làm cho nó có thể truy cập được đến bản ghi doanh nghiệp UDDI để hỗ trợ việc kiểm tra và xác nhận của các giá trị phân hạng mà các khách hàng mong muốn để liên kết với các bản ghi của họ. Đây là một quá trình được kiểm soát. Đăng ký của một cách phân hạng hiệu lực có thể được hoàn thành chỉ với sự chấp thuận của người điều hành bản ghi doanh nghiệp UDDI. Đặc tính xác thực mới này cho phép các nhà cung cấp cách phân hạng tính mềm dẻo trong việc đảm bảo chỉ những giá trị phân hạng phù hợp được lưu trữ bởi khách hàng sử dụng cách phân hạng của họ. Khi một khách hàng yêu cầu sử dụng một hạng mục của một nhà cung cấp, nhà cung cấp có thể chọn để thực hiện một xác thực theo ngữ cảnh cùng với sự xác thực mà người yêu cầu được xác thực để sử dụng cách phân loại hạng mục đó. Tình huống không theo ngữ cảnh thông dụng cũng hỗ trợ lưu trữ tạm thời dữ liệu phân hạng mục bên trong bản ghi doanh nghiệp UDDI để giảm sự phụ thuộc vào dịch vụ phân hạng mục của các nhà cung cấp. Các truy vấn cải tiến Phiên bản 2 xây dựng trên các khả năng truy vấn đã được cung cấp từ trước và thêm các tính năng mạnh mẽ giải quyết các yêu cầu truy vấn phức tạp hơn. Để cải tiến hàm truy vấn find_xxx đã có, một vài điều kiện lọc đã được thêm vào, bao gồm orLikeKeys, orAllKeys, combineCategoryBags, serviceSubset, và andAllKeys. Trong đó, combineCategoryBags, serviceSubset, và orLikeKeys là đáng quan tâm. Bộ định tính combineCategoryBags cho phép bạn gộp tất cả các dữ liệu phân loại được liên kết với một doanh nghiệp và tất cả các dịch vụ mà nó chứa (bao gồm cả các tham chiếu dịch vụ) vào một tập hợp đơn mà việc tìm kiếm sẽ thực hiện trên đó. Điều này là rất hữu ích bởi vì nó giảm bác bước trong việc tìm thấy một doanh nghiệp cần tìm bằng cách rà soát trong các doanh nghiệp và các dịch vụ của chúng cùng lúc. Một cách tương tự, bộ lọc serviceSubset cho phép bạn tìm kiếm các doanh nghiệp sử dụng điều kiện phân hạng mục, những điều kiện này chỉ được kiểm trên các hạng mục được gắn kết với các dịch vụ của một công ty. Các hạng mục gắn kết với bản thân doanh nghiệp không được gộp trong việc tìm kiếm. Cuối cùng, bộ định tính orLikeKeys là đặc biệt hữu ích bởi vì nó cho phép truy vấn phức tạp ảo. Ví dụ, bạn có thể tìm thấy các doanh nghiệp nằm ở Mỹ, Mexico, hoặc Canand mà chúng cung cấp dịch vụ kho đông lạnh hoặc dịch vụ chuyển giao hàng hóa chung. Điều này cho phép bạn thực hiện tìm kiếm các doanh nghiệp mà được phân loại với các cấp độ khác nhau theo đặc trưng của chúng, trong khi cùng lúc cho phép một truy vấn đơn tham chiếu đến nhiều hạng mục khác nhau cùng lúc. Quốc tế hóa Một vài đặc tính đã được thêm vào trong nỗ lực để giải quyết cải tiến sự quốc tế hóa trong UDDI. Hỗ trợ cho nhiều tên cùng lúc với một mã xml:lang đã được thêm vào các đối tượng businessEntity và businessService. Bạn phải cung cấp ít nhất một tên, nhưng bạn có thể cung cấp nhiều tên (mỗi tên với một mã ngôn ngữ khác nhau). Tìm hiểu UDDI Trang 9 của 11 developerWorks® ibm.com/developerWorks/vn/ Một đặc tính quốc tế hóa khác trong phiên bản 2 là sự bổ trợ một kiểu phân hạng mới gọi là postalAddress, nó cho phép bạn tạo ra một mô hình tModel mô tả các địa chỉ thư tín địa phương mà chúng có thể được gắn kết với các địa chỉ tìm được trong các đối tượng doanh nghiệp. Nhân bản Trong khi không thấy trực tiếp từ khách hàng của UDDI, các cải tiến quan trọng được thực hiện trong việc nhân bản giữa các toán tử bản ghi trong phiên bản 2. Phiên bản 1 chỉ hỗ trợ một lược đồ nhân bản dựa trên tệp (file-based replication scheme) mà sự phức tạp tăng theo cấp n mũ 2 với số nốt bản ghi trong một bản ghi UDDI. Phiên bản 2 giải quyết nhu cầu của một số lớn hơn các nốt tham gia mà nhân bản với những nốt khác. Sự nhân bản có thể tiến hành trong một cách tiếp cận đồng đẳng mà ở đó các bản ghi cập nhật từ tất cả các nốt khác có thể được thu nhận từ bất cứ nốt nào. Sự nhân bản được hỗ trợ tốt hơn bởi định nghĩa của một tập các hàm API cho phép xử lý các thay đổi và quản lý các tiến trình. Tiếp theo là gì? Phiên bản tiếp theo của đặc tả UDDI được dự kiến cho giữa năm 2002 sẽ tập trung vào bảo mật, quản lý dữ liệu nâng cao, và quốc tế hóa hơn nữa. Bảo mật sẽ được giải quyết bởi cải tiến tính hợp nhất dữ liệu UDDI thông qua cải tiến kiểm soát truy cập, định danh và xác thực. Điều này sẽ bao gồm hỗ trợ cho các công nghệ bảo mật đã có và đang nổi lên từ các tổ chức như W3C và OASIS. Tính năng quản lý dữ liệu nâng cao sẽ cung cấp sự cải tiến liên tục tới khả năng tìm kiếm để cung cấp các câu truy vấn tốt hơn, sự thông dịch kết quả trả về tốt hơn, khả năng để nắm bắt các mô tả phong phú và có nghĩa hơn của các dịch vụ và doanh nghiệp, và quản lý dễ hơn các dữ liệu đã có. Sự cải tiến về quốc tế hóa sẽ bao gồm hỗ trợ cải tiến các công ty đa quốc gia để mô tả các hoạt động toàn cầu của họ trên toàn bộ các đơn vị kinh doanh và sẽ giải quyết sự địa phương hóa của dịch vụ và dữ liệu UDDI. Kết luận UDDI tiếp tục phát triển nhanh chóng. Bản cài đặt thử nghiệm của UDDI phiên bản 2 được cung bấp bởi nhiều nhà điều hành bản ghi doanh nghiệp UDDI trong năm 2001. Khi phiên bản 3 của bản đặc tả trở lên sẵn sàng vào giữa năm 2002, bản ghi sẽ tiếp tục thêm các tính năng cần thiết cho việc thực hiện kinh doanh trên nền web, giải quyết vấn đề an ninh, cải tiến quốc tế hóa, và các tính năng đi kèm để hỗ trợ công dụng của bản ghi và sự tương kết. Tìm hiểu UDDI Trang 10 của 11 ibm.com/developerWorks/vn/ developerWorks® Đôi nét về tác giả Tom Bellwood Tom Bellwood là nhân viên kỹ thuật cao cấp của IBM và có nhiều năm kinh nghiệm trong lĩnh vực kỹ thuật, từ thiết kế thiết bị bán dẫn đến hệ thống tự động và phát triển ứng dụng. Ông là chuyên gia UDDI đóng góp rất nhiều vào việc phát triển các dịch vụ Web trên thế giới. Ông là chỉ đạo kỹ thuật cho IBM UDDI Business Registry và có mặt trong nhiều hội nghị kỹ thuật. © Copyright IBM Corporation 2009 (www.ibm.com/legal/copytrade.shtml) Nhẫn hiệu đăng ký (www.ibm.com/developerworks/vn/ibm/trademarks/) Tìm hiểu UDDI Trang 11 của 11