Metodiky pro vývoj webových služeb – vývoj mobilních aplikací, webové služby, architektura SOA – technologie
Přejít na obsah

Metodiky pro vývoj webových služeb – vývoj mobilních aplikací, webové služby, architektura SOA

Reklamy

Coulouris definoval distribuované systémy jako „systémy, ve kterých hardwarové a/nebo softwarové komponenty existující v počítačové síti komunikují a koordinují své akce výměnou zpráv“.

Tento koncept se v posledních letech stal populárním kvůli několika faktorům. Prvním faktorem, který podpořil rozvoj distribuovaných systémů, byl vznik vysokorychlostních lokálních sítí. Dalším důležitým faktorem byl technologický pokrok ve výkonu osobních počítačů a vývoj softwaru pro podporu distribuovaných aplikací. Distribuované systémy jsou propojeny s konceptem webu a internetu. S vývojem webu a objevováním nových oblastí, interakcí, potřeb a aplikací se objevuje koncept webu 2.0. Tento termín zavedl Tim O'Reilly v roce 2004, aby označoval druhou generaci v historii webu založenou na uživatelských komunitách a speciální řadě služeb, jako jsou sociální sítě, blogy, wiki nebo folksonomie, které podporují spolupráci a rychlé výměnu informací mezi uživateli.

První architektury, které lze považovat za orientované na služby (SOA), byly založeny na architektuře CORBA (Common Object Request Broker Architecture), která fungovala jako abstraktní vrstva pro propojení různých prvků architektury a vytváření služeb. Další dřívější technologie byly DCOM (Distributed Component Object Model) nebo RPC (Remote Procedure Protocol). S potřebou efektivně navrhovat a implementovat distribuované systémy na webu vyvstává několik výzev, některé zaměřené na samotný vývoj (výkon, uživatelská zkušenost atd.) a další doplňkové, založené na opětovné použitelnosti a kompatibilitě služeb. Z těchto potřeb vyplývají webové služby, které poskytují standardizované mechanismy pro propojení různých uživatelů s informačními servery.

ARCHITEKTURY ZAMĚŘENÉ NA SLUŽBY

Podle SOA (Service Oriented Architecture) jsou softwarové architektury, které definují použití služeb pro podporu obchodních požadavků, jejichž cílem je dosáhnout co nejmenšího propojení mezi softwarovými agenty. Služba je jednotka práce vykonávaná poskytovatelem služby za účelem dosažení konečného výsledku požadovaného spotřebitelem služby. Poskytovatel služeb i spotřebitel služeb jsou role, které hrají softwaroví agenti, nikoli vlastníci softwaru. V obecném smyslu je architektura orientovaná na služby softwarové řešení, které má podniku umožnit organizovat a využívat různé procesy. Díky SOA již softwarové aplikace nepředstavují masivní bloky funkcí a procesů. Místo toho jsou tyto aplikace tvořeny sestavenými modulárními službami. Pamatujte, že služba je jednoduchá softwarová funkce (jako zrušení CD). Může být spuštěn na vyžádání jakýmkoli systémem, bez ohledu na operační systém, platformu, programovací jazyk nebo geografickou polohu.

Revoluční na SOA není samotný koncept, který existuje již dlouhou dobu, ale skutečnost, že jej lze implementovat přes WWW (World Wide Web). Stejně jako se webové stránky načítají na jakékoli platformě, webové služby fungují podobně bez ohledu na platformu, na které jsou vytvořeny
univerzální standardy.

FotografieMyšlenka SOA vychází přímo z objektově orientovaného programování, což naznačuje vztah mezi daty a jejich zpracováním. Formálně tedy definují služby prostřednictvím rozhraní, která jsou nezávislá na základní platformě a programovacím jazyce. Tato rozhraní skrývají zvláštnosti své implementace, což je činí nezávislými na vývojářský a programovací jazyk. Prostřednictvím těchto architektur je možné navrhnout a implementovat vysoce škálovatelné systémy, které odrážejí obchodní logiku a zároveň usnadňují interakci mezi různými proprietárními systémy nebo systémy třetích stran. Důvod, proč chceme, aby za nás práci udělal někdo jiný, je ten, že jsou odborníci. Používání služby je obvykle levnější a efektivnější, než když to děláte sami. Většina z nás tedy chápe, že nemůžeme být odborníci na všechno. Stejné pravidlo lze použít pro vytváření softwarových systémů.

