當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
SOAP技術(shù)與B2B應(yīng)用集成--SOAP的消息結(jié)構(gòu)與數(shù)據(jù)的組織方法
SOAP技術(shù)與B2B應(yīng)用集成
--SOAP的消息結(jié)構(gòu)與數(shù)據(jù)的組織方法
柴曉路
Chief System Architect
2001年4月24日
本文延續(xù)前文SOAP技術(shù)和應(yīng)用概覽,結(jié)合應(yīng)用實例,對SOAP消息的結(jié)構(gòu)做了詳細而精確地闡述,通過對SOAP Envelope、SOAP Header、SOAP Body的詳細介紹使用戶對如何使用SOAP消息來描述RPC調(diào)用和響應(yīng)有了一個完整而深入地了解,并為本系列后面的介紹SOAP消息中數(shù)據(jù)的編碼規(guī)則的文章奠定了結(jié)構(gòu)基礎(chǔ)。
SOAP為在一個松散的、分布的環(huán)境中使用XML對等地交換結(jié)構(gòu)化的和類型化的信息提供了一個簡單的輕量級機制。而傳送信息的基本單元承載體就是SOAP消息。從根本上來看,SOAP消息是從發(fā)送方到接受方的一種傳輸方法,但就象前面SOAP技術(shù)及應(yīng)用概覽一文中闡述的那樣,SOAP消息一般會和實現(xiàn)模式結(jié)合,例如請求/響應(yīng)。SOAP的實現(xiàn)可以為特殊網(wǎng)絡(luò)系統(tǒng)的特有特征來優(yōu)化。例如,通過HTTP binding將SOAP響應(yīng)消息通過HTTP響應(yīng)來傳輸,請求和響應(yīng)使用同一連接。
當(dāng)然,無論SOAP是與哪種協(xié)議綁定,它都使用同一種消息的描述框架格式,這種框架格式就是以SOAP Envelope(SOAP信封)為根元素,內(nèi)含SOAP Header和SOAP Body子元素的這樣一個XML文檔。SOAP消息描述文本是一種XML Application。之所以稱之為描述框架,而不稱為描述,是因為SOAP規(guī)范為SOAP Header和SOAP Body定義了強大的擴展機制,使用戶可以按需要在其中增加與應(yīng)用相關(guān)的自定義描述格式,SOAP規(guī)范只是定義了消息描述的一個骨架。
所有的SOAP消息都是使用XML格式來編碼的。SOAP應(yīng)用程序在生成由SOAP定義的所有元素和屬性的時候,應(yīng)該包含恰當(dāng)?shù)腟OAP的命名空間。SOAP應(yīng)用程序必須能處理其收到的消息中的SOAP命名空間。它必須丟棄那些包含不正確命名空間的消息,并且可以處理那些不包含SOAP命名空間的SOAP消息,就好象他們包含了正確的命名空間一樣。
SOAP定義了兩個命名空間:
SOAP信封的命名空間標(biāo)識為http://schemas.xmlsoap.org/soap/envelope/
SOAP編序的命名空間標(biāo)識為http://schemas.xmlsoap.org/soap/encoding/
SOAP消息必須不包含DTD,同時SOAP消息也必須不包含PI(Processing Instructions)。
除SOAP mustUnderstand attribute和SOAP actor attribute外,一般允許屬性及屬性值自由地選擇是在XML實例中描述還是在XML Schema中描述,當(dāng)然前提是他們具有相同的效果。也就是說,在模式(schema)中使用默認(rèn)值或固定值定義在語義上等價于在實例中的值定義。
例如:在Schema中定義
<element name="company" type="string" fixed="DealEasy" >
然后在XML實例中定義
<company />
與直接在XML實例中定義
<company >DealEasy<company />
本文所引用的資源主要包括兩類,一類用于解決B2B電子商務(wù)應(yīng)用交互和集成的系列技術(shù)標(biāo)準(zhǔn)規(guī)范,他們與SOAP是一個不可分割的技術(shù)體系,包括UDDI、SOAP、WSDL、XML等,另一類是SOAP的開發(fā)軟件包,包括Microsoft的SOAP軟件包SOAPToolkit和Apache Project的SOAP Package。本文的最后給出了這些資源的鏈接,有興趣的讀者可以通過這些資源鏈接找到所需的內(nèi)容
SOAP的消息框架
SOAP消息是由一個強制的SOAP Envelope、一個可選的SOAP Header和一個強制的SOAP Body組成的XML文檔。作為SOAP消息的該XML文檔將在本規(guī)范的其余部分被引用。而本節(jié)的元素和屬性的命名空間標(biāo)識是http://schemas.xmlsoap.org/soap/envelope/。SOAP消息應(yīng)當(dāng)包含如下部分:
Envelope是表示該消息的XML文檔的頂級元素
Header則是為了支持在松散環(huán)境下在通訊方之間尚未預(yù)先達成一致的情況下為SOAP消息增加特性的通用機制。SOAP定義了很少的一些屬性來用于指明誰可以處理該特性以及它是可選處理的還是強制處理的。
Body為該消息的最終接收者所想要得到的那些必須處理的信息提供了一個容器。此外,SOAP定義了Body的一個子元素Fault用于報告錯誤。
這些XML元素的語法規(guī)則如下:
Envelope
元素名為 Envelope
該元素必須在SOAP消息中出現(xiàn),一般是根元素
該元素可以包含命名空間申明和額外的屬性。如果出現(xiàn)額外屬性(并非是SOAP規(guī)范預(yù)定義的屬性),則必須使用命名空間修飾。類似的,該元素可以包含額外的子元素,這些子元素如果出現(xiàn),必須有命名空間修飾并且必須跟在SOAP
Body元素之后,也就是說Envelope的直接子元素Header和Body必須排列在最前面。
Header
元素名為 Header
該元素可以在SOAP消息中出現(xiàn),但并不是必須出現(xiàn)(也就是說可以僅使用Body元素完成一次SOAP消息的信息描述)。如果出現(xiàn),該元素必須是SOAP
Envelope元素的第一個直接子元素。
該元素可以包含一系列的Header條目,這些條目都應(yīng)當(dāng)是Header元素的直接子元素。Header的所有直接子元素必須有命名空間修飾。
Header條目自身可以包含下級子元素,但這些元素不是Header條目,而是Header條目的內(nèi)容。
Body
元素名為 Body
該元素必須在SOAP消息中出現(xiàn),同時必須是SOAP
Envelope元素的一個直接子元素。若該消息中包含Header元素,則Body元素必須直接跟隨Header,為Header元素的相鄰兄弟元素。若Header不出現(xiàn),則其必須是Envelope的第一個直接子元素。
該元素可以包含一系列的Body條目,這些條目都應(yīng)當(dāng)是Body元素的直接子元素。Body的所有直接子元素必須有命名空間修飾。SOAP定義了SOAP
Fault元素,它用來指示調(diào)用錯誤的信息。
Boidy條目自身可以包含下級子元素,但這些元素不是Body條目,而是Body條目的內(nèi)容。
下面是一個SOAP消息的例子,其中Envelope包含一個Header元素和一個Body元素。Header元素有兩個Header條目,他們的命名空間修飾都是uniB2B,兩個Header條目各有一個子元素。而Body元素有一個Body條目,該條目包含兩個子元素。
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<uniB2B:AccessAuthenticated
xmlns:uniB2B=”Some-URI”>
<SessionKey>76E4#12A@-98JA#V5GQ</SessionKey>
</uniB2B:AccessAuthenticated >
<uniB2B:GetLastProductPrice xmlns:uniB2B
="Some-URI">
<Price>243900.00</Price>
</uniB2B:GetLastProductPrice>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<uniB2B:RequestPurchaseOrder xmlns:uniB2B
="Some-URI">
<ProductID>Jaguar_X_Type</ProductID
>
<ProductPrice>243900.00</ProductPrice>
</uniB2B:RequestPurchaseOrder >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP encodingStyle屬性
SOAP的全局encodingStyle屬性被用于指明在SOAP消息中使用哪種編序規(guī)則。該屬性可以在任意元素中出現(xiàn),并且其作用范圍包括該元素的內(nèi)容和所有其子元素中未使用該屬性的所有子元素,這就象XML命名空間定義的作用范圍一樣,是向下傳遞的。對于一個SOAP消息來說,沒有默認(rèn)的編碼定義。
SOAP encodingStyle屬性的值是一個或多個用于標(biāo)識編序規(guī)則(對數(shù)據(jù)類型和數(shù)據(jù)類型實例的描述規(guī)則)和用于標(biāo)識解序SOAP消息的規(guī)則的有序列表,其排序是按照詳盡程度從大到小排列。下面是一些值的例子:
"http://schemas.xmlsoap.org/soap/encoding/"
"http://schema.dealeasy.com/soap/encoding/
http://schema.dealeasy.com/soap/encoding/additional/"
""
而SOAP規(guī)范中定義的編序規(guī)則的標(biāo)識為http://schemas.xmlsoap.org/soap/encoding/。消息若要使用特別的編序應(yīng)該使用SOAP encodingStyle屬性來指明。另外,所有在句法上由http://schemas.xmlsoap.org/soap/encoding/開始的URI序列表明這其中包含的所有URI都與SOAP規(guī)范中定義的SOAP編碼規(guī)則相一致。(雖然可能會添加潛在的更為嚴(yán)格的規(guī)則,也就是說http://schemas.xmlsoap.org/soap/encoding/標(biāo)識的編碼規(guī)則是一個編碼的基類)
一個空值的URI(“”)明確地指明并未為其所包含的元素聲明任何編碼風(fēng)格。這可以為包含的元素關(guān)閉任何前面預(yù)先的聲明。
SOAP Header
SOAP提供了一個可擴展的機制用于在分散的網(wǎng)絡(luò)環(huán)境下,模塊化地擴展SOAP消息的描述能力,而通訊雙方并不需要有完整的預(yù)先的約定。典型的擴展例子可以是實現(xiàn)一些諸如認(rèn)證、事務(wù)管理以及支付的Header條目,當(dāng)然對于更復(fù)雜的多步驟的B2B協(xié)同,通過擴展相對復(fù)雜的Header條目也可以實現(xiàn),在前面的文章SOAP技術(shù)及應(yīng)用概覽中就有一個完整的例子。
按照SOAP的語法,Header元素應(yīng)當(dāng)被編碼為SOAP Envelope XML文檔的第一直接子元素。Header的所有直接子元素都被稱為Header條目。
Header條目的編碼規(guī)則包括:
一個Header條目由一個完整修飾的元素名來標(biāo)識,所謂完整修飾的元素名是由一個命名空間URI和局部名來組成。SOAP
Header元素的所有直接子元素都必須是完整修飾的。不允許任何不帶命名空間修飾的Header條目存在。
SOAP
encodingStyle屬性可以用于指明Header條目的編碼風(fēng)格,而encodingStyle屬性在前面已經(jīng)詳細介紹了。
SOAP
mustUnderstand屬性和SOAP actor屬性可以用于指明如何處理條目和由誰來處理條目。
在SOAP Header中,SOAP Header屬性的設(shè)置是為了讓SOAP消息的接收者了解應(yīng)該如何處理該消息。一個生成SOAP消息的SOAP應(yīng)用程序應(yīng)該僅使用SOAP Header元素的直接子元素的SOAP Header屬性。而對于那些并非作為SOAP Header元素的直接子元素出現(xiàn)的SOAP Header屬性,SOAP消息的接受者必須忽略。
以下是一個Header的例子,其中包含了一個元素標(biāo)識Priority和一個mustUnderstand屬性及其值1,以及Priority的值7,該元素表明該消息的處理優(yōu)先權(quán)為7。
<SOAP-ENV:Header>
<uniB2B:Priority
xmlns:uniB2B="some-URI"
SOAP-ENV:mustUnderstand="1">
7
</uniB2B:Priority>
</SOAP-ENV:Header>
SOAP actor屬性
SOAP消息從生成者到達最終接受者,將潛在地沿著消息路徑(message path)經(jīng)過一系列的SOAP中間介。SOAP中間介是一個能夠接受和轉(zhuǎn)發(fā)SOAP消息的應(yīng)用程序。所有的中間介都如同最終接受者一樣由一個URI來標(biāo)識。
并非一個SOAP消息的所有部分都是最終接收者需要了解的調(diào)用信息,其中部分是路徑中的一個或多個中間介所需要處理的。Header元素中接收者角色類似合約的接受者,他并不能將其交給其它方。也就是說,一個接收者接到其需要接收的Header元素必須不轉(zhuǎn)發(fā)該Header給SOAP消息路徑中的下一個應(yīng)用程序。該接收者可以插入一個類似的Header元素,但在這個情況下,合約關(guān)系存在于該應(yīng)用程序及下一個Header元素的接收者之間了。
SOAP actor全局屬性可以被用于指明Header元素的接收者。而SOAP actor屬性的值是一個URI。URI: http://schemas.xmlsoap.org/soap/actor/next指明該Header元素是直接的下一個進行消息處理的SOAP應(yīng)用程序需要處理的。這與HTTP的連接頭字段的hop-by-hop scope model的表示是一致的。
若省略SOAP actor屬性,則表明該消息的接收者是SOAP消息的最終接收者。
對于一個SOAP消息的實例(在實際傳輸中的SOAP消息),這個屬性必須出現(xiàn)以指明該消息的接收方的URI。
SOAP mustUnderstand屬性
SOAP mustUnderstand全局屬性用于指明一個Header條目是強制必須處理的還是可選的要求接收者處理的。Header條目的接收者由SOAP actor屬性來定義。mustUnderstand屬性的值可取為“0”或“1”。若沒有使用SOAP mustUnderstand屬性,則在語義上等價于mustUderstand屬性出現(xiàn)同時取值為“0”。
若Header元素帶有值為“1”的SOAP mustUnderstand屬性,則該Header條目的接收者要么必須遵循語義(由具備完整修飾的元素名來傳達)并正確地處理這些語義,要么必須宣稱處理消息失敗。也就是說如果該應(yīng)用程序發(fā)現(xiàn)自己無法識別某一個Header條目(應(yīng)為在自己的處理邏輯里面沒有該條目),那么必須申明錯誤,并響應(yīng)該錯誤信息。
SOAP mustUnderstand屬性是為了考慮健壯地升級而設(shè)置的。所有用值為“1”的SOAP mustUnderstand屬性來標(biāo)記的元素必須被認(rèn)為是可以影響該元素的上級元素或同級元素的語義。而這種風(fēng)格標(biāo)記的元素應(yīng)保證對語義的修改并不能被那些不能完全理解該修改后的語義的那些元素靜默地或假設(shè)地、不正確地忽略。
該屬性若要生效必須在實例中出現(xiàn),也就是說不能依靠XML Schema的缺省值或固定值的設(shè)置來使該屬性生效。
SOAP Body
SOAP Body元素提供一個簡單的用于與消息的最終接收者交換信息(這些信息都是必須處理的)的機制。而Body元素的典型應(yīng)用包含序列的RPC調(diào)用和錯誤報告。
Body元素在編碼上應(yīng)當(dāng)作為SOAP Envelope元素的一個直接子元素。如果包含Header元素,則Body元素必須直接跟隨Header元素,為Header元素的直接下一個兄弟元素,否則Body元素必須是Envelope元素的第一直接子元素。
所有Body元素的直接子元素被稱為Body條目,同時每一個Body條目都應(yīng)當(dāng)編碼為SOAP Body元素里的一個獨立元素。
Body條目的編碼規(guī)則包括:
一個Body條目由一個完整修飾的元素名來標(biāo)識,所謂完整修飾的元素名是由一個命名空間URI和局部名來組成。SOAP
Body元素的直接子元素可以是命名空間修飾的。
SOAP encodingStyle屬性可以被用來表明Body條目中使用的編碼規(guī)則。
SOAP只預(yù)定義了一個Body條目:用于向調(diào)用方報告錯誤的Body條目:Fault。
使用SOAP Body
下面是一對SOAP調(diào)用/響應(yīng)的例子,在調(diào)用消息中Body包含了一個描述調(diào)用方法的Body條目RequestPurchaseOrder,它包含兩個參數(shù)ProductID和ProductPrice。而在響應(yīng)消息中,Body中包含了一個Body條目ResponsePurchaseOrder用于描述響應(yīng)調(diào)用的返回信息,其中包含OrderID、AuthenticatedID、ProductID、ProductNumber、IssueDate。
RPC調(diào)用的SOAP消息表示
POST /ProductQuote HTTP/1.1
Host:
service.eMarketplace.com.cn
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<uniB2B:AccessAuthenticated
xmlns:uniB2B=”Some-URI”>
<SessionKey>76E4#12A@-98JA#V5GQ</SessionKey>
</uniB2B:AccessAuthenticated >
<uniB2B:GetLastProductPrice xmlns:uniB2B
="Some-URI">
<Price>243900.00</Price>
</uniB2B:GetLastProductPrice>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<uniB2B:RequestPurchaseOrder xmlns:uniB2B
="Some-URI">
<ProductID>Jaguar_X_Type</ProductID
>
<ProductPrice>243900.00</ProductPrice>
</uniB2B:RequestPurchaseOrder >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
RPC響應(yīng)的SOAP消息表示
HTTP/1.1 200 OK
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<uniB2B:ResponsePurchaseOrder xmlns:uniB2B
="Some-URI">
<OrderID>AJR786503</OrderID>
<AuthenticatedID>76E4#12A@-98JA#V5GQ</AuthenticatedID>
<ProductID>Jaguar_X_Type</ProductID
>
<ProductPrice>243900.00</ProductPrice>
<ProductNumber>1</ProductNumber>
<IssueDate>2001-4-1</IssueDate>
</uniB2B:ResponsePurchaseOrder >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP Header和SOAP Body的語義關(guān)系
Header和Body在定義上是獨立的,但在事實上是相聯(lián)系的。一個Body條目和一個Header條目的關(guān)系是:一個Body條目在語義上與這樣一個Header條目等價:該Header條目將由默認(rèn)參與者(最終接受者)解釋同時由值為“1”的SOAP mustUnderstand屬性標(biāo)記。默認(rèn)參與者可以不使用actor屬性的方式來指明。
SOAP Fault
SOAP Fault元素是用于在SOAP消息中傳輸錯誤及狀態(tài)信息。如果SOAP消息需要包含SOAP Fault元素的話,它必須作為一個Body條目出現(xiàn),同時在Body元素內(nèi)它必須不出現(xiàn)多于一次(至多出現(xiàn)一次)。
SOAP Fault元素定義了如下子元素:
faultcode
faultcode元素是應(yīng)那些要以算法的機制來標(biāo)識錯誤的軟件的需要。faultcode必須在SOAP
Fault元素中出現(xiàn),同時faultcode的值必須是屬于后面一節(jié)中定義的一個修飾名。SOAP定義了一個很小的SOAP錯誤代碼的集合用于覆蓋基本的SOAP錯誤。
faultstring
faultstring元素是為那些錯誤代碼提供人可以讀懂的錯誤解釋,它不是為程序處理而設(shè)。Faultstring元素有點類似于HTTP中定義的’Reason-Phrase’。faultstring必須在SOAP
Fault元素中出現(xiàn),同時它至少應(yīng)該提供一些解釋該錯誤種類的信息。
faultactor
faultactor元素是為描述在消息路徑中是誰引起了該錯誤的發(fā)生的信息的。它類似于SOAP
actor屬性,不過它不是用于指示Header條目的接收者,而是用于指示錯誤源。faultactor屬性的值是一個標(biāo)識該源的一個URI。作為SOAP消息的非最終接收者的應(yīng)用程序必須在SOAP
Fault元素中包含faultactor元素。而消息的最終接收者可以使用faultactor元素來明確地指明是它生成了該錯誤。
detail
detail元素是用于傳輸與Body元素相關(guān)的應(yīng)用程序特別的錯誤信息。如果Body元素中的內(nèi)容不能被成功地處理的時候,它必須出現(xiàn)。它必須不能被用于傳輸屬于Header條目的錯誤信息。詳細的屬于Header條目的錯誤信息必須在Header條目中表示傳輸。
若Fault元素中不出現(xiàn)detail元素則表明其中的錯誤與Body元素的處理無關(guān)。這可以用于區(qū)分在在錯誤情況下Body元素是否被處理過。
detail元素的所有直接子元素都被稱為detail條目,同時每個detail條目都作為detail元素中的一個獨立的元素進行編碼。
Detail條目的編碼規(guī)則如下:
一個detail條目由一個完整修飾的元素名來標(biāo)識,所謂完整修飾的元素名是由一個命名空間URI和局部名來組成。Detail元素的直接子元素可以是命名空間修飾的。
SOAP encodingStyle屬性可以被用來表明detail條目中使用的編碼規(guī)則。
其他的Fault子元素可以出現(xiàn),他們都應(yīng)當(dāng)提供命名空間修飾。
SOAP Fault代碼
當(dāng)描述由本規(guī)范定義的錯誤的時候,faultcode元素必須使用在本節(jié)中定義的faultode的值。這些faultcode值的命名空間標(biāo)識為http://schemas.xmlsoap.org/soap/envelope/。
默認(rèn)的SOAP faultcode值是按照一種可擴展的風(fēng)格來定義的,它允許在維持以有的faultcode值的向后兼容的基礎(chǔ)定義新的SOAP faultcode值。這一機制在使用上非常類似與HTTP中基本狀態(tài)類的定義1xx, 2xx, 3xx等。不過,他們是用XML修飾名來定義,而不是用整數(shù)。“.”符號是faultcode值的分隔符,用于指明“.”左邊的是一個比右邊更泛化的錯誤代碼。例如:
Client.Authentication
在本文檔中定義的faultcode值集合是:
名稱
含義
VersionMismatch
處理程序發(fā)現(xiàn)在SOAP Envelope元素中有一個非法的命名空間。
MustUnderstand
SOAP Header元素的一個直接子元素?zé)o法被理解或者他并不遵守由處理對象要求的SOAP mustUnderstand屬性必須取值為"1"的要求。
Client
Client錯誤類用于指示以下錯誤:消息的格式有誤或消息中缺乏能成功處理所必須的一些適當(dāng)信息。例如,消息中可能缺乏適當(dāng)?shù)恼J(rèn)證和支付信息。一般情況下應(yīng)指明消息不應(yīng)該在沒有修改過的情況下重發(fā)。可參閱Fault detail子元素的描述。
Server
Server錯誤類用于表明消息無法被處理的原因,但那些屬于內(nèi)容上的錯誤并不屬于該范疇,它主要被用于指示那些屬于處理上的錯誤。例如,處理操作需要包含與一個上游處理程序進行通訊,但該程序沒有響應(yīng)。但該消息可能在下一個時間點上被成功處理??蓞㈤咶ault detail子元素的描述。
結(jié)語
本文介紹了SOAP消息的消息結(jié)構(gòu)及SOAP消息各個元素的XML語法和具體應(yīng)用方法,我將在下一篇文章中詳細描述在SOAP元素中如何描述具體數(shù)據(jù)(數(shù)據(jù)結(jié)構(gòu)/數(shù)據(jù)實例),并詳細介紹用于描述數(shù)據(jù)的SOAP編碼規(guī)則的語法。
參考資料
- 解決B2B電子商務(wù)應(yīng)用交互和集成的InterOP Stack系列技術(shù)標(biāo)準(zhǔn)規(guī)范
-
- UDDI
Technical White Paper, Ariba Inc., IBM Corporation and Microsoft
Corporation, 6 Sep 2000
- Web
Service Description Language (WSDL) 1.0, IBM, 25 Sep 2000
- SOAP:
Simple Object Access Protocol Specification 1.1, IBM, Microsoft,
DevelopMentor, 2000
- Extensible Markup Language (XML)
1.0 (Second Edition), W3C, 6 Oct 2000
- XML Schema Part 0: Primer, W3C, 16 Mar 2001
- UDDI
Technical White Paper, Ariba Inc., IBM Corporation and Microsoft
Corporation, 6 Sep 2000
- SOAP開發(fā)軟件包
-
- Microsoft
SOAP Toolkit 2.0, RC0, Microsoft Corporation
- Apache SOAP 2.0, Apache.ORG
- Microsoft
SOAP Toolkit 2.0, RC0, Microsoft Corporation
作者簡介
- 1企業(yè)知識資本運營模式簡述
- 2BBS熱點話題精選:石家莊OA信息化靠誰來推動?
- 3Accessing Server Variables From Within Web Services
- 4石家莊OA信息化的價值和挑戰(zhàn)
- 5SOAP技術(shù)與B2B應(yīng)用集成--SOAP消息中的類型/值的編序方法和示例
- 6Web服務(wù)的(革)創(chuàng)新,第1部分
- 7資本的冬天是協(xié)同軟件行業(yè)的春天
- 8低價是IT產(chǎn)品過冬的法寶嗎?
- 9石家莊OA信息化與知識價值鏈(BY AMT 夏敬華)
- 10Web服務(wù)的計量與統(tǒng)計
- 11ADO vs. ADO.NET Webservice
- 12Web服務(wù) 按需服務(wù)——Sun ONE為企業(yè)建立服務(wù)驅(qū)動型網(wǎng)絡(luò)
- 13微軟、IBM和BEA制定出Web服務(wù)新規(guī)格
- 14非常漂亮的一個模型
- 15鼓勵創(chuàng)新的文化的十個規(guī)則
- 16Web服務(wù)內(nèi)幕,第7部分:WSFL和遞歸組合
- 17如何讓知識員工忠字當(dāng)頭?
- 18石家莊OA信息化方面的站點資源!
- 19微軟將于10月采取訂閱銷售模式
- 20解讀德魯克
- 21Borland加快Web服務(wù)的分發(fā)速度
- 22石家莊OA信息化如何做到親身實踐
- 23石家莊泛普OA軟件管理門戶登錄
- 24微軟、PwC和納斯達克聯(lián)合推出財報Web服務(wù)
- 25[理論] 信息管理的四種模式:從獨裁走向民主(AMT 石家莊OA信息化研究小組)
- 26TIBCO來華布道Web服務(wù)戰(zhàn)略
- 27石家莊OA信息化:挖掘企業(yè)的隱藏資源(姜鐵虎)
- 28認(rèn)識石家莊OA信息化系統(tǒng)模型,把握石家莊OA信息化系統(tǒng)實質(zhì)(BY AMT 夏敬華)
- 29泛普軟件石家莊OA信息化系統(tǒng)集成方案
- 30中小企業(yè)如何化解經(jīng)濟危機
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114