Schema Evolution Toolsuite

From Schema Evolution
Revision as of 16:09, 25 October 2008 by Moroni (Talk | contribs)

Jump to: navigation, search

This webpage provide a brief overview of the Schema Evolution Suite, a framework to perform analysis over database schema and gather information and statistics

The suite is composed of three main modules:

  • data collection
  • general statistics
  • query success

Up to now only the first part, the data collection, has been developed. This part however is still in a testing phase and some functions could be removed or other could be added in the final release.

Here follows a list of the applications considered during this step:


APPLICATION WEB-SITE
Zen Cart http://www.zen-cart.com/
phpbb http://www.phpbb.it/
Liferay Portal http://www.liferay.com/
LinPHA PHP Photo Gallery sourceforge.net/projects/linpha/
Pentaho - Business Intelligence http://www.pentaho.com/
JasperReports - Java reporting http://sourceforge.net/projects/jasperreports/
Compiere ERP + CRM Busniess Solution http://www.compiere.com/
vtiger CRM http://www.vtiger.it/
Alfresco Content Management http://www.alfresco.com/
e107 http://e107.org/news.php
Web Calendar http://www.k5n.us/webcalendar.php
Plone http://plone.org/countries/it
Snitz Forums 2000 (Board) http://forum.snitz.com/
Dot Project http://www.dotproject.net/
Open Bravo ERP http://www.openbravo.com/
Java Business Process Management http://www.jboss.org/jbossjbpm/
slash http://www.slashcode.com/
life type - plog (blog service) http://lifetype.net/category/success_stories
mantis (bug tracking system) http://www.mantisbt.org/
phpPgAdmin http://phppgadmin.sourceforge.net/
mambo cms http://www.mamboserver.com/
Tiki wiki http://info.tikiwiki.org/tiki-index.php
PHP fusion http://www.php-fusion.it/news.php
oscommerse http://www.oscommerce.com/
Knowledge tree document management http://www.knowledgetree.com/
nucleus cms http://nucleuscms.org/
phplist http://www.phplist.com/
Yet another Bulletin Board http://www.yabbforum.com/
findbugs http://findbugs.sourceforge.net/
Struts Applications http://struts.sourceforge.net/
RoundCube Webmail http://roundcube.net/
TUTOS http://www.tutos.org/homepage/index.html
phpwebsite http://phpwebsite.appstate.edu/
owl Intranet Knowledge base http://owl.anytimecomm.com/
Zimbra http://www.zimbra.com/
opentaps open source ERP+CRM http://www.opentaps.org/
zabbix http://www.zabbix.com/index.php
phpwcms http://www.phpwcms.de/
MindTouch Deki Wiki: Enterprise Wiki
b2evolution http://b2evolution.net/
phpwiki http://phpwiki.sourceforge.net/
phpmychat http://sourceforge.net/projects/phpmychat/
torrentflux - PHP torrent Client http://www.torrentflux.com/
XOOPs France network
Serendipity PHP Weblog System http://www.s9y.org/
adempiere http://www.adempiere.com/
cacti http://www.cacti.net/
OTRS http://otrs.org/


Contents

General Configuration

The last version of the suite has been uploaded on the yellowstone svn and is ready for the download. Once downloaded, I suggest to import it inside the Eclipse Ide;

Let's start showing which are the parameters that must be set to start the application. The configuration is stored in the config.xml file and contains a tag for every parameter. The tag is structured in the following way:

<param name="parameter_name">parameter_value</param>

Here follows a list of the parameter to set up

  • mysqlhost: the address of the mysql host
  • mysqlport:the mysql port
  • dburi: the uri to locate the mysql server ( for example if you have the server installed on your machine you can set dbrui to jdbc:mysql://localhost/)
  • user: the username to access mysql services
  • pass: the password to access mysql services

Module I: Data Collection

The goal of this phase is to allow the user to install the DB backend of several open source application to perform analysis in the general statistics phase. This phase is organized in different steps:

  • download of the schema
  • installation of the database
  • collection of the information about the installed schemas
  • download: download the schema from the repository and store inside the pathtoschema
  • install: install all the revision of the schema inside the server
  • filling: collect information about the installed schema and fill the evolution database
  • global: perform download, installation and collection without the interaction with the user (batch mode)
  • dropping: drop the schema from the server

The following parameters allow the user to set which operation he wants to perform


Schema Download

The schemas can be downloaded from the svn or cvs repository supplied by the application's vendor Both the repository access protocol are supported by the application and different configuration are needed for each repository

svn configuration:

  • svnurl: the url of the svn repository
  • svnuser: the user name to access the svn repository
  • svnpwd: the password to access the svn repository

All the application provided in the previous list allow anonymous access to their repository, set svnuser and svnpwd to anonymous to access the repository

cvs configuration:

  • cvsRoot: the root of the cvs repository
  • cvsModule: the module you wish to download from the repository
  • cvsLocalPath: a local path on your system

global

  • pathtoschema: the local path where the application saves the schema downloaded from the repository
  • repositoryType: the type of the repository will be used to retrieve the schema


Schema Installation

Only one parameter need to be set up for this phase dbbasename: the name that will use all the revision of the download schema during the installation phase. Suppose we have downloaded the revision 1522,1523,1524 of the wikimedia schema; if we set the dbbasename to wikimedia, the schema will be installed with the following name wikimedia1522, wikimedia1523, wikimedia 1524

Schema Filling

The filling operations are performed in a dynamic way; the application analyze the tables of the information schema and create a corresponding table for the evolution database and fill the table with the data retrieved from the information schema. In this way is possible to keep the application up to date even when the information schema is changed The parameters to set are

  • dbevolution: the name of the database that will store all the data about statistics and the schema informations; the database is released with the application.
  • headerEvolutionTables: allows to set a header for the evolution tables to avoid conflicts with the name of the information schema tables
  • engine: the engine of the table created during this phase
  • char_set: the character set to set up for the tables

Schema Dropping

This phase uses the same parameters of the filling phase; all the revisions of the database will be dropped.


Once the configuration file is ready, before running the application, you need to set the argument; the only argument you need is the path of the configuration file. In the argument subsection put -c ./config/config.xml to avoid any start error: the application can't start without the config file MenuApplication.java contains main functions.

Personal tools