WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Intégration et Généricité: Modèle ADROIT


par Abdou NDAO
Cheikh Anta Diop - Ingénieur informaticien 2005
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

ERP5

Dans le site de ERP5, on peut trouver la définition suivante [I.36] « ERP5 est un progiciel orienté production (utilisé en industrie de production : automobile par exemple), il est édité par la société NEXEDI et est développé en langage PYTHON avec comme serveur d'application ZOPE.

ERP5 comporte 3 problématiques :

Ø Un modèle d'unification des flux informationnels de l'entreprise

Ø Un système de base de données d'objets actifs

Ø Un mécanisme de distribution des données fondé sur la synchronisation

La première problèmatique qui consiste en un modèle d'unification des flux informationnels (modèle théorique) comporte cinq concepts (classes) qui sont : Ressource (resource), noeud (node), mouvement (movement), élément (item), chemin (path).

Path (Chemin)

Planification

Approvisionnement

Resource (Ressource)

Argent

Matériaux

Service

Compétence

Item (Elément)

Logistique

Traçabilité

Node (Noeud )

Machine

Personne

Organisation

Movement (Mouvement)

Commande

Livraison

Transaction

Ordre de production

Modèle d'unification des flux informationnels

( modèle de gestion intégré ).

Une ressource (Resource) décrit une ressource abstraite dans le processus de gestion. Elle est un descripteur d'objets tangibles (matière première, papier, eau, électricité.) ou intangibles

( argent, compétence, temps ).

Un noeud (Node) définit l'identité d'un acteur d'un processus de gestion. Il peut aussi définir un lieu ou un emplacement qui peut recevoir une quantité de ressources et en recevoir. Il peut représenter une personne, une organisation, un stock, un compte, un atelier etc.... Il peut stocker ou transformer des ressources, exemple : dans un atelier de métallurgie, une matière première peut être transformer en un produit fini. Le stock est un type de noeud. Un compte bancaire peut recevoir de l'argent mais il peut aussi en donner.

La classe Node (Noeud) est l'une des plus importantes classes de ERP5.

Chaque noeud à une capacité et une capacité consiste en :

Ø Définir la quantité maximale de ressources qu'un noeud peut garder. Il est définit par un ensemble d'inéquations qui doivent être satisfaites par le stock. Chaque équation prend une quantité d'une ressource donnée comme variable et la capacité du noeud comme paramètre.

Ø Définir la quantité maximale ou minimale de ressource qu'un noeud peut produire. Il est aussi définit à travers un ensemble d'inéquations.

Exemple : Pour l'organisation au niveau noeud, il faut prendre en considération les mouvements qui viennent ou partent du noeud.

Ø un mouvement qui arrive au noeud augmente le niveau du stock.

Ø un mouvement qui part du noeud diminue le niveau du stock.

Ø un mouvement qui part du noeud et ne va nulle part est une consommation de ressource.

Ø un mouvement qui part de nulle part et arrive au noeud est une production de ressource.

Pour calculer le niveau du stock, il faut voire l'historique, ajouter les quantités sorties et soustraire les entrées.

Il existe la notion de méta noeud qui représente une collection d'autres noeuds. Par exemple une compagnie est un noeud, un projet est en même temps un noeud et une ressource.

Un méta noeud peut recevoir des mouvements en entrées et envoyer des mouvements en sorties comme un noeud le fait.

Le méta noeud est principalement pratique si l'on veut implémenter une organisation au niveau méta sans affecter les détails de l'organisation au niveau noeud. L'organisation de la compagnie devrait alors requérir un changement de source et de destination de mouvements à partir du niveau méta noeud à chaque fois qu'une organisation plus détaillée est requise.

Les méta noeuds sont une agrégation de règles pour des mouvements à côté du comportement habituel d'un noeud.

Une agrégation de mouvements de méta noeud consiste en un ensemble de mouvements qui sont reliés dans un noeud ou à un noeud qui ne sont pas contenus dans un méta noeud.

Le mouvement (Movement) décrit le mouvement de ressources entre deux noeuds en un moment donné et à une heure donnée. Par exemple, on peut avoir un envoi de matière première du stock vers le magasin; un mouvement autre mouvement peut représenter le transfert de l'argent d'un compte vers un autre.

Les mouvements peuvent inclure des sous mouvements générés par des règles de gestion (le coût pour l'obtention d'un mouvement entre noeud source et un noeud stock).

Les mouvements peuvent aussi être associé à d'autres mouvements à travers des causalités. La collection complète de mouvements avec des dates passées et des dates futures représente l'organisation complète de l'entreprise parce que les mouvements ont un commencement et une fin.

Toutefois, les mouvements sont des objets ERP5 de bas niveau. Par conséquent, les mouvements sont rassemblés ensemble dans des livraisons. Les livraisons sont des documents qui sont utilisés en pratique pour gérer l'organisation d'une compagnie.

La classe Movement permet d'implémenter un modèle ERP5 de comptabilité universel. Les instances de la classe Movement sont utilisées dans différentes situations.

Ø orders : ces instances utilisées comme objet documentaire pour définir des quantités dans des orders.

Ø deliveries : les mouvements suivent la trace de l`actuel transfert de ressources dans le passé (comptabilité) ou dans le futur (planning/ budgétisation)

Par exemple : Les objets suivants sont des orders:

Ø Bon de commande (document envoyé à un fournisseur quand il a besoin de marchandises).

Ø Ordre de vente (document envoyé à un client pour lui signifier la confirmation d'une vente).

Ø Ordre de production document envoyé à un magasin pour confirmer que nous avons besoin d'une opération ou d'un service).

Les orders permettent de décrire une cible, mais peuvent être utilisée pour compter la réalité d'un actuel transfert de quantité.

Les cas suivant ne sont pas des délivrances : une délivrance de monnaie entre deux comptes abstraits, une délivrance de marchandises expédiées, une délivrance de marchandises reçues, une délivrance de service, une délivrance de monnaie entre deux comptes réels

Le chemin (Path) correspond au chemin pour un noeud d'accéder à la ressource dont il a besoin éventuellement. Le prix et les profiles commerciaux peuvent être attachés à un noeud afin de définir le prix par défaut d'une ressource achetée à un fabricant donné.

Il peut aussi définir le chemin pour un atelier d'obtenir des ressources d'un stock. Un path a toujours une date de début et une date de fin. Le chemin peut aussi représenter la tâche attribuée à une personne dans un projet temporaire.

Dans certaines entreprises, en particulier dans les compagnies de services, les personnes sont attribuées à des projets pour une certaine période (consultation) ou les personnes sont envoyées à des clients pour une certaine période donnée (exemple : un centre de réparation d'ordinateur). Ces situations peuvent être représentées dans ERP5 par l'utilisation de Path temporaire avec une date de début et une date de fin données.

L'élément (Item) est une instance physique d'une ressource. Les mouvements de ressources sont décomposés en éléments ayant chacun un numéro de série.

Un mouvement peut être étendu en une série de mouvements traçables à travers des items. Les items permettent aussi de définir comment une quantité de ressources donnée est actuellement expédiée ou transportée (traçabilité d'une ressource). Exemple : colis, numéros de série d'items dans chaque conteneur.

La deuxième problématique consiste en un système de base de données d'objets actifs, au lieu de stocker des données dans une base de données relationnelle, ERP5 utilise la base de données Zope. On peut donc interroger la base d'objets ERP5 au moyen de requêtes SQL.

La troisième problématique est le mécanisme de distribution des données fondé sur la synchronisation, on trouve que le fonctionnement de ERP5 est distribué et permet la répartition des données sur plusieurs sites.

Ainsi la combinaison des trois innovations décrit en haut et le caractère libre de ERP5 forment son caractère générique.

Dans ERP5, le modèle abstrait inclut les notions de variations et de transformations qui permettent la mise en oeuvre de modifications complexes.

Les  variations  sont utilisées par ERP5 pour représenter les possibles modifications d'une ressource donnée : par exemple : couleur, la taille, la vitesse etc...

ERP5 a la possibilité de gérer plusieurs variations pour une ressource donnée. Par exemple : un ordinateur peut être construit avec 128 Mo ou 256 Mo. La notion de variations permet avec une simple description de ressources et une collection de paramètres optionnels pour définir des millions de variations d'un produit sans créer des millions d'enregistrements dans la base de donnée et sans avoir à créer un numéro de produit pour chaque produit.

Le variantage permet de parer à toute complication induite par la législation de chaque pays.

Les variations sont très pratiquées dans les industries telles que : les ordinateurs (taille mémoire, taille disque dur, vitesse processeur), costumes (couleur et taille), bus (couleur, moteur, options)

Les variations sont particulièrement utilisées pour définir des ressources complexes résultant de

transformations successives. Chaque transformation est représentée comme une collection de transformations.

Une transformation est utilisée pour représenter une ressource complexe fabriquée à partir de la transformation de plusieurs ressources. Plutôt que de suivre un modèle hiérarchique, ERP5 utilise un modèle de diffusion.

Ainsi, afin de d'implémenter le choix d'une ressource, l'équivalence de ressources permet de définir une ressource parmi un groupe de ressources. L'équivalence de ressources est très utilisée pour implémenter l'équivalence de classes de ressources obtenues à partir de plusieurs sources.

Les transformations dans le modèle ERP5 sont instanciées par les causalités de mouvements réels entre noeuds. La seule causalité qui existe dans un processus de fabrication complexe est la causalité résultante de la définition d'une transformation. En particulier, le stock qui est un type de noeud n'a pas de causalité.

Le contenu du modèle ERP5

Le système ERP est une base de données de documents qui contient une collection de dossiers dont chacun implémente un module de gestion.

Chaque dossier contient une documentation autonome et éventuellement des sous- dossiers.

L'expérience de ERP5 est basée sur la métaphore d'un gros fichier avec beaucoup de feuilles dont chacune contient toutes les infos nécessaires pour décrire le type de transaction ou de gestion d'un document. Les documents sont comme des objets simples avec peu d'attributs. Des objets pourraient agir comme des conteneurs afin de tenir d'autres objets simples.

Il existe une relation entre la gestion du contenu du modèle ERP5 et le modèle abstrait de ERP5.

ERP5 fonctionne avec un serveur d'application ZOPE, donc il est nécessaire de connaître le fonctionnement de ce serveur.

Nous donnons ci-dessous le tableau de correspondance des documents ERP5 et les objets instanciés à partir des 5 classes.

Classes

Objets

NODE

N

Node

Amount

Profile

MetaNode

MOVEMENT

M

Movement

Delivery

Order

Transformations

RESOURCE

R

Resource

MetaRessource

 
 

PATH

P

Path

 
 
 

ITEM

I

Item

Container

Tracking

 

Avantages

L'ERP5 a l'avantage de n'utiliser que cinq classes qui représentent le modèle de classe. Avec ce modèle, ERP5 représente toute l'entreprise sauf le coté gestion de la clientèle ( CRM).

OFBIZ

Le projet Ofbiz a été lancé en 2001, suite à une demande client, pour offrir une solution eCommerce. Le modèle de données est basé sur une référence, the Data Model Resource Book. Lui même issu de très nombreuses expériences clients. Dés le départ, les composants catalogue, acteur et commande ont été conçus pour être extensibles et s'adapter à des environnements complexes. Au fur et à mesure que les besoins augmentent, l'apparition d'autres composants devient une nécessité : Stock, GPAO (Production Service et Projet ), comptabilité.

Ofbiz est écrit en java et utilise une approche entité-relation par soucis de simplicité et de généricité au niveau de la couche de données Entity Engine. Aux liaisons qui existent entre les différentes tables.

L'entité dans Ofbiz correspond aux tables d'une base de données. Les entités sont représentées par des classes dont le stéréotype est « entity ».

L'attribut dans Ofbiz correspond aux champs de la table. L'association correspond aux relations entre tables.

Ce modèle a l'inconvénient de s'attacher plus aux données qu'à la dynamique du système. Pour pallier à cet inconvénient, un projet nommé Néogia dont l'objectif est de fournir des outils de génération permettant de développer des applications Ofbiz à l'aide d'une modélisation UML dont l'avantage est d'avoir une vision globale de l'architecture du composant à créer.

Ofbiz intègre les modules de gestion suivants : Supply Resource Management (SCM), Customer Relationship Management (CRM),  Manufacturing Resource Planning (MRP), Content Management System (CMS), eCommerce .

OfBiz (Open for Business) est un progiciel métier de gestion d'entreprise. Il est orienté

e-commerce et est organisé suivant un modèle client/serveur. Son interface graphique est séparée de la partie métier et utilise une interface de type web dynamique.

Son architecture est de type modulaire. Ces composants sont réutilisables et un composant est le plus petit élément de l'architecture OfBiz. Un composant peut fournir un ensemble de ressources permettant de construire une application OfBiz. Les ressources peuvent être un jeu de données, un modèle de données, des services, une application web ou du code java. L'architecture de OfBiz est composée de plusieurs composants. Ces composants regroupés entre eux forment un progiciel de gestion intégré et sont classés en trois niveaux d'abstraction (le framework, les applications de base, et les applications de haut niveau).

Cette approche composant a permis une meilleure réutilisation des composants logiciels, un développement modulaire plus rapide. Ce type d'architecture permet aussi de remplacer un composant par un autre dans le cas où il existe plusieurs implémentations différentes.

Ofbiz se décompose en deux parties : le serveur et les composants.

Ø Le serveur, ou base, propose un environnement d'exécution homogène et performant pour les applications qu'il fait tourner. Il fournit tout un ensemble de mécanismes de gestion de cache et de pools de connexions qui permettent une meilleure montée en charge et une meilleure réactivité du système.

Ø Les composants, quant à eux, représentent les plus petites briques logicielles gérées par le serveur. Ils fournissent un ensemble de ressources permettant de construire tout ou une partie d'une application Ofbiz. Ces ressources peuvent être : un jeu de données, un modèle de données, des services, une application web. Un composant est en général spécialisé pour une fonctionnalité donnée.

Le composant composant Entity Engine se charge de la gestion des données de tous les autres composants Ofbiz. Les données sont représentées selon un modèle entité-relation compatible avec des bases de données relationnelles. Le principal objectif de ce composant est d'éliminer tout code spécifique à la persistance des données dans un système transactionnel. Les deux principales caractéristiques de ce composant sont :

L'accès aux données via une interface unique, le « GenericDelegator ». supporte l'accès transparent à plusieurs bases de données.

Le « GenericDelegator » est le coeur de l'Entity Engine. Il est considéré comme une interface qui permet d'effectuer des opérations de création, d'enregistrement, de suppression, de recherche et de mise en cache des données. Les définitions des entités sont lues au démarrage du serveur et ce dernier vérifie leur validité et leur cohérence par rapport aux bases de données sous-jacentes. Si des différences existent, l'Entity Engine peut créer automatiquement les tables, les champs et les relations manquantes.

Le Service Engine est l'équivalent de l'Entity Engine pour les traitements des composants Ofbiz. Il permet de lancer des services sans avoir besoin de connaître leur localisation et leur implémentation.

Le ControlServelet est l'élément clé de la communication entre les utilisateurs et les applications web Ofbiz. Il est implémenté selon le modèle MVC ( Modèle-Vue-Controleur).

L'architecture de OfBiz en composants est représentée ci-dessous.

Comptabilité Générale

Comptabilité Analytique

Comptabilité Tiers

Trésorerie

Gestion Commerciale

Gestion Maintenance

Employé-Ressource

Humaine

Gestion Projet

Relation Client

Relation Fournisseur

Gestion du Service

E-Commerce

Catalogue produit

Gestion d'Achat

Gestion de Production

Article

Acteur

Ordre

Stock

Tâche

Comptabilité

Commun

Contenu

Services

Entity

ECA

Workflow

J2EE Container

SGBD

Java OS

Sécurité

Composants applicatifs de base

Composants applicatifs techniques

Composants techniques de base

Architecture de OfBiz détaillée

Les principales entités de OfBiz qui permettent la modélisation pour chaque composant sont :

Ø Content ou Contenu gèrent les documents. Cette entité est utilisée pour enregistrer et manipuler les contenus généraux et les bases de connaissances. Cette entité inclut la séparation de l'information et l'organisation des données utilisées dans les structures comme les arbres, les listes ou les maps d'objets.

Ø Security ou Sécurité : Cette entité sert à contrôler l'accès aux données. Elle inclut les mots de passe, les logins et les permissions. La gestion plus complète de la sécurité est réalisée par l'entité « Party » permettant à un groupe d'utilisateurs de voir et modifier certaines données, à un autre d'interdire tout accès ou encore de ne lui autoriser qu'un accès en lecture.

Ø Party ou Acteur : Cette entité peut représenter une personne, un groupe (entreprise, fournisseur, client ...). Un acteur a un rôle (client, fournisseur, employé etc...).

Type d'acteur

Groupe d'acteurs

Personne

Nom de la société

Raison sociale

NINIEA

------

Nom, Prénom

Adresse

Profession

--------------

Rôle d'acteur

Client

Fournisseur

Fournisseur

Organisation des acteurs

Un type de données en relation avec « Party » est le mécanisme des numéros de téléphone, adresses de courriels ou les URL.

Ø Product ou Produit : Cette entité contient les informations sur les produits (biens et services) commercialisés ou utilisés dans l'entreprise. Les biens peuvent être des matériaux bruts, des produits semi-finis ou finis. Product définit un produit et non l'instance d'un produit.

Pour cela il y a les éléments d'inventaire ou éléments du stock. Ceux-ci indiquent où un produit est entreposé, le statut du produit et un numéro de série ou une quantité disponible et une quantité dans le stock.

La figure suivante montre les relations entre les produits.

Types d'articles

Produits finis

Produits immatériels

Services

Matière première

Sous-ensemble

Mots-clef

Catégories

Références

Contenu

Emplacements

Stock

Magasins de stock

Caractéristiques

Attributs

Articles associés

Fig : Organisation des produits

Un produit peut être organisé en catégories ou en nomenclatures. Il peut appartenir à une catégorie et une catégorie peut être membre d'une catégorie mère. Un produit peut aussi être associé avec un autre pour donner des packages ou des variantes.

Les catégories de produits peuvent être associées à différents catalogues. Un catalogue de produit est un point de départ pour toutes les informations sur un ensemble de produits à commercialiser.

Plusieurs produits peuvent être associés à un produit comme peuvent l'être les coûts. Différents prix peuvent être définis pour différentes monnaies, différents stocks ou magasins et pour différentes périodes de l'année (période normale et période des fêtes de Noël pour les jouets par exemple).

Ø Order ou Commande : Cette entité permet de gérer les ventes et les achats et toutes les

informations relatives à une commande. Elle permet aussi la gestion des retours de marchandises.

Une demande pour un produit peut être suivie et être éventuellement transformée en nécessité qui peut être utilisé pour créer un « Work Effort » défini ci-dessous, qui va satisfaire le besoin. La demande faite, une demande de confirmation peut être établie qui, une fois acceptée par le client, peut être utilisée pour créer une commande. Une fois la requête satisfaite, une facture peut être créée à partir de la commande. Les factures font partie de la comptabilité (entité Accounting).

Une commande consiste en un entête et des lignes qui décrivent les détails et les ajustements (taxes, frais de ports, réductions et autres).

Type d'ordre

Vente/atcat

Suivi statut avec

le workflow

Paiement

- Compte client

- mode paiement

Lignes d'ordre

- Statut

- Calcul du prix

- Promotions

- Quantité

- .......

Acteur

- coordonnées

- destinataires

Expéditions

- Dates

- Transporteur

- conditions

Gestions des ordres

Réf. ordre n° xxx

Statut

date

Facturation-Paiement

Mode de paiement xxx

Acteurs

Coordonnées livraison

Données d'ordre commercial

Expédition

Transporteur

Condition

Date

Lignes d'ordres

Article Statut Quantité Prix Solde total

xxx xxxx 1 99

Total ligne

Frais d'expédition

999

99

TVA

99

Gestion des Ordres

Facility ou contact : peut être un bâtiment ou un emplacement physique ( stocks, magasins, docks, bureaux, pièces de bâtiments ). Un facility aura un contact associé comme une adresse et un numéro de téléphone.

Ce composant gère aussi la gestion dynamique des stock tel que l'inventaire, les mouvements de stock. L'inventaire du stock est réalisé par un ajustement des quantités réelles pour chaque ligne de stock.

Ø Shipment ou Expédition : Cette entité gère les réceptions et les expéditions ainsi que les entrées et sorties de stock. Un Shipment est composé de ShipmentItem, chacun représentant une certaine quantité d'un produit à expédier. Shipment fait aussi le lien avec les services des transporteurs pour le suivi des colis et des livraisons.

Ø Accounting ou comptabilité : Cette entité est organisée par date et sur les principes sur la comptabilité analytique et le plan comptable.

Clients

Compte client

Commande

Expédition

Acteurs

Rôle :

- Facture

-

Facture

Paiement

Limite de crédit

Terme de paiement

Coordonnées

Gestion de la Comptabilité

Ø Marketing : Permet de suivre les campagnes de marketing et les informations reliées tels les contacts (courriels, listes de diffusions ou téléphoniques).

Ø Work Effort ou Tâche : Elle est une tâche, une phase d'un projet, quelque chose à faire et même, une gamme (un processus semi-automatique qui implique des activités automatiques réalisées par la machine et manuelles réalisées par une personne ou par un dispositif externe contrôlé par une personne) ou une activité d'une gamme.

Une gamme est un type particulier de « Work Effort ».

Stock Stock

OF : ordre de fabrication

Découpe

Perçage

Assemblage

Sortie de composant entrée de l'article fabriqué Nomenclature

Lancement

o manuel

o proposition du MRP

(organisation des ressources industrielles )

GAMME DE FABRICATION

calendrier

Gestion de gamme

Ø Human Ressources ou Ressources humaines : Cette entité permet de gérer et de suivre les responsabilités, les compétences, salaires et autres informations en relation avec la gestion du personnel.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy