Next in series >>
This article has been shared by Biswaroop Ghosh, a friend of mine having expertise in Unix System Administration and Oracle DB.
We have all been there, where it seems like a good idea to just write something directly at a database layer rather than going through so many hoops of business components, joins, links etc to complete a requirement. But as we all know accessing directly database layer is big no-no in Siebel (in fact in any enterprise application) and for a good reason.
Consider this scenario: You have a legacy application that houses information such as contact information / inventory information which needs to be migrate in Siebel real time to ensure the Siebel application is up to date. This application is not sophisticated enough for integration via common methods (middleware, web service) and it can only support DB-DB integration using Stored Procedures/DBLinks.
- Get Data from external application with the help of Stored Procedure or @DBLink
- Load in EIM tables
- Run an EIM job to update/insert Siebel Tables
With this you can have near real time integration (quick batch) but not real time.
Now what if I tell you that you can access Siebel Business Layer directly from database inside a stored procdure allowing us to convert this batch processing solution (due to EIM) and move to more real time integration resulting in quicker and more efficient solutions. With this new solution the above requirement can be done in two steps.
- Receive Data from external application with the help of @DBLink/Stored Procedure
- Update business layer using Java Programs available on DB itself
This approach can explained with the help of following diagram.
Oracle has been shipping JVM inside its own database products for long. We can use Oracle JVM to call java programs and access Siebel business components or call Siebel business service if more control is required.This java code can be encapsulated inside a PL/SQL procedure (as show in above image).
The newly inserted data in conjunction with existing Siebel data can be seen via a read only view (V1 in above image) over conventional DB link by the non-Siebel Oracle systems.
With this approach existing applications which have already existing PL/SQL structure in place for communicating with existing legacy systems can communicate with Siebel without having an architectural overhaul, also since it’s a PL/SQL based solution it can co-exist among the existing PL/SQL codebase.
We have tried this approach successfully with following infrastructure in place:
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit w/
- PL/SQL Release 10.2.0.4.0 – Production
- Oracle JVM 1.4.2_04
- Siebel 18.104.22.168 SIA Application
In next part of the article I will be listing setup that needs to be done on oracle to enable this communication and share example java code to query contact via Siebel Business Layer.
Please do provide you feedback on the article via comments.
Next in series >>