jak vytvořit architekturu orientovanou na služby (SOA)
©. com / Bakhtiar Zein
v tomto článku se zaměřujeme na téma architektury orientované na služby (SOA). Začneme s hlubokým ponorem v 1) SOA: popis a jít pak diskutovat 2) budování architektury orientované na služby.
Architektura orientovaná na služby: popis
co je SOA?
SOA nebo Architektura orientovaná na služby je metoda, pomocí které mohou různé typy služeb vzájemně komunikovat nezávisle. Služba je samostatnou součástí funkčnosti a lze kombinovat několik služeb, které poskytují použití a funkčnost softwarové aplikace ve velkém měřítku. SOA dělá to, že usnadňuje interakci a spolupráci softwarových částí na počítačích připojených k síti. Návrhový vzor SOA je takový, že komponenty aplikací v něm mohou nabízet služby jiným takovým komponentům většinou přes síť. Každý počítačový systém může provozovat libovolný počet služeb, z nichž každá je postavena tak, aby si vyměňovala informace s jakoukoli jinou službou v síti bez lidské pomoci.
v obchodní terminologii je SOA sada IT služeb zaměřených na podnikání, které společně řeší cíle a procesy obchodní společnosti. Konstrukční návrh SOA zajišťuje, že existuje soulad s požadavky podniku, stejně jako technologické řešení stejné.
hlavní prvky SOA
zde jsou hlavní prvky SOA:
- ovladače SOA-ovladače SOA nebo podnikové ovladače zahrnují věci jako konkurence, strategie, regulační síly a tržní síly. Všechny tyto věci se spojují, aby řídily obchodní architekturu a daly tvar celopodnikovému řízení výkonu
- aktivátory SOA-pět hlavních aktivátorů SOA je podnikový obchodní model, optimalizace výkonnosti podniku, racionalizace portfolia, definice podnikové sémantiky a klíčové ukazatele výkonnosti. Mít obchodní model je důležité pro správné sladění služeb s cíli a cíli podniku. Sémantický informační model poskytuje společné a obecné informace týkající se podnikání pro daný podnik. Klíčové ukazatele výkonnosti nebo KPI umožňují posouzení dopadu SOA a usnadňují měření obchodních procesů. Na druhé straně racionalizace portfolia umožňuje konsolidaci a zjednodušení aplikací, dat a infrastruktury.
- implementace SOA-pokud jde o implementaci, jsou hlavními aspekty obchodní služby a procesy. Obchodní procesy jsou většinou spojeny s obchodními cíli a cíli operací, zatímco na druhé straně musí být obchodní služby dobře sladěny a jsou rozhodující pro flexibilní a úspěšnou implementaci SOA. Některé z dalších aspektů souvisejících s implementací SOA jsou úložiště podnikového obsahu, sémantické zasílání zpráv a integrační služby. Informace představují datové zdroje společnosti a tato data jsou předávána ve formě dokumentů, které poskytují určitý druh sémantických zpráv mezi službami a procesy.
- podpora SOA-všechny funkce a prvky ze stávajících aplikací a systémů jsou zpřístupněny a použitelné pro služby s podporou některých integračních služeb, které sundávají kryty ze stávajících funkcí prostřednictvím nových servisních rozhraní.
hlavní zásady SOA
níže je uveden seznam hlavních principů SOA:
- Architektura služeb-fyzické rozvržení nebo návrh jednotlivých služeb, které překonávají všechny zdroje, které služba použila.
- Architektura složení služeb-všechny služby vyvinuté pomocí metod návrhu orientovaných na služby jsou zaměřeny na složení a to je jejich hlavní rys. Tato architektura je tedy složením jednotlivých architektur různých služeb.
- Architektura inventáře služeb-tato architektura je tvořena plánem inventáře služeb, kde je inventář služeb tvořen službami, které automatizují postupy podniků.
- Podniková Architektura orientovaná na služby-tento typ představuje architekturu složení, služeb i inventáře.
vývoj konceptu SOA
- monolitický design-tento návrh souvisel s relativně nestrukturovaným procedurálním kódováním
- objektově a strukturně orientovaný design-Jedná se o návrh, který zahrnuje programové jednotky založené na funkcionalitách –
- design klient-server (dvouvrstvý design) – jedná se o koncept distribuovaného designu a souvisí se sdružováním funkcí do dvou úrovní.
- distribuovaný návrh objektů (multitier design) – tento návrh zahrnuje interakce objektů v heterogenním prostředí a distribuovaný návrh objektů.
- Component object Model architecture – jedná se o návrh, ve kterém dochází k agregaci položek do logických částí se silně typy a dobře definovaným rozhraním.
- Service oriented architecture-jedná se o návrh, který zahrnuje interakce a komunikaci mezi hrubozrnnými službami se standardními rozhraními pro flexibilní interakce.
SOA a JAVA
mnoho vývojářů si myslí, že SOA, stejně jako webové služby, jsou navzájem synonymem, ale to není pravda. Mohou se také domnívat, že to prostě není možné stavět SOA bez použití webových služeb, ale ve skutečnosti, SOA je princip designu, ale webové služby jsou jakousi implementační technologií. To znamená, že SOA může být ve skutečnosti postavena bez použití implementační technologie určitého druhu. Java je však jiný druh tradiční technologie, kterou lze použít k vývoji nebo budování architektury orientované na služby.
hlavním cílem SOA je vyvinout volné spojení mezi moduly a aplikace může být postavena tam, kde moduly nejsou navzájem příliš těsně spojeny. Tento druh struktury může být postaven nebo vytvořen pomocí JAVA.
jaké jsou vlastnosti SOA?
- volné připojení-služby v SOA jsou volně propojeny a tvoří jedno spojení. To dává předpoklad k modicum vzájemné závislosti mezi jednotlivými službami. Hlavní myšlenkou je snížit vzájemnou závislost na úroveň, kde je kompatibilita stále zachována.
- standardizované rozhraní služeb – jedním ze základních požadavků SOA je potřeba standardizace rozhraní i detailů. Podrobnosti musí obsahovat údaje, které jsou potřebné, jak lze službu používat a jak je třeba aplikovat pravidla.
- znovupoužitelnost-v SOA je znovupoužitelnost služeb v procesním řetězci možná i jinými stranami a také pro jiné typy účelů.
- vyhledatelnost služby-další charakteristikou je, že služba musí být snadno nalezena, aby ji mohla používat. Pro všechny spotřebitele jsou k dispozici úložiště služeb a tyto úložiště se skládají z rozhraní a způsobu implementace služby.
- autonomie služeb-každá služba musí být schopna pracovat a fungovat nezávisle. Tento termín poukazuje na ty služby, které jsou soběstačné a jsou schopny samostatně spravovat zdroje, logiku a životní prostředí.
- kapacita pro orchestraci služeb-jedná se o proces, kdy je individuální služba kombinována s jinými takovými službami, což má za následek větší obchodní procesy nebo jednotky. To je další charakteristika nebo požadavek na SOA.
- Bezstátnost služeb-výkon služeb je založen na konceptu, že je poskytována definovaná služba. To zohledňuje uchovávání údajů, ale pouze pokud je požadavek specifikován nebo požadován zvlášť.
výhody a přínosy SOA
- lepší návratnost investic-jednou z největších výhod SOA je, že nabízí vynikající návratnost investic. Vzhledem k tomu, že proces zahrnuje vytvoření robustních vrstev, každá z těchto servisních vrstev nabízí lepší návratnost investice, která byla provedena na vytvoření softwaru.
- mobilita kódu – to je další důležitá výhoda SOA a je možná, protože v architektuře orientované na služby existuje transparentnost umístění. Většina klientů se nestará o to, kde se služby nacházejí, protože existuje dynamická vazba I vyhledávání služeb. To znamená, že podniky používající SOA mohou přesouvat služby na různé stroje nebo je přesouvat k externím poskytovatelům služeb.
- opakovatelnost-další výhodou SOA je, že různé kódy a služby mohou být použity znovu a znovu. K dispozici je pohodlí run-time služby opětovného použití, a to je stejně snadné jako najít službu v adresáři a vázání na něj. Vývojáři se nemusí starat o platformy a další nekompatibility.
- podpora pro různé typy klientů-každá společnost může používat více typů klientů a více klientů pro přístup ke službě v SOA. Je to proto, že v takové struktuře nebo konceptu byly vrstvy rozděleny na služby a klientské vrstvy a různé typy klientů jsou jednodušší implementovat.
- vyšší úroveň dostupnosti-několik serverů má několik případů služeb, které je používají, protože SOA podporuje transparentnost umístění. To znamená, že celková dostupnost je velmi vysoká. Pokud například stroj nebo část sítě přestane fungovat nebo má nějaký problém, mohou být požadavky přesměrovány na jiné služby, aniž by o tom klient věděl nebo se tím obtěžoval.
- méně vad-to je hlavní výhoda SOA. Pravděpodobnost závad je mnohem nižší a celkové testování je mnohem lepší díky publikovaným rozhraním služeb, které lze snadno testovat. Více testování se promítá do vyšší úrovně přesnosti a méně závad.
výzvy SOA
- nedostatek testovacího prostoru-jednou z největších výzev v SOA je nedostatek testovacího prostoru. V typické architektuře neexistují žádné dobře vytvořené nebo sofistikované nástroje nebo metody pro testování bezhlavé služby, jako je zpráva nebo databázová služba. Hlavním cílem SOA je nabídnout agility společnostem a podnikům. Ale kvůli nedostatku horizontální důvěry je třeba investovat do testovacího rámce, který by tuto výzvu usnadnil.
- Správa metadat služeb – to je běžná a velmi zřejmá výzva SOA. Správa metadat služeb není jen náročná, ale často velmi komplikovaná. Architektonický prostor založený na službách zahrnuje služby, které spolu komunikují výměnou zpráv. V takovém případě může mít jedna služba někdy vygenerované miliony zpráv. Správa těchto mnoha služeb může být velmi obtížná, zejména pokud jsou služby poskytovány různými společnostmi a odděleními v rámci společnosti. To vytváří mnoho problémů s důvěrou.
- zajištění správné úrovně zabezpečení-další výzvou SOA je zajištění odpovídající úrovně zabezpečení. Zabezpečení řízené aplikací není správnou metodou nebo modelem pro zabezpečení služeb, protože bezpečnostní modely navržené do aplikací nemohou stačit, když se aplikace ukáže ostatním.
- interoperabilita-to se stává klíčovým aspektem implementace SOA. Často, ve snaze snížit nebo snížit vzájemnou závislost služeb, kompatibilita mezi nimi může snížit, ale závislost musí být snížena na takovou úroveň, že kompatibilita může být stále zachována.
- Vendor hype – existuje významný vendor humbuk související s SOA, což vytváří určitou úroveň nepřiměřených očekávání. I když existuje mnoho výhod SOA, může mít také několik nevýhod. Například SOA nezaručuje snížení nákladů na IT a ani neslibuje zlepšení agility systémů. Bylo by tedy lepší, kdyby existoval jasný rozdíl mezi humbukem a realitou.
budování architektury orientované na služby
SOA Framework
abyste pochopili, jak je SOA postavena, musíte nejprve pochopit, jaký je její rámec.
SOA se považuje za 5 různých vodorovných vrstev, které jsou:
- vrstva spotřebitelského rozhraní-Jedná se o aplikace, které přistupují k rozhraní služeb nebo aplikací.
- Business process layer-jedná se o vrstvu, která je službou, která představuje obchodní případy použití, pokud jde o aplikace.
- služby-mnoho služeb je spojeno dohromady pro vytvoření celého podniku.
- servisní komponenty – jedná se o součásti nebo součásti, které se používají k vytváření služeb, jako jsou technologická rozhraní a technické knihovny atd.
- operační systémy-jedná se o vrstvu, která obsahuje technické vzory, datové modely a úložiště dat atd.
níže jsou uvedeny vertikální vrstvy SOA rámce, které jsou aplikovány a podporovány horizontálními:
- integrační vrstva – tato vrstva se skládá z podpory protokolu nebo integrace platformy, integrace dat, integrace aplikací a služeb atd.
- kvalita služeb – faktory, které tvoří kvalitu služeb, zahrnují dostupnost, bezpečnost, výkon a další.
- informační-tato vrstva dělá hlavně práci poskytování informací souvisejících s obchodem.
- Governance-tato vrstva nebo vrstva strategie IT je řízena horizontálními vrstvami, aby bylo možné podle potřeby dosáhnout schopnosti a provozního modelu.
SOA Implementation Framework (SOAIF)
SOA implementace potřebuje a vyžaduje run-time infrastrukturní software, stejně jako nástroje. Toto může být souhrnně označováno jako service-oriented architecture implementation framework nebo SOAIF. Cílem tohoto konceptu je komplexní rámec, který nabízí všechny druhy technologií, které podnik může vyžadovat nejen k vybudování, ale také ke spuštění SOA. SOAIF se skládá z funkcí run-time a design-time a zahrnuje je. Zahrnuje také softwarové funkce, které může společnost potřebovat ke spuštění SOA a také k jeho vybudování, včetně orientovaných na služby:
- modelování
- integrace
- nástroje
- Management
- bezpečnost
- procesy
přístupy k SOA
existují tři hlavní typy nebo metody nebo přístupy, které se objevují pro klubové informace, nesourodé a systémy v podnikání. Vzhledem k tomu, že různí poskytovatelé služeb a podniky usilují o poskytování řešení zákazníkům a spotřebitelům, tyto přístupy pomáhají splnit požadavky na hrubozrnné, volně klubové a asynchronní služby.
1. Enterprise Service Bus
první přístup, který pomáhá budovat a implementovat optimální SOA, je enterprise service bus nebo ESB. Tento přístup pomáhá koordinovat a uspořádat různé prvky, které jsou ve formě distribuovaných služeb v síti. Tento přístup považuje systémy za diskrétní a distribuované služby, které se navzájem propojují prostřednictvím asynchronní infrastruktury orientované na zprávy. Tento druh infrastruktury orientované na zprávy umožňuje mít volně spojená spojení mezi nezávislými službami nebo moduly.
2. Řízení podnikových procesů
mnoho společností se již mnoho let snaží řešit problémy obchodních procesů implementací přístupu k řízení obchodních procesů. Tento přístup bere v úvahu it aktiva a systémy jako činnosti nebo úkoly, které se účastní dobře synchronizovaných a dobře organizovaných obchodních postupů. Nástroje BPM se používají hlavně v době modelování a navrhování postupů, spíše než je používat k vytváření procesů, které mohou dosáhnout integračních cílů. To je hlavní výzva BPM. By BPM řešení na vlastní pěst jsou dost pro splnění požadavků SOA, protože nespočívají v runtime prostředí, které je potřebné pro volně spřažených modulů.
3. Integrace orientovaná na služby
třetím a posledním přístupem ke správné implementaci SOA je integrační přístup orientovaný na služby. Tento konkrétní přístup využívá architektonických vodících pravidel nebo zásad k vytvoření prostředí nebo ekosystému služeb, které podniky mohou dynamicky kombinovat a vytvářet procesy na vyšší úrovni, které mohou splňovat neustále se měnící a vyvíjející se požadavky. Tento přístup se pohybuje kolem pevně spojených a křehkých modulů tím, že vytváří rozdíl mezi spotřebitelem a výrobcem služby. Ukládá tedy aspekt volné vazby, který je potřebný k řádnému zavedení SOA pro splnění obchodních požadavků. Ani tento přístup sám o sobě nestačí k zajištění dlouhodobých interakcí mezi službami.
osvědčené postupy pro budování SOA
při budování SOA je třeba dodržovat některé z nejlepších a nejvýhodnějších postupů. Tyto postupy jsou uvedeny následovně:
- implementační technologie jsou hodně medializované a člověk si musí pamatovat, aby na ně kvůli jejich popularitě neskočil. Je třeba pečlivě zvážit, zda webové služby dávají větší smysl pro jejich požadavek a potřebu. Je důležité si uvědomit, že budování aplikací orientovaných na služby využíváním technologií, jako je RMI, může být vhodnější pro obchodní případ než pro webové služby.
- je třeba si uvědomit, že nevytvářejte nebo nevytvářejte velmi těsně propojené nebo spojené moduly, protože to vede k křehkému nastavení nebo infrastruktuře.
- je důležité zachovat interoperabilitu, a proto je třeba dodržovat osvědčené postupy WS-I.
- pokud nevidíte žádný smysl v používání webových služeb, pak existuje mnoho dalších alternativních možností, které mohou být vybrány.