You are on page 1of 49

Introduction to tModel

Presenter: Chi-Hua Chen


報告大綱

• tModel目的及說明
tM d l目的及說明
• tModel結構
• tModel & UDDI
• Q S tModel
QoS
• QoS tModel實作
• 參考文獻
tModel目的及說明
• tModel設計的目的是希望讓使用者可以使
用更有意義的搜尋方式
– 不單侷限於商業名稱、分類或是服務的名稱
不單侷限於商業名稱 分類或是服務的名稱
– 藉由較清楚的技術規格描述讓使用者在使用
網路服務時 對人機之間的互動更加瞭解
網路服務時,對人機之間的互動更加瞭解
– tModel必須具備技術性規格的功能敘述,不
論是網路服務技術的說明 或是網路服務使
論是網路服務技術的說明,或是網路服務使
用上參數的說明
– 主要定義技術指紋(technical
主要定義技術指紋( h i l fifingerprint)和定
i )和定
義用於identifierBag與categoryBag結構的命
名空間
tModel目的及說明 (cont )
(cont.)

• tModel實體(instance)以keyedReference
呈現
• 透過鍵值(tModelKey)的參照,tModel成為
透過鍵值 的參照 成為
一個用於描述技術規格的參考系統
• 當欲發佈一筆網路服務時,可視該網路服
務的技術特性 向具關聯性的tModel註冊
務的技術特性,向具關聯性的tModel註冊
(register,意指去參考具有關聯性的
tModel) 當網路服務發佈成功後 便可使
tModel),當網路服務發佈成功後,便可使
用一些更具意義的搜尋條件
tModel結構
欄位名 描述 資料類型 長度

tModelKeyy • 必要屬性。 stringg 255


• 這是給定tModel結構的唯一鍵值。
• 當保存一個新的tModel結構時,應
當傳入一個空的tModelKey值。
• 當更新一個已有的tModel結構時,
應當傳入與一個存在的tModel實例
相對應的tModelKey值。

authorizedName • 屬性。 string 64


• 發佈tModel資料的個體在UDDI操
作入口中的名字
作入口中的名字。
• 該資料由管理該tModel資料的
UDDI操作入口站點所指派計算,
同時該資料不能在 save_tModel
tM d l 操
作中指定。
tModel結構 (cont )
(cont.)

欄位名 描述 資料類型 長度

operator
p • 屬性。 stringg 48
• 管理和控制tModel資料的UDDI註
冊中心操作入口站點的名稱
(certified name)。
• 控制該資料的操作入口站點在資
料被保存時記錄它。
• 該資料是由操作入口指派的,同
時該資料不能在 save_tModel 操作
中指定。
name • 必要元素。 stringg 128
• 用於記錄tModel的名字。
• 透過 find_tModel 提供名字搜索。
• 名字不能為空,並且必須對於查
看tModel的用戶是有明確意義的。
tModel結構 (cont )
(cont.)

欄位名 描述 資料類型 長度

description
p • 可選的可重複元素。 stringg 255
• 一條或多條簡短的tModel描述。
• 每一條描述允許支援一種國家語
言代碼,但國際語言代碼不可重
複出現。

overviewDoc • 可選元素。 structure


• 用於容納與tModel元素相關聯的遠
端描述或使用說明
端描述或使用說明。
tModel結構 (cont )
(cont.)

欄位名 描述 資料類型 長度

identifierBagg • 可選元素。 structure


• 用來記錄tModel附屬識別字的名/
值(name-value)的可選列表。
• 由資料全球編碼系統D-U-N-S來提

• 這一結構可以在調用 find_tModel
進行搜索時使用。

categoryBag • 可選元素。 structure


