Basic Tutorials
For synchronous and asynchronous applications, SOA is a revolution in distributed computing based on request/response patterns. The business logic of an application (business logic) or some individual functionality is modularized and rendered as a service to the consumer or client. The key to these services is their loose coupling characteristics. For example, the service's interface and implementation are independent. Application developers or system integrators can build applications by combining one or more services without having to understand the underlying implementation of the service. For example, a service can be used. NET or Java EE, and the application that uses the service can be on a different platform, and the language can be used differently.
SOA has the following characteristics
SOA services have a platform-independent self-describing XML document. The Web Service Description Language (WSDL, Web Services Description Language) is the standard language used to describe the service.
SOA services communicate with messages, which are often defined using XML schemas (also known as XSD, XML Schema definition). Communication between consumers and providers or consumers and services is much more common in environments where providers are not known. Communication between services can also be viewed as a key business document for internal processing within an enterprise.
Within an enterprise, SOA services are maintained through a registry (Registry) that acts as a directory listing (directory listing) role. The application searches for and invokes a service in the registry (Registry). Unified description, definition and integration (UDDI, universal Description, definition, and integration) are standards for service registration.
Each SOA service has a service quality associated with it (QoS, quality for service). Some of the key elements of QoS are security requirements (such as authentication and authorization), reliable communication, which ensures that messages are "only" sent once, filtering for duplicate information. And who can invoke the policy of the service.
Why Choose SOA?
Different kinds of operating systems, application software, system software and application infrastructure (application infrastructure) are intertwined, which is the status quo of it enterprises. Some existing applications are being used to handle the current business process (business processes), so it is impossible to build a new infrastructure from scratch. Companies should be able to respond quickly to changes in the business, leveraging existing applications and application infrastructure (application infrastructure) to address new business needs, providing new channels of interaction for customers, business partners, and suppliers, and presents a framework that can support the organic business (organic business). SOA, by virtue of its loosely coupled nature, enables enterprises to add new services or update existing services in a modular manner to address new business needs, provide choices to provide services through different channels, and can serve as services to existing or established applications of the enterprise, thereby protecting existing IT infrastructure investments.
As shown in the example in Figure 1, an enterprise using SOA can use a set of existing applications to create a supply chain composite application (supply chain composite application), which provides functionality through standard interfaces.
Figure 1. Supply chain application. Click on thumbnail to view full-sized image.
Service architecture
To achieve SOA, the enterprise needs a service architecture, and Figure 2 shows an example:
Figure 2. A Sample service Architecture. Click on thumbnail to view full-sized image.
In Figure 2, a service consumer (consumer) can invoke a service by sending a message. These messages are converted by a service bus to be sent to the appropriate service implementation. This service architecture can provide a business rules engine (business rules engine) that allows business rules to be merged into one service or multiple services. This architecture also provides a service management base (management infrastructure), which is used to manage services, such as audits, lists (billing), and log functions. In addition, the architecture provides a flexible business process for enterprises to better handle control requests (regulatory requirement), such as Sarbanes Oxley (SOX), and can change a service without affecting other services.
SOA infrastructure
To run, manage SOA applications, the enterprise needs an SOA base, which is part of the SOA platform. The SOA base must support all relevant standards and the run-time containers that are required. A typical SOA infrastructure is shown in Figure 3. Each part of the structure is discussed in the next section.
Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.
SOAP, WSDL, UDDI
Wsdl,uddi and SOAP are the basic components of the SOA Foundation. WSDL is used to describe services; UDDI is used to register and find services, and soap, as a transport layer, is used to send messages between consumers and service providers. SOAP is the default mechanism for Web services, and other technologies enable other types of bindings to be serviced. A consumer can find a service in the UDDI Registry (registry), obtain a WSDL description of the service, and then invoke the service through SOAP.
WS-I Basic profile
The WS-I Basic profile, provided by the Web Service Interoperability Organization (Web Services Interoperability Organization), is the core component required for SOA service testing and interoperability. The service provider can use the Basic Profile test program to test the interoperability of services on different platforms and technologies.
Java EE and. Net
Despite the Java EE and. NET platform is a common platform for developing SOA applications, but SOA is not limited to this. Platforms such as Java EE provide a platform not only for developers to participate naturally in SOA, but also to introduce scalability, reliability, usability, and performance into the SOA world through their inherent features. New specifications, such as JAXB (Java API for XML Binding), used to navigate XML documents to Java classes; JAXR (Java API for XML Registry) to standardize operations on the UDDI Registry (Registry) ; XML-RPC (Java API for xml-based remote Procedure call) is used in j2ee1.4 to invoke remote services, which makes it easy to develop and deploy Web services that can be ported to standard Java EE containers, while enabling Cross-platform (such as. NET) Service interoperability.
Service Quality
In the enterprise, Mission critical Systems (Mission-critical system) are the key task systems for a system that is critical to the reliability of an organization. For example, the telephone system is a mission-critical system for a telemarketing company, and word processing systems are less critical. To address advanced requirements, such as security, reliability, and things. When an enterprise begins to adopt a service architecture as a tool for developing and deploying applications, basic Web service specifications, such as Wsdl,soap, and UDDI, do not meet these advanced requirements. As mentioned earlier, these requirements are also known as service quality (qos,quality of services). Many of the QoS-related specifications have been presented by some standardization organizations (standards bodies), such as the World Wide Web Consortium and Oasis (the Organization for the Advancement of Structured information standards). Some QoS services and related standards are discussed in the following sections.
Safety
The Web Service security specification is used to secure messages. This specification mainly includes authentication exchange, message integrity and message confidentiality. The specification is attractive because it uses existing security standards, such as SAML (as Security assertion Markup Language), to secure Web service messages. Oasis is working on the development of Web services security specifications.
Reliable
In a typical SOA environment, there will be several different documents exchanged between the service consumer and the service provider. With such things as "Send only once" (Once-and-only-once delivery), "Send at most once" (At-most-once delivery), "Duplicate Message Filtering" (Duplicate messages Elimination), "Guaranteed Message Delivery" (Guaranteed message delivery), and other feature messages are sent and confirmed, in the mission critical system (Mission-critical systems) becomes very important. Ws-reliability and Ws-reliablemessaging are the two criteria used to solve such problems. These standards are now under the responsibility of Oasis.
Strategy
Service providers sometimes require service consumers to communicate with a certain policy. For example, a service provider may require a consumer to provide a Kerberos security label to obtain a service. These requirements are defined as policy assertions (policy assertions). A policy may contain multiple assertions. Ws-policy is used to standardize policy communications between service consumers and service providers.
Control
When a business is working on a service architecture, services can be used to consolidate data warehouses (silos's), applications, and components. The integration of applications means that process requests such as asynchronous communication, parallel processing, data conversion, and corrections must be standardized. In SOA, processes are created using a set of discrete services. Bpel4ws or Wsbpel (Web service Business Process Execution Language) is the language used to control these services. Wsbpel is also under the responsibility of Oasis.
Management
As Enterprise Services grow, the number of services and business processes used increases, and a management system that allows system administrators to manage all services running in a heterogeneous environment is particularly important. WSDM (Web Services for distributed Management) stipulates that any service implemented according to WSDM can be managed by a WSDM adaptation (wsdm-compliant) management scheme.
Other QoS features, such as communication and communication between partners, and the various service tasks are described in the ws-coordination and ws-transaction standards, all of which are oasis work.
SOA is not a Web service
Confusion often occurs in understanding the relationship between SOA and Web services. According to a April 2003 Gartner report, Yefim v. Natis explains this problem: "Web services are technical specifications, and SOA is design principles." In particular, WSDL in Web Services is an interface definition standard for SOA: This is the fundamental link between Web services and SOA. "Essentially, SOA is an architectural pattern, and Web services are services implemented with a set of standards." Web services are one way to implement an SOA. The advantage of using Web services to implement SOA is that you can implement a neutral platform to get services, and you will achieve better versatility as more and more software vendors support more and more Web service specifications.
The advantages of SOA
The concept of SOA is nothing new, and SOA differs from existing distributed technologies in that most software vendors accept it and have platforms or applications that can implement SOA. SOA is accompanied by ubiquitous standards that bring greater reusability to the enterprise's existing assets or investments. SOA can create applications on top of the latest and existing applications; SOA enables customers or service consumers to be exempt from changes in service implementations; SOA can upgrade a single service or service consumer without rewriting the entire application, or retaining existing systems that no longer apply to new requirements. All in all, SOA is an agile way of combining existing applications to generate new services, providing the enterprise with greater flexibility to build applications and business processes.
About the author
Raghu R. Kodali is consulting product manager and SOA evangelist for Oracle application Server. Kodali leads next-generation SOA initiatives and EE feature sets for Oracle application Server, with particular Expertis E in EJB, Java EE deployment, Web services, and BPEL. Prior to Product management, Kodali held presales and technical marketing positions in Oracle Asia-pacific, based in Singa Pore. Prior to Oracle, his worked as software developer with National Computer Systems, Singapore. He holds a master's degree in computer, science and are a frequent speaker at technology conferences. Kodali maintains an active blog at loosely coupled Corner