Using REST for SOA Stefan Tilkov, QCon SF 2010

Size: px
Start display at page:

Download "Using REST for SOA Stefan Tilkov, QCon SF 2010"

Transcription

1 Using REST for SOA Stefan Tilkov, QCon SF 2010

2 Stefan Tilkov innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D Ratingen CH-6330 Cham Phone Phone

3 REST

4 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

5 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

6 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

7 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

8 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages GET /customers/1234 Host: example.com Accept: application/vnd.mycompany.customer+xml <customer>...</customer>

9 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages GET /customers/1234 Host: example.com Accept: application/vnd.mycompany.customer+xml <customer>...</customer> GET /customers/1234 Host: example.com Accept: text/x-vcard begin:vcard... end:vcard

10 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

11 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages <order self=' <item> <amount>23</amount> <product ref=' /> </item> <customer ref=' /> <link rel='items' ref=' /> </order>

12 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages <order self=' <item> <amount>23</amount> <product ref=' /> </item> <customer ref=' /> <link rel='items' ref=' /> </order>

13 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages <order self=' <item> <amount>23</amount> <product ref=' /> </item> Stop Worrying <customer ref=' /> <link rel='items' About URI Design ref=' /> </order>

14 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

15 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60

16 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>...

17 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>...

18 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method Media Type GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>...

19 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 Media Type HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>... Data

20 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 Media Type HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>... Data Control Data

21 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method Media Type GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=60 HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified: Fri, 02 Oct :47:31 GMT Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Connection: Keep-Alive Content-Type: application/xml VisibilityControl Data Data <?xml version= 1.0 encoding= utf-8?>...

22 getorderdetails() submitapplicationdata() updatequote() findmatchingbid() initiateprocess() cancelsubscription() listauctions() getusers()

23 getorderdetails() findmatchingbid() initiateprocess() submitapplicationdata() listauctions() getusers() updatequote() cancelsubscription()

24 getorderdetails() findmatchingbid() initiateprocess() submitapplicationdata() listauctions() getusers() updatequote() cancelsubscription()

25 getorderdetails() findmatchingbid() GET listauctions() initiateprocess() submitapplicationdata() POST getusers() PUT DELETE updatequote() cancelsubscription()

26 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() }

27 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() }

28 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

29 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

30 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

31 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

32 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

33 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... }

34 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... } Anything that knows your app

35 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... } Anything that knows your app

36 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } generic Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... } Anything that knows your app

37 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } generic Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... } Anything that knows your app specific

38 Mapping Examples

39 Mapping Examples getfreetimeslots(person)

40 Mapping Examples getfreetimeslots(person) GET /people/{id}/timeslots?state=free

41 Mapping Examples getfreetimeslots(person) rejectapplication(application) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason>

42 Mapping Examples getfreetimeslots(person) rejectapplication(application) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason>

43 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result

44 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result

45 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) shiporder(id) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result PUT /orders/0815/status <status>shipped</status>

46 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) shiporder(id) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result PUT /orders/0815/status <status>shipped</status>

47 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) shiporder(id) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result PUT /orders/0815/status <status>shipped</status> shiporder(id) [variation] POST /shipments Data Location:

48 Mapping Examples getfreetimeslots(person) rejectapplication(application) performtariffcalculation(data) shiporder(id) GET /people/{id}/timeslots?state=free POST /rejections <application> <reason>unsuitable for us!</reason> POST /contracts Data Location: GET /contracts/4711/tariff Result PUT /orders/0815/status <status>shipped</status> shiporder(id) [variation] POST /shipments Data Location:

49 SOA

50 Well-known architectural principles, applied at different scale

51

52 Through our work we have come to prioritize: Business value over technical strategy Strategic goals over project-specific benefits Intrinsic interoperability over custom integration Shared services over specific-purpose implementations Flexibility over optimization Evolutionary refinement over pursuit of initial perfection That is, while we value the items on the right, we value the items on the left more.

53

54 Unlike the Agile manifesto however, the SOA manifesto is nothing more than snake oil to give the vendor community a thin veneer of respectability atop their increasing bureaucracy, deteriorating levels of innovation, and increasingly painful pricing models. Jim Webber

55 Lesson Learned:

56 Don t write manifestos

57 unless you look like this

58 or this

59 Bad Stuff

60 Good Stuff

61 Monoliths

62 Monoliths Redundant data

63 Monoliths Redundant data Redundant logic

64 Monoliths Redundant data Redundant logic Resistance to change

65 Monoliths Redundant data Redundant logic Resistance to change Late integration

66 Monoliths Redundant data Redundant logic Resistance to change Late integration Vendor dependency

67 Monoliths Redundant data Redundant logic Resistance to change Late integration Vendor dependency Bad

68 Monoliths Loosely coupled modules Redundant data Redundant logic Resistance to change Late integration Vendor dependency Bad

69 Monoliths Redundant data Loosely coupled modules Localized data Redundant logic Resistance to change Late integration Vendor dependency Bad

