Table of Contents |
---|
Key Points
References
Reference_description_with_linked_URLs__________________________________ | Notes_____________________________________________________________________ |
---|---|
https://www.guru99.com/web-service-architecture.html | What are web services? |
https://www.guru99.com/web-services-interview-questions.html | Web Services interview questions |
SOA | |
https://www.guru99.com/soa-principles.html | |
SOAP | Simple Object Access Protocol |
https://www.guru99.com/soap-simple-object-access-protocol.html | SOAP Tutorial |
REST | Representational Event Services Listener |
https://www.guru99.com/restful-web-services.html | REST Tutorial |
Key Concepts
Web Services framework overview
https://www.guru99.com/web-service-architecture.html
Web service summary
The client would invoke a series of web service calls via requests to a server which would host the actual web service.
...
UDDI is a standard for describing, publishing, and discovering the web services that are provided by a particular service provider. It provides a specification which helps in hosting the information on web services.
Agent - Broker - Service architecture
- Provider - The provider creates the web service and makes it available to client application who want to use it.
- Requestor - A requestor is nothing but the client application that needs to contact a web service. The client application can be a .Net, Java, or any other language based application which looks for some sort of functionality via a web service.
- Broker - The broker is nothing but the application which provides access to the UDDI. The UDDI, as discussed in the earlier topic enables the client application to locate the web service.
...
- Publish - A provider informs the broker (service registry) about the existence of the web service by using the broker's publish interface to make the service accessible to clients
- Find - The requestor consults the broker to locate a published web service
- Bind - With the information it gained from the broker(service registry) about the web service, the requestor is able to bind, or invoke, the web service.
Web services features
- xml based
- soap message has a header and a body
- loosely coupled
- synch or asynch
- supports rpc
- supports document exchange
- wsdl defines how to bind to a service
Web Services Security with SOAP
https://www.guru99.com/security-web-services.html
Client Server Interaction over HTTPS
In a standard HTTPS communication between the client and the server, the following steps take place
...
https://www.guru99.com/security-web-services.html
REST services
https://www.guru99.com/restful-web-services.html
REST is used to build Web services that are lightweight, maintainable, and scalable in nature. A service which is built on the REST architecture is called a RESTful service. The underlying protocol for REST is HTTP, which is the basic web protocol. REST stands for REpresentational State Transfer
REST elements
The key elements of a RESTful implementation are as follows:
...
Response Status codes –
codes are returned with the response from the web server.
REST methods
- POST – This would be used to create a new employee using the RESTful web service
- GET - This would be used to get a list of all employee using the RESTful web service
- PUT - This would be used to update all employee using the RESTful web service
- DELETE - This would be used to delete all employee using the RESTful web service
- PATCH - Update a resource
...
- Heterogeneous languages and environments – This is one of the fundamental reasons which is the same as we have seen for SOAP as well.
- It enables web applications that are built on various programming languages to communicate with each other
- With the help of Restful services, these web applications can reside on different environments, some could be on Windows, and others could be on Linux.
RESTful Architecture
- State and functionality are divided into distributed resources – This means that every resource should be accessible via the normal HTTP commands of GET, POST, PUT, or DELETE. So if someone wanted to get a file from a server, they should be able to issue the GET request and get the file. If they want to put a file on the server, they should be able to either issue the POST or PUT request. And finally, if they wanted to delete a file from the server, they an issue the DELETE request.
- The architecture is client/server, stateless, layered, and supports caching –
- Client-server is the typical architecture where the server can be the web server hosting the application, and the client can be as simple as the web browser.
Stateless means that the state of the application is not maintained in REST. - For example, if you delete a resource from a server using the DELETE command, you cannot expect that delete information to be passed to the next request.
- Client-server is the typical architecture where the server can be the web server hosting the application, and the client can be as simple as the web browser.
...
https://www.guru99.com/restful-web-services.html
Microservices Tutorial
https://www.guru99.com/microservices-tutorial.html
...
Microservices | Monolithic Architecture |
---|---|
Every unit of the entire application should be the smallest, and it should be able to deliver one specific business goal. | A single code base for all business goals |
Service Startup is relatively quick | Service startup takes more time |
Fault isolation is easy. Even if one service goes down, other can continue to function. | Fault isolation is difficult. If any specific feature is not working, the complete system goes down. In order to handle this issue, the application needs to re-built, re-tested and also re-deployed. |
All microservices should be loosely coupled so that changes made in one does not affect the other. | Monolithic architecture is tightly coupled. Changes in one module of code affect the other |
Businesses can deploy more resources to services that are generating higher ROI | Since services are not isolated, individual resource allocation not possible |
More hardware resources could be allocated to the service that is frequently used. In the e-commerce example above, more number of users check the product listing and search compared to payments. So, more resources could be allocated to the search and product listing microservice. | Application scaling is challenging as well as wasteful. |
Microservices always remains consistent and continuously available. | Development tools get overburdened as the process needs to start from the scratch. |
Data is federated. This allows individual Microservice to adopt a data model best suited for its needs. | Data is centralized. |
Small Focused Teams. Parallel and faster development | Large team and considerable team management effort is required |
Change in the data model of one Microservice does not affect other Microservices. | Change in data model affects the entire database |
Interacts with other microservices by using well-defined interfaces | Not applicable |
Microservices work on the principle that focuses on products, not projects | Put emphasize on the entire project |
No cross-dependencies between code bases. You can use different technologies for different Microservices. | One function or program depends on others. |
Microservice Challenges
- MicroServices rely on each other, and they will have to communicate with each other.
- Compared to monolithic systems, there are more services to monitor which are developed using different programming languages.
- As it is a distributed system, it is an inherently complex model.
- Different services will have its separate mechanism, resulting in a large amount of memory for an unstructured data.
- Effective management and teamwork required to prevent cascading issues
- Reproducing a problem will be a difficult task when it's gone in one version, and comes back in the latest version.
- Independent Deployment is complicated with Microservices.
- Microservice architecture brings plenty of operations overhead.
- It is difficult to manage application when new services are added to the system
- A wide array of skilled professionals is required to support heterogeneously distributed microservices
- Microservice is costly, as you need to maintain different server space for different business tasks.
SOA vs Microservices
Parameter | SOA | Microservices |
---|---|---|
Design type | In SOA, software components are exposed to the outer world for usage in the form of services. | Micro Service is a part of SOA. It is an implementation of SOA. |
Dependency | Business units are dependent. | They are independent of each other. |
Size of the Software | Software size is larger than any conventional software | The size of the Software is always small in Microservices |
Technology Stack | The technology stack is lower compared to Microservice. | Microservice technology stack could be very large |
Nature of the application | Monolithic in nature | Full stack in nature |
Independent and Focus | SOA applications are built to perform multiple business tasks. | They are built to perform a single business task. |
Deployment | The deployment process is time- consuming. | Deployment is straightforward and less time-consuming. |
Cost - effectiveness | More cost-effective. | Less cost-effective. |
Scalability | Less compared to Microservices. | Highly scalable. |
Business logic | Business logic components are stored inside of single service domain Simple wire protocols(HTTP with XML JSON) API is driven with SDKs/Clients | Business logic can live across domains enterprise Service Bus like layers between services Middleware |
Microservices Summary
- Microservices is a service-oriented architecture pattern wherein applications are built as a collection of various smallest independent service units.
- Microservice Architecture is an architectural development style that allows building an application as a collection of small autonomous services developed for a business domain.
- Monolithic architecture is like a big container in which all the software components of an application are clubbed into a single package
- In a Microservice, every unit of the entire application should be the smallest, and it should be able to deliver one specific business goal
- In Monolithic architecture, large code base can slow down the entire development process. New releases can take months. Code maintenance is difficult
- Two types of Microservices are 1) Stateless 2) Stateful
- Microservices rely on each other, and they will have to communicate with each other. Helps you to give emphasizes on a specific feature and business needs
- Service-oriented architecture shortly known as SOA is an evolution of distributed computing based on the request or reply design model for synchronous and asynchronous applications
- In SOA, software components are exposed to the outer world for usage in the form of services whereas Micro Service is a part of SOA. It is an implementation of SOA
- Wiremock, Docker, and Hystrix are some popular Microservices Tools
Service Virtualization
https://www.guru99.com/service-virtualization-tools.html
Service Virtualization is a method that helps you to emulate (virtual services) the behaviors of the component in a Service Oriented Architecture (Microservice). Practically the software development, testing, and operations teams do not work in synch, and each team has to wait for others to have components ready. This causes delays in workflows and may deliver an inferior product. With Service Virtualization, DevOps teams use virtual services instead of production services, so they can test the system even when key components are not ready. With Service Virtualization, integrating of applications takes place early in the development cycle thereby reducing time and cost to fix errors.
Mountebank for testing virtual services
Mountebank is an open source tool which can execute multi-protocol tests. The codebase is Node JS. It is easy to create stubs and mocks.
...
- Helps you to accelerate Application Delivery while mitigating business risks
- It helps you to simulates the behavior of select components within an application to enable end-to-end testing of the application as a whole.
- Allows the teams to work in parallel
- Allows you to Test Early and often which expose defect when they are faster, easiest and least costly to resolve
- Facilitates better test coverage
- Virtual services offer rich tools for editing and managing which help you improve productivity, cut down on maintenance time and development costs.
- It is useful for anyone involved in developing and delivering software applications.
- Access to more systems and services
- It supports test-driven development.
- Gives you an isolated environment for testing
SOAPUI test tool tutorial
https://www.guru99.com/soapui-tutorial.html
...
Tutorial | Web Service Testing: A Beginner's Guide |
Tutorial | Introduction to SOAPUI |
Tutorial | SOAP UI Installation and Configuration: Complete Guide |
Tutorial | SoapUI Tutorial: Create a Project, Test Suite, TestCase |
Tutorial | Assertions in SoapUI: Complete Tutorial |
Tutorial | SOAPUI Interview Questions & Answers |
Tutorial | 15 Rest API Interview Question & Answers |
Tutorial | 19 Best SoapUI Alternatives |
Messaging Concepts
#todo
API End Point Management Concepts
#todo
IBM API Connects creates and manages API's for IIB ( IBM Integration Bus )
DataPower API Gateway Appliance
https://www.ibm.com/products/datapower-gateway
...
The new DataPower Gateway IDG X2 physical appliance delivers up to 2X the performance of IBM DataPower Gateway (IDG) with next generation hardware architecture. It also provides a flash drive with 2X higher capacity than IDG and 2X 10GbE network ports. IDG X2 accelerates application responsiveness and increases workload capacity, which is critical for higher performance and/or for running additional tenants with governance and a lower TCO.
Potential Value Opportunities
Potential Challenges
Candidate Solutions
Step-by-step guide for Example
Info |
---|
sample code block
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Recommended Next Steps
Related articles
Page Properties | ||
---|---|---|
| ||
|
...