Service-Oriented Architecture (SOA) is a component model that applies Program Different functional units (called services) are linked by well-defined interfaces and contracts between these services. Interfaces are defined in a neutral way. They should be independent of the hardware platform, operating system, and Programming Language . This allows services built in various such systems to interact in a unified and universal manner.
This neutral interface definition (not forcibly bound to a specific implementation) is called the loose coupling between services. There are two advantages of loosely coupled systems: flexibility and gradual changes in the internal structure and implementation of each service that forms the entire application, it can continue to exist. On the other hand, tight coupling means that interfaces between different components of an application are closely linked with their functions and structures. Therefore, when some or all applications need to be modified, they are very fragile.
The need for loosely coupled systems comes from the need for business applications to become more flexible as needed to adapt to changing environments, for example, the policy, business level, business focus, partnerships, industry status, and other business-related factors that often change may even affect the nature of the business. We call a business that can flexibly adapt to environment changes as an on-demand business, you can make necessary changes to the way tasks are completed or executed.
Although the service-oriented architecture is not a new thing, it is an alternative model of a more traditional object-oriented model. The object-oriented model is tightly coupled and has existed for more than 20 years. Although SOA-based systems do not rule out the use of object-oriented design to build a single service, the overall design is service-oriented. Because it takes into account the objects in the system, although SOA is object-based, as a whole, it is not object-oriented. The difference lies in the interface itself. A typical example of a SOA system prototype is the Common Object Request Broker Architecture (CORBA), which has been around for a long time. Its definition is similar to that of SOA.
However, the current SOA is already different because it depends on some updates that are based on the Extensible Markup Language (XML. You can use an XML-based language (Web Service Definition Language (WSDL) to describe an interface. The service has been transferred to a more dynamic and flexible interface system, the Interface Definition Language (IDL) is not comparable to the interface Description Language (UML) in the previous section.
Web services are not the only way to implement SOA. The same way is to use the message-oriented middleware (message-oriented middleware) system, such as IBM MQSeries. However, to create an architecture model, you do not only need service descriptions. You need to define how the entire application executes its workflow between services. In particular, you need to find the conversion point between the business operations and the operations of the software used in the business. Therefore, SOA should be able to link business processes with their technical processes and map the relationships between them. For example, payment to a supplier is a commercial process, while updating your part database to include the newly supplied goods is a technical process. Therefore, workflows can also play an important role in SOA design.
In addition, a dynamic business workflow can include operations between departments, or even operations performed with external partners not under your control. Therefore, to improve efficiency, You need to define a policy that defines how to know the relationship between services. This policy is often in the form of service-level agreements and operational policies.
Finally, all of these must be in a trusted and reliable environment to implement the process in accordance with the agreed terms as expected. Therefore, secure, trusted, and reliable message transmission should play an important role in any SOA.
What can I do with a service-oriented architecture?
the need for SOA comes from the need to make the business IT system more flexible to adapt to changes in the business. By allowing strongly defined relationships and specific implementations that are still flexible, IT systems can utilize the functions of existing systems and prepare for future changes to meet their interaction needs.
The following is a specific example. A clothing retail organization has 500 international chain stores, and they often need to change their designs to catch up with fashion trends. This may mean not only changing the style and color, but also changing the fabric, manufacturer, and deliverables. If the system between the retailer and the manufacturer is incompatible, the replacement from one supplier to another may be a very complicated software process. By using the flexibility of the WSDL interface in terms of operation, every company can maintain their existing systems as they are, instead of simply matching the WSDL interface and developing a new service level agreement, in this way, you do not have to completely rebuild their software systems. This is a change in the business level, that is, they change partners, and all business operations remain unchanged. Here, the business interface can be slightly changed, but internal operations do not need to be changed. The only reason for doing so is to work with external partners.
another form is internal change. In this change, the retail organization now decides that it will also rent some places in the stores of chain retailers to small shops that sell popular clothes. This can be seen as a business model using store-in-store. Although most of the company's business operations remain unchanged, they now need new internal software to handle such rental arrangements. While internal software systems can withstand comprehensive overhaul, they need to do so without having a major impact on interaction with existing supplier systems. In this case, the SOA model remains intact, but the internal implementation changes. Although new aspects can be added to the SOA model to add the responsibilities of the new lease arrangement, the normal retail management system continues as usual.
to continue the concept of internal changes, the IT manager may find that new software configurations can be used in another way, for example, the place where posters are rented and pasted for advertisement purposes. Here, the new business proposal is derived from reusing the flexible SOA model in the new design. This is a new achievement from the SOA model and a new opportunity, which may not be available in the past.
Vertical changes are also possible. In this change, retailers have completely changed from selling their own clothing to renting places through shop-in-shop models. If vertical changes start completely from the bottom layer, a significant change in the structure of the SOA model may occur, with which new systems, software, processes, and relationships may change. In this case, the benefit of the SOA model is that it considers issues from the perspective of business operations and processes rather than from the perspective of applications and programs, this allows business management to clearly determine what needs to be added, modified, or deleted based on business operations. The software system can then be constructed into a suitable way for business processing, rather than other methods that are often seen on many existing software platforms.
As you can see, changes and the ability of SOA systems to adapt to changes are the most important part here. For developers, such changes may occur both within the scope of their work and beyond the scope of their work, it depends on whether there are changes. You Need To Know How interfaces are defined and how they interact with each other. Different from developers, architects act as a major change to the SOA model. This division of labor allows developers to concentrate on creating functional units defined as services, while architects and modelers concentrate on how to properly organize these units, it has been around for more than a decade. Generally, it uses the Unified Modeling Language (UML) and describes it as a model-driven architecture (MDA ).
From: http://www.enet.com.cn/article/2007/0404/A20070404523706.shtml