70 Monoliths Redundant data Redundant logic Loosely coupled modules Localized data Single implementation Resistance to change Late integration Vendor dependency Bad

71 Monoliths Redundant data Redundant logic Resistance to change Loosely coupled modules Localized data Single implementation Flexibility Late integration Vendor dependency Bad

72 Monoliths Redundant data Redundant logic Resistance to change Late integration Loosely coupled modules Localized data Single implementation Flexibility Early interoperability Vendor dependency Bad

73 Monoliths Redundant data Redundant logic Resistance to change Late integration Vendor dependency Loosely coupled modules Localized data Single implementation Flexibility Early interoperability Reliance on standards Bad

74 Monoliths Redundant data Redundant logic Resistance to change Late integration Vendor dependency Loosely coupled modules Localized data Single implementation Flexibility Early interoperability Reliance on standards Bad Good

75 RESTful SOA?

76 The Web & SOA

77 The Web & SOA Standard protocols

78 The Web & SOA Standard protocols Standard formats

79 The Web & SOA Standard protocols Standard formats Library and tool support

80 The Web & SOA Standard protocols Standard formats Library and tool support Mature and useful intermediaries

81 The Web & SOA Standard protocols Standard formats Library and tool support Mature and useful intermediaries Support for loose coupling

82 The Web & SOA Standard protocols Standard formats Library and tool support Mature and useful intermediaries Support for loose coupling Wide availability and adoption

83 The Web & SOA Standard protocols Standard formats Library and tool support Mature and useful intermediaries Support for loose coupling Wide availability and adoption Well-defined architectural model

84 The Web & SOA Standard protocols Standard formats Library and tool support Mature and useful intermediaries Support for loose coupling Wide availability and adoption Well-defined architectural model

85 But what about...

86 Enterprisey Stuff?

87 Encapsulation

88 Service Interface Service Logic Business Rules Data Access Data

89 Service Interface Service Logic WSDL Operations SOAP WS-* XML Parameters Messages Business Rules Data Access Data

90 Service Interface Service Logic WSDL Operations SOAP WS-* XML Parameters Messages Business Rules Data Access Data Resources HTTP JSON XML Hypermedia Representations

91 Transactions

92 RESTful Service Interface

93 RESTful Service Interface Implementation

94 RESTful Service Interface Implementation DB

95 RESTful Service Interface Implementation Local Tx DB

96 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface

97 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface Implementation

98 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface Implementation DB A

99 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface Implementation DB A DB B

100 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface Implementation DB A DB B MQ

101 RESTful Service Interface Implementation Local Tx DB RESTful Service Interface DB A Implementation Distrib Tx DB B MQ

102 RESTful Service Interface Implementation DB Tx across Local Tx services RESTful Service Interface DB A Implementation Distrib Tx DB B MQ

103 create new Tx resource augment state

104 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/4711

105 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data...

106 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data...

107 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data... get state GET /transactions/ data... <link rel= status >in progress</link>

108 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data... get state GET /transactions/ data... <link rel= status >in progress</link>

109 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data... get state commit GET /transactions/ data... <link rel= status >in progress</link> PUT /transactions/4711/status <status>committed</status>

110 create new Tx resource augment state POST /transactions Location: <status>in progress</status> POST /transactions/ data... get state commit GET /transactions/ data... <link rel= status >in progress</link> PUT /transactions/4711/status <status>committed</status>

111 Stateful Communication

112 Turn session state R1 Client 1 Server R1 R2 Rn Client 2 R2 State Client 1 State Client 2 Server State Representation

113 into client or resource state Client 1 C1 R1 C1 C1 Server C1 R1 R2 C2 C2 Rn Client 2 R2 C2 C2 State Client 1 State Client 2 Server State Representation

114 Reliable Messaging

115 Client Server

116 Consumer Server

117 Consumer Provider

118 Consumer Provider

119 Consumer Provider

120 Consumer Provider Success/ Error

121 Consumer Provider Success/ Error

122 Consumer Provider Success/ Error

123 Consumer Provider? Success/ Error

124 Consumer Provider? Success/ Error

125 Consumer Provider? Success/ Error Idempotent Retry

126 Consumer Provider GET, PUT, DELETE? Success/ Error Idempotent Retry

127 Consumer Provider GET, PUT, DELETE? 202 Accepted Success/ Error Idempotent Retry

128 Consumer Provider GET, PUT, DELETE? 202 Accepted Success/ Error Idempotent Retry Async Accepted

129 Notifications

130 Call Stack

131 Call Stack Process

132 Call Stack Process Assumed Success Probability: 99.9%

133 Distributed Call Stack

134 Distributed Call Stack Assumed Success Probability: 99.6%

135 Distributed Call Stack Assumed Success Probability: 99.6%

136 Distributed Call Stack Assumed Success Probability: 99.6% 98%?

137 Distributed Call Stack 90%? 98%? Assumed Success Probability: 99.6%

138 Order Management

139 Order Management Orders

140 Submit Order Order Management Orders

