pátek 16. března 2007

SOA: referenční model

Písmeno A ve zkratce SOA znamená „architektura“. Každá (softwarová) architektura by měla mít svoji referenční podobu – svůj referenční model. Ten by měl popisovat, jak architektura vypadá ve své generické podobě. SOA však není ani konkrétní technologie nebo produkt ani norma nebo standard, ale obecný přístup jak aplikace budovat nebo integrovat. Každá analytická nebo softwarová společnost si proto vytváří vlastní referenční model SOA. Znám řadu zákazníků, kteří pracují s referenčním modelem CBDi. Mně osobně se tento model SOA nelíbí, zdá se mi „chudý“.

Na přelomu 2005 – 2006 vznikla pod OASIS iniciativa vedená překvapivě Adobe, která měla snahu představit skutečně generický referenční model SOA. Současný návrh je ale tak čistý, že mně osobně nic neříká.
Vytvořil jsem proto vlastní referenční model SOA, který explicitně vypichuje dva hlavní pilíře architektury SOA. Těmi je jednak úložiště pro metadata a jednak zastřešující vrstva nazvaná SOA Governance, kam patří vizualizace, správa, řízení, reporting a zpětná vazba.


Zobrazený model SOA můžeme číst zleva doprava a odzdola nahoru: Architektura SOA stojí na centralizovaném úložišti pro metadata. Distribuované úložiště mi nedává smysl - distribuované jsou instance služeb-procesů, které se vytvářejí z úložiště a mohou se distribuovat tam, kde jsou potřeba. Pokud architektura nemá úložiště metadat, těžko se dá nazvat architekturou SOA.
Ve struktuře podnikového ICT existují různé vrstvy od technologické vrstvy po vrstvu podnikových procesů. Čím jdeme níže, tím více jsou služby datově orientované a jednodušší. Dobrý příkladem může být např. služba na přenos souborů. Je to typická datově orientovaná služba, jejímž vstupem je soubor z operačního systému, z něhož služba vyrobí XML zprávu a posílá ji do definovaného endpointu.
Takto jednoduché datově orientované služby najdou uplatnění opakovaně v rámci jakéhokoli projektu: jejich znovupoužitelnost může být i větší než 100 % (násobné využití jak v rámci jednoho projektu, tak násobné využití v každém dalším).
Čím v modelu postupujeme výše, tím jsou služby složitější a hrubozrnnější. V horní vrstvě modelu mají služby charakter v podstatě čistých metadat v podobě popisů podnikových procesů. Viděl jsem, že v některých referenčních modelech byla nad vrstvou podnikových procesů ještě prezentační vrstva, což je ne úplně přesné vyjádření. Prezentační vrstva SOA bývá nativní součástí aplikační vrstvy – aplikace jsou pro uživatele, proto nástroj, který vykresluje uživatelské rozhraní, musí být být nutně zde, nikoli nad vrstvou podnikových procesů.

Žádné komentáře: