麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

解讀UDDI和JAXR

2019-11-18 13:26:33
字體:
供稿:網(wǎng)友

  在過去的數(shù)年中,許多開發(fā)人員都使用了各種版本的J2EE,使服務(wù)器端軟件編程的情形得到了很大的改觀,現(xiàn)在,他們將再次挑戰(zhàn)SOAP,在服務(wù)器端軟件編程方面取得更大的進(jìn)展。
  SOAP服務(wù)的支持者認(rèn)為:
  ·企業(yè)級應(yīng)用服務(wù)器是服務(wù)(或事務(wù))的集合。
  ·可以使用的服務(wù)應(yīng)當(dāng)很方便地列出來供用戶瀏覽、搜索和訪問。
  ·象現(xiàn)在的基于組件的開發(fā)模式那樣,將應(yīng)用服務(wù)器設(shè)計為服務(wù)的集合將鼓勵開發(fā)人員采用更好的設(shè)計模式。
  ·這些事務(wù)能夠被重新定位、負(fù)載平衡、替代等。
  而對SOAP持懷疑態(tài)度的人認(rèn)為,SOAP是推廣CORBA和COM的又一次嘗試。他們指出,要簡單地訪問一個對象,需要完成太多的預(yù)備性工作,而且,UDDI帶來的好處也被夸大了。
  那么,到底哪一種觀點更合理呢?對于一些思想開放的人士而言,在決定是否采用SOAP服務(wù)前,他們一定希望了解其中的一些核心技術(shù)。
  解密UDDI
  我們首先來看看UDDI代表什么?UDDI是Universal Description, Discovery and Integration(統(tǒng)一描述、發(fā)現(xiàn)和集成)的縮寫。UDDI的意圖是作為一個注冊簿,就象黃頁是一個地區(qū)企業(yè)的注冊簿一樣。象在黃頁中那樣,在UDDI注冊簿中,企業(yè)將在不同的目錄下注冊它們自己或其服務(wù)。通過瀏覽一個UDDI注冊簿,開發(fā)人員能夠查找一種服務(wù)或一個公司,并發(fā)現(xiàn)如何調(diào)用該服務(wù)。
  除了黃頁外,UDDI還使用了白頁和綠頁。白頁是企業(yè)實體列表,綠頁是調(diào)用一項服務(wù)所必需的文檔。
  UDDI的定義非常全面,足以適應(yīng)不同種類的服務(wù)。一個UDDI服務(wù)定義可能代表一個傳真服務(wù)或電話服務(wù)。作為一種注冊簿,UDDI一般使用數(shù)據(jù)庫一類的軟件來實現(xiàn),在該數(shù)據(jù)庫中,存在一個答應(yīng)發(fā)布或查詢服務(wù)的有關(guān)信息。
  UDDI數(shù)據(jù)模型
  UDDI數(shù)據(jù)模型包括下面的主要元素:
  ·businessEntity:表示一個實際的企業(yè)。
  ·businessService:表示一個企業(yè)提供的服務(wù)。
  ·bindingTemplate:如何調(diào)用服務(wù)的說明。
  ·tModel>: Good lUCk understanding this! (Just kidding, I will eXPlain this later.)
  為了加深對UDDI數(shù)據(jù)模型的理解,我們來看看這些數(shù)據(jù)元素的UML表示法。圖1是這四種主要元素之間的關(guān)系圖:
  
   解讀UDDI和JAXR(圖一)
  
  從上面的圖中我們可以知道,一個businessEntity(一家公司)有一個能夠告訴我們更多有關(guān)公司信息的描述性URL和聯(lián)系人清單,此外,businessEntity還有一個商業(yè)服務(wù)清單。每種服務(wù)可能有多種調(diào)用方法,每種調(diào)用都由一個綁定模板描述。綁定模板具體地描述了如何訪問一個服務(wù),它受益于一系列描述用戶如何訪問這一服務(wù)的文檔。綁定模板和其必要的文檔之間的聯(lián)系是通過所謂的tModel完成的。在上面的圖中,這種聯(lián)系被簡單地描述為一個綁定模板有許多tModels。在進(jìn)一步地解釋tModels與綁定模板的關(guān)系前,我們必須先弄清楚tModels是什么。
  TModel是什么?
  我們可以把tModel想象成數(shù)據(jù)庫庫中的一個獨立的表,其中包含下面的字段:名字、描述、URL、唯一的關(guān)健字。實際上,tModel就是包括有名字和描述,那么使用數(shù)據(jù)庫表表示它是否是一種浪費呢?我們下面就會討論這一問題:
  下面是一個假想的tModel數(shù)據(jù)庫表中的二個實體:
  鍵 名字 描述 URL
  1 java-class 表示一個具備完全資格的java類的名字 http://www.javasoft.com/
  2 Jndi-home 表示一個JNDI名字 http://www.javasoft.com/
  
  在將tModel比作數(shù)據(jù)庫表方面,有幾點值得注重。首先,tModel是一個獨立的表,意味著它可以不依靠其他軟件而存在;其次,tModel是查找表,提供了鍵與鍵的表示之間的轉(zhuǎn)換關(guān)系。從這一點來看,tModel象詞典那樣,是一個引用表。在一些數(shù)據(jù)庫中,這樣的表也被稱作是碼集。
  因此,假如在上面的tModel中存在下面的記錄:
  com.mycompany.HelloWorld, 1
  com.mycompany.HelloWorldHome, 2
  就意味著字符串com.mycompany.HelloWorld是一個有完整資格的Java類;而字符串com.mycompany.HelloWorldHome是一個JNDI名。
  
  因此在一定程度上,tModels中唯一的鍵與“名字空間”這個概念差不多。為了進(jìn)一步地說明這個問題,我們來看一下下面的數(shù)字:
  904-555-1212
  904-555-1213
  1-56592-391-x
  你能夠分清這些數(shù)字的意義嗎?我們需要在一個環(huán)境或名字空間中來確認(rèn),904-555-1212是電話號碼,904-555-1213是傳真號,1-56592-391-x是一個ISBN號。
  因此在tModel數(shù)據(jù)庫表中,我們將需要定義三個實體:一個是電話號碼;一個是傳真號碼,一個是ISBN號碼。
  下面我們以mycompany公司公布了一條號碼為1-800-my-helpline的電話支持熱線,并在UDDI中注冊。那么,我們的數(shù)據(jù)模型為:
  company name: mycompany
  Service name: helpline
  tModel: key=11 (rePResenting telephoneline), name=telephone,
  description=telephone stuff, url:
  some at&t url
  binding:
  accesspoint: 1-800-my-helpline
  tModelInstanceInfo: 11
  
  有了對tModel的基本理解后,我們就可以利用UML圖表來研究綁定模板與tModels之間的關(guān)系了。我在上面曾經(jīng)說過,這將使我們對綁定模板如何完成UDDI的“如何調(diào)用一項服務(wù)”的要求有一個直觀的理解。
   解讀UDDI和JAXR(圖二)
  
  在圖2中,我們討論了一個綁定模板與tModels之間的關(guān)系。從圖表中我們可以看出,一個綁定模板可以指向一個由一個tModel確定的技術(shù)規(guī)格,技術(shù)規(guī)格有二部分組成:
  ·規(guī)格的類型。(例如電子郵件、傳真、WSDL、SOAP等。)
  ·確定輸入和輸出的文檔(在SOAP服務(wù)中,這些文檔可以是xml輸入/輸出消息格式。)
  既然我們已經(jīng)對tModels有了一定程度的具體了解,就該再討論UDDI中更復(fù)雜的東西了,也就是身份包和類別包。
  理解標(biāo)識符包和類別包
  假如說從概念上理解tModels是理解UDDI需要跨越的第一道障礙,那么理解標(biāo)識符包和類別包則是需要跨越的第二道障礙。下面的例子可以幫助我們理解這二個概念。
  例如,您的公司在美國開展業(yè)務(wù)需要有一個稅號,假如還在另外的國家(例如墨西哥)開展業(yè)務(wù),就需要有一個墨西哥的稅號。為了能夠在UDDI注冊簿中獲取您的公司的這些信息,在UDDI中應(yīng)當(dāng)包括下面的內(nèi)容:
  公司名字:mycompany
  標(biāo)識符:
  美國稅號:111111
  墨西哥稅號:2223344
  其他國家稅號: 333333
  
  ...其他的xml內(nèi)容
  
    keyName="taxnumber" keyValue="1111111">
    keyName="taxnumber" keyValue="2223344">
    keyName="taxnumber" keyValue="333333">
  
  ... 其他的xml內(nèi)容
  現(xiàn)在明白tModels如何被用作名字空間了吧。為了進(jìn)一步地深化對標(biāo)識符包的理解,我們在下面的圖中再次解釋了標(biāo)識符和類別包的概念:
   解讀UDDI和JAXR(圖三)
  從上面的圖中我們能夠看出,標(biāo)識符包是一個在特定環(huán)境中的鍵/值對集合,這個環(huán)境從本質(zhì)上說就是能夠唯一地解析名字/值對兒的名字空間,它是由tModel確定的。類別包也是如此,二者之間唯一的區(qū)別就是類別包中由tModel確定的名字空間是一個預(yù)先確定好的類別。
  類別包
  我想將公司歸類于飯店,其地理位置位于杰克遜維爾。
  公司名字:mycompany
  適用類:
  企業(yè)類型:飯店
  所在城市:杰克遜維爾
  
    keyName="restaurant" keyValue="..">
    keyName="JAX" keyValue="..">
  

  現(xiàn)在,我們已經(jīng)搞清楚了tModels是如何用在標(biāo)識符和類別包中的。從本質(zhì)上說,tModels就是名字空間。
  
  tModels也能被分類嗎?
  我們已經(jīng)明白了企業(yè)實體是如何利用使用了類別包的。另外,UDDI也答應(yīng)tModels本身被分類。
  我們用分層次的文件系統(tǒng)進(jìn)行說明。目錄是用來對文件進(jìn)行分類的,但目錄還可以在父目錄下再被分類。象硬盤上的目錄那樣,tModels也可以被分層次地進(jìn)行組織。
  下面我們來討論名字為getUniversalTime()的服務(wù),該服務(wù)將返回當(dāng)前全球任一地方的時間。二家存在競爭關(guān)系的公司可能會提供這一服務(wù)的不同實現(xiàn)。商業(yè)服務(wù)只限于在公司內(nèi)部使用,公司之外的用戶是不可使用的:
  company1:getTime()
  company1:getCurrentTime()
  這二者的作用相同,為了表明它們實現(xiàn)的是同一個被稱作getUniversalTime()的服務(wù),我們可以定義如下所示的tModel:
  tModel
  name:: Get Universal Time
  category: uddi-org:types, wsdl
  [意味著這是一個由WSDL文檔定義的服務(wù)]
  上面的定義表明getUniversalTime()是一個WSDL服務(wù),可以由任何公司實現(xiàn)。
  既然已經(jīng)闡明了tModels和包之間的關(guān)系,我們下面可以看看一個tModel的UML表示:
   解讀UDDI和JAXR(圖四)
  從上面的圖表中,我們可以看出tModel基本上就是一個名字和描述,另外,它也可以包含一個URL,以提供更進(jìn)一步的具體資料。它可以由一個標(biāo)識符包確定和由一個類別包進(jìn)行分類。
  我們已經(jīng)知道,一個t

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一区毛片 | 欧美女同hd | 福利一区二区三区视频在线观看 | 曰本三级日本三级日本三级 | 国产精品久久久久久婷婷天堂 | 久久成人在线观看 | 亚洲天堂字幕 | 91午夜在线观看 | 成年人黄视频 | 免费黄色小视频网站 | 国产91在线播放九色 | www.99久| 九九热免费精品视频 | av免费在线观看av | 精品乱码久久久久 | 草人人| 国产瑟瑟视频 | 国产精品久久久久久久久久东京 | 国产亚洲精品综合一区91 | 久久精品久久精品国产大片 | 素人视频在线观看免费 | 欧美成人国产va精品日本一级 | 久久久久久久久久久久久久av | 最新午夜综合福利视频 | 国产噜噜噜噜久久久久久久久 | 日本网站一区 | 最新av在线免费观看 | 国产乱淫av | 成人av一区二区免费播放 | 成人偷拍片视频在线观看 | 亚洲欧洲日产v特级毛片 | 国产精品久久久免费 | 九九热在线免费观看视频 | 欧美国产第一页 | 亚洲第一成网站 | 视频一区 在线 | 二区国产| 国产精选电影免费在线观看网站 | 主播粉嫩国产在线精品 | 欧美精品一区二区久久久 | 欧美乱淫 |