All developers know that it is a rare chance to get a possibility to start the project from scratch. Instead of that, project teams usually face the necessity to use existing legacy system, for example, to access an existing inventory control system or security access control system.
What are the advantages of this approach? Legacy systems have a great design, so you have a possibility to use certain amount of existing functionality. On the other hand, if the system was designed without foresight of integration, than it will take a lot of time to do so. That may occur when you will have no ell-encompassing documentation or the owners of the legacy systems are not interested in work with your team (yes, that often happens, so be sure to provide correct politics in your project)
Integrating Legacy Systems with Java or EJB-based Apps
Still, you can easily integrate your Java or EJB-based apps with a certain legacy system with one of the strategies given here.
- Data-level integration. In this strategy it is better to use XML as it has a platform-independent approach of sharing data. The main purpose here is to get an access to the legacy databases by session beans or entity beans. The main plus of this technique is that it is quick to implement and really straightforward.
- Application-interface integration. Here it is necessary to use APIs to get access to data and the functionality. This method is a standard one as many packages include C-APIs so you will have a possibility to access it with help of JNI code.
- Method-level integration. Here business logic is shown as a collection of shared methods, so you can use software to invoke that methods. Invoking is straightforward and , however, some methods require significant scaffolding.
- User interface-level integration. In this approach you will get access to existing app through the UI, it is a so-called screen scraping.
There are useful middleware products like Tibco Inc’s ActiveEnterprise product line that can handle the integration if it was well-thought-out in advance. And still be prepared to write your own “wrapper” code.