Hi Folks!!
In this post, i am going to talk about my views on extending Joomla! for Oracle. After 3 months of extensive architecture study of Joomla!; i can assure you that it is doable.
The current version of Joomla does not support Oracle as a database. The Objective of this change is to adapt the Joomla! architecture to make it compatible with Oracle database and leverage the existing Database package for accomplishing this change.
Architectural Background
One of the reasons adaptability of Joomla has suffered in large organizations is its inability to work with Oracle. Organizations which tend to recommend Oracle at enterprise level are not willing to use Joomla which is compatible only with MySQL database. This compatibility failure is a well know issue and often a topic of debate in the development community. Even though this change has been under consideration for almost 3 years, it has not been successfully implemented.
Even at the macro level, the extensibility of the internal system architecture has been one of the issues for Joomla system. This proposed change would act as the facilitator for further enhancements for the systems internal architecture.
Architecture Overview
In this proposed architecture change; i plan to contain the changes for extending Joomla to the Database package in the Framework Tier. The Current Joomla! Database package is as shown below. Note that the classes which are with blue eclipse in the background will be impacted due to the proposed change.
Key: Purple Eclipse shows impacted classes
Figure 1: Current Joomla! Database Package
The Database package responsible for interaction with currently supported MySql database is expected to have some changes due to the proposed change. The main class which is envisioned to be impacted is the JDatabase class. This class is expected to be modified for extensibility reasons to accommodate Oracle Database driver along with the MySql driver. JDatabase is an abstract class representing a database connector. The current implemented extensions of JDatabase are JDatabaseMySQL and JDatabaseMySQLi. JDatabase follows an adapter pattern, therefore all the extended classes sit in an adapters sub-folder.
The classes JQueryElement, JSimpleRecordSet and JQuery will be modified to accommodate the syntactic changes between the query languages. These classes would be generalized to incorporate possible extensions to other databases as well.
Figure 2: Changed Architecture
Key:
Orange: New Classes
Yellow: Existing Classes
Green: Modified Classes
The JQuery would eventually be branched out into factory along with the JQueryElement class to return valid instance. JSimpleRecortSet class will be modified to accommodate changes for extending itself to Oracle.
No comments:
Post a Comment