Uddi(universal description,Discovery and Integration) 是下一代基於WWW的企業實現。它允許在Web站點上放置可編程的元素,使得能進行基於Web的分布式計算和處理。UDDI商業注冊中心的創建目的就是為促進企業的Web服務的發展及為企業發現適當的服務。這些服務又稱為Web services,它是指由企業發布的完成其特別商務需求的在線應用服務,其它公司或應用軟件能夠通過Internet來訪問並使用這項在線服務。
如一個公司有一套計算匯率的服務,那麼它可以在任一UDDI注冊中心注冊,然後指出這項服務的具體內容,服務的收費,服務的限制等。其它的公司就可以在UDDI注冊中心查到,並與之聯系.而Internet是如此的廣闊,客戶也會如潮水一般。當然,安全,可靠性也是要值的考慮的。
目前UDDI注冊中心有IBM、Microsoft等UDDI商業注冊,它使用一個XML文檔來描述企業及其提供的Web服務。從概念上來說,UDDI商業注冊所提供的信息包含三個部分:“白頁(White Page)” 包括了地址,聯系方法,和已知的企業標識;“黃頁(Yellow page)”包括了基於標准分類法的行業類別;“綠頁(Green Page)”則包括了關於該企業所提供的Web服務的技術信息,其形式可能是一些指向文件或是URL的指針,而這些文件或URL是為服務發現機制服務的。所有的UDDI商業注冊信息存儲在UDDI商業注冊中心中。
UDDI的設計目的是作為對現有的在線交易市場和搜索引擎的補充,為電子商務和服務發現機制提供標准的格式。UDDI 規范中沒有直接涉及到具體的商業發現流程,例如找出一個以某一個給定的價格或在某一特定區域內的提供某種特定的產品或服務的企業。高級的發現特性需要買方和賣方更進一步的合作與設計。UDDI只是為定義這些上層應用提供了基礎。
UDDI注冊中心是利用了一套標准的API來實現客戶的注冊,查找等。以IBM為例,它提供了一個package(UDDI4j.jar)來用java實現這一點。任何公司如果也想自己成立一個注冊中心(以java為基礎)。就可以利用IBM的工具。
如search一個Web service,可以進行如下操作:
UDDIProxy proxy = new UDDIProxy();
proxy.setInquiryURL("http://localhost/services/uddi/inquiryapi");//設置的注冊中心,也可為任何的UDDI注冊中心。
BusinessList bl = proxy.find_business("b", null, 0); //查找service name=”b”
Vector businessInfoVector = bl.getBusinessInfos().getBusinessInfoVector();//如查到,則取得service 信息。
for (int i = 0; i > businessInfoVector.size(); i++) {
BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i);
// Print name for each business
System.out.println(businessInfo.getNameString());
}
如要注冊一個Web Service,則可如下:
UDDIProxy proxy = new UDDIProxy();
proxy.setInquiryURL("http://www-3.ibm.com/services/uddi/inquiryapi");
proxy.setPublishURL("https://www-3.ibm.com/services/uddi/protect/publishapi");
AuthToken token = proxy.get_authToken("UserId",
"password" ); // 輸入注冊密碼。
Vector entities = new Vector();
BusinessEntity be = new BusinessEntity("", "new Service");// 產生一個新的web service,name 是“new Service”
entities.addElement(be);
BusinessDetail bd = proxy.save_business(token.getAuthInfoString(),entities); // 保存web service。
如果注冊成功,則也可以查找到。
總之,UDDI將會是下一代B2B基礎,互聯網將又會達到一高峰。