SOA and Web Services Testing
SOA characterizes the following basic principles, the pursuit of which allows us to say whether the information system is service-oriented:
Services as components of the information system publish their interfaces (contracts). These contracts are independent of the platform, programming language, operating system and other technical implementation features. Services interact with each other and support services through open, widely used standards.
Each service that forms an information system implements a separate business function, which is a logically separate, repetitive task that is an integral part of the business process of the enterprise.
Low coupling. Services in systems built on SOA can be implemented regardless of other services of the system, only knowledge of the interface of the services used.
As can be seen, each of the items is not a specific feature of SOA, many technologies have adopted these principles. A distinctive feature built on the SOA system is the simultaneous adherence to all of these principles.
Using Open Standards
The use of open standards is an important feature of SOA. This significantly reduces the time to connect a new business service to the existing system, which is often an extremely important point for enterprises that have rich experience in the previous time. When implementing SOA, there is no need to rewrite or simply abandon the years of proven and current solutions.
Choice of distributed technology
The choice of distributed technology plays an essential role. The use of, for example, SNA (a system network architecture, IBM’s general description of the structure, formats, protocols used to transfer information between IBM programs and equipment) as a means of communication services imposes a restriction in which all components in the system are required to use SNA, which limits the applicability of the system.
When they say that the information system follows SOA principles, then a service implemented, for example, in the Java language, should be applicable for use by clients implemented using other technologies.
The service performs a recurring business function
Services in SOA implement repetitive business functions that are necessary to organize consistent work of complex, consisting of a large number of different application components.
For example, let’s take a system that sells wood and delivers it. When ordering a product for a certain amount, a 10% discount is provided, in the event that the distance of transportation is more than 1000 km, a 5% discount is also provided for each subsequent 1000 km. If you follow the principles of service-oriented architecture while developing, then you should implement the “discounts calculation” service, to which all the services that need to calculate the discount should be contacted.
Thus, the functionality is used by numerous applications and it is possible to quickly and relatively simply change the business logic, adapting it to the constantly changing market conditions.
And changes need to be made only in one single service, and the changes made are simultaneously used by all client applications.
Organization of services as loosely coupled components for building systems.
Low connectivity is an important architectural principle in the development of SOA systems. Using this principle allows you to associate various components of the information system during its operation by means of a so-called late binding.
Due to this feature, it is also much easier to make changes to the functionality of the services, since this does not affect others at all.
Due to low connectivity, the step-by-step creation of the corporate system is greatly simplified due to the absence of barriers to the functionality of the service for several iterations.
In other words, this feature implies the fact that we can simply connect new functionality to an existing system without changing the previous links.
The ability to dynamically connect new services, as well as the search for these services by customers, is also one of the cornerstones of a system built on the basis of SOA.
Consider directly the components of SOA systems – web services: the structure of web services, the WSDL component, the SOAP standard and the UDDI repository.
Web service is a software system whose public interfaces is defined in the XML language. The description of this software system can be found by other software systems that can interact with it according to this description by means of XML-based messages and transmitted via Internet protocols. Web-service is a component of the service-oriented architecture of the application.
To describe the web service, the XML-based language WSDL (Web Services Description Language) serves, it also defines the location of the service and the operations (or methods) that are provided to them.
The WSDL structure is just a simple XML. It contains a set of expressions that define the web service.
The description of the web service is the root element of any WSDL document. It is used as a container, which contains all the necessary information about this service and its attributes.
SOAP was created to fulfill these goals.
SOAP provides a link between services running on different OSes using different technologies, implementation and written in different languages, thanks to XML-based.
IBM, Microsoft and Ariba have created the Universal Description, Discovery and Integration (UDDI) project, which is the general catalog of all web services.