42
FABRIQ – FABRIQ – архитектура за архитектура за високопроизводителни високопроизводителни разпределени разпределени изчисления, изчисления, базирана на съобщения базирана на съобщения Светлин Наков www.devbg.org

FABRIQ - Presentation Nakov 0.8

Embed Size (px)

Citation preview

Page 1: FABRIQ - Presentation Nakov 0.8

FABRIQ –FABRIQ – архитектура за архитектура за високопроизводителни високопроизводителни

разпределени изчисления,разпределени изчисления,базирана на съобщениябазирана на съобщения

Светлин НаковСветлин Наков

www.devbg.orgwww.devbg.org

Page 2: FABRIQ - Presentation Nakov 0.8

СъдържаниеСъдържаниеСъдържаниеСъдържание

• Web-услуги, WSE, SOA и IndigoWeb-услуги, WSE, SOA и Indigo

• Агентно-ориентирани архитектуриАгентно-ориентирани архитектури

• Мрежи от опашкиМрежи от опашки

• Продуктът FABRIQПродуктът FABRIQ• СъобщенияСъобщения

• Обработчици на съобщенияОбработчици на съобщения

• Поточни линии (pipelines)Поточни линии (pipelines)

• Действия и договориДействия и договори

• АдресацияАдресация

• Хостинг на възлитеХостинг на възлите

• СигурностСигурност

• Архитектурни перспективи пред FABRIQАрхитектурни перспективи пред FABRIQ

• Web-услуги, WSE, SOA и IndigoWeb-услуги, WSE, SOA и Indigo

• Агентно-ориентирани архитектуриАгентно-ориентирани архитектури

• Мрежи от опашкиМрежи от опашки

• Продуктът FABRIQПродуктът FABRIQ• СъобщенияСъобщения

• Обработчици на съобщенияОбработчици на съобщения

• Поточни линии (pipelines)Поточни линии (pipelines)

• Действия и договориДействия и договори

• АдресацияАдресация

• Хостинг на възлитеХостинг на възлите

• СигурностСигурност

• Архитектурни перспективи пред FABRIQАрхитектурни перспективи пред FABRIQ

Page 3: FABRIQ - Presentation Nakov 0.8

Какво е услуга?Какво е услуга?Какво е услуга?Какво е услуга?

• В реалния свят услугата е:В реалния свят услугата е:

• единица работа, извършвана от единица работа, извършвана от доставчик на услугидоставчик на услуги

• предоставя някакъв желан резултат на предоставя някакъв желан резултат на клиента (консуматор на услуги)клиента (консуматор на услуги)

• с ясно дефинирани входни параметри и с ясно дефинирани входни параметри и изходни резултатиизходни резултати

• лесна за използванелесна за използване

• винаги достъпнавинаги достъпна

• има характеристики за качество (цена, има характеристики за качество (цена, време за извършване, ефективноствреме за извършване, ефективност и т.н.)и т.н.)

• В реалния свят услугата е:В реалния свят услугата е:

• единица работа, извършвана от единица работа, извършвана от доставчик на услугидоставчик на услуги

• предоставя някакъв желан резултат на предоставя някакъв желан резултат на клиента (консуматор на услуги)клиента (консуматор на услуги)

• с ясно дефинирани входни параметри и с ясно дефинирани входни параметри и изходни резултатиизходни резултати

• лесна за използванелесна за използване

• винаги достъпнавинаги достъпна

• има характеристики за качество (цена, има характеристики за качество (цена, време за извършване, ефективноствреме за извършване, ефективност и т.н.)и т.н.)

Page 4: FABRIQ - Presentation Nakov 0.8

Web-Web-услугиуслугиWeb-Web-услугиуслуги

• Web-Web-услугите моделират услугите от услугите моделират услугите от реалния святреалния свят

• програмни компоненти, достъпни програмни компоненти, достъпни отдалечено през отдалечено през WebWeb

• модел за изпълнение “заявка-отговор”модел за изпълнение “заявка-отговор”• клиентът поръчва, услугата изпълнява клиентът поръчва, услугата изпълнява

поръчката и връща резултатпоръчката и връща резултат• използват отворени стандарти за използват отворени стандарти за

комуникация – комуникация – HTTP, XML HTTP, XML ии SOAP SOAP• сами описват интерфейса си за достъп сами описват интерфейса си за достъп

чрез езика чрез езика WSDLWSDL• могат да бъдат търсени чрез могат да бъдат търсени чрез UDDIUDDI

• Web-Web-услугите моделират услугите от услугите моделират услугите от реалния святреалния свят

• програмни компоненти, достъпни програмни компоненти, достъпни отдалечено през отдалечено през WebWeb

• модел за изпълнение “заявка-отговор”модел за изпълнение “заявка-отговор”• клиентът поръчва, услугата изпълнява клиентът поръчва, услугата изпълнява

поръчката и връща резултатпоръчката и връща резултат• използват отворени стандарти за използват отворени стандарти за

комуникация – комуникация – HTTP, XML HTTP, XML ии SOAP SOAP• сами описват интерфейса си за достъп сами описват интерфейса си за достъп

чрез езика чрез езика WSDLWSDL• могат да бъдат търсени чрез могат да бъдат търсени чрез UDDIUDDI

Page 5: FABRIQ - Presentation Nakov 0.8

Web-Web-услугиуслугиWeb-Web-услугиуслуги

• Web-Web-услугите моделират услугите от услугите моделират услугите от реалния святреалния свят

• работят на принципа на обмяна на работят на принципа на обмяна на SOAP SOAP съобщениясъобщения

• съобщенията съдържат структурирана съобщенията съдържат структурирана информация – данни + метаданни информация – данни + метаданни (описание на данните)(описание на данните)

• независими от операционната система, независими от операционната система, платформата и езика за програмиранеплатформата и езика за програмиране

• функционално-независимифункционално-независими, , слабо-слабо-обвързани с клиентаобвързани с клиента

• Web-Web-услугите моделират услугите от услугите моделират услугите от реалния святреалния свят

• работят на принципа на обмяна на работят на принципа на обмяна на SOAP SOAP съобщениясъобщения

• съобщенията съдържат структурирана съобщенията съдържат структурирана информация – данни + метаданни информация – данни + метаданни (описание на данните)(описание на данните)

• независими от операционната система, независими от операционната система, платформата и езика за програмиранеплатформата и езика за програмиране

• функционално-независимифункционално-независими, , слабо-слабо-обвързани с клиентаобвързани с клиента

Page 6: FABRIQ - Presentation Nakov 0.8

WSEWSEWSEWSE

• WSE = Web Services Enhancements = WSE = Web Services Enhancements = разширения разширения на на Web-Web-услугитеуслугите

