SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture...

Post on 25-Apr-2020

3 views 0 download

transcript

SOAP & REST službyRozdíly, architektury, použití …

Obsah

• Srovnání SOAP a REST služeb

• Service Oriented Architecture

• Microservice Architecture

• Příklady použití

• Nástroje pro vývoj SOAP a REST služeb (v Java)

2

Webová službaPOST /crmapi/CreateContactPersonManagement HTTP/1.1

SOAPAction: "CreateContactPerson"

Content-Type: text/xml; charset=utf-8

<SOAP-ENV:Envelope>

<SOAP-ENV:Header/>

<SOAP-ENV:Body>

<CreateContactPersonRequest>

<contactEmail>pepa@email.cz</contactEmail>

<contactMobile>420777222555</contactMobile>

<mktEmail>Y</mktEmail>

</CreateContactPersonRequest>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

HTTP/1.1 200 OK

Content-Type: text/xml; charset=utf-8

<SOAP-ENV:Envelope>

<SOAP-ENV:Header/>

<SOAP-ENV:Body>

<CreateContactPersonResponse>

<crmCpRefNo>986089</crmCpRefNo>

<resultCode>0</resultCode>

<resultMessage></resultMessage>

</CreateContactPersonResponse>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Webové a REST služby - příklad

3

REST službaPOST /crm/ContactPerson HTTP/1.1

Content-Type: application/json; charset=utf-8

{

"ContactPerson": {

"contactEmail": "pepa@email.cz",

"contactMobile": "420777222555",

"mktEmail": "Y"

}

}

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

{

"ContactPerson": {

"crmCpRefNo": "986089"

"contactEmail": "pepa@email.cz",

"contactMobile": "420777222555",

"mktEmail": "Y"

}

}

Webové a REST služby - rozdíly

SOAP Webové služby REST služby

SOAP je protokol REST je více architekturní vzor

SOAP zprostředkovává přístup ke službám REST zprostředkovává přístup k datovým zdrojům

Data v XML formátu podle SOAP protokolu Různé datové formáty, nejčastěji JSON

Specifikace WSDL+XSD Specifikace WADL, není všeobecně používaná

WS-Security + SSL Pouze SSL

Podporuje transakce - WS-Transaction Nepodporuje transakce

SOAP je náročnější na objem dat Vhodný formát dat je úspornější (např. JSON)

Volání nemohou být “kešovány” Volání mohou být “kešovány”

4

SOA Service Oriented Architecture

• Vzájemná komunikace aplikací prostřednictvím služeb definovaným komunikačním protokolem

• Providers – poskytovatelé služeb

• Consumers – uživatelé služeb

• Enterprise Service Bus - integrační/komunikační vrstva

5

SOA Komponenty

• Message-Oriented Middleware (MOM) – transportní infrastruktura

• Enterprise Service Bus (ESB) – integrační infrastruktura (routing, datové transformace, adaptéry)

• Business Process and Workflow Engines – komplexní business procesy

• Rule Engines – rozhodovací pravidla

• Complex Event Processing – detekce fraudu, zpracování eventů na základě analýzy dat, procesů, …

• Directory Services – definice služeb, endpointů

• Business Activity Monitoring – vizualizace business procesů, KPI monitoring

• Management, Administration, Monitoring

6

SOA Enterprise Service Bus

• Framework pro transformace, zpracování, routování a monitorování jednoduchých i komplexních datových struktur

• Jsou založeny na standardech a platformně nezávislé

• Poskytují:

adaptéry pro přístup ke službám různými protokoly (SOAP, HTTP, JMS, FTP, SMTP/POP3, …)

konfigurovatelné routování zpráv (synchronní, asynchronní) mezi různými messaging platformami

transakční zpracování (pro protokoly, které transakčnost podporují)

logování a zpracování chybových stavů

• Výhody

volné spojení (loose coupling) komponent a procesů

flexibilita v integraci aplikací (snadná možnost změny, náhrady služby, …)

zjednodušení vazeb mezi aplikacemi

možnost rychlé reakce na business požadavky

7

SOA Enterprise Service Bus – symboly scénářů

8

SOA Enterprise Service Bus - scénáře

• Virtualizace

• Zpřístupnění služby

9

SOA Enterprise Service Bus - scénáře

• Obohacení dat voláním služby

• Verzování služby

10

Service Oriented Architecture – výhody/nevýhody

✓ Přepoužitelnost služeb

✓ Jednotlivé aplikace mohou být vyvíjeny v různých technologiích.

✓ Interface služeb odpovídá zvolenému protokolu (SOAP, REST, …) a specifikaci

Výpadek aplikace má dopad na všechny aplikační služby (single point of failure)

Problémy jedné služby mohou negativně ovlivnit funkčnost ESB

Poměrné náročný management a monitoring infrastruktury

11

Microservice Architecture

12

Tradiční monolitické aplikace Aplikace v Microservice Architecture

Microservices Architecture

• Aplikace jsou složeny z malých nezávislých procesů, které vzájemně komunikují prostřednictvím API.

• Jednotlivé služby jsou samostatně „deploy-ovatelné“ a je možné je vyvíjet samostatně.

• Nezávislost na kontextu – funkčnost služby nesmí být závislá na kontextu (session)

13

Microservices Architecture – výhody/nevýhody

✓ Jednotlivé služby mohou být vyvíjeny v různých technologiích

✓ Interface služeb odpovídá zvolenému protokolu (SOAP, REST, …) a specifikaci

✓ Výpadek jedné služby má minimální dopad na okolí, ostatní instance služby mohou dále spolehlivě fungovat

✓ Vývoj jednotlivé služby je jednodušší, snadněji pochopitelný pro nové vývojáře

✓ Škálovatelnost

✓ Volné provázání – minimální vzájemná závislost

Složitější architektura – vzájemná komunikace mezi službami, více databází & transaction management.

Testování – testování služby vyžaduje všechny závislé služby

Deployment – komplexnost, vyžaduje koordinaci deploymentu jednotlivých služeb14

Využití v praxi – SOA & Web Services

• API Paypal, Salesforce, Clickatell SMS

• B2B komunikace při prodeji ADSL služeb

• Integrace aplikací u TELCO operátorů, bank, …

15

CRM ProvisioningDWH

Web Selfcare eShop

BillingMediation

Integration Platform

Web Portal Apps

Využití v praxi – Microservices & REST

• API Twitter, LinkedIn, Slack

• Webové aplikace vyvíjené pro různá zařízení

• Aplikace pro zpřístupnění bankovních služeb v rámci Směrnice EU o platebních službách (PSD2)

16

Nástroje pro vývoj SOAP a REST služeb

• Web ServicesAPI (Java)

JAX-WS – referenční implementace v Java Spring-WS Axis2 CXF

Testování SOAP UI

• Rest ServicesAPI (Java)

JAX-RS - referenční implementace v Java EE Jersey spring-web, spring-webmvc

Testování Postman SOAP UI

Swagger – framework pro design, generování/sestavení rozhraní služeb, dokumentace, testování

17

18

Workshop - Vývoj v React & Spring Boot

Děkuji za pozornost