• 用於標記tModel的特定分類資訊
(如 工業NAICS 產品與服務
(如:工業NAICS、產品與服務
UNSPSC、地理代碼ISO 3166)的
名/值(name-value)的可選列表。
• 這一結構可以在調用 find_tModel
fi d tM d l
進行搜索時使用。
tModel結構 overviewDoc
tModel結構-overviewDoc
欄位名 描述 資料類型 長度

description
p • 可選的可重複元素。 stringg 255
• 對於被使用的特定tModel的簡短描
述性概覽資訊的具備語言代碼修
飾的零個或多文本描述。
overviewURL • 可選元素。 string 255
• 這個字串資料元素用於儲存一個
該URL引用了一個長
URL引用,該URL引用了一個長
URL引用
期穩定的概要描述文檔。
• 這個概要描述文檔詳細描述了在
整體
整體Web服務描述中使用到的以元
服務描述中使用到的以元
件形式存在的某個特定的tModel。
• 這個元素的內容的推薦格式是一
個URL,這個URL可用於通過Web
流覽器或HTTP-GET操作來獲取一
個基於HTML的描述文檔。
tModel結構 keyedReference
tModel結構-keyedReference
欄位名 描述 資料類型 長度

tModelKeyy • 必要屬性。 stringg 255


• UDDI類型分類法的UUID。

keyValue • 必要屬性。 string 255


• UDDI類型分類法中分類類別的識
別字。
別字

k N
keyName • 屬性。
屬性 string
i 255
• 用來描述UDDI類型分類法中的識
別字。
• 提供被選擇鍵值的附加資訊
提供被選擇鍵值的附加資訊。
tModel & UDDI
tModel & UDDI (cont )
(cont.)

ID ParentID Allowed Description

tModel tModel 否 這些類型是用於tModel的

identifier tModel 是 唯一識別字

namespace tModel 是 命名空間

categorization tModel 是 分類類別(分類法)

specification tModel 是 Web服務遵循的規範


tModel & UDDI (cont )
(cont.)

ID ParentID Allowed Description

xmlSpec specification 是 使用XML消息的Web服務的調


用規範

soapSpec xmlSpec 是 使用SOAP消息的與Web服務的


交互規範

wsdlSpec specification 是 使用WSDL描述的Web服務的調


用規範

protocol tModel 是 協定

transport protocol 是 傳輸協定

signatureComponent tModel 是 特徵元件


tModel & UDDI (cont )
(cont.)
QoS tModel (1)

• 在tM
在tModel中的overviewDoc指向一個外部
d l中的 i D 指向一個外部
的XML檔案,在XML檔案中以不同的tag
來代表所儲存的QoS屬性,tag中所包含的
值為實際的QoS Value,透過tag之間的關
a ue 透過 ag之間的關
聯性及階層性來表示各個屬性間的關係。
• 發佈web
發佈 eb service時,在bindingTemplate
ser ice時 在bindingTemplate
中去參考對應的QoS tModel,每一筆web
service都對應到一個獨立的tModel。
• 優點是簡單易實作,缺點是QoS的資料並
優點是簡單易實作 缺點是QoS的資料並
不實際存在UDDI中。
QoS tModel (1) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:5474CB60-
uuid:5474CB60-……..-… - "> >
<name>QoSInformation</name>
<description>Quality Rating Information</description>
<overviewDoc>
<description>Quality Rating Values in XML Files</description>
<overviewURL>http://www.example.com/qos.xml</overviewURL>
</overviewDoc>
/ i D
</tModel>
QoS tModel (2)

• 為每個不同的Q
為每個不同的QoS屬性建立一個tModel(每
S屬性建立一個tM d l(每
個tModel即為一種QoS類別)
• 發佈web service時,bindingTemplate中
中的categoryBag去參考這些可用的QoS
屬性,categoryBag中的keyedReference
參考一個QoS tModel的tModelKe 並將
tModel的tModelKey,並將
其對應的QoS value儲存在keyValue中。
• 缺點是會造成過多的tModel存在於UDDI
中 QoS類別過多複雜
中,QoS類別過多複雜。
QoS tModel (2) (cont )
(cont.)
QoS tModel (2) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:E5ED4570-
uuid:E5ED4570-……..-… - ">>
<name>QoSInformation</name>
<description>Quality Rating Information</description>
<overviewDoc>
<description>Quality Rating Information</description>
<overviewURL>http://www.example.com/qos.xml</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types“
keyValue="QoSValueSet“
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/>
</categoryBag>
</tModel>
QoS tModel (2) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:E5ED457A-
uuid:E5ED457A-……..-… - ">
>
<name>PriceRating</name>
<description>Price Rating Information</description>
<overviewDoc>
<description>Price Rating Information</description>
<overviewURL>http://www.example.com/price.html</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="QoSInformation"
tModelKey="uuid:E5ED4570-……..-…"/>
! -- QoSInformation的tModelKey
<categoryBag>
</tModel>
QoS tModel (2) (cont )
(cont.)

<bindingTemplate bindingKey="
bindingKey ..." serviceKey
serviceKey="...">>
<description xml:lang="en"></description>
<tModelnstanceDetails>
<tModelnstanceInfo tModelKeyy ="uuid:E5ED4570-……..-…"></tModelnstanceInfo>
<tModelnstanceInfo tModelKey ="uuid:E5ED457A-……..-…"></tModelnstanceInfo>
<tModelnstanceDetails>
<categoryBag>
<keyedReference
keyName="QoSInformation"
keyValue="0.4"
tM d lK
tModelKey="uuid:E5ED4570-……..-…"/>
" id E5ED4570 "/
<keyedReference
keyName="PriceRating"
keyValue="0
keyValue= 0.6
6"
tModelKey="uuid:E5ED457A-……..-…"/>
</categoryBag>
</bindingTemplate>
QoS tModel (3)

• 增加各個不同的Q
增加各個不同的QoS屬性,每一個屬性皆
S屬性 每一個屬性皆
以一個tModel來表示,但與第二種方法不
同的是,在此作法下可以清楚地呈現出
QoS各個屬性間的關係與階層性
• 發佈web service時,在bindingTemplate
中去參考其對應的QoS tModel 真正的
tModel,真正的
QoS value存在tModel的categoryBag。
QoS tModel (3) (cont )
(cont.)
QoS tModel (3) (cont )
(cont.)
<tModel tModelKey="uuid:5474CB60-2EAA-11DB-A24E-CCA0C123053E">
<name>QoSInformation</name>
<description>Quality Rating Information</description>
<overviewDoc>
<description>Quality Rating Principles</description>
p g p
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference keyName="uddi-org:types“ keyValue="QoSValueSet"
tModelKey="uuid:C1ACF26D
tModelKey= uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4
9672 4404 9D70 39B756E62AB4"/> /> ! -- 定義用
<keyedReference keyName="uddi-org:types“ keyValue="PriceRating"
tModelKey=“uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4”/> ! -- 定義用
<keyedReference keyName="uddi-org:types“ keyValue="Seat_SizeRating"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/> ! -- 定義用
<keyedReference keyName="uddi-org:types“ keyValue="ComfortableRating“
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/> ! -- 定義用
keyedReference keyName
<keyedReference keyName="PriceRating“
PriceRating keyValue
keyValue="0.8"
0.8
tModelKey="uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292"/>
<keyedReference keyName="Seat_SizeRating“ keyValue="0.3"
tModelKey="uuid:571E2B60-2EA8-11DB-A24E-CFEB6683478F"/>
<keyedReference keyName="ComfortableRating
keyName="ComfortableRating“ keyValue="0.3"
keyValue="0 3"
tModelKey="uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC"/>
</categoryBag>
</tModel>
QoS tModel (3) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292">
uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292 >
<name>PriceRating</name>
<description>Quality Rating About Ticket Price</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="PriceQoSValueSet"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/>
</categoryBag>
</tModel>
QoS tModel (3) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:571E2B60-2EA8-11DB-A24E-CFEB6683478F">
uuid:571E2B60-2EA8-11DB-A24E-CFEB6683478F >
<name>Seat_SizeRating</name>
<description>Quality Rating About Airplane Seat-Size</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="Seat_SizeQoSValueSet"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/>
</categoryBag>
</tModel>
QoS tModel (3) (cont )
(cont.)

<tModel
tModel tModelKey
tModelKey="uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC">
uuid:ACFD1720 2EA9 11DB A24E A76536B078BC
<name>ComfortableRating</name>
<description>Quality Rating About Airplane Comfortable</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference keyName="uddi-org:types“
keyValue="ComfortableRatingQoSValueSet"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/> ! -- 定義用
keyedReference keyName
<keyedReference keyName="uddi-org:types“
uddi org:types keyValue
keyValue="PriceRating"
PriceRating
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/> ! -- 定義用
<keyedReference keyName="uddi-org:types“ keyValue="Seat_SizeRating"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/> ! -- 定義用
</ t
</categoryBag>
B >
</tModel>
QoS tModel (3) (cont )
(cont.)

<businessService
businessService serviceKey = "E5ED457A……"
E5ED457A…… businessKey = "25CD457C……">
25CD457C……
<name>Web Service Example</name>
<bindingTemplates>
<bindingTemplate bindingKey = "uddi:ACF4CB60-…-…-…“ serviceKey = "E5ED457A……">
<accessPoint URLType="http">http://www
URLType="http">http://www.google.com.tw/</accessPoint>
google com tw/</accessPoint>
<tModelInstanceDetails>
<tModelnstanceInfo
tModelKey ="uuid:5474CB60-2EAA-11DB-A24E-CCA0C123053E ">! -- QoSInfo
</tModelnstanceInfo>
<tModelnstanceInfo
tModelKey ="uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292">! -- PriceRating
</tModelnstanceInfo>
<tModelnstanceInfo
tModelKey ="uuid:571E2B60-2EA8-11DB-A24E-CFEB6683478F">! -- Seat_Size
</tModelnstanceInfo>
<tModelnstanceInfo
tModelKey ="uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC ">! -- Comfortable
</tModelnstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>
QoS tModel (4)

• 建立各個不同的Q
建立各個不同的QoS S tM d l 分別代表不
tModel,分別代表不
同的QoS屬性,彼此之間的關係在建立
tModel時便清楚地定義在各個QoS tModel
• 發佈web service時,將與此web service
相關的QoS tModel於businessService的
categor Bag中加以註冊 並將對應的
categoryBag中加以註冊,並將對應的
QoS value儲存於categoryBag中的
keyedReference。
QoS tModel (4) (cont )
(cont.)
QoS tModel (4) (cont )
(cont.)

<tModel
tModel tModelKey
tModelKey="uuid:5474CB60-2EAA-11DB-A24E-CCA0C123053E">
uuid:5474CB60 2EAA 11DB A24E CCA0C123053E
<name>QoSInformation</name>
<description>Quality Rating Information</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="QoSValueSet"
uuid:C1ACF26D 9672 4404 9D70 39B756E62AB4 / ! 定義用
tModelKey=“uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4”/>!--
tModelKey
<keyedReference
keyName="uddi-org:types"
keyValue="PriceRating"
tM d lK " id C1ACF26D 9672 4404 9D70 39B756E62AB4”/>! 定義用
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4”/>!--
<keyedReference
keyName="uddi-org:types"
keyValue="ComfortableRating"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4”/>!-- 定義用
</categoryBag>
</tModel>
QoS tModel (4) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292">
uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292 >
<name>PriceRating</name>
<description>Quality Rating About Ticket Price</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="PriceQoSValueSet"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/>
</categoryBag>
</tModel>
QoS tModel (4) (cont )
(cont.)

<tModel tModelKey=
tModelKey="uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC">
uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC >
<name>ComfortableRating</name>
<description>Quality Rating About Airplane Comfortable</description>
<overviewDoc>
<description>Quality Rating Principles</description>
<overviewURL>http://uddi.org/specification.html</overviewURL>
</overviewDoc>
/ i D
<categoryBag>
<keyedReference
keyName="uddi-org:types"
keyValue="ComfortableRatingQoSValueSet"
tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"/>
</categoryBag>
</tModel>
QoS tModel (4) (cont )
(cont.)
<businessService serviceKey = "E5ED457A……" businessKey = "25CD457C……">
name Web Service Example</name>
<name>Web Example /name
<bindingTemplates>
<bindingTemplate bindingKey = "uddi:ACF4CB60-…-…-…"
serviceKey = "E5ED457A……">
<accessPoint URLType="http">http://www
URLType="http">http://www.google.com.tw</accessPoint>
google com tw</accessPoint>
</bindingTemplate>
<categoryBag>
<keyedReference
tModelKey="uuid:5474CB60-2EAA-11DB-A24E-CCA0C123053E"
keyName="QoSInformation"
keyValue="0.5"/>
keyedReference
<keyedReference
tModelKey="uuid:E5ED4570-2EA7-11DB-A24E-8153F0886292"
keyName="PriceRating"
keyValue="0.8"/>
<k
<keyedReference
dR f
tModelKey="uuid:ACFD1720-2EA9-11DB-A24E-A76536B078BC"
keyName="ComfortableRating"
keyValue="0.3"/>
</categoryBag>
</bindingTemplates>
</businessService>
QoS tModel (5)

i 的作法 透過修改UDDI
• UDDI extension的作法,透過修改UDDI
t
中的資料結構,來讓所允許的QoS value
可以明白地以XML tag來儲存(enclosing
ag)
with XML tag)。
• 這種作法雖然是最明顯地可以看出QoS及
其對應的 eb service,但有一個限制,便
其對應的web ser ice 但有一個限制 便
是client、server、及intermediary node皆
須是QoS-aware,意指這三個node必須都
能解析採用此方法的SOAP message,否 g
則會傳回錯誤訊息。
QoS tModel (5) (cont )
(cont.)

<?xml version=
version="1
1.0
0" encoding=
encoding="UTF-8"?>
UTF-8 ?>
<envelop xmlns= "http://schmas.xmlsoap.org/soap/envelop/">
<body>
<find service businessKey="*"
<find_service businessKey= * generic=
generic="11.0
0"
xmlns="urn:uddi-org:api" maxRows="5">
<name>car reservation</name>
<qosInfo>
I f
<availability>0.8</availability>
</qosInfo>
</find_service>
</body>
</enveolop>
tModel實作

• get_authToken(
t thT k ( )
• save_business(( )
• save_tModel( )
• save_service(( )
• find tModel( )
find_tModel(
tModel實作(juddi)-get_authToken
tModel實作(juddi) get authToken
tModel實作(Java)-get_authToken
tModel實作(Java) get authToken

AuthToken at = proxy.get_authToken(
proxy get authToken("004"
004 , "ChiHua");
ChiHua );
String aut = at.getAuthInfoString();
System.out.println("AuthInfo: " + aut);
tModel實作(juddi)-save_business
tModel實作(juddi) save business
tModel實作(Java)-save_business
tModel實作(Java) save business
String aut = "authToken:C1875DE0-6134-11DC-9DE0-B2FA95FC1AD7

BusinessEntity businessEntity = new BusinessEntity(


BusinessEntity("", "ChiHuaAir");
ChiHuaAir );
businessEntity.setAuthorizedName("ChiHuaAir");
businessEntity.setDefaultDescriptionString("ChiHua.Inc");
Contact contact = new Contact ("ChiHuaAir");
( )
PersonName pn = new PersonName("ChiHua Chen");
Phone p = new Phone("0912345678");
Email email = new Email("chihua0826.iim96g@nctu.edu.tw");
Vector vector = new Vector();
vector.addElement(pn);
vector.addElement(p);
vector.addElement(email);
( )
contact.setEmailVector(vector);
Contacts contacts = new Contacts();
Vector contactvt = new Vector();
contactvt addElement(contact);
contactvt.addElement(contact);
contacts.setContactVector(contactvt);
businessEntity.setContacts(contacts);

Vector entities = new Vector();


entities.addElement(businessEntity);
BusinessDetail bd = proxy.save_business(aut, entities);
tModel實作(juddi)-save_tModel
tModel實作(juddi) save tModel
tModel實作(Java)-save_tModel
tModel實作(Java) save tModel

String aut = "authToken:C1875DE0-6134-11DC-9DE0-B2FA95FC1AD7";


authToken:C1875DE0 6134 11DC 9DE0 B2FA95FC1AD7 ;
System.out.println("AuthInfo: " + aut);
Vector tModels = new Vector();
TModel tModel = new TModel(); ();

KeyedReference kr = new KeyedReference();


kr.setKeyName("QoSValueSet");
y ( )
kr.setKeyValue("uddi-org:types");
kr.setTModelKey("uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4");

CategoryBag cb = new CategoryBag();


cb.add(kr);
tModel.setCategoryBag(cb);
tModel.setName("QoSInformation");
M d l N ("Q SI f i ")
tModels.addElement(tModel);

TModelDetail
TM d lD t il tmod
t d = proxy.save_tModel(aut,
tM d l( t tModels);
tM d l )
String bo = tmod.getOperator();
System.out.println("operator: "+ bo);
tModel實作(juddi)-save_service
tModel實作(juddi) save service
tModel實作(Java)-save_business
tModel實作(Java) save business

String aut = "authToken:C1875DE0-6134-11DC-9DE0-B2FA95FC1AD7


authToken:C1875DE0 6134 11DC 9DE0 B2FA95FC1AD7
String businessKey = "BABB72C0-6135-11DC-B2C0-F6389BEB75A9";
BusinessService businessService = new BusinessService("");
businessService.setDefaultNameString( "Web Service Example",null);
b i
businessService.setBusinessKey(businessKey);
S i tB i K (b i K )

BindingTemplate bindingTemplate = new BindingTemplate();


AccessPoint accessPoint = new AccessPoint("http://www.iim.nctu.edu.tw","http");
( p , p );
bindingTemplate.setAccessPoint(accessPoint);
TModelInstanceDetails tModelDetails = new TModelInstanceDetails();
TModelInstanceInfo tModelInstanceInfo = new TModelInstanceInfo("uuid:C1ACF26D-
9672 4404 9D70 39B756E62AB4");
9672-4404-9D70-39B756E62AB4 );
tModelDetails.add(tModelInstanceInfo);
bindingTemplate.setTModelInstanceDetails(tModelDetails);
BindingTemplates bindingTemplates = new BindingTemplates();
bindingTemplates.add(bindingTemplate);
businessService.setBindingTemplates(bindingTemplates);

Vector services = new Vector();


services.addElement(businessService);
ServiceDetail serviceDetail = proxy.save_service(aut, services);
tModel實作(juddi)-find_tModel
tModel實作(juddi) find tModel
tModel實作(Java)-find_tModel
tModel實作(Java) find tModel

String q = “QoS";
QoS ;
System.out.println ("Search tModel:" + q);

FindQualifiers
Q findQualifiers
Q = new FindQualifiers();
Q ();
Vector qualifier = new Vector();
qualifier.add(new FindQualifier("sortByNameAsc"));
findQualifiers.setFindQualifierVector(qualifier);
( )

TModelList tlist = proxy.find_tModel(q, findQualifiers, 10);


Vector tr = tlist.getTModelInfos().getTModelInfoVector();
for(Iterator it = tr.iterator(); it.hasNext(); )
{
TModelInfo ti = (TModelInfo) it.next();
S
System.out.println("tModel
i l (" M d l name: " + ti.getNameString());
i N S i ())
System.out.println("tModel key: " + ti.getTModelKey());
}
tModel實作 findQualifier
tModel實作-findQualifier
• exactNameMatch
• caseSensitiveMatch
• sortByNameAsc
• sortByNameDesc
• sortByDateAsc
tB D t A
• sortByDateDesc
• orLikeKeys
• orAllKeys
• combineCategoryBags
• serviceSubset
• andAllKeys
參考文獻
1. David Ehnebuske, Christopher Kurt, “UDDI
UDDI Core tModels Taxonomy
and Identifier Systems”, W3C Note, 2001, URL:
http://www.uddi.org/taxonomies/Core_Taxonomy_OverviewDoc.htm
2. John Colgrave, “使用 UDDI 和 WSDL 的一種新方法,第 4 部分: 使用新
的OASIS UDDI WSDL Technical Note來從 Java應用程序發布 WSDL WSDL”,
SOA and Web Services技術文件庫, 2004, URL:
http://www.ibm.com/developerworks/cn/webservices/ws-
udmod4/index.html
3. 使用 和 提供的 实现
Liutiegang, “使用UDDI4j和BEA提供的UDDI实现UDDI功能使用UDDI4j 功能使用
和BEA提供的UDDI实现UDDI功能”, 學無止境, 2006, URL:
http://liutiegang2.itpub.net/post/24466/231187
4
4. 林平祺 “適用於網路服務結合的QoS在UDDI的表示方法之研究”
林平祺, 適用於網路服務結合的QoS在UDDI的表示方法之研究 , 碩士學
位論文, 國立交通大學資訊管理研究所, 2006
5. 柴曉路, “tModel的用途及結構詳解”, SOA and Web Services技術文件庫,
2001, URL: http://www.ibm.com/developerworks/cn/webservices/ws-
tmodel/part1/index html
tmodel/part1/index.html
6. 柴曉路, “tModel體系和公共tModel”, SOA and Web Services技術文件庫,
2001, URL: http://www.ibm.com/developerworks/cn/webservices/ws-
tmodel/part2/index.html
p

You might also like