• WSWS-*-* спецификациите са разширенията на спецификациите са разширенията на стандартите за стандартите за Web-Web-услугиуслуги• отворени стандартиотворени стандарти• дефинирани от организациите дефинирани от организациите OASISOASIS и и W3CW3C

• WSE WSE е имплементация на е имплементация на WS-* WS-* стандартите стандартите за за .NET Framework.NET Framework

• WS-AddressingWS-Addressing – стандарт за адресация на услуги – стандарт за адресация на услуги и съобщенияи съобщения

• WS-SecurityWS-Security – осигурява сигурност при – осигурява сигурност при WebWeb--услугите (автентикация, кодиране, подписване)услугите (автентикация, кодиране, подписване)

• WS-PolicyWS-Policy – позволява задаване на изисквания – позволява задаване на изисквания при обмяната на съобщенияпри обмяната на съобщения

• WSE = Web Services Enhancements = WSE = Web Services Enhancements = разширения разширения на на Web-Web-услугитеуслугите

• WSWS-*-* спецификациите са разширенията на спецификациите са разширенията на стандартите за стандартите за Web-Web-услугиуслуги• отворени стандартиотворени стандарти• дефинирани от организациите дефинирани от организациите OASISOASIS и и W3CW3C

• WSE WSE е имплементация на е имплементация на WS-* WS-* стандартите стандартите за за .NET Framework.NET Framework

• WS-AddressingWS-Addressing – стандарт за адресация на услуги – стандарт за адресация на услуги и съобщенияи съобщения

• WS-SecurityWS-Security – осигурява сигурност при – осигурява сигурност при WebWeb--услугите (автентикация, кодиране, подписване)услугите (автентикация, кодиране, подписване)

• WS-PolicyWS-Policy – позволява задаване на изисквания – позволява задаване на изисквания при обмяната на съобщенияпри обмяната на съобщения

Page 7: FABRIQ - Presentation Nakov 0.8

SOASOASOASOA

• SOA SOA == Service Service Oriented ArchitectureOriented Architecture = = архитектура, базирана на услугиархитектура, базирана на услуги

• Подход за реализация на разпределени Подход за реализация на разпределени приложения, при койтоприложения, при който• софтуерните компоненти са достъпни софтуерните компоненти са достъпни

като услугикато услуги

• компонентите (услугите) комуникират компонентите (услугите) комуникират чрез стандартни протоколичрез стандартни протоколи

• услугите са слабо-свързани (имат услугите са слабо-свързани (имат минимално количество взаимовръзки)минимално количество взаимовръзки)

• услугите могат да бъдат използвани в услугите могат да бъдат използвани в контекст, неизвестен по време на дизайнаконтекст, неизвестен по време на дизайна

• SOA SOA == Service Service Oriented ArchitectureOriented Architecture = = архитектура, базирана на услугиархитектура, базирана на услуги

• Подход за реализация на разпределени Подход за реализация на разпределени приложения, при койтоприложения, при който• софтуерните компоненти са достъпни софтуерните компоненти са достъпни

като услугикато услуги

• компонентите (услугите) комуникират компонентите (услугите) комуникират чрез стандартни протоколичрез стандартни протоколи

• услугите са слабо-свързани (имат услугите са слабо-свързани (имат минимално количество взаимовръзки)минимално количество взаимовръзки)

• услугите могат да бъдат използвани в услугите могат да бъдат използвани в контекст, неизвестен по време на дизайнаконтекст, неизвестен по време на дизайна

Page 8: FABRIQ - Presentation Nakov 0.8

SOASOASOASOA

• При архитектурата, базирана на услугиПри архитектурата, базирана на услуги

• услугите имат стандартизиран интерфейс услугите имат стандартизиран интерфейс за достъпза достъп

• услугите се използват отуслугите се използват от крайни крайни потребителипотребители или от други услугиили от други услуги

• услугите участват в организацията и услугите участват в организацията и изпълнението на бизнес процеситеизпълнението на бизнес процесите

• нови услуги могат да се базират на нови услуги могат да се базират на комбинация от съществуващикомбинация от съществуващи

• Web-Web-услугите, заедно с услугите, заедно с WSE,WSE, са много са много подходящи за реализация на подходящи за реализация на SOASOA

• При архитектурата, базирана на услугиПри архитектурата, базирана на услуги

• услугите имат стандартизиран интерфейс услугите имат стандартизиран интерфейс за достъпза достъп

• услугите се използват отуслугите се използват от крайни крайни потребителипотребители или от други услугиили от други услуги

• услугите участват в организацията и услугите участват в организацията и изпълнението на бизнес процеситеизпълнението на бизнес процесите

• нови услуги могат да се базират на нови услуги могат да се базират на комбинация от съществуващикомбинация от съществуващи

• Web-Web-услугите, заедно с услугите, заедно с WSE,WSE, са много са много подходящи за реализация на подходящи за реализация на SOASOA

Page 9: FABRIQ - Presentation Nakov 0.8

IndigoIndigoIndigoIndigo

• Продуктът с кодово название "Продуктът с кодово название "IndigoIndigo"" e e• имплементация на концепциите на имплементация на концепциите на

архитектурата, базирана на услуги (архитектурата, базирана на услуги (SOA)SOA)• application application сървър – изпълнява и сървър – изпълнява и

управлява приложения и услугиуправлява приложения и услуги• middleware middleware продукт, ориентиран към продукт, ориентиран към

управление и интеграция на услугиуправление и интеграция на услуги• поддържа архитектура за разпределени поддържа архитектура за разпределени

приложения, базирани на съобщенияприложения, базирани на съобщения• използва отворени стандарти (използва отворени стандарти (XMLXML, , Web Web

services, …)services, …)

• Ще бъде част от Ще бъде част от Windows LonghornWindows Longhorn

• Продуктът с кодово название "Продуктът с кодово название "IndigoIndigo"" e e• имплементация на концепциите на имплементация на концепциите на

архитектурата, базирана на услуги (архитектурата, базирана на услуги (SOA)SOA)• application application сървър – изпълнява и сървър – изпълнява и

управлява приложения и услугиуправлява приложения и услуги• middleware middleware продукт, ориентиран към продукт, ориентиран към

управление и интеграция на услугиуправление и интеграция на услуги• поддържа архитектура за разпределени поддържа архитектура за разпределени

приложения, базирани на съобщенияприложения, базирани на съобщения• използва отворени стандарти (използва отворени стандарти (XMLXML, , Web Web

services, …)services, …)

• Ще бъде част от Ще бъде част от Windows LonghornWindows Longhorn

Page 10: FABRIQ - Presentation Nakov 0.8

Агентно-ориентирани архитектуриАгентно-ориентирани архитектуриАгентно-ориентирани архитектуриАгентно-ориентирани архитектури

