Here is some more info
We have two applications we support. The first is written in C with much of the business logic written in Oracle PL/SQL procedures and stored in our database. The second application uses Oracle Forms which resides on our database server with much of its business logic written in PL/SQL as well. The first application is a background job installed on many clients and creates an Oracle connection via sqlnet to execute the stored procedures in the second program. The second application is being rewritten in Java. In order to minimize the amount of rewrite on the first program we are investigating methods for the PL/SQL stored procedure in the first application to interact with the new Java business logic written in the second application. The Oracle Forms application will be replaced with a web application using JSF, Spring and Hibernate. We have considered the following options:
1. Rewrite the first application in Java
2. Have the first application call the second application via a web service in order to access the Java business logic (uses the Oracle UTL_DBWS package to call the web service from PL/SQL)
3. Load a copy of our Java application into the database using Oracle's JVM. The first application would then call a Java stored procedure in the database.
4. Have the first applications PL/SQL make an operating system call to access a separate JVM running a copy of the first applications business logic
Comments on each option are as follows:
1. Rewrite of the first application is not an option due to schedule and lack of resources
2. Fair amount of concern related to performance (has to support hundreds of transactions per minute). Also concerns about session and state.
3. Hibernate doesn't work in Oracle's JVM due to compatibility with cgilib jar file issues, requires us to scrap Hibernate and just JDBC or have two copies of the Java Business logic.
4. Requires setting up a separate JVM and writing the interface
There are probably more options. BTW, we are not interested in purchasing a third party solution due to budget issues.
Any pointers/suggestions for best ways to communicate with our legacy application will be highly appreciated
|