UNIX-like

Logiciels (logiciels libres en majorité) qui fonctionnent sur des systèmes dérivés d'Unix (Linux...) ou ressources (liées aux logiciels) spécifiquement pour ces systèmes
Fiche logiciel validé
  • Création ou MAJ importante : 05/11/12
  • Correction mineure : 09/11/12
Mots-clés

GIMP : création et retouche d'images numériques

Description
Fonctionnalités générales

GNU Image Manipulation Program (GIMP) est un outil de manipulation d'images en deux dimensions et en mode point. Il permet :

  • retouche d'image numérique,
  • création graphique,
  • animation.

Description synthétique : http://www.gimp.org/features/

GIMP propose de nombreux outils, des filtres. Son interface est flexible, à partir de la version 2.8, possibilité d'affichage dans une seule fenêtre, on ne se perd plus... C'est un outil modulaire qui se complète de nombreux greffons, outils (brosses par exemple), scripts...

Autres fonctionnalités
  • langage de scripts Scripts-FU,
  • interfaçage avec plusieurs langages de programmation comme Perl, Python...,
  • Python-fu est l'interface externe de GIMP (nécessite l'installation d'un paquetage pour Python).
Interopérabilité
  • nombreux formats acceptés dont : GIF, JPEG, PNG, XPM, TIFF, TGA, MPEG, PS, PDF, PCX, BMP, PSD (photoshop), etc...
  • export possible dans de nombreux formats dont GIF, JPEG 2000 sans perte, PNG, TIFF, PSD, Open Raster, PDF, etc...
  • la liste des formats gérés est extensible au moyen de "greffons" spécifiques
  • export des palettes disponible en CSS, PHP, Java, Python et texte
  • support des brosses "Photoshop ABR brush".
Contexte d'utilisation dans mon laboratoire/service
  • principalement, retouche de captures d'écran (redimensionnement, ajout de texte, bordure, ...) pour insertion dans des manuels ou rapports
  • création d'images animées GIF
  • également, conversion de format JPG vers PNG.
Limitations, difficultés, fonctionnalités importantes non couvertes

GIMP ne gère pas encore complètement le CMJN qui est utilisé pour l'impression numérique professionnelle. Différentes solutions sont données sur http://www.linuxgraphic.org/forums/viewtopic.php?t...
Pour résumer, le greffon "Separate+" ou Scribus et Inkscape peuvent être utilisés en complément de GIMP.
GIMP gère les couleurs sur 24 bits et en RVB.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Ubuntu, Debian, Mandriva...
Ou plus simplement, toujours sous la main, la version portable autonome (http://portableapps.com/apps/graphics_pictures/gim...) ou la version portable incluse dans la FramaKey (http://www.framakey.org/).

Plates-formes

Au moins GNU/Linux, Apple Mac OS X, Microsoft Windows, OpenBSD, NetBSD, FreeBSD, Solaris, SunOS, AIX, HP-UX, Tru64, Digital UNIX, OSF/1, IRIX, OS/2, and BeOS.

Logiciels connexes

Il existe beaucoup de greffons (ou plugin) permettant des effets spéciaux ou des traitements particuliers disponibles sur http://registry.gimp.org/
GTK+ et développements annexes comme GEGL GEneric Graphical Library (les greffons sont partiellement portés sous GEGL)...

G'MIC : outil de manipulation d'images génériques

Autres logiciels aux fonctionnalités équivalentes

Le principal est le logiciel commercial Adobe Photoshop.
L'APRIL propose une comparaison entre GIMP et Adobe Photoshop en français : http://www.april.org/groupes/labo/gimp/
Un comparatif détaillé des différents outils libres et propriétaires est aussi disponible, en anglais sur http://en.wikipedia.org/wiki/Comparison_of_raster_... : formats de fichiers gérés, fonctionnalités principales, licence et prix public.

Environnement de développement
Type de structure associée au développement

Créée en 1995 par Spencer Kimball et Peter Mattis, voir tout l'historique en anglais sur http://www.gimp.org/about/ancient_history.html
L'équipe actuelle est décrite http://www.gimp.org/team.html .

Eléments de pérennité

GIMP fait partie du projet GNU. Chaque version apporte des améliorations au niveau des fonctionnalités ou de l'ergonomie, le développement est dynamique : jugez des nouveautés sur http://wiki.gimp-attitude.org/FonctionsFaqGimp28 .

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)
  • Le format natif est XCF qui est le seul à conserver la totalité des informations pour une image créée ou modifiée avec GIMP.

Quelques greffons utiles :

Pour les inconditionnels de Photoshop qui seraient tentés par l'expérience, une interface "Photoshop like", fork de GIMP : http://www.gimpshop.com (non testé). Il paraît que même les tutoriaux sur Photoshop que l'on trouve à foison sur le net, peuvent être suivis sur cette interface...

Contributions

Tout est expliqué là : http://www.gimp.org/develop/

Fiche logiciel validé
  • Création ou MAJ importante : 26/10/13
  • Correction mineure : 26/10/13
Mots-clés
Pour aller plus loin

MixNet/MixeR : statistiques : Mixture Models for Networks

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : MixNet/MixeR
Description
Fonctionnalités générales

MixNet signifie Mixture models for Networks. C'est un logiciel permettant d'établir une classification non supervisée des noeuds d'un graphe en utilisant un modèle de classification non supervisée fondé sur les mélanges de distributions. Ce modèle fait l'hypothèse que les noeuds du réseau d'intérêt sont répartis en plusieurs classes cachées (ou couleurs) qui mettent en lumière des profils de connectivité spécifiques. Nous proposons plusieurs algorithmes d'estimation des paramètres du modèle et des probabilités d'appartenance aux classes pour chaque noeud, ainsi qu'un critère statistique de choix du nombre de classes (couleurs).

  • MixNet correspond au programme en ligne de commande,
  • MixeR correspond au package R associé.
Autres fonctionnalités

Des éléments pour la représentation des résultats (réseaux avec classes colorées) sont proposés.

Contexte d'utilisation dans mon laboratoire/service

Analyse statistique de réseaux biologiques et sociaux.

Environnement du logiciel
Plates-formes
  • Unix-like (installation du package R ou du programme en ligne de commande)
  • Mac et Windows (installation du package R)
Logiciels connexes
  • R (optionnel sous les systèmes Unix-like)
  • Cytoscape (optionnel)
Environnement de développement
Type de structure associée au développement

MixNet/MixeR est une réalisation conjointe des membres du groupe Statistics for Systems Biology.

Eléments de pérennité

MixNet/MixeR est developpé et maintenu sur la plateforme collaborative Mulcyber.

Environnement utilisateur
Documentation utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 05/11/12
  • Correction mineure : 24/11/13
  • Rédacteur de la fiche : Nicolas Darcel - AgroParisTech dept. Sciences de la Vie et Santé (AgroParisTech, INRA)
  • Relecteur(s) : Jessica Schwarz (Nutrition, Metabolism and Genomics Group, Division of Human Nutrition, Wageningen University)
    Julien Barthelemy (IJPB)
  • Responsable thématique : Christelle Dantec (CRBM)
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes :

Free-D : reconstitution 3D et analyse des structures biologiques

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations :
Description
Fonctionnalités générales
  • Reconstitution tri-dimensionnelle statistique et exhaustive d'objets biologiques à partir de piles d'images (p.ex. coupes histologiques)
  • Calcul de densité de présence d'objets dans un territoire 3D
  • Représentations tri-dimensionnelles d'objets et de moyennes d'objets
  • Représentations tri-dimensionnelles et de cartes de densité d'objets dans un volume
  • 2D -> 3D
Autres fonctionnalités
  • Traitement des métadonnées
  • Segmentation et pointage
  • Comptage d'objet
Interopérabilité

Format des images : tiff ; le logiciel génère des descripteurs (métadonnées) donc ne modifie pas les images. il produit des fichiers ".txt" ainsi que des images des modèles (format .png).