• Софтуерните агенти са:Софтуерните агенти са:• автономниавтономни

• имат контрол над собствените си имат контрол над собствените си действия и вътрешните си състояниядействия и вътрешните си състояния

• могат да работят самостоятелно без могат да работят самостоятелно без външна намесавъншна намеса

• специализирани – имат ясно зададена специализирани – имат ясно зададена цел (задача)цел (задача)• знаят какво да правят и как да го правятзнаят какво да правят и как да го правят• взаимодействат с други агенти за да взаимодействат с други агенти за да

изпълняват целта сиизпълняват целта си• имат ясно дефинирани интерфейси за имат ясно дефинирани интерфейси за

комуникациякомуникация

• Софтуерните агенти са:Софтуерните агенти са:• автономниавтономни

• имат контрол над собствените си имат контрол над собствените си действия и вътрешните си състояниядействия и вътрешните си състояния

• могат да работят самостоятелно без могат да работят самостоятелно без външна намесавъншна намеса

• специализирани – имат ясно зададена специализирани – имат ясно зададена цел (задача)цел (задача)• знаят какво да правят и как да го правятзнаят какво да правят и как да го правят• взаимодействат с други агенти за да взаимодействат с други агенти за да

изпълняват целта сиизпълняват целта си• имат ясно дефинирани интерфейси за имат ясно дефинирани интерфейси за

комуникациякомуникация

Page 11: FABRIQ - Presentation Nakov 0.8

Агентно-ориентирани архитектуриАгентно-ориентирани архитектуриАгентно-ориентирани архитектуриАгентно-ориентирани архитектури

• Софтуерните агенти са:Софтуерните агенти са:

• разположени в специфична средаразположени в специфична среда

• възприемат средата си чрез сензори и я възприемат средата си чрез сензори и я променят чрез ефекторипроменят чрез ефектори

• Агентно-ориентираните софтуерни Агентно-ориентираните софтуерни архитектури се базират на агенти и архитектури се базират на агенти и взаимодействия между тяхвзаимодействия между тях

• Позволяват изграждане на Позволяват изграждане на децентрализирани разпределени децентрализирани разпределени приложенияприложения

• Софтуерните агенти са:Софтуерните агенти са:

• разположени в специфична средаразположени в специфична среда

• възприемат средата си чрез сензори и я възприемат средата си чрез сензори и я променят чрез ефекторипроменят чрез ефектори

• Агентно-ориентираните софтуерни Агентно-ориентираните софтуерни архитектури се базират на агенти и архитектури се базират на агенти и взаимодействия между тяхвзаимодействия между тях

• Позволяват изграждане на Позволяват изграждане на децентрализирани разпределени децентрализирани разпределени приложенияприложения

Page 12: FABRIQ - Presentation Nakov 0.8

Мрежи от опашкиМрежи от опашкиМрежи от опашкиМрежи от опашки

• Мрежите от опашки (Мрежите от опашки (Queuing NetworksQueuing Networks)) описват децентрализиран модел за описват децентрализиран модел за разпределени изчисленияразпределени изчисления

• Имат следната структура:Имат следната структура:• Състоят се от Състоят се от обработващи единициобработващи единици

((Processing UnitsProcessing Units)) с връзки между тяхс връзки между тях• мрежата управлява потока на мрежата управлява потока на

информацията информацията (information workflow)(information workflow)• Обработващите единици се състоят от Обработващите единици се състоят от

верига верига примитивни обработчици примитивни обработчици ((primitive handlers)primitive handlers)

• Примитивните обработчици са най-Примитивните обработчици са най-малките обработващи единицималките обработващи единици

• Мрежите от опашки (Мрежите от опашки (Queuing NetworksQueuing Networks)) описват децентрализиран модел за описват децентрализиран модел за разпределени изчисленияразпределени изчисления

• Имат следната структура:Имат следната структура:• Състоят се от Състоят се от обработващи единициобработващи единици

((Processing UnitsProcessing Units)) с връзки между тяхс връзки между тях• мрежата управлява потока на мрежата управлява потока на

информацията информацията (information workflow)(information workflow)• Обработващите единици се състоят от Обработващите единици се състоят от

верига верига примитивни обработчици примитивни обработчици ((primitive handlers)primitive handlers)

• Примитивните обработчици са най-Примитивните обработчици са най-малките обработващи единицималките обработващи единици

Page 13: FABRIQ - Presentation Nakov 0.8

Примитивни обработчициПримитивни обработчициПримитивни обработчициПримитивни обработчици

• Примитивните обработчици саПримитивните обработчици са• елементарни обработващи единициелементарни обработващи единици• преизползваеми (преизползваеми (rreusable)eusable)• извършват малки прости задачки върху извършват малки прости задачки върху

съобщениятасъобщенията• обработват само съобщения, които обработват само съобщения, които

разпознаватразпознават• биват два видабиват два вида

• общи – осигуряват кодиране / декодиране, общи – осигуряват кодиране / декодиране, маршрутизация, трансформация, маршрутизация, трансформация, log-log-ваневане

• специфични – реализират елементи от специфични – реализират елементи от работния процесработния процес

• Примитивните обработчици саПримитивните обработчици са• елементарни обработващи единициелементарни обработващи единици• преизползваеми (преизползваеми (rreusable)eusable)• извършват малки прости задачки върху извършват малки прости задачки върху

съобщениятасъобщенията• обработват само съобщения, които обработват само съобщения, които

разпознаватразпознават• биват два видабиват два вида

• общи – осигуряват кодиране / декодиране, общи – осигуряват кодиране / декодиране, маршрутизация, трансформация, маршрутизация, трансформация, log-log-ваневане

• специфични – реализират елементи от специфични – реализират елементи от работния процесработния процес

Page 14: FABRIQ - Presentation Nakov 0.8

Обработващи единициОбработващи единициОбработващи единициОбработващи единици

• Обработващите единици саОбработващите единици са• преизползваеми (преизползваеми (rreusable)eusable)• изпълняват отделни стъпки от изпълняват отделни стъпки от

динамични бизнес процесидинамични бизнес процеси• не са обвързани с местоположението сине са обвързани с местоположението си

• възможности за физическа мобилноствъзможности за физическа мобилност• скалируемост и устойчивост на сривовескалируемост и устойчивост на сривове

• предоставят автономни услугипредоставят автономни услуги• подходящи за автономно-ориентирани подходящи за автономно-ориентирани

изчисленияизчисления• подходящи за агентно-ориентирани подходящи за агентно-ориентирани

изчисленияизчисления

• Обработващите единици саОбработващите единици са• преизползваеми (преизползваеми (rreusable)eusable)• изпълняват отделни стъпки от изпълняват отделни стъпки от

динамични бизнес процесидинамични бизнес процеси• не са обвързани с местоположението сине са обвързани с местоположението си