141 Submit Order Order Management Customer Management Orders Customers

142 Submit Order Order GET Customer XYZ Customer Management Management Orders Customers

143 Submit Order Order Management GET Customer XYZ Customer Management Orders Customers Customers

144 Submit Order Order Management GET Customer XYZ Customer Management Orders Customers <Customer Change> Customers

145 Submit Order Order Management GET Customer XYZ Customer Management Orders Customers <Customer Change> Customers

146 Submit Order Order Management GET Customer XYZ Customer Management Orders Customers <Customer Change> Customers Feed-based notification

147 Atom Model Feed id title updated 0 * Entry id title updated * Category Content Resource OutOfLine InlineText InlineXHTML InlineOther

148 Security

149 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent

150 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent

151 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL

152 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL HTTPS

153 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL HTTPS REST

154 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL HTTPS REST WSS

155 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL HTTPS REST WSS XML

156 Transport-based encrypt communication channel protection while in transit fast, efficient, wide-spread not end-to-end not persistent Message-based encrypt/sign individual messages indefinite protection Slow, inefficient, scarcely used end-to-end persistent SSL HTTPS REST WSS XML WS-*

157 HTTP Security

158 HTTP Security Extensible HTTP Authentication Mechanism

159 HTTP Security Extensible HTTP Authentication Mechanism HTTP + SSL + Basic Auth

160 HTTP Security Extensible HTTP Authentication Mechanism HTTP + SSL + Basic Auth OpenID

161 HTTP Security Extensible HTTP Authentication Mechanism HTTP + SSL + Basic Auth OpenID OAuth

162 HTTP Security Extensible HTTP Authentication Mechanism HTTP + SSL + Basic Auth OpenID OAuth HMAC

163 Mixing RESTful HTTP w/ WS-*

164 Disclaimer first

165 set of problems

166 RESTful HTTP set of problems

167 RESTful HTTP MoM set of problems

168 RESTful HTTP MoM RMI/DCOM/CORBA set of problems

169 Spaces RESTful HTTP MoM RMI/DCOM/CORBA set of problems

170 Actors Spaces RESTful HTTP MoM RMI/DCOM/CORBA set of problems

171 Actors Spaces RESTful HTTP MoM RMI/DCOM/CORBA set of problems

172 Actors Spaces RESTful HTTP MoM RMI/DCOM/CORBA set of problems SOAP/WSDL

173 The SOAP/WSDL Problem

174 The SOAP/WSDL Problem Each application is different

175 The SOAP/WSDL Problem Each application is different Each application requires its own protocol

176 The SOAP/WSDL Problem Each application is different Each application requires its own protocol Need to learn a new API every single time

177 The SOAP/WSDL Problem Each application is different Each application requires its own protocol Need to learn a new API every single time WSDL as formal approach for syntax only

178 The SOAP/WSDL Problem Each application is different Each application requires its own protocol Need to learn a new API every single time WSDL as formal approach for syntax only Separation of application and metadata

179 Anatomy of a WSDL File XML Schema Message Definitions Operation Names, Input, Output Meaningless Legacy Address Info

180 Anatomy of a WSDL File 80% XML Schema Message Definitions Operation Names, Input, Output Meaningless Legacy Address Info

181 Anatomy of a WSDL File 80% XML Schema 2% Message Definitions Operation Names, Input, Output Meaningless Legacy Address Info

182 Anatomy of a WSDL File 80% XML Schema 2% Message Definitions 5% Operation Names, Input, Output Meaningless Legacy Address Info

183 Anatomy of a WSDL File 80% XML Schema 2% Message Definitions 5% Operation Names, Input, Output 10% Meaningless Legacy Address Info

184 Anatomy of a WSDL File 80% XML Schema 2% Message Definitions 5% Operation Names, Input, Output 10% Meaningless Legacy 3% Address Info

185 SOAP/WSDL RESTful HTTP XML Schema Message Definitions Operation Names, Input, Meaningless Legacy Address Info

186 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, Meaningless Legacy Address Info

187 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, GET, PUT, POST, DELETE Meaningless Legacy Address Info

188 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, GET, PUT, POST, DELETE Meaningless Legacy Address Info URIs

189 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, GET, PUT, POST, DELETE Meaningless Legacy Address Info URIs Informal Documentation (Word, PDF, HTML,...)

190 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, GET, PUT, POST, DELETE Meaningless Legacy Address Info URIs Informal Documentation (Word, PDF, HTML,...) Informal Documentation (Word, PDF, HTML,...)

191 SOAP/WSDL RESTful HTTP XML Schema XML Schema (If you care for it) Message Definitions Operation Names, Input, GET, PUT, POST, DELETE Meaningless Legacy Address Info URIs Informal Documentation (Word, PDF, HTML,...) Hypermedia Informal Documentation (Word, PDF, HTML,...)

192

193 SOAP HTTP Endpoint

194 SOAP HTTP Endpoint Resource

195 Order Customer Fulfilment Shipment

196 Resource Order Customer Fulfilment Shipment

197 Resource Order Customer Fulfilment Shipment

198 Resource Order Fulfilment Customer SelfServiceUI Shipment ProfileEntry

199 Resource Order Fulfilment Customer SelfServiceUI Shipment ProfileEntry

200 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry

201 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry

202 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry Resources All The Way Down

203 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry Resources All The Way Down

204 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry Resources All The Way Down

205 Resource Order Fulfilment Customer SelfServiceUI Order Management Documentation Shipment ProfileEntry Resources All The Way Down

206 EJB 1.x JDBC

207 EJB 1.x JDBC Enterprise-compliant

208 EJB 1.x JDBC Enterprise-compliant Complex

209 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight

210 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight Managed

211 EJB 1.x JDBC Enterprise-compliant Straightforward Complex Heavyweight Managed

212 EJB 1.x JDBC Enterprise-compliant Complex Straightforward Simple Heavyweight Managed

213 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight Straightforward Simple Lightweight Managed

214 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight Managed Straightforward Simple Lightweight Integrated

215 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight Managed Straightforward Simple Lightweight Integrated SOAP

216 EJB 1.x JDBC Enterprise-compliant Complex Heavyweight Managed Straightforward Simple Lightweight Integrated SOAP Plain HTTP

217 SOAP Plain HTTP

218 SOAP Legacy Access Plain HTTP

219 SOAP Legacy Access Transactional API Plain HTTP

220 SOAP Legacy Access Transactional API Processing-centric Plain HTTP

221 SOAP Legacy Access Transactional API Processing-centric Secured messages Plain HTTP

222 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP

223 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP Web-related

224 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP Web-related (Meta-)Data-centric

225 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP Web-related (Meta-)Data-centric Document-oriented

226 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP Web-related (Meta-)Data-centric Document-oriented Interoperable

227 SOAP Legacy Access Transactional API Processing-centric Secured messages Politically motivated Plain HTTP Web-related (Meta-)Data-centric Document-oriented Interoperable Scalable

228 Steps for introducing REST to a SOA Enterprise

229 #0: Convince Management

230

231

232

233

234 My Internet is bigger than your enterprise. Paraphrasing Dare Obasanjo, see

235

236 VersicherungX

237 #1: Ensure your Web apps are RESTful

238 #2: Expose machine-readable information via HTTP GET

239 I do think the REST-afarians are missing an opportunity by not driving home the secret sauce that is HTTP GET. [ ] GET is one of the most optimized pieces of distributed systems plumbing in the world. It's an absolute/objective slam dunk. No arguing/evangelism needed IMO. GET is the classic the first bag is free kind of feature a platform builder dreams about.

240 I do think the REST-afarians are missing an opportunity by not driving home the secret sauce that is HTTP GET. [ ] GET is one of the most optimized pieces of distributed systems plumbing in the world. It's an absolute/objective slam dunk. No arguing/evangelism needed IMO. GET is the classic the first bag is free kind of feature a platform builder dreams about. Don Box, Co-inventor of SOAP

241 #3: Distribute notifications via Atom feeds

242 #4: Manage Your Metadata with RESTful HTTP

243 #5: Ship RESTful client libraries

244 #6: Adopt existing infrastructure

245 #7: Use WS-* for read/write interactions if politics or legacy force you

246 #8: Draw your own Conclusions Watching the Adoption of WS-* vs. RESTful HTTP

247 Q&A innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D Ratingen CH-6330 Cham Phone Phone Stefan Phone:

Pragmatic SOA Beyond Buzzwords and Flamewars. Stefan Tilkov, -

Pragmatic SOA Beyond Buzzwords and Flamewars. Stefan Tilkov, - Pragmatic SOA Beyond Buzzwords and Flamewars Stefan Tilkov, innoq @stilkov - http://www.innoq.com/blog/st/ 1 Some Claims 2 Some Recommendations 3 Claim: Application architecture is irrelevant for your

More information

REST & Caching: Web Services, Accelerated

REST & Caching: Web Services, Accelerated REST & Caching: Web Services, Accelerated JAOO 2009 Stefan Tilkov, innoq innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D-40880 Ratingen CH-6330 Cham Phone +49 21 02 77 162-100

More information

A Pragmatic Introduction to REST. Stefan Tilkov,

A Pragmatic Introduction to REST. Stefan Tilkov, A Pragmatic Introduction to REST Stefan Tilkov, stefan.tilkov@innoq.com Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.infoq.com Audience Poll How many

More information

REST & JSR 311. Stefan Tilkov, innoq Deutschland GmbH November 2008

REST & JSR 311. Stefan Tilkov, innoq Deutschland GmbH November 2008 REST & JSR 311 Stefan Tilkov, innoq Deutschland GmbH stefan.tilkov@innoq.com November 2008 1 Stefan Tilkov Geschäftsführer und Principal Consultant, innoq Deutschland GmbH Fokus auf SOA, Web-Services,

More information

