Migrate to service-oriented architecture, Part 1
Introduction and overview
Level: Intermediate 2004 January 2004
This is the first part of the article. This series of articles aims to help you understand the value of the system (SOA) of the service, develop a practical plan to assess your current infrastructure and turn it into it into A true service-oriented architecture. Its purpose is that when you read this article, you will understand why SOA is to bring existing assets to the future of the future, and make it possible to develop future procedures quickly and correctly. In addition, you will have a better understanding of matters mainly considered in the process of planning such a migration.
Development of service-oriented architecture
In the past 40 years, the software architecture attempts to deal with the growing software complexity. However, complexity is still continuing, and traditional architectures seem to have reached the limit of their handling such problems. At the same time, IT organizations still continue to exist; for example, it is necessary to quickly respond to new business needs, and need to constantly reduce the cost of IT in business, and absorb, integrated new business partners and new customer bases. As an industry, we have experienced a variety of computational architecture capable of providing complete distributed processing and programming languages that can run on any platform, which greatly shortens the realized schedule, and we have also experienced countless connectivity products. These products can integrate applications faster. However, we still did not find a full solution. Now, the industry proposes the architecture (SOA) of the service as a software architecture to help IT organizations meet the more and more complex challenges they face. However, is this architecture of this architecture? Can it really be implemented even if it can be summarized and described? The argument of this article is to conclude SOA is reality; after all the publicity of all the sky, all exaggerated expectations returns to reality, you will find that at least SOA is IT organization to bring its existing assets to the future At the same time, it also builds the best foundation for new application systems. This is the first part of a series of articles, which is intended to help you better understand the value of the architecture (SOA) of the service, and develop a practical plan to assess your existing infrastructure, then migrate Go to a true service-oriented architecture.
Once upon a time, existing web services techniques have stimulated the discussion of the service-oriented architecture (SOA). This discussion is not fresh; extension from CORBA to the application on a completely different heterogeneous platforms until now, this concept has developed more than 10 years. The problem of integrating such applications is constantly appearing, usually because there are so many different (non-CORBA-compatible) object models popular; thus, many architects and engineers have fallen into the mud, which solves such problems. The more robust architecture is not fulfilled, and the promise of simply, fast and safe systems and applications is not fulfilled. However, the problem is continuing to increase and is increasingly complex. Basic business needs, such as reducing costs, reducing development cycles, cross-enterprise integration, businesses (B2B) and businesses to customers (B2C) integration, greater investment returns, create adaptive and self-response Business model, etc., so that we keep looking for better solutions; however, we are more and more, "Point Solutions" cannot solve this basic problem. In many cases, the problem is that there is a lack of a consistent architecture framework, in which the application can quickly develop, integrate, and reuse applications. More importantly, we need a such architecture framework that can assemble components and services to deliver applications quickly and even dynamically. Why is a certain technique such as a web service is good, but we really need an architecture that is not subject to technical constraints, many articles discuss this. Let us first consider some basic questions, these issues are the basis for seeking better foundations, how to solve these problems will determine the success or failure of our work. The primary problem - the complexity is always the same, especially the business problems faced by IT organizations. The company's management always strives to better utilize IT, obtain a larger investment return rate (ROI), integrated system and achieve new systems faster; however, when it comes to today, things have changed. Now, you are experiencing a more complex environment. It must be reused instead of replacement of legacy systems, because more costs are highly considering. You will find a low cost, ubiquitous Internet access makes it possible to build a new business model. The company needs at least assessed this model because of competition. Growth of mergers and acquisitions has become a homemade, so you must integrate and integrate the entire IT organization, application, and infrastructure. In such a complicated environment, the point solution will only make the problem degrade, and will never lead us to the heavy forest. Systems must be developed in a heterogeneous environment because they must accommodate a wide variety of hardware, operating systems, middleware, language, and data storage. The impact of growth and evolution of growth in decades has led to serious complexity. In the face of all of these challenges to IT business, many CIOs are not surprising as the primary task, as shown in Figure 1.
Figure 1. CIO priority consideration
Another problem - redundant and non-reusable programming Consider a bank has some separated "cellar" - from the bank that is not known for other systems. The first one in these application systems may be excellent design, like, second, third, etc. may be. But every one is a separate project of different business in the bank. Thus, for example, the function of acquiring account balances is duplicated in the ATM system, branching, and credit card scoring systems are repeated, even if they access the same accounting data data in the same database. Now, the bank must develop Internet services for customers, online banking or online loan issuing systems to maintain competitiveness, and what is the result. The new system will only give the existing redundant programming problem, unless the existing code can be reused in some way. Real integrated puzzle - interface diversity also considers N (N-1) integration issues. Any organization will encounter certain types of integration issues; maybe because a company merger, a new business alliance or just need to interconnect existing systems. If n application systems must interconnect directly, N (N-1) connection or interface will be generated. In Figure 2, each arrow represents an interface.
Figure 2. Direct integration of n applications
Therefore, if another application system A (Nth 1) must be integrated, you will need, documentation, test, and maintenance of 2N new interfaces. Although in the above figure, the collection of five applications requires 20 direct interfaces, but adding six applications will need 10 new interfaces! What is even worse is that you must modify the code in each existing application to include a new interface, thus will occur in a large number of testing costs. You can find an optimal solution that generates the minimum interface number (N) for n applications, which adds only a new interface for each additional system, but is not done by direct connection.
What will it be? In the past 40 years, the practice of software development has experienced several different programming models. Each shift performed in a certain extent is to handle higher levels of software complexity, and make it possible to assemble applications through components, components or services. Recently, Java technology has contributed to platform neutralization, and XML has contributed to itself, and thus also contributes to the data in the platform. Now, the Web Services enables interconnections by allowing applications to be interconnected in an object model, thereby overcoming another obstacle. Using simple XML-based messaging Scheme, Java applications can call DCOM and follow CORBA even COBOL applications. CICS or IMS transactions on a large machine in Singapore can be called COM-based applications driven by a Lotus script that runs on the Domino server in Munich. The best situation is that the calling program is likely to not know where the transaction is running, which is written in the message and the transmission path of the message. Just propose a service request, then you will get the answer.
Compared to any of the predecessors, web services are more likely to provide standards that provide effective, reliable and scalable machines to machine interaction, which is a prerequisite for the prerequisite to combine the product. These prerequisites include:
Unwanted, open standard, low-cost network infrastructure and technology. It helps a distributed environment, which is more conducive to the use of web services, rather than Corba and DCE in a network-centered area accepted level and technology maturity level. It requires interoperability to achieve critical business objectives (such as distributed collaboration), unanimously agreeing to Internet-based open standards and related technologies are best way to achieve low cost interoperability. Network-based technologies (such as TCP / IP), tool sets (IDE, UML, etc.), platform (such as J2EE platforms) and related methods (such as OO, service, etc.) mature levels. They provide the infrastructure required to simplify loosely coupled, interoperable, machine-to-machinery interactions (a highly much state than the CORBA user experience). Service-oriented architecture allows you to design a software system that provides services to other applications by publishing visible interfaces, and services can be called over the network. When you use web service technology to implement a service-oriented architecture, you create a new way to build applications in a more powerful, flexible programming model, reducing development costs, costing, and achieving risk . SOA is both an architecture model and a programming model, which is a way to consider building software.
However, there are more important opportunities to appear. The first one is grid computing, mesh calculation is not only a solution with a large number of MIPS applications, but also provides a framework, which can dynamically position, relocate, balance, and manage a lot of money through this frame. Service, so that regardless of the load on the system, you can always ensure safe access to the application. This further needs to be on-demand computing, on-demand computing, may be implemented under any configuration, from a simple server cluster to a SP2 network with 1024 nodes. Users need to solve problems and appropriate computing resources for solving problems - not much! And pay for resources actually used.
Effective use of these new features will need to re-construct many existing applications. Existing single applications can operate in these environments, but do not use available resources in optimal ways. This issue can produce the following conclusions together with the issues previously discussed: a fundamental change must be made - migrate to the service-oriented architecture.
Service-oriented architecture needs
According to the problems discussed above, it can be clearly seen that a architecture should be developed to meet all needs, including:
The primary point is to use existing assets. Existing systems can rarely abandon, they usually contain things that are valuable for companies. From a strategic, the goal is to construct a new architecture to create all the desired value, but from tactics, you must integrate existing systems so that over time can be managed, progressive projects Differentiation or substitution them. Support all necessary integrated types or "style". This includes:
User interaction - can provide a single, interactive user experience application connection-communication layer constitutes basic flow integration of all architectures - Orchestration application and service information integration - joint and mobile enterprise data according to integration requirements Construction - build and deploy new applications and services. Allow progressive implementation and asset migration - this will support a most critical aspect of developing this architecture: gain a larger investment return rate (ROI) capabilities. The unclear integrated project failed due to their complexity, cost and unrealistic implementation schedule. Including a development environment based on standard component frameworks, facilitating better reusing modules and systems, allowing legacy assets to this framework, and considering timely implementation of new technologies. Allow new computing models; especially, new Portal-based client models, grid computing, and on-demand computing. Service-oriented architecture - not just a fundamental change in Web service web services, because many Web service projects have shown that this technique is actually existed, thereby you can realize real-oriented architecture. It allows you to go back to a step, not only analyze your application architecture, but also analyze the basic business issues you are trying to solve. From a business perspective, it is no longer a technical problem, but to develop an application architecture and framework that can define business problems, and can implement a solution in a consistent manner.
However, first, it is necessary to understand that the Web service is not equivalent to the service-oriented architecture. Web services are a collection of technologies including XML, SOAP, WSDL, and UDDI, which enables you to build programming solutions for specific messaging and application integration issues. Over time, you have reason to believe that these technologies will gradually mature and ultimately for better, more effective, and robust techniques, however, they can play a role in current situations. At least, they are the proof of SOAS to eventually achieve this concept. So, what make up for the service-oriented architecture actually?
SOA is just an architecture. It is not a collection of specific technologies such as Web services; but surpassing them, in the ideal case, it is completely independent of them. In a business environment, SOA's pure architecture definition may be such an application architecture. In this architecture, all functions are defined as an independent service, which has a definition of clear adjustment. The interface can be called to form a business process in a defined order. Please note the expression here:
All features are defined as a service. This only includes business functions, business transactions and system service features consisting of underlying functions. This will produce a granular problem, and we will discuss this. All services are independent. They run like a "black box": external components don't know how they don't care how they do their function, but only care about whether they return the expected results. In its most general sense, the interface is called; that is, on the level of the architecture, what is it locally (within this system) or remote (outside the direct system), what is it? It is irrelevant to interconnect the Scheme or protocol to call or require what kind of infrastructure components are not intended. The service may be in the same application, or it may be in the different address space of the unsmacible multiprocessor on the company's internal network, and it is possible to be on the system of partners used for B2B configuration. Applications.
In all of these expressions, the interface is the most critical, and it is also the focus of calling applications. It defines the type of parameters and results; therefore, it defines the type of service, not technologies that implement services. The system's responsibility is the call to implement and manage services, not calling applications. This makes it possible to recognize two key features: one, service is truly independent; two, they are manageable. Management includes many functions, including security-request authorization, encryption, and decryption (when needed), confirmation, etc. - For performance, availability redundancy or other reasons, allow services to re-re- Deployment (Move) Log - Used for review, measurement, etc. Dynamic re-routing - new version of Fail over or Load Balancing Maintenance - Management Services
to sum up
In the first part, you have briefly analyzed some problems that need to consider SOA, which hopes to have a new architecture. In the second part, we will study the type of service, construct a service-based application framework and some future computing environments, which will make the development of SOA must be more powerful.
Reference
Check out the IBM DeveloperWorks Web Services area to get web service white paper and tools. To find a Web service and a customer project case for a service-oriented architecture, see the IBM JStart Web site. Read article BEST PRACTICES for DETERMINININININININING The Proper Level of Gran Guity of Services Withnin A SOA (DeveloperWorks, Oct 2003). Read Accessing CICS Transactions As Services Withnin A SOA (IBM). Zackman Framework for Enterprise Architecture will be the topic of another article about SOA's article. In addition to the Zachman framework, several major architectural frames have also been developed, including:
Federal Enterprise Architecture Framework (FEAF) for command, control, communication, computer, intelligent, monitoring, and investigation (C4ISR) Architecture open tissue architecture framework (TOGAF)