Fonctionnement logiciel CRM ERP C-First

22
Architecture applicative C-FIRST Jérôme RAUCH

description

Comment fonctionne le logiciel CRM ERP C-FIRST ? Ces slides décrivent l'architecture logiciel mise en oeuvre ainsi que les technologies utilisées.

Transcript of Fonctionnement logiciel CRM ERP C-First

Page 1: Fonctionnement logiciel CRM ERP C-First

Architecture applicative C-FIRST

Jérôme RAUCH

Page 2: Fonctionnement logiciel CRM ERP C-First

C-FIRST est un logiciel CRM / ERP développé en Java / J2EE.

L’application est multi couche, et utilise différents composants logiciels.

Page 3: Fonctionnement logiciel CRM ERP C-First

Composants logiciels C-FIRST

by

Page 4: Fonctionnement logiciel CRM ERP C-First

Architecture SOA et couches> L'architecture C-FIRST est une Architecture Orientée Service (SOA). Cela permet :

> La réutilisation et la composition : partage de modules entre applications

> La pérennité : cela implique le support des technologies existantes et à venir

> L'évolutivité : la majeure partie des applications sont amenées à évoluer dans le temps afin de pouvoir répondre aux nouveaux besoins fonctionnels

> L’ ouverture et l'interopérabilité : partager des modules applicatifs entre plates-formes et environnements

> La distribution : pouvoir utiliser ces modules à distance et les centraliser au sein de l'entreprise par exemple

> La performance

by

Page 5: Fonctionnement logiciel CRM ERP C-First

Couches applicatives

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 6: Fonctionnement logiciel CRM ERP C-First

Dans les prochaines diapositives, nous allons détailler le rôle des différentes couches.

Page 7: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Présentation

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 8: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Présentation

> Cette couche contient l’interface homme-machine. C’est la couche de présentation des données à l’utilisateur. Dans l’application (et en général), elle ne contient pas d’objet java, mais uniquement les pages de mise en forme des données pour être affichées.

> Dans C-FIRST, la couche présentation est découpée en 3 modules :

> WEB : Contient les pages affichées en mode web

> Mobile : Ecrans adaptés aux smartphones

> Tablette : Ecrans adaptés aux tablettes

by

Page 9: Fonctionnement logiciel CRM ERP C-First

Couches applicatives – Présentation (2)

> Nous utilisons les technologies et framework suivants :

by

Page 10: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Coordination

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 11: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Coordination

> Cette couche gère l’organisation des données à afficher. C’est un contrôleur qui gère l’enchaînement des pages à afficher (Page Flow), en fonction des différentes demandes formulées par l’utilisateur.

> Cette couche permet de faire le lien entre la présentation et les services

by

Page 12: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Service

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 13: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Service> Cette couche gère l’aspect SOA de l’application. Chaque demande de

l’utilisateur correspond à un service appelé par cette couche, qui appelle les couches inférieures, et renvoie le résultat de son traitement à la couche supérieure.

> C’est également la couche service qui gère les transactions

by

Page 14: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Domaine

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 15: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Domaine> La couche domaine contient les objets métier de l’application.

> Ces objets encapsulent toutes les règles-métier, et appliquent donc la logique fonctionnelle de l’application.

by

Page 16: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Persistance

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 17: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Persistance> Permet de gérer les accès (lecture, écriture, modification) vers notre base

de données

> Nous utilisons le framework Hibernate qui permet de nous abstraire du type de la base de données utilisée : DB2, SQL Server, Postgres, …

> Tester / recetter sur les mêmes données

> Certaines données sont stockées dans un moteur de recherche full text de type Elastic Search

by

Page 18: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Transverse

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 19: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Transverse> Lorsque l’on cherche à séparer proprement chaque couche, il ressort que

de nombreuses données qui doivent être passées de couches en couches rendent les couches adhérentes (dépendantes en syntaxes les unes des autres)

> Ce type d’adhérence est précisément ce que l’on cherche à éviter. C’est le rôle de la couche transverse.

> La couche transverse contient des objets appelés «value objects ». Il s’agit de simples Java Beans avec leurs paramètres et leurs getters/setters. Ils encapsulent toutes les données qui doivent être envoyées à travers les différentes couches. Pour simplifier et pour ne pas faire de redondance, ces «value objects »nous serviront aussi d’objets persistants HIBERNATE.

by

Page 20: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Reporting

by

Web Mobile Tablette

Coordination

Service

Domaine

Persistance

Page 21: Fonctionnement logiciel CRM ERP C-First

Couches applicatives - Reporting

by

> C-FIRST utilise BIRT pour générer des reports statistiques

> Certains reports sont générés à la volée, d’autres sont planifiés à intervalles réguliers avec l’outil de planification Quartz

Page 22: Fonctionnement logiciel CRM ERP C-First

Les outils que nous utilisons> Eclipse est notre IDE, il permet d’éditer le code de tous les projets et de lancer une version C-FIRST de

développement

> Nous utilisons GIT pour le partage de code source entre développeurs

> Les différentes couches de l’applications sont construites par Jenkins et l’application est déployée en production en utilisant des jobs Rundeck

> Nos environnements de production et de recette fonctionnent sur des serveurs d’application Tomcat et DB2 pour la base de données, sur des serveurs Linux ou Windows. Notre cloud C-FIRST fonctionne sous Linux et les différents serveurs sont gérés par Puppet

by