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