Principy SOA (Service Oriented Architecture)

Anonim

Servisně orientovaná architektura (SOA) je architektonický vzor v designu počítačového softwaru, ve kterém aplikační komponenty poskytují služby jiným komponentám prostřednictvím komunikačního protokolu, obvykle přes síť. Principy orientace na služby jsou nezávislé na jakémkoli produktu, prodejci nebo technologii.

SOA právě usnadňuje vzájemnou spolupráci softwarových komponent v různých sítích.

Webové služby, které jsou postaveny podle architektury SOA, mají tendenci dělat webovou službu nezávislejší. Samotné webové služby si mohou navzájem vyměňovat data a kvůli základním principům, na nichž jsou vytvořeny, nepotřebují žádný druh lidské interakce a také nepotřebují žádné úpravy kódu. Zajišťuje bezproblémovou interakci webových služeb v síti.

SOA je založena na některých klíčových principech, které jsou uvedeny níže

  1. Standardizovaná servisní smlouva - služby se řídí popisem služby. Služba musí mít nějaký popis, který popisuje, o čem služba je. To klientským aplikacím usnadňuje pochopení toho, co služba dělá.
  1. Loose Coupling - menší vzájemná závislost. Toto je jedna z hlavních charakteristik webových služeb, která uvádí, že mezi webovými službami a klientem vyvolávajícím webovou službu by měla existovat co možná největší závislost. Takže pokud se funkčnost služby kdykoli změní, neměla by klientskou aplikaci rozbít nebo ji zastavit v práci.
  1. Service Abstraction - Služby skryjí logiku, kterou zapouzdřují před vnějším světem. Služba by neměla zveřejňovat, jak provádí svou funkčnost; mělo by to jen říct klientské aplikaci o tom, co dělá, a ne o tom, jak to dělá.
  1. Znovu použitelnost služby - logika je rozdělena na služby s cílem maximalizovat opětovné použití. V každé vývojové společnosti je opětovné použití velkým tématem, protože by evidentně nikdo nechtěl trávit čas a úsilí vytvářením stejného kódu znovu a znovu napříč více aplikacemi, které je vyžadují. Jakmile je tedy kód pro webovou službu napsán, měl by mít schopnost pracovat s různými typy aplikací.
  1. Autonomie služby - Služby by měly mít kontrolu nad logikou, kterou zapouzdřují. Služba ví všechno o tom, jaké funkce nabízí, a proto by měla mít také úplnou kontrolu nad kódem, který obsahuje.
  1. Bezdomovectví služeb - v ideálním případě by služby měly být bez státní příslušnosti. To znamená, že služby by neměly zadržovat informace z jednoho státu do druhého. To by bylo třeba provést buď z klientské aplikace. Příkladem může být objednávka zadaná na nákupním webu. Nyní můžete mít webovou službu, která vám poskytne cenu konkrétní položky. Pokud jsou však položky přidány do nákupního košíku a webová stránka přejde na stránku, kde provádíte platbu, odpovědnost za cenu položky, která má být převedena na platební stránku, by neměla provádět webová služba. Místo toho to musí udělat webová aplikace.
  1. Zjistitelnost služby - Služby lze zjistit (obvykle v registru služeb). Už jsme to viděli v konceptu UDDI, který provádí registr, který může obsahovat informace o webové službě.
  1. Skladatelnost služeb - Služby rozdělují velké problémy na malé problémy. Jeden by nikdy neměl vložit všechny funkce aplikace do jedné služby, ale místo toho službu rozdělit na moduly, každý se samostatnou obchodní funkcí.
  1. Interoperabilita služeb - Služby by měly používat standardy, které umožňují různým předplatitelům používat službu. Ve webových službách se k zajištění souladu s tímto principem používají standardy jako XML a komunikace přes HTTP.