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

19
SOAP & REST služby Rozdíly, architektury, použití …

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

Page 1: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 2: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 3: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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>[email protected]</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": "[email protected]",

"contactMobile": "420777222555",

"mktEmail": "Y"

}

}

HTTP/1.1 200 OK

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

{

"ContactPerson": {

"crmCpRefNo": "986089"

"contactEmail": "[email protected]",

"contactMobile": "420777222555",

"mktEmail": "Y"

}

}

Page 4: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 5: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 6: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 7: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 8: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

8

Page 9: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

SOA Enterprise Service Bus - scénáře

• Virtualizace

• Zpřístupnění služby

9

Page 10: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

SOA Enterprise Service Bus - scénáře

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

• Verzování služby

10

Page 11: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 12: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

Microservice Architecture

12

Tradiční monolitické aplikace Aplikace v Microservice Architecture

Page 13: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 14: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 15: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 16: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 17: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

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

Page 18: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

18

Workshop - Vývoj v React & Spring Boot

Page 19: SOAP & REST službyzacek/infs2/SoapRest.pdf · 2018-03-20 · Microservices Architecture –výhody/nevýhody Jednotlivé službymohou být vyvíjeny v různých technologiích Interface

Děkuji za pozornost