Rozhraní jsou velmi důležitá, pokud nejsou dobře definována nebo nefungují, systém nefunguje. Integrace více rozhraní je nákladná a také zvyšuje potenciál chyb v distribuovaných aplikacích. Vzdálená rozhraní jsou nejpomalejší částí většiny distribuovaných aplikací. Díky tomu všemu je místo vytváření nových rozhraní pro každou aplikaci smysluplnější znovu používat obecná rozhraní pro všechny aplikace.

Protože máme k dispozici pouze několik obecných rozhraní, musíme do zpráv zahrnout sémantiku specifickou pro aplikaci. Prostřednictvím našich rozhraní můžeme posílat jakýkoli druh zprávy, ale existují určitá pravidla, která je třeba dodržovat, abychom řekli, že architektura je orientovaná na služby.

– Za prvé, zprávy musí být popisné, nikoli poučné, protože za vyřešení problému je odpovědný poskytovatel služeb. Bylo by to například podobné situaci, kdy zajdete do restaurace a řeknete číšníkovi, co si dáte k pití a jaké máte preference, ale neměli bychom kuchaři vysvětlovat, jak připravit vaše pokrmy, krok za krokem.

‐ Za druhé, poskytovatelé služeb nebudou schopni porozumět vašemu požadavku, pokud jejich zprávy nebudou napsány ve formátu, struktuře a slovní zásobě srozumitelné všem zúčastněným. Omezení slovní zásoby a struktury zpráv je tedy a
nutné pro efektivní komunikaci. Čím užší je sdělení, tím je srozumitelnější.

- Za třetí, možnost prodloužení je životně důležitá. Svět je neustále se měnící místo a stejně tak se mění i prostředí, ve kterém software žije. Tyto změny vyžadují odpovídající změny v systémovém softwaru, spotřebiteli služeb, poskytovatelů a zpráv, které si vyměňují. Pokud zprávy nejsou rozšiřitelné, spotřebitelé a poskytovatelé jsou uzamčeni na konkrétní verzi služby. Omezení a rozšiřitelnost spolu hluboce souvisí, potřebujete obojí a zvýšení jednoho znamená snížení druhého. Ideální je dosáhnout správné rovnováhy.

– Za čtvrté, SOA musí mít mechanismus, který umožní spotřebiteli objevit poskytovatele služeb v kontextu služby, kterou spotřebitel hledá. Mechanismus by měl být flexibilní a neměl by se jednat o centralizovaný registr.

- Za páté, služba bez státní příslušnosti: Každá zpráva, kterou spotřebitel odešle poskytovateli, musí obsahovat všechny informace, které poskytovatel potřebuje ke zpracování. Toto omezení činí poskytovatele služeb škálovatelnějším, protože poskytovatel nemusí ukládat informace o stavu mezi požadavky. To lze nazvat „službou hromadné výroby“, protože každý požadavek lze zpracovat obecně. Toto omezení také poskytuje větší viditelnost, protože jakýkoli monitorovací software může nezávisle zkontrolovat požadavek a extrahovat jeho záměr. To také umožňuje snadné zotavení z částečných selhání, protože neexistují žádné přechodné stavy, což činí službu spolehlivější.

- Za šesté, idempotentní požadavky (neprovádějící žádné změny): duplicitní požadavky přijaté softwarovým agentem mají stejný účinek jako jeden požadavek. Tento požadavek umožňuje poskytovatelům a spotřebitelům zvýšit celkovou spolehlivost službu, jednoduše zopakujte požadavek, pokud došlo k nějaké chybě.

Můžeme tedy říci, že SOA není nástroj, ale soubor standardů pro vytváření nových aplikací, dynamičtějších a méně závislých. SOA usnadňuje přístup k obchodní logice a informacím napříč více službami systematickým způsobem a může také organizovat více vzdálených služeb, aby vytvořily jedinou. většina z definice identifikují použití webových služeb, které uvidíme v další kapitole, při implementaci architektury orientované na služby. Lze jej však implementovat pomocí jakékoli jiné technologie založené na službách.