EAI technology analysis
Author: Sha Jin (savorjava@yahoo.com.cn)
Keywords: Eai, Eis, Corba, J2EE, JCA
Abstract: With the further acceleration of social informationization, many companies have begun to discover new applications and systems while introducing new applications and systems, not being abandoned or Replacement is an important means of saving the company's operating costs and utilizing the company's resources. However, due to the fact that the architecture and new systems used by the old applications and systems often make these applications into new systems are not easy. This article is for all kinds of integration requirements in such enterprise applications. The technology can be analyzed and suggested.
The problem that hinders enterprises to integrate new and old application systems seems to be obvious, not consisting of two points below:
The architecture used is different; the techniques used are different;
However, there is a huge difficulty in full crossing these two enterprise applications. In order to better solve these problems, many related technologies and programs have emerged, such as CORBA, J2EE, XML, DCOM, and more. This article is not to specifically introduce the implementation of these technologies and programs to the reader. The purpose of this paper analyzes different technologies in accordance with various situations in the integration of enterprise applications, and gives corresponding feasible recommendations.
Introduction EAI
EAI, that is, enterprise application integration is not a new concept. But after entering the 1990s, EAI's importance begins to reflect and pay attention. The reason is very simple, and companies need to constantly improve their application system. As a tool that maximizes corporate interests, the company's manager wants their investment to be rewarded. Obviously, the managers of the company gradually began to realize that if the introduction of new application systems cannot work with old application systems, they will cause past investment waste, older application system features or all being abandoned. This is obviously unwilling to see the company's managers, so it has developed the new architecture to develop the old system effective integration to start formal walking on the research desktop of each company.
In this article, we call the company's application system as enterprise information system EIS. EAI's ultimate goal is to integrate various EIS of the company, this process should not make (too much) modifications to existing applications as much as possible, and implement the integration of data sharing and business processes.
Of course, companies need planning before EAI to determine implementation of EAIs in time and cost in terms of complete introduction of new application systems. Because failure EAI processes will bring greater losses to companies, the proportion of integration risks should be adequately followed.
Next, a number of different integration techniques will be given in the article, indicating appropriate technologies that should be adopted. However, it should be noted that integrated technology is still constantly developing, and the recommendations given are not necessarily the best or in the future, this is also related to the author's experience, we must recognize that integrated work requires too much knowledge, It is also quite complicated, especially when the number of EIs desired is large and the architecture is rare, and the integrated difficulty is rising. Therefore, how to use and combined integration techniques and suggestions are needed to consider it, do not treat them as a model, they are just some options that are optional and not optimal, maybe EAI will never have a fixed mode.
One thing to explain is that the heterogeneous system using different languages is as an example in Java and C , which believes that they can represent the current popular case to facilitate the reader's understanding and application.
It is also important to emphasize that the integration cases involved in this article are integrated with the application and business, and the data integration is too much to integrate the discussion scope of this article.
2. Technical analysis
The problem will make people think that EAI needs to drive the rapid development of related technologies, although these technologies have not yet made EAI, but they do make greater guarantees of EAI success. In this article, we will relate to some of the following technical specifications. Here we don't have to describe each technical specification in detail, because each item is enough to use a few books to explain, and these books already exist, this should be a good news. What we need to do is just to understand and analyze their advantages and disadvantages and applicability. 2.1 General object request agency structure CORBA
It is difficult to say that EAI is hard to think about CORBA. After all, one of the main methods of co-work with different programming languages is to use CORBA. As an architecture of a distributed object, the initial purpose of CORBA is to work together between different programming languages, operating systems, and software platforms. Moreover, the development of CORBA2 has been fully based on object-oriented technology, and CORBA3 develops towards the component-based direction, and its openness makes communication between different CORBA implementations, and can even reach 100% source. Code is compatible.
advantage:
The possibility of synergy in different programming languages in a middleware; there is no special requirement and dependence on the operating system, depending on the implementation, but the real agent can choose; effective and mature development history, with many popular The application system (such as J2EE) is closely related to the architecture.
Disadvantages:
The specific performance is related to the achievement of the selected implementation, and the performance is good. Some of the services of the middleware are always bottleneck; in general, the source code needs to be modified to implement packaging of the old application software;
Be applicable:
When the two enterprise applications that need to be integrated are interacting, Java and C are a good example when implemented by different programming languages. Almost the almost the only way to work together in these two languages is to use CORBA. Of course, the functional characteristics provided by JDK are also possible, but their complexity and the destruction of Java portability make it unable to compete for the integration. And the ability of JNI does not have distributed implementation, and its goal is not here.
CORBA is well suited to package existing application software by modifying source code, providing new CORBA distributed objects for other heterogeneous systems. For remote approach, the IIOP protocol will be a good choice, such as a distributed object of CORBA through J2EE's RMI-IIOP.
2.2 Java2 Platform Enterprise Edition J2EE
In recent years, J2EE undoubtedly play an important foot. The most important technique for developing business logic or intermediate components is EJB, which provides a support for major enterprise technologies such as transactions, security, and persistent support to facilitate the development of business components. Although EJB is limited to Java programming languages, this technology does not have problems. At the same time, J2EE and CORBA technology have provided feasible roads for low-level components, and RMI-IIOP and JMS such as RMI-IIOP and JMS have undoubtedly provide a powerful functional core for J2EE.
advantage:
Based on the standardized platform, there is a large number of implementations can be selected; providing a modern component architecture, which simplifies the development of complex components; providing major corporate technology such as affairs, security Sex and persistent support and support these services in declaration and editing. Relative maturity, supporting a large number of middleware technologies, can provide satisfactory performance and upgradeability for EAI.
Disadvantages:
Limited from Java programming languages, although other middleware technologies (such as CORBA) support; the displacement between real companies is less than 100%; compared to implementation technology specific to an operating system or platform And the performance needs to be further improved, and the resources are large. Be applicable:
The J2EE specification itself provides a huge enterprise application integrated platform, based on Java, which makes it not dependent on the hardware platform and operating system, but also makes it limited to single language development. But this development platform, there are currently different manufacturers with a variety of implementation methods that meet specifications. J2EE supports a large number of middleware technology, and the existing system can work together. HTTP, RMI-IIOP, JMS, JDBC, JCA, and support for XML, corporate affairs, and enterprise security have made it a preferred choice in several enterprises application integration platforms.
2.3 XML and XSLT
In addition to a large number of applications in Internet technology and document description, XML is also an important role in data exchange. As a stand-alone platform, just use standard text, XML can be read and written in all program languages. Once the DTD or Schema, XML interpretation can verify and process the file content. XSLT is also based on XML technology, but its role is to reformat and transmit an XML data file, resulting in a new designated XML document, believes that the reader can imagine that these technologies have occurred during data exchange in different application systems. Great role.
advantage:
The content is composed of standard text, any platform and program language can be used; interpretation of various programming languages can verify and process file content according to DTD or Schema; the format conversion is basically unrestricted, which can meet the needs of different application systems .
Disadvantages:
DTD is used in a lot of use in the past, but the DTD itself is not XML, but based on regular expression; when XML content is large, the execution efficiency of the interpretation program will be a problem;
Be applicable:
When different application systems use their respective data formats, or complicated with complex industry standards, it is now necessary to exchange data between each application system, then XML and XSLT provide a viable means. Of course, XML does not solve all data exchange issues, how to record a variety of different raw data formats in XML documents is a tricky problem. But a good side is that various platforms and programming languages have now been well supported by XML and XSLT. Once XML is ready, XSLT is ready to convert it into data format required by other application systems.
2.4 Distributed Component Object Model DCOM
DCOM expands objects supported by COM in the network and allows COM applications to be distributed over multiple computers in the LAN. DCOM communicates through the network protocol definition process. At runtime, COM serves the client and serves the client and uses the RPC component and follows the DCOM protocol standard.
advantage:
A distributed process based on a COM architecture is provided on the Windows platform; useful on Windows platforms to achieve more satisfactory performance requirements.
Disadvantages:
There is difficulties in cross-platform use, and performance cannot be guaranteed.
Be applicable:
The preferred choice for integration on the Windows platform, but synergy with other platforms and programming languages needs to be supported by third party manufacturers.
2.5 Message Middleware MOM
Enterprise messaging allows applications to perform reliable transmission across multiple platforms. By using a reliable message queue, providing the directory, security, and management services required to transfer messaging, MOM ensure the security of the message transfer between the validated applications, which typically provides synchronous and asynchronous transmission mode. The most common way to ensure reliable transmission within the company is to use a message delivery system. Corba and J2EE currently support MOM industry standard interfaces.
Advantages: Provide messaging across multi-platform messages for different enterprise applications; in addition to supporting synchronous transmission mode, asynchronous transmission is supported, it helps to perform message transmission reliably in the application.
Disadvantages:
As with other middleware technology, high flow performance bottleneck is improved;
Be applicable:
If a reliable transmission is guaranteed between applications to be on multiple platforms, and these applications do not run at the same time, the RPC direct communication or transmission data between applications will not be competent, and the message middleware MOM will be one Good choice. Even when the request is established, the receiver application is not running, this request will not be lost, this is the advantage of asynchronous transmission.
2.6 J2EE Connector Architecture JCA
JCA is made in J2EE1.3, which is implemented and provided by the EIS manufacturer. The JCA resource adapter is a standardized EIS agent, which can be inserted into the task compliant with the J2EE specification, and the EIS execution operation is performed by the standard EIS access interface CCI provided by the application server. JCA provides EAI-based application developers with standard methods that integrate EIS into J2EE. This method defines a common API and service that developers can use in the J2EE environment.
advantage:
JCA can not only integrate the EIS system to the J2EE application in the data, but it can also involve safety and transaction into the eligible EIS system. The emergence of JCA enables the integration of the legacy EIS system to the J2EE application to decrease from NXM to n m. JCA Due to Java technology, Java technology is small during the transplantation process of multi-platform.
Disadvantages:
JCA is a tight coupling problem, which requires an API that is desired to be integrated, and packages these operations. JCA is based on Java technology, although not needed to be integrated, the EIS system is also implemented, but customer applications that use this EIS through JCA must be Java implementation. The implementation of JCA is not easy. If the connection management part is required by JCA, the complexity will rise sharply once it joins transaction and security management, if it is implemented in CCI, it may be more.
Be applicable:
The benefits of JCA are basically the J2EE application server and the EIS system vendor, because their products are often in line with various standards and norms, and the unified norms given by JCA are undoubtedly reducing risks and decreased. A good weapon for development costs. But for the general enterprise self-produced application system, JCA may not play a lot of roles. In contrast, it may become bottlenecks in the development process. There are several reasons, the first, JCA is not the development of the resource adapter, and all developers can be competent. Its development model is different from the writing of ordinary code, and JCA will play the Factory model in the design mode. Second, JCA acts as a unified specification, and its implementation requires a lot of standards and specifications to support, such as XA distribution transactions. The self-produced application system of an enterprise often does not have these standards and specifications, and the resource adapters that are implemented are not available to the many advantages provided by JCA. Third, the resource adapter developed by the company will eventually insert into various J2EE application servers, but as a third-party developer, do not understand the related features of the J2EE application server used, even the defects existing in the application server, Although both parties follow the JCA specification, the different achievements makes the resource adapter developed by third parties may not be available or applied.
3. References