Migrate to service-oriented architecture, Part 2
Introduction and overview (continuing)
Level: Intermediate 2004 January 2004
This is the second part of a series of articles. This series of articles aims to help you better understand the value of the architecture (SOA) of the service, develop a practical plan to assess your current infrastructure and turn 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. The first part of this series of articles describes the need to promote the power of SOA and such an architecture. Now, the second part will continue to discuss services and interfaces.
Service nature
What is a service? As mentioned earlier, in a typical business environment, services means business functions, business transactions, and system services. Business functions may be getStockQuote, 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 frames; in IBM, some frameworks like EWA, JADE and STRUTS (from Jakarta) are in the customer integration scenario. Take EWA (read as "EVA") as an example (it comes from the IBM Software Group Advanced Technology Solutions group), at a higher level, the frame appears as shown in Figure 1. 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. Figure 1. EWA block diagram
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's go back to discuss the first integrated scenario, find a Scheme that minimizes the number of interfaces required, as shown in Figure 2.
Figure 2. minimize the interface
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. The service bus (Service Bus) belonging to the scope of architecture is added (represented in Figure 3) and the service or stream manager to connect the service and provide the 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.
Figure 3. Adding bus and execution management
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 4.
Figure 4. Complete basic structure
This picture and EWA block diagram have some kinds of genericity; at the highest level, any robust 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.
Integrated demand in architecture
To this, integration has been limited to integration of applications based on component-based services, 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: Application Integration Terminal User Interface Integration Application Connection Process Integration Information Integration Build Integrated Development Model.
The end user interface integrates how all applications and services integrated with specific users are integrated to provide available, efficient, and consistent interfaces. 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 data movement, shift, and means moving 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.
Benefits to deploy service-oriented architecture
Service-oriented architecture can be developed 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:
Using 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. 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 set of components will be deployed as a service in an existing infrastructure, making more infrastructure as a commercial element to consider faster product listing speed - The organization's web service library will become The core assets of 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. Reduce costs - With the development of business needs, the introduction of new demands, through the use of SOA frameworks and service libraries, the cost of enhancing and creating new services for existing and new applications is greatly reduced. Similarly, development team learning is also reduced because they may have been familiar with existing components. Reduce risk - reusing existing components Reduces 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. Continuous Improvement Business Process - SOA allows clearly to indicate the flow flow, which is identified by the order of components used in a particular business 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. 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 business 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
So far, discussions focus on meet the needs of existing business, better utilization 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. On-demand is not within the scope of our discussion, but if it is not briefly introduced here, it will be irresponsible for the relationship between ON-Demand and SOA. The web service is a technology that implements SOA, while SOA is an architecture that implements an on-demand application. The application must run within the SOA framework for 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 application 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 according to the requirements of Just-In-Time integration.
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? I believe that you will have applications and infrastructure to support changing business conditions; you will get ON-Demand. Web services and SOA will make this possible possible.
to sum up
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.
Reference
Check out the IBM DeveloperWorks Web Services area to get web service white paper and tools. Read the Part 1 (developerWorks, December 2003) of "Migrating to the Service-Oriented Architecture". To find a Web service and a customer project case for a service-oriented architecture, see the IBM JStart Web site. Readings about the best practice of determining the appropriate level of service granularity in the service-oriented architecture, "Web Services Architecture and Best Practices" (DEVELOPERWORKS, Oct 2003). Reading Accessing CICS Transactions As Services for A SOA (IBM). Zackman Framework for Enterprise Architecture will be the topic of another article in the SOA 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)