1. FABRIQ – архитектура за високопроизводителни разпределени изчисления, базирана на съобщения Светлин Наков www.devbg.org
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17. Мрежи от опашки Network Gateway Transform /net/node1 Preproc. Balance /net/node2 Match /net/node3 Augment /net/node4 Match /net/node3
18.
19.
20.
21. Парсване на съобщенията Message <soap:Envelope xmlns:soap="..."> <soap:Header> <wsu:Timestamp /> <wsa:From /> <wsa:To /> <wsa:ReplyTo /> <wsse:Confidentiality/> <wsse:Integrity /> </soap:Header> <soap:Body> <m:MyData> BE56239CE3E78AC56 717EA08B1EF9... NetworkStream TextReader XmlReader Header Collection Timestamp From To ReplyTo Confidentiality Integrity Body Properties Конструкторът на съобщението парсва хедърите в колекция от хедъри Парсването спира при достигане на тялото на съобщението. Свойството " Body " съдържа XmlReader на позицията на тялото.
22.
23. Поточни линии ( pipelines) Head IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Tail IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) MyMessageHandler IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Pipeline IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) IMessageHandler ProcessMessage(Message msg) IMessageHandler
24. Поточни линии – композиция Head IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Tail IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Pipeline IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) IMessageHandler ProcessMessage(Message msg) Head IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Tail IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) MyMessageHandler IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg) Pipeline IMessageHandler IChainableMessageHandler Next ProcessMessage(Message msg)
32. Адресация във FABRIQ to: /net/node2 Маршрути to: /net/node3 action: actionA action: actionB to: /net/node4 http://.. msmq: //... Получатели /net/node1
33. В един FABRIQ възел /net/node1 Начало Край Примитив Примитив Pipeline Gate- keeper Router Sender Port Queue Listener Проверка на сигурността Избор на маршрут Изпращане
34. Хостинг на възлите Config Manager MSMQ Listener Enterprise Services Runtime (dllhost.exe) Process Initializer / Process Controller TCP Listener Enterprise Services Port Thread Pool Request Queue Process Listeners /net/node1 Начало Край Примитив Примитив Pipeline Gate- keeper Router Sender Port AppDomain /net/node2 Начало Край Handler Примитив Pipeline Gate- keeper Router Sender Port AppDomain
35.
36.
37. Политики и договори <soap:Envelope> <soap:Header> … </soap:Header> <soap:Body> … </soap:Body> </soap:Envelope> Договор за услугата Договор за съобщението управлява управлява Политика – правила за услугите : - Изисквания : " Ти трябва ... " - Възможности : " Аз мога … " - Предпочитания : " Предпочитам ... " WS-Policy WS-PolicyAssertions WS-PolicyAttachment Договор – съдържание и функция на съобщенията : - Схеми : дефинират типовете - WSDL: дефинира действията W3C XML Schema WSDL 1.1 / 1.2 Край ( endpoint) XML схема WSDL политика
39. Сигурността във FABRIQ AppDomain Config Output Policy Input Policy /net/node1 Начало Край Примитив Примитив Pipeline Gate- keeper Router Sender Port AppDomain Понякога WSE не се ползва за по-добра производителност Destination has Policy? Yes Send Message No Build Message Output Policy WSE Pipeline Input Policy WSE Pipeline Message has Security elements? Node has defined Policy? Yes Pipeline No OR