SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
MediaWiki et Informix

                          Franck THOMAS
                franck.thomas@consult-ix.fr


                        Lundi 4 avril 2011
                 User Group Informix France
AGENDA
 Présentation et origine de MediaWiki
 Comment installer MediaWiki avec Informix ?
 Présentation de la base de données MediaWiki : propriétés, statistisques etc.
 CLOB : usage dans MediaWiki
 Module BasicTextSearch : Configuration et usage dans MediaWiki
 Portage de MediaWiki vers Informix
 Exemple d’utilisation et cas d’utilisation chez ConsultiX
 Critiques et limitation de MediaWiki
 Optimisations Informix possibles sur la base de données




                                           User Group Informix France
Présentation de MediaWiki
   Logiciel libre développé à l'origine pour
   Wikipédia

   Utilisé pour d’autres sites de l'association à
   but non lucratif Wikimedia Foundation

   Sous license GNU General Public License
   (GPL).



                            User Group Informix France
Origine de MediaWiki
   Wiki : mot hawaïen signifiant rapide

   WikiWikiWeb est le 1er wiki, inventé en
   1994 par Ward Cunningham pour son
   site Web : http://c2.com/cgi/wiki




                        User Group Informix France
Propriétés d’un site Wiki
    Pages contenant des hyperliens pointant les unes
    vers les autres

    Pages modifiables par les visiteurs (identifiés ou
    non) avec un simple navigateur Web

    Ecriture collaborative

    Illustration collaborative

    Historique et suivi des pages modifiées facilement
    disponibles
                                User Group Informix France
Installer MediaWiki
    Télécharger MediaWiki 1.15.x
    Télécharger ensuite le package développé
    par l’équipe de Jacques Roy sur le site IIUG :
    http://www.iiug.org/opensource

    Suivre les instructions du fichier README de
    l’équipe de Jacques Roy
    Remarque : Fonctionne avec PDO IBM mais
    aussi avec PDO Informix


                            User Group Informix France
Propriétés de la base de données
     Base journalisée

     Création d’un smart blob space nécessaire pour
     stocker des données CLOB

     Module Basic Text Search à mettre en place pour le
     module de recherche du site wiki

     Création d’un smartblobspace ou d’un extspace pour
     stocker les index du Basic Text Search



                                User Group Informix France
Base de données- Statistiques
     Nombre de tables : 48
     Nombre de fonctions externes C : 72
     Nombre de fonctions internes : 1

                                                        Nombre
                          CHAR                            25
                          INTEGER                         93
                          DATETIME                        20
                          VARCHAR                         97
                          Variable-length opaque type     9

                          CLOB                            18
                          SERIAL                          12
                          SMALLINT                        28
                          FLOAT                           1
                          SERIAL8                         2
                          BIGINT                          1



                                                User Group Informix France
Base de données




 Basic Text Search

    MédiaWiki

                     User Group Informix France
Base de données – Tables principales

     Table page : contient la liste des titres des pages créées dans
     le site (indexés par le BTS)

     Table pagecontent : contenu d’une page créée dans le site
     (indexé par le BTS)

     Table externallinks: Table des liens externes contenus dans
     une page vers d’autres sites.

     Table pagelinks : Table des liens internes contenus dans une
     page du site vers d’autres pages du site

     Table image : contient la liste des images et autres fichiers
     uploadés sur le site Wiki.

                                        User Group Informix France
Base de données – Tables principales

     Table mwuser : contient la liste des comptes utilisateurs du site

     Table user_groups : contient le profil d’un login
     (administrateur, bureaucrate, utilisateur …)




                                        User Group Informix France
Que stocke un CLOB?
  Rappel :
    Un CLOB stocke des données texte ASCII, dont du
    texte formaté comme :
    –   PostScript,
    –   Hypertext Markup Language (HTML),
    –   Standard Graphic Markup Language (SGML),
    –   Extensible Markup Language (XML).


    Les champs de type CLOB doivent être stockés dans
    des smartblobspaces



                                     User Group Informix France
Que stocke les CLOB de MediaWiki ?

     Le contenu des page créées (table pagecontent)
     Le contenu des pages archivées (table archive) suite
     à leur suppression du site
     Les liens externes (table externallinks)
     Les méta-données sur les images du site (table
     image)
     Les formules mathématiques (table math)
     Les journaux des modifications (table logging)
     Les options utilisateurs (table mw_user)
     …


                                 User Group Informix France
Que stocke les CLOB de MediaWiki ?




 Données stockées
  dans un CLOB




                          User Group Informix France
Basic Text Search

   Rappel :
     Recherche des mots et des phrases dans un
     référentiel de document non structuré stocké dans
     une colonne de table.

     Utilise le composant de recherche textuelle open
     source CLucene.

     Extraction rapide des données textuelles

     Indexation automatique des données textuelles.

                                User Group Informix France
