|
關(guān)于UDDI的實現(xiàn)
Uddi(universal description,Discovery and Integration) 是下一代基于WWW的企業(yè)實現(xiàn)。它允許在Web站點上放置可編程的元素,使得能進行基于Web的分布式計算和處理。UDDI商業(yè)注冊中心的創(chuàng)建目的就是為促進企業(yè)的Web服務的發(fā)展及為企業(yè)發(fā)現(xiàn)適當?shù)姆?。這些服務又稱為Web services,它是指由企業(yè)發(fā)布的完成其特別商務需求的在線應用服務,其它公司或應用軟件能夠通過Internet來訪問并使用這項在線服務。 如一個公司有一套計算匯率的服務,那么它可以在任一UDDI注冊中心注冊,然后指出這項服務的具體內(nèi)容,服務的收費,服務的限制等。其它的公司就可以在UDDI注冊中心查到,并與之聯(lián)系.而Internet是如此的廣闊,客戶也會如潮水一般。當然,安全,可靠性也是要值的考慮的。 目前UDDI注冊中心有IBM、Microsoft等UDDI商業(yè)注冊,它使用一個XML文檔來描述企業(yè)及其提供的Web服務。從概念上來說,UDDI商業(yè)注冊所提供的信息包含三個部分:“白頁(White Page)” 包括了地址,聯(lián)系方法,和已知的企業(yè)標識;“黃頁(Yellow page)”包括了基于標準分類法的行業(yè)類別;“綠頁(Green Page)”則包括了關(guān)于該企業(yè)所提供的Web服務的技術(shù)信息,其形式可能是一些指向文件或是URL的指針,而這些文件或URL是為服務發(fā)現(xiàn)機制服務的。所有的UDDI商業(yè)注冊信息存儲在UDDI商業(yè)注冊中心中。 UDDI的設計目的是作為對現(xiàn)有的在線交易市場和搜索引擎的補充,為電子商務和服務發(fā)現(xiàn)機制提供標準的格式。UDDI 規(guī)范中沒有直接涉及到具體的商業(yè)發(fā)現(xiàn)流程,例如找出一個以某一個給定的價格或在某一特定區(qū)域內(nèi)的提供某種特定的產(chǎn)品或服務的企業(yè)。高級的發(fā)現(xiàn)特性需要買方和賣方更進一步的合作與設計。UDDI只是為定義這些上層應用提供了基礎(chǔ)。 UDDI注冊中心是利用了一套標準的API來實現(xiàn)客戶的注冊,查找等。以IBM為例,它提供了一個package(UDDI4j.jar)來用java實現(xiàn)這一點。任何公司如果也想自己成立一個注冊中心(以java為基礎(chǔ))。就可以利用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");// 產(chǎn)生一個新的web service,name 是“new Service” entities.addElement(be); BusinessDetail bd = proxy.save_business(token.getAuthInfoString(),entities); // 保存web service。 如果注冊成功,則也可以查找到。 總之,UDDI將會是下一代B2B基礎(chǔ),互聯(lián)網(wǎng)將又會達到一高峰。
|
|