PLSQL To Java
PLSQL To Java
SOLUTIONS
SOLUTION1: USE THIRD PARTY TOOL Pete Finnigan, who hack the PL/SQL code, released a PL/SQL code secure tool called PFCLObfuscate. None other tools available now. It is proprietary tool. You have to buy license for each machine. The cost is high.
SOLUTION 2: MOVE BUSINESS LOGIC INTO SECURED AND ENHANCED ENVIRONMENT By the above statement, its proved put business logic in PL/SQL is not secure. Hence we have to choose another technology that provides security and enhance from its existing technology. Java is an alternative technology. Because It is free and open source Lots of choices in tools Layered Application Architecture Widely Accepted technology Secure than PL/SQL
HOW JAVA BUSINESS LOGIC IS SECURE? Java bytecode can also be reversed (or decompiled) into source code. To secure the bytecode, java had bytecode obfuscation tools. Most of tools act as shrinker, optimizer and obfuscator. It obfuscates both codes and string constants. It can translate stack traces. Hence your business logic will be secure (ref. 3).
MOVE BUSINESS LOGIC INTO SAME ARCHITECTURE Oracle supports java. It allows us to create Java Stored Procedures. Oracle classifies the java program and SQL Statements from your Java Stored Procedures and sends java programs to Oracles Aurora JVM and SQL statements to the SQL Engine. We may put business logic into the Java Stored Procedures. Hence our Business Logic will be secured but not any enhancement. Because, business logic is still with database server.
MOVE BUSINESS LOGIC INTO DIFFERENT ARCHITECTURE Both Business Logics PL/SQL Stored Procedures and Java Stored Procedures are resides with database server. Chad Z. Hower, a Microsoft MVP, explained clearly why and where to be business logic (ref. 4). If we extend number of users and provide additional functionality to the server, it overheads to the database server. Database Servers hardware cost is relatively higher than Application Servers hardware cost. We extend the application server instead of database server if we put business logic separate and all business logics are highly depending with database environment. Hence we get good performance with low cost and avoid database dependence. According to his statement, it is better to be separate business tier from database tier. Next, we have to select another technology that does the same in PL/SQL environment without affecting previous performance.
EXISTING ARCHITECTURE
Client Side
Presentation Layer
.NET/JAVA GUI
Service Layer
WEB SERVICES
ORACLE DB
Resource Layer
In the existing architecture, problematic part is server side itself. We have to all separate business logic layer from server side. Proposed Architecture is given below.
PROPOSED ARCHITECTURE
Client Side
Presentation Layer
.NET/JAVA GUI
Service Layer
WEB SERVICES
Business Layer
POJO/RMI/ EJB
JDBC + SQL
Resource Layer
Any RDBMS
According to new architecture, all layers will be separated. For each layer, we have enough tools and framework to support.
REFERENCE 1) Wrapping and Unwrapping http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Finnigan.pdf 2) Unwrap the code - Demo http://www.codecrete.net/UnwrapIt/ 3) Bytecode Obfuscation https://www.owasp.org/index.php/Bytecode_obfuscation 4) Chad Z. Hower Microsoft MVP http://www.codeproject.com/Articles/10746/Dude-where-s-my-business-logic