Solutions of 5 Computation Layers to Data Process in Java
The data computation layer in between the data persistent layer and the application layer is responsible for computing the data from data persistence layer, and returning the result to the application layer. The data computation layer of Java aims to reduce the coupling between these two layers and shift the computational workload from them. The typical computation layer is characterized with below features:
1. Ability to compute on the data from arbitrary data persistence layers, not only databases, but also the non-database Excel, Txt, or XML files. Of all these computations, the key is the computation on the commonest structured data.
2. Ability to perform the interactive computations among various data sources uniformly, not only including the computation among different databases, but also calculation between the databases and non-database data sources.
3. The couplings between database and computation layer, as well as the computation layer and Java code can be kept as low as possible to facilitate the migration.
4. The architecture can be non-Java but should be integrated with Java conveniently.
5. Higher development efficiency in the respects of scripting, readability, debugging, and daily maintenance
6. As for the tendency of the complex computation and big data computation, the computation layer can provide the direct support to achieve the goal.
In this survey, 5 data computation layers of Hibernate, esProc, SQL, iBATIS, and R language are tested and compared on the basis of the below metrics: maturity, low coupling, scripting, integration, UI friendliness, performance, complex computation, support for big data, non-database computation, cross-database computation, and convenience for debugging.
Hibernate is the lightweight ORM frame, which was invented by Gavin King, and is now owned by JBOSS. It is the outstanding computational layer in the non-distributed environment, for example Intranet. Hibernate provides the access mode based on the object completely, while esProc and iBATIS can only be treated as the semi-object or object-alike ones.
Hibernate almost enables the complete uncoupling between computational scripts, Java code, and database completely. However, what