Migrate to service-oriented architecture
Written / Kishore Channabasavaiah, Kerrie Holley, Edward M.TUGGLE, JR.
This article is intended to help you better understand the value of the system structure (SOA), form a practical plan to evaluate your current infrastructure and convert it into a real-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.
Developing a service-oriented architecture in the past 40 years, the software architecture attempts to deal with increasingly 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 article is intended to help you better understand the value of the architecture (SOA) of the service, and develop a practical plan to evaluate your existing infrastructure, then migrate it 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 worse, and will never guide us from the jungle. 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. 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 possible. 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, branch, and credit card scoring systems are repeated, even if they access the same accounting 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. 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 effective, reliable and scalable machines to machine interactions, which is a prerequisite for several technologies and cultures. These prerequisites include: L ubiquitous, open standard, low-cost network infrastructure and technology. It contributes to a distributed environment, which is more conducive to use web services, not CORBA and DCE. l The level of acceptance and technology maturity achieved in a network-centered area. It requires interoperability to achieve critical business goals (such as distributed collaboration). l Consistent with Internet-based open standards and related technologies are the best way to achieve low cost interoperability. l 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 clearly requires the concept of on-demand computing, which 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.
The demand for service-oriented architecture is clearly seen, which should be apparent that a architecture should be developed to meet all needs, including: 1. The primary one is to use existing assets. Existing systems are difficult to abandon, and 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. 2. Support all necessary integrated types or "style." This includes: l User interaction - capable of providing a single, interactive user experience. l Application Connectivity - The communication layer constitutes the basis of all architectures. l Process Integration - Original application and service. l Information integration - United and mobile enterprise data. l Build - build and deploy new applications and services according to integration requirements. 3. Allow progressive implementation and asset migration - this will support a most critical aspect of developing such architecture: gain a larger investment return rate (ROI) capabilities. The unclear integrated project failed due to their complexity, cost and unrealistic implementation schedule. 4. Includes a development environment based on standard component frameworks to facilitate better reusing modules and systems, allowing legacy assets to this framework and considering the timely implementation of new technologies. 5. 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 eventually replaced by better, more effective, more powerful techniques, however, they can play a role in current situations. At least, they are the proof of SOA 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. Note that the expression here: 1. All functions 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. 2. 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. 3. In its most general sense, the interface is called; that is, on the level of the architecture, it is local (within this system) or remote (outside the direct system), is Using what interconnect scheme or protocol to call or need what kind of infrastructure component is connected, it is irrelevant. 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: 1. Security - request authorization, encryption, and decryption (when needed), confirm, etc. 2. Deploy - For performance, availability redundancy or other reasons, the service is allowed to re-deploy (move) within the network. 3. Log - for review, measurement, etc. 4. Dynamic Reverse - Fail over or load balancing. 5. Maintain - the new version of management services.
What is the quality of the service? As mentioned earlier, in a typical business environment, services means business functions, business transactions, and system services. Business functions may be getStock Quit, GetCustomerAddress or Checkcreditrating. Business matches may be commitinventory, sollcoveredoption or scheduledelivery. System service may be logMessagein, getTimeStamp or OpenFile. Please pay attention to the difference between various types of services. From the perspective of an application, the business function is actually a non-system function of atoms. Business matters are very similar to a simple function to call applications, but they may be implemented as a composite function included as a context of its own transaction. They may include multiple underlying functions that are transparent to the caller. The system function is a generalized function that can abstract from a particular platform such as Windows or Linux. The application framework may provide a widely virtually virtualized data source like OpenFile, so that such functions can be used without considering the type and location of the real data source. This looks like artificial differences between services, you can assert from an application perspective, all services are atomic, and it is independent of business services or system services. Make this difference just to introduce this important concept of granularity. Decompose business procedures into services more than just an abstract process; it has a very realistic meaning. Depending on the definition, the service may be a low-level (fine grain) function, or a complex advanced (coarse granular) function, and has a realistic compromise option in performance, flexibility, maintainability, and reusability. The process of defining services is usually done within a larger scope (scope of application framework). This is the actual work that must be done: that is, the development of component-based application frameworks, where services are defined as a set of reusable components, and these components can be used to build new applications or integrate existing software assets. . Now you can get a lot of such a frame. In IBM, some frameworks like EWA, JADE, and Struts are used in customer integration scenarios. Take EWA (read as "EVA") as an example (it comes from the IBM Software Group Advanced Technology Solutions group), in a higher level, the frame appears as shown in Figure 3. In this framework, configuration defines an application that describes the components of the application and the order and methods they call. Receive input in a source in a source and transfer it to the application. Therefore, for example, add the Internet connection to a bank application with an existing ATM access, which is transparent to the application logic. The front end device and protocol handler make it possible. The core provides system-level services, while specific purposes enable connection to the backend enterprise application so they can maintain the original state, or migrate after a period of time. Although EWA is fully followed by J2EE, it can be connected to an external DCOM or CORBA component. Now, EWA includes more than 1,500 conventional and specific purposes, which greatly reduces the number of code required to write new applications. Another article in this series will study the application framework and what users need to be needed in the process of developing such an application framework.
Solve the previous problem now, let us return to discuss the first integrated scene, find a Scheme that minimizes the number of interfaces required, as shown in Figure 4. This picture seems to be too simplified, but it can now be clear that this picture is a starting point in a frame like EWA. Now, the service bus (Service Bus) belonging to the scope of architecture is added (represented by dark center lines in Figure 5) and a service or stream manager to connect the service and provide a service request. The flow manager handles the execution sequence or service stream, which will call the desired service in the appropriate order. Business Process Execution Language (BPEL) is an example of this technology that defines the process as a set of service calls. Here you need to determine how to call the service, so you will add an application configuration. Next, virtualization input and output. Finally, provide the connection to the backend process so that they can run according to the "only this status" and can also be migrated in the future. Now, this high-level figure is at least in structure, as shown in Figure 6. This picture is unworthy with the EWA block diagram. At the highest level, any powerful application framework must provide these features. However, from now on, the real work begins - build 1,500 components to enrich this skeleton. This is why many IT architects choose the reason for implementation in an existing framework; it is enough to break up existing applications into the framework, without having to re-develop all other known will be used. Use components and system components. No matter how you use it, you can use the existing technology and framework to implement the architecture, so you wrap a whole ring, now returns to the beginning, here, the process first analyzes the business problem that must be resolved. If you dare to affirm your architecture is actually realized, you can do this now.
Integration Demand in Architecture Discussion Event, integration has been limited to integration of applications performed by components, but integrating this topic is much broader than this. When estimating the needs of an architecture, some integrated types or "ways" must be considered. You must consider the following aspects: l Application Integration L End User Interface Integration L Application Connection L Process Integration L Information Integration L Construct Integrated Development Model Terminal User Interface Integration involves all applications and services to integrate specific users to provide available users , Efficient, consistent interface. It is a topic that is developing, and new development will mainly depend on the progress of Portal server in the near future. Although portlets can already call local service components through the web service, new technologies (such as user remote portlets of web services) will enable content and application providers to create interactive services, these services can be inserted by Portal by Portal. This provides possible for many new integration. Application connection is an integrated way, which involves all types of connections that must be supported by the architecture. At a level, this means synchronization and asynchronous communication, routing, conversion, and high speed distribution, and gateways and protocol converters, and the like. At another level, it is also related to the virtualization of input and output or source (SINKS), as seen in the EWA channel and protocol conversion (Protocol Handlers). The problem here is that the data movement, shifts, and the way to move in the framework of the architecture. Process integration involves development mapped to business processes and computing processes that provide solutions for business processes, integrate applications into processes, and integrate some processes and other processes. Although the first demand may seem irresponsible, it is the environment that provides an analog basic business problem. However, if it is not fully analyzed in this layer, any implementation of the architecture will fail, regardless of What is the technology it uses. Integrating applications into processes may include applications in an enterprise, or may involve calling applications or services in remote systems, and these remote systems are more business partners. Similarly, the process layer integration may involve the integration of the entire process rather than just a single service from an external source, such as supply chain management or financial services across multiple mechanisms. To meet the integration requirements of such applications and processes, techniques such as BPEL4WS can also be used, and the application framework can also be configured using the program configuration scheme (such as seen in EWA). In fact, you can use BPEL4WS in the underlying to construct a high-level configuration scheme, then driven by a engine, which not only provides stream management, but also provides other functions. However, before building all, you should first understand the needs of the architecture, then build the appropriate infrastructure. Information integration is a process, its role is to provide all applications that require it to provide consistent access to all the data in the enterprise, regardless of these applications need it, and is not subject to data format, source or location restrictions. . In implementation, this requirement may include an adapter and a conversion engine, but it is usually complicated than this. The key concept is often a virtualization of data, which may include the development of data bus, all applications in the enterprise request data from the data bus through standard service or interface. Therefore, regardless of the data from electronic data tables, local files, sql or dl / i databases, or data stores from memory can be supplied to the application. The data format in permanent storage may not be known for the application.
The application does not know the operating system of managing data, thereby accessing to these files in Windows, OS / 2, ZOS, or other systems in WINDOWS, OS / 2, ZOS, or other systems. Similarly, the location of the data is also transparent; since it is provided by a common service, it is responsible for querying data by the access service rather than by the application, and then by the local or remote), then follow the request format data. The last demand for the application development environment is that all the ways and hierarchies that may be implemented in the enterprise, and prepare for their development and deployment. To really do strong, development environments must include (and execute) a way to expressly specify how to design and build services and components in order to promote reuse, eliminate redundancy and simplify testing, deployment, and maintenance. All integration methods listed above have a certain degree of refers to any enterprise, although they may be simplified, or they are not clearly defined; thus, when you design a new architecture framework, you They must be considered in a comprehensive consideration. Specific IT environments may only have few data source types, so messaging may be simple. Similarly, the scope of application connectivity may also be limited. Nonetheless, if the framework can continue to be maintained as the company's growth and changes, the integration function in the framework must still be provided by the service, not by a particular application. The benefits of deploying service-oriented architectures can develop based on existing system investments without a complete recreation system. If the organization will focus on the creation of services, use existing technologies to develop software based on component-based approaches, will benefit from the following aspects:
l Use existing assets - this is the primary demand. By using the appropriate SOA framework and makes it available for the entire enterprise, the business service can be configured to create a collection of existing components. Using this new service only needs to know its interface and name. The internal details of the service and the complexity of the data transmitted between components that make up the services are hidden in the outside world. The anonymity of such components allows the organization to utilize existing investments, so that can be created in different operating systems by mergery, running in different operating systems, using components developed in different programming languages to create services. The legacy system can be encapsulated and accessed through a web service interface. l Commercial Infrastructure - Between all different enterprise applications, the development and deployment of infrastructure will become more consistent. Existing components, newly developed components and components purchased from vendors can be merged in a well-defined SOA framework. Such a component set will be deployed as a service in the existing infrastructure, so that the infrastructure can be considering more in the infrastructure as an commercial element. l Faster Product Listing Speed - The organization's Web service library will become a core asset that uses the organization of the SOA framework. Using these web service libraries to build and deploy services will significantly speed up the market's listing speed, because new creative reuse of existing services and components shorten the time of design, development, testing, and deploy products. l Reduce costs - With the development of business needs and the introduction of new needs, the cost of enhancing and creating new services for existing and new applications is greatly reduced by using SOA framework and service library. Similarly, development team learning is also reduced because they may have been familiar with existing components. l Reduce risk - reuse existing components reduce the risk of enhancing or creating new business services. As mentioned earlier, this also reduces the risk of maintaining and managing the infrastructure of support services. l Continuous Improvement Business Process - SOA allows clearly to represent the flow flow, which is identified by the order of components used in a particular service service. This provides business users with the ideal environment for monitoring business operations. Business modeling is reflected in business services. The process manipulation is achieved by a certain mode recombinant component (component constituent business service). This will further allow the process flow to be changed, while simultaneous monitoring results, therefore facilitates continuous improvement. l The process-centric architecture - existing architecture models and practices are often centered on programs. The application is developed for programmers. Typically, process information propagates between components. The application is very like a black box, no particle size can be used outside. Reuse the copy code, combine shared libraries or inheritance objects. In the process-centric architecture, the application is developed for the process. The process can be broken down into a series of steps, each step represents a service service. In fact, each process service or component function is equivalent to a sub-application. Links these sub-application together can create a flow of flow that meets business needs. This granularity allows for the use of sub-applications in the entire tissue. Future - new model, new demand to now, discuss the concepts that meet the needs of existing business, better use and reuse resources, and integrate existing and new applications. But what is a new application model? Is the concept of service-oriented architecture still meaningful or indispensable? In fact, two new concepts have begun to implement: Grid Computing and on Demand Computing. Although these two models are distinct, they are independently developed, but their relationship is very close, and each model makes SOA development more imperative.
Grid computing in-depth discussion Grid calculations beyond the scope of this article, but there are several points worth mentioning. First, grid calculation is not only a solution to a large number of MIPS applications, which also involves virtualization of all system resources including hardware, applications, and data, so in the grid, no matter Where is it, what method is used, as long as you need it, you can use these resources. Second, the previous section has discussed the importance of virtualized data sources and decomposes applications into components based on component-based services, so it is easy to understand in a grid environment, and a real SOA should better get the most resources. Calculating on Demand is not within the scope of our discussion, but if you don't briefly introduce the relationship between On Demand and SOA, it will be irresponsible. The web service is a technology that implements SOA, while SOA is an architecture that implements the on Demand application. The application must run in the SOA framework to get the benefits of On Demand. On Demand Web Services on Demand is part of the ON Demand message covered by a wide spectrum. One end of the pedigree is focused on the application environment, and the other end is focused on an operating environment including an infrastructure and autonomous computing. Business conversion utilizes an app and operating environment to create an on Demand service. The ON Demand business is the ON Demand Web service, and the application layer service can be discovered, reconstructed, assemble, and delivered in accordance with the requirements of Just-in-Time integration capabilities. The Web Service is a hoping for a practical technology that it will increase business value by providing such a service such as on-demand services, and the way IT organization development software will be transformed over time. It is even more likely to transform business operations in the interest community (including trade partners, customers and other types of partnerships) and provide products and services. What if you share the same transport layer protocol? If they understand the same interface? If they can participate and understand the same transaction model? What is your partner? When this is all implemented, what kind of scene will be displayed in front of you? Believe that you will have an application and infrastructure to support changing business conditions; you will get on Demand. Web services and SOA will make this possible possible.
Summarizing the service-oriented architecture is the focus of the next application development. Services and service-oriented architectures are software components that use heterogeneous network addressable software components to design and build systems. Service-oriented architecture is an architecture with special properties that are interconnected from components that emphasize interoperability and position transparency. It is often developed on the basis of existing system investment, and does not need to be completely re-developed; it uses organizations by using current resources (including developers, software language, hardware platforms, databases, and applications) Existing investments reducing costs and risks while improving productivity. This adaptable, flexible architecture provides the basis for shortening product launch time in development and maintenance, and reducing costs and risks. Web services are some technologies that implement SOA, while SOA is becoming the architecture selected by new applications, adaptable new applications.