معماری سرویس گرا

معماری سرویس گرا

What is service?
The service is one of the software components that has the following characteristics:
1. with one independent interface It is defined from the platform.
2. It can be used through the Internet.
3. Its performance is such that it executes business functions by business objects.
4. The interface and its implementation are marked in such a way that it leads to improved performance at the time of execution.

Service definition

Service can have other meanings, sometimes its meaning is broader, for example, a distributed component whose interface with acquisition And the work is designed. Sometimes its meaning is more detailed, such as web service based on SOAP.
The most basic problem for SOA implementation is that the majority of people with the basic concept of building blocks, i.e. the same service, agree on are not. Many service compliments refer to loose and abstract concepts, such as flexibility and agility To Programmers are very vague.
It is safe to say, no one wants to choose an inflexible software to create that does not meet practical needs. But in reality, despite many efforts, this often happens. Knowing that SOA can bring consistency and agility is commendable, but that alone is not helpful.
All other definitions are much more detailed for the real world, for example: specifying that a service should be part of software Software whose language is SOAP can be misleading. But this is a fake limitation, there are many people who They use REST and think they are providing a service. Perhaps it is better that our definition includes things about XML-based messages that make the difference between a RESTfull webservice and a SOAP-based service. but open It is also a limitation for our general definition.
How do we achieve a comprehensive and specific definition of service that is acceptable for a variety of service purposes in the real world?
It is best to review all aspects of the service definition before proceeding further.

Software-independent interface

Software independent interface
What a service can do must be described by an external interface. Some software architects allow it that their service only runs on a specific platform, eg Java interface which can be executed only on the remote EJB session he does. Services will definitely get closer to their meaning in this way and getting closer to this concept in the context of business The target is achieved. Instructing that the consumer must use a specific platform such as Java or .NET to receive Slow service can save significant time and money and effectively simplify the implementation process.
Many applications of service-oriented architecture in a company operate behind a security system and in a known relatively static environment they do. There are many architects who have implemented the SOA concept in the EJB platform, which is a very specific platform. are While the implementation in a specific platform does not bring us to the goals of SOA, although this practice is very smart and with The experience takes place.
WSDLs use SOAP over HTTP. HTTP may not be a suitable transport layer for web services but Its simplicity and penetration make it the default layer. As a result, significant support for the implementation of this There are types of services.
RESTful web services use HTTP methods and the XML language to define their interfaces, and this approach supports There are many who are not very satisfied with the complexity and size of services under SOAP.
A service is not just a part of a core function, but something that can be described by a customer-centric contract are, so it is important that a well-defined interface works with the automation contract. Without having a specific interface, The reusability of the service is reduced. Without service independence, customer dissatisfaction and excessive dependence are ahead we have.