JChem Cartridge
Overview
JChem Cartridge adds chemical intelligence to the Oracle platform. Data can be searched by structure, substructure and similarity criteria through extending Oracle’s native SQL language. Chemical data can be easily inserted and modified using SQL. Most industry standard chemical formats (MOL/SDF/RDF – v2.0 and v3.0, SMILES, SMARTS, CML, etc) are natively handled using JChem indices. The Cartridge enables all chemical database management and search features of JChem Base from any SQL-capable platform.
In addition to chemical database management and search functions, JChem Cartridge also supports structure transformations with our Standardizer and Reactor toolkits and structure based predictions via ChemAxon’s Chemical Terms language and Calculator Plugins, as well as providing chemical format conversions including image generation.
Architecture
High Level Overview
The chemical knowledge for JChem Cartridge comes from ChemAxon’s core Java libraries. Oracle offers the possibility to use existing Java libraries by calling them from Java Stored Procedures. Java Stored Procedures run in a special, in many respects unconventional Java runtime environment which is tightly integrated with the Oracle RDBMS. One of the most important characteristics of the Oracle Java runtime environment is that Java libraries are run in a byte-code-interpreted mode. This aspect puts Java Stored Procedures at a serious disadvantage in terms of performance compared to modern Java runtime environments. These latter use sophisticated techniques to compile Java byte-code into native binary executable at runtime. Native executables can then be run much faster than Java byte-code.
The solution used for JChem Cartridge to compensate for the performance disadvantage with Oracle Java Stored Procedures is to perform the computation intensive functions in an external Java runtime environment capable of runtime byte-code compilation (“external” meaning: external to Oracle). We will call this external Java runtime environment (as well as the JChem Cartridge components running in it) JChem Server.
At an abstract level, the JChem Server comprises the following components:
- JChem Base providing
- the core chemical functions such as atom-by-atom graph search algorithms(JChem Core);
- implementing advanced database search and update functions. (Search and Update engines which add an RDBMS-aware layer to the core JChem functions).
- JChem Cartridge Adapter which translates JChem Base’s external interfaces to the needs of JChem Cartridge.


