Show TOC
Welcome to MSDN>
Architecture
Service-oriented architecture: realization
Release Date: 6/21/2004
| Update Date: 6/21/2004
Other articles in this issue
By establishing and following the road maps that combine the company unique standards to ensure success
Easwaran G. Nadhan
EDS department supervisor
Abstract: This article discusses a variety of methods for solving eight major problems that enterprises that are facing service-oriented architecture, and provide examples of EDS experience in customer service.
This page
Introduction Architecture component problem
Introduction
You are likely to be considering deploying service-oriented architecture across the enterprise. In any such deployment, there will be some complex problems, including the unique puzzles of your industry and companies. However, if you have a flexible implementation roadmap in your hands, you can quickly take action in a problem, and resolve these puzzles.
Service-oriented architecture is an important new model that supports the intermediate layer to implement a solution in modules. These architecture is particularly applicable when multiple applications running on various technologies and platforms must communicate with each other.
However, the service-oriented architecture is not available overnight. Enterprises must first speed up the pace of action and work to gradually construct relevant components and services. To ensure systematically implement such an architecture, roadmaps and business-specific standards are critical prerequisites.
This article provides a variety of different methods for enterprises to address various problems related to implementation. The examples in this article are based on EDS based on EDS to provide services to customers. This article also takes advantage of EDS to build the experience gained when it is easy to configure, manage, and deploy web services within an enterprise.
Back to top
Architecture component
Figure 1 shows the basic components of the service-oriented architecture. Components for service-oriented architecture include:
• service provider. The service provider is a component that executes the business function in stateless, accepts predefined inputs and outputs. • Service users. Services is a group of components that are interested in using one or more services provided by the service provider. • Services Reserve. The service reserve library contains a description of the service. The service provider registers its services in the reserve, and the service user accesses the reserve to discover the provided service.
Figure 1. Service-oriented architecture components
Back to top
problem
When implementing a service-oriented architecture, companies will face up to eight major problems. These problems correspond to a typical project deployment plan:
Service recognition. What is a service? Which business feature is given to a given service? What is the best particle size of this service? 2. Service positioning. What is the location of the service within the company? 3. Service domain definition. How should I combine the service into the logical domain? 4. Services packages. How do I re-design or pack it into reusable services? 5. Service coordination. How to coordinate composite services? 6. Service route. How to route requests from service users to the appropriate service and / or service domain? 7. Service control. How do companies implement a control program to manage and maintain services? 8. The use of service messaging standards. How does companies always use a given standard?
I will discuss these problems in detail and study methods that can be used to solve these problems. I will provide a representative actual example in the appropriate location.
Service recognition
problem
Correctly identifying services and identifying the appropriate service provider is a crucial first step in designing service-oriented solutions. In today's world, similar business functions are likely to be provided by multiple systems within the enterprise.
method
There are two ways to solve this problem: service rationalization and service merger. Service rationalization involves careful analysis of all systems and applications that provide given service functions. Through service rationalization, the service function supported by the minimum number of accesses can be transferred to a system with more access times. After the system is simplified in this way, we can provide services more consistently.
Figure 2. Account data management service rationalization
Figure 2 provides an example of a service rationalization. Many front-end applications (such as online banking, CRM, and VRU applications) need to receive information through "Account Management" business feature. Customer and Account Reserve is a record system that supports the "Account Management" business feature. Different subsets of the account information will be returned to the account data depending on the characteristics of the front-end application that call the service function. In this example, companies should add their customers' online access and VRU access, and reduce the use of CRM applications that require a lot of manual interaction. As customers quickly adapted to self-service channels, the percentage of access to the CRM application is steadily declining. As part of the service rationalization process, it will also expand account data management services based on VRU and online banking services to implement CRM account data management services. In this way, it is reasonable to eliminate the definition of the CRM account data management service and the two services that support it.
Service combination
Service merge involves redefining all of the service instances as a unified version, which supports the supercoming of all interfaces disclosed in each instance. The redefined and merging services are consistent with all independent applications.
Figure 3. Product Catalog Service Merge
Figure 3 illustrates a product catalog reserver access from three separate services. These services are specifically used to retrieve predefined subsets of available information about a product. After the service merge, only a single service will be left to handle the entire product directory. This service contains all information segments that are used before the combination. Service users have optionally use the part of the directory they are interested in. Therefore, service merge is an effective way to simplify multiple services that support the same business function.
Service location
problem
Services typically operate on a set of business entities residing in a given recording system. This recording system is an ideal place to perform services. However, if distributed architectural solutions are used, business data may be propagated into multiple applications and may generate multiple record system instances for the same business entity. Data synchronization between these two systems is a key requirement. In such a scenario, what should the service be placed?
method
There are three ways to solve this problem: content based routing, route based on the service reserve and rear end replication.
Content-based route
This method will route the service's incoming request to the appropriate recording system. Such a solution provides location transparency support for service users: the algorithm used to determine where to provide a given service does not need to be disclosed to the service user. Both recording systems support one instance of the service, and both service instances can act as a logical entry point for a given request.
Figure 4. Content-based routing
Figure 4 illustrates an example of content based routing. In this example, information about the customer is stored separately by region. Customers belonging to a given area are stored in the reserve library located in the data center in this area. However, service users located in either region can access this information. After receiving the incoming request, the Customer Data Management Service will execute a business rule to determine a specific reserve library that stores information about the given customer. Then, the customer data management service will route a given request to the appropriate area.
Route based on the service reserve
Figure 5 shows a routing method based on a service reserve, which is a variant of the above-described routing method. Although the customer data management service performs the same business rules as content-based routing methods, it uses information in the service reserve to position requests to the appropriate area. This method makes it easier when changing the routing logic if necessary. By updating the information in the service reserve, you can easily redirect the request to different regions without changing the business rules of the customer data management service itself.
Figure 5. Routing based on the service reserve
Back end replication
This method uses the inherent application connection function to access information in the physical reserve library of the required information. Therefore, both recording system examples can act as a logical entry point that accesss information distributed in both systems. The service can be performed in any of any of the systems. The physical location of the data is transparent to the service itself. Figure 6 illustrates a scheme for backend replication. The same customer data management service is implemented in the record system instance of the service. If information in other regional reserves is required, the relevant data will be obtained using the data replication functions behind the technology behind the data reserve.
Figure 6. Back-end copy service domain definition
problem
By classifying a service to multiple logical domains, the number of components to be designed can be reduced to simplify the architecture. This grouping can be performed for a variety of architectural structures, such as load balancing, access control, proxy simulation, and longitudinal or lateral division of service logic. However, it is often a major problem to reach a negotiation of different business departments and technology centers within the enterprise. How to make a good logical grouping for the service domain?
method
We can use a variety of ways to define the service domain. Table 1 shows an example of distributing applications and platforms in different business units. This example will be used to define a significant feature of the various methods discussed in this section.
Table 1. Application Distribution Example
Business Sector Main Intermediate Platform Application Home Loan Unix SAP Online Banking WINDOWS SIEBEL Banking Center UNIX PEOPLESOFT Insurance WINDOWS SAP Consumer Loan Linux Oracle Company Loan UNIX IBM DB2
Functional domain
The functional domain is based on the service function provided by a set of services. It is best to define and divide the service field by the business processing owner's service within the company to define and divide the service domain. Through this group, give the domain's service processing owner can control the service inside the domain. As long as the business processing owner ensures that the specified service in its respective domains is provided to other domains of the company, they can completely control the system structure and implementation of the service.
In the above example, there are three functional service domains: loans, banking, and insurance. Services resident in these domains may have to override multiple platforms and backend applications to process incoming requests specific to their domain. However, business processing provided by the service is similar in giving the domain, and no matter what the application or platform used to execute the service.
1. The loan loan service domain is usually some of the services provided to customers and companies' entities and manage these loans. The service domain includes both mortgages for purchasing residential buildings, including loans for purchasing other assets other than residential buildings. The service may include the proposition of the loan, the installment of the loan, and the monthly payment calculation. 2. The service resident in the banking businesses domains is usually associated with banking through a variety of media such as Internet, ATM, VRU, and Financial Center. Possible services include account opening, retrieving account balances, and transfer between accounts. 3. Insurance The insurance service domain contains the unique service unique to the insurance industry. Possible services include premium computing, medical records, and claim processing.
Technology-based domain
A functional service domain across multiple technical platforms has caused an inherent problem that allows you to grasp the status of each technical platform. Suppliers tend to explain the industry standards in a way that is conducive to their solutions and forcing companies depend on their architecture, hardware and / or software. Through the specifications of the technical service domain, the unique function of the corresponding technology can be directly effectively utilized.
In the above example, the serving domain can be divided in accordance with UNIX, Linux, and Windows platforms. Basic services (such as error records, transaction monitoring, and event processing) can be implemented as such services. They all rely on the platform executed and is usually independent of the service processing of the drive functional service domain.
Application-based domain
As a way to get rid of replacement of existing systems, the concept of enterprise application integration should be born. Today, many multi-front applications having companies need to integrate with the same record system to handle, package, and present the same information in different ways.
By the application-based service domain, you can combine the services provided on a given system. Such a method can simplify the management and maintenance of the service, as all services in this domain are the same.
In the example above, both SAP, Siebel, PeopleSoft, IBM DB2, and Oracle can be implemented as an application-based service domain. Some example services that may reside in these domains are listed below.
SAP
• Accounts payable - Accounts Accounts • Financial Accounting
PEOPLESOFT
• Add employee • Compensation update
Oracle
• Data Copy • Role Display Account Information
Service packaging
problem
In a service-oriented architecture, the system's system must disclose functions as a service. The system constructed to facilitate integration can be easier to do, while the host-based legacy system will have more difficulties. When these systems are built, they act as an integral application, which contain all business rules and processing logic involved. This information is distributed into multiple sets of interconnected programs.
Service-oriented architecture encourages all services to become independent services, and do not need to understand other services. The host program is deeply entangled in context-specific knowledge. How to re-encapsulate such a host program to an independent service?
method
We can use a method consisting of three steps to solve this problem. This method involves defining the logical service area within the host solution, assigns a program group to these business domains, and then designing a loosely coupled solution between these program groups. These steps are described in detail below:
• Business domain definitions. In this step, we will establish a logical area of business functions. We can use program call diagrams and process flow diagrams to define these business areas. We can also define these areas by using the relationship between programs in the host system. [Programs in the host system tend to contact each other. Behind this procedure on the procedure relationship, there is a common underlying business process. ] • Program allocation. After identifying the business area, we assign each program to a given service area. We may need to redesign the procedures that are not suitable for specific business areas to make them more matching the given service area. Such program packets are just corresponding to the service domain concept discussed above. • Loosely coupling integration. At this time, even if these programs have been assigned to the identified business area, they are still associated with each other. In the last step, we will replace this tight coupling relationship with a lower degree of coupling. To do this, we redefine the host program interface to allow other applications to take advantage of them; these programs will provide the same input as it is the same input and accept the same output. This redefine process provides a good opportunity to ensure that these programs provide a whole service for companies, rather than providing services to each other's single application (the latter is initially creating these programs). The method can also push existing host programs evolve to more service-oriented methods and position them as services used by service users outside the host system and internal service.
Service coordination
problem
The reason for the given service is that at least one service user instance launches request to the service. However, in some scenarios, a service may have to call many other services to meet the initial request of the service user. A simple solution relates to a given service to extend the initial request to one or more services. However, complex solutions may involve recursion calls for multiple services, and in some extreme cases, it may also involve calls to multiple services - this may cause a deadlock.
Here is an example. To sell a plane ticket, you need to do the following services:
Obtain customer
Get timetable
Check if there is a ticket
Quote
Collect money
Integrating coordination intelligence in each service can get a fairly complex scheme, as shown in Figure 7.
Figure 7. Service coordination puzzle
How to coordinate such composite services?
Business handling management method
This method keeps the services simpler: These services do not have intelligence that is called all other services required to complete the request.
Instead, the intelligence is placed in the service processing layer. Business handling is responsible for program calls to each of the services, thereby providing a composite service for service users initially requested. This service process is a dedicated example for composite services.
Figure 8. Business processing management method
Figure 8 illustrates the "ticket" business processing, which contains the program logic to execute. "Buy" business processing discovers the included service by accessing the service reserve library, followed by coordinating the appropriate steps in order.
Service route
problem
Service-oriented architecture must provide location transparency to service users: Service users must be able to send requests to any service in any serial domain. At the same time, access the service reserve before each calling service may be a very time-consuming process. How can these architectures ensure that the location transparency is provided, ensuring that the acceptable system performance level is it? method
We can solve the service routing problem in two ways.
Intelligent service
When using this method, we embed the location information of all services into each separate service. This can eliminate some of the steps required, but will lead to service overload. According to the frequency of these services and changes in their location, this method may require a lot of maintenance. In addition, such a method does not meet the loose coupling architecture employed by the service. Despite this, it still supports high performance solutions.
router
Another method is to move routing intelligence from each service to a routing component. These routing components can be located in two levels: service domains and services.
1. Service domain router service domain routers have intelligence related to location of all serving domains. After receiving the request, it will determine if the given request can be processed by one of the services it supports. If so, it will process the request. If no, it passes the request to the corresponding domain that can handle the request. 2. The service router service router is used inside the service domain to direct incoming requests to the appropriate service in this domain. Only those requests that can be processed within a given service domain will be passed to the service router. The service router reduces the load of location information in each service.
Service domain routers and service routers are more suitable for those service domains that contain a lot of services. If there is only a few services, the smart service is a viable option.
Figure 9. Service domain router and service router
Figure 9 illustrates the concept of service routing between service domain routing and domain.
Service control
problem
Regardless of the way the service domain is defined within the enterprise, there are various methods for creating a new service and modifying the philosophy of existing services. Who should monitor, define and approve changes to the existing service suite supported within the company? Who should be responsible for supply and maintenance of these services?
method
Enterprises can solve this problem by establishing internal controls. A variety of control models can be used. It will be discussed below.
Central control
With central control, the internal controls inside the enterprise have both representatives from various service domains, and representatives from independent groups that are not directly responsible for any service domain. There must also be representatives from representatives from different business units, and project experts who can present insights to the main technical components of the solution. The central control mechanism acts as an overall audit added and delete and changes to the existing service, and then decides whether to approve.
Figure 10. Central Control Model
As shown above, the central control mechanism is responsible for establishing and implementing service-oriented architecture guidelines and standards across the enterprise. The agency is also responsible for conveying these standards to business units, architectural teams, and technical teams.
Distributed control
Using distributed control, each business unit can control the way of providing services within its own organization. Distributed control requirements use functional service domain methods. The Service Architecture Commission can still provide advanced guidelines and standards for service implementation, but changes to the existing service infrastructure inside the business unit do not have to enlighten the approval of the committee. The committee can recommend following these guidelines, but is not responsible for the implementation of them.
Figure 11. Distributed control model
In the distributed control model shown in Figure 11, the business units A and B can freely build their own independent standards. However, there are still some ready-made non-strong measures (architecture and program guidelines) for these departments.
Service message processing standard
problem
Message processing standards specific to the longitudinal industry are used to standardize a set of data elements and messages. However, in each data element level, these standards have sufficient flexibility to make companies can customize them to accommodate business-specific business environments. Therefore, different business units within the same bus can use a variety of ways to follow the same standard. In addition, these standards also provide ways to create custom data elements.
For example, the Interactive Financial Exchange (IFX) standard specifies a variety of ways to perform unique identifiers to customers: • It is the only internal database item that identifies the customer. • It is the ID of the customer to log in.
These two fields are unique. Enterprises with IFX standards must determine when and where to use all fields. In some cases similar to this, the customer has decided to ignore these two fields, and create custom fields that can better adapt to their corporate recording systems!
How can I enforce a single standard throughout the enterprise?
Metadata control method
The metadata reserve in the enterprise supports the consistent representation of the main business entity. These representations are supercharges distributed in the information in multiple enterprise systems. Data dictionaries and logical and physical data models are the main input content of the definition and maintenance of the metadata reserve.
The metadata control team should be a specialized organization in the central control model discussed above. Metadata control must be executed at the enterprise level. In other words, even if the maintenance of the company generally adopts the distributed control model, the metadata must be used to use a central control model.
In the above example, the customer's metadata should contain a single way of uniquely identifying customers. In addition, metadata should ensure that authentication information is expressed in a consistent manner, including login names and passwords. Therefore, even if a company has selected to use the custom field to uniquely identify the customer, this field will still be represented in the metadata reserve library.
Back to top
summary
Service-oriented architecture is rapidly accepted by IT fields as a reasonable modular approach to constructing and deploying services in an extended enterprise. However, a serious plan is required when actually achieving these architectures. Interested companies must first ensure that they have prepared for long-term implementation and support these architectures.
By developing and following implementation roadmaps, companies can resolve a series of puzzles they will encounter in the process of completing this work. Each company will face a unique problem, and the corresponding method of solving these puzzles will also be different. These problems have also depend on the environment after implementation and after implementation depends on the environment of the relevant enterprise.
About author
Easwaran G. Nadhan is the supervisor of the Solutions Consulting Department of EDS (Plano, Texas). In the past 20 years, Nadhan has been engaged in the design and implementation of distributed solutions in the software industry. Recently, Nadhan uses his experience in enterprise applications to cooperate with many companies to achieve service-oriented architectural structure. The examples in this document are based on the actual cases experienced in the organization served by EDS and EDS. Readers can contact Easwaran Nadhan@eds.com by the following email address: easwaran.nadhan@eds.com.
Go to the original English page
Back to top
Suitable for printer printing
Send this page via email
Add to Favorites
Note