面向服務訊息直接在訊息內指定最終接收者,而非依賴傳輸層。這看似微小,實則啟用進階訊息處理(路由、中介者)。本文從零構建地址結構,推導至 WS-Addressing 標準。
郵件地址寫在信封上而非郵差腦中,同理訊息地址序列化在訊息標頭,提升處理效率、支援中介者轉發。
| 元素 | 用途 | 類比 |
|---|---|---|
| <To> | 最終接收者 + 服務 | 收件地址 |
| <From> | 初始傳送者 | 寄件人地址 |
| <FaultTo> | 錯誤通知接收端 | 退信地址 |
| <MessageID> | 全域唯一識別 (GUID) | 掛號信編號 |
| <RelatesTo> | 關聯原訊息 MessageID | 回覆信引用原編碼 |
| <ReplyTo> | 回覆訊息接收端 (可異於 From) | 「回覆至」地址 |
| <Action> | 指定處理操作 (URI) | 部門/經辦人 |
若廠商各自定義標頭(如 <MessageIdentifier>、<SendTo>、<Op>),互操作即告失敗。WS-* 規範族群透過漫長協作定義公共訊息標頭,解決廠商互操作難題,WCF 即建構於此標準之上。
<s:Header>
<MessageID>...</MessageID>
<RelatesTo>...</RelatesTo>
<To>https://wintellect.com/OrderService</To>
<Action>urn:ProcessOrder</Action>
<ReplyTo>https://wintellect.com/OrderReplyService</ReplyTo>
<From>https://wintellect.com/SendService</From>
<FaultTo>https://wintellect.com/ErrorService</FaultTo>
</s:Header>