Comment est utilisé le Basic Text Search
dans la base de données MediaWiki ?
      Création d’un smartblobspace ou d’un extspace pour stocker les index
      du Basic Text Search

      Création d’un processus virtuel de la classe BTS:
       – Modification du fichier ONCONFIG
       Ou
       – Ajout dynamique du processus virtuel BTS avec la commande onmode

      Enregistrement pour la base de données MediaWiki du BTS avec le
      blademanager (ou la fonction SysBldPrepare)


      Création de 2 index BTS sur :
       – Les titres des pages Web (stockés dans une colonne varchar de
         255 caractères)
       – Le contenu des pages Web (stockés dans une colonne CLOB)


                                          User Group Informix France
Comment est utilisé le Basic Text Search
dans le code PHP de MediaWiki ?

      Création de la classe PHP SearchIDS héritant de la
      classe mère SearchEngine de MediaWiki

      Appel au prédicat de recherche bts_contains() dans
      la classe PHP SearchIDS




                                  User Group Informix France
Comment est utilisé le Basic Text Search ?
   class SearchIDS extends SearchEngine {
        var $strictMatching = true;

       function __construct($db) {
            $this->db = $db;
       }
       /**
        * Perform a full text search query and return a result set.
        */
       function searchText( $term ) {
            $resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), true ) ) );
            return new IDSSearchResultSet( $resultSet, $this->searchTerms );
       }
   …
   function parseQuery( $filteredText, $fulltext ) {
            global $wgContLang;
            $lc = SearchEngine::legalSearchChars(); // Minus format chars
            $searchon = '';
            $this->searchTerms = array();
            $m = array();
            if( preg_match_all( '/([-+<>~]?)(([' . $lc . ']+)(*?)|"[^"]*")/',
                   …….
            $searchon = $this->db->strencode( $searchon );
            $field = $this->getIndexField( $fulltext );
            return " bts_contains($field, '$searchon') ";
       }



                                                                                 User Group Informix France
Exemple de recherche avec le BTS

                              Recherche dans l’index
                              BTS sur les titres de page


                               Recherche dans l’index
                               BTS sur le contenu des
                               pages




                        User Group Informix France
Rappel sur les rectrictions du BTS
     Configuration minimale requise : IBM Informix Dynamic Server,
     Version, 11.10.

     Langues idéographiques non prises en charge. Exemple : le chinois, le
     coréen et le japonais.

     Requêtes réparties et distribuées d’une instance à une autre non
     prises en charge.

     La parallélisation des requêtes n’est pas prise en charge
     (PDQPRIORITY).

     Vous devez stocker les données textuelles dans une colonne de
     données de type BLOB, CHAR, CLOB, LVARCHAR, NCHAR,
     NVARCHAR, ou VARCHAR.



                                           User Group Informix France
Portage vers Informix
     Création des classes PHP pour la gestion de la base de données :
      – DatabaseIDS dérivant de la classe MediaWiki Database
      – IDSResultWrapper pour la gestion de la base de données par la classe
        DatabaseIDS
      – IDSField pour la gestion des champs Informix des tables


     Création des classes PHP suivantes pour le moteur de recherche et le
     BTS :
      – SearchIDS héritant de la classe MediaWiki SearchEngine
      – IDSSearchResultSet pour la gestion des résultats de recherche



     Adaptation de la classe AutoLoader pour charger les bonnes classes
     PHP pour la gestion d’IDS et du BTS à l’exécution




                                             User Group Informix France
Portage vers Informix

     Adaptation Informix des requêtes SQL écrites en MySQL dans les
     classes PHP suivantes :
      –   Category
      –   SpecialAncientpages
      –   SpecialDisambiguations
      –   SpecialNewimages
      –   SpecialUnusedimages




                                        User Group Informix France
Portage vers Informix
         Exemple : la classe PHP IDSFields
   <?php
   /**
    * This is the IDS database abstraction layer.
    *
    * @package MediaWiki
    */
   class IDSFields {
        private $name, $tablename, $default, $max_length, $nullable, $type;
        private $is_pk, $is_unique, $is_multiple, $is_key;
        /* From the ESQL/C manual tables 3-3 and 3-4 */
        private $alltypes = array(
              "char", "smallint", "integer", "float", "smallfloat",
              "decimal", "serial", "date", "money", "null", "datetime",
              "byte", "text", "varchar", "internal", "nchar", "nvarchar",
              "int8", "serial8", "set", "multiset", "list", "unnamed row",
              "collection");
   Etc.




                                                                              User Group Informix France
Portage vers Informix
   Adaptation du programme AutoLoader.php
   <?php

   /* This defines autoloading handler for whole MediaWiki framework */

   ini_set('unserialize_callback_func', '__autoload' );

   # Locations of core classes
   # Extension classes are specified with $wgAutoloadClasses
   # This array is a global instead of a static member of AutoLoader to work around a bug in APC
   global $wgAutoloadLocalClasses;
   $wgAutoloadLocalClasses = array(
        # Includes
        'AjaxDispatcher' => 'includes/AjaxDispatcher.php',
        'AjaxResponse' => 'includes/AjaxResponse.php',
        'AlphabeticPager' => 'includes/Pager.php',
        'APCBagOStuff' => 'includes/BagOStuff.php',
   (…)
        'IDSSearchResultSet' => 'includes/SearchIDS.php',
        'SearchIDS' => 'includes/SearchIDS.php',
    # includes/db
        'Blob' => 'includes/db/Database.php',
        'ChronologyProtector' => 'includes/db/LBFactory.php',
        'Database' => 'includes/db/Database.php',
        'DatabaseIDS' => 'includes/db/DatabaseIDS.php',
         'DatabaseMssql' => 'includes/db/DatabaseMssql.php',
        'DatabaseMysql' => 'includes/db/Database.php',
        'DatabaseOracle' => 'includes/db/DatabaseOracle.php‘
   (…)
        'IDSSearchResultSet' => 'includes/SearchIDS.php',




                                                                                              User Group Informix France
Exemples d’utilisation chez ConsultiX
     Fiche projet de nos clients
      – Description du projet
      – Localisation des sources d’un projet et des livrables
      – Liste des documents liés au projet
      – Procédure à suivre pour la compilation des sources
      – …


     Procédures techniques internes :
      –   Sauvegarde d’instance Informix
      –   Sauvegarde des données de chaque ordinateur
      –   …


     Fiche technique de nos serveurs:
      –   Distribution Unix installé
      –   N°de version linux utilisé
      –   Liste des produits installés
      –   …


     Modèles de document accessibles à tous les membres de l’équipe de ConsultiX

                                                     User Group Informix France
Exemple d’utilisation chez ConsultiX




                            User Group Informix France
Exemple d’utilisation chez ConsultiX




                            User Group Informix France
Exemple d’utilisation chez ConsultiX




                            User Group Informix France
Exemple d’utilisation chez ConsultiX




                            User Group Informix France
Critiques et limitation de MediaWiki

     Nécessité d’apprendre la syntaxe wiki pour éditer
     une page, des liens, ajouter une image dans une
     page …

     L’édition d’une page n’est pas WYSIWYG

     Impossibilité d’utiliser ontape ou onbar pour
     sauvegarder les fichiers images et les documents
     (Word, PDF, Excel …) uploadés sur le site wiki. En
     effet, Les images et les documents uploadés sont
     stockés sur le disque dur du serveur hébergeant le
     site et non dans la base de données.

                                 User Group Informix France
Optimisations Informix possibles
 Création d’un dbspace dédié aux index séparément
 du dbspace des données

 Ajout d’un smartblospace temporaire pour la gestion
 des données temporaires du BTS

 Définir les extent size des tables de MediaWiki

 Pour les champs VARCHAR, prévoir une taille
 minimale par défaut




                              User Group Informix France
Questions - Merci

                     Franck Thomas
          franck.thomas@consult-ix.fr


                  Lundi 4 avril 2011
           User Group Informix France

Mais conteúdo relacionado

Destaque

Présentation women'up vf
Présentation women'up vfPrésentation women'up vf
Présentation women'up vfwomenup
 
Eua 1760 1898
Eua 1760 1898Eua 1760 1898
Eua 1760 1898malcazar
 
Programme d'animations. du 17 au 25.12.2011
Programme d'animations. du 17 au 25.12.2011Programme d'animations. du 17 au 25.12.2011
Programme d'animations. du 17 au 25.12.2011otlabresse
 
áCidos nucleicos
áCidos nucleicosáCidos nucleicos
áCidos nucleicosBIO LBL
 
Présentation power point
Présentation power pointPrésentation power point
Présentation power pointquintintom
 
Bicentenario pra educación plan de trabajo
Bicentenario pra educación plan de trabajoBicentenario pra educación plan de trabajo
Bicentenario pra educación plan de trabajoAdalberto
 
Liberese de las ataduras
Liberese de las atadurasLiberese de las ataduras
Liberese de las atadurasCarlos Chacón
 
Festivales artisticos de educacion parvularia
Festivales artisticos de educacion parvulariaFestivales artisticos de educacion parvularia
Festivales artisticos de educacion parvulariaAdalberto
 
13 semillas-de-conocimiento-tolteca
13 semillas-de-conocimiento-tolteca13 semillas-de-conocimiento-tolteca
13 semillas-de-conocimiento-toltecaAdalberto
 
diaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéennediaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéenneCarine Soclet
 
diaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéennediaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéenneCarine Soclet
 
Clubes recabar informaciòn arte,
Clubes recabar informaciòn arte,Clubes recabar informaciòn arte,
Clubes recabar informaciòn arte,Adalberto
 
Décret n° 2012-1354 du 4 décembre 2012
Décret n° 2012-1354 du 4 décembre 2012Décret n° 2012-1354 du 4 décembre 2012
Décret n° 2012-1354 du 4 décembre 2012Nathalie SALLES
 
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1MyTwatch
 
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDA
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDATEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDA
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDAJulian Alvarez
 

Destaque (20)

Bulletin PPEM-MEM octobre 2013
Bulletin PPEM-MEM octobre 2013  Bulletin PPEM-MEM octobre 2013
Bulletin PPEM-MEM octobre 2013
 
Présentation women'up vf
Présentation women'up vfPrésentation women'up vf
Présentation women'up vf
 
Eua 1760 1898
Eua 1760 1898Eua 1760 1898
Eua 1760 1898
 
Qualité d'expérience utilisateur final
Qualité d'expérience utilisateur finalQualité d'expérience utilisateur final
Qualité d'expérience utilisateur final
 
Programme d'animations. du 17 au 25.12.2011
Programme d'animations. du 17 au 25.12.2011Programme d'animations. du 17 au 25.12.2011
Programme d'animations. du 17 au 25.12.2011
 
áCidos nucleicos
áCidos nucleicosáCidos nucleicos
áCidos nucleicos
 
Présentation power point
Présentation power pointPrésentation power point
Présentation power point
 
Bicentenario pra educación plan de trabajo
Bicentenario pra educación plan de trabajoBicentenario pra educación plan de trabajo
Bicentenario pra educación plan de trabajo
 
Liberese de las ataduras
Liberese de las atadurasLiberese de las ataduras
Liberese de las ataduras
 
Festivales artisticos de educacion parvularia
Festivales artisticos de educacion parvulariaFestivales artisticos de educacion parvularia
Festivales artisticos de educacion parvularia
 
13 semillas-de-conocimiento-tolteca
13 semillas-de-conocimiento-tolteca13 semillas-de-conocimiento-tolteca
13 semillas-de-conocimiento-tolteca
 
Présentation1
Présentation1Présentation1
Présentation1
 
diaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéennediaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéenne
 
diaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéennediaporama chevauchée pyrénéenne
diaporama chevauchée pyrénéenne
 
Clubes recabar informaciòn arte,
Clubes recabar informaciòn arte,Clubes recabar informaciòn arte,
Clubes recabar informaciòn arte,
 
Décret n° 2012-1354 du 4 décembre 2012
Décret n° 2012-1354 du 4 décembre 2012Décret n° 2012-1354 du 4 décembre 2012
Décret n° 2012-1354 du 4 décembre 2012
 
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1
David Dewilde, Hades Consulting, MyTbreakfast : analyse et mesure-1
 
Enseigne
EnseigneEnseigne
Enseigne
 
Lazar
LazarLazar
Lazar
 
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDA
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDATEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDA
TEORIA DE LA CONSPIRACION DE LA COMIDA RAPIDA
 

Semelhante a Ugif 04 2011 consulti x mediawiki - ugif

Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersFrédéric Simonet
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022François-Xavier Boffy
 
Construire un site de presse avec Wordpress ?
Construire un site de presse avec Wordpress ?Construire un site de presse avec Wordpress ?
Construire un site de presse avec Wordpress ?Benjamin LUPU
 
Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Laurent Moccozet
 
ImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléréImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléréINBOX International inc.
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...
 Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité... Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...
Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...ABES
 
Optimisation des performances d’un site sous TYPO3
Optimisation des performances d’un site sous TYPO3Optimisation des performances d’un site sous TYPO3
Optimisation des performances d’un site sous TYPO3Aliénor.net
 
Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Christophe Delauve
 
Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open sourceUGIF
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesConFoo
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressYannick Pavard
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session techUGIF
 
La technologie net par karim kalti
La technologie net par karim kalti La technologie net par karim kalti
La technologie net par karim kalti Imen Naés
 
Tour d'horizon des CMS Open Source
Tour d'horizon des CMS Open SourceTour d'horizon des CMS Open Source
Tour d'horizon des CMS Open SourceYannick Pavard
 
MDweb: outil libre de catalogage et de localisation de l'information
MDweb: outil libre de catalogage et de localisation de l'informationMDweb: outil libre de catalogage et de localisation de l'information
MDweb: outil libre de catalogage et de localisation de l'informationDesconnets Jean-Christophe
 

Semelhante a Ugif 04 2011 consulti x mediawiki - ugif (20)

Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022
 
Construire un site de presse avec Wordpress ?
Construire un site de presse avec Wordpress ?Construire un site de presse avec Wordpress ?
Construire un site de presse avec Wordpress ?
 
RAD avec IPF pour ImpressCMS 1.2
RAD avec IPF pour ImpressCMS 1.2RAD avec IPF pour ImpressCMS 1.2
RAD avec IPF pour ImpressCMS 1.2
 
Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)
 
ImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléréImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléré
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...
 Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité... Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...
Jabes 2012 - Concours : création de liens auteurs correspondant aux autorité...
 
Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
Optimisation des performances d’un site sous TYPO3
Optimisation des performances d’un site sous TYPO3Optimisation des performances d’un site sous TYPO3
Optimisation des performances d’un site sous TYPO3
 
Sioc
SiocSioc
Sioc
 
Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4
 
Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open source
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapes
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session tech
 
La technologie net par karim kalti
La technologie net par karim kalti La technologie net par karim kalti
La technologie net par karim kalti
 
Tour d'horizon des CMS Open Source
Tour d'horizon des CMS Open SourceTour d'horizon des CMS Open Source
Tour d'horizon des CMS Open Source
 
MDweb: outil libre de catalogage et de localisation de l'information
MDweb: outil libre de catalogage et de localisation de l'informationMDweb: outil libre de catalogage et de localisation de l'information
MDweb: outil libre de catalogage et de localisation de l'information
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 

Mais de UGIF

UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...UGIF
 
Ugif 09 2013 new environment and dynamic setting in ids 12.10
Ugif 09 2013   new environment and dynamic setting in ids 12.10Ugif 09 2013   new environment and dynamic setting in ids 12.10
Ugif 09 2013 new environment and dynamic setting in ids 12.10UGIF
 
Ugif 09 2013
Ugif 09 2013Ugif 09 2013
Ugif 09 2013UGIF
 
Ugif 09 2013 psm
Ugif 09 2013   psmUgif 09 2013   psm
Ugif 09 2013 psmUGIF
 
Ugif 09 2013 friug 201309 axional web studio
Ugif 09 2013 friug 201309   axional web studioUgif 09 2013 friug 201309   axional web studio
Ugif 09 2013 friug 201309 axional web studioUGIF
 
Ugif 10 2012 ppt0000001
Ugif 10 2012 ppt0000001Ugif 10 2012 ppt0000001
Ugif 10 2012 ppt0000001UGIF
 
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012UGIF
 
Ugif 10 2012 beauty ofifmxdiskstructs ugif
Ugif 10 2012 beauty ofifmxdiskstructs ugifUgif 10 2012 beauty ofifmxdiskstructs ugif
Ugif 10 2012 beauty ofifmxdiskstructs ugifUGIF
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUGIF
 
Ugif 10 2012 genero ugif october 3, 2012 ibm france, français
Ugif 10 2012 genero   ugif october 3, 2012  ibm france, français Ugif 10 2012 genero   ugif october 3, 2012  ibm france, français
Ugif 10 2012 genero ugif october 3, 2012 ibm france, français UGIF
 
Ugif 10 2012 iiug paris-business-update
Ugif 10 2012 iiug paris-business-updateUgif 10 2012 iiug paris-business-update
Ugif 10 2012 iiug paris-business-updateUGIF
 
Ugif 10 2012 ppt0000002
Ugif 10 2012 ppt0000002Ugif 10 2012 ppt0000002
Ugif 10 2012 ppt0000002UGIF
 
Ugif 12 2011-smart meters-11102011
Ugif 12 2011-smart meters-11102011Ugif 12 2011-smart meters-11102011
Ugif 12 2011-smart meters-11102011UGIF
 
Ugif 12 2011-informix iwa
Ugif 12 2011-informix iwaUgif 12 2011-informix iwa
Ugif 12 2011-informix iwaUGIF
 
Ugif 12 2011-ibm cap-seine
Ugif 12 2011-ibm cap-seineUgif 12 2011-ibm cap-seine
Ugif 12 2011-ibm cap-seineUGIF
 
Ugif 12 2011-france ug12142011-tech_ts
Ugif 12 2011-france ug12142011-tech_tsUgif 12 2011-france ug12142011-tech_ts
Ugif 12 2011-france ug12142011-tech_tsUGIF
 
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...Ugif 12 2011-four js primer presentation - new graphic charter - short versio...
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...UGIF
 
Ugif 12 2011-discover informix keynote 2012
Ugif 12 2011-discover informix keynote 2012Ugif 12 2011-discover informix keynote 2012
Ugif 12 2011-discover informix keynote 2012UGIF
 
Ugif 04 2011 storage prov-pot_march_2011
Ugif 04 2011   storage prov-pot_march_2011Ugif 04 2011   storage prov-pot_march_2011
Ugif 04 2011 storage prov-pot_march_2011UGIF
 
Ugif 04 2011 informix notonlypointofsales-fr-001
Ugif 04 2011   informix notonlypointofsales-fr-001Ugif 04 2011   informix notonlypointofsales-fr-001
Ugif 04 2011 informix notonlypointofsales-fr-001UGIF
 

Mais de UGIF (20)

UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...
 
Ugif 09 2013 new environment and dynamic setting in ids 12.10
Ugif 09 2013   new environment and dynamic setting in ids 12.10Ugif 09 2013   new environment and dynamic setting in ids 12.10
Ugif 09 2013 new environment and dynamic setting in ids 12.10
 
Ugif 09 2013
Ugif 09 2013Ugif 09 2013
Ugif 09 2013
 
Ugif 09 2013 psm
Ugif 09 2013   psmUgif 09 2013   psm
Ugif 09 2013 psm
 
Ugif 09 2013 friug 201309 axional web studio
Ugif 09 2013 friug 201309   axional web studioUgif 09 2013 friug 201309   axional web studio
Ugif 09 2013 friug 201309 axional web studio
 
Ugif 10 2012 ppt0000001
Ugif 10 2012 ppt0000001Ugif 10 2012 ppt0000001
Ugif 10 2012 ppt0000001
 
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012
Ugif 10 2012 informix pssc-benchmark -l.revel_oct2012
 
Ugif 10 2012 beauty ofifmxdiskstructs ugif
Ugif 10 2012 beauty ofifmxdiskstructs ugifUgif 10 2012 beauty ofifmxdiskstructs ugif
Ugif 10 2012 beauty ofifmxdiskstructs ugif
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
 
Ugif 10 2012 genero ugif october 3, 2012 ibm france, français
Ugif 10 2012 genero   ugif october 3, 2012  ibm france, français Ugif 10 2012 genero   ugif october 3, 2012  ibm france, français
Ugif 10 2012 genero ugif october 3, 2012 ibm france, français
 
Ugif 10 2012 iiug paris-business-update
Ugif 10 2012 iiug paris-business-updateUgif 10 2012 iiug paris-business-update
Ugif 10 2012 iiug paris-business-update
 
Ugif 10 2012 ppt0000002
Ugif 10 2012 ppt0000002Ugif 10 2012 ppt0000002
Ugif 10 2012 ppt0000002
 
Ugif 12 2011-smart meters-11102011
Ugif 12 2011-smart meters-11102011Ugif 12 2011-smart meters-11102011
Ugif 12 2011-smart meters-11102011
 
Ugif 12 2011-informix iwa
Ugif 12 2011-informix iwaUgif 12 2011-informix iwa
Ugif 12 2011-informix iwa
 
Ugif 12 2011-ibm cap-seine
Ugif 12 2011-ibm cap-seineUgif 12 2011-ibm cap-seine
Ugif 12 2011-ibm cap-seine
 
Ugif 12 2011-france ug12142011-tech_ts
Ugif 12 2011-france ug12142011-tech_tsUgif 12 2011-france ug12142011-tech_ts
Ugif 12 2011-france ug12142011-tech_ts
 
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...Ugif 12 2011-four js primer presentation - new graphic charter - short versio...
Ugif 12 2011-four js primer presentation - new graphic charter - short versio...
 
Ugif 12 2011-discover informix keynote 2012
Ugif 12 2011-discover informix keynote 2012Ugif 12 2011-discover informix keynote 2012
Ugif 12 2011-discover informix keynote 2012
 
Ugif 04 2011 storage prov-pot_march_2011
Ugif 04 2011   storage prov-pot_march_2011Ugif 04 2011   storage prov-pot_march_2011
Ugif 04 2011 storage prov-pot_march_2011
 
Ugif 04 2011 informix notonlypointofsales-fr-001
Ugif 04 2011   informix notonlypointofsales-fr-001Ugif 04 2011   informix notonlypointofsales-fr-001
Ugif 04 2011 informix notonlypointofsales-fr-001
 

Ugif 04 2011 consulti x mediawiki - ugif

  • 1. MediaWiki et Informix Franck THOMAS franck.thomas@consult-ix.fr Lundi 4 avril 2011 User Group Informix France
  • 2. AGENDA Présentation et origine de MediaWiki Comment installer MediaWiki avec Informix ? Présentation de la base de données MediaWiki : propriétés, statistisques etc. CLOB : usage dans MediaWiki Module BasicTextSearch : Configuration et usage dans MediaWiki Portage de MediaWiki vers Informix Exemple d’utilisation et cas d’utilisation chez ConsultiX Critiques et limitation de MediaWiki Optimisations Informix possibles sur la base de données User Group Informix France
  • 3. Présentation de MediaWiki Logiciel libre développé à l'origine pour Wikipédia Utilisé pour d’autres sites de l'association à but non lucratif Wikimedia Foundation Sous license GNU General Public License (GPL). User Group Informix France
  • 4. Origine de MediaWiki Wiki : mot hawaïen signifiant rapide WikiWikiWeb est le 1er wiki, inventé en 1994 par Ward Cunningham pour son site Web : http://c2.com/cgi/wiki User Group Informix France
  • 5. Propriétés d’un site Wiki Pages contenant des hyperliens pointant les unes vers les autres Pages modifiables par les visiteurs (identifiés ou non) avec un simple navigateur Web Ecriture collaborative Illustration collaborative Historique et suivi des pages modifiées facilement disponibles User Group Informix France
  • 6. Installer MediaWiki Télécharger MediaWiki 1.15.x Télécharger ensuite le package développé par l’équipe de Jacques Roy sur le site IIUG : http://www.iiug.org/opensource Suivre les instructions du fichier README de l’équipe de Jacques Roy Remarque : Fonctionne avec PDO IBM mais aussi avec PDO Informix User Group Informix France
  • 7. Propriétés de la base de données Base journalisée Création d’un smart blob space nécessaire pour stocker des données CLOB Module Basic Text Search à mettre en place pour le module de recherche du site wiki Création d’un smartblobspace ou d’un extspace pour stocker les index du Basic Text Search User Group Informix France
  • 8. Base de données- Statistiques Nombre de tables : 48 Nombre de fonctions externes C : 72 Nombre de fonctions internes : 1 Nombre CHAR 25 INTEGER 93 DATETIME 20 VARCHAR 97 Variable-length opaque type 9 CLOB 18 SERIAL 12 SMALLINT 28 FLOAT 1 SERIAL8 2 BIGINT 1 User Group Informix France
  • 9. Base de données Basic Text Search MédiaWiki User Group Informix France
  • 10. Base de données – Tables principales Table page : contient la liste des titres des pages créées dans le site (indexés par le BTS) Table pagecontent : contenu d’une page créée dans le site (indexé par le BTS) Table externallinks: Table des liens externes contenus dans une page vers d’autres sites. Table pagelinks : Table des liens internes contenus dans une page du site vers d’autres pages du site Table image : contient la liste des images et autres fichiers uploadés sur le site Wiki. User Group Informix France
  • 11. Base de données – Tables principales Table mwuser : contient la liste des comptes utilisateurs du site Table user_groups : contient le profil d’un login (administrateur, bureaucrate, utilisateur …) User Group Informix France
  • 12. Que stocke un CLOB? Rappel : Un CLOB stocke des données texte ASCII, dont du texte formaté comme : – PostScript, – Hypertext Markup Language (HTML), – Standard Graphic Markup Language (SGML), – Extensible Markup Language (XML). Les champs de type CLOB doivent être stockés dans des smartblobspaces User Group Informix France
  • 13. Que stocke les CLOB de MediaWiki ? Le contenu des page créées (table pagecontent) Le contenu des pages archivées (table archive) suite à leur suppression du site Les liens externes (table externallinks) Les méta-données sur les images du site (table image) Les formules mathématiques (table math) Les journaux des modifications (table logging) Les options utilisateurs (table mw_user) … User Group Informix France
  • 14. Que stocke les CLOB de MediaWiki ? Données stockées dans un CLOB User Group Informix France
  • 15. Basic Text Search Rappel : Recherche des mots et des phrases dans un référentiel de document non structuré stocké dans une colonne de table. Utilise le composant de recherche textuelle open source CLucene. Extraction rapide des données textuelles Indexation automatique des données textuelles. User Group Informix France
  • 16. Comment est utilisé le Basic Text Search dans la base de données MediaWiki ? Création d’un smartblobspace ou d’un extspace pour stocker les index du Basic Text Search Création d’un processus virtuel de la classe BTS: – Modification du fichier ONCONFIG Ou – Ajout dynamique du processus virtuel BTS avec la commande onmode Enregistrement pour la base de données MediaWiki du BTS avec le blademanager (ou la fonction SysBldPrepare) Création de 2 index BTS sur : – Les titres des pages Web (stockés dans une colonne varchar de 255 caractères) – Le contenu des pages Web (stockés dans une colonne CLOB) User Group Informix France
  • 17. Comment est utilisé le Basic Text Search dans le code PHP de MediaWiki ? Création de la classe PHP SearchIDS héritant de la classe mère SearchEngine de MediaWiki Appel au prédicat de recherche bts_contains() dans la classe PHP SearchIDS User Group Informix France
  • 18. Comment est utilisé le Basic Text Search ? class SearchIDS extends SearchEngine { var $strictMatching = true; function __construct($db) { $this->db = $db; } /** * Perform a full text search query and return a result set. */ function searchText( $term ) { $resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), true ) ) ); return new IDSSearchResultSet( $resultSet, $this->searchTerms ); } … function parseQuery( $filteredText, $fulltext ) { global $wgContLang; $lc = SearchEngine::legalSearchChars(); // Minus format chars $searchon = ''; $this->searchTerms = array(); $m = array(); if( preg_match_all( '/([-+<>~]?)(([' . $lc . ']+)(*?)|"[^"]*")/', ……. $searchon = $this->db->strencode( $searchon ); $field = $this->getIndexField( $fulltext ); return " bts_contains($field, '$searchon') "; } User Group Informix France
  • 19. Exemple de recherche avec le BTS Recherche dans l’index BTS sur les titres de page Recherche dans l’index BTS sur le contenu des pages User Group Informix France
  • 20. Rappel sur les rectrictions du BTS Configuration minimale requise : IBM Informix Dynamic Server, Version, 11.10. Langues idéographiques non prises en charge. Exemple : le chinois, le coréen et le japonais. Requêtes réparties et distribuées d’une instance à une autre non prises en charge. La parallélisation des requêtes n’est pas prise en charge (PDQPRIORITY). Vous devez stocker les données textuelles dans une colonne de données de type BLOB, CHAR, CLOB, LVARCHAR, NCHAR, NVARCHAR, ou VARCHAR. User Group Informix France
  • 21. Portage vers Informix Création des classes PHP pour la gestion de la base de données : – DatabaseIDS dérivant de la classe MediaWiki Database – IDSResultWrapper pour la gestion de la base de données par la classe DatabaseIDS – IDSField pour la gestion des champs Informix des tables Création des classes PHP suivantes pour le moteur de recherche et le BTS : – SearchIDS héritant de la classe MediaWiki SearchEngine – IDSSearchResultSet pour la gestion des résultats de recherche Adaptation de la classe AutoLoader pour charger les bonnes classes PHP pour la gestion d’IDS et du BTS à l’exécution User Group Informix France
  • 22. Portage vers Informix Adaptation Informix des requêtes SQL écrites en MySQL dans les classes PHP suivantes : – Category – SpecialAncientpages – SpecialDisambiguations – SpecialNewimages – SpecialUnusedimages User Group Informix France
  • 23. Portage vers Informix Exemple : la classe PHP IDSFields <?php /** * This is the IDS database abstraction layer. * * @package MediaWiki */ class IDSFields { private $name, $tablename, $default, $max_length, $nullable, $type; private $is_pk, $is_unique, $is_multiple, $is_key; /* From the ESQL/C manual tables 3-3 and 3-4 */ private $alltypes = array( "char", "smallint", "integer", "float", "smallfloat", "decimal", "serial", "date", "money", "null", "datetime", "byte", "text", "varchar", "internal", "nchar", "nvarchar", "int8", "serial8", "set", "multiset", "list", "unnamed row", "collection"); Etc. User Group Informix France
  • 24. Portage vers Informix Adaptation du programme AutoLoader.php <?php /* This defines autoloading handler for whole MediaWiki framework */ ini_set('unserialize_callback_func', '__autoload' ); # Locations of core classes # Extension classes are specified with $wgAutoloadClasses # This array is a global instead of a static member of AutoLoader to work around a bug in APC global $wgAutoloadLocalClasses; $wgAutoloadLocalClasses = array( # Includes 'AjaxDispatcher' => 'includes/AjaxDispatcher.php', 'AjaxResponse' => 'includes/AjaxResponse.php', 'AlphabeticPager' => 'includes/Pager.php', 'APCBagOStuff' => 'includes/BagOStuff.php', (…) 'IDSSearchResultSet' => 'includes/SearchIDS.php', 'SearchIDS' => 'includes/SearchIDS.php', # includes/db 'Blob' => 'includes/db/Database.php', 'ChronologyProtector' => 'includes/db/LBFactory.php', 'Database' => 'includes/db/Database.php', 'DatabaseIDS' => 'includes/db/DatabaseIDS.php', 'DatabaseMssql' => 'includes/db/DatabaseMssql.php', 'DatabaseMysql' => 'includes/db/Database.php', 'DatabaseOracle' => 'includes/db/DatabaseOracle.php‘ (…) 'IDSSearchResultSet' => 'includes/SearchIDS.php', User Group Informix France
  • 25. Exemples d’utilisation chez ConsultiX Fiche projet de nos clients – Description du projet – Localisation des sources d’un projet et des livrables – Liste des documents liés au projet – Procédure à suivre pour la compilation des sources – … Procédures techniques internes : – Sauvegarde d’instance Informix – Sauvegarde des données de chaque ordinateur – … Fiche technique de nos serveurs: – Distribution Unix installé – N°de version linux utilisé – Liste des produits installés – … Modèles de document accessibles à tous les membres de l’équipe de ConsultiX User Group Informix France
  • 26. Exemple d’utilisation chez ConsultiX User Group Informix France
  • 27. Exemple d’utilisation chez ConsultiX User Group Informix France
  • 28. Exemple d’utilisation chez ConsultiX User Group Informix France
  • 29. Exemple d’utilisation chez ConsultiX User Group Informix France
  • 30. Critiques et limitation de MediaWiki Nécessité d’apprendre la syntaxe wiki pour éditer une page, des liens, ajouter une image dans une page … L’édition d’une page n’est pas WYSIWYG Impossibilité d’utiliser ontape ou onbar pour sauvegarder les fichiers images et les documents (Word, PDF, Excel …) uploadés sur le site wiki. En effet, Les images et les documents uploadés sont stockés sur le disque dur du serveur hébergeant le site et non dans la base de données. User Group Informix France
  • 31. Optimisations Informix possibles Création d’un dbspace dédié aux index séparément du dbspace des données Ajout d’un smartblospace temporaire pour la gestion des données temporaires du BTS Définir les extent size des tables de MediaWiki Pour les champs VARCHAR, prévoir une taille minimale par défaut User Group Informix France
  • 32. Questions - Merci Franck Thomas franck.thomas@consult-ix.fr Lundi 4 avril 2011 User Group Informix France