Web service, web service is a program on the Internet that performs some simple function and can be connected to other applications and services via standard protocols (SOAP, XML-RPC, REST, etc). To identify more complex software that has its own separate interface, personal cabinets, etc. we use the term SaaS application (SaaS service).
Evergreen can develop both SaaS and web services. We also use the micro-service architecture when the logical parts of a common system are divided into separate small services and thus the reliability and security of the entire system are increased.
We widely use AWS micro-services (for more details: see our technical stack ).
How to create web service
— required stages of development
prototype + Technical Specification on development
research and preliminary development
API AND DOCUMENTATION
Development of API and documentation
and compulsory coverage by automatic tests
production setup and release
Web service development: service-oriented architecture (SOA)
The idea of service-oriented architecture is that you divide your entire big project to separate services that can work independently and exchange data with each other.
What is good about service-based architecture (SOA) and micro-service architecture (MSA)?
- Development and maintaince of a web service is easier than of a large monolithic project
- You can use the REST API and its advantages.
- You can connect all the web services using Corezoid to a single system and automate your business processes. Atomic steps of the business process can be presented as separate web services.
- Each web service is a separate project, you can build hierarchies from services when some services use others. This approach helps to scale the system and the team, dozens of programmers can simultaneously work on the system without problems with finding complex logical errors and the interdependence of some parts of the system from others
- You can use different programming languages to develop web services depending on the tasks, as well as box products such as RabbitMQ, Firebase, Back & others can also be used as services that are part of the system.
- You have more space for experiments, because you can develop a small web service, try it in the work and if something went wrong, turn it off without risking the stability of the entire system.
The obvious drawback of the architecture is the need to transfer data between the microservices, which imposes additional requirements on network connections and servers and their administration.