Contexte d'utilisation dans mon laboratoire/service

L'utilisation principale de Free-D dans notre équipe est la reconstitution tri-dimensionnelle de régions du système nerveux central à partir des données obtenues par l'immunohistochimie. Le logiciel est aussi bien utilisé par des chercheurs que des ingénieurs, techniciens ou doctorants. Très simple d'utilisation, les fichiers d'aide sont bien documentés. Notre équipe de recherche travaille à produire une cartographie statistique et exhaustive des motifs d'activation dans le cerveau en réponse à des stimulations d'origine digestive. Facile à manipuler et intuitif, Free-D nous a permis d'établir des cartes d'activation neuronale précises à partir de données provenant de plusieurs animaux.

Limitations, difficultés, fonctionnalités importantes non couvertes

Des outils statistiques avancés intégrés sont manquants (notamment des tests statistiques d'objectivisation de recouvrement de territoires tri-dimentionnels)

Environnement du logiciel
Plates-formes

Linux (Debian, Ubuntu, Fedora, Suse),
Mac : Mac OSX 10.6
Windows

Logiciels connexes

des greffons pour gérer des piles d'image (voir sur le site web)

Autres logiciels aux fonctionnalités équivalentes

des plugins sous image J, mais ils restent moins performants

Environnement de développement
Type de structure associée au développement

Laboratoire de recherche INRA

Environnement utilisateur
Documentation utilisateur

Sur le site web, simple et actualisée régulièrement

Contributions

S'adresser aux membres de l'équipe de recherche

Fiche logiciel validé
  • Création ou MAJ importante : 31/10/12
  • Correction mineure : 27/03/14
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes :

Apache Solr : serveur de recherche basé sur lucene

Description
Fonctionnalités générales

Solr est un serveur de recherche qui reprend les fonctionnalités de Apache Lucene et les étend pour ajouter notamment :

Autres fonctionnalités

Solr est optimisé pour les sites à trafic élevé et permet des recherches distribuées ainsi que la réplication de ses index.

Les données à indexer peuvent se trouver dans une base de données, des fichiers texte structurés ou non, accessibles en local ou via HTTP. Il est aussi possible d'indexer des documents 'riches' (PDF, traitement de texte, HTML, etc.) en utilisant Apache Tika.

Des champs dynamiques peuvent être utilisés pour créer des index à la demande.

Des listes de mots vides, de synonymes ou de termes protégés peuvent être définies dans des fichiers de configuration externes au schéma.

 

Interopérabilité

Une API de type REST permet d'envoyer des données (indexation) et de recevoir des données (recherche) via XML, JSON ou en format binaire.

Contexte d'utilisation dans mon laboratoire/service

Dans mon précédent labo, je l'ai intégré à un développement web en PHP, conjointement à une base de données MySQL et eXist-db pour accélérer les fonctionnalités de recherche du site l'Édition électronique des Dossiers de Bouvard et Pécuchet . Je l'ai aussi utilisé intégré à Drupal via le module apachesolr pour le Dictionnaire des journalistes (1600-1789).
SolR est également utilisé comme "moteur d'affichage" sur Calenda, calendrier des sciences humaines et sociales développé par le Centre pour l'édition électronique ouverte (Cléo), MySql n'est plus utilisé que pour ses fonctions relationnelles, des vues étant créées sous forme de document SolR et utilisées pour l'intégralité de l'interface publique. Signalons enfin que le moteur de recherche intégré au site de Plume repose sur Apache SolR.

Environnement du logiciel
Plates-formes

Solr requiert un moteur de servlets et Java 1.5

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes

Sphinx GPL v2

Environnement de développement
Type de structure associée au développement

Apache Software Foundation

Eléments de pérennité

La fondation Apache sert de support pour le développement et la liste des utilisateurs compte des sites comme : The Whitehouse, Jstor, SourceForge, Cisco, Apple, AT&T, etc.
Des sociétés de service proposent un support payant : http://wiki.apache.org/solr/Support

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

 

Documentation utilisateur

La documentation majoritairement en anglais est rassemblée dans un wiki : http://wiki.apache.org/solr/FrontPage

Divers (astuces, actualités, sécurité)

Dans une utilisation conjointe avec Drupal, il est conseillé, comme indiqué dans https://wiki.apache.org/solr/CoreAdmin, de mettre en place des "core", ce qui permet avec une seule installation de SolR de gérer plusieurs instances: développement, recette, production.

Contributions

Les développements de Lucene et de Solr se font conjointement. Les contributions peuvent donc porter sur Lucene http://lucene.apache.org/core/developer.html ou directement sur Solr http://wiki.apache.org/solr/FAQ#Developing

Fiche logiciel validé
  • Création ou MAJ importante : 30/10/12
  • Correction mineure : 29/10/13
Mots-clés

Impressive : lecteur de présentations en PDF

Description
Fonctionnalités générales

Impressive n'est pas un outil de réalisation de diaporama ("à la powerpoint"). Il va simplement afficher vos présentations mais avec quelques outils supplémentaires enjolivant la dite présentation.

Faire une transition animée entre chaque diapositive : piochées aléatoirement, les transitions sont très discrètes.

Surligner des parties sur une diapositive : très pratique pour accompagner la partie orale d'une présentation. Le sur-lignage reste en mémoire quand on ré-affiche la diapositive.

Éclairer une partie de la diapositive avec votre souris : un peu comme une lampe de poche, vous pouvez éclairer une zone ronde, la taille du rond se règle avec la molette de la souris.

Afficher une vue d'ensemble de la présentation : très pratique pour retrouver une diapositive rapidement, ou utiliser à la fin de la présentation, les spectateurs se rappelleront des diapositives au moment des questions.

Interopérabilité

Impressive utilise en entrée des fichiers PDF PDF.

Contexte d'utilisation dans mon laboratoire/service

J'utilise Impressive pour toutes mes présentations dans le cadre de PLUME et des mes activités CNRS/DSI/ARESU. Je fais mes présentations avec la classe Beamer Beamer, je trouve le rendu de la combinaison Impressive/Beamer de grande qualité visuelle.
De plus, les quelques outils proposés avec Impressive accompagnent très bien la partie orale d'une présentation. Les diapositives sont plus interactives.

Limitations, difficultés, fonctionnalités importantes non couvertes

Impressive utilise OpenGL pour réaliser ses effets. Une carte graphique (et un pilote adapté) assez puissante peut être nécessaire pour les effets les plus sophistiqués.

La prise en charge du langage Python Python n'est pas native sous Windows, il peut être donc difficile d'utiliser Impressive sous Windows.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Fedora, Ubuntu

Plates-formes

Tout système capable d’exécuter du Python Python.

Logiciels connexes

Tout logiciel de création de présentation "diaporama" : Powerpoint, Impress Impress, Beamer Beamer, etc...

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Ce logiciel est développé par une seule personne.

Eléments de pérennité

La première version est sortie en septembre 2005 et la dernière version date d'octobre 2010. A noter qu’initialement ce logiciel s'appelait Keyjnote.

Références d'utilisateurs institutionnels
  • L'auteur de cette fiche, utilise Impressive pour réaliser des présentations techniques PLUME et celles dans le cadre du pôle ARESU de la DSI du CNRS.

  • Un des relecteurs de cette fiche, utilise Impressive pour réaliser des présentations internes au laboratoire, au LAAS, ou lors de congrès scientifiques (lorsqu'il est possible d'utiliser son PC personnel pour la présentation, Impressive étant rarement disponible en standard sur les PC mis à disposition lors de congrès).

Environnement utilisateur
Documentation utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 30/10/12
  • Correction mineure : 28/08/13
Mots-clés

ELOG : implémentation électronique de "logbook"

Description
Fonctionnalités générales

Elog est une implémentation électronique d'un cahier de bord d'expériences ("logbook") dont l'interface est sur Internet. Ce type d'outil est aussi connu sous le nom de "weblogs". Il permet à ses utilisateurs de mettre des informations en ligne sous la forme de textes, classés en général par ordre chronologique. Ces entrées peuvent alors être consultées par un ensemble de personnes auquelles on a donné (individuellement) les droits appropriés.

Les intérêts de Elog sont :

  • son extrême facilité d'utilisation qui permet son utilisation par des groupes peu familiers avec les outils informatiques ;
  • sa grande souplesse de configuration qui permet de l'adapter à de nombreux types d'usage.
Autres fonctionnalités
  • Une même instance de Elog permet de gérer plusieurs logbooks (disons un pour l'expérience A et un pour l'expérience B) et l'accès à chaque logbook peut être autorisé pour une liste donnée de personnes (indépendamment pour les expérinences A et B).
  • Chaque personne ayant l'autorisation de consulter et d'écrire dans un logbook peut aussi choisir de recevoir les nouvelles entrées postées sur ce logbook par courriel.
  • La gestion d'un logbook peut être facilement déléguée à une ou plusieurs personnes.
Interopérabilité

Les fiches d'entrées de Elog peuvent être créées via l'interface web (mode habituel d'utilisation), et elles peuvent aussi être créées automatiquement par l'envoi de courriels (ceci peut être utile par exemple lorsque des robots sont utilisés pour surveiller des services).

Contexte d'utilisation dans mon laboratoire/service

Dans mon laboratoire, nous avons mis à disposition une instance de Elog. Celle-ci est utilisée par différentes communautés, chacune pour un "projet" donné. Ces projets regroupent des membres internes au laboratoire, ainsi que des membres extérieurs au laboratoire, voire d'autres tutelles et d'autres pays.

Concrètement, nous utilisons Elog :

  • le plus souvent comme "journal de bord" pour un service ou une expérience données, c'est-à-dire qu'à chaque action/suivi, nous créons une entrée Elog décrivant cette action/suivi, l'ensemble de ces entrées est ensuite présenté sous forme chronologique.
  • Nous avons aussi créé une liste de tâches avec, associée à chaque entrée, notamment la ou les personnes assignées et le statut de la tâche.
  • Une autre utilisation que nous avons faite de Elog est pour l'annonce de "news", pour cela nous nous servons de la notification automatique par courriel qui est incluse dans Elog.
Limitations, difficultés, fonctionnalités importantes non couvertes

Les images et les graphiques sur lesquels s'appuie souvent une entrée de logbook ne peuvent pas être mis directement dans le texte mais ils doivent être attachés à l'entrée et apparaissent à la fin de l'entrée. Cette configuration est peu pratique et oblige à faire dans le texte des références aux fichiers attachés.

Environnement du logiciel
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Elog a été développé au PSI (Institut Paul Scherrer avec une équipe de physique subatomique) et il est utilisé largement depuis le début du siècle dans de nombreux sites de physique des particules (voir utilisateurs institutionnels ci dessous).

PSI continue à développer et soutenir le projet original Elog, dont la version 2.9.2 a été publiée en avril 2012.

Eléments de pérennité

Laboratoire national de prestige (PSI) qui soutient le développement, sans concurrent direct dans la communauté de physique des particules et l'utilisation dans pratiquement tous les laboratoires apparentés.

Références d'utilisateurs institutionnels
  • Centre de Calcul de l'IN2P3 (http://cc.in2p3.fr/) pour le suivi des services
  • ANTARES
  • CERN (www.cern.ch) pour le suivi des opérations de la grille informatique ainsi que dans les expériences LHC
  • DESY (Allemagne), pour les accélérateurs et les expériences
  • TRIUMF (Canada) :http://elog.triumf.ca/
  • PSI
  • SLAC
  • FNAL
  • JLAB
  • et de nombreux autres probablement
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Le site de Elog contient le lien vers un forum de discussion, ainsi que vers une documentation d'installation et administration.

Documentation utilisateur

Le site de Elog contient une documentation très complète pour l'utilisateur, ainsi qu'une FAQ et des exemples concrets.

Divers (astuces, actualités, sécurité)

L'expérience ATLAS au CERN a "bifurqué" (forked) le code source vers 2005 (aussi connu sous le nom d'atlog) afin d'utiliser une instance Oracle à la place de simples fichiers pour le stockage des données. En 2012, cette collaboration a publié le développement de l'application Elisa, un nouveau type de cahier de bord électronique toutefois compatible avec le format de la base de données Oracle d'atlog. Le logbook ATLAS permet l'authentification via le système SSO du CERN (en Shibboleth).

CORBA

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 30/10/12
  • Correction mineure : 30/10/12
Mots-clés

CORBA

  • http://www.corba.org/
  • Date de publication du document ou de l'événement : Octobre 1991
  • Auteur(s) ou responsable(s) : OMG
Ce document a été rédigé par David Rousse, puis relu et complété par Riadh Ben Halima (LAAS et Ecole Nationale d'Ingénieurs de Sfax (Tunisie)) et Bechir Zalila (Ecole Nationale d'Ingénieurs de Sfax (Tunisie)).

Vue d'ensemble

Les principes

  • CORBA (Common Object Request Broker Architecture - Architecture de Négociateur de Requêtes sur un Objet Commun) fait parti de la famille des middleware (intergiciels) applicatifs, qui permettent de créer des applications basées sur des objets distribués auto-gérables, interagissant librement et indépendamment de la localisation de leur implantation sur un réseau. Un objet CORBA offre des services (via les algorithmes implantés dans ses méthodes) à des clients distants qui peuvent fonctionner sur différents systèmes d'exploitation tout en utilisant plusieurs langages de programmation.
  • Un objet CORBA est autonome et prêt à être branché sur des réseaux, des applications, des outils. Ainsi, cet objet métier se caractérise par les notions suivantes :
    • élément logiciel binaire et prêt à l’emploi,
    • destiné à exécuter un ensemble limité de tâches dans un domaine particulier,
    • interopérable (objets qui interagissent sans à priori se connaître),
    • disposant d'une interface pour permettre à l’extérieur d’accéder aux services offerts.
  • Les objets métier sont des entités logicielles autonomes rendant des services particuliers pour un métier donné.
  • Le développement d’applications à base d'objets CORBA apporte de multiples avantages :
    • disposer d'objets d’origines diverses qui peuvent interagir facilement,
    • créer ses propres applications avec des scripts et des objets en minimisant le développement dédié.

L'architecture

  • CORBA est une spécification d'un middleware orienté objet spécifié par l’OMG (Object Management Group)
    • CORBA est une architecture distribuée d’objets hétérogènes qui coopèrent via un bus logiciel,
    • CORBA permet à un ensemble d’objets distribués d’inter-opérer.
  • CORBA fournit une vision unique d’une architecture distribuée dans des environnements hétérogènes :
  • CORBA, architecture distribuée
    NB : on pourrait avoir sur le schéma des ORB pour chaque machine qui communiquent entre eux via le réseau.

Les points clés

  • Les points clés de CORBA sont :
    • masquer l’hétérogénéité des langages de programmation, des systèmes d’exploitation, des machines, …,
    • assurer l’interopérabilité entre objets, entre fournisseurs multiples,
    • être basé sur un langage commun pour la description, l’IDL,
    • proposer un bus logiciel, l’ORB,
    • fournir un modèle Client-Serveur orienté objet (dans le sens où le service est demandé par invocation de méthodes sur un objet distant).
  • L’architecture ouverte proposée par l’OMG, l’OMA (Object Management Architecture), peut se résumer ainsi :
  • CORBA, architecture distribuée

L'IDL (Interface Definition Language)

  • La base de l’interopérabilité de la spécification CORBA repose sur des interfaces écrites dans un langage neutre, l’IDL :
  • CORBA, extrait IDL
  • L’IDL est un langage purement déclaratif qui permet de décrire le contrat métier que l'objet offre au monde extérieur :
  • CORBA, architecture IDL

L'ORB (Object Request Broker)

L'ORB, définition

  • L’ORB est le négociateur de requêtes à objets autrement dit le bus à objets, qui fournit un ensemble très riche de services de middleware répartis :
    • il établit les relations entre objets, indépendamment de la localisation de ces derniers,
    • il permet donc aux objets de se découvrir, les uns les autres et d’interagir.
  • La notion de Client-Serveur est relative à une situation donnée. Pour l’ORB, un objet peut être client ou serveur selon les besoins :
  • CORBA, architecture ORB

L'ORB, côté client

  • La structure d’un ORB « coté client » en CORBA 3.0 peut être schématisée ainsi :
  • CORBA, architecture ORB client NB : la souche est déduite (générée) à partir de l'IDL.
  • Les souches (stubs) fournissent les interfaces des services objet du serveur. Pour chaque objet distant, le client doit posséder la souche correspondante à l’objet. Grâce à cette souche, l’encodage (et le décodage) de l’appel d’une méthode (avec ses paramètres) pourra être réalisé (marshalling) et envoyé au serveur.
  • Les appels dynamiques se font grâce aux interfaces à appel dynamique (DII pour Dynamic Invocation Interface), qui permettent donc de découvrir la méthode à exécuter au moment de l’exécution.
  • Le référentiel d’interfaces est une « base de données » qui contient toutes les versions exécutables (versions binaires) des interfaces définies en IDL. Des API de CORBA permettent d’accéder à ces métadonnées (données décrivant un objet).
  • Les interfaces de l’ORB sont des API permettant d’accéder à certains services de l’ORB (transformation d’une référence d’objet en son nom en clair par exemple).

L'ORB, côté serveur

  • La structure d’un ORB « coté serveur » en CORBA 3.0 peut être schématisée ainsi :
  • CORBA, architecture ORB serveur
  • Les squelettes (skeletons) du serveur ont le même rôle que les stubs : ils sont générés à partir de l'IDL et décrivent les services fournis par le serveur.
  • Les appels dynamiques se font via les interfaces de squelettes dynamiques (DSI pour Dynamic Skeleton Interface) : ils permettent l’appel de méthodes pour des objets serveur qui ne possèdent pas de skeletons.
  • Le référentiel d’implantation contient l’ensemble des classes supportées par le serveur, les objets en mémoire et leurs OIDs (Object IDentifier).
  • Les interfaces de l’ORB ont le même rôle que chez le client.
  • L’adaptateur d’objet (BOA, POA, …) se situe au dessus du noyau de l’ORB : c’est lui qui va traiter les demandes d’appels de méthodes. Pour ce faire, il fournit un environnement d’exécution pour créer les instances des objets sur le serveur. L’adaptateur va également enregistrer les objets dans le Référentiel d’implantations :
    • l’adaptateur d’objet (OA, Object Adaptater) fournit un environnement complet pour que les instances d’objets puissent vivre sur le serveur. Son principal rôle est d’associer une requête portant sur un objet référencé au code spécifique qui doit servir la requête,
    • toute machine voulant être un serveur d’objets doit posséder au moins un adaptateur d’objets,
    • plusieurs types d’OA ont été spécifiés (Basic OA avant CORBA 2.2: obsolète et pauvre, Portable OA après CORBA 2.2: riche),
    • un OA réalise principalement les actions présentées dans le schéma ci-dessous.
    • CORBA, architecture OA

L'architecture inter-ORB

  • L’OMG a défini un protocole standard pour faire communiquer deux ORBs (deux implantations différentes de CORBA). La spécification CORBA a baptisé ce protocole GIOP (General Inter-ORB Protocol) :
    • GIOP est situé au dessus de tout protocole de transport : ce protocole spécifie comment deux ORBs peuvent communiquer.
    • IIOP (Internet Inter-ORB Protocol) est une instance de GIOP au dessus de TCP/IP et permet d’acheminer des messages entre 2 ORBs.
  • CORBA, architecture inter-ORB

Les services

  • CORBA fournit un ensemble de services (CORBA Services) au niveau système. Ces services sont proposés sous forme d'objets.
  • Ces services viennent enrichir les services de base de l’ORB. On peut citer comme services :
    • nommage (localisation des objets par leurs noms en clair).
    • cycle de vie (gestion de la création, de la copie, de la suppression des objets sur le bus),
    • persistance (stockage des objets),

Les utilitaires communs

  • Les utilitaires communs (Common Facilities) sont des composants qui fournissent des services directement utilisables par les objets métier.
  • Ces services sont encore appelés canevas applicatifs, par opposition aux services de base, appelés canevas système. On peut citer les services suivants :
    • gestion de l’information avec par exemple la gestion des documents composites,
    • services d’administration avec notamment la gestion des composants répartis.

Les objets métier

  • Les objets métier (Business Objet) sont les briques applicatives que l’on va utiliser pour assembler des applications.
  • Les objets métier sont la partie « utile » d’un point de vue de l’utilisateur final : ces objets métier se servent des services présentés ci-dessous :
  • CORBA, objet métier

Positionnement vis à vis d'autres middllewares applicatifs

 

Services web COM+ CORBA RMI RPC
Description Middleware orienté message permettant l’échange d’informations entre entités logicielles de manière normalisée Middleware orienté objet permettant l’invocation de méthodes sur des objets distants fonctionnant sur des systèmes MS Windows Middleware orienté objet permettant l’invocation de méthodes sur des objets distants fonctionnant sur des systèmes hétérogènes Middleware orienté objet permettant l’invocation de méthodes sur des objets distants fonctionnant sur des machines virtuelles JAVA Middleware orienté application permettant l’invocation de procédures distantes
Mécanisme de découverte UDDI SCM (Service Control Manager), base de registre Naming Service Service RMI Registry ou JNDI Port mapper
Mécanisme de description WSDL API DCOM, TypeLib et MSIDL IDL Interface JAVA IDL
Mécanisme de formatage des communications SOAP ou REST Object RPC (extension de RPC DCE) GIOP Transport Layer de RMI RPC
Encodage XML Binaire DCOM (NDR) Binaire CORBA (CDR) Binaire RMI Binaire RPC (XDR)
Mécanisme de transport HTTP, HTTPS, SMTP Protocole de niveau Transport (niveau 4 OSI) IIOP sur TCP JRMP ou IIOP Socket
Quelques implantations disponibles .net, Apache Axis Plateformes MS Windows Jacord, Orbacus, PolyOrb, OmniOrb Serveurs J2EE du marché Beaucoup de produits en production depuis des années

 

Références

  • Le livre de J. DANIEL, Au Cœur de CORBA, aux éditions Vuibert, est une bonne source pour aborder en détail CORBA.
  • La liste des implantations existantes est donnée ici.
  • Une autre source d'outils CORBA ici.
Fiche logiciel à valider
  • Création ou MAJ importante : 28/10/12
  • Correction mineure : 28/10/12
Mots-clés

TOMUSS : tableur collaboratif en ligne pour la gestion des étudiants par les enseignants

Ce logiciel est en cours d'évaluation par la communauté PLUME. Si vous utilisez ce logiciel en production dans notre communauté, merci de déposer un commentaire.
  • Site web
  • Système : UNIX-like
  • Version évaluée : 5.0.X
  • Langue(s) de l'interface : français, anglais
  • Licence : GPL
  • Origine du développement : LIRIS
Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : TOMUSS
Description
Fonctionnalités générales

TOMUSS est un tableur en ligne à vocation pédagogique gérant plusieurs types d'utilisateurs qui peuvent travailler en même temps sur des tables de données.

  • Les utilisateurs étudiants peuvent voir uniquement les informations les concernant individuellement et dont l'affichage a été autorisé par les enseignants. Éventuellement, ils peuvent avoir le droit de modifier ou entrer une valeur (pour indiquer une réponse à une question par exemple).
  • Les utilisateurs enseignants ont accès à des tables regroupant les étudiants par groupe (par exemple, ceux qui sont inscrits à une même unité d'enseignement) dont ils peuvent créer/modifier/supprimer les champs et renseigner les valeurs pour chaque étudiant. Les enseignants peuvent avoir un aperçu de l'interface pour un étudiant donné, ce qui permet de limiter les erreurs en contrôlant ce qui est effectivement vu par les étudiants.

Typiquement, ce logiciel permet aux enseignants de

  • gérer (importer, saisir en ligne, exporter) les notes des étudiants, faire des calculs (maximum, moyennes pondérées, points-jury...).
  • gérer / voir les absences justifiées des étudiants et les étudiants bénéficiant de dispositions d'évaluations particulières (tiers-temps).
  • générer des trombinoscopes, des feuilles de présence, des feuilles d'émargement pour des groupes d'étudiants.

Plusieurs enseignants peuvent travailler de façon simultanée sur les tables, ce qui permet par exemple que chaque correcteur renseigne les notes qu'il a attribuées, réduisant ainsi le travail de compilation des informations. Le logiciel conserve l'historique des modifications.

Autres fonctionnalités

Il existe différents types de colonnes gérés par TOMUSS, tels que (liste non exhaustive):

  • Des notes (c'est sa vocation première).
  • Du texte libre (pour communiquer un renseignement personnalisé, par exemple un identifiant de groupe, un horaire d'enseignement, une salle...).
  • Des URL (par exemple, des liens mailto: pour indiquer le mail des enseignants chargé du groupe, ou un lien http/ftp permettant d'accéder à un document personnalisé tel qu'une copie d'épreuve).

Existence de filtres:

Des filtres existent et peuvent être combinés permettant d'afficher sélectivement:

  • Certaines colonnes (par exemple, n'afficher que les colonnes dont le titre contient "evaluation")
  • Certaines lignes (par exemple n'afficher que les étudiants d'un groupe ou d'une série de groupes).

Les filtres utilisables sont très nombreux et comprennent des opérateurs de comparaison, la possibilité de filtrer une expression, de filtrer les cellules modifiées à une date donnée, par un utilisateur donné, etc.

TOMUSS a des fonctionnalités de communication:

  • Possibilité d'adresser un mail commun à une liste d'étudiants (éventuellement filtrés), à travers le navigateur web ou par le biais d'un client courrier.
  • Possibilité d'adresser un publipostage permettant d'envoyer par mail des informations personnalisées obtenues à partir du contenu d'une table (uniquement via le navigateur web).
  • Possibilité de communiquer avec les enseignants intervenant dans une table (ceux qui y ont rentré des informations).

Affichage de statistiques des résultats:

  • Côté étudiant, l'étudiant peut connaître son résultat et le rang de son résultat dans son groupe.
  • Côté enseignant, TOMUSS peut présenter des histogrammes des résultats éventuellement affichés par groupes d'étudiants et permettre de voir l'évolution des résultats par groupe.

Plusieurs modes de saisie des données:

Les données peuvent être entrées de plusieurs façons différentes.

  • À la main (étudiant par étudiant), par exemple en reportant les notes d'un paquet de copies directement en ligne.
  • Import de liste comportant deux colonnes "numéro d'étudiant" et "donnée à importer".
  • Import à partir d'un fichier plat  accessible en ligne (ce fichier doit contenir des colonnes dont l'une contient les numéros d'étudiants).

Suivi des étudiants:

En dehors des applications spécifiques à une unité d'enseignement, TOMUSS regroupe les résultats des étudiants dans toutes les matières et permet de suivre les résultats d'un étudiant au cours des semestres.

Interopérabilité

TOMUSS permet d'importer et exporter des fichiers plats (texte séparé par des tabulations) ce qui le rend compatible avec tous les tableurs classiques.

Les exports de trombinoscopes, feuilles d'émargement, etc. se font sous la forme d'impression de page web.

TOMUSS est synchronisé avec les listes officielles d'étudiants.

Contexte d'utilisation dans mon laboratoire/service

TOMUSS est utilisé depuis plus de trois ans par un nombre croissant d'enseignants chercheurs de la faculté des sciences de l'université de Lyon 1. Initialement restreint au département de mathématiques et informatique, il est depuis plusieurs semestres utilisé par les autres départements. D'après les statistiques des utilisateurs, il compte plus d'une centaine d'utilisateurs enseignants actifs (qui ont renseigné des champs).

À titre d'exemple, TOMUSS est utilisé dans le cadre d'une UE de première année de licence dont je suis responsable afin de :

  • Communiquer leurs notes aux étudiants
  • Indiquer aux étudiants les noms et les adresses mails de leurs enseignants (lien mailto cliquable)
  • Communiquer des renseignements individualisés aux étudiants (groupes et salles d'enseignement)
  • Permettre aux étudiants d'accéder à leurs copies scannées corrigées (lien ftp cliquable)
  • Poser des questions appelant des réponses  simples aux étudiants (voulez-vous participer au soutien, souhaitez-vous conserver votre note d'un semestre antérieur...)

Grâce à TOMUSS, des informations personnalisées sont  accessibles à l'étudiant, ce qui permet de simplifier la communication et d'avoir des retours rapides.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • L'une des limitations de TOMUSS concerne son interface utilisateur, graphiquement très austère.

  • L'accès se fait à travers un navigateur web, ce qui peut poser des problèmes de compatibilité (rares). Il faut que Javascript soit activé.

  • L'utilisation basique de TOMUSS est assez simple à apprendre. Une utilisation experte requiert d'aller consulter la documentation assez régulièrement.

Environnement du logiciel
Plates-formes

Ce logiciel fonctionne sur un mode client/serveur. Le serveur doit être installé sur un système UNIX. Côté utilisateur, ce logiciel ne nécessite qu'un navigateur web.

Autres logiciels aux fonctionnalités équivalentes

Ce logiciel est un tableur multi-utilisateurs en ligne, il peut être comparé notamment à Google Spreadsheet.
Il est cependant dédié à une utilisation pédagogique et il possède des aspects très spécifiques (accès différent selon que l'on est enseignant ou étudiant) etc. La parenté avec Google Spreadsheet n'est donc que très lointaine.

Environnement de développement
Type de structure associée au développement

Ce logiciel est développé par Thierry Excoffier, enseignant chercheur au LIRIS, université Lyon 1.

Eléments de pérennité

Ce logiciel est utilisé depuis plusieurs années à l'Université de Lyon 1. Son utilisation est actuellement en croissance.

Références d'utilisateurs institutionnels

Pour l'instant, TOMUSS est utilisé en production à l'Université de Lyon. Plus de 100 enseignants utilisateurs actifs l'utilisent. Potentiellement tous les étudiants de la faculté des sciences de l'Université Lyon 1 peuvent accéder à des données personnalisées via TOMUSS.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Pour l'instant, je ne connais que la page web de TOMUSS:
http://www710.univ-lyon1.fr/~exco/TOMUSS/home.html

Documentation utilisateur

http://tomuss.univ-lyon1.fr/doc_table.html
Un site démonstrateur est également mis à disposition: http://demo710.univ-lyon1.fr/TOMUSS/=super.user

VNC : prise en main de poste distant

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 23/10/12
  • Correction mineure : 04/02/13
  • Auteur : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

VNC : prise en main de poste distant

Introduction

VNC désigne à la fois un protocole de prise en main d'un poste (sous Windows, Linux, MacOS, etc.) et les logiciels qui l'implémentent. Cette fiche ressource se veut générique dans le sens où elle décrit le protocole VNC ainsi que les caractéristiques communes aux logiciels qui l'implémentent.
Cette fiche reprend délibérément le format d'une fiche logiciel, plus exhaustif (et contraignant) qu'une fiche ressource.

Un site générique pour VNC en tant que protocole n'existe pas. Le domaine historique vnc.com renvoie vers le site de la société RealVNC, issue d'une partie de l'équipe initiale des développeurs et détenteur de la marque déposée VNC™. Voir plus loin pour les sites des différentes implémentations, commerciales ou libres, du protocole VNC.

Fonctionnalités générales

Prendre la main (vue de l'écran et contrôle du clavier et de la souris) sur une machine distante, pour faire par exemple de l'administration ou de l'assistance utilisateur. VNC utilise le protocole RFB (remote frame buffer), qui peut s'appliquer à tous les systèmes affichage "en fenêtres" (dont Windows, le protocole X11 et Macintosh). De par sa conception extensible, il a permis aux différentes implémentations (depuis la fin des années 1990) de rester largement compatible entre elles.

Plate-formes et interopérabilité

Fonctionne sur toutes les plate-formes majeures (Windows, Linux, MacOS, etc.), sans problème d'interopérabilité. Cela signifie qu'un client à partir d'un système d'exploitation donné peut se connecter à un serveur tournant sur un autre système d'exploitation. Cependant, l'interopérabilité entre les différents logiciels VNC (saveurs) n'est pas toujours donnée, surtout quand le logiciel serveur et le logiciel client ont des dates de fabrication trop éloignée l'une de l'autre.

Contexte d'utilisation dans mon laboratoire/service

  • serveur VNC sur un serveur Windows pour l'administration à distance,
  • serveur VNC sur des postes clients pour faire de l'assistance à distance,
  • serveur VNC sous Linux, des clients VNC permettent aux utilisateurs d'accéder à cet environnement depuis des PCs Windows.

Limitations, difficultés, fonctionnalités importantes non couvertes

Le protocole est vulnérable à certains types d'attaques, quoique le mot de passe et la transmission des données soient cryptés. Des solutions à base de tunnels SSH ou de VPN sécurisés permettent de pallier cette faiblesse.

Distributions dans lesquelles ce logiciel est intégré

Quasiment toutes les distributions Linux intègrent un client/serveur VNC.

Logiciels implémentant le protocole VNC

  • RealVNC: http://www.realvnc.com/, existe en version gratuite "Free" (licence propriétaire), "Personal" et "Enterprise Edition". La version Free est distribuée pour Windows, Linux x86, Solaris 7, HP-UX 11, code source (Unix) et code source pour le Viewer en Java et pour Windows.
  • TightVNC: http://www.tightvnc.com/, entièrement gratuit (octobre 2011) en licence GPL. Dernière version (2.5) serveur + client disponible pour Windows. Une version précédente (1.3) également en saveur "Unix-like", ainsi que source et "binaire" en Java pour un Viewer en version 2.6.
  • TigerVNC: http://tigervnc.sourceforge.net/, est un fork de TightVNC fondé par un ancien co-développeur de TightVNC pour diverses raisons. Ce dérivé se veut " high performing, stable and generic". Est disponible gratuitement en licence GPL.
    Je n'ai pas pu le tester, mais il est distribué avec Fedora 13 par exemple.
  • UltraVNC: http://www.ultravnc.fr/, gratuit en licence GPL, donations possibles, pour Windows.
  • Vine Server/Client : http://www.testplant.com/support/downloads/vine/, précédemment distribué sous le nom OSXvnc, est un couple serveur/client VNC libre et open-source de TestPlant, Inc., vendu également avec un service support par la même entreprise.

Des fiches logiciels pour ces applications n'existent pas actuellement dans PLUME. Si vous êtes utilisateur régulier d'une de ces "saveurs" de VNC, contactez l'auteur de la fiche pour contribuer à la collection avec votre description du logiciel.

Autres logiciels aux fonctionnalités équivalentes

  • Symantec pcAnywhere (client et serveur payants).
  • Windows Terminal server (payant) et client RDP (intégré à Windows ou rdesktop, FLOSS pour Unix)
  • Nomachine NX, logiciel commercial, mais version gratuite "Free Edition" disponible qui est limitée à deux utilisateurs (comptes) déclarés simultanément sur la machine serveur. (Voir NX-Freenx pour une implémentation gratuite.)

Historique et Éléments de pérennité

Le protocole a été développé à l'origine dans les laboratoires de recherche joints des sociétés Olivetti et Oracle. Les laboratoires ont été vendus en 1999 à la société AT&T, qui ferma les activités de recherche en 2002. Suivant cette fermeture, plusieurs développeurs du projet ont fondé RealVNC, afin de pouvoir continuer à produire le code open source et commercial sous ce nouveau nom. Les sources ont été mises sous licence GPL et réutilisées (forked) par plusieurs autres équipes de développement.
Aujourd'hui, de (trop ?) nombreuses implémentations du client/serveur disponibles sur la majorité des plate-formes existent.
Protocole éprouvé et très répandu.

Références d'utilisateurs institutionnels

  • ATLAS control room management / sysadmins (CERN).
  • Accès à distance local (labo) et international (collaborations) au CPPM (CNRS).
  • Utilisation de VNC pour l'administration et l'intervention à distance sur les postes gérés par les ASR du LAAS (CNRS).

Augmentation de la sécurité du protocole

Le protocole VNC n'était pas un protocole sécurisé à la base, et malgré des progrès récents, surtout dans des versions commerciales de l'implémentation, il convient de donner quelques conseils pour augmenter la sécurité.

Serveur VNC sous Windows

  • Via la base de registre côté serveur, il est possible de n'autoriser que certaines adresses ou plages d'adresses IP à se connecter à un serveur VNC en paramétrant une valeur "AuthHosts" ou "Hosts" selon l'implémentation de VNC utilisée ("AuthHosts" VNC et UltraVNC , "Hosts" pour RealVNC).

  • Le paramétrage d’AuthHosts est une clé de type REG_SZ employée pour indiquer un ensemble de masques d’adresses IP que les connexions entrantes doivent respecter afin d’être acceptées. Par défaut, le masque est vide et les connexions de tous les centres serveurs sont acceptées. Le masque est de la forme :
    +[masque d’IP]
    ?[masque d’IP]
    -[masque d’IP]

Explications :

Le [masque d’IP] représente l'adresse IP ou le masque de sous-réseau qui doit être pris en compte. Il peut être de la forme 192.168.1.10 (et désignera alors une adresse IP précise), ou 192.168 (et désigner l'ensemble du sous-réseau 192.168.x.x et toutes les adresses IP en faisant partie).

    • le symbole "+" indique que le [masque d’IP] correspondant est autorisé.
    • le symbole "-" indique que le [masque d’IP] correspondant est interdit.
    • le symbole "?" indique que le [masque d’IP] correspondant doit être accepté côté serveur par l'intermédiaire d'une fenêtre de dialogue.
    • le symbole ":" (VNC) ou "," (RealVNC) sert de délimiteur, permettant ainsi de définir plusieurs valeurs.

On aura donc par exemple comme valeur de clé :
HKEY_LOCAL_MACHINE\Software\RealVNC\WinVNC4
"AdminPassword"=hex:dc,c6,6b,58,6d,e4,19,7c
"Hosts"="+192.168.82.0/255.255.254.0,?192.168.0.0/255.255.0.0,-255.255.255.255/0.0.0.0"

Serveur VNC sous Linux ou Windows avec SSH

Il est possible de rediriger les ports utilisés par VNC vers la machine locale à travers un tunnel SSH afin d'en sécuriser la connexion : ainsi les mots de passe VNC ne transitent pas en clair sur le réseau.

ssh $SSH_SERVER -L$LOCALPORT:$VNC_SERVER:$VNCPORT

Le cadriciel cygwin peut fournir un serveur SSH pour une machine équipée de Windows.

Fiche logiciel validé
  • Création ou MAJ importante : 24/10/12
  • Correction mineure : 24/10/12
Mots-clés
Pour aller plus loin

eZ Publish : système de gestion de contenu Web (CMS) puissant, ouvert et évolutif

Description
Fonctionnalités générales

eZ Publish est un système de gestion de contenu Open Source (en anglais CMS, Content Management System) très puissant, ouvert et évolutif, qui permet de développer des sites web dynamiques en mode mono ou multi-sites, créé en 1999 par une société norvégienne eZ systems.

eZ Publish est open source, disponible soit gratuitement, soit dans le cadre d’une solution professionnelle “eZ Publish Premium”, incluant support , garanties et maintenance.

Ses principaux atouts sont :

  • des fonctionnalités intégrées et prêtes à l'emploi répondant aux besoins et attentes courants des webmasters,
  • un environnement technique offrant des possibilités de personnalisation et de création d'extensions inégalées (flexibilité du noyau du moteur de contenu),
  • un modèle économique open source associant tous les atouts des logiciels Open Source (coût, temps de mise en œuvre et transparence),
  • eZ Publish est doté d'un backoffice permettant de décrire les "classes" des objets qui seront utilisés dans chaque site, et d'un frontoffice, qui propose un éditeur de type wysiwyg (avec extension multiupload) ou publication à partir de Word ou OpenOffice,
  • eZ Publish est développé en PHP, s'appuie sur une base de données (MySQL, mais aussi Oracle et PostGreSQL), et a développé son propre langage de template pour décrire le design des pages,
  • une gestion très fine des rôles, droits et groupes d'utilisateurs permet d'organiser la mise à jour du site en équipes,
  • eZ Publish dispose d'un versioning intégré, d'un support multilingue, d'un système de workflow et d'une conception optimisée pour le référencement, d'un moteur de recherche assez sophistiqué (extension eZ Find),
  • un système de caches serveur assez sophistiqué permet d'optimiser la régénération des pages et la vitesse d'affichage du site.
  • eZ Publish est basé sur des standards ouverts et reconnus :
  • PHP5, XHTML, CSS, XML, RSS, WebDAV, LDAP, SOAP, EXIF, OpenOffice.
Autres fonctionnalités

Architecture

  • eZ Publish est développé autour du robuste, populaire et open source environnement LAMP (Linux, Apache, MySQL et PHP).
  • Cependant, eZ Publish peut être également installé sur des serveurs Microsoft, Sun Solaris ou Mac OS X.
  • En plus de MySQL, eZ Publish supporte les bases de données Oracle et PostgreSQL.

Classes de contenu

eZ Publish dispose de datatypes (plus petite entité de stockage disponible) : ce sont par exemple des blocs XML, entier, date et heure, ligne de texte permettant de définir des classes pré-intégrées (ex : article, répertoire, utilisateur, commentaire, ...). On peut également enrichir ces datatypes et classes via développement, en fonction de ses besoins.

Structure interne d'eZ Publish

eZ Publish s'articule autour d'un kernel, de modules (moteur de recherche, gestion des utilisateurs, ...) et de diverses bibliothèques (ezxml, ezpdf, ...). L'arborescence du CMS se décompose ainsi :

Répertoire Contenu
bin Scripts PHP, Perl et shell principalement utilisés pour une maintenance manuelle du système et de mises à jour.
cronjobs Scripts PHP permettant d'automatiser les tâches de maintenance périodiques.
design Fichiers relatifs au design du site.
doc Documentation et fichiers consignant les évolutions et mises à jours des versions de eZ Publish.
extension Système de plugins.
kernel Fichiers du noyau, cœur d'eZ Publish.
lib Librairies générales.
settings Réglages, configuration par site/contexe.
share Fichiers de traductions des contenus statiques.
var Fichiers de cache, logs, et surtout fichiers de contenus uploadés.

Fichiers de configuration (settings)

  • Les fichiers de configuration par défaut, d’extension .ini, se trouvent dans le dossier settings.
  • Chaque fichier permet de contrôler le comportement d'une partie spécifique du système.
  • Les fichiers fournis par défaut listent exhaustivement et commentent les options disponibles. Ces fichiers de configuration par défaut ne doivent jamais être modifiés ! Il convient à la place de les surcharger. (et typiquement les placer dans le répertoire settings/override/).
  • Le fichier de configuration principal est le site.ini (le fichier settings/override/site.ini est donc le 1er fichier lu par le navigateur si la bonne pratique précitée est suivie).
  • Structure d'un fichier de configuration :
    • Un fichier de configuration est composé de blocs.
    • Chaque bloc contient un ensemble de réglages :
    • # This line contains a comment.
      [DatabaseSettings]
      Server=localhost
      User=allman
      Password=qwerty
      Socket=disabled
      SQLOutput=enabled
      # This line contains another comment.
      [ExtensionSettings]
      ActiveExtensions[]=ezdhtml

Gestion des sites via les siteaccess

  • Une seule instance d'eZ Publish peut gérer plusieurs sites.
  • Les sites sont gérés par le mécanisme de siteaccess, qui constitue un ensemble de réglages (settings).
  • Les siteaccess permettent d'utiliser des configurations (règles) totalement différentes pour chaque site (propre base de données, design dédié, dossier var spécifique).
  • Les règles des siteaccess doivent être spécifiées dans une surcharge globale du fichier de configuration site.ini (/settings/override/site.ini.append.php).
  • Ces règles contrôlent le groupe de paramètres devant être employé dans un cas particulier.
  • Un site eZ Publish classique se compose de deux siteaccess : une interface publique pour les visiteurs et une interface d'accès restreint pour les administrateurs.

Support multi-langue

  • Chaque langue est versionnée indépendamment.
  • La traduction du contenu statique, des éléments de design (menu,liens fixes, …) et messages d'erreurs est faite via i18n.
  • La gestion des langues se fait au niveau du siteaccess (1 par langue, pouvant partager le même design).

Modules et vues

  • Un module offre une interface web pouvant être utilisée pour interférer avec le système eZ Publish.
  • Certains modules offrent une interface avec des fonctionnalités du noyau, d'autres sont indépendants du noyau.
  • Le système fournit un ensemble de modules couvrant les besoins des tâches journalières les plus courantes.
  • Il est possible d'étendre le système en créant des modules personnalisés pour des besoins spécifiques. Ces modules devront être écrits en PHP (annuaire, agenda....).
  • Un module peut offrir des vues et/ou des fonctions fetch (fonctions d'interrogation).

Design

  • Le design recouvre tout ce qui permet au contenu du site d'être mis en forme et présenté.
  • Un design classique eZ Publish se compose de feuilles de style (CSS), de scripts javascript, de fichiers image (hors images de contenu), de fichiers de polices et de templates.
  • Un siteaccess impose, entre autres choses, le design devant être utilisé.
  • En utilisant différents siteaccess, il est possible de combiner différents contenus et designs.
  • Le code HTML final d'une page peut être une combinaison de fichiers provenant de divers designs.

Mécanisme de fallback

  • Si eZ Publish ne peut trouver un fichier de design spécifique (une feuille de style, un template, une image, etc, ...) dans le design principal, alors il essaie automatiquement de le chercher dans un autre design.
  • La déclaration des designs d'un site se fait dans le fichier site.ini du siteaccess concerné.

Templates

  • Les templates sont une composante fondamentale du design.
  • Un template est un fichier (X)HTML qui décrit la façon dont un type de contenu doit-être visualisé.
  • Tous les fichiers de template possèdent l'extension .tpl.
  • Outre du (X)HTML, un template peut contenir du code eZ Publish.
  • Le code de template eZ Publish permet de requêter le système et de résoudre les problématiques de code usuelles (itérations, conditions, structures de contrôle, conversions, etc, ...).
  • Le code spécifique à eZ Publish doit être placé à l'intérieur d'accolades ( "{" et "}" ).
  • Tout ce qui est compris à l'intérieur d'accolades sera interprété par le parser de template lorsque le template est traité.
  • Tout ce qui est à l'extérieur des accolades sera ignoré et sera envoyé au navigateur sans subir aucun traitement.
  • Le template principal de eZ Publish, nommé pagelayout.tpl, permet entre autres de déterminer la structure graphique du site.
  • Le nom de ce template principal doit être pagelayout.tpl et il doit être placé dans un sous-répertoire nommé templates d’un design.
  • Le template pagelayout.tpl est le template source appelant tous les autres templates.
  • Le système de surcharge de templates permet d'utiliser d'autres templates que ceux par défaut.
  • Exemple de surcharge dans le fichier de configuration override.ini.append.php :
  • # The name of the override.
    [special_folders]
    # The template that should be replace.
    Source=node/view/full.tpl
    # The template that should be used instaed of the one specified as the source.
    MatchFile=special_folder.tpl
    # The directory where the matchfile is located.
    Subdir=templates
    # Condition #1 : activates the override if the object is an instance of the folder class.
    Match[class_identifier]=folder
    # Condition #2 : activates the override if the object being accessed belongs to section number 34.
    Match[section]=34

Extension

  • Une extension peut correspondre à un site et plusieurs extensions peuvent être utilisées par plusieurs sites.
    Exemple: vous pouvez utiliser des extensions regroupant toutes les fonctionnalités identiques pour tous vos sites (export OpenOffice, éditeur wysiwig, vos bibliothèques JQuery, ...), et une extension spécifique à un site en particulier (dans laquelle il sera judicieux de placer votre dossier design/).
  • Elle se compose principalement de fichiers de configuration /settings et de fichiers de mise en forme /design, et éventuellement de modules spécifiques à développer en PHP.

Contrôle d'accès

  • eZ Publish contient un mécanisme de contrôle d'accès permettant de limiter l'accès à certains contenus ou à certaines fonctions.
  • Le système de contrôle d'accès est basé sur les éléments User (Utilisateur), User group (Groupe d'utilisateurs), Policy (Droit) et Role (Rôle).
  • Un User (utilisateur) est défini, sur le système, par un compte utilisateur valide.
  • Un User group (groupe d'utilisateurs) peut-être composé d'utilisateurs et d'autres groupes d'utilisateurs.
  • Un Policy (droit) est une règle autorisant l'accès à du contenu ou à certaines fonctions.
  • Un Role (rôle) est un ensemble nommé de droits.
  • Un rôle peut être assigné à un utilisateur ou à un groupe. Il est possible d'assigner un rôle avec des restrictions supplémentaires (affecter avec limitation).
  • La fonctionnalité permettant de restreindre un rôle est très utile lorsque plusieurs utilisateurs ayant des droits similaires doivent manipuler différentes parties de l'arbre de nœuds de contenu.
  • Plutôt que de créer un rôle pour chaque utilisateur, l'administrateur du site peut créer un rôle générique puis l'assigner avec différentes restrictions aux différents utilisateurs.

Workflows

eZ Publish est livré avec un mécanisme de flux de travail (workflow). Il permet d'effectuer différentes tâches avec ou sans interaction des utilisateurs (par exemple des cronjobs).

Interopérabilité

eZ Publish est développé en PHP et utilise des standard comme MySQL, XML, Ajax, SOAP.

Il est très aisé de développer des procédures en interaction avec d'autres applications externes. Par exemple : extractions des données d'un SI sous Oracle pour implémenter automatiquement les pages d'un site.

La version 5 à venir d'eZ Publish utilisera le framework Symfony 2, et permettra de coder les templates au format TWIG, tout en gardant une compatibilité avec les développements sous les versions précédentes : voir cet article.

Contexte d'utilisation dans mon laboratoire/service

Cas du LIRMM

  • 2 noyaux eZ Publish sont installés dans notre laboratoire :
    • 1 sur le serveur des applications Web utilisateurs (sites internes d'équipe, sites de congrès, ANR...)
    • 1 sur le serveur de notre site institutionnel http://nouveau-site.lirmm.fr
  • Nous utilisons la méthode host;uri, avec authentification ldap (annuaire sécurisé des comptes du laboratoire) pour la partie Intranet.
  • Nous avons développé 2 modules, annu et agenda, pour la recherche dans l'annuaire et la gestion des événements.
  • Nous extrayons les publications de notre site HAL-LIRMM et créons les objets correspondants par cronjobs afin de les afficher sur les pages annuaire et les pages de présentation de nos départements et équipes.
  • Les pages des équipes, les comptes éditeurs et administrateurs de ces pages sont également générées par cronjobs, par extraction des données de notre Système d'Information (sous Oracle 11g).
  • Nous gérons 1 site français et 1 anglais, avec possibilité de traduire les pages dans d'autres langues.
  • Pour la gestion de nos pages annuaire, nous avons créé la classe Lirmm-user à partir de la classe User, dont les attributs sont implémentés par cronjobs également, à partir des données de notre SI, puis la classe Annu-user, qui contient les éléments modifiables par web de chaque page annuaire.
  • Les objets Département et Equipe se décomposent également en objets SI et Web, selon la nature des données affichées sur ces pages.
  • Les administrateurs (accorder des droits d'édition à des groupes) et éditeurs des pages n'ont pas accès au "back office", toutes les mises à jour sont faites en "front office".

Cas de l'Observatoire Midi-Pyrénées

  • Un noyau eZ Publish est utilisé pour l'ensemble des sites web institutionnels.
  • Tous les sites utilisent une extension contenant toutes les fonctionnalités communes, et chaque site utilise en plus, une extension qui lui est spécifique (développements complémentaires et design propre au site).
  • Le service web assure la conception graphique et l'intégration / développement de toutes les interfaces.
  • Les principales fonctionnalités en place dans notre contexte sont :
    • Librairies jQuery (systèmes d'onglets, slideshows, tooltips, menus déroulants, popup (images+iframes), etc, ...)
    • Newsletters
    • Pages profils
    • Multilangues
    • Thésaurus (extension eZ tags)
    • Module de structuration dynamique des pages (extension eZ Flow)
Limitations, difficultés, fonctionnalités importantes non couvertes

La principale difficulté réside dans la compréhension du mécanisme d'affichage et de surcharge (override).

Le language de template est à assimiler, particulièrement la fonction 'fetch' très utilisée dans la déclinaison de l'arborescence du site.

Les notions d'objet, de classe, de noeud, de vue, de cache sont également importantes. Il faut connaître les principes de la programmation Objet.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

eZPublish n'est intégré dans aucune distribution, cependant l'installation est simple et se fait à partir de l'archive sur http://share.ez.no/downloads, après création d'une base de données dédiée (en UTF-8).

Plates-formes

Toutes les plate-formes LAMP (Linux, Apache, MySQL et PHP) et variantes (WAMP, XAMP). Cependant, eZ Publish peut être également installé sur des serveurs Microsoft, Sun Solaris ou Mac OS X.

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

La société eZ system en collaboration avec la communauté de développeurs participent à l'évolution du CMS, comme indiqué ici.

Eléments de pérennité
  • eZ Publish est un CMS professionnel de renommée internationale utilisé par de grandes entreprises du secteur privé et public, et la communauté est active.

  • A noter que de nombreux contributeurs d'eZ Publish participent au développement de Symfony.

Références d'utilisateurs institutionnels

Les utilisateurs institutionnels connus à ce jour :

Quelques exemples de "mini-sites" projets / ANR / services d'observation / enseignement :

Environnement utilisateur
Documentation utilisateur

Documentation officielle

http://doc.ez.no/

Présentation sur transparent

eZ et le système d'information

Bonnes et mauvaises pratiques d'eZ

Divers (astuces, actualités, sécurité)
  • Il est conseillé de placer le minimum de configuration dans la partie settings/siteaccess/, à savoir uniquement site.ini.append.php pour placer l'ensemble au niveau de l'extension extension/settings.
  • L'utilisation des extensions personnalisées facilite les mises à jours du logiciel et la flexibilité du CMS.
  • Les extensions déclarées dans les fichiers site.ini, sont appelées dans l'ordre inverse. Les templates associés sont donc surchargés dans cet ordre.
  • eZ Publish est disponible avec toute une gamme d'extensions permettant de répondre à la majorité des problématiques de gestion de contenu. Son ouverture à d'autres programmations spécifiques en font un outil très complet et très satisfaisant pour un ingénieur en développement. Pour exemple : 1 stagiaire (1ère année École Ingénieur Informatique) ayant des bases en PHP, a été capable de créer ses templates après 1 jour de présentation et 3 jours d'apprentissage.
Contributions
Syndiquer le contenu