REST: I don't Think it Means What You Think it Does. Stefan

REST: I don't Think it Means What You Think it Does. Stefan REST: I don't Think it Means What You Think it Does Stefan Tilkov @stilkov REST: An architectural style defined by the constraints Client-Server, Stateless Communication, Caching, Uniform Interface, Layered

More information

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel innoq Deutschland GmbH innoq Schweiz GmbH D-40880 Ratingen CH-6330 Cham Tel +49 2102 77 1620 Tel +41 41 743 01 11 www.innoq.com Stefan Tilkov, stefan.tilkov@innoq.com 1 Goals Introduce MDE, MDA, MDD, MDSD,...

More information

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH REST for SOA Stefan Tilkov, innoq Deutschland GmbH stefan.tilkov@innoq.com Contents An Introduction to REST Why REST Matters REST And Web Services Recommendations Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com

More information

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape REST API s in a CA Plex context API Design and Integration into CA Plex landscape Speaker Software Architect and Consultant at CM First AG, Switzerland since 2008 having 30+ years of experience with the

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

A Brief Introduction to REST

A Brief Introduction to REST A Brief Introduction to REST Posted by Stefan Tilkov on Dec 10, 2007 03:42 AM Community Architecture,SOA Topics Enterprise Architecture, REST You may or may not be aware that there is debate going on about

More information

INF5750. RESTful Web Services

INF5750. RESTful Web Services INF5750 RESTful Web Services Recording Audio from the lecture will be recorded! Will be put online if quality turns out OK Outline REST HTTP RESTful web services HTTP Hypertext Transfer Protocol Application

More information

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture Evaluating a Service-Oriented Architecture Paulo Merson, SEI with Phil Bianco, SEI Rick Kotermanski, Summa Technologies May 2007 Goal: Offer practical information to help the architecture evaluation of

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018 Understanding RESTful APIs and documenting them with Swagger Presented by: Tanya Perelmuter Date: 06/18/2018 1 Part 1 Understanding RESTful APIs API types and definitions REST architecture and RESTful

More information

WWW, REST, and Web Services

WWW, REST, and Web Services WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What

More information

Lesson 14 SOA with REST (Part I)

Lesson 14 SOA with REST (Part I) Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)

More information

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1 The HTTP protocol Fulvio Corno, Dario Bonino 08/10/09 http 1 What is HTTP? HTTP stands for Hypertext Transfer Protocol It is the network protocol used to delivery virtually all data over the WWW: Images

More information

A Pragmatic Introduction to REST

A Pragmatic Introduction to REST A Pragmatic Introduction to REST QCon London 2008 Stefan Tilkov, stefan.tilkov@innoq.com 1 Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.infoq.com

More information

ENTERPRISE SOA CONFERENCE

ENTERPRISE SOA CONFERENCE BELGIAN JAVA USER GROUP PRESENTS ENTERPRISE SOA CONFERENCE 2 4 O c t o b e r 2 0 0 6, D e M o n t i l, A f f l i g e m REST - the Better Web Services Model Stefan Tilkov Founder & Principal Consultant

More information

Oracle RESTful Services A Primer for Database Administrators

Oracle RESTful Services A Primer for Database Administrators Oracle RESTful Services A Primer for Database Administrators Sean Stacey Director Database Product Management Oracle Server Technologies Copyright 2017, Oracle and/or its affiliates. All rights reserved.

More information

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services Stefan Tilkov innoq Deutschland GmbH stefan.tilkov@innoq.com REST + JSR 311 Java API for RESTful Web Services Contents An Introduction to REST Why REST Matters REST And Web Services JSR 311 Intro Demo

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

Services Web Nabil Abdennadher

Services Web Nabil Abdennadher Services Web Nabil Abdennadher nabil.abdennadher@hesge.ch 1 Plan What is Web Services? SOAP/WSDL REST http://www.slideshare.net/ecosio/introduction-to-soapwsdl-and-restfulweb-services/14 http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/

More information

REST-based Integration Architecture for a Financial Business Service. Phillip Ghadir, innoq

REST-based Integration Architecture for a Financial Business Service. Phillip Ghadir, innoq REST-based Integration Architecture for a Financial Business Service Phillip Ghadir, innoq REST-based Integration Architecture for a Financial Business Service When we started out building a large-scale

More information

Services Oriented Architecture and the Enterprise Services Bus

Services Oriented Architecture and the Enterprise Services Bus IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com

More information

White Paper. EVERY THING CONNECTED How Web Object Technology Is Putting Every Physical Thing On The Web

White Paper. EVERY THING CONNECTED How Web Object Technology Is Putting Every Physical Thing On The Web White Paper EVERY THING CONNECTED Is Putting Every Physical Thing Every Thing Connected The Internet of Things a term first used by technology visionaries at the AUTO-ID Labs at MIT in the 90s 1 has received

More information

The State of REST vs. SOA

The State of REST vs. SOA The State of REST vs. SOA BeJUG Enterprise SOA 07 Stefan Tilkov, innoq Who am I? Stefan Tilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.innoq.com http://www.infoq.com REST vs....?