• възможности за физическа мобилноствъзможности за физическа мобилност• скалируемост и устойчивост на сривовескалируемост и устойчивост на сривове

• предоставят автономни услугипредоставят автономни услуги• подходящи за автономно-ориентирани подходящи за автономно-ориентирани

изчисленияизчисления• подходящи за агентно-ориентирани подходящи за агентно-ориентирани

изчисленияизчисления

Page 15: FABRIQ - Presentation Nakov 0.8

Обработващи единициОбработващи единициОбработващи единициОбработващи единици

• Обработващите единици се състоят от Обработващите единици се състоят от примитивни обработчици (примитиви)примитивни обработчици (примитиви)

• Примитивите се подреждат Примитивите се подреждат последователно в "поточни линии"последователно в "поточни линии"

• Съобщенията се обработват чрез Съобщенията се обработват чрез преминаване през поточните линиипреминаване през поточните линии

• Примитивите могат да променят, Примитивите могат да променят, създават и унищожават съобщениясъздават и унищожават съобщения

• Обработващите единици се състоят от Обработващите единици се състоят от примитивни обработчици (примитиви)примитивни обработчици (примитиви)

• Примитивите се подреждат Примитивите се подреждат последователно в "поточни линии"последователно в "поточни линии"

• Съобщенията се обработват чрез Съобщенията се обработват чрез преминаване през поточните линиипреминаване през поточните линии

• Примитивите могат да променят, Примитивите могат да променят, създават и унищожават съобщениясъздават и унищожават съобщения

/net/node1

вход изходпримитивапримитива примитива

Page 16: FABRIQ - Presentation Nakov 0.8

Мрежи от опашкиМрежи от опашкиМрежи от опашкиМрежи от опашки

• "Мрежите" са множество свързани една "Мрежите" са множество свързани една с друга поточни линиис друга поточни линии• Всяко съобщение пътува по някакъв път Всяко съобщение пътува по някакъв път

в мрежатав мрежата

• Пътят зависи от самото съобщение – Пътят зависи от самото съобщение – определя се динамично чрез правила за определя се динамично чрез правила за маршрутизациямаршрутизация

• Пътят е поточна линия, съставена от Пътят е поточна линия, съставена от обработващи единици (възли)обработващи единици (възли)

• Инфраструктурата прилича на фабрика:Инфраструктурата прилича на фабрика:• Изделието преминава през поточните Изделието преминава през поточните

линии на отделните цехове (възли)линии на отделните цехове (възли)

• "Мрежите" са множество свързани една "Мрежите" са множество свързани една с друга поточни линиис друга поточни линии• Всяко съобщение пътува по някакъв път Всяко съобщение пътува по някакъв път

в мрежатав мрежата

• Пътят зависи от самото съобщение – Пътят зависи от самото съобщение – определя се динамично чрез правила за определя се динамично чрез правила за маршрутизациямаршрутизация

• Пътят е поточна линия, съставена от Пътят е поточна линия, съставена от обработващи единици (възли)обработващи единици (възли)

• Инфраструктурата прилича на фабрика:Инфраструктурата прилича на фабрика:• Изделието преминава през поточните Изделието преминава през поточните

линии на отделните цехове (възли)линии на отделните цехове (възли)

Page 17: FABRIQ - Presentation Nakov 0.8

Мрежи от опашкиМрежи от опашкиМрежи от опашкиМрежи от опашки

Network

Gateway

Gateway

Transform/net/node1Transform/net/node1

Preproc.Balance

/net/node2

Preproc.Balance

/net/node2

Match/net/node3

Match/net/node3

Augment/net/node4Augment

/net/node4

Match/net/node3

Match/net/node3

Page 18: FABRIQ - Presentation Nakov 0.8

Какво е Какво е FABRIQ?FABRIQ?Какво е Какво е FABRIQ?FABRIQ?

• FABRIQ FABRIQ ее• архитектураархитектура за разпределени приложенияза разпределени приложения

• базирана набазирана на модела "мрежи от опашки"модела "мрежи от опашки"

• високопроизводителнависокопроизводителна

• силно скалируемасилно скалируема

• Нейната целНейната цел• да илюстрира асинхронния изчислителен да илюстрира асинхронния изчислителен

модел, базиран на съобщения, който ще е модел, базиран на съобщения, който ще е част от продуктачаст от продукта Indigo Indigo

• да помогне на разработчици и софтуерни да помогне на разработчици и софтуерни архитекти да възприемат този моделархитекти да възприемат този модел

• FABRIQ FABRIQ ее• архитектураархитектура за разпределени приложенияза разпределени приложения

• базирана набазирана на модела "мрежи от опашки"модела "мрежи от опашки"

• високопроизводителнависокопроизводителна

• силно скалируемасилно скалируема

• Нейната целНейната цел• да илюстрира асинхронния изчислителен да илюстрира асинхронния изчислителен

модел, базиран на съобщения, който ще е модел, базиран на съобщения, който ще е част от продуктачаст от продукта Indigo Indigo

• да помогне на разработчици и софтуерни да помогне на разработчици и софтуерни архитекти да възприемат този моделархитекти да възприемат този модел

Page 19: FABRIQ - Presentation Nakov 0.8

Какво е Какво е FABRIQ?FABRIQ?Какво е Какво е FABRIQ?FABRIQ?

• Реализиран с технологиитеРеализиран с технологиите• .NET Framework.NET Framework и и C#C#

• Web-Web-услугиуслуги

• WSEWSE ( (Web Services Enhancements)Web Services Enhancements)

• Framework Framework с отворен кодс отворен код• добре документиран дизайн и добре документиран дизайн и

архитектураархитектура

• разработен от разработен от newtelligence AGnewtelligence AG, заедно , заедно със специалисти от със специалисти от MicrosoftMicrosoft

• не е продукт на не е продукт на MicrosoftMicrosoft

• Тестван в реални условияТестван в реални условия

• Реализиран с технологиитеРеализиран с технологиите• .NET Framework.NET Framework и и C#C#

• Web-Web-услугиуслуги

• WSEWSE ( (Web Services Enhancements)Web Services Enhancements)

• Framework Framework с отворен кодс отворен код• добре документиран дизайн и добре документиран дизайн и

архитектураархитектура

• разработен от разработен от newtelligence AGnewtelligence AG, заедно , заедно със специалисти от със специалисти от MicrosoftMicrosoft

• не е продукт на не е продукт на MicrosoftMicrosoft

• Тестван в реални условияТестван в реални условия

Page 20: FABRIQ - Presentation Nakov 0.8

СъобщенияСъобщенияСъобщенияСъобщения

• Съобщенията пренасят данни за приложениетоСъобщенията пренасят данни за приложението• Форматът зависи от самото приложениеФорматът зависи от самото приложение

