第八章 Microsoft BizTalk架構

Download Report

Transcript 第八章 Microsoft BizTalk架構

第八章 Microsoft BizTalk架構
•
•
•
•
定
•
•
•
•
•
BizTalk 簡介
BizTalk 的標準術語
BizTalk 的邏輯層模式
SOAP(Simple Object Access Protoco)通訊協
BizTalk
BizTalk
BizTalk
BizTalk
BizTalk
訊息傳送流程
文件結構
傳送協定
文件定義Schema架構
架構與其它開放標準整合應用
BizTalk簡介
•Microsoft 以XML為標準制定的標示語言
•透過網際網路傳輸之XML商業文件加以標準
化
•一種在電子商務環境的Language of
Business
BizTalk簡介(續)
•企業雙方利用BizTalk架構系統,便可以利
用網路環境進行商業溝通
•一個開放的電子商務訊息交換架構
•BizTalk架構只提供開放的傳送機制標準,
並不提供商業文件Schema內容標準
BizTalk簡介(續)
•微軟將藉重BizTalk架構以支援其 BizTalk
Server、Commerce Server及SQL Server等
下一代電子商務工具和解決方案,而在符
合BizTalk開放架構的條件下,其他業者亦
可提供相關之軟、硬體產品。
BizTalk主要包括
•技術規範:BizTalk架構之技術規範定義
使用XML之一致性方法
•標籤集合:BizTalk架構由一組"必要性"
及"選擇性"標籤所構成,這些標籤集合
使XML相關工具得以透過一致性的方法,
有效處理Biz alk文件。
BizTalk主要包括(續)
•BizTalk入口網站:該網站網址為:
http://www.biztalk.org。Biz Talk網站
主要包括BizTalk Schema儲存庫
(repository)和相關工具,其主要目的是
欲降低企業或組織,利用XML-based文件進
行資訊交換的進入障礙。值得注意的是Biz
Talk的Schema係使用微軟提議的XDR語法。
BizTalk基本架構圖
BizTalk發展方向
1. 研究描述XML文件內容的封包
2. XML訊息傳遞程序以及設計規則
3. 各使用者依據不同產業的特性及需要,訂
定其商業文件(Business Document)資訊
交易的標準(即制定各種產業專屬的訊息
Schema)
BizTalk 架構所遵循的規則
1. 利用XML-Data Reduced(XDR)格式來定義
BizTalk邏輯,Schema結構及商業訊息文
件結構,Schema的結構包含商業訊息文件
中,應包括那些元素、屬性,以及組成方
式
BizTalk 架構所遵循的規則(續)
2. 在SOAP1.1封包訊息中使用BizTalk架構標
籤
3. 定義attachment的邏輯結構,以便應用程
式自動將其編入分類目錄中
BizTalk的標準術語
一.BizTalk Framework Compliant Server
(BFC Server):
符合在BizTalk Framework規格書中,
所律定的各項訊息處理機制之服務功能
的伺服器
BizTalk的標準術語(續)
二.Application:
儲存與執行商業資料,或邏輯的商業系
統,也可以包含外加的轉換程式,及與BFC
伺服器溝通
三.Business Document:
是一份正確合法的XML文件,包含商業交易所需
的資料
BizTalk的標準術語(續)
四.Schema:
用來敘述XML文件的內容與結構的
metadta
五.BizTalk Document:
(1)Business Documents
(2)特定的BizTalk標頭項目資料
BizTalk的標準術語(續)
六.BizTag:
用來處理特定Business Document的文
件標籤集合
七.BizTalk Message:
BFC伺服器之間連線層級資料交換的基
本單元
BizTalk的標準術語(續)
八.Transport:
BFC伺服器使用的通訊機制
九.Attachment:
其他不能成為適當Business Document
的資訊格式或內容
BizTalk的邏輯層模式
•採用分層(layers)的架構
•提供相同功能且相容於BizTalk架構規格書
中的規定,就可以使用其他不同的邏輯分層
結構
BizTalk的邏輯層
1. Application(適當的轉換程式adapters)
2. BFC伺服器
3. Transport(通訊機制)
BizTalk分層架構圖
SOAP通訊協定
 SOAP(Simple Object Access Protocol)