More information

SERVICE API SPECIALIST Certification. Service API Specialist

SERVICE API SPECIALIST Certification. Service API Specialist SERVICE API SPECIALIST Certification Service API The new generation SOACP program from Arcitura is dedicated to excellence in the fields of contemporary service-oriented architecture, microservices, service

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Web Service Definition The term "Web Services" can be confusing.

More information

HTTP, REST Web Services

HTTP, REST Web Services HTTP, REST Web Services Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) HTTP, REST Web Services Winter Term 2018 1 / 36 Contents 1 HTTP 2 RESTful

More information

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra Designing Enterprise IT Systems with REST: A (Cloudy) Case Study Stuart Charlton Chief Software Architect, Elastra Objectives What enterprise problem domains does RESTful architecture handle well? Understanding

More information

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations

More information

Rapid Large-Scale SOA - Connected Products at Leapfrog Enterprises

Rapid Large-Scale SOA - Connected Products at Leapfrog Enterprises Rapid Large-Scale SOA - Connected Products at Leapfrog Enterprises A little bit about myself Jason Whaley Web Infrastructure Engineer Leapfrog Enterprises jwhaley@leapfrog.com What Will be Covered Overview

More information

ActiveVOS Technologies

ActiveVOS Technologies ActiveVOS Technologies ActiveVOS Technologies ActiveVOS provides a revolutionary way to build, run, manage, and maintain your business applications ActiveVOS is a modern SOA stack designed from the top

More information

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution 1 of 9 10/9/2013 1:38 AM WCF and WF Learning Objectives After completing this topic, you should be able to describe the functions of Windows Communication Foundation describe the features of the Windows

More information

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics Web Services Lecture I Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2015.02.19 Outline Introduction to SOA SOA Concepts: Services Loose Coupling Infrastructure SOA Layers

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology Web-APIs Examples Consumer Technology Cross-Domain communication Provider Technology Applications Blogs and feeds OpenStreetMap Amazon, Ebay, Oxygen, Magento Flickr, YouTube 3 more on next pages http://en.wikipedia.org/wiki/examples_of_representational_state_transfer

More information

Lesson 15 SOA with REST (Part II)

Lesson 15 SOA with REST (Part II) Lesson 15 SOA with REST (Part II) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano REST Design Tips 1. Understanding GET vs.

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 John Hohwald Slide 1 Definitions and Terminology What is SOA? SOA is an architectural style whose goal is to achieve loose coupling

More information

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Scott Shenker and John Jannotti Precursors 1945, Vannevar Bush, Memex: a device in which an individual stores all his books, records, and

More information

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Sco2 Shenker and John Janno6 Administrivia HW3 out today Will cover HTTP, DNS, TCP TCP Milestone II coming up on Monday Make sure you sign

More information

REST A brief introduction

REST A brief introduction REST A brief introduction Juergen Brendel What is it good for? Something with networks: APIs Interactions Distributed systems? All contents Copyright 2010, Mulesoft Inc. 2 Getting more popular All contents

More information

SOA Architect. Certification

SOA Architect. Certification SOA Architect Certification SOA Architect The new generation SOACP program from Arcitura is dedicated to excellence in the fields of contemporary service-oriented architecture, microservices, service APIs

More information

Programming Web Services in Java

Programming Web Services in Java Programming Web Services in Java Description Audience This course teaches students how to program Web Services in Java, including using SOAP, WSDL and UDDI. Developers and other people interested in learning

More information

STANDARD REST API FOR

STANDARD REST API FOR STANDARD REST API FOR EMAIL Kalana Guniyangoda (118209x) Dissertation submitted in partial fulfillment of the requirements for the degree Master of Science Department of Computer Science & Engineering

More information

Coding Intro to APIs and REST

Coding Intro to APIs and REST DEVNET-3607 Coding 1001 - Intro to APIs and REST Matthew DeNapoli DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

REST API Developer Preview

REST API Developer Preview REST API Developer Preview Dave Carroll Developer Evangelist dcarroll@salesforce.com @dcarroll Alex Toussaint Sr. Product Manager atoussaint@salesforce.com @alextoussaint Safe Harbor Safe harbor statement

More information

Service Interface Design RSVZ / INASTI 12 July 2006

Service Interface Design RSVZ / INASTI 12 July 2006 Architectural Guidelines Service Interface Design RSVZ / INASTI 12 July 2006 Agenda > Mandatory standards > Web Service Styles and Usages > Service interface design > Service versioning > Securing Web

More information

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions RESTful Web Services 20-Jan-2011 Gordon Dickens Chariot Solutions gdickens@chariotsolutions.com Instructor/Mentor at chariotsolutions.com/education Who Am I? Active Tweeter for Open Source Tech Topics

More information

Atomic Transactions for the REST of us

Atomic Transactions for the REST of us Atomic Transactions for the REST of us Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info @pautasso Acknowledgements This is joint work

More information

Introduction to XML 3/14/12. Introduction to XML

Introduction to XML 3/14/12. Introduction to XML Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

WEB-202: Building End-to-end Security for XML Web Services Applied Techniques, Patterns and Best Practices

WEB-202: Building End-to-end Security for XML Web Services Applied Techniques, Patterns and Best Practices WEB-202: Building End-to-end Security for XML Web Services Applied Techniques, Patterns and Best Practices Chris Steel, Ramesh Nagappan, Ray Lai www.coresecuritypatterns.com February 16, 2005 15:25 16:35

More information

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

Composer Help. Web Request Common Block

Composer Help. Web Request Common Block Composer Help Web Request Common Block 7/4/2018 Web Request Common Block Contents 1 Web Request Common Block 1.1 Name Property 1.2 Block Notes Property 1.3 Exceptions Property 1.4 Request Method Property

More information

Global Reference Architecture: Overview of National Standards. Michael Jacobson, SEARCH Diane Graski, NCSC Oct. 3, 2013 Arizona ewarrants

Global Reference Architecture: Overview of National Standards. Michael Jacobson, SEARCH Diane Graski, NCSC Oct. 3, 2013 Arizona ewarrants Global Reference Architecture: Overview of National Standards Michael Jacobson, SEARCH Diane Graski, NCSC Oct. 3, 2013 Arizona ewarrants Goals for this Presentation Define the Global Reference Architecture

More information

Web Services Week 10

Web Services Week 10 Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web

More information

edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB

edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB Accessing ALDSP 3.0 Data Services Through ALSB 3.0 edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB Introduction AquaLogic Data Services Platform can

More information

Distribution and Publication With Atom Web Services

Distribution and Publication With Atom Web Services Distribution and Publication With Atom Web Services Software Architect at Schematic Atlanta PHP Leader Co-author of Zend PHP 5 Certification Study Guide Chatter on #phpc The name Atom applies to a pair

More information

Integrating Legacy Assets Using J2EE Web Services

Integrating Legacy Assets Using J2EE Web Services Integrating Legacy Assets Using J2EE Web Services Jonathan Maron Oracle Corporation Page Agenda SOA-based Enterprise Integration J2EE Integration Scenarios J2CA and Web Services Service Enabling Legacy

More information

Application Protocols and HTTP

Application Protocols and HTTP Application Protocols and HTTP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #0 due

More information

DATA COMMUNICATOIN NETWORKING

DATA COMMUNICATOIN NETWORKING DATA COMMUNICATOIN NETWORKING Instructor: Ouldooz Baghban Karimi Course Book: Computer Networking, A Top-Down Approach By: Kurose, Ross Introduction Course Overview Basics of Computer Networks Internet

More information

Composable Web Services Using Interoperable Technologies From Sun s Project Tango

Composable Web Services Using Interoperable Technologies From Sun s Project Tango Composable Web Services Using Interoperable Technologies From Sun s Project Tango Nicholas Kassem Technology Director Harold Carr Lead Architect TS-4661 Copyright 2006, Sun Microsystems, Inc., All rights

More information

Best Practices for developing REST API using PHP

Best Practices for developing REST API using PHP Best Practices for developing REST API using PHP Web services are a common way to enable distribution of data. They can be used to allow different software components interact with one another. It can

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course,

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016-2017 AGENDA FOR TODAY The final project Advanced Mysql Database programming Recap: DB servers in the web Web programming

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

CS 43: Computer Networks. HTTP September 10, 2018

CS 43: Computer Networks. HTTP September 10, 2018 CS 43: Computer Networks HTTP September 10, 2018 Reading Quiz Lecture 4 - Slide 2 Five-layer protocol stack HTTP Request message Headers protocol delineators Last class Lecture 4 - Slide 3 HTTP GET vs.

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0 z/tpf EE V1.1 z/tpfdf V1.1 TPF Toolkit for WebSphere Studio V3 TPF Operations Server V1.2 IBM Software Group TPF Users Group Spring 2007 TPF Users Group Spring 2007 z/tpf Web Services Update Name: Barry

More information

DatabaseRESTAPI

DatabaseRESTAPI ORDS DatabaseRESTAPI https://oracle.com/rest Jeff Smith Senior Principal Product Manager Jeff.d.smith@oracle.com @thatjeffsmith Database Tools, Oracle Corp Not just THAT SQLDev Guy I GET ORDS, too! Blogs

More information

02267: Software Development of Web Services

02267: Software Development of Web Services 02267: Software Development of Web Services Week 1 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2013 Contents Course Introduction

More information

Lesson 3 SOAP message structure

Lesson 3 SOAP message structure Lesson 3 SOAP message structure Service Oriented Architectures Security Module 1 - Basic technologies Unit 2 SOAP Ernesto Damiani Università di Milano SOAP structure (1) SOAP message = SOAP envelope Envelope

More information

CS 43: Computer Networks. Layering & HTTP September 7, 2018

