Budowa usług internetowych: SOAP, Websockets

Post on 08-Feb-2017

100 views 0 download

Transcript of Budowa usług internetowych: SOAP, Websockets

Budowa usług internetowych

część II

kbtech.org

http://goo.gl/forms/H5UsucTzWcfVfl7E2

SOAPSimple Object Access Protocol

Agenda

• Czym jest usługa SOAP?

• Jaka jest pozycja SOAP na tle rynku?

• Co jest i jak radzić sobie z WSDL?

• Jak stworzyć klienta SOAP?

RPC (Remote Procedure Call)

A Bx.addCoins(20);

serwer serwer

FALSE

order(item1, item2, item3)

login(“name”, “124”)

TRUE

Potok SOAP

A B

serwiszamówień

serwis kont

klientów

TRUE

removeU(“name”)

aplikacjamobilna

A

B

CSOAP

?REST!

Diagram przepływu microserwisów

A BSOAP• iOS• Andoid• jednorożec*

REST

*podobno Windows Phone jeszcze istnieje

@WebServicepublic class Hello { private String message = new String("Hello, ");

public void Hello() { }

@WebMethod public String sayHello(String name) { return message + name + "."; }}

Jak napisać usługę SOAP w Javie EE?

Pamiętaj o pustym konstruktorze!

W S D Language

ervice

eb

escription“proszę, tylko niekaż mi tego czytać”

Dokument automatycznie generowane przez serwer!

Jak stworzyć klienta SOAP w oparciu o WSDL?

generuj klienta automatycznie

źródło: Google Trends

Stabilizacja wykorzystania SOAP

źródło: Google Trends

Rezygnacja z XML na JSON (gdzie możliwe)

Komunikacja stanowa

(web)sockety

Agenda

• Co to jest komunikacja stanowa?

• Jak ją implementować?

• Kiedy ją wybrać, a kiedy zrezygnować?

Wszystko,co dotąd używaliśmy,było bezstanowe

komunikacja stanowa komunikacja bezstanowa

komunikacja stanowa

Gdzie leży problem wyboru?

http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/

Czas odpowiedzi w zależności od obciążenia [ms]

10 100 500 1000 5000 10000

0

3000

6000

9000

12000

http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/

Liczba zapytań (stały interwał czasu T)

10 100 500 1000 5000 10000

0

350

700

1050

1400

https://www.pubnub.com/blog/2015-01-05-websockets-vs-rest-api-understanding-the-difference/

Kiedy REST < (web)sockets?

@ServerEndpoint("/actions")public class DeviceWebSocketServer {

@OnOpen public void open(Session session) { }

@OnClose public void close(Session session) { }

@OnError public void onError(Throwable error) { }

@OnMessage public void handleMessage(String message, Session session) { }

}

Jak napisać usługę stanową w Javie EE?

http://goo.gl/forms/H5UsucTzWcfVfl7E2

Dzięki za każde wypełnienie!

Koniecczęści II