SOAP & REST služby Rozdí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é a REST služby - příklad Webová služba POST /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> REST služba POST /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: 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> HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "ContactPerson": { "crmcprefno": "986089" "contactemail": "pepa@email.cz", "contactmobile": "420777222555", "mktemail": "Y" } } 3
Webové a REST služby - rozdíly SOAP Webové služby SOAP je protokol SOAP zprostředkovává přístup ke službám Data v XML formátu podle SOAP protokolu Specifikace WSDL+XSD WS-Security + SSL Podporuje transakce - WS-Transaction SOAP je náročnější na objem dat Volání nemohou být kešovány REST služby REST je více architekturní vzor REST zprostředkovává přístup k datovým zdrojům Různé datové formáty, nejčastěji JSON Specifikace WADL, není všeobecně používaná Pouze SSL Nepodporuje transakce Vhodný formát dat je úspornější (např. JSON) 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 Tradiční monolitické aplikace Aplikace v Microservice Architecture 12
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žeb 14
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, Web Selfcare eshop Web Portal Apps Integration Platform CRM Mediation DWH Billing Provisioning 15
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 Services API (Java) JAX-WS referenční implementace v Java Spring-WS Axis2 CXF Testování SOAP UI Rest Services API (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
Workshop - Vývoj v React & Spring Boot 18
Děkuji za pozornost