How SOA benefits developers

Source: Internet
Author: User

Difficult to solve

The existing application architecture cannot keep up with the changing business model. Enterprises are not only developing new internal applications, but also integrating their applications with partners, suppliers, and customers, however, they are faced with restrictions on a single, tightly coupled application. during compilation and runtime, each subsystem is closely linked with other subsystems. Not only does the change in one system cause another to fail, but it also causes developers to go into endless coding, compilation, and testing cycles. Developers must also deal with the increasing heterogeneous environment. In each environment, applications use a new set of APIs that require learning and connection.

Early approaches to cross-heterogeneous platform integration (such as CORBA) failed to fulfill their commitment, partly because of the lack of standardization in the object model, another part is that even a more loose coupling method that requires rapid development, integration, and reuse of applications is not even thought of by CORBA.

In this context, the service-oriented architecture can be seen as the next revolutionary step in application architecture development, a revolution in replacing a single, tightly coupled application with modular and loosely coupled applications.

SOA uses a modular approach, in which each combined or virtual application is composed of many different isolated services from independent applications. Services can be stored anywhere on the network. They can be found and used through standard interfaces in public and private registries. You can publish the main functions as a service, obtain services from existing applications, or obtain services from new service-oriented applications.

Although SOA can fully utilize technologies such as XML, UDDI, SOAP, WSDL, and Java Message-based, it is not a technology in itself, unlike CORBA. It is a brand new way of thinking and structure to meet the needs of flexibility in the enterprise application architecture.

Object-Oriented development is both a success and a sacrifice. With the development of enterprise software development, object-oriented languages (especially Java), methods, and frameworks can now be well understood. On the surface, deciding whether to use an object-oriented method or a service-oriented method depends on the coupling tightness between the software you develop and other software that interacts with it. Most people think that object-oriented development is suitable for tightly coupled integration. However, SOA is suitable for loosely coupled integration. Although this is generally correct, it is too simple. It is not an option to use one or more questions. As suggested by many new development tools, developers need to understand the two in order to complete the enterprise applications that hurt them.

SOA will not replace object-oriented development, and object-oriented development will remain dominant in developing separate applications. However, as these architectures and frameworks continue to be improved and maintained, they will actually generate an infrastructure that supports the ecosystem (composed of collaborative applications. No matter whether these applications are object-oriented or not, SOA can expand them. By providing universal, reusable business-level interfaces rather than component-level interfaces, SOA helps developers to complete such expansion.

In addition, SOA requires that an instance be transferred from the client/server Method to the application development that considers event-driven interaction. Because a service can be inserted anywhere as a business process, developers must have an overall grasp of application development. The main difference lies in how interfaces are designed. In SOA, the key is to develop a coarse-grained interface that is not based on the Application Component architecture. Therefore, application development, integration, reuse, and Business Process Modeling, workflows, and program-to-program communication in an SOA environment are consistent.

Carrot

The new world of collaborative applications allows developers to change their roles in a better direction. It greatly increases the value of developers in the organization, because they do not have to assemble a single application or process application integration on a special basis, it defines an architecture for the entire business. Enterprise Architects are more important than developers in the general sense. In order to benefit a new application, a single project may be canceled, and applications developed with a large amount of personal experience may be cleared. However, all enterprises admit that they need a scalable and adaptive infrastructure that can add new applications as needed without affecting existing services, they are also turning to technical experts to develop such structural methods.

SOA brings many benefits to developers who begin to build applications using services.

Loose coupling

If you think about SoA based on the optical fiber consisting of communication services, it is easy to find out how loose coupling reduces the chance of modifying code in one service and also requires modifying code in another service. In this case, the optical fiber can be viewed as a general application. If you use steps in a traditional application to hard code these services together, change one step as if you were pulling a line on a real fiber. As a result, the entire optical fiber will be broken. With SOA, You can migrate a large number or replace a single service without affecting the total combination of applications.

Location transparency

What do we say about switching from customer/Server mode to event-driven model? In the event-driven model, the service consumer does not need to know where the service is located on the network. Services in SOA have been registered in the registry. This registry may be a database, directory service, UDDI registry, or XML file, which can be easily located by client applications. All registration and discovery are handled by SOA, so developers can focus on solving business problems.

In fact, this location transparency is an essential part of Web Services. Separating application development and deployment in this way allows enterprises to flexibly migrate services to different servers without considering how this affects client applications, it also allows developers to meet business availability, service level and scalability requirements.

Code reuse

Developers may doubt whether there is a practical way to truly reuse code. This is forgiven. Since procedural language enables object-oriented development, we have been expecting that application development will be a simple plug-and-play object method in Lego. Although object-oriented frameworks have some successes in common environments, the difficulty of working on heterogeneous platforms has been daunting, this is mainly because of the lack of standardization and an easy-to-understand method of Public description.
 
We haven't reached that level yet, But SOA can actually use UDDI to list services in the Registry and publish methods (including parameters and types) in the WSDL document ), this allows developers to benefit from code reuse.
 
Every time developers need to integrate new applications, they do not need to re-develop them. New functions can be achieved without modifying existing applications.

General Service

General Services will replace hard-coding integration, which enables developers to focus on the overall solution and higher-level policy implementation. For example, general aspects of enterprise software (such as reliable delivery and smart routing) will be provided by the infrastructure itself as a service without the need for developers to write code for these features.

Platform independence

SOA provides an abstraction layer that can adapt to multiple types of hardware, operating systems, middleware, languages, and data storage. In many cases, enterprise Architects can also integrate these diverse components without understanding each component.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.