Qu’est-ce que Generic System ?

Présentation de Generic System

Generic System (GS) est un moteur d’information open source développé par la société Middleware Factory. Ce moteur innovant implémenté en Java est à la fois persistant, transactionnel, concurrentiel et restructurable. Generic System vient s’intégrer dans l’écosystème des bases de données NoSQL en mettant en œuvre une logique tout objet et sans aucune dépendance à une base de données relationnelle.

Commençons par une présentation de ce qu’est Generic System.

Concrètement, il suffit de seulement quelques lignes pour monter une base de donnée complète.

Pour aller jusqu’au bout, voici l’instanciation d’un véhicule avec une puissance 233 :
Enfin, l’information est persistée :

Il n’y a pas de SQL, pas de couche supplémentaire, pas de configuration particulière. Et Generic System respecte toutes les propriétés énoncées ci-dessous.

Continue reading Qu’est-ce que Generic System ?

Les bases – Création de types, de sous-types et d’instances

Introduction

Les points d’entrée dans Generic System sont Engine et Cache. Ces notions seront abordées plus en détails dans le billet Avancé – Engine et son point d’accès le Cache.
Dans la suite de cette article, nous allons aborder les notions de bases du fonctionnement de Generic System à travers quelques exemples simples.

Qu’est-ce qu’un Generic ?

Dans le monde Java, tout est objet (ou presque). Dans le modèle relationnel, tout est table. Et bien dans Generic System, tout est Generic ! C’est le terme générique employé pour désigner un type, une instance, une relation, un holder, un lin, etc. Ces différentes notions seront abordées au cours des prochains articles :

Ainsi dans Generic System, l’information est enregistrée dans un graphe qui a pour racine le nœud représentant  Engine. Tous les nœuds du graphe implémentent ensuite l’interface Generic.

Démarrage de Engine

Nous allons donc commencer par créer un moteur Engine pour y stocker nos données.
Si vous avez lu l’article d’introduction, vous savez que le moteur d’informations de Generic System peut être exécuté selon 2 modes : embarqué ou persistant.

  • mode embarqué : le système est exécuté en mémoire seulement, il n’y a pas de persistance.
  • mode persistant : le système est exécute en mémoire, et le graphe de  Generic est régulièrement persisté sur le disque.

Le mode que vous choisirez pour cette démonstration n’a pas d’importance. Voici comment procéder :

Bien entendu, vous devrez utiliser le mode persistant si vous souhaitez conserver une copie de vos données !

Pour simplifier la compréhension de Generic System, nous allons commencer par les bases : comment créer un type et une instance ? Tout au long de l’article, nous allons nous appuyer sur des exemples simples.

Continue reading Les bases – Création de types, de sous-types et d’instances

Les bases – Création d’attributs, de propriétés et d’holders

En reprenant notre exemple de l’article Les bases – Création de types, de sous-types et d’instances nous allons voir comment ajouter des attributs et des propriétés sur notre type Vehicle.

Introduction

Generic System permet de poser des attributs et des propriétés sur un type :

  • un attribut peut avoir plusieurs valeurs ;
  • une propriété ne peut avoir qu’une seule valeur.

Attribut

Dans Generic System, la valeur d’un attribut est représentée par un holder : c’est un nœud qui encapsule la valeur de l’attribut.
Reprenons notre exemple, et ajoutons l’attribut Options au type  Vehicle :

Continue reading Les bases – Création d’attributs, de propriétés et d’holders

Les bases – Création de relations et de links

Introduction

Generic System permet de créer des types, des sous-types et des instances. Il est aussi possible de créer des attributs et des propriétés, et de leur attribuer des valeurs en créant des holders.

Mais comment relier les types entre eux ? Il existe pour cela des relations et des liens (links). Les relations peuvent impliquer plusieurs éléments :

  • binaire (2 éléments) ;
  • ternaire (3 éléments) ;
  • n-aire (n éléments).

Contrairement aux bases de données relationnelles, la gestion des relations n-aires est particulièrement simple avec Generic System.

Nous allons poursuivre cette démonstration avec notre exemple de l’article  Les bases – Création de types, de sous-types et d’instances.

Cas simple : relation binaire

Une relation binaire nous permet de relier deux types. Pour reprendre notre exemple, on peut imaginer que nos véhicules possèdent une couleur.

Création de la relation

Nous allons donc créer un nouveau type Color ainsi que deux instances red et yellow :

Continue reading Les bases – Création de relations et de links

Les bases – Rechercher une information

Comme dans tout moteur de persistance, il est possible de rechercher des informations stockées dans Generic System. On distingue deux types de recherche :

  • les recherches simples, pour lesquelles un seul résultat est attendu ;
  • les recherches avancées, qui peuvent conduire à un ensemble de résultats.

Nous allons détailler dans cet article comment réaliser une recherche simple, les recherches avancées seront abordées dans l’article Les bases – Rechercher plusieurs informations.

Introduction

Generic System permet de créer des types, des instances, des relations, etc. Nous avons également vu que la valeur d’un Generic est unique : par exemple, il est impossible de créer deux types avec le même nom. Une recherche simple renverra donc un résultat unique.

Si pour ajouter un Generic on fait appel à la méthode addGeneric, il existe donc une méthode getGeneric pour retourner le Generic correspondant à la recherche. Il existe également une méthode setGeneric, dont le comportement diffère selon si le Generic existe ou non dans le moteur : s’il existe, la méthode renvoie le Generic en question, sinon elle le crée.

Continue reading Les bases – Rechercher une information