synrc research center

Knowledge Base
Message Delivery
Signing, Queueing, Routing and Storing

WCF libraries Routing and OneWay provides capabilities of routing, storing, queueing, cipher and signing messages and data sets.

Distributed Flow

Organizational structure participants (computer systems) acts in following roles: Clients, Routers, Services, Hosts.

Clients are thouse who needs exchange Data between services through Messages pathing by Routers. Services are a set of interfaces and their implementations that receive data and doing processing. Messages store in SQL CE on Routers as MSMQ and ADO.NET. Data store in SQL Express on Services as ADO.NET.

Hosts are any of Clients, Router, Services acts as within external enpoint network connection. In Host context messages are being passed through local Pipe and MSMQ protocols.

Offline

When Message arrives on Router and routing is based on Message Headers, it is processed through MSMQ. So it will be available when destination goes online.

Durability

Data within Messages are being delivered through the network of business oriented trusted connections (Secured VPN e.g). Router can route secured messages transparently or acts as trusted partner with message access through X.509 authentication. Router holds messages and data in storage until Host goes online.

Message and Data security

Messages are being encoded by X.509 certificated between Client and nearest Host. Messages within Data are passed through network of Routers (Relying Partners) encoded or open but signed.

Notifications

Notification and signal sends through duplex channel with context of future return operation (async distributed secured call).

Topology

Services are divided on two categories: Providers and Distributors. Providers needs to receive Secured Data from any Distributor on a Subject. Distibutors logging out or tracking Secured Data and passed them through own Services chain.


         +---------+   +---------+
         | O=HONDA |   | O=MAZDA |                                        
         +---------+   +---------+                                        ^
                                                                          |
        +--------+   +--------------------+                               |
        | DC=EST |   | DC=LOGISTICCOMPANY |   ^                           | SECURED
        +--------+   +--------------------+   | REPLICATION               | BUSINESS 
                                              | OPERATIONAL               | DATA
                      +------+  +------+      | DATA                      |
                      | DC=1 |  | DC=2 |      +              +            | ROUTING
                      +------+  +------+                     | CACHE      | 
                                                             |            |
                 +-----+  +-----+  +-----+  +-----+          V            |
                 | TPC |  | TPC |  | TPC |  | WIN |                       +
                 +-----+  +-----+  +-----+  +-----+                               

                        X.509 Authentication


Addressing


      Client              Pass Router            Service Host

               PIPES          8010                 8000
    +-----+ +-------+        +-------+           +-----+
    | CN  |-| RL/MQ |--------| DC/MQ |---VPN-----|  O  |
    +-----+ +-------+        +-------+           +-----+
            embedded         external 
             router           router

Addressing and Entity Domains:

CN=Maxim.Sokhatsky — Client (From)
RL=VAIO — Local Router
MQ=INPUT — Microsoft Message Queue
DC=LOGISTICCOMPANY — Relying Party Pass-Through Router
O=HONDA — Host Services (To)
DATA=DATASET

Routing


      Client                 Pass Router DC=LOGISTICCOMPANY           
                                                             Service Host O=HONDA
             net.pipe         http 8010         http 8000
    +-----+ +-----+          +-----+           +---------+
    |  CN |-|  RL |----------| DC  |---VPN-----|  HONDA  | 
    +-----+ +-----+          +-----+        +--+---------+
            embedded        external        |
             router           router        | VPN
                                |           |
                                | VPN       |           
                                V           |   http 8001    Service Host O=MAZDA
                             +-----+--------+  +---------+ 
                             | DC  |---VPN-----|  MAZDA  | 
                             +-----+           +---------+ 
                                
                             Pass Router DC=LOGISTICCOMPANY

Router

All endpoint names starts with "O=" means all organizational units (routers or services) to whitch this router routes incoming messages. All incoming messages immideatly stores to message queue endpoint "MQ=INPUT". Its name is used internally and not instantiated in system configuration.

Each connected route-out endpoint may have connected message queue for storing messages until "O=" endpoint will be online. That endpoints name "MQ=*" with same second part of name after "=" delimiter.

MessageMover retry frozen messages on inactive output endpoints after each 30s.

                                          App.config
                                       +---------------+  
                                       | Routing Rules |
                                       +---------------+
                                           | 3                         
         net.pipe://      net.msmq://  +---------------+  4   http://       
         http://      1  +-------+  2  |  ROUTER       | ===> [Endpoint #1]  
         [Endpoint] ===> | In MQ | --> |               | ===> [Endpoint #2]  
                         +-------+     |               | ===> [Endpoint #N]  
                              ^        +---------------+  |                 
                              |                           | 5
                              | 7                         | On ERROR
                              |                           V
                            +--------------+  6  +-----------+
                            | Retry Timer  | <-- | Out MQ #1 |
                            +--------------+     | Out MQ #2 |
                                                 |   ...     |
                                                 +-----------+
                                                   net.msmq://
Last Modification: 14 Oct 2009

Privacy Policy | Feedback
Copyright © 2005–2009 synrc Research Center, Inc.