• Съобщенията пренасят управляваща Съобщенията пренасят управляваща информацияинформация• параметри за адресацияпараметри за адресация

• настройки за сигурност и надеждностнастройки за сигурност и надеждност

• Инфраструктурата на Инфраструктурата на FABRIQ FABRIQ обработва обработва повечето управляваща информацияповечето управляваща информация• хедърихедъри: : постоянна управляваща информацияпостоянна управляваща информация

• свойства: временна информация в паметтасвойства: временна информация в паметта

• Приложенията обработват главно даннитеПриложенията обработват главно данните• Изключение: кодиране / декодиранеИзключение: кодиране / декодиране

• Съобщенията пренасят данни за приложениетоСъобщенията пренасят данни за приложението• Форматът зависи от самото приложениеФорматът зависи от самото приложение

• Съобщенията пренасят управляваща Съобщенията пренасят управляваща информацияинформация• параметри за адресацияпараметри за адресация

• настройки за сигурност и надеждностнастройки за сигурност и надеждност

• Инфраструктурата на Инфраструктурата на FABRIQ FABRIQ обработва обработва повечето управляваща информацияповечето управляваща информация• хедърихедъри: : постоянна управляваща информацияпостоянна управляваща информация

• свойства: временна информация в паметтасвойства: временна информация в паметта

• Приложенията обработват главно даннитеПриложенията обработват главно данните• Изключение: кодиране / декодиранеИзключение: кодиране / декодиране

Page 21: FABRIQ - Presentation Nakov 0.8

MessageMessageMessageMessage

<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...

Ne

two

rkS

tre

am

Ne

two

rkS

tre

am

Ne

two

rkS

tre

am

Ne

two

rkS

tre

am

Te

xtR

ead

erT

ext

Rea

der

Te

xtR

ead

erT

ext

Rea

der

Xm

lRe

ad

erX

mlR

ea

der

Xm

lRe

ad

erX

mlR

ea

der

Header CollectionHeader Collection

Парсване на съобщениятаПарсване на съобщениятаПарсване на съобщениятаПарсване на съобщенията

TimestampTimestamp

FromFrom

ToTo

ReplyToReplyTo

ConfidentialityConfidentiality

IntegrityIntegrity

BodyBody

PropertiesProperties

Конструкторът на съобщението парсва Конструкторът на съобщението парсва хедърите в колекция от хедърихедърите в колекция от хедъри

Конструкторът на съобщението парсва Конструкторът на съобщението парсва хедърите в колекция от хедърихедърите в колекция от хедъри

Парсването спира при достигане на тялото на съобщението. Парсването спира при достигане на тялото на съобщението. Свойството "Свойството "BodyBody"" съдържа съдържа XmlReader XmlReader на позицията на тялото.на позицията на тялото.

Парсването спира при достигане на тялото на съобщението. Парсването спира при достигане на тялото на съобщението. Свойството "Свойството "BodyBody"" съдържа съдържа XmlReader XmlReader на позицията на тялото.на позицията на тялото.

Page 22: FABRIQ - Presentation Nakov 0.8

Обработчици на съобщенияОбработчици на съобщенияОбработчици на съобщенияОбработчици на съобщения

• Обработчиците на съобщения Обработчиците на съобщения имплементират примитивиимплементират примитиви

• Обработчиците на съобщения Обработчиците на съобщения имплементират примитивиимплементират примитиви

IMessageHandlerIMessageHandler

ProcessMessage(Message msg)

IMessageHandlerIMessageHandlerIMessageHandlerIMessageHandler MyMessageHandlerMyMessageHandlerMyMessageHandlerMyMessageHandler

IMessageHandlerIMessageHandler

ProcessMessage(Message msg)ProcessMessage(Message msg)

IChainableMessageHandlerIChainableMessageHandler

NextNext

newMsg = this.HandleMessage(msg)newMsg = this.HandleMessage(msg)Next.ProcessMessage(newMsg)Next.ProcessMessage(newMsg)

Page 23: FABRIQ - Presentation Nakov 0.8

Поточни линии (Поточни линии (pipelines)pipelines)Поточни линии (Поточни линии (pipelines)pipelines)

HeadHead

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

NextNext

ProcessMessage(Message msg)

TailTail

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

NextNext

ProcessMessage(Message msg)

MyMessageHandlerMyMessageHandler

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

NextNext

ProcessMessage(Message msg)

PipelinePipeline

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

NextNext

ProcessMessage(Message msg)

IMessageHandlerIMessageHandler

ProcessMessage(Message msg)

IMessageHandlerIMessageHandlerIMessageHandlerIMessageHandler

Page 24: FABRIQ - Presentation Nakov 0.8

Поточни линии – композицияПоточни линии – композиция Поточни линии – композицияПоточни линии – композиция

HeadHeadHeadHead

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

TailTailTailTail

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

PipelinePipelinePipelinePipelineIMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

IMessageHandlerIMessageHandler

ProcessMessage(Message msg)

HeadHeadHeadHead

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

TailTailTailTail

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

MyMessageHandlerMyMessageHandlerMyMessageHandlerMyMessageHandler

IMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

PipelinePipelinePipelinePipelineIMessageHandlerIMessageHandler

IChainableMessageHandlerIChainableMessageHandler

Next

ProcessMessage(Message msg)

Page 25: FABRIQ - Presentation Nakov 0.8

Управление на сривоветеУправление на сривоветеУправление на сривоветеУправление на сривовете

• Съединяването на примитиви е добро Съединяването на примитиви е добро ......

... ... докато нещо не се повреди някъде ...докато нещо не се повреди някъде ...

• Управлението на сривове в поточните Управлението на сривове в поточните линии е тежка задачалинии е тежка задача

• Съединяването на примитиви е добро Съединяването на примитиви е добро ......

... ... докато нещо не се повреди някъде ...докато нещо не се повреди някъде ...

• Управлението на сривове в поточните Управлението на сривове в поточните линии е тежка задачалинии е тежка задача

/net/node1

Начало КрайПримитивПримитив Примитив

ДействиеДействие 1, 1, Преобразуване Преобразуване на съобщениетона съобщението

ДействиеДействие 2, 2, Уведомяване на Уведомяване на вътрешна услугавътрешна услуга

Действие 3, Действие 3, Записване в Записване в базата даннибазата данни

Page 26: FABRIQ - Presentation Nakov 0.8

Решението: транзакцииРешението: транзакцииРешението: транзакцииРешението: транзакции

• Всеки обработчик включва своя изпълнителВсеки обработчик включва своя изпълнител (worker) (worker) в "лека транзакция" в "лека транзакция" (WorkSet)(WorkSet)

• Изпълнителят държи състоянието на Изпълнителят държи състоянието на съобщението и изпълнява съобщението и изпълнява commit() commit() или или abort()abort()

• Използва се алгоритъм "Използва се алгоритъм "2-Phase-Commit2-Phase-Commit""

• Всеки обработчик включва своя изпълнителВсеки обработчик включва своя изпълнител (worker) (worker) в "лека транзакция" в "лека транзакция" (WorkSet)(WorkSet)

• Изпълнителят държи състоянието на Изпълнителят държи състоянието на съобщението и изпълнява съобщението и изпълнява commit() commit() или или abort()abort()

• Използва се алгоритъм "Използва се алгоритъм "2-Phase-Commit2-Phase-Commit""

/net/node1

Начало КрайПримитивПримитив Примитив

WorkSet

Worker Worker Worker

Леки транзакции

Prepare()Prepare()Commit()Commit()Abort()Abort()

Page 27: FABRIQ - Presentation Nakov 0.8

Действия и договориДействия и договориДействия и договориДействия и договори

• ДействияДействия• уникално идентифицируемиуникално идентифицируеми

• състоят се от поточна линия от примитивисъстоят се от поточна линия от примитиви

• свързани с едно или повече входни свързани с едно или повече входни съобщениясъобщения

• аналогично на "метод" от ООПаналогично на "метод" от ООП

• ДоговориДоговори• съглашения за даннитесъглашения за данните

• прецизно дефинират какви данни очаква прецизно дефинират какви данни очаква дадено действиедадено действие

• прецизно дефинират какви данни прецизно дефинират какви данни произвежда като резултат дадено действиепроизвежда като резултат дадено действие

• ДействияДействия• уникално идентифицируемиуникално идентифицируеми

• състоят се от поточна линия от примитивисъстоят се от поточна линия от примитиви

• свързани с едно или повече входни свързани с едно или повече входни съобщениясъобщения

• аналогично на "метод" от ООПаналогично на "метод" от ООП

• ДоговориДоговори• съглашения за даннитесъглашения за данните

• прецизно дефинират какви данни очаква прецизно дефинират какви данни очаква дадено действиедадено действие

• прецизно дефинират какви данни прецизно дефинират какви данни произвежда като резултат дадено действиепроизвежда като резултат дадено действие

Page 28: FABRIQ - Presentation Nakov 0.8

Възли и инстанции на възлиВъзли и инстанции на възлиВъзли и инстанции на възлиВъзли и инстанции на възли

• Един "възел" от мрежата представлява една Един "възел" от мрежата представлява една обработваща единица (обработваща единица (processing unitprocessing unit))• има уникална идентификация с има уникална идентификация с URIURI• свързан с логическо име на машина свързан с логическо име на машина (host)(host)

• може да съответства на няколко физически може да съответства на няколко физически машинимашини

• изпълнява се в отделен "изпълнява се в отделен "AApplication domainpplication domain""• може да се спира / пуска независимоможе да се спира / пуска независимо

• Възелът е еднопосочна асинхронна услугаВъзелът е еднопосочна асинхронна услуга• Може да пренася съобщения и да им отговаря Може да пренася съобщения и да им отговаря

((forward forward ии reply-to reply-to))• не се поддържа отговор към източникане се поддържа отговор към източника

• "Инстанция на възел" е възел по време на "Инстанция на възел" е възел по време на работа (работа (runtimeruntime))

• Един "възел" от мрежата представлява една Един "възел" от мрежата представлява една обработваща единица (обработваща единица (processing unitprocessing unit))• има уникална идентификация с има уникална идентификация с URIURI• свързан с логическо име на машина свързан с логическо име на машина (host)(host)

• може да съответства на няколко физически може да съответства на няколко физически машинимашини

• изпълнява се в отделен "изпълнява се в отделен "AApplication domainpplication domain""• може да се спира / пуска независимоможе да се спира / пуска независимо

• Възелът е еднопосочна асинхронна услугаВъзелът е еднопосочна асинхронна услуга• Може да пренася съобщения и да им отговаря Може да пренася съобщения и да им отговаря

((forward forward ии reply-to reply-to))• не се поддържа отговор към източникане се поддържа отговор към източника

• "Инстанция на възел" е възел по време на "Инстанция на възел" е възел по време на работа (работа (runtimeruntime))

Page 29: FABRIQ - Presentation Nakov 0.8

АдресацияАдресацияАдресацияАдресация

• Всеки възел има уникален Всеки възел има уникален URIURI адрес и един адрес и един или няколко или няколко URLURL адреса: адреса:• Логически адресЛогически адрес::

• fabriq://network/nodefabriq://network/node

• Транспортно-зависим адрес:Транспортно-зависим адрес:• http://machine/network/nodehttp://machine/network/node

• msmq://machine/network/nodemsmq://machine/network/node

• ЛогическиЛогически: : използва се за абстрактно използва се за абстрактно конфигуриране на мрежитеконфигуриране на мрежите

• Транспортно-зависим: използва се за Транспортно-зависим: използва се за маршрутизация по време на работамаршрутизация по време на работа

• Адресирането използва Адресирането използва WS-AddressingWS-Addressing

• Всеки възел има уникален Всеки възел има уникален URIURI адрес и един адрес и един или няколко или няколко URLURL адреса: адреса:• Логически адресЛогически адрес::

• fabriq://network/nodefabriq://network/node

• Транспортно-зависим адрес:Транспортно-зависим адрес:• http://machine/network/nodehttp://machine/network/node

• msmq://machine/network/nodemsmq://machine/network/node

• ЛогическиЛогически: : използва се за абстрактно използва се за абстрактно конфигуриране на мрежитеконфигуриране на мрежите

• Транспортно-зависим: използва се за Транспортно-зависим: използва се за маршрутизация по време на работамаршрутизация по време на работа

• Адресирането използва Адресирането използва WS-AddressingWS-Addressing

Page 30: FABRIQ - Presentation Nakov 0.8

WS-AddressingWS-AddressingWS-AddressingWS-Addressing

ServiceAServiceA

ClientClient

ServiceBServiceB

Gateway

GatewayGateway

ServiceCServiceC

Dyn. RouterDyn.

Router

<wsa:To>uri:ServiceB</wsa:To> <wsa:Recipient> <wsa:Address> uri:Client </wsa:Address> <wsp:Policy /></wsa:Recipient> <wsa:ReplyTo> <wsa:Address> uri:Client </wsa:Address> <wsp:Policy /> </wsa:ReplyTo>

<wsa:Recipient> <wsa:Address> uri:Client </wsa:Address> <wsp:Policy /></wsa:Recipient>

<wsa:FaultTo> <wsa:Address> uri:ServiceB </wsa:Address> <wsp:Policy /></wsa:FaultTo>

ToTo

ToTo

