Sociálně orientovaná architektura Hub Vandervoort
Organizace, které se orientují na architekturu SOA, získávají kromě jiného i možnost začlenit se do stále větších a dynamičtějších komunit.
Zatímco dřívější technologie, jako jsou mainframy, klient/server i webové aplikace, interagují s jedním subjektem, servisně orientovaná architektura SOA (Service Oriented Architecture) vytváří mnohostranné interakce. Vznikají komunity více či méně nezávislých vlastníků služeb, kteří v příslušném kontextu dynamicky spolupracují, společně nabízejí své služby a zprostředkovávají bohatší zákaznický prožitek při jejich využívání. Dnešní a zejména budoucí úspěšnost každého podniku je stále více výsledkem jeho schopnosti participovat v těchto nových, dynamičtějších, sjednocených komunitách. Tato orientace na společenství vytváří potřebu nových technologií SOA a změny v jejich řízení z hlediska toho, jak jsou tyto technologie poskytovány a spravovány (governovány) – a to způsobem, který nemusí být zcela triviální.
Technické příležitosti, komunitní výzvy Uživatelé se obecně zaměřují na přínosy SOA: bezproblémovou integraci, podnikovou akceschopnost a opakované použití služeb. Při realizaci těchto přínosů se však mohou vyskytnout problémy. • Pokud kvůli bezproblémové integraci rozbijete aplikační sila a otevřete hranice systémů, vytváříte bezpečnostní rizika. Kdo se dostane dovnitř? Kdo bude mít přistup k jakým informacím? • Podniková akceschopnost vám umožní využít tržní příležitosti. Ale jak budete řídit změny a kdo to bude kontrolovat? Potřebujete governanci. • Rozhodování o tom, co opakovaně používat (nebo nepoužívat) – a kdy, jak a kým – přináší otázky týkající se vlastnictví, svrchovanosti a řízení. Zatímco příležitosti SOA se týkají technologií, výzvy SOA se týkají lidí (viz obr. 1). Proto potřebujeme sociálně (tj. komunitně) orientovanou architekturu jako způsob, jímž umožníme lidem spolupracovat a využít příležitosti, které servisně orientovaná architektura nabízí.
Obrázek 1: Vazby mezi servisně orientovanou a sociálně (komunitně) orientovanou architekturou.
Faktory úspěchu SOA Pokud technologie správně sestavíte a vhodně je řídíte, budou lidé schopni navzájem spolupracovat. Technologie důležité pro podporu komunitních interakcí a interakcí služeb jsou stejné: • Volné propojení interakcí. Nejlepší vztahy jsou založeny na svobodné, snadné interakci. Základ úspěšné servisně orientované architektury je bezproblémová interoperabilita. • Aktivní sjednávání pravidel. Silné a důvěryhodné osobní a pracovní vazby jsou založeny na neformálních, resp. formálních kontraktech s nepsanými zásadami nebo politikami týkajícími se respektování bezpečnosti a svrchovanosti a na určitých způsobech interakce. Pokud se objeví rozdíly ohledně výkladu pravidel, pak ve skutečně dobrém vztahu může kterákoli strana otevřít určitý problém a přímo vyjednat jeho řešení. • Přesná kontrola sémantiky. Ať už spolu svobodně komunikují lidé nebo systémy, potřebují mít jistotu, že si navzájem jasně rozumějí a chápou se. Výsledkem spojení těchto tří podmínek je jak konzistentní a aktivně reagující technická infrastruktura, tak chráněná a řízená komunita.
Vše pod jednou střechou Na webové stránce „Mé portfolio“ jedné velké americké banky se už nějaký čas zákazníkům zobrazuje volba „Přidej účty“. Kliknutím na volbu se zobrazí seznam více než dvou stovek odkazů na nezávislé společnosti nabízející kreditní karty, hypotéky, pojištění, ba i letenky. Zákazníci banky, kteří mají účty u těchto společností, si mohou přetáhnout informace z těchto účtů (včetně například nalétaných kilometrů) na stránku základních bankovních informací o svém osobním portfoliu. Vše pod jednou střechou.
A co více – stejnou funkcionalitu najdou i na webových stránkách společností uvedených v seznamu. Taková federace jinak nezávislých společností nyní zákazníkovi umožní bezproblémově integrovat všechny informace o jeho účtech a zobrazovat je v mnoha různých kontextech. Takto federované společnosti zjednodušují a obohacují využívání služeb zákazníkem a díky tomu se výrazněji odlišují od konkurence.
Baterie přibaleny Jak často se vám stává, že koupíte dětem hračku nebo nějaký přístroj, začnete jej zprovozňovat – a zjistíte, že abyste práci dokončili, musíte jít ven a dokoupit baterie? Zaměstnanci pracující s ERP systémem, aplikací pro vyřizování půjček apod. musí obvykle podobným způsobem přerušit svou práce pokaždé, když pro dokončení svého úkolu potřebují například informaci o podnikatelském úvěru. Musí svou aplikaci opustit, jít na web poskytovatele informací o úvěrech a zjištěnou informaci o úvěru znovu zadat do své aplikace. Naštěstí vedoucí americká společnost poskytující informace o úvěrech si uvědomila, že může poskytovat správné informace na správném místě – a získá další příležitost k růstu svého byznysu. Proto vytvořila sadu rozhraní pro své webové služby a dodavatelům aplikací, které vyžadují informace o podnikatelských úvěrech, prodává licence na tato rozhraní. Softwaroví dodavatelé mohou rozhraní vestavět do svých aplikací, čímž svým zákazníkům umožní získat informace o úvěrech kdykoli a kdekoli je potřebují – v rámci aplikace, v níž právě pracují.
Hodný džin z láhve Online agregátoři služeb leteckých společností obvykle nabízejí letenky prakticky všech aerolinek plus rezervace služeb mnoha hotelů, pronajímatelů aut apod. Ale jeden přední agregátor rozšiřuje své podnikání i tím, že spolu s přidruženými weby buduje na svých stránkách novou SOA komunitu. Například participující golfový web může obsahovat odkazy na dovolenou v golfovém středisku na Bermudách, jazzový web odkazuje na zájezdy na festival v Newportu a na webu o vínech lze nalézt odkazy na výlety do vinohradů v údolích Sonopa a Napa. Pro návštěvníky těchto webů je SOA komunita oním hodným džinem z láhve, který umožní splnit mnohá jejich přání. Odkazy na participujících webech povedou na stránky zmíněného agregátora, odkud si mohou rezervovat všechny potřebné služby prostřednictvím dalších odkazů na weby aerolinií, hotelů, půjčoven aut apod.
Just-in-time SOA může být tvořena i vnitřními vlastníky služeb: pobočkami podniku, divizemi poboček, odděleními divizí, dokonce kancelářemi distribuovaných oddělení apod.
Významný výrobce letadel s revolučním designem využil ideu SOA komunity na nové inovativní úrovni a zásadně přepracoval své výrobní postupy. Společnost vytvořila dodavatelský řetězec SOA, jehož součástí jsou kromě externích partnerů i všechny interní pracovní útvary fungující jako nezávislí, federovaní vlastníci služeb. Cílem je schopnost insourcovat nebo outsourcovat jakoukoli úroveň služeb během pracovního procesu. Společnost přenesla výrobu just-in-time na novou úroveň, která umožňuje dostatečné přizpůsobení měnícím se okolnostem a v jednotlivých útvarech eliminuje určité úrovně byrokracie.
Cílem je bohatší zkušenost zákazníka Co mají tyto příklady společné? Koncovým uživatelům přinášejí méně problematické a bohatší možnosti v souladu s kontextem, v němž se tito uživatelé právě nacházejí. Jinými slovy, v architektuře SOA jde o vztahy, nikoli o technologii. Koncoví uživatelé si nelámou hlavu s mechanismem poskytování služeb, ale zajímají se o to, co se děje online. Jakmile získali se SOA zkušenosti, očekávají (a věří), že příslušné online služby budou spolehlivě k dispozici a průběžně se budou přizpůsobovat jejich požadavkům tak, aby jim poskytovaly širší možnosti a bohatší prožitek při jejich užívání. Výsledkem je, že potřebujeme změnit způsob, jakým se IT vyvíjí a spravuje.
Kontinuální služba Úspěch SOA se dostaví v okamžiku, kdy IT oddělení dokáží poskytovat přizpůsobitelné a stále se rozšiřující možnosti SOA uživatelům tak, aby uspokojili jejich očekávání. To znamená, že IT oddělení by měla přestat přemýšlet o vydávání nových softwarových verzí podle termínů v kalendáři, ale začít poskytovat dynamický kontextuální uživatelský prožitek jako kontinuální službu. Získávat zákazníky potřebují společnosti každý den. Představte si špičkového dodavatele nástrojů pro automatizaci prodeje, který je jedním z pionýrů obchodního modelu software jako služba SaaS (Software as a Service). Společnost přestává periodicky vydávat jednotlivé softwarové verze, ale přizpůsobuje své služby specifickým potřebám uživatelů v daném okamžiku – a software vylepšuje průběžně.
Hodnototvorný řetězec Co dalšího mají všechny výše uvedené příklady společného? SOA komunity vytvářejí hodnototvorný řetězec na různé úrovni, přičemž každý člen nebo služba inkrementálně přidává další hodnotu a rozšiřuje nebo obohacuje možnosti a prožitek koncového uživatele.
V prvním příkladě se vytváří SOA komunita společností poskytujících finanční služby, v níž přidává hodnotu každý účet, který přibude na stránku s informacemi o osobním portfoliu. Uvedené příklady vytvářejí kompletní vertikální hodnototvorný řetězec: například aerolinky odkazují na cestovního agregátora, který se naopak stává komponentou dalších přidružených webů. Výsledkem takového hodnototvorného řetězce jsou narůstající a rozšiřující se možnosti, které se mohou postupem času navíc měnit s tím, jak se mění celkový kontext. V každém případě platí, že ať už jsou členové komunity různé interní týmy, nebo nezávislé společnosti, jejich interakce jsou federované. A je důležité pochopit, které technologie a řídicí postupy jsou pro realizaci těchto propojení a pro celkový úspěch SOA nepostradatelné.
Federované interakce Na tzv. federované interakce (z angl. „federated interactions“ – tj. interakce, jejichž správa je rovnovážně rozdělena mezi lokální a centrální řízení, viz dále) lze pohlížet ze dvou úhlů: podle technického charakteru servisně orientované architektury a komunitního charakteru sociálně orientované architektury. Oba pohledy přitom spolu souvisejí – technické charakteristiky umožňují a podporují rozvoj komunitní dimenze sociální struktury SOA a naopak – členové sdružení vyžadují, aby specifické technologie a řídicí postupy společně a úspěšně fungovaly (viz obr. 2).
Obrázek 2: Technická a sociální dimenze federovaných interakcí
Z technického hlediska sestává servisně orientovaná architektura z heterogenních systémů s nezávislými bezpečnostními doménami – jako sociální struktura totiž SOA zahrnuje různé členy ovládající jejich vlastní domény, což zahrnuje i vlastní výběr platformy a zabezpečení. Integrace heterogenních systémů vyžaduje standardizované, volně provázané transportní vazby, které fungují během provozu. Pokud by se integrační prvky pevně „zadrátovaly“ už v návrhu, každá změna by vyžadovala změnu návrhu a nový zdrojový kód. Volně provázané transportní vazby podporují otevřenost sociálně orientované architektury umožňující předvídat vznik neočekávaných vztahů a vazeb. Avšak jak tyto nezávislé domény přinutíte spolupracovat jako virtuální tým a sdílet společný slovník – aby bylo možné optimalizovat výkonnost v provozním prostředí a zároveň prosazovat bezpečnost v celém rámci SOA? Právě to je totiž nepostradatelná podmínka toho, aby členové SOA mohli účinně a efektivně fungovat. SOA prochází napříč celou organizací, takže centralizované příkazy a řízení shora dolů nebudou fungovat. Jednotlivé domény budou řídit svůj díl procesu (nebo budou vyžadovat, aby jim byla tato kontrola přidělena – jako v případě pracovních buněk u výrobce letadel). Proto sociálně orientovaná architektura potřebuje konsenzuální formu governance – založenou na kontraktech a opírající se o bezpečnostní politiky a dohody SLA. Dohled nad plněním odsouhlasených kontraktů a jejich prosazování pak pomohou vybudovat důvěryhodné vztahy. Jinými slovy – ve federaci založené na SOA (oproti tradičnímu hierarchickému řízení IT) si domény udržuji vliv na klíčové funkce, ale určitou část kontroly předávají centralizovanému orgánu. Ten řídí funkce, které probíhají napříč hranicemi uvnitř SOA a propojují je. Jde například o integraci služeb, zajištění výkonnosti pracovních procesů, bezpečnost a přesnou výměnu dat. Tato rovnováha mezi centrálním a lokálním řízením se může měnit podle potřeb SOA. Pro zajištění svrchovanosti domén a akceschopnosti SOA na jedné straně a spolehlivé spolupráce na straně druhé však musí vždy existovat nějaká dělba moci.
Výsledný požadavek na řízení Pro praktickou implementaci SOA mají koncept federace a charakter federovaných interakcí zřetelné důsledky. Zaprvé SOA vyžaduje změnu řízení: přestaňte uvažovat o SOA governanci v kontextu konvenčních • hierarchických organizačních modelů, • začněte smazávat tradiční linie moci a vedení a orientujte se na spolupráci, budování důvěry a závazky plynoucí ze smluv SLA. Spolupráce založená na smlouvách SLA umožňuje využití stejných mechanismů pro insourcing i outsourcing služeb. Výsledkem je optimální
akceschopnost a produktivita (jak ukazuje příklad s výrobcem letadel). Tento přístup funguje rekurzívně na úrovni pracovní buňky, úrovni oddělení, úrovni divize, úrovni společnosti – i na ještě vyšší úrovni, kde umožňuje sloučení, akvizice i rozdělení společností a realizaci partnerských vztahů a aliancí. Zadruhé federace vyžaduje i klíčové „umožňující“ (enabling) technologie: takové, které překračují hranice heterogenních systémů a podporují spolupráci a SOA governanci. Jak bylo řečeno výše, tato infrastruktura SOA musí: • Volně propojovat interakce. Hledejte platformu pro distribuci zpráv a událostí, která je navržena tak, aby překračovala hranice platforem, sítí a organizací. • Aktivně zprostředkovat politiky. Hledejte technologii, která poskytuje přehled o pracovní výkonnosti, prosazuje soulad s bezpečnostní politikou a smlouvami SLA pokrývajícími SOA procesy a upozorňuje na rozpory s touto politikou a smlouvami. • Přesně kontrolovat sémantiku. Pro řešení sémantických nekonzistencí hledejte technologii, která vám prostřednictvím vizuálních nástrojů umožní vytvářet a řídit komplexní, sdružený, společný datový model – a umožní, aby tato sémantika fungovala v distribuovaném provozním prostředí. Toto jsou základní předpoklady pro sdružování a spolupráci, které mohou splnit pouze takové softwarové produkty, které jsou od základu určeny pro integraci a propojení různých výpočetních prostředků.
SOA dnes a zítra Tyto kritické technologie a požadavky na řízení budou hrát stále větší roli. V budoucnu bude úspěch podniku záviset na schopnosti začlenit jeho činnosti elektronicky do hodnototvorného řetězce (což mu umožní participovat v servisně orientované architektuře). Tak se může podílet na nové, dynamičtější a bohatší zkušenosti federované komunity založené na sociálně orientované architektuře. Příklady raného využívání architektur SOA ukazují, že výsledkem dalšího rozvoje SOA jsou nové, jedinečné příležitosti a zisky. SOA zapouští kořeny právě nyní – a postupuje rychle. Průzkumy ukazují, že během následujících dvou let dojde ke zdvojnásobení počtu aplikací založených na SOA. Součástí tohoto posunu bude začlenění i jiných existujících architektur do SOA. Samotný Progress Software spolupracuje s více než 350 zákazníky, kteří již nasazují SOA, a s více než stovkou aplikačních partnerů, kteří nabízejí své produkty s použitím obchodního modelu SaaS – přičemž 40 % z nich tvrdí, že řešení SaaS budou tvořit do roku 2010 více než polovinu jejich byznysu. V tuto chvíli jsou k dispozici tři kriticky důležité technologie – konektivita, prosazování politik a sémantika, které fungují v rámci SOA jako funkce
a/nebo služby. V budoucnosti budeme svědky zrodu infrastruktury typu „integrace jako služba“ vestavěné do hardwaru nebo nabízené jako spravované služby. Schopnosti, jako je například analýza, budou nabízené jako služba v reálném čase. Významná telekomunikační společnost už dnes vyrábí zařízení s vestavěnými funkcemi pro integraci založenou na SOA. Toto zařízení umístěné ve vašem sklepě vás propojí se službami poskytovanými v rámci sítě této společnosti.
Shrnutí: začněte se změnami Nejlepší cestou jak začít je praktický přístup. Začněte s projektem změn podnikových činností, nejlépe v inovativní části vašeho podnikání. Tak se můžete něco naučit o SOA a vyzrát. Aplikovat tyto změny na velké, základní podnikové systémy, které udržují kontinuitu a stabilitu podnikání, je v začátcích realizace SOA méně vhodné. Inovativní oblasti jsou také vhodnější pro aplikaci změn řízení IT, které jsou potřebné pro úspěšný vstup do SOA komunity. K nim patří nepřetržité zdokonalování služeb místo softwarových verzí vydávané k určitému termínu a spolupráce s federovanou komunitou místo hierarchického modelu řízení shora dolů. Pro úspěšnou technickou federaci jsou kritickými faktory úspěchu konektivita, možnost prosazování politik a sémantická integrace. Zvolte si nejlepší SOA řešení ve své kategorii navržené tak, aby bylo maximálně přizpůsobitelné – nikoli platformu nebo uzavřené produkty, které vás uzamknou ve svém prostředí. S takto vybudovanými základy se můžete stát součástí dynamičtějšího prostředí sociálně orientované architektury postaveného na interakcích – a využívat jeho rostoucí příležitosti a výhody.
Autor je CTO divize společnosti Progress Software zaměřené na podnikovou infrastrukturu. © Progress Software 2008