320 likes | 463 Views
ebMS3 Part 2 Figures. Part 2. MSH intermediary. PUSH Scenarios. MSH A. MSH B. (MessageID-preserving Forward). M1. M1. 1-way from A to B 1-way/push: A-Int 1-way/push: Int-B Int only forwards the message M1. HTTP 200. (status codes / Faults are only for each leg). M1.
E N D
ebMS3 Part 2 Figures Part 2
MSH intermediary PUSH Scenarios MSH A MSH B (MessageID-preserving Forward) M1 M1 • 1-way from A to B • 1-way/push: A-Int • 1-way/push: Int-B • Int only forwards the message M1 HTTP 200 (status codes / Faults are only for each leg) M1 • 1-way from A to B, end-to-end reliable • 1-way/push: A-Int • 1-way/push: Int-B • Int forwards theasynchronous • RM Ack M1 HTTP 200 HTTP 200 (forward the RM Ack) RM Ack1 RM Ack1 M1 M1 • 1-way from A to B, robust • 1-way/push: A-Int • 1-way/push: Int-B • Int forwards the HTTP status code / • SOAP fault (forward M1, wait for the status code / Fault and forward it) HTTP 500 / Fault HTTP 500 / Fault
MSH intermediary PULL Scenarios MSH A MSH B (MessageID-preserving Forward) PullRequest • 1-way from B to A, pulled • Two “synchronized pulls” • 1-way/pull: A-Int, synchronized with: • 1-way/pull: Int-B PullRequest (forward the PullRequest, wait for the pulled msge) M1 M1 • Reliable variant: • Replace “M1” by “M1 + RM Ack” • Optional RM Ack for M1 is pushed • from A to B PullRequest (PullRequest is NOT forwarded) • 1-way from B to A, pulled / decoupled • Two non-synchronized pulls, only connected by an MPC in intermediary • 1-way/pull: A-Int, decoupled from: • 1-way/pull: Int-B PullRequest Whatever message in the Intermediary MPC PullRequest M1 (M1 posted in the Intermediary MPC) Whatever message, here M1 • Reliable variant: • No end-to-end reliability, but for each leg • Intermediary must have RM capability
MSH Receiver MSH Sender The Interconnected Hubs model MSH Sender/ receiver MSH Sender/ receiver Pull + send I-Cloud MSH Intermediary Non-addressable endpoint MSH Sender/ receiver MSH Intermediary MSH Intermediary MSH Intermediary MSH Sender/ receiver
MSH Receiver MSH Sender The Hub-and-spoke model MSH Sender/ receiver MSH Sender/ receiver MSH Intermediary MSH Sender/ receiver Pull MSH Sender/ receiver Non-addressable endpoint
MSH Sender/ receiver Intermediary-cloud MSH Router Intermediary Push Pull MSH Sender/ receiver MSH gateway Intermediary MSH gateway Intermediary Push MSH Router Intermediary Push addressable Endpoint MSH Non-addressable Endpoint MSH
MSH Sender/ receiver Configuration of Intermediaries MSH Sender/ receiver MSH Sender/ receiver MSH Sender/ receiver MSH Sender/ receiver MSH Sender/ receiver Intermediary-cloud MSH Sender/ receiver MSH Intermediary Pull MSH Sender/ receiver MSH gateway Intermediary MSH gateway Intermediary Push Routing function Push Non-addressable endpoint Routing function Routing function • Message profile • (toParty, Service, • Action….) • MPC id • MEP (Push / Pull) • level of RM • level of Security • Message profile • (toParty, Service, • Action….) • MEP Control Info • o MPC id • o MEP (Push / Pull) • o security info (e.g. for Pull authorization) • Message profile • (toParty, Service, • Action….) • MPC id • MEP (Push / Pull) • level of RM • level of Security • Message profile • (toParty, Service, • Action….) • MEP Control Info • o MPC id • o MEP (Push / Pull) • o security info (e.g. for Pull authorization) Set of “end-to-end” PModes for each endpoint MSH Set of partial PModes for Communication with endpoint MSHs Set of “end-to-end” PModes for each endpoint MSH Set of partial PModes for Communication with endpoint MSHs
End-to-end RM Sequence establishment: “demand-driven” option Enpoint MSH 1 “Gateway” intermediary MSH “Gateway” intermediary MSH Enpoint MSH 1 Submit msg RM CreateSeq RM CreateSeq + ebms hdr HTTP 200 Push option RM CreateSeq RM CSR “Router” MSHintermediaries PullRequest RM CreateSeq RM CSR + ebms hdr RM CSR RM CSR + ebms hdr Pull option Push option RM CSR PullRequest Pull option RM CSR
Asynchronous Routing of ebMS Signals (Errors, Receipts), Option 1 Enpoint MSH A “Gateway” intermediary MSH 1 “Gateway” intermediary MSH 2 Enpoint MSH B User Message Submit User msg HTTP 200 User Message Push option User Message Signal (Receipt or Error) “Router” MSH intermediaries PullRequest Signal + “dummy” eb header element User Message Signal (Receipt or Error) I-Cloud Routing Functions: 1. ebMS header data for User msgs 2. ebMS header data for Signal msgs (reverse) Signal + “dummy” eb header element Pull option Signal (Receipt or Error) After removal of routing eb header Push option PullRequest Pull option Signal (Receipt or Error) After removal of routing eb header
Asynchronous Routing of ebMS Signals (Errors, Receipts), Option 2 Enpoint MSH A “Gateway” intermediary MSH 1 “Gateway” intermediary MSH 2 Enpoint MSH B Submit User msg User Message HTTP 200 Gateway inserts a wsa:ReplyTo header, and :endpointmsh” ref. parameter Push option User Message with wsa headers User Message User msg : Gateway removes Wsa headers. Signal msg : Gateway adds Wsa:To header. Signal (Receipt or Error) PullRequest User Message Signal msg : Gateway removes Wsa headers Signal (Receipt or Error) I-Cloud Routing Functions: 1. ebMS header data 2. Intermediary URL (wsa:To) Pull option Signal (Receipt or Error) After removal of wsa headers Push option PullRequest Pull option Signal (Receipt or Error) After removal of wsa headers
Asynchronous Routing of ebMS Signals by a Hub Enpoint MSH A Hub intermediary MSH Enpoint MSH B User Message M1 Submit User msg HTTP 200 Hub determines the routing and communication parameters for M1 (and related Signals) based on PMode data Push option User Message M1 Signal (Receipt or Error) PullRequest User Message M1 Signal (Receipt or Error) Pull option Push option Signal (Receipt or Error) PullRequest Pull option Signal (Receipt or Error)
Asynchronous Routing of Synchronous ebMS Signals & Responses Enpoint MSH A Hub intermediary MSH Enpoint MSH B User Message M1 Submit User msg HTTP 200 Hub has routing capability for the Request user message, Based on eb header Push option User Message M1 Signal (Receipt or Error) PullRequest User Message M1 Signal (Receipt or Error) Pull option Push option Signal (Receipt or Error) PullRequest Pull option Signal (Receipt or Error)
Asynchronous Routing of ebMS Signals & ebMS User Responses • Hub relates Response message to previous eb:MessageId (M1) based on RefToMessageId. Enpoint MSH A Hub intermediary MSH Enpoint MSH B User Message M1 Submit User msg HTTP 200 • Hub has routing capability for the Request UM (user message M1) based on eb header. • Hub keeps association UM@pmode eb:MessageId. Push option User Message M1 Signal message (Receipt or Error) or User message PullRequest User Message M1 Signal message (Receipt or Error) or User message Push option Signal message (Receipt or Error) or User message Pull option PullRequest • Hub knows association UM@pmode MSH A URL or MPC in case of pulling. Pull option Signal message (Receipt or Error) or User message
MSH Sender/ receiver Intermediary-cloud Push Pull MSH Sender/ receiver MSH [gateway] Intermediary MSH [gateway] Intermediary Push Push addressable Endpoint MSH Non-addressable Endpoint MSH
RM sequence #1 RM sequence #2 Intermediary-cloud Endpoint MSH RM bridge MSH Intermediary MSH Intermediary Endpoint MSH
Two-tiered Reliable Multihop Enpoint MSH A “RM bridge” intermediary MSH Last intermediary MSH Enpoint MSH B Submit User msg wsrm:CreateSequence wsrm:CSR #1 User Message A (over RM Seq #1) wsrm:CreateSequence + UM header wsrm:CreateSequence wsrm:Ack #1 User Message B (over RM Seq #1) wsrm:CSR #2 wsrm:CSR #2 + UM header wsrm:Ack #1 User Message A (over RM Seq #2) User Message A (RM Seq #2) wsrm:Ack #2 wsrm:Ack #2 User Message B (over RM Seq #2) PullRequest (Error channel) Pull option Eb:deliveryFailure for UM B
Multi-hop RM Sequence Establishment Enpoint MSH A First intermediary MSH Last intermediary MSH Enpoint MSH B wsrm:CreateSequence + wsa Ref “routing” Parameters wsrm:CreateSequence + wsa:Ref Par Eb:PullRequest (mpc) wsrm:CSRef Params include MPC. Last Intm. assigns the wsrm:CS to a Pull channel for this MPC. Pull option wsrm:CS + wsa:Ref Par + EBMS:0006 warning wsrm:CS + wsa:Ref Par Push option Case of Direct Addressing (wsa:To) wsrm:CSR + wsa: Ref Params (from CS AcksTo) NOTE: sent over back-channel in case of Pushed CS wsrm:CSR + wsa:To (from CS AcksTo) wsrm:CSR + wsa:RefPar (from CS AcksTo) Push option wsrm:CSR + wsa:RefPar (from CS AcksTo) Eb:PullRequest (mpc) Pull option I-Cloud wsrm:CSR + wsa:RefPar (from CS AcksTo)
Multi-hop RM Acknowledgments Enpoint MSH A First intermediary MSH Last intermediary MSH Enpoint MSH B eb:PullRequest + wsrm:SequenceAckt eb:UserMessage eb:UserMessage (over RM Seq) Pull option eb:UserMessage Push option eb:UserMessage Case of Direct Addressing (wsa:To) wsrm:SequenceAck + wsa:To (from CS AcksTo) NOTE: sent over back-channel in case of Pushed User message wsrm:SequenceAck + wsa:To (from CS AcksTo) wsrm:SequenceAck + eb:routinginfo (from CS AcksTo) Push option wsrm:SequenceAck + eb:routinginfo eb:PullRequest (mpc) Pull option I-Cloud wsrm:SequenceAck + eb:routinginfo
Multi-hop User Messages Enpoint MSH A First intermediary MSH Last intermediary MSH Enpoint MSH B eb:UserMessage NOTE: routing based on eb:UserMessage content eb:UserMessage eb:PullRequest Pull option eb:UserMessage Push option eb:UserMessage I-Cloud
Multi-hop control model Path origin MSH Path destination MSH I-Cloud eb:UserMessage eb:UserMessage First intermediary MSH Last intermediary MSH Edge hop (1st hop) Edge hop (last hop) I-Cloud hops Transfer controlled by PMode Transfer controlled by Routing Function Transfer controlled by PMode
One-Way Multi-hop MEPs : Sender-pushing Edge Bindings MSH 1 MSH 2 I-Cloud Push eb:UserMessage Push eb:UserMessage One-Way / Push Multihop One-way Case 1 (first-and-last-push) One-Way / Push eb:PullRequest Push eb:UserMessage One-Way / Pull One-Way / Push Pulled eb:UserMessage Multihop One-way Case 2 (first-push-last-pull)
One-Way Multi-hop MEPs : Sender-pulling Edge Bindings (1) MSH 1 MSH 2 I-Cloud eb:PullRequest eb:PullRequest One-Way / Pull Routed PullRequest One-Way / Pull Pulled eb:UserMessage Pulled eb:UserMessage Multihop One-way Case 3a (first-and-last-pull) eb:PullRequest eb:PullRequest push One-Way / Pull pull pull One-Way / Pull Pulled eb:UserMessage Pulled eb:UserMessage Routing possibly involving Pushes and Pulls Multihop One-way Case 3b (first-and-last-pull)
One-Way Multi-hop MEPs : Sender-pulling Edge Bindings (2) MSH 1 MSH 2 I-Cloud Push eb:UserMessage eb:PullRequest push One-Way / Pull pull pull One-Way / Push Pulled eb:UserMessage Routing possibly involving Pushes and Pulls Multihop One-way Case 4 (first-pull-last-push)
Two-Way Multi-hop MEPs : Asynchronous Edge Bindings I-Cloud MSH 1 MSH 2 Multihop Two-way Case 1 (Request-push-last-push And Reply-push-last-push) Push eb:UserMessage Push eb:UserMessage Two-Way / Push-and-Push Two-Way / Push-and-Push Push (response) eb:UserMessage Push (response) eb:UserMessage eb:PullRequest Push eb:UserMessage Pulled eb:UserMessage Two-Way / Push-and-Pull Two-Way / Pull-and-Push eb:PullRequest Push (response) eb:UserMessage Multihop Two-way Case 2 (Request-push-last-pull And Reply-push-last-pull) Pulled eb:UserMessage
Two-Way Multi-hop MEPs : Synchronous Edge Bindings I-Cloud MSH 1 MSH 2 Multihop Two-way Case 3 (Request-push-last-sync And Reply-last-pull) Push eb:UserMessage Push eb:UserMessage Two-Way / Push-and-Pull Two-Way / Sync eb:PullRequest (Sync response) eb:UserMessage Pulled eb:UserMessage Push eb:UserMessage Push eb:UserMessage Two-Way / Sync Two-Way / Sync (Sync response) eb:UserMessage (Sync response) eb:UserMessage Multihop Two-way Case 4 (first-sync-last-sync)
General Multi-hop MEP Model Sending Enpoint MSH Receiving Enpoint MSH First intermediary MSH Last intermediary MSH eb:UserMessage eb:PullRequest Pull option eb:UserMessage I-Cloud Push option eb:UserMessage
Push Multi-hop MEPs MSH 1 MSH 2 I-Cloud Push eb:UserMessage Multihop One-way (push only) Push eb:UserMessage One-Way / Push One-Way / Push Push eb:UserMessage Push eb:UserMessage Multihop Two-way (push only) Two-Way / Push-and-Push Two-Way / Push-and-Push Push (response) eb:UserMessage Push (response) eb:UserMessage
Mixed Push and Pull Multi-hop MEPs I-Cloud MSH 1 MSH 2 eb:PullRequest Multihop One-way (combining push and pull) Push eb:UserMessage One-Way / Pull One-Way / Push Pulled eb:UserMessage eb:PullRequest Push eb:UserMessage Multihop Two-way (combining push and pull) Pulled eb:UserMessage Two-Way / Push-and-Pull Two-Way / Pull-and-Push eb:PullRequest Push (response) eb:UserMessage Pulled eb:UserMessage Push eb:UserMessage Push eb:UserMessage Multihop Two-way (combining Push, sync and pull) Two-Way / Push-and-Pull Two-Way / Sync eb:PullRequest (Sync response) eb:UserMessage Pulled eb:UserMessage
Multi-hop User Message Replies (for Two-way MEPs) Enpoint MSH A First intermediary MSH Last intermediary MSH Enpoint MSH B I-Cloud eb:UserMessage eb:UserMessage (request in a Two-way MEP) NOTE: may have wsa:ReplyTo that specifies explicitly the URL of MSH A (in the EPR) eb:PullRequest Pull option eb:UserMessage Push option eb:UserMessage Case of Direct Addressing eb:UserMessage (reply) + optional wsa:To (from wsa:ReplyTo), Case of Sync Reply Push option eb:UserMessage (reply) NOTE: over last-hop back-channel eb:UserMessage (reply) eb:UserMessage (reply) Case of Push Reply Pull option eb:UserMessage (reply) eb:PullRequest (mpc) eb:UserMessage (reply)
Multi-hop Signal Messages as Responses Enpoint MSH A First intermediary MSH Last intermediary MSH Enpoint MSH B I-Cloud eb:UserMessage eb:UserMessage NOTE: may have wsa:ReplyTo that either specifies: - Explicitly the URL of MSH A (in the EPR) - The EPR Ref parameters for MSH A (RoutingInput) eb:PullRequest Pull option eb:UserMessage Push option eb:UserMessage Case of Direct Addressing eb:Receipt or eb:Error Message + optional wsa:To (from wsa:ReplyTo), or with URL from the PMode for this MEP) Case of Sync Reply Push option eb:Receipt / eb:Error + eb:routinginfo NOTE: sent over last-hop back-channel eb:Receipt / eb:Error + eb:routinginfo eb:Receipt / eb:Error + eb:routinginfo (from either wsa:ReplyTo, or from PMode) Case of Push Reply Pull option eb:Receipt / eb:Error + eb:routinginfo eb:PullRequest (mpc) eb:Receipt / eb:Error + eb:routinginfo
Response Routing: ebMS Messages (2-way MEPs, Errors, Receipts) Enpoint MSH A “RM bridge” intermediary MSH Last intermediary MSH Enpoint MSH B Submit User msg wsrm:CreateSequence wsrm:CSR #1 User Message A (over RM Seq #1) wsrm:CreateSequence + UM header wsrm:CreateSequence wsrm:Ack #1 User Message B (over RM Seq #1) wsrm:CSR #2 wsrm:CSR #2 + UM header wsrm:Ack #1 User Message A (over RM Seq #2) User Message A (RM Seq #2) wsrm:Ack #2 wsrm:Ack #2 User Message B (over RM Seq #2) PullRequest (Error channel) Pull option Eb:deliveryFailure for UM B
Response Routing: non - ebMS Messages (RM Acks, RM lifecycle messages) Enpoint MSH A “RM bridge” intermediary MSH Last intermediary MSH Enpoint MSH B Submit User msg wsrm:CreateSequence wsrm:CSR #1 User Message A (over RM Seq #1) wsrm:CreateSequence + UM header wsrm:CreateSequence wsrm:Ack #1 User Message B (over RM Seq #1) wsrm:CSR #2 wsrm:CSR #2 + UM header wsrm:Ack #1 User Message A (over RM Seq #2) User Message A (RM Seq #2) wsrm:Ack #2 wsrm:Ack #2 User Message B (over RM Seq #2) PullRequest (Error channel) Pull option Eb:deliveryFailure for UM B