的組成
1. The SOAP envelop:
定義一個封包結構及如何處理的方法,包SOAP訊
息內容
SOAP通訊協定(續)
2. The SOAP encoding rules:
定義一組可描述應用程式的資料型態規則
3. The SoAP RPC representation:
能處理遠端程序呼叫與回應的方法
SOAP訊息結構
SOAP訊息實例
<SOAP-ENV:ENVELOPE
xmlns:SOAPENV=“http://Schemas.xmlsoap.org/soap/envelope/”
SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/e
ncoding/"/>
<SOAP-ENV:Header>
<t:Transaction xmlns:t="some-URI" SOAPENV:mustUnderstand="1">
5
</t:Transaction>
</SOAP-ENV:Header>
SOAP訊息實例(續)
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DEF</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP的優點
1. 跨平台
2. 標準化
3. Programming model 無關
 SOAP可望成為溝通各種 programming
model 或平台的協定標準
BizTalk訊息傳送流程
BizTalk訊息傳送流程(續)
1. 產生傳送BizTalk需求,並發生應用程式的
事件
2. 應用程式或轉換程式會依照已經發佈的
BizTalk Message 的Schema來產生一個以
SOAP標準定義的BizTalk Document
BizTalk訊息傳送流程(續)
3. 應用程式將所產生的BizTalk Document
傳送給BFC 伺服器
4. 發送 BFC 伺服器將BizTalk Document加
上傳輸所需要的Transport資訊,成為
BizTalk Message 傳送給目的地的 BFC
伺服器
BizTalk訊息傳送流程(續)
5. 目的地的 BFC 伺服器收到BizTalk
Message 後,先對於此BizTalk Message做
驗證,然後再將此BizTalk Message 送往
目的地應用程式處理
簡單的BizTalk文件例子
<SOAP-ENV:ENVELOPE
xmlns:SOAPENV=“http://Schemas.xmlsoap.org/soap/envelope/”
xmlns:xsi="http://www.w3.org/1999/XMLSchemainstance">
<SOAP-ENV:Header>
<dlv:delivery SOAP-ENV:mustUnderstand="1"
xmlns:dlv="http://Schemas.biztalk.org/btf-20/delivery"
xmlns:agr="http://www.tradingagreements.org/types/">
簡單的BizTalk文件例子(續)
<dlv:to>
<dlv:address
xsi:type="agr:department">Book Order
Department</dlv:address>
</dlv:to>
<dlv:from>
<dlv:address
xsi:type="agr:organization:>Booklovers
Anonymous</dlv:address>
<dlv:from>
</dlv:delivery>
<prop:properties SOAP-ENV:mustUnderstand="1"
xmlns:prop="http://Schemas.biztalk.org/
btf-2-0/properties">
簡單的BizTalk文件例子(續)
<prop:identity>uuid:74b9f5d0-33fb-4a81-b02b5b760641c1d6</prop:identity>
<prop:sentAt>2000-0514T03:00:00+08:00<prop:sentAt>
<prop:expiresAt>2000-05T04:00:00+08:00
</prop:expiresAt>
<prop:topic>http://electocommerce.org/purchase_or
der/
</prop:topic>
</prop:properties>
簡單的BizTalk文件例子(續)
</SOAP-ENV:Header>
<SOAP-ENV:body>
<po:purchaseOrder
xmlns:po="http://electrocommerce.org/
purchase_order/">
<po:Title>Essential
BizTalk</po:Title>
</po:PurchaseOrder>
</SOAP-ENV:body>
</SOAP-ENV:Envelope>
BizTalk 文件結構
1. 為一個特定應用的Business Document,此
文件擁有為了該應用所定義的XML
Namespace,此Business Document 為SOAP
Message的主體
BizTalk 文件結構(續)
2. BizTalk 的特定SOAP標頭項目<delivery>
與<properties>,使用標準BizTag
Namespace 所定義BizTages及BizTalk規
格書所定義的Schema及語意(semantics)
來組成
3. BizTalk Document的標頭部分(<SOAPENV:Header>…</SOAP-ENV:Header>)
BizTalk 文件結構(續)
4. BizTalk Document的主體部分(<SOAPENV:Body>…< /SOAP-ENV:Body>)
5. 文件內部的BizTags是沒用的,只會當成被
處理的資料
BizTalk文件主體
•SOAP訊息的<Body>元素構成一個BizTalk
Document
•相關的Business Documents通常都會分享
內容,SOAP針對資料可讓多個來源參考
(multipe references)有一個很直接的機
制,它使用XML的ID屬性和相關URIs
BizTalk Document 標頭項目
1. 文件繞徑與遞送
2. 文件辨識與屬性
3. 文件類別
4. 程序管理
文件繞徑與遞送
a.繞徑(Document routing)使用
<delivery>BizTag
b.包含BizTalk Document的來源和目標資訊
c.提供穩定遞送(reliable delivery)所需要
的資訊
文件繞徑與遞送-子標籤
•<to>包含BizTalk Document要傳送到的商
業實體伺服器或應用程式
•<from>包含BizTalk Document從那個商業
實體伺服器或應用程式傳送出來的資訊
文件繞徑與遞送-子標籤(續)
•<address>包含商業實體的識別名稱,使用
的元素必須要包含xsi:type屬性
•<reliability>包含穩定遞送 BizTalk
Document 所需要的資訊
文件繞徑與遞送-子標籤(續)
•<sendReceiptTo>指定transport address
的URL (一般是在來源商業實體),此為
BizTalk Document 的收據,需要回寄的地
址
•<receiptRequiredBy>包含需要回寄收據給
接收BizTalk Document 的伺服器的絕對立
即時間
文件繞徑與遞送-例子
<dlv:delivery SOAP-ENV:mustUnderstand="1"
xmlns:SOAPENV=“http://Schemas.xmlsoap.org/soap/envelope/”
xmlns:xsi="http://www.w3.org/1999/XMLSchemainstance"
xmlns:dlv="http://Schemas.biztalk.org/btf-20/delivery"
xmlns:agr="http://www.tradingagreements.org/types/">
<dlv:to>
<dlv:address xsi:type="agr:department">Book
OrderDepartment
</dlv:address>
</dlv:to>
文件繞徑與遞送-例子(續)
<dlv:from>
<dlv:address
xsi:type="agr:organization:>Booklovers Anonymous
</dlv:address>
<dlv:from>
<dlv:reliability>
<dlv:sendReceiptTo>www.we-lovebooks.org/po/confirmations
</dlv:sendReceiptTo>
<dlv:receiptRequiredBy>2000-0514T03:00:00+08:00
</dlv:receiptRequiredBy>
</dlv:reliability>
</dlv:delivery>
文件辨識與屬性
•在SOAP標頭訊息中的
<properities>BizTag指定了文件辨識其
他屬性的資訊
•<properties>元素的編碼必須永遠包含
SOAP-ENV:mustUnderstand=“1”屬性
文件辨識與屬性-子標籤
•<identity>是一個URI參考,可以用於登入
(logging),追蹤(tracking),錯誤處理
(error handing)或其他文件的處理及相關
需求(correlation requirements),當成唯
一識別BizTalk Document的目的
•<sentAt>傳送文件的時間戳記
文件辨識與屬性-子標籤(續)
•<topic>包含URI參考(URI reference),此
URI參考是用來辨識BizTalk Document的整
體目的
•<expiresAt>為文件的過期時間戳記
文件辨識與屬性-例子
<prop:properties SOAP-ENV:mustUnderstand="1"
xmlns:SOAPENV=“http://Schemas.xmlsoap.org/
soap/envelope/”
xmlns:dlv="http://Schemas.biztalk.org/btf-2-0/
properties">
<prop:identity>uuid:74b9f5d0-33fb-4a81-b02b5b760641c1d6
</prop:identity>
文件辨識與屬性-例子(續)
<prop:sentAt>2000-0514T03:00:00+08:00<prop:sentAt>
<prop:expiresAt>2000-05T04:00:00+08:00
</prop:expiresAt>
<prop:topic>http://electocommerce.org/purchase_o
rder/
</prop:topic>
</prop:properties>
文件類別
•<manifest>BizTag是用來指定文件類別
資訊,用來檢查BizTalk內容的一致性,完
整性及驗證機制
文件類別-子標籤
• <reference>
1. <uri>是一個URI參考值
2. <Description>是Bussiness Document 或
attachment的文件的文件描述
文件類別-例子
<fst:manifest
xmlns:fst="http://schemas.biztalk.org/btf-2-0
/manifest">
<fst:reference
fst:uri="#insurance_claim_document_id">
<fst:description>Insurance
Claim<fst:description>
</fst:reference>
<fst:reference
fst:uri="CID:[email protected]">
文件類別-例子(續)
<fst:description>Facsimile of Signed Claim
Document
</fst:description>
</fst:reference>
<fst:reference
fst:uri="CID:[email protected]">
<fst:description>Photo of Damaged Car
</fst:description>
</fst:reference>
</fst:manifest>
程序管理-子標籤
•<process>BizTag指定程序管理(Process
Management)資訊,包含商業處理的資訊
–<type>包含一個URI參考,此參考代表所使用
的商業程序的類型
–<instance>包含一個URI參考,此參考用來辨
識一個BizTalk Document相關的特定商業程
序實體
程序管理-子標籤(續)
•<handle>是一個URI參考,此參考提供進一
步的資訊,這些是辨識商業程序實體中的步
驟或是進入點時所需要的資訊
程序管理-例子
<prc:process SOAP-ENV:mustUnderstand="1"
xmlns:SOAPENV=“http://Schemas.xmlsoap.org/
soap/envelope/”
xmlns:prc="http://Schemas.biztalk.org/btf-20/Process">
<prc:type>purchasing:Book_Purchase_Process</prc:type>
<prc:instance>purchasing:Book_purchase_process#12345
<prc:instance>
<prc:handle>port:po_receiver</prc:handle>
</prc:process>
附加Attachments的BizTalk
Documents
•多重部分的MIME結構(Multipart MIME
Structure):一個主要的BizTalk Document包
含一個或多個attachments,並使用mutipart
MIME structure來傳送
•Attachments的載貨單結構(Manifest
Structure for Attachments):在<mainifest>
標頭項目珠<reference>元素的關係,利用
<reference>中的uri屬性包含相關attachment
的位置
BizTalk 傳送協定
•一般使用HTTP通訊協定來傳送
•但是HTTP回應的意義與內容只是表示傳送
訊息的送達
•套用SOAP 1.1 HTTP binding規則
使用HTTP的例子
POST /bookPurchase HTTP/1.1
HOST: www.we-have-books.com
Content-Type: text/xml;charset="utf-8"
Content-Length: nnnn
SOAPAction:
http://electrocommerce.org/purchase_order/
<?xml version='1.0' ?>
<SOAP-ENV:ENVELOPE
*********(請參考"簡單的BizTalk文件
例子")
</SOAP-ENV:Envelope>
BizTalk文件定義Schema架構
1. 傳送標頭項目(Delivert header entry)
2. 屬性標頭項目(Properties header entry)
3. 載貨單標頭項目(Manifest header entry)
4. 程序標頭項目(Process header entry)
BizTalk文件定義Schema架構(續)
5. 收據標頭項目(Receipt header entry)
6. SOAP 1.1 Envelope for BizTalk Document
7. SOAP 1.1 Envelope for BizTalk Receipt
XML的註冊機制與儲存庫
•註冊機制:
一個用來「註冊」XML文件、架構及相關中介
資料的機制,這些資料可經由查詢或瀏覽XML
註冊目錄取得
•儲存庫
儲存庫包含被註冊所指向的一個或一群分散
式位址,其中包存放了與文件相關的型態定義,
可以把儲存庫視為schema libary
著名的XML註冊與儲存庫網站
•XML.org儲存庫:
http://www.xml.org/xml/registry.jsp
•BizTalk.org儲存庫:
http://www.biztalk.org/library/libra
ry.asp