ToToReplyToReplyTo

FaultToFaultTo

RecipientRecipient

FaultToFaultTo

WS-AddressingWS-PolicyWS-AddressingWS-Policy

Page 31: FABRIQ - Presentation Nakov 0.8

Адресация въвАдресация във FABRIQ FABRIQАдресация въвАдресация във FABRIQ FABRIQ

• Всеки възел може да има изходно съобщениеВсеки възел може да има изходно съобщение• Ако няма, той е крайна точка (Ако няма, той е крайна точка (endpoint)endpoint)

• Изходните съобщения се маршрутизират към Изходните съобщения се маршрутизират към следващия възелследващия възел• Използва се "действието" на изходното Използва се "действието" на изходното

съобщениесъобщение (wsa:Action) (wsa:Action) и/или логическия и/или логическия получател получател (wsa:To)(wsa:To)

• Много маршрути могат да са подходящиМного маршрути могат да са подходящи

• Съобщението се изпраща към всеки от тяхСъобщението се изпраща към всеки от тях

• Маршрути и получателиМаршрути и получатели• Получателите са приоритетизираниПолучателите са приоритетизирани

• Инфраструктурата опитва да изпрати Инфраструктурата опитва да изпрати съобщенията към получателите им според съобщенията към получателите им според приоритета (приоритета (""pprimary" rimary" ии "backup" "backup"))..

• Всеки възел може да има изходно съобщениеВсеки възел може да има изходно съобщение• Ако няма, той е крайна точка (Ако няма, той е крайна точка (endpoint)endpoint)

• Изходните съобщения се маршрутизират към Изходните съобщения се маршрутизират към следващия възелследващия възел• Използва се "действието" на изходното Използва се "действието" на изходното

съобщениесъобщение (wsa:Action) (wsa:Action) и/или логическия и/или логическия получател получател (wsa:To)(wsa:To)

• Много маршрути могат да са подходящиМного маршрути могат да са подходящи

• Съобщението се изпраща към всеки от тяхСъобщението се изпраща към всеки от тях

• Маршрути и получателиМаршрути и получатели• Получателите са приоритетизираниПолучателите са приоритетизирани

• Инфраструктурата опитва да изпрати Инфраструктурата опитва да изпрати съобщенията към получателите им според съобщенията към получателите им според приоритета (приоритета (""pprimary" rimary" ии "backup" "backup"))..

Page 32: FABRIQ - Presentation Nakov 0.8

Адресация въвАдресация във FABRIQ FABRIQАдресация въвАдресация във FABRIQ FABRIQ

/net/node1/net/

node1

to: /net/node2

МаршрутиМаршрутиМаршрутиМаршрути

to: /net/node3

action: actionA

action: actionBto: /net/node4

http://..

msmq: //...

ПолучателиПолучателиПолучателиПолучатели

Page 33: FABRIQ - Presentation Nakov 0.8

В един В един FABRIQ FABRIQ възелвъзелВ един В един FABRIQ FABRIQ възелвъзел

/net/node1

Начало КрайПримитивПримитив

Pipeline

Gate-keeper

RouterSender

PortQueue

Listener

Проверка на

сигурността

Проверка на

сигурността

Избор на маршрут

Избор на маршрут

ИзпращанеИзпращане

Page 34: FABRIQ - Presentation Nakov 0.8

ConfigManager

MSMQListener

Хостинг на възлитеХостинг на възлитеХостинг на възлитеХостинг на възлите

/net/node1

Начало КрайПримитивПримитив

Pipeline

Gate-keeper

RouterSender

Port

AppDomainAppDomainAppDomainAppDomain

Enterprise Services Runtime (dllhost.exe)

Process Initializer / Process Controller

TCPListener

Enterprise Services Port

/net/node2

Начало КрайHandlerПримитив

Pipeline

Gate-keeper

RouterSender

Port

AppDomainAppDomainAppDomainAppDomain

Thread Pool

Request Queue

ProcessProcessProcessProcess

Listeners

Page 35: FABRIQ - Presentation Nakov 0.8

Модел на процеситеМодел на процеситеМодел на процеситеМодел на процесите

• FABRIQ FABRIQ се хоства все хоства в Enterprise Enterprise ServicesServices

• Надежден модел на процеситеНадежден модел на процесите

• Start/Stop, Pause/ResumeStart/Stop, Pause/Resume

• Пулинг, рециклиранеПулинг, рециклиране

• Стартиране при начално зареждане, Стартиране при начално зареждане, стартиране като услугастартиране като услуга

• Може да се настройва потребителят, под Може да се настройва потребителят, под който се изпълнява процесакойто се изпълнява процеса

• Интеграция с транспортните услуги отИнтеграция с транспортните услуги от Enterprise ServicesEnterprise Services

• Не е необходимНе е необходим Internet Internet Information Server Information Server

• FABRIQ FABRIQ се хоства все хоства в Enterprise Enterprise ServicesServices

• Надежден модел на процеситеНадежден модел на процесите

• Start/Stop, Pause/ResumeStart/Stop, Pause/Resume

• Пулинг, рециклиранеПулинг, рециклиране

• Стартиране при начално зареждане, Стартиране при начално зареждане, стартиране като услугастартиране като услуга

• Може да се настройва потребителят, под Може да се настройва потребителят, под който се изпълнява процесакойто се изпълнява процеса

• Интеграция с транспортните услуги отИнтеграция с транспортните услуги от Enterprise ServicesEnterprise Services

• Не е необходимНе е необходим Internet Internet Information Server Information Server

Page 36: FABRIQ - Presentation Nakov 0.8

Сигурността въвСигурността във FABRIQ FABRIQСигурността въвСигурността във FABRIQ FABRIQ

• Използва се инфраструктурата за Използва се инфраструктурата за сигурност на сигурност на WSE 2.0WSE 2.0

• Microsoft Web Service Enhancements Microsoft Web Service Enhancements

• Използва сеИзползва се OASIS WS-Security, WS-Policy OASIS WS-Security, WS-Policy

• Ограничения на Ограничения на WSE 2.0WSE 2.0

• Не се поддържат динамични политикиНе се поддържат динамични политики

• Политиките се описват във файловеПолитиките се описват във файлове

• Конфигурация за всеки Конфигурация за всеки AppDomainAppDomain

• Използва се инфраструктурата за Използва се инфраструктурата за сигурност на сигурност на WSE 2.0WSE 2.0

• Microsoft Web Service Enhancements Microsoft Web Service Enhancements

• Използва сеИзползва се OASIS WS-Security, WS-Policy OASIS WS-Security, WS-Policy

• Ограничения на Ограничения на WSE 2.0WSE 2.0

• Не се поддържат динамични политикиНе се поддържат динамични политики

• Политиките се описват във файловеПолитиките се описват във файлове

• Конфигурация за всеки Конфигурация за всеки AppDomainAppDomain

Page 37: FABRIQ - Presentation Nakov 0.8

<soap:Envelope> <soap:Header> … </soap:Header> <soap:Body> … </soap:Body></soap:Envelope>

<soap:Envelope> <soap:Header> … </soap:Header> <soap:Body> … </soap:Body></soap:Envelope>

Политики и договориПолитики и договориПолитики и договориПолитики и договори

Край (endpoint)

Край (endpoint)

XML схемаXML схема

WSDLWSDL

политикаполитика

Договор за услугатаДоговор за услугата

Договор за съобщениетоДоговор за съобщението

управлявауправлява

управлявауправлява

Политика – правила за услугите:- Изисквания: "Ти трябва ... "- Възможности: "Аз мога …" - Предпочитания: "Предпочитам ... "

WS-PolicyWS-PolicyAssertionsWS-PolicyAttachment

Договор – съдържание и функция на съобщенията:- Схеми: дефинират типовете- WSDL: дефинира действията

W3C XML SchemaWSDL 1.1 / 1.2

Page 38: FABRIQ - Presentation Nakov 0.8

AppDomainConfig

Output Policy

Input Policy

/net/node1

Начало КрайПримитивПримитив

Pipeline

Gate-keeper

RouterSender

Port

AppDomainAppDomainAppDomainAppDomain

СигурносттаСигурността въввъв FABRIQ FABRIQСигурносттаСигурността въввъв FABRIQ FABRIQ

Destinationhas Policy?

YesYes

SendMessage

NoNo

BuildMessage

Output Policy

WSEPipeline

Понякога Понякога WSE WSE не се ползва за по-добра производителностне се ползва за по-добра производителност

Input Policy

WSEPipeline

Message hasSecurity

elements?

Node hasdefined Policy?

YesYes Pipeline

NoNo

OR

Page 39: FABRIQ - Presentation Nakov 0.8

Мрежите на Мрежите на FABRIQFABRIQМрежите на Мрежите на FABRIQFABRIQ

• Възлите се свързват с логически или Възлите се свързват с логически или физически имена на машинифизически имена на машини• Адресацията се базира на тези именаАдресацията се базира на тези имена

• Конфигурирането на Конфигурирането на FABRIQ FABRIQ клъстер става със клъстер става със специално съобщениеспециално съобщение• Конфигурирането е функция на самата мрежаКонфигурирането е функция на самата мрежа

• Всяка машина хоства няколко възела от Всяка машина хоства няколко възела от мрежата, описани в конфигурациятамрежата, описани в конфигурацията• Кодът може да се зарежда динамичноКодът може да се зарежда динамично

• Възлите се свързват с логически или Възлите се свързват с логически или физически имена на машинифизически имена на машини• Адресацията се базира на тези именаАдресацията се базира на тези имена

• Конфигурирането на Конфигурирането на FABRIQ FABRIQ клъстер става със клъстер става със специално съобщениеспециално съобщение• Конфигурирането е функция на самата мрежаКонфигурирането е функция на самата мрежа

• Всяка машина хоства няколко възела от Всяка машина хоства няколко възела от мрежата, описани в конфигурациятамрежата, описани в конфигурацията• Кодът може да се зарежда динамичноКодът може да се зарежда динамично

Page 40: FABRIQ - Presentation Nakov 0.8

Архитектурни перспективиАрхитектурни перспективиАрхитектурни перспективиАрхитектурни перспективи

• Архитектурно Архитектурно FABRIQ FABRIQ много прилича на много прилича на "Indigo""Indigo"::• подобен модел на съобщениятаподобен модел на съобщенията

• подобен модел на поточните линии (подобен модел на поточните линии (pipelines)pipelines)

• адресиране, базирано на адресиране, базирано на WS-AddressingWS-Addressing

• сигурност, базирана на сигурност, базирана на WS-PolicyWS-Policy

• Архитектурна стратегияАрхитектурна стратегия::• синхронизиране с новостите и промените от синхронизиране с новостите и промените от

""Indigo BetaIndigo Beta" (когато излезе)" (когато излезе)

• заместване на заместване на FABRIQ FABRIQ инфраструктурата с инфраструктурата с IndigoIndigo

• миграция на миграция на FABRIQ FABRIQ приложенията към приложенията към IndigoIndigo

• Архитектурно Архитектурно FABRIQ FABRIQ много прилича на много прилича на "Indigo""Indigo"::• подобен модел на съобщениятаподобен модел на съобщенията

• подобен модел на поточните линии (подобен модел на поточните линии (pipelines)pipelines)

• адресиране, базирано на адресиране, базирано на WS-AddressingWS-Addressing

• сигурност, базирана на сигурност, базирана на WS-PolicyWS-Policy

• Архитектурна стратегияАрхитектурна стратегия::• синхронизиране с новостите и промените от синхронизиране с новостите и промените от

""Indigo BetaIndigo Beta" (когато излезе)" (когато излезе)

• заместване на заместване на FABRIQ FABRIQ инфраструктурата с инфраструктурата с IndigoIndigo

• миграция на миграция на FABRIQ FABRIQ приложенията към приложенията към IndigoIndigo

Page 41: FABRIQ - Presentation Nakov 0.8

РесурсиРесурси за за FABRIQFABRIQРесурсиРесурси за за FABRIQFABRIQ

• Страницата на проекта в Страницата на проекта в GotDotNet:GotDotNet: http://workspaces.gotdotnet.com/fabriqhttp://workspaces.gotdotnet.com/fabriq

• Личният дневник Личният дневник (blog) (blog) на на Clemens Vasters:Clemens Vasters: http://staff.newtelligence.net/clemensvhttp://staff.newtelligence.net/clemensv

• Личният дневник Личният дневник (blog) (blog) на на Arvindra Sehmi:Arvindra Sehmi: http://www.thearchitectexchange.com/asehmihttp://www.thearchitectexchange.com/asehmi

• Страницата на проекта в Страницата на проекта в GotDotNet:GotDotNet: http://workspaces.gotdotnet.com/fabriqhttp://workspaces.gotdotnet.com/fabriq

• Личният дневник Личният дневник (blog) (blog) на на Clemens Vasters:Clemens Vasters: http://staff.newtelligence.net/clemensvhttp://staff.newtelligence.net/clemensv

• Личният дневник Личният дневник (blog) (blog) на на Arvindra Sehmi:Arvindra Sehmi: http://www.thearchitectexchange.com/asehmihttp://www.thearchitectexchange.com/asehmi

Page 42: FABRIQ - Presentation Nakov 0.8

FABRIQFABRIQFABRIQFABRIQ

Въпроси?Въпроси?Въпроси?Въпроси?