-
Notifications
You must be signed in to change notification settings - Fork 0
Microservices with Spring Boot and Spring Cloud
Amitha R edited this page Dec 17, 2020
·
12 revisions
- Service delivered over the web.
- Software system designed to support interoperable machine-to-machine interaction over a network.
- Designed for machine-to-machine(or application-to-application) interaction.
- Should be interoperable - Not platform dependent. (Application A (Java), Application B(.Net), Application C (PHP)) - Irrespective of their technologies they should be able to talk to the ToDo service.
- Should allow communication over a network. (Communication should not be bound within a local machine).
-
How does data exchange between applications take place?
-----Request------->
| Application A |---------------------| WebService |
<-----Response-------
- Application A is consuming a web service.
- How can we make web services platform independent?
- The Request and Response of the webservice must be platform independent.
- There are two popular formats for requests and responses.
a. XML
- Extensible Markup Language.
<getCourseDetailsRequest>
<id>Course1</id>
</getCourseDetailsRequest>
b. JSON
- Javascript Object Notation
[{"id": 1,"name": "Even",},{"id": 2,"name": "Odd",}]
- How does the Application A know the format of Request and Response?
- Application A needs to send a request to the web service and once it gets the response it needs to be able to process it.
- Service Definition:
- Every web service offers a service definition
- The service definition would specify:
i. Request/Response Format - JSON, XML, etc.
ii. Request Structure
iii. Response Structure
iv. Endpoint
- Request and Response
- Request - Input to the web service.
- Response - Output from a web service.
- Message Exchange Format
- It is the format of the request and the response.
- XML and JSON
-
Service Provider or Server & Service Consumer or Client
-----Request------->
| Application A |---------------------| WebService |
<-----Response-------
- Application A wants to consume a service from the web service.
- The Web Service is called the service provider.
- Service provider is the one which hosts the web service.
- The service consumer is the one which is consuming the web service. Application A is the client.
| Java Application | ----------------------> | WebService |
| DotNet Application |-----------|
| PHP Application |-----------|
- In the above example, the java application, the dot net application and the PHP application are all consumers of the web service.
- Service Definition
- The Service Definition is the contract between the service provider and the service consumers.
- The Service Definition states:
- Request/Response Format
- Request Structure
- Response Structure
- Endpoint
- Transport (HTTP and MQ)
- Transport defines how a service is called - over the web or queue.
- In MQ - use communication over a queue.
- A service requestor would place a message in a queue.
- The service provider would be listening on the queue.
- As soon as there's a request on the queue it would take the request, do the processing of it, create the response from the queue and place it back in the queue.
- The transport used is the MQ.
- SOAP - Simple Object Access Protocol.
- SOAP defines a specific way of building web services.
- SOAP uses XML for Request and Response exchange format.
- SOAP defines a specific XML request and response structure.
- It should have a SOAP-ENVELOPE
- SOAP-ENV: Header
- Contains meta information like authentication, authorization, signature, etc.
- SOAP-ENV: Body
- Real content of the request or response.
- SOAP-ENV: Header
- It should have a SOAP-ENVELOPE
- SOAP defines a format for your request and response.
- SOAP does not pose any restrictions on your transport - can either use HTTP or MQ.
- In SOAP, the service definition is typically done using web service definition language (WSDL).
- WSDL Defines:
- End point
- All operations (CRUD)
- Request Structure
- Response Structure
- REST - REpresentational State Transfer - coined by Roy Fielding.
- Roy Fielding - developed HTTP protocol.
- RESTful web services try to define services using the different concepts that are already present in HTTP.
- A resource is anything that you would want to expose to the outside world through your application.
- A resource has an URI (Uniform Resource Identifier):
- /user/A/todos/1
- /user/A/todos
- /user/A
- A Resource can have different representations
- XML
- HTML
- JSON
- EXAMPLES
- Create a User - POST /users
- Delete a User - DELETE /users/1
- Get all Users - GET/users
- Get one Users - GET /users/1
- Data Exchange Format:
- No Restriction. JSON is popular.
- Transport
- Only HTTP
- Service Defintion
- No Standard. WADL/ Swagger/...
- WADL - Web Application Definition Language - Format to specify your RESTful Web services.
- Restrictions vs Architectural Approach
- SOAP - format of XML.
- REST - architectural style.
- Data Exchange Format
- SOAP - data exchange format is XML (specifically SOAP XML).
- REST - no strict data exchange format - (XML / JSON , etc).
- Service Definition
- SOAP - uses WSDL (Web Service Definition Language).
- REST - no standard (many - WADL - Web Application Definition Language, Swagger).
- Transport
- SOAP - poses no restriction (HTTP or Messaging Queue (MQ))
- REST - very specific about making the best use of HTTP protocol.
- Ease of Implementation
- RESTful web services are easier to implement than SOAP.