CS 43: Computer Networks. Layering & HTTP September 7, 2018 CS 43: Computer Networks Layering & HTTP September 7, 2018 Last Class: Five-layer Internet Model Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability Network:

More information

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

C exam.   IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1. C9510-319.exam Number: C9510-319 Passing Score: 800 Time Limit: 120 min File Version: 1.0 IBM C9510-319 IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile Version: 1.0 Exam A QUESTION

More information

Warm Up to Identity Protocol Soup

Warm Up to Identity Protocol Soup Warm Up to Identity Protocol Soup David Waite Principal Technical Architect 1 Topics What is Digital Identity? What are the different technologies? How are they useful? Where is this space going? 2 Digital

More information

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95 ه عا ی Semantic Web Semantic Web Services Morteza Amini Sharif University of Technology Fall 94-95 Outline Semantic Web Services Basics Challenges in Web Services Semantics in Web Services Web Service

More information

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional SUN 311-232 Java Platform Enterprise Edition 6 Web Services Developer Certified Professional Download Full Version : http://killexams.com/pass4sure/exam-detail/311-232 QUESTION: 109 What are three best

More information

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017 CSC 401 Data and Computer Communications Networks Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network applications 2.2

More information

JAX-RS: REST, the Java Way. Stefan Tilkov,

JAX-RS: REST, the Java Way. Stefan Tilkov, JAX-RS: REST, the Java Way Stefan Tilkov, stefan.tilkov@innoq.com 1 Contents An Introduction to REST Why REST Matters JSR 311 Overview Demo What s Next 2 Stefan Tilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/

More information

Designing RESTful Web Applications. Ben Ramsey

Designing RESTful Web Applications. Ben Ramsey Designing RESTful Web Applications Ben Ramsey About Me Proud father of 3-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original

More information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software Design COSC 4353/6353 DR. RAJ SINGH Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications

More information

Oracle Fusion Middleware

Oracle Fusion Middleware Oracle Fusion Middleware Administering Web Services 12c (12.1.2) E28131-01 June 2013 Documentation for developers and administrators that describes how to administer Web services. Oracle Fusion Middleware

More information

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version : SUN 310-052 Sun Certified Enterprise Architect for J2EE 5 Download Full Version : http://killexams.com/pass4sure/exam-detail/310-052 combination of ANSI SQL-99 syntax coupled with some company-specific

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

Oracle APEX 18.1 New Features

Oracle APEX 18.1 New Features Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

MOS Encryption and Security via Web Sockets & MOS Passive Mode MOS v4.0

MOS Encryption and Security via Web Sockets & MOS Passive Mode MOS v4.0 Proposal for Adoption into the MOS Protocol MOS Encryption and Security via Web Sockets & MOS Passive Mode MOS v4.0 Revised June 2018 Revision 1.4 FOR FINAL APPROVAL & RATIFICATION Shawn Snider VP Production

More information

HTTP Reading: Section and COS 461: Computer Networks Spring 2013

HTTP Reading: Section and COS 461: Computer Networks Spring 2013 HTTP Reading: Section 9.1.2 and 9.4.3 COS 461: Computer Networks Spring 2013 1 Recap: Client-Server Communication Client sometimes on Initiates a request to the server when interested E.g., Web browser

More information

for NonStop Applications To this Process-Centric Solutions SOA Call Center Services Standar rd Interface Any to any WSDL SOAP HTTP/S Standar rd Interface SOA AP/AM Order Processing Services Customer

More information

Composable Web Services Using Interoperable Technologies from Sun's "Project Tango"

Composable Web Services Using Interoperable Technologies from Sun's Project Tango Composable Web Services Using Interoperable Technologies from Sun's "Project Tango" Nicholas Kassem Technology Director Harold Carr Lead Architect TS-4661 2006 JavaOne SM Conference Session 4661 Goal of

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91 بسمه تعالی Semantic Web Semantic Web Services Morteza Amini Sharif University of Technology Spring 90-91 Outline Semantic Web Services Basics Challenges in Web Services Semantics in Web Services Web Service

More information

Architectural patterns and models for implementing CSPA

Architectural patterns and models for implementing CSPA Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and

More information

Java Web Service Essentials (TT7300) Day(s): 3. Course Code: GK4232. Overview

Java Web Service Essentials (TT7300) Day(s): 3. Course Code: GK4232. Overview Java Web Service Essentials (TT7300) Day(s): 3 Course Code: GK4232 Overview Geared for experienced developers, Java Web Service Essentials is a three day, lab-intensive web services training course that

More information

Apex REST API. SUMMER OF APIs. Sandeep Bhanot Developer Alex Toussaint Senior Product

Apex REST API. SUMMER OF APIs. Sandeep Bhanot Developer Alex Toussaint Senior Product SUMMER OF APIs Apex REST API Sandeep Bhanot Developer Evangelist @cloudysan Alex Toussaint Senior Product Manager @alextoussaint Got Twitter? @forcedotcom / #forcewebinar Facebook? facebook.